El microprocesador 8080

Por Dario Alejandro Alpern

Historia del 8080

Durante el verano de 1971, Federico Faggin fue a Europa para realizar seminarios sobre el MCS-4 y el 8008 y para visitar clientes. Recibi� una gran cantidad de cr�ticas (algunas de ellas constructivas) acerca de la arquitectura y el rendimiento de los microprocesadores. Las compa��as que estaban m�s orientadas hacia la computaci�n eran las que le dec�an las peores cr�ticas.

Cuando regres� a su casa, se le ocurri� una idea de c�mo hacer un microprocesador de 8 bits mejor que el 8008, incorporando muchas de las caracter�sticas que esa gente estaba pidiendo, sobre todo, m�s velocidad y facilidad de implementaci�n en el circuito.

Decidi� utilizar el nuevo proceso NMOS (que utiliza transistores MOS de canal N) que se utilizaba en las �ltimas memorias RAM din�micas de 4 kilobits, adem�s le agreg� una mejor estructura de interrupciones, mayor direccionamiento de memoria (16 KB en el 8008 contra 64 KB en el 8080) e instrucciones adicionales (como se puede apreciar en las descripciones de los conjuntos de instrucciones que se encuentran m�s abajo).

Al principio de 1972 decidi� realizar el nuevo chip. Sin embargo Intel decidi� esperar a que el mercado respondiera primero con el MCS-4 y luego con el MCS-8 antes de dedicar m�s dinero al desarrollo de nuevos dise�os.

En el verano de 1972, la decisi�n de Intel fue comenzar con el desarrollo del nuevo microprocesador. Shima (el mismo de antes) comenz� a trabajar en el proyecto en noviembre.

La primera fabricaci�n del 8080 se realiz� en diciembre de 1973. Los miembros del grupo que hac�an el desarrollo encontraron un peque�o error y el primero de abril de 1974 se pudo lanzar al mercado el microprocesador.

El 8080 realmente cre� el verdadero mercado de los microprocesadores. El 4004 y el 8008 lo sugirieron, pero el 8080 lo hizo real. Muchas aplicaciones que no eran posibles de realizar con los microprocesadores previos pudieron hacerse realidad con el 8080. Este chip se us� inmediatamente en cientos de productos diferentes. En el 8080 corr�a el famoso sistema operativo CP/M (siglas de Control Program for Microcomputers) de la d�cada del '70 que fue desarrollado por la compa��a Digital Research.

Como detalle constructivo el 8080 ten�a alrededor de 6000 transistores MOS de canal N (NMOS) de 6 micrones, se conectaba al exterior mediante 40 patas (en formato DIP) y necesitaba tres tensiones para su funcionamiento (t�pico de los circuitos integrados de esa �poca): +12V, +5V y -5V. La frecuencia m�xima era de 2 MHz.

La competencia de Intel vino de Motorola. Seis meses despu�s del lanzamiento del 8080, apareci� el 6800. Este producto era mejor en varios aspectos que el primero. Sin embargo, la combinaci�n de tiempos (el 8080 sali� antes), "marketing" m�s agresivo, la gran cantidad de herramientas de hardware y software, y el tama�o del chip (el del 8080 era mucho menor que el del 6800 de Motorola) inclinaron la balanza hacia el 8080.

El mayor competidor del 8080 fue el microprocesador Z-80, que fue lanzado en 1976 por la empresa Zilog (fundada por Faggin). Entre las ventajas pueden citarse: mayor cantidad de instrucciones (158 contra 74), frecuencia de reloj m�s alta, circuito para el apoyo de refresco de memorias RAM din�micas, compatibilidad de c�digo objeto (los c�digos de operaci�n de las instrucciones son iguales) y una sola tensi�n para su funcionamiento (+5V). El Z-80 fue concebido por Federico Faggin y Masatoshi Shima como una mejora al 8080, comenzando el desarrollo a partir de noviembre de 1974 en la empresa presidida por el primero. Tal fue el �xito que tuvo esta CPU que luego varias empresas comenzaron a producir el chip: SGS-Ates, Mostek, Philips, Toshiba, NEC, Sharp, etc.

Este microprocesador ocup� r�pidamente el lugar del anterior y se us� en todo tipo de microcomputadoras (incluyendo muchas de las "home computers" de la primera mitad de la d�cada del '80).

Arquitectura del 8080

Debe notarse la gran semejanza en la arquitectura de los microprocesadores 8008 y 8080.

Conjunto de registros del 8080

Es una ampliaci�n del conjunto del 8008, como puede observarse a continuaci�n:

Clasificaci�nRegistroLongitudPares de registrosLongitud
AcumuladorA8 bits
Registros de uso generalB8 bitsBC16 bits
C8 bits
D8 bitsDE16 bits
E8 bits
H8 bitsHL16 bits
L8 bits
Contador de programaPC16 bits
Puntero de pilaSP16 bits
IndicadoresF8 bits

Hay cinco indicadores (Sign, Zero, Alternate Carry, Parity, Carry) ubicado en un registro de ocho bits llamado F (de Flags):

Bit 7 6 5 4 3 2 1 0
Flag S Z 0 AC 0 P 1 C

Los tres bits no usados siempre toman esos valores.

Conjunto de instrucciones del 8080

Incluye el conjunto de instrucciones del 8008. Adem�s existen las siguientes:

SUMA 16 BITSCARGA 16 BITS
DAD BHL <- HL+BCLXI B,D16BC <- D16
DAD DHL <- HL+DELXI D,D16DE <- D16
DAD HHL <- HL+HLLXI H,D16HL <- D16
DAD SPHL <- HL+SPLXI SP,D16SP <- D16
LHLD AddrHL <- (Addr)
SHLD Addr(Addr) <- HL

INCREMENTARDECREMENTAR
INR M(HL) <- (HL)+1DCR M(HL) <- (HL)-1
INR AA <- A+1DCR AA <- A-1
INX BBC <- BC+1DCX BBC <- BC-1
INX DDE <- DE+1DCX DDE <- DE-1
INX HHL <- HL+1DCX HHL <- HL-1
INX SPSP <- SP+1DCX SPSP <- SP-1

CARGA 8 BITSESPECIALES
LDAX BA <- (BC)XCHGDE <-> HL
LDAX DA <- (DE)DAAAjuste decimal acumul.
STAX B(BC) <- ACMAA <- 0FFh - A
STAX D(DE) <- ASTCCy <- 1
LDA AddrA <- (Addr)CMCCy <- 1 - Cy
STA Addr(Addr) <- A

OPERACIONES CON LA PILACONTROL
PUSH BPush BCDIDeshabilitar interrupciones
PUSH DPush DEEIHabilitar interrupciones
PUSH HPush HL
PUSH PSWPush AFENTRADA/SALIDA
POP BPop BCIN D8A <- Port D8
POP DPop DEOUT D8Port D8 <- A
POP HPop HL
POP PSWPop AF
XTHLHL <-> (SP)
SPHLSP <- HL

donde Addr es una direcci�n de 16 bits.

Si bien todas las instrucciones del 8008 est�n incluidas en el 8080, un programa grabado en ROM para el primer procesador no correr� para el segundo ya que los c�digos de operaci�n de las instrucciones son diferentes, por lo que se deber� volver a ensamblar el c�digo fuente para que pueda funcionar en el 8080.

Terminales (pinout) del 8080

Este microprocesador estaba encapsulado en el formato DIP (Dual Inline Package) de 40 patas (veinte de cada lado). La distancia entre las patas es de 0,1 pulgadas (2,54 mil�metros), mientras que la distancia entre patas enfrentadas es de 0,6 pulgadas (15,32 mil�metros).

N�tese en el gr�fico el semic�rculo que identifica la posici�n de la pata 1. Esto sirve para no insertar el chip al rev�s en el circuito impreso.

Las funciones de las 40 patas con las que se conecta el 8080 con el exterior son las siguientes:

PataNombreDescripci�n
1A10Bus de direcciones
2GNDReferencia de tierra. Todas las tensiones se miden con respecto a este punto.
3D4Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al de control que indica salida a perif�rico.
4D5Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al que indica si el uP est� en ciclo de b�squeda de instrucci�n.
5D6Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al de control que indica entrada de perif�rico.
6D7Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al de control que indica lectura de memoria.
7D3Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al que indica que el uP se ha detenido.
8D2Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al que indica que se realiza una operaci�n con el stack.
9D1Si SYNC = 0: Bus de datos.
Si SYNC = 1: Modo lectura/escritura.
10D0Si SYNC = 0: Bus de datos.
Si SYNC = 1: Se�al de reconocimiento de interrupci�n.
11-5VUna de las tres patas de alimentaci�n del 8080.
12RESETSe�al de borrado de todos los registros internos del 8080. Para ello, ponerlo a uno durante tres ciclos de reloj como m�nimo.
13HOLDSirve para poner los buses en alta impedancia para el manejo de DMA (acceso directo a memoria).
14INTSe�al de pedido de interrupci�n.
15CLK2Se�al de reloj (debe venir del generador de reloj 8224).
16INTESe�al de aceptaci�n de interrupci�n.
17DBINIndica que el bus de datos est� en modo lectura.
18/WRIndica que el bus de datos est� en modo escritura.
19SYNCEste pin se pone a uno cuando comienza una nueva instrucci�n.
20+5VUna de las tres patas de alimentaci�n del 8080.
21HLDAReconocimiento de HOLD.
22CLK1Se�al de reloj (debe venir del generador de reloj 8224).
23READYSirve para sincronizar memorias o perif�ricos lentos (detiene al 8080 mientras se lee o escribe el dispositivo).
24WAITCuando vale "1", el 8080 est� esperando al perif�rico lento.
25A0Bus de direcciones.
26A1
27A2
28+12VUna de las tres patas de alimentaci�n del 8080.
29A3Bus de direcciones.
30A4
31A5
32A6
33A7
34A8
35A9
36A15
37A12
38A13
39A14
40A11

Cuando la pata SYNC est� a "1" l�gico, las patas D0-D7 pasan a ser se�ales de control, por lo que no se puede conectar directamente D0-D7 al bus de datos. Se debe intercalar un controlador y amplificador de bus 8228.

De esta manera se puede observar que el 8080 no funciona si no se agregan los circuitos integrados de soporte 8224 y 8228.

Nedstat Counter