Procesadores y microprocesadores Intel
Microprocesador 8008
 
 
     
 
 

 

El Microprocesador 8008

Historia del 8008

En 1969 Computer Terminal Corp. (ahora Datapoint) visitó Intel. Vic Poor, vicepresidente de Investigación y Desarrollo en CTC quería integrar la CPU (unos cien componentes TTL) de su nueva terminal Datapoint 2200 en unos pocos chips y reducir el costo y el tamaño del circuito electrónico.
Ted Hoff observó la arquitectura, el conjunto de instrucciones y el diseño lógico que había presentado CTC y estimó que Intel podría integrarlo en un sólo chip, así que Intel y CTC firmaron un contrato para desarrollar el chip. El chip, internamente llamado 1201, sería un dispositivo de 8 bits. Pensado para la aplicación de terminal inteligente, debería ser más complejo que el 4004.

Al principio parecía que el 1201 saldría antes que el 4004 ya que Federico Faggin tenía que desarrollar cuatro chips, siendo el 4004 el último de ellos. Sin embargo, después de algunos meses de trabajo con el 1201, el diseñador, Hal Feeney, fue puesto a diseñar un chip de memoria, con lo que el proyecto del 1201 fue puesto en el "freezer".

Mientras tanto, CTC también contrató a la empresa Texas Instruments para hacer el diseño del mismo chip como fuente alternativa. Al final de 1970 Intel continuó con el proyecto del 1201 bajo la dirección de Faggin y Feeney fue puesto nuevamente a trabajar en este proyecto.

En junio de 1971, TI puso un aviso en la revista Electronics donde se detallaban las capacidades de este integrado MOS LSI. Con la leyenda "CPU en un chip" se acompañaba la descripción del circuito a medida para la terminal Datamation 2200. El aviso decía "TI lo desarrolló y lo está produciendo para Computer Terminal Corp.". Las dimensiones indicadas eran 5,46 por 5,71 mm, un chip enorme aun para la tecnología de 1971 y era 225% más grande que el tamaño estimado por Intel.

El chip de Texas Instruments, sin embargo, jamás funcionó y no se puso en el mercado. Sorprendentemente, TI patentó la arquitectura del 1201, que fue realizado por CTC con algunos cambios de Intel, con lo que luego hubo batallas legales entre Intel y TI.

Durante el verano (en el hemisferio norte) de 1971, mientras el trabajo con el 1201 estaba progresando rápidamente, Datapoint decidió que no necesitaba más el 1201. La recesión económica de 1970 había bajado el costo de los circuitos TTL de tal manera que ya no era rentable el circuito a medida. Datapoint le dejó usar la arquitectura a Intel y a cambio la última no le cobraba más los costos de desarrollo.

Intel decidió cambiarle el nombre al 1201: se llamaría 8008. El primero de abril de 1972 se lanzó este microprocesador al mercado con un conjunto de chips de soporte, como una familia de productos llamado MCS-8. Estos chips de soporte eran integrados existentes con los nombres cambiados. El interés del mercado por el MCS-8 fue muy alto, sin embargo las ventas fueron bajas.

Para solucionar este inconveniente, se diseñaron herramientas de hardware y software, entrenamiento y sistemas de desarrollo. Estos últimos son computadoras especializadas para desarrollar y depurar programas (quitarles los errores) para el microprocesador específico. Un año después, Intel recibía más dinero de los sistemas de desarrollo que de los microprocesadores y chips de soporte.

A título informativo cabe destacar que este microprocesador de ocho bits poseía alrededor de 3500 transistores, direccionaba 16 KBytes y la frecuencia máxima de reloj (clock) era de 108 KHz.

Conjunto De Registros Del 8008

Este conjunto de registros forma la base para comprender el conjunto de registros de los siguientes procesadores, ya que se basan en éste. Éstos son:

 
Clasificación Registro Longitud (en bits)
Acumulador A 8
Registros de uso general B 8
C 8
D 8
E 8
H 8
L 8
Contador de programa PC 14

 

 
El 8008 no tiene registro de puntero de stack (SP). Tiene una pila interna de 8 posiciones para almacenar las direcciones de retorno en el caso de llamadas a subrutina.

Hay cuatro indicadores (o flags): Carry, Sign, Parity y Zero (C, S, P, Z).

Conjunto de instrucciones del 8008

               
SALTOS LLAMADAS RETORNOS CONDICIÓN
JMP Addr CALL Addr RET Incondicional
JNC Addr CNC Addr RNC Si no hay carry
JNZ Addr CNZ Addr RNZ Si no es cero
JP Addr CP Addr RP Si es positivo
JPO Addr CPO Addr RPO Si paridad impar
JC Addr CC Addr RC Si hay carry
JZ Addr CZ Addr RZ Si es cero
JM Addr CM Addr RM Si es negativo
JPE Addr CPE Addr RPE Si paridad par
   
 
MOVER DATO ARITMETICA Y LOGICA
MVI reg,D8 reg <- D8 ADI D8 A <- A + D8
MOV reg,A reg <- A ADD reg A <- A + reg
MOV reg,B reg <- B ACI D8 A <- A + D8 + Cy
MOV reg,C reg <- C ADC reg A <- A + reg + Cy
MOV reg,D reg <- D SUI D8 A <- A - D8
MOV reg,E reg <- E SUB reg A <- A - reg
MOV reg,H reg <- H SBI D8 A <- A - D8 - Cy
MOV reg,L reg <- L SBB reg A <- A - reg - Cy
  ANI D8 A <- A and D8
INCREMENTAR DECREMENTAR ANA reg A <- A and reg
INR B: B<-B+1 DCR B: B<-B-1 XRI D8 A <- A xor D8
INR C: C<-C+1 DCR C: C<-C-1 XOR reg A <- A xor reg
INR D: D<-D+1 DCR D: D<-D-1 ORI D8 A <- A or D8
INR E: E<-E+1 DCR E: E<-E-1 ORA reg A <- A or reg
INR H: H<-H+1 DCR H: H<-H-1 CPI D8 A - D8
INR L: L<-L+1 DCR L: L<-L-1 CMP reg A - reg
   
ROTAR ACUMULADOR CONTROL RESTART
RLC HLT RST n (0 <= n <= 7)

Es una llamada a una subrutina cuya dirección absoluta es 8*n

RRC NOP
RAL (acarreo)  
RAR (acarreo)
      Instrucciones de Entrada y Salida      
             
   
ENTRADA DE PORT SALIDA A PORT
IN n (0 <= n <= 7)
A <- Port n
OUT n (8 <= n <=31)
Port n <- A
 
             
Donde Addr es una dirección de 14 bits y D8 es un dato inmediato de 8 bits. reg puede ser cualquiera de los siete registros A, B, C, D, E, H o L o bien puede ser M. El último indica direccionamiento indirecto utilizando el par HL como puntero.