Vous êtes sur la page 1sur 29

SISTEMAS DIGITALES I

Agustn Surez Fernndez Donaciano Jimnez Vzquez


Departamento de Ingeniera Elctrica UAM-Iztapalapa, Mxico, D.F.

CAPITULO I
INTRODUCCIN
Inicialmente, se presenta la estructura de un sistema que se basa en un microprocesador, describiendo cada una de sus partes principales. Puesto que, del microprocesador depende la funcionalidad del sistema, se analizan las tareas bsicas que debe realizar y a partir de stas, se propone una arquitectura para el microprocesador. A continuacin, se estudia en forma detallada la arquitectura, del microprocesador 8088. El objetivo de ste captulo es aprender lo siguiente: 1] 2] 3] 4] La estructura de un sistema que se basa en un microprocesador. La arquitectura de un microprocesador de propsito general. La arquitectura del microprocesador 8088. El desarrollo de los microprocesadores de la familia 8086/8088 de Intel.

En las descripciones de circuito que requieren de una seal que es activa en nivel bajo, normalmente, una transicin de +5 a 0 volts, se emplea la convencin que forman las siglas de la seal seguidas de . Por ejemplo, CS es una seal activa en nivel bajo, que conecta a un circuito, de tercer estado, al canal de un sistema con un microprocesador.

1.1 Estructura de un sistema que se basa en un microprocesador


Un sistema de propsito general que se basa en un microprocesador tiene la estructura bsica que se muestra en la Fig. 1.1 y realiza las tareas ms comunes, que son en las que estn interesados la mayora de los posibles usuarios. Un ejemplo de ste sistema puede ser una computadora personal y las tareas: procesamiento de texto, empleo de hojas de clculo, acceso a Internet, etc. Si el sistema es de propsito especfico, puede ser la parte principal de algn instrumento, sistema de control o una aplicacin similar. Aun en ste caso su estructura bsica sera igual, pero con los circuitos adicionales que requiera la aplicacin especfica. Tanto para el sistema de propsito general como para el especfico, su atractivo y poder se deben al hecho de que se basa en un dispositivo programable: el microprocesador que junto con los dems componentes, tanto de

circuito como de programacin, forman el sistema completo que proporcionan a sus usuarios los servicios necesarios para realizar en forma atractiva los trabajos que estn interesados en llevar a cabo.

Fig.1.1 Estructura de un sistema que se basa en un microprocesador. Las partes siguientes forman el sistema: microprocesador, circuito de temporizacin, que incluye la parte de reinicializacin, canal del sistema, memoria, circuitos de entrada y salida. A continuacin, se describe cada una de las partes. Microprocesador: es un dispositivo programable que es la parte principal del sistema y le proporciona sus principales caractersticas, entre otras: velocidad de procesamiento,

espacio de memoria y de entrada/salida que puede direccionar, tipo de sistemas operativos que puede soportar, posibilidades de actualizacin. Circuito de temporizacin: temporizacin el microprocesador requiere de una seal de reloj, muy estable, a fin de sincronizar tanto su operacin interna como la de todo el sistema a travs de su canal. Aqu est incluida la parte de reinicializacin que al encender el sistema, o cuando es necesario, lleva al microprocesador a un estado inicial conocido, que siempre es el mismo, y a partir del cual, tpicamente se ejecuta un programa de inicializacin y autocomprobacin.

Canal del sistema: sistema determina las caractersticas de comunicacin del microprocesador con los perifricos que forman el sistema y a su vez lo constituyen el canal de

direcciones, de cuyo nmero de bits depende el espacio de memoria y de entrada/salida que es posible direccionar, as como el canal de datos que determina el nmero mximo de bits que se pueden transferir en un dato. Como se observa en la Fig. 1.1, al canal del sistema estn conectados la memoria y todos los perifricos que lo forman. Sin embargo, ya que son dispositivos de tercer estado estn en alta impedancia la mayor parte del tiempo, elctricamente estn desconectados, y slo se conectan al canal cuando les corresponde. Las seales que conectan a la memoria o a un perifrico al canal del sistema las proporciona, el canal de control. Por ejemplo, al encender el sistema el microprocesador inicia la ejecucin del programa de inicializacin a partir de una direccin de memoria que siempre es la misma. Esto requiere que la memoria que lo contiene, usualmente ROM, reciba, entre otras, la seal de seleccin de integrado CS, que la conecta al canal y otra de lectura, ambas seales, con la temporizacin adecuada, las proporciona el canal de control. Algo similar sucede cuando se requiere realizar alguna operacin con un perifrico. Memoria: Memoria como se mencion al principio el poder y la flexibilidad del sistema se deben a que se basa en un microprocesador que es un dispositivo programable. Los programas que ejecuta el microprocesador estn en el subsistema de memoria, que forman diferentes dispositivos, de memoria ROM y RAM, cuya capacidad de almacenamiento depende de las necesidades del usuario. Subsistema de entrada/salida: entrada/salida son los perifricos que requiere el sistema. Por ejemplo, se requiere una interfaz de usuario, que permita solicitar tareas y obtener resultados. En el caso de una computadora personal, esa interfaz est formada principalmente por el teclado y el monitor, si el sistema es muy pequeo slo cuenta con un pequeo teclado que puede ser decimal o hexadecimal y algn tipo de despliegue, tpicamente de diodos emisores de luz, leds, o dispositivos de cristal lquido. Los perifricos restantes pueden ser dispositivos de almacenamiento masivo como unidades de disco duro, ptico o flexible, as como impresora, convertidores analgicos/digitales, digitales/analgicos y otros perifricos que dependen de las necesidades del usuario.
3

Como se ver posteriormente, un sistema que se basa en un microprocesador, generalmente, tiene una estructura de capas, la primera y ms bsica la forman el microprocesador y los dems circuitos, en trminos coloquiales los fierros, la capa siguiente la forman los programas, en lenguaje ensamblador, que forman el sistema bsico de entrada/salida BIOS que est grabado en ROM, encima de sta capa est el interprete de comandos del sistema operativo.

1.2 Funciones bsicas del microprocesador


Como ya se mencion, la parte principal del sistema es el microprocesador. Las funciones bsicas que se espera pueda realizar son las siguientes: 1] 2] 3] 4] 5] 6] 7] Las operaciones aritmticas bsicas: suma, resta, multiplicacin y divisin. Las operaciones lgicas: AND, OR, XOR, NOT. Operaciones sobre cadenas o arreglos bsicos de datos. Transferencias incondicionales del control de ejecucin del programa. Transferencias condicionales del control de ejecucin del programa. Llamadas a subrutinas. Operaciones sobre el espacio de entrada/salida.

Si el microprocesador es capaz de realizar stas funciones en forma eficiente o muy eficiente. El sistema ser funcional, considerando que tiene como objetivo principal ejecutar las tareas en las que estn interesados la gran mayora de los usuarios. Si se requiere realizar tareas ms especializadas: procesamiento matemtico intensivo, procesamiento de seales, el sistema puede requerir de algn coprocesador. Considerando que, al menos por el momento, slo son de inters las funciones bsicas,

listadas inicialmente, conviene analizar la posible arquitectura de un microprocesador que las realice.

1.3 Arquitectura de un microprocesador


La posible arquitectura de un microprocesador que cumpla las tareas bsicas sealadas, se muestra en la Fig.1.2.

Fig. 1.2 Arquitectura interna del microprocesador

El microprocesador est formado por las unidades siguientes:

Unidad de control control: rol realiza la ejecucin de los programas sincronizando la operacin de las diferentes unidades del microprocesador, segn lo requiera el programa. Contiene los registros siguientes: Contador de programa: este registro apunta a la direccin de la siguiente instruccin que se va a ejecutar. Registro de la instruccin actual: decodifica la instruccin presente, y la transfiere para su ejecucin. Ya que al decodificar la instruccin determina su nmero de bytes y actualiza el contenido del contador de programa. Palabra de estado del procesador: contiene bits de estado que reflejan el resultado de la ejecucin de una instruccin, tpicamente aritmtica o lgica, que por ejemplo, result en cero o es negativo. Tambin puede tener bits de control que determinan alguna caracterstica del funcionamiento del microprocesador. Por ejemplo, la habilitacin y deshabilitacin de interrupciones. Apuntador de pila: este registro apunta a una direccin de la memoria que forma la pila de memoria, que es una cantidad determinada de localidades de memoria RAM, que emplean el microprocesador y el programador para almacenar datos importantes, posteriormente se detalla su funcionamiento. Registros de trabajo: ejecutan las diferentes instrucciones del microprocesador utilizando registros de propsito general y de direccionamiento. Unidad aritmtica y lgica, ALU: realiza las operaciones aritmticas y lgicas que requieren algunas instrucciones, el resultado de algunas de stas se refleja en la palabra de estado del procesador. Por ejemplo, si el resultado de una resta fue cero.

Unidad de lgica de control de entrada/salida: realiza la comunicacin entre el microprocesador y los perifricos del sistema mediante las instrucciones de entrada/salida. A continuacin, se describen en mayor detalle stas partes. Al encender el sistema el microprocesador recibe una seal de reinicializacin, del circuito de temporizacin, que siempre lo lleva al mismo estado inicial que, entre otras acciones, carga en el contador de programa de la unidad de control, la direccin en la que el microprocesador va a ejecutar el primer ciclo de recuperacin de cdigo de programa. Esta direccin, siempre es la misma, la unidad de control la transfiere a las terminales de salida del microprocesador que forman el canal de direcciones del sistema. Generalmente, ah empieza el programa de inicializacin del sistema, la memoria que contiene esa direccin inicial, usualmente ROM, recibe del canal de control la seal de habilitacin, CS que la conecta al canal del sistema, y poco despus una seal de lectura, RD. Algunos ciclos de reloj despus, que determina la temporizacin del microprocesador, la memoria coloca en el canal del sistema el dato de la direccin que se present a su entrada. A continuacin, el microprocesador lee se dato de sus terminales que forman el canal de datos, lo transfiere al registro de la instruccin actual, dnde ser decodificado para su ejecucin, y actualiza el valor del contador de programa a fin de que apunte a la direccin donde se encuentra la siguiente instruccin. Una vez que decodifica la instruccin, el microprocesador sabe de cuntos bytes consta y en donde se ejecutar. Por ejemplo, si la instruccin es aritmtica o lgica, se va ejecutar en la ALU empleando registros de propsito general. Adicionalmente, como ya se mencion, la ALU tiene asociado un registro de palabra de estado del procesador en el que puede reflejar en un bit especfico, bandera, el resultado de una operacin aritmtica que dio, por ejemplo, un resultado negativo o igual a cero. Registros de propsito general Son los registros que emplea el microprocesador para ejecutar diferentes instrucciones. Por ejemplo, si se ejecuta una suma, un registro contiene uno de los sumandos y un segundo registro el otro, una vez que se realiza la suma uno de los dos debe tener el resultado: es un acumulador, al inicio de la suma contiene uno de los sumandos y al final contiene el resultado. Los registros de propsito general que se emplean para las operaciones aritmticas se conocen como registros aritmticos.
7

El microprocesador no slo tiene la capacidad de realizar operaciones aritmticas entre operandos que estn en sus registros, tambin las puede realizar entre un operando que se encuentre en memoria y otro que est en un registro. En ste caso, se utiliza un registro para apuntar a la localidad de memoria que contiene el otro operando. Los registros que cumplen sta funcin, se conocen como registros apuntadores y forman parte de los registros de direccionamiento, algunos de stos pueden ser especficos para ejecutar instrucciones sobre cadenas o arreglos de datos. Por ejemplo, puede haber un apuntador fuente y uno destino para transferencias entre cadenas de datos. Con lo expuesto hasta ahora, la arquitectura bsica propuesta cumple con las 4 primeras funciones requeridas.

1.4 Transferencias del control de ejecucin del programa


El contador de programa, es el registro que determina la localidad de memoria donde se ejecuta un ciclo de recuperacin de cdigo. Si se requiere transferir la ejecucin del programa, a una localidad de memoria diferente a la cual apunta se registro es necesario cambiar su contenido, esto se puede realizar en forma incondicional o condicional.

1.4.1 Transferencias incondicionales


En las transferencias incondicionales la unidad de control del microprocesador lleva a cabo el cambio que se requiere: desecha el contenido previo del contador de programa y carga el nuevo. De sta forma transfiere el control de ejecucin del programa a la localidad de memoria que se indic y que NO es la siguiente de la instruccin de transferencia de ejecucin del programa. 1.4.2 Transferencias condicionales Para las transferencias condicionales la unidad de control del microprocesador antes de llevar a cabo el cambio que se requiere, del contenido del contador de programa, determina si la condicin de transferencia se cumple. Por ejemplo, para una transferencia del control del programa en funcin de la activacin de la bandera de cero, del registro de estado del procesador, antes de la instruccin que transfiere el control de ejecucin del programa se ejecuta una instruccin aritmtica o lgica y si su resultado es cero, activa

la bandera correspondiente del registro de estado del procesador. As, slo si la condicin de transferencia se cumple, se lleva a cabo. Por lo tanto, el control de ejecucin del programa pasa a una localidad diferente a la que segua en secuencia. En caso contrario, la ejecucin del programa contina en sa localidad. Si la transferencia del control de ejecucin del programa se realiza, el contenido previo del contador de programa se desecha. La Fig. 1.3 muestra el diagrama de flujo de un brinco condicional, con las instrucciones correspondientes a lado de los bloques.

Fig. 1.3 Brinco Condicional.

La parte de cdigo, que es para el 8086/8088, que incluye la figura merece algunos comentarios: 1] Inicialmente, se ejecuta una instruccin que resta el contenido del registro BX, al contenido del registro AX, una vez que se ejecuta la resta el resultado queda en el registro AX. La notacin que se emplea para representar sta instruccin es:

AX AX-BX

SUB AX, BX

El smbolo se interpreta como transfiere a. En ste caso, se transfiere al registro AX el resultado de la resta de su contenido previo menos el contenido del registro BX. Si los contenidos de ambos registros son iguales su resta dar cero, si se es el resultado al ejecutar la resta la ALU del microprocesador activa, en 1, la bandera de cero del registro de estado del procesador y si no es cero la bandera se mantiene inactiva, en 0. As, a continuacin de la instruccin de resta se puede ejecutar una instruccin de transferencia condicional del programa, que pregunte si la bandera de cero est activa.

2]

La instruccin: JZ CAMBIO

Transfiere el control de ejecucin del programa a la localidad que tiene la etiqueta CAMBIO, slo si la bandera de 0 est activa. En caso contrario ejecuta la siguiente instruccin.

1.4.3 Llamadas a subrutina


Cuando el microprocesador ejecuta una llamada a subrutina, Fig. 1.4, que es un servicio del programa que se est ejecutando, tambin es necesario cambiar el contenido del contador de programa. Pero a diferencia de las transferencias incondicional y condicional, ahora slo se transfiere momentneamente el control de ejecucin del programa y se debe regresar a ejecutar la instruccin siguiente a la llamada a la subrutina. As, el

10

microprocesador debe recordar la direccin de la instruccin que sigue a la llamada a la subrutina. Para sta, y otras situaciones similares, el microprocesador tiene un rea de memoria, RAM externa, denominada pila y que forma parte de la memoria del sistema, En la que almacena temporalmente, para recordarla, la direccin de la instruccin que sigue a la llamada a la subrutina. La unidad de control cuenta con un registro apuntador de pila que apunta a sa rea de la memoria. Cuando el microprocesador decodifica la instruccin de llamada a una subrutina, sin la intervencin del programador, hace lugar en la pila y ah guarda el contenido del contador de programa, que es la direccin de la instruccin que sigue a la llamada y que debe ejecutar al regresar de sta. A continuacin, cambia el contenido, del contador de programa, por el de la direccin de la primera instruccin de la subrutina e inicia su ejecucin. Siempre, la ltima instruccin de la subrutina es un retorno que regresa el control de ejecucin del programa a la instruccin que sigue a la llamada. Ahora el microprocesador, nuevamente sin que intervenga el programador, recupera de la pila de memoria la direccin de la instruccin que sigue a la llamada, la carga en el contador de programa, actualiza el valor del apuntador de pila y la ejecucin continua. De sta forma el microprocesador es capaz de ejecutar llamadas a subrutinas y regresar de stas.

Fig. 1.4 Llamada a subrutina

11

En la Fig. 1.4 se muestra un programa que tiene una llamada a una subrutina llamada CONV1, una vez que el microprocesador encuentra la instruccin de llamada: CALL CONV1 Transfiere el control de ejecucin del programa a la localidad de la primera instruccin de sa subrutina, pero debe recordar la direccin de la instruccin que sigue a la llamada. Esto se logra de la forma siguiente: 1] Haciendo lugar en la pila de memoria: SP SP-2

2]

Almacenando, en la direccin de memoria a que apunta el registro SP y la siguiente, se denota por el parntesis, el contenido del contador de programa: (SP:SP+1) CP

Esto lo ejecuta el microprocesador sin la intervencin del programador y de sta forma se recuerda la direccin de la siguiente instruccin a la llamada. La subrutina CONV1 termina con la instruccin: RET Que ejecuta lo siguiente: CP (SP:SP+1) SP SP+2 Si se observa la instruccin de regreso de la subrutina ejecuta casi la misma secuencia que la instruccin de llamada. Esta inici haciendo lugar en la pila, se requieren 2 localidades de memoria para el contenido del contador de programa, si el CPU es de 16 bits, a continuacin, ah lo almacen. El regreso primero transfiere el contenido de la pila de memoria al contador de programa y a continuacin dej al apuntador de pila en la misma direccin que tena antes de la llamada. Conviene aclarar que se considera una pila con el mismo funcionamiento, ltimo en entrar, primero en salir LIFO, que la del microprocesador 8086/8088 y que al igual que las instrucciones de llamada y de regreso se estudiarn posteriormente.

12

Seccin de lgica de control de entrada/salida: entrada/salida comunica al microprocesador con los perifricos que estn en ese espacio, esto se realiza mediante instrucciones de entrada y de salida entre uno de los registros del microprocesador y los registros de los perifricos, stas instrucciones, en los microprocesadores, slo transfieren datos pero no afectan ninguna bandera del registro de palabra de estado del procesador. As, no es posible a continuacin de stas transferir en forma condicional, el control de ejecucin del programa. De acuerdo a lo anterior, sta arquitectura es capaz de realizar las tareas bsicas que esperamos del microprocesador. A continuacin, se estudiar la arquitectura del microprocesador 8088 que es uno de los miembros originales de la familia de microprocesadores 8086/8088 y que es muy similar a la que se acaba de exponer.

1.5 Arquitectura del CPU 8088


La unidad de procesamiento central del microprocesador 8088, Fig. 1.5, es esencialmente la misma que la del 8086 y tiene como principal caracterstica incorporar dos unidades independientes de procesamiento. Estas son la unidad de ejecucin (EU), y la unidad de interfase del canal (BIU). La unidad de ejecucin decodifica y ejecuta las instrucciones y la unidad de interfase del canal realiza todas las operaciones del canal del sistema como son los ciclos de recuperacin de cdigo (fetch), lectura de datos y escritura de resultados. Las dos unidades trabajan de manera independiente y paralela, se denomina pipeline, que es una de las principales caractersticas de los microprocesadores de tercera generacin, sta forma de funcionamiento les proporciona mayor velocidad ya que en un alto porcentaje del programa, la unidad de ejecucin tiene disponible en la cola de instrucciones, el cdigo de la siguiente instruccin a ejecutar. Unidad de Ejecucin Es la responsable de decodificar y ejecutar todas las instrucciones, est constituida por 4 registros de propsito general, 2 registros base, 2 registros apuntadores, un registro de banderas y la unidad aritmtica y lgica. Ya que no posee conexin con el canal del sistema, obtiene las instrucciones de una cola de 4 bytes (6 bytes para el 8086) que Cuando una instruccin requiere forma parte de la unidad de interfase del canal (BIU).

13

accesar a la memoria o a un perifrico, la unidad de interfase del canal ejecuta los ciclos de canal necesarios ya sea para leer o escribir los datos. Registros de propsito general Son los registros: AX, BX, CX, DX y pueden considerase completos o dividirse en una parte alta: AH, BH, CH, DH y en una parte baja: AL, BL, CL, DL. Por lo tanto, cada uno se puede utilizar como un registro de 16 bits o dos registros independientes de 8 bits. Cualquiera de estos registros puede ser el acumulador para operaciones aritmticas y lgicas.

Fig. 1.5 Diagrama Funcional Simplificado a Bloques, del microprocesador 8088.

Registros ndice y apuntadores Los registros BP, SP, SI, DI slo se pueden utilizar completos. BP, realiza la funcin de apuntador base en el segmento de pila y para varias formas de direccionamiento. SP es el

14

apuntador del segmento de pila. SI es un apuntador a un arreglo fuente de datos y DI es el apuntador a un arreglo destino. Estos 4 registros se utilizan en los diferentes modos de direccionamiento del microprocesador. Unidad Unidad aritmtica y lgica En esta unidad se realizan todas las operaciones aritmticas y lgicas que puede ejecutar el microprocesador y el resultado de stas afecta los diferentes bits del registro de banderas a fin de ejecutar instrucciones condicionales de transferencia del programa. Registro de banderas Posee 6 banderas de estado y tres de control. Las banderas de estado reflejan el programa cambiar la

resultado de una operacin aritmtica o lgica y permiten al

secuencia de su ejecucin, dependiendo del estado de alguna bandera.

BANDERAS DE CONTROL

BANDERAS DE ESTADO

TF

DF

IF

OF

SF

ZF

AF

PF

CF

ACARREO PARIDAD ACARREO AUXILIAR CERO SIGNO SOBREFLUJO INTERRUPCION DIRECCION TRAMPA

Fig. 1.6 Registro de banderas.

Banderas de estado Las banderas de estado son las siguientes: CF bandera de acarreo. Si se activa, en uno, indica que ocurri un acarreo o un prstamo del bit ms significativo como resultado de una operacin aritmtica o lgica de 8 o 16 bits.

15

PF bandera de paridad. Si est activa, en uno, indica que el resultado de una operacin tiene paridad par. Esta bandera se utiliza para encontrar errores en caracteres transmitidos y slo comprueba la paridad de los 8 bits menos significativos del registro AX. AF bandera de acarreo auxiliar. Si se activa, en uno, indica que en la instruccin ejecutada, se present un acarreo o un prstamo del bit 3 al 4 del registro destino. Esta bandera la utilizan en forma implcita las instrucciones de ajuste decimal y ascii. ZF bandera de cero. Si se activa, en uno, indica que el resultado de una operacin aritmtica o lgica fue cero. SF bandera de signo. Indica que el resultado de una instruccin, normalmente aritmtica es negativo. Las instrucciones que la afectan se ejecutan en aritmtica de complemento a 2, en la que el valor del bit ms significativo, 7 o 15, da el signo. Por lo tanto, si SF = 0, se trata de un nmero positivo y si SF = 1, es un numero negativo. OF bandera de sobreflujo. Indica que ocurri un sobreflujo. Esto es, el tamao del resultado excede el tamao del destino.

Banderas de control Estas banderas permiten controlar tres estados del microprocesador y son las siguientes: TF bandera de trampa. Si se activa con uno sta bandera, el procesador pasa a ejecutar el programa instruccin por instruccin con fines de depuracin. Ya que no existen instrucciones ni para activarla ni para desactivarla se requiere ejecutar un enmascaramiento o desenmascaramiento mediante instrucciones lgicas registro de banderas. con el

16

IF bandera de habilitacin de interrupciones. Al activarla, con uno, se habilitan las interrupciones enmascarables que estn dedicadas, usualmente, a los perifricos del sistema. DF bandera de direccin. Al activarla, con uno, las instrucciones para cadenas o arreglos ejecutan un autodecremento de las direcciones fuente y destino. Si se desactiva, con cero, esas instrucciones se ejecutan con incremento de ambas direcciones. Unidad de interfase del canal

Ya que la unidad de ejecucin no tiene una conexin directa al canal del sistema, obtiene cdigo, operandos y datos a travs de la unidad de interfase del canal que ejecuta todos los ciclos necesarios. Esta unidad consta de 4 registros de segmento, registros de Mientras la comunicacin interna, el apuntador de instrucciones, una cola de 4 bytes, la lgica de control del canal, y un sumador dedicado para formar la direccin fsica. unidad de ejecucin decodifica y ejecuta una instruccin, la unidad de interfase del canal ejecuta un ciclo en el que lee y almacena en la cola, el byte de la siguiente localidad de memoria. Esto es, ambas unidades del CPU trabajan en forma paralela. Por lo tanto, en un alto porcentaje del programa la unidad de ejecucin tiene disponible, en la cola, el cdigo de la siguiente instruccin a ejecutar y de esta forma, prcticamente desaparece el tiempo del ciclo de recuperacin de cdigo (fetch) lo que resulta en un incremento muy notable en la velocidad de ejecucin de la mayora de los programas. La unidad de ejecucin normalmente mantiene llenos los 4 bytes de la cola ya que al estar vaco un byte ejecuta un nuevo ciclo a fin de llenarlo. Registros Registros Segmentados

El espacio de memoria de los miembros originales de la familia 8086/8088 es de 1 Mbyte que se divide en segmentos lgicos de 64 Kbytes. La unidad de interfase del canal tiene cuatro registros de segmento:

17

CS segmento de cdigo DS segmento de datos ES segmento extra SS segmento de pila

El registro CS tiene la direccin del segmento, de hasta 64kbytes, donde se encuentra el programa en ejecucin. El registro DS tiene la direccin inicial de un segmento de datos y ES, tpicamente, tiene el mismo propsito. El registro SS tiene la direccin inicial del segmento de pila. Estos registros dan a esta familia una de sus caractersticas principales: la memoria segmentada que les proporciona facilidades nicas para relocalizar programas. As conviene analizar, en detalle, como se forma una direccin para tener acceso a la memoria. El microprocesador 8088 es capaz de direccionar hasta 1 MByte de memoria, para lo que se requiere una direccin de 20 bits. Si ni en la unidad de ejecucin ni en la unidad de interfase del canal existe un registro de 20 bits; cmo se forma una direccin? Sumador dedicado de 20 bits La direccin fsica la forma el sumador dedicado de la unidad de interfase del canal con el contenido de un registro de segmento, ms un desplazamiento (offset). Por ejemplo en la reinicializacin, varios de los microprocesadores de esta familia inician la ejecucin del programa en la localidad FFFF0H. En este caso, el contenido de todos los registros de segmento del microprocesador y del apuntador de instrucciones es 0000H con excepcin del registro del segmento de cdigo que despierta con FFFFH. La direccin de 20 bits se forma en el sumador mediante la suma del segmento multiplicado por 16 ms el desplazamiento: CS + IP 0000H Direccin = FFFF0H La forma usual para dar las direcciones es mediante una direccin lgica que da las direcciones del segmento y del desplazamiento que para la reinicializacin es:
18

FFFF0H

FFFFH:0000H a partir de la direccin lgica se forma la direccin fsica mediante una suma como la anterior. Apuntador de Instrucciones El registro apuntador de instrucciones (IP), es de 16 bits y siempre apunta a la direccin de la siguiente instruccin. Por lo tanto, es muy similar al registro contador de programa, PC, de otros microprocesadores. Ninguna instruccin tiene acceso directo a este registro pero, indirectamente mediante algunas instrucciones se puede cambiar, salvar o incluso obtener del segmento de pila. Las nicas diferencias de arquitectura entre el 8086 y el 8088 son la cola de instrucciones, en el 8086 es de 6 bytes, consecuencia de que el ancho de su canal de datos es de 16 bits.

1.6 Sistemas Digitales dedicados


Este tipo de Sistemas, a diferencia de una computadora personal, cumplen una tarea especfica que implica tanto aspectos de circuito como de programacin. Al igual que en una computadora personal, el dispositivo en el que se basan es un dispositivo programable que, usualmente, es un microprocesador o un microcontrolador. Emplean circuitos especficos para la aplicacin pero mantienen la estructura, que puede no incluir todos los perifricos de una computadora personal aunque esto depende de la aplicacin, de un Sistema que se basa en un microprocesador. Los ejemplos ms comunes de Sistemas Digitales dedicados, son los que emplean los aparatos domsticos como: lavadoras de ropa, hornos de microondas, equipo de ejercicio, equipos de audio y vdeo. Tambin, son muy utilizados en Sistemas de Control industrial y de automviles.

1.7 Base experimental


A fin de aprender tanto los aspectos tericos como los prcticos de los Sistemas Digitales, es indispensable contar con una base experimental que permita poner en prctica los conceptos tericos. En general, la base experimental tiene la forma de un sistema mnimo que se basa en un microprocesador determinado. En el presente curso, la base experimental es el sistema mnimo UAMI-188EB, que se basa en el microprocesador 80C188EB. Las razones principales para seleccionarlo son:

19

1]

Forma parte de la familia 8086/8088 de Intel, en la que se basan la mayora de las computadoras personales. Esto tiene, entre otras, la gran ventaja de que existe una gran cantidad de programacin desarrollada. Asimismo, los programas necesarios, en lenguaje ensamblador, para los cursos de Sistemas Digitales se pueden desarrollar en cualquier computadora personal desde las versiones originales hasta las ms recientes.

2]

El conocimiento de un microprocesador de sta familia, facilita el empleo de una computadora personal en varias aplicaciones, entre las que estn las especficas.

1.8 Objetivos del curso de Sistemas Digitales I


Los objetivos de ste curso son: I] Aprender los aspectos bsicos de la Arquitectura y de la programacin de los miembros originales de la familia 8086/8088 de Intel. II] Tener funcionando, alrededor de la 4 semana del trimestre, las partes principales de la tarjeta UAMI-188EB. Por lo tanto, en ste primer captulo se revisaron los conceptos bsicos de Arquitectura y organizacin de computadoras, que son materia de un curso de Arquitectura de Computadoras ( ), a partir de una plataforma especifica: los miembros originales de la familia 8086/8088 de Intel. Esto no es lo ms conveniente; sin embargo, Sistemas Digitales I es slo el primero de 3 cursos que permiten, adems de ensear los principios bsicos para el desarrollo de un Sistema Digital dedicado utilizando una base experimental especfica, revisar y comparar los principios generales en que se basan tanto la Arquitectura de referencia como las ms avanzadas del mismo y otros fabricantes. A continuacin, se detallar el desarrollo de los microprocesadores de la familia 8086/8088 de Intel ya que el 80C188EB forma parte de ella.

20

1.9 Los microprocesadores de Intel


En 1972 Intel fabric el microprocesador 4004 para una empresa japonesa, que lo iba a utilizar en una calculadora, ste microprocesador tena una arquitectura interna de slo 4 bits, una canal de datos de 4 bits y un canal de direcciones de 12 bits que le permita direccionar 4096 localidades de memoria. El conjunto de instrucciones era de 45. La empresa japonesa NO utiliz el 4004, que encontr aplicacin en los primeros juegos de vdeo y en controles pequeos, ya que permita utilizar un menor nmero de circuitos. En el mismo ao considerando que el microprocesador era un producto con buenas posibilidades comerciales Intel lanz el microprocesador 8008 que no era compatible con el 4004 caso nico ya que, usualmente, el microprocesador ms reciente es compatible con el anterior, el 8008 tena una arquitectura de 8 bits, con un canal de datos de 8 bits y un canal de direcciones 14 bits que le permita direccionar una memoria de 16Kbytes, el conjunto de instrucciones era de 48. A medida en que se desarrollaron ms aplicaciones para el microprocesador el conjunto de instrucciones y la memoria que se poda direccionar resultaron insuficientes. As, en 1973 Intel desarroll el

microprocesador 8080 que se considera el primero de los microprocesadores de 8 bits modernos gracias a sus caractersticas: arquitectura interna de 8 bits, canal de datos de 8 bits, canal de direcciones de 16 bits que permita direccionar hasta 64KBytes de memoria y un conjunto de instrucciones ms grande, fue compatible con el 8008 y ejecutaba las instrucciones a una velocidad 10 veces mayor. En 1977 Intel lanz el microprocesador 8085 que era una versin mejorada del 8080, principalmente respecto a las caractersticas de circuito y un aumento en la velocidad de alrededor de un 35%, la compatibilidad con el 8080 se mantuvo. Microprocesadores de 16 bits

En 1978 Intel lanz el microprocesador 8086 que mantena la compatibilidad con el 8085 pero, incorporaba cambios muy significativos: una arquitectura paralela de 16 bits, la unidad de ejecucin y la unidad de interfase del canal trabajando en forma simultnea, con canales de direcciones y de datos de 16 bits que le permite direccionar, mediante el empleo de registros de segmento, hasta 1Mbyte de memoria, el conjunto de instrucciones es de aproximadamente 100. En 1979 Intel lanz el microprocesador 8088 y en 1981, IBM comercializa la primera computadora personal basada en ste microprocesador. A
21

partir de se ao la aplicacin de las computadoras personales creci en una forma muy rpida hasta llegar a ser la herramienta bsica, y casi indispensable, que es en la actualidad.

Intel continu el desarrollo de microprocesadores de 16 bits con el 80186, ahora es una subfamilia, y el 80286 que incluye una unidad de manejo de memoria y un canal de direcciones de 24 bits que le permite direccionar hasta 16 MBytes. La tabla 1.1 muestra los microprocesadores de Intel desde el 4004 hasta el 80286.

Microprocesador

Canal de Datos Bits

Canal de Direcciones Bits 12 16 20 20 20 20 24

Tamao de Memoria Bytes 4K 64K 1M 1M 1M 1M 16M

4004 8085 8086 8088 80186 80188 80286

4 8 16 8 16 8 16

Tabla 1.1 Microprocesadores de Intel hasta el 80286

Microprocesadores de 32 bits El primer microprocesador de 32 bits que fabric, 1985, Intel fue el 80386DX con canales de datos y de direcciones de 32 bits que permiten direccionar hasta 4 gigabytes de memoria, la unidad de manejo de memoria es mejor que la del 80286, y el paralelismo del funcionamiento interno es mayor lo que le permite ejecutar la mayora de las instrucciones en 2 ciclos de reloj. Existi una versin, 80386SX, con un canal de datos de 16 bits para competir con algunas versiones del 80286 de otros fabricantes. El 80486DX, 1990, es un CPU 386DX mejorado que tiene integrado un coprocesador matemtico, equivalente al 80387. En 1990 se comercializ el 80486SX, una versin del 486DX con el coprocesador deshabilitado tambin para competir con versiones del 386DX de otros

22

fabricantes. En 1993 se lanz la primera versin del microprocesador PentiumI con una arquitectura interna de 32 bits y un canal de direcciones de 64 bits. La tabla 1.2 muestra los microprocesadores de Intel de 32 bits.

El desarrollo tecnolgico en microelectrnica que hace posible la fabricacin

de los

microprocesadores ha tenido un avance espectacular que permiti en las primeras versiones del microprocesador Pentium el empleo de alrededor de 3 millones de transistores la Fig. 1.7 muestra las densidades de integracin de la familia 8086/8088 de Intel a partir del 4004 con aproximadamente diez mil transistores.

Fig. 1.7 Densidades de integracin de los microprocesadores de Intel

Microprocesador

Canal de Datos Bits

Canal de Direcciones

Memoria Bytes

23

80386 DX 80386SL 80386SX 80486DX 80486SX Pentium

32 16 16 32 32 32/64

32 24 24 32 32 64

4G 32M 16M 4G 4G 4G

Tabla 1.2 Microprocesadores de 32 Bits de Intel

El avance en la velocidad de ejecucin de las instrucciones tambin es espectacular hasta alcanzar los 100 millones de instrucciones por segundo, MIPS, que puede ejecutar la versin inicial de Pentium. La Fig. 1.8 muestra el funcionamiento microprocesadores de Intel en funcin de los MIPS, se incluye el 4004. de los

24

Fig. 1.8 Evolucin de los microprocesadores de Intel

Resumen
1. Un sistema que se basa en un microprocesador tiene caractersticas de funcionamiento muy atractivas para la mayora de los usuarios. El ejemplo ms comn de ste sistema es la computadora personal. 2. Un microprocesador es un dispositivo programable, que le da caractersticas muy poderosas y atractivas a un sistema. 3. Las funciones ms comunes que debe realizar un microprocesador determinan su arquitectura.

25

4. Las partes principales de un microprocesador de propsito general, son la unidad de control, los registros de propsito general, los de direccionamiento, de palabra de estado del procesador y la unidad aritmtica y lgica. 5. Un sistema que se basa en un microprocesador tiene caractersticas de funcionamiento muy atractivas para la mayora de los usuarios. El ejemplo ms comn de ste sistema es la computadora personal. 6. Un microprocesador es un dispositivo programable, que le da caractersticas muy poderosas y atractivas a un sistema. Las funciones ms comunes que realiza un microprocesador determinan su arquitectura. 7. Las partes principales de un microprocesador de propsito general, son la unidad de control, los registros de propsito general, los de direccionamiento, de palabra de estado del procesador y la unidad aritmtica y lgica. 8. Los microprocesadores 8086/8088 de Intel son los miembros originales de sa familia que es en la que se basan la mayora de las computadoras personales. 9. La arquitectura interna de los microprocesadores 8086/8088 de Intel es de 16 bits y tiene como caractersticas principales considerar la memoria en forma segmentada y una arquitectura paralela: la unidad de ejecucin y la unidad de interfase del canal trabajan en forma simultnea. 10. La arquitectura paralela, pipeline, hace ms eficiente la ejecucin de los programas ya que la instruccin a ejecutar, en la mayora de los casos, est en la cola de instrucciones. 11. La arquitectura orientada a segmentos, de memoria, permite direccionar hasta un Megabyte de memoria y da grandes facilidades para la relocalizacin de programas. 12. La direccin de una localidad de memoria, direccin fsica, se forma a partir de una direccin lgica que, a su vez la forman un segmento y un desplazamiento. De sta manera se logra direccionar un Mbyte de memoria. 13. Los microprocesadores de la familia 8086/8088 tienen una palabra de estado del procesador, registro de banderas, con banderas de estado que permiten ejecutar transferencias del control de ejecucin del programa en forma condicional. Adems se registro tiene banderas de control que determinan algunas caractersticas de funcionamiento como la habilitacin de interrupciones.

26

14. En 1971, Intel fabric el primer microprocesador, el 4004 con una arquitectura interna de 4 bits y un canal de direcciones que le permita accesar hasta 4 Kbytes de memoria. 15. A finales de 1971 se introdujo el 8008 con una arquitectura de 8 bits, conjunto de 45 instrucciones y direccionamiento de 16 Kbytes, a partir de ste microprocesador el siguiente, 8080 en ste caso, siempre fue compatible con el anterior. 16. En 1976 se introdujo el 8086 que fue el primer microprocesador de 16 bits de Intel. 17. En 1981 IBM comercializa la primera computadora personal, que se basa en un 8088. 18. La gran popularidad de las computadoras personales y los avances tecnolgicos en microelectrnica permiten fabricar computadoras ms poderosas y econmicas. Los niveles de integracin tienen nmeros de transistores sin precedente, al igual que los millones de instrucciones por segundo, MIPS, que ejecutan los microprocesadores.

Preguntas
1. Cules son las partes que forman la estructura de un sistema que se basa en un microprocesador? 2. Cul es la funcin del microprocesador en el sistema de la pregunta anterior? 3. Qu funcin tienen los circuitos de temporizacin y de reinicializacin? 4. Cmo se conectan el microprocesador y las dems partes del sistema? 5. Qu tipos de dispositivos son los ms comunes en el susbsistema de memoria? 6. Cuales son las funciones bsicas de un microprocesador? 7. En base a esas funciones cul es una posible arquitectura del microprocesador? 8. Describa, brevemente, la arquitectura del microprocesador 8088 de Intel. 9. Cul es la direccin en que el 8086/8088 ejecutan su primer ciclo de recuperacin de cdigo? 10. Cmo se forma la direccin anterior? 11. Cmo pueden direccionar un Mbyte de memoria el 8086/8088, si su arquitectura es de 16 bits? 12. Cuales son las banderas de estado de la palabra de estado del procesador, registro de banderas, del 8086/8088? 13. Cuales son las banderas de control de la palabra de estado del procesador, registro de banderas, del 8086/8088?

27

14. Qu funcin tiene cada una de las banderas de estado y de control? 15. Describa, brevemente, cada uno de los registros del 8086/8088 y su funcin. 16. Cules son las diferencias entre el 8086 y el 8088? 17. Describa, brevemente, un sistema digital dedicado. 18. Existen sistemas digitales dedicados en una computadora personal? 19. Cules son las principales ventajas de los microprocesadores 8086/8088, respecto a los microprocesadores de segunda generacin como el 8085? 20. Estudie, brevemente, la arquitectura del microprocesador Z-80 de Zilog y comprelo con un 8085. 21. En base a su respuesta anterior, por qu fue tan popular el Z-80? 22. D las caractersticas mnimas de una computadora personal Pentium IV, suponiendo que la va a adquirir.

28

Vous aimerez peut-être aussi