Microprocesadores

PROGRAMACIÓN DE MICROPROCESADORES ING. JONATHAN S. DELGADO GUERRERO ([email protected] ) UNIDAD #1: INTRODU

Views 135 Downloads 0 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

PROGRAMACIÓN DE MICROPROCESADORES ING. JONATHAN S. DELGADO GUERRERO ([email protected] )

UNIDAD #1: INTRODUCCIÓN AL MICROPROCESADOR

1. INTRODUCCIÓN AL MICROPROCESADOR 1.1 La evolución del microprocesador. 1.2 Arquitectura básica del microprocesador. 1.3 La memoria y el microprocesador. 1.4 Dispositivos de memoria. 1.5 Decodificación de la dirección. 1.6 Sistemas de numeración y formato de datos usados en Sistemas de microprocesadores.

INTRODUCCIÓN AL MICROPROCESADOR  El microprocesador (μP) es es el circuito integrado central y más

complejo de un sistema informático.  El μP se lo puede estudiar desde dos puntos de vista: su hardware y

su software.  Dentro del hardware tenemos: Unidad Central de Proceso (CPU),

memoria, los puertos de ENTRADA/SALIDA(E/S), el reloj y la circuitería lógica de control.

 Dentro del software, tenemos la programación del hardware para

tareas de control, donde se utiliza un lenguaje de muy bajo nivel llamado Ensamblador.

INTRODUCCIÓN AL MICROPROCESADOR Ley de Moore

Gordon Earl Moore

INTRODUCCIÓN AL MICROPROCESADOR

INTRODUCCIÓN DEL MICROPROCESADOR

ELEMENTOS BÁSICOS DE UN MICROPROCESADOR

ALU (UNIDAD ARITMÉTICA – LÓGICA / ARICHMETIC LOGIC UNIT)

 Dispositivos de Adición.  Registros: Son los que contienen los operandos que permiten realizar las operaciones,  Resultados Parciales: Fragmentos de cálculos que fueron realizados  Resultados Finales: Resultados propiamente dichos de los cálculos efectuados  Control de Cálculo: Dispositivo que se encarga de controlar, redirigir y corregir los errores que se puedan

haber cometido en las operaciones realizadas

ALU (UNIDAD ARITMÉTICA – LÓGICA / ARICHMETIC LOGIC UNIT)

 Además de los operadores lógicos y aritméticos, la ALU cuenta con una serie de registros para almacenar los

datos, y bits de información sobre los resultados, también llamados banderas (flags).

 Las banderas más comunes son: Carry, Auxiliary Carry, Borrow, Overflow, Parity, Zero.

PARTES DE LA ALU

 Sumador/restador rápido  Operadores lógicos (AND, OR, XOR, NOT)  Un acumulador y un registro auxiliar  Un registro de salida  Señales de control que indiquen la operación a realizar.  Registro de banderas de estatus

BUS DE CONTROL  Es la conexión física, utilizada por la CPU para comunicarse con otros dispositivos dentro de la computadora. El

bus de control transmite comandos desde la CPU y devuelve una señal de estado desde el dispositivo.

 Líneas principales (puede variar):

Read o Leer: Una línea única que cuando es activada (cero lógico) indica que el dispositivo está siendo leído por la CPU. Write o Escribir: Una única línea que cuando está activada (cero lógico) indica que el dispositivo está siendo escrito por la CPU. Byte enable: Un grupo de líneas que indican el tamaño del dato (8, 16, 32, 64 bytes).

BUS DE DIRECCIONES

 Bus unidireccional, de la CPU a la memoria ó a los elementos de entrada y salida.  La CPU coloca niveles lógicos en las n líneas de dirección, con la cual se genera 2n posibles direcciones

diferentes.

 Estas direcciones corresponde a una localidad de la memoria ó dispositivo de E / S.

 Este bus se utiliza para direccionar las zonas de memoria y los dispositivos (que recordemos son tratados como

si de posiciones de memoria se tratasen), de forma que, al escribir una dirección en el bus, cierto dispositivo quede activado y sea quien reciba-envíe los datos en el ciclo de bus así empezado.

 Es un bus triestado unidireccional, por lo que puede ponerse en alta impedancia e ignorar lo que ocurre en el

exterior (al tiempo que no influir en el estado de las líneas), pero solo permite la escritura del bus. Esto último es razonable, puesto que la lectura del bus de direcciones no es de utilidad para el uP, al ser él mismo quien gestiona el direccionamiento.

 Este bus se compone de 32 líneas, A31 hasta A0, lo que permite direccionar 2^32 posiciones de memoria: un total

de 4Gigabytes. Contrariamente a los modelos anteriores, A0 es una línea plenamente utilizada, lo que elimina la necesidad de la existencia de /UDS y /LDS.

BUS DE DATOS

 Este es un bus bidireccional, pues los datos pueden fluir hacia o desde la CPU. Los m terminales de la CPU, de D0

- Dm-1, pueden ser entradas o salidas, según la operación que se esté realizando (lectura o escritura ) . En todos los casos, las palabras de datos transmitidas tiene m bits de longitud debido a que la CPU maneja palabras de datos de m bits; del número de bits del bus de datos, depende la clasificación del microprocesador.

 El bus de datos lo forman las líneas D31 a D0, siendo este bidireccional y de tipo triestado.

Su uso se centra en la transmisión de datos entre el uP y los demás dispositivos del sistema, permitiendo la conexión de varios dispositivos simultáneamente sin interferencia alguna.

 El microprocesador 68020 presenta por primera vez un bus de datos de 32 bits, lo que le permite el soporte y la

transferencia de los formatos de datos byte, palabra y palabra larga. De esta forma, se preserva la compatibilidad descendente con los modelos anteriores de Motorola.

 Además, suma la capacidad de adaptar dinámicamente el tamaño del bus para asegurar el conexionado con todo

tipo de periféricos, pudiendo enviar 1, 2, 3 o 4 bytes indistintamente.

BUS DE CONTROL VS BUS DE DATOS VS BUS DE DIRECCIÓN

ARQUITECTURA DE UNA PC

TALLER # 1  ¿Qué significan las siglas CISC, MIPS,VGA, RISC, WYSIWYG?  Con base en la lectura, ¿cuál es su opinión considerando la evolución de los microprocesadores y la Ley de

Moore?

 ¿Por qué fue necesario desarrollar microprocesadores de 32 bits?  ¿Qué hacían de diferente los primeros microprocesadores en cuanto a la administración de la memoria?  ¿Cuáles son las principales similitudes entre los microprocesadores 8086, 8088 y 80286?  ¿Qué material semiconductor se usó principalmente para desarrollar los primeros microprocesadores de Intel?  ¿Cómo funcionaba la caché L2 en los microprocesadores Pentium II y Xeon?

HYPERTHREADING

COMPUTADOR

CPU Unidad de control Unidad aritmética y lógica Registros

Dispositivos de E/S

Memoria principal

Disco

Impresora

Bus

MEMORIA

 Para almacenar programas y datos.  Unidad básica el bit.  Se divide en celdas.  Cada celda se identifica por una dirección.  Byte = 8 bits : unidad más pequeña direccionable  Los bytes se agrupan en palabras.  La mayor parte de las instrucciones operan sobre palabras.

MEMORIA

 Los bytes en una palabra se pueden numerar de izquierda a derecha (“big endian”, Motorola) o de derecha a

izquierda (“little endian”, Intel).

 Problema: la falta de una norma en el ordenamiento produce incompatibilidad en la transferecia de datos. No se

soluciona con el intercambio de los bytes.

 Posible solución: incluir un encabezado en los datos que indique el tipo y el tamaño de los datos.

DISPOSITIVOS DE MEMORIA

MEMORIAS ( JERARQUÍA )  El PC utiliza la memoria para acceder rápido a la

información.  El disco es más lento, pero es necesario porque la

información en la RAM del sistema no es permanente. – Los datos vienen de los dispositivos de entrada (ej. teclado), o del disco. – Siempre van a parar a la RAM del sistema. – La CPU almacena en la caché los fragmentos de información a los que accede. – La CPU mantiene en los registros información para las instrucciones que ejecuta.

26

MEMORIA SECUNDARIA

 Cintas magnéticas  Discos magnéticos  Discos flexibles  Discos ópticos  Discos RAM 

Se utiliza como disco una parte de la memoria principal previamente reservada.



Ventajas: acceso instantáneo, facilidad para un ordenador sin disco.

DISPOSITIVOS DE E/S

 Para la comunicación con el exterior.  Distintos dipositivos: 

Terminales



Modems



Ratones



Impresoras

 Dos enfoques diferentes.

ENFOQUE 1  Utilizado en grandes computadores.

Memoria principal Bus de memoria Bus de E/S

CPU

Procesadores de E/S (canales)

Controlador de terminales Impresora Terminales

Discos

ENFOQUE 2  Utilizado en computadores personales

CPU

Memoria

Monitor

Teclado

Unidad de disco

Contr. de video

Contr. de teclado

Contr. de disco

 El controlador maneja la E/S al dispositivo y el acceso al bus.  Funcionan con interrupciones o mediante DMA  El arbitrador decide quién accede al bus.

Bus

EJECUCIÓN DE UNA INSTRUCCIÓN  Extrae de la memoria la siguiente instrucción, la lleva al IR  Incrementa PC  Determina el tipo de la instrucción  Comprueba si la instrucción necesita datos de la memoria  Extrae los datos y los carga en los registros  Ejecuta la instrucción  Almacena los resultados en el lugar apropiado  Va al primer paso

EJECUCIÓN DE INSTRUCCIONES EN PARALELO  Máquinas cada vez más rápidas 

Existen límites físicos



Es muy caro

 Se puede conseguir con varias ALU’s o varias CPU’s  Las máquinas paralelas se dividen en 3 categorías (Flynn,1972), según el nº de instrucciones y datos: 

SISD: flujo

de instrucciones simple, flujo de datos simple.



SIMD: flujo



MIMD: flujo

de instrucciones simple, flujo de datos múltiple. de instruc. múltiple, flujo de datos múltiple.

MÁQUINAS SISD (: FLUJO DE INSTRUCCIONES SIMPLE, FLUJO DE DATOS SIMPLE)

 Un programa y un conjunto de datos.  Se extrae una instrucción y se ejecuta, se extrae otra y así.  Se logra el paralelismo extrayendo e iniciando la siguiente instrucción antes

de terminar aquella en curso.

 Dos modelos: 

varias unidades funcionales



procesamiento en línea

VARIAS UNIDADES FUNCIONALES La UC extrae una instrucción, la manda a una unidad funcional, extrae la siguiente y así hasta que no se pueda avanzar. Se supone que el tiempo en ejecutar una instrucción es mayor que en extraerla.

Registros

+

+

-

x

+

PROCESAMIENTO EN LÍNEA Consiste en separar la ejecución de cada instrucción en partes. Cada parte la ejecuta una unidad de procesamiento de la CPU. UP1 Unidad de extracción de instrucción

UP2

UP3

Analizador de instrucciones

Unidad de cálculo de direcciones

P1

1

P2

UP5

Unidad de extracción de datos

Unidad de ejecución de instrucciones

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

1

2 1

3 2

4 3

5 4

6 5

P3 P4 P5 1 8

UP4

2

3

4

5

6

7

t

MÁQUINAS SIMD (FLUJO DE INSTRUCCIONES SIMPLE, FLUJO DE DATOS MULTIPLE)

 Un programa con múltiples conjuntos de datos  Dos modelos: 

Máquinas vectoriales



Procesadores de arreglos

MÁQUINA VECTORIAL

 Para cada entrada de la ALU se tiene un vector con n entradas y no una sóla variable.  La ALU es una unidad vectorial capaz de realizar operaciones con vectores.

vector de entrada A

vector de entrada B

vector de salida A+B

PROCESADOR DE ARREGLOS Consiste de una malla cuadrangular de elementos procesador/memoria, que reciben las instrucciones de la UC, éstas son ejecutadas por todos los procesadores.

U.C

malla de procesador-memoria de 8x8

MÁQUINAS MIMD (FLUJO DE INSTRUC. MÚLTIPLE, FLUJO DE DATOS MÚLTIPLE)  Distintas CPU’s manejan distintos programas compartiendo a veces una memoria común.  Multiprocesador: Dificultades si un gran nº de procesadores pretende acceder a la memoria a través del bus.

CPU

CPU

CPU

Memoria compartida

CPU

Bus

MÁQUINAS MIMD

 Posibles soluciones: 

Memoria local a cada procesador donde se almacena datos y programas no comunes.

memorias locales

CPU

CPU

CPU CPU

memoria compartida



Tener más de un bus.



Usar memoria caché: técnica para mantener en cada procesador las palabras de memoria usadas con mayor frecuencia.

REGISTROS

 Memoria de alta velocidad y poca capacidad, integrada al microprocesador.  Permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.  Se miden generalmente por el número de bits que almacenan.

TIPOS DE REGISTROS  Los registros de datos se usan para guardar números enteros. En algunas computadoras antiguas, existía un único

registro donde se guardaba toda la información, llamado acumulador.

 Los registros de memoria se usan para guardar exclusivamente direcciones de memoria. Eran muy usados en la

arquitectura Harvard, ya que muchas veces las direcciones tenían un tamaño de palabra distinto que los datos.

 Los registros de propósito general (en inglés GPRs o General Purpose Registers) pueden guardar tanto datos como

direcciones. Son fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras modernas usa GPR.

 Los registros de coma flotante se usan para guardar datos en formato de coma flotante.  Los registros constantes tienen valores creados por hardware de sólo lectura. Por ejemplo, en MIPS el registro cero

siempre vale 0.

 Los registros de propósito específico guardan información específica del estado del sistema, como el puntero de pila

o el registro de estado.

MICROPROCESADOR 8086 Y 8088

REGISTROS DE DATOS (GENERALES, O MULTIPROPÓSITO) (AX, BX, CX,DX)

 Son los más utilizados por los programas, debido a que son

usados para almacenar datos.

 Existen 4 (AX, BX, CX y DX), cada uno de 16 bits.  Cada uno de estos registros se subdivide además en dos

registros de 8 bits (1byte) que se denominan con la misma letra que el registro completo pero terminado en H si se refiere al byte superior (8 bits más significativos del registro) o en L si se refiere al byte inferior (8 bits menos significativos del registro).

 AX o Acumulador: Es el registro principal, se usa en operaciones de multiplicación, división y operaciones

matemáticas especializadas y en ciertas operaciones de E/S y conversión, en alguna de estas operaciones sólo se puede usar este registro y no otro.

 BX o base: Se utiliza en algunos modos de direccionamiento para formar la dirección de memoria de la que

obtiene o en laque almacena los datos una determinada instrucción. Se usa para indicar el desplazamiento (offset) para referenciar direcciones de memoria con direccionamiento indirecto.

 CX o contador: Se utiliza con las instrucciones de repetición y de bucle, almacenando el número de veces que

se repetirá una determinada instrucción o fragmento de un programa. En instrucciones de desplazamiento y rotación se usa como contador de 8 bits.

 DX o de datos: Se usa junto a AX en operaciones aritméticas de 32 bits y en las de E/S para especificar la

dirección del puerto de E/S.

REGISTROS DE SEGMENTOS (CS, DS, SS, ES)

 El microprocesador8086 divide la memoria en segmentos de 64K teniendo diferentes segmentos dependiendo de

la utilidad que le quiera dar a cada uno de ellos. Los registros de segmento tendrán la dirección de memoria donde comienza cada tipo de segmento.

 Registro CS (Segmento de código): Apunta siempre al segmento donde se encuentra las instrucciones del

programa que se está ejecutando. Los programas mayores de 64K requieren cambiar CS de forma periódica. Este registro no se puede modificar directamente y debe hacerse mediante las denominadas “instrucciones de transferencia de control”.

 Registro DS (Segmento de datos): Apunta al segmento de memoria donde las instrucciones del segmento de

código leen o almacenan los datos que usa el programa en ejecución. Este registro puede cambiarse durante la ejecución del programa para así poder acceder a toda la memoria instalada en el sistema.

 Registro SS (Segmento de pila): Contiene la dirección de comienzo del segmento de pila. La pila es un área

de memoria destinada a almacenar valores de 16 bits de forma temporal en la ejecución de un programa.

 Registro ES (Segmento Extra): Es una ampliación del segmento de datos. Las áreas de 64K de cada segmento

pueden solaparse total o parcialmente siendo imposible acceder a zonas de memoria no incluidas en los segmentos

REGISTROS ESPECIALES (SP, IP, FLAGS(BANDERAS))

 Estos registros son utilizados por el microprocesador para almacenar sus propios datos y raramente se

modificaran desde el programa.

 Registro SP(Stack Pointer ó Puntero de pila): Nos indica el desplazamiento respecto a SS donde ponemos

el comienzo de la pila.

 Registro IP (Puntero de instrucción o contador de programa): Apunta en todo momento a la dirección

de la siguiente instrucción que debe ejecutarse, es un offset respecto al valor de CS por lo que dicha instrucción estará en CS:IP, al igual que CS, el registro IP sólo puede modificarse mediante las llamadas “instrucciones de transferencia de control”.

FLAGS

DECODIFICACIÓN DE LA MEMORIA

 La decodificación de memoria es una aplicación típica de los dispositivos lógicos programables.  Es un identificador único para una ubicación de la memoria con las cuales el CPU u otros dispositivos pueden

almacenar, modificar, o recuperar datos de la misma.

 Se expresan en hexadecimal.  Cada direccionamiento apunta hacia un byte (8 bits).

TIPOS DE DIRECCIONAMIENTO

 Físico: se refiere a los medios electrónicos en la computadora para acceder a las diversas posiciones de memoria.  Lógico: Se refieren a la forma en que se expresan y guardan las direcciones.

MODOS DE DIRECCIONAMIENTO

 Diferentes maneras de especificar un operando dentro de una instrucción en lenguaje ensamblador.  Especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la

información contenida en registros y/o constantes, contenida dentro de una instrucción de la máquina o en otra parte.

 MOV AX, 12A

Operandos

TIPOS DE DIRECCIONAMIENTO

 Inmediato  Directo a registro  Directo a memoria (absoluto)  Indirecto con registro  Indirecto con pila  Indirecto con memoria  Indirecto con desplazamiento

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

¿CUÁL ES EL MEJOR?