Procesadores y microprocesadores Intel
Microprocesador 8080
 
 
     
 
 

 

El Microprocesador 8080

Historia del 8080

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ón Registro Longitud Pares de registros Longitud
Acumulador
A
8 bits
 
Registros de uso general B 8 bits BC 16 bits
C 8 bits
D 8 bits DE 16 bits
E 8 bits
H 8 bits HL 16 bits
L 8 bits
Contador de programa PC 16 bits  
Puntero de pila SP 16 bits
Indicadores F 8 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

Conjunto de instrucciones del 8080

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

SUMA 16 BITS CARGA 16 BITS
DAD B HL <- HL+BC LXI B,D16 BC <- D16
DAD D HL <- HL+DE LXI D,D16 DE <- D16
DAD H HL <- HL+HL LXI H,D16 HL <- D16
DAD SP HL <- HL+SP LXI SP,D16 SP <- D16
  LHLD Addr HL <- (Addr)
SHLD Addr (Addr) <- HL

 

INCREMENTAR DECREMENTAR
INR M (HL) <- (HL)+1 DCR M (HL) <- (HL)-1
INR A A <- A+1 DCR A A <- A-1
INX B BC <- BC+1 DCX B BC <- BC-1
INX D DE <- DE+1 DCX D DE <- DE-1
INX H HL <- HL+1 DCX H HL <- HL-1
INX SP SP <- SP+1 DCX SP SP <- SP-1

CARGA 8 BITS ESPECIALES
LDAX B A <- (BC) XCHG DE <-> HL
LDAX D A <- (DE) DAA Ajuste decimal acumul.
STAX B (BC) <- A CMA A <- 0FFh - A
STAX D (DE) <- A STC Cy <- 1
LDA Addr A <- (Addr) CMC Cy <- 1 - Cy
STA Addr (Addr) <- A  

OPERACIONES CON LA PILA CONTROL
PUSH B Push BC DI Deshabilitar interrupciones
PUSH D Push DE EI Habilitar interrupciones
PUSH H Push HL  
PUSH PSW Push AF ENTRADA/SALIDA
POP B Pop BC IN D8 A <- Port D8
POP D Pop DE OUT D8 Port D8 <- A
POP H Pop HL  
POP PSW Pop AF
XTHL HL <-> (SP)
SPHL SP <- 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

Dip 40

 

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:

Pata Nombre Descripción
1 A10 Bus de direcciones
2 GND Referencia de tierra. Todas las tensiones se miden con respecto a este punto.
3 D4 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal de control que indica salida a periférico.
4 D5 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal que indica si el uP está en ciclo de búsqueda de instrucción.
5 D6 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal de control que indica entrada de periférico.
6 D7 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal de control que indica lectura de memoria.
7 D3 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal que indica que el uP se ha detenido.
8 D2 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal que indica que se realiza una operación con el stack.
9 D1 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Modo lectura/escritura.
10 D0 Si SYNC = 0: Bus de datos.
Si SYNC = 1: Señal de reconocimiento de interrupción.
11 -5V Una de las tres patas de alimentación del 8080.
12 RESET Señal de borrado de todos los registros internos del 8080. Para ello, ponerlo a uno durante tres ciclos de reloj como mínimo.
13 HOLD Sirve para poner los buses en alta impedancia para el manejo de DMA (acceso directo a memoria).
14 INT Señal de pedido de interrupción.
15 CLK2 Señal de reloj (debe venir del generador de reloj 8224).
16 INTE Señal de aceptación de interrupción.
17 DBIN Indica que el bus de datos está en modo lectura.
18 /WR Indica que el bus de datos está en modo escritura.
19 SYNC Este pin se pone a uno cuando comienza una nueva instrucción.
20 +5V Una de las tres patas de alimentación del 8080.
21 HLDA Reconocimiento de HOLD.
22 CLK1 Señal de reloj (debe venir del generador de reloj 8224).
23 READY Sirve para sincronizar memorias o periféricos lentos (detiene al 8080 mientras se lee o escribe el dispositivo).
24 WAIT Cuando vale "1", el 8080 está esperando al periférico lento.
25 A0 Bus de direcciones.
26 A1
27 A2
28 +12V Una de las tres patas de alimentación del 8080.
29 A3
Bus de direcciones.
30 A4
31 A5
32 A6
33 A7
34 A8
35 A9
36 A15
37 A12
38 A13
39 A14
40 A11

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.