Vous êtes sur la page 1sur 42

1971,

se fabric el primer microprocesador del mundo. El 4004, microprocesador de 4 bits capaz de direccionar 4096 localidades de memoria de 4 bits de ancho. Este microprocesador contaba con un conjunto de 45 instrucciones y fue ampliamente utilizado en los primeros video juegos y sistemas de control.

Composicin interna de un microprocesador Adems de la Unidad de Aritmtica y Lgica (ALU) y de la Unidad de Control (UC) los microprocesadores contienen registros. Registros (register): es el elemento ms pequeo que puede retener un dato. Usado para almacenar temporalmente informacin dentro de la CPU. Los registros pueden ser de propsito general o especializado.

(general purpose register): son aquellos sobre los que no existe restriccin en cuanto a su utilizacin . Pueden ser empleados como fuente o destino de datos, como contador, como puntero de localidades de memoria o de elementos de E/S.

Especial purpose register: son los registros que estn dedicados a realizar alguna funcin especfica.

ALU DE 8 BITS: Registro de banderas (s,c,z,etc) 7 0 Registro acumulador 7 0 Registros temporales 7 0

Es el registro base para las operaciones aritmeticas y logicas. Antes de la ejecucin de la instruccin contiene uno de los OPERANDOS y despus de la ejecucin es el que generalmente recibe el resultado. Tambien es registro fuente o destino de las transferencias de datos con la unidad de memoria o con el sistema de E/S. En algunos microprocesadores existe mas de un Acumulador.

son registros para uso interno de la CPU, en los que se almacena momentneamente cierta informacin y no son accesibles al programador mediante ninguna instruccin.

Registro de banderas: (flag registers) Esta formado por un conjunto de biestables, los mismos que indican ciertas condiciones del resultado de las operaciones; como por ejemplo, el valor del signo, si hubo o no carry , si es igual a cero o no, etc.

Es el registro donde se almacena el codigo de la operacin de la instruccin que se esta ejecutando, una vez que es trado de la memoria del programa mediante el Bus de Datos. DECODIFICADOR DE INSTRUCCIONES (instruction decoder): es la parte de la unidad de control que se encarga de interpretar la instruccin que se encuentra en el registro de instrucciones, en base a una memoria ROM que contiene microinstrucciones que controlan la ejecucin de instrucciones.

Son los circuitos encargados de generar las seales tanto internas como externas que permiten ejecutar las instrucciones. A estos circuitos tambin llegan las seales externas como las de inicializacin , las de espera, las de interrupciones, etc. Es decir, es el bloque que esta directamente relacionado con el Bus de control.

Es el bus de comunicaciones entre los distintos componentes del microprocesador, se le conoce tambin como el BUS INTERNO DE DATOS. El numero de lneas que posee el bus esta determinado por el numero de bits que procesa en paralelo la ALU y es uno de los parmetros que clasifican a los microprocesadores. Este bus se encuentra relacionado con el bus externo de datos a travs del BUFFER DEL BUS DE DATOS.

Contador del programa (program counter PC) : Es el que contiene la direccin de la localidad donde se encuentra la siguiente instruccin a ser ejecutada.

PUNTERO DE LA PILA (Stack Pointer SP): Contiene la direccin de la memoria donde se almaceno el ultimo dato de la PILA o STACK. REGISTRO INDICE (Index Register): Tambien contiene una direccin y es utilizado como puntero. El uso de este registro permite que los programas sean ms flexibles, ya que para acceder a distintas localidades de memoria, basta especificar un valor que sumado al contenido del registro ndice da la direccin real.

El 8008 fue el primer microprocesador de 8 bits. Caractersticas: capacidad de direccionamiento de 16 kb, memoria de 8 bits y conjunto de 48 instrucciones Mejoras: Conjunto ms grande de instrucciones, mayor capacidad de direccionamiento y una mayor velocidad de procesamiento.

Encapsula sus 3500 transistores en un chip DIP de 18 patillas. El bus de direcciones dispona de 14 bits por lo que era capaz de direccionar hasta 16 KB de memoria, pero al usar solo 18 patillas dispona de un bus compartido para datos y direcciones de 8 bits, por lo que necesita bastantes chips de apoyo para poder manejarlo, el procesador enva la primera parte de la direccin, se guarda ese trozo, se enva la segunda parte, y entre ambas se buscaba la direccin de memoria, se esperaba que estuviera listo, y se devolva el contenido de la direccin. Era capaz de acceder a 8 puertos de entrada y 24 de salida, pero tambin usando el mismo mecanismo de multiplexado.

Aunque marc el comienzo y fue un gran boom, no era un procesador demasiado potente, aunque el siguiente procesador de Intel, el 8080, si fue lo suficientemente potente para marcar la diferencia, apareciendo multitud de mquinas que lo usaban, pero por compatibilidad mantena casi todas las instrucciones y registros del 8008, aunque no era compatible a nivel binario, si lo era a nivel de ensamblador.

Intel dise el 8088/8086 para realizar al mismo tiempo las principales funciones internas de transferencia de datos y bsqueda de instrucciones. Para conseguir esto, el 8088 y el 8086 constan de dos procesadores interconectados en la mismo circuito integrado. 1. Una unidad esta encargada de buscar instrucciones (BIU) y la otra de ejecutarlas (EU) esto diferencia al 8088 de los microprocesadores anteriores (8080, 8085).

La BIU contiene una: cola de instrucciones Un controlador de bus registros de segmento y el puntero de instruccin (IP). La principal funcin de la BIU es mantener llena la cola de instrucciones , generar y aceptar seales de control, proveer al sistema de direcciones de memoria y nmero de puerto de E/S, adems de ser el mediador entre la Unidad de Ejecucin (EU) y la memoria. La BIU asegura que la cola de instrucciones este llena mediante la operacin de traer la prxima instruccin de un byte si la cola de instrucciones tiene espacio. Debido a que la prxima instruccin a ejecutar esta dentro del microprocesador, la velocidad de ejecucin de programas es mucha mas rpida en comparacin a si cada instruccin a ejecutar fuese trada directamente de memoria.

Puede trabajar en dos modos diferentes: Modo mnimo y modo mximo. Modo mximo: puede trabajar en forma conjunta con un microprocesador de datos numrico 8087 y algunos otros circuitos perifricos. En el modo mnimo: el micro trabaja de forma mas autnoma al no depender de circuitos auxiliares, pero esto a su vez le resta flexibilidad.

las terminales del microprocesador se pueden agrupar de la siguiente forma: Alimentacin Reloj Control y estado Direcciones Datos

La funcin de la EU es sacar cada instruccin de la cola de instrucciones y ejecutarla. La unidad de ejecucin contiene una unidad aritmtica y lgica (ALU), un registro de instruccin y un arreglo de registros. La ALU realiza operaciones: aritmticas y lgicas sobre la memoria o sobre registros. El registro de instrucciones recibe instrucciones de la cola de instruccin y son decodificadas a operaciones directas para la unidad de ejecucin. El arreglo de registros mantiene informacin temporalmente. Tambin contiene registros ndices y punteros utilizados para direccionar el dato operando localizado en la memoria.

El 8088 contiene 14 registros de 16 bits que se asocian a tres grupos: Registro de Propsito General, Registros Punteros y de ndice y Registros de Segmentos. Adems de estos tres grupos de registros contiene un Registro de Banderas que indica el estado de la operacin de la unidad aritmtica y lgica (ALU).

Los registros de propsito general se utilizan de cualquier manera que el programador desee (siempre y cuando sea permitido). Estos registros se utilizan como registros de 16 bits (AX, BX, CX y DX) o como dos registros de 8 bits (AH, AL, BH, BL, CH, CL, DH y DL). La principal funcin de la registros de propsito general se describe a continuacin: AX (Acumulador) Generalmente utilizado para mantener temporalmente resultados despus de una operacin aritmtico o lgica .

BX (Base) Generalmente utilizado para mantener la direccin base de un dato localizado en la memoria y tambin la direccin base de una tabla de datos referenciada por una instruccin (XLAT). CX (Contador) Contador en ciertas instrucciones, tal como contador de corrimientos (CL) y rotaciones, contador (CX) con la instruccin LOOP. DX (Dato) Un registro de propsito general que mantiene la parte mas significativos del producto despus de una multiplicacin de 16 bits, tambin los bits mas significativos del dividendo antes de una divisin, y el nmero del puerto de E/S en una instruccin de E/S.

Aunque los registros punteros y de ndice tambin son de propsito general por naturaleza, estos son mas utilizados como ndice o punteros a una localidad de memoria en muchas instrucciones. Estos registros incluyen: SP (Puntero de Pila) Usado para direccionar datos de una pila de memoria, esta pila es de tipo LIFO (last in, first-out). Esto ocurre cuando una instruccin PUSH o POP es ejecutada o cuando una subrutina es llamada mediante CALL y al retornar de una subrutina con la instruccin RET.

BP (Puntero de Base)-Un puntero de propsito general utilizado para direccionar un arreglo de datos en la pila. SI (ndice Fuente) -Se utiliza para direccionar datos fuentes indirectamente mediante el uso de instrucciones con cadenas. DI (ndice Destino)- Normalmente utilizado para direccionar el destino de datos indirectamente para instrucciones con cadenas.

IP (Puntero de Instruccin) -Usado para direccionar el prxima instruccin a ejecutar por el 8088. La localidad actual de la prxima instruccin esta formada por el contenido de IP y CS 10H.

Un segmento de memoria es un bloque de 64K bytes de memoria direccionado por un registro especial llamado registro de segmento,

Cuatro segmentos diferentes pueden existir simultneamente en el espacio de memoria: El segmento de cdigo segmento de datos segmento de pila y segmento extra Los datos son indexados o apuntados dentro de un segmento por el registro de ndice, registros punteros, registro base o puntero de instruccin.

Cada registro de segmento mantiene una porcin de 16 bits de la direccin de 20 -bit de inicio del segmento de 64Kbytes de memoria. Los 20 bits de la direccin esta formada 0000 2(0H). colocado como el menos significativo del registro de segmento, esto equivale a multiplicar el registro segmento por 10H.

Cada registro de segmento tiene una funcin especial y normalmente es asociada con uno o mas de los registros de ndice o punteros. Para generar una localidad de memoria, el contenido del registro de segmento contiene la parte de la direccin del segmento y se incrementa un registro ndice o puntero, el cual contiene el desplazamiento (offset). La direccin efectiva es la suma de la direccin del segmento y el desplazamiento.

Segmento de memoria (no registros de segmento) manejados por el 8088.

CS (Segmento de Cdigo) Una seccin de memoria de 64K- bytes que contiene el programa o cdigo. Este registro es cambiado siempre al ejecutarse una instruccin CALL, JMP o RET. La direccin de la prxima instruccin a ejecutar es generada por la suma del contenido del puntero de instruccin y el contenido de CS 10H.

DS (Segmento de Datos) -Una seccin de memoria de 64K - bytes que contiene los datos direccionados por todas las instrucciones y todos de direccionamiento. Los datos generalmente son movidos dentro o fuera de la memoria mediante el segmento de datos. La direccin efectiva de un dato es generada por la suma del contenido de uno de los registros ndice o puntero (BX, SI o DI) y el contenido de DS 10H.

Una seccin de memoria de 64K -bytes usada por la pila (stack) tipo LIFO. La direccin efectiva de la pila es una combinacin de los contenidos del puntero de pila (SP) mas SS10H.

Los datos apuntados por la base (BP) normalmente se encuentran en el segmento de pila.

-Un segmento especial que normalmente se usa por instrucciones de cadenas. Cuando una instruccin de cadena es ejecutada, la localidad del destino es direccionada por el registro ndice destino (DI) mas ES 10H, y la direccin fuente esta direccionada por el registro ndice fuente (SI) mas DS 10H.

El registro de banderas, tambin llamado registro de estado o palabra de estado, es un registro de 16 bits y contiene informacin sobre el estado de operaciones de la unidad aritmtica y lgica.

C (Acarreo) - Indica un acarreo o un prstamo en el bit mas significativo despus de una operacin aritmtica. Esta bandera tambin se modifica por algunas instrucciones de corrimiento y rotacin.

P (Paridad) Se refiere a la paridad del resultado de una operacin aritmtica o lgica. Si el resultado contiene un nmero par de unos, el bit de paridad es puesto en 1 indicando paridad par; en otro caso se borra para indicar paridad impar.

A (Acarreo Auxiliar)

-Representa un acarreo o prstamo entre medio - bytes de una operacin aritmtica o lgica entre registros de 8 bits.

Z (Cero) -Indica que el resultado de una operacin aritmtica o lgica es cero (0). Si Z=1, el resultado es 0.
S (Signo) -Indica el signo del resultado de una operacin aritmtica o lgica. Un 1 lgico en la bandera de signo indica que el resultado es negativo.

T (Atrapar) - Causa que el 8088 entre a un estado de operacin paso a paso para depuracin. I (Habilitar Interrupciones) -Habilita o deshabilita la terminal INTR (requerimiento de interrupcin). Si I=1 entonces INTR esta habilitada. D (Direccin) -Seleccin el modo de operacin de auto incremento o auto-decremento para el registro ndice destino (ID) y el registro ndice fuente (SI) en operaciones de cadena. Si D=0, entonces SI y DI son incrementados durante la ejecucin de una instruccin de cadena.

O (Sobreflujo)

- Se activa despus de que en una operacin aritmtica de suma o resta ha ocurrido un sobreflujo. Por ejemplo, si 7FH (+127) y 01H (+1) se suman, y se esta operando con nmeros con signo, el resultado es 80H (128). Debido a que - 128 no es un resultado correcto, la bandera O es puesta en 1 lgico para indicar un sobrefujo.

Vous aimerez peut-être aussi