Articulo de referencia

Intel 8008

{{cite web |title=The Life Cycle of a CPU |url=https://www.cpushack.com/life-cycle-of-cpu.html |website=www.cpushack.com}} "},"slowest":{"wt":"500"},"slow-unit":{"wt":"kHz"},"fa...

El Intel 8008 (" ocho mil ocho " u " ochenta y ocho ") es un microprocesador de 8 bits de los primeros tiempos, capaz de direccionar 16 KB de memoria , presentado en abril de 1972. La arquitectura del 8008 fue diseñada por Computer Terminal Corporation (CTC) e implementada y fabricada por Intel . Si bien el 8008 fue diseñado originalmente para su uso en el terminal programable Datapoint 2200 de CTC , un acuerdo entre CTC e Intel permitió a Intel comercializar el chip a otros clientes después de que Seiko expresara interés en usarlo para una calculadora .

Historia

Oblea Intel 8008 y dos procesadores : uno cerrado y otro abierto. 

Para abordar varios problemas con el Datapoint 3300 , incluida la radiación de calor excesiva, Computer Terminal Corporation (CTC) diseñó la arquitectura del sucesor planeado del 3300 con una CPU como parte del circuito interno reimplementada en un solo chip. Buscando una empresa capaz de producir su diseño de chip, el cofundador de CTC, Austin O.  "Gus" Roche, recurrió a Intel, entonces principalmente un proveedor de chips de memoria. [ 3 ] Roche se reunió con Bob Noyce , quien expresó su preocupación por el concepto; John Frassanito recuerda que: [ 3 ]

Noyce dijo que era una idea interesante y que Intel podría llevarla a cabo, pero que sería una mala decisión. Explicó que, si bien solo se puede vender un chip por computadora, con la memoria se pueden vender cientos de chips por computadora.

Otra preocupación importante era que la clientela existente de Intel compraba sus chips de memoria para usarlos con sus propios procesadores; si Intel lanzaba su propio procesador, podría ser vista como un competidor, y sus clientes podrían buscar memoria en otro lugar. No obstante, Noyce aceptó un contrato de desarrollo de 50 000 dólares estadounidenses a principios de 1970 ( equivalente a 415 000 dólares en 2025 ). Texas Instruments (TI) también se incorporó como segundo proveedor.

En diciembre de 1969, el ingeniero de Intel Stan Mazor y un representante de CTC se reunieron para analizar las opciones para el chipset lógico que alimentaría una nueva terminal comercial de CTC. Mazor, quien había estado trabajando con Ted Hoff en el desarrollo del Intel 4004 , propuso que un microprocesador programable de un solo chip podría ser menos engorroso y, en última instancia, más rentable que construir un chipset lógico personalizado. CTC estuvo de acuerdo y comenzó el desarrollo del chip, que en ese momento se conocía como el 1201. [ 4 ]

TI pudo fabricar muestras del 1201 basándose en los planos de Intel, denominándolo TMX  1795. Estas resultaron tener errores y fueron rechazadas. [ 5 ] Las versiones de Intel se retrasaron. CTC decidió reimplementar la nueva versión del terminal utilizando TTL discreto en serie en lugar de esperar una CPU de un solo chip. El nuevo sistema se lanzó como Datapoint 2200 en la primavera de 1970, con su primera venta a General Mills el 25 de mayo de 1970. [ 3 ] CTC detuvo el desarrollo del 1201 después del lanzamiento del 2200, ya que ya no era necesario. Más tarde, a principios de 1971, Seiko se acercó a Intel, expresando su interés en utilizar el 1201 en una calculadora científica, probablemente después de ver el éxito del más simple 4004 utilizado por Busicom en sus calculadoras comerciales. [ 4 ] A continuación se realizó un pequeño rediseño, bajo el liderazgo de Federico Faggin , el diseñador del 4004 , ahora líder del proyecto del 1201, ampliando el diseño de 16 pines a 18 pines, y el nuevo 1201 se entregó a CTC a finales de 1971. [ 3 ] 

Para entonces, CTC había pasado a otro proyecto, esta vez al Datapoint 2200  II de arquitectura paralela, que era más rápido que el 1201. CTC votó a favor de finalizar su participación en el 1201, cediendo la propiedad intelectual del diseño a Intel en lugar de pagar el contrato de 50 000 dólares. Intel lo renombró como 8008 y lo incluyó en su catálogo en abril de 1972, con un precio de 120 dólares estadounidenses ( equivalente a 924 dólares en 2025 ). Este cambio de nombre pretendía aprovechar el éxito del chip 4004, presentando el 8008 simplemente como un puerto de 4 a 8, pero el 8008 no se basa en el 4004. [ 6 ] El 8008 se convirtió en un diseño comercialmente exitoso . Le siguió el popular Intel 8080 y, posteriormente, la exitosa familia Intel x86 . [ 3 ]

En el Reino Unido, un equipo de SE Laboratories Engineering (EMI), liderado por Tom Spink, construyó en 1972 un microordenador basado en una muestra de preproducción del 8008. Joe Hardman amplió el chip con una pila externa. Esto, entre otras cosas, le proporcionó protección y recuperación ante fallos de alimentación. Joe también desarrolló una impresora de pantalla directa. El sistema operativo se escribió utilizando un metaensamblador desarrollado por L.  Crawford y J.  Parnell para un PDP-11 de Digital Equipment Corporation . [ 7 ] El sistema operativo se grabó en una PROM. Era controlado por interrupciones, con colas y basado en un tamaño de página fijo para programas y datos.

El 8008 fue la CPU de los primeros ordenadores personales comerciales sin calculadora (excluyendo el Datapoint 2200): el kit estadounidense SCELBI y los preensamblados Micral N francés y MCM/70 canadiense. También fue el microprocesador de control de los primeros modelos de la familia 2640 de terminales de ordenador de Hewlett-Packard . [ 8 ]

En 1973, Intel ofreció un simulador de conjunto de instrucciones para el 8008 llamado INTERP/8. [ 9 ] Fue escrito en FORTRAN IV por Gary Kildall mientras trabajaba como consultor para Intel. [ 10 ] [ 11 ]

Características

La arquitectura 8008 incluye las siguientes características: [ 12 ]

  • 48 instrucciones;
  • un acumulador de 8 bits (A);
  • seis registros de 8 bits (B, C, D, E, H, L)
  • Acceso a memoria de 16 KB utilizando los registros H y L (HL) como una dirección de 14 bits (los dos bits superiores se ignoran);
  • 8 bits por cada celda de memoria;
  • capacidad de interrupción;
  • un contador de programa de 14 bits;
  • una pila de llamadas de siete niveles y 14 bits ;
  • cuatro bits de código de condición : acarreo (C), paridad par (P), cero (Z) y signo (S).

El 8008 se suministraba en un paquete de doble en línea de 18 pines . [ 12 ]

Diseño

Diagrama de bloques i8008 [ 13 ]

El 8008 se implementó en lógica PMOS de modo de enriquecimiento de puerta de silicio de 10 μm . Las versiones iniciales podían funcionar a frecuencias de reloj de hasta 0,5 MHz. Esto se aumentó posteriormente en el 8008-1 a un máximo especificado de 0,8 MHz. Las instrucciones toman entre 3 y 11 estados T, donde cada estado T es 2 ciclos de reloj. [ 14 ] Las cargas de registro a registro y las operaciones de ALU toman 5T (20 μs a 0,5 MHz), registro a memoria 8T (32 μs), mientras que las llamadas y saltos (cuando se toman) toman 11 estados T (44 μs). [ 15 ] El 8008 es un poco más lento en términos de instrucciones por segundo (36.000 a 80.000 a 0,8 MHz) que el Intel 4004 de 4 bits y el Intel 4040 . [ 16 ] Pero dado que el 8008 procesa datos de 8 bits a la vez y puede acceder a mucha más RAM, en la mayoría de las aplicaciones tiene una ventaja de velocidad significativa sobre estos procesadores. El 8008 tiene 3500 transistores . [ 17 ]        

El chip, limitado por su encapsulado DIP de 18 pines , tiene un único bus de 8 bits que funciona con triple función para transferir 8 bits de datos, 14 bits de dirección y dos bits de estado. El pequeño encapsulado requiere aproximadamente 30 chips de soporte TTL para la interfaz con la memoria. [ 18 ] Por ejemplo, la dirección de 14 bits, que puede acceder a "16 K × 8 bits de memoria", necesita ser almacenada por parte de esta lógica en un registro de dirección de memoria (MAR) externo. El 8008 puede acceder a 8 puertos de entrada y 24 puertos de salida. [ 14 ]

El posterior Intel 8080 NMOS de 40 pines amplió los registros y el conjunto de instrucciones del 8008 e implementó una interfaz de bus externo más eficiente (utilizando los 22 pines adicionales). A pesar de una estrecha relación arquitectónica, el 8080 no se hizo compatible binariamente con el 8008, por lo que un programa del 8008 no se ejecutaría en un 8080. Sin embargo, existían ensambladores para el 8080 que admitían la misma sintaxis y mnemónicos de instrucciones que el ensamblador del 8008, pero que producían código máquina del 8080, por lo que el código en lenguaje ensamblador para el 8008 podía ensamblarse en el código máquina del 8080. [ 19 ]

El Intel 8085 es una versión eléctricamente modernizada del 8080 que utiliza transistores de modo de agotamiento y además incorpora dos nuevas instrucciones.

El Intel 8086 , el procesador x86 original, es una extensión no estricta del 8080, por lo que también se asemeja vagamente al diseño original del Datapoint 2200. Casi todas las instrucciones del Datapoint 2200 y del 8008 tienen un equivalente no solo en el conjunto de instrucciones del 8080, 8085 y Z80 , sino también en el conjunto de instrucciones de los procesadores x86 modernos (aunque las codificaciones de las instrucciones son diferentes).

Conjunto de instrucciones

Las instrucciones tienen una longitud de uno a tres bytes. El formato de instrucción es un byte de código de operación, seguido de hasta dos bytes de operandos. Los operandos pueden ser una dirección, una constante, un registro o la memoria a la que apunta el par de registros HL, referenciada como M. El 8008 tiene la instrucción JMP (salto) que reemplaza el contador de programa con una nueva dirección de memoria. Además, las instrucciones CAL (llamada) y RET (retorno) proporcionan siete niveles de invocación de subrutinas. La instrucción RST (reinicio) es un atajo de un byte para ejecutar ocho subrutinas ubicadas en los primeros 64 bytes de instrucción. Las subrutinas se encuentran en direcciones fijas de 00h, 08h, 10h, ..., 38h. Estas están diseñadas para ser proporcionadas a hardware externo para invocar rutinas de servicio de interrupción, o pueden emplearse como llamadas rápidas. Se puede realizar una copia directa entre cualquier par de registros o entre un registro y memoria. Se admiten ocho funciones matemáticas/lógicas entre el acumulador (A) y cualquier registro, memoria o valor inmediato. Los resultados siempre se almacenan en el registro A. Las instrucciones operan solo con 8 bits; no existen operaciones de 16 bits. Se admiten incrementos y decrementos para la mayoría de los registros, pero, curiosamente, no para el A. El registro A admite cuatro instrucciones de rotación.

Todas las instrucciones se ejecutan en 3 a 11 estados. Cada estado requiere dos ciclos de reloj.

Ejemplo de código 1

El siguiente código fuente en lenguaje ensamblador 8008 corresponde a una subrutina MEMCPYque copia un bloque de bytes de datos de un tamaño determinado de una ubicación a otra. El ensamblador 8008 de Intel solo admitía los operadores + y -. Este ejemplo utiliza los operadores AND y SHR (desplazamiento a la derecha) del ensamblador 8080 para seleccionar los bytes bajo y alto de una dirección de 14 bits y colocarlos en los registros de 8 bits. Un programador de 8008 de la época debía calcular los números e introducirlos manualmente en el ensamblador.

En el código anterior, todos los valores se dan en octal. Las ubicaciones SRC, DST, y CNTson parámetros de 16 bits para la subrutina llamada MEMCPY. En realidad, solo se utilizan 14 bits de los valores, ya que la CPU solo tiene un espacio de memoria direccionable de 14 bits. Los valores se almacenan en formato little-endian , aunque esta es una elección arbitraria, ya que la CPU es incapaz de leer o escribir más de un byte en la memoria a la vez. Como no hay ninguna instrucción para cargar un registro directamente desde una dirección de memoria dada, el par de registros HL debe cargarse primero con la dirección, y el registro de destino puede luego cargarse desde el operando M, que es una carga indirecta desde la ubicación de memoria en el par de registros HL. El par de registros BC se carga con el CNTvalor del parámetro y se decrementa al final del bucle hasta que se vuelve cero. Nótese que la mayoría de las instrucciones utilizadas ocupan un único código de operación de 8 bits.

Ejemplo de código 2

El siguiente código fuente en lenguaje ensamblador para el microprocesador 8008 corresponde a una subrutina simplificada llamada MEMCPY2, que copia un bloque de bytes de datos de una ubicación a otra. Al reducir el contador de bytes a 8 bits, se dispone de espacio suficiente para cargar todos los parámetros de la subrutina en el archivo de registros del 8008.

Interrumpe

Placa base Intel SIM8-01, posiblemente el primer uso del procesador 8008. Contiene 1 KB de RAM en 32 chips y 2 KB de EPROM en ocho chips. No dispone de funciones de interrupción.

Las interrupciones en el 8008 están implementadas solo parcialmente. Después de que se activa la línea INT, el 8008 reconoce la interrupción emitiendo un código de estado S0,S1,S2 = 011 en el tiempo T1I. En el siguiente ciclo de búsqueda de instrucciones, una instrucción es "bloqueada" (término de Intel) por hardware externo en el bus. Normalmente, se trata de una instrucción RST de un byte.

En este punto, surge un problema. El 8008 no dispone de ningún mecanismo para guardar su estado arquitectónico . Solo puede escribir en memoria mediante una dirección en el par de registros HL. Al interrumpirse, no existe ningún mecanismo para guardar HL, por lo que no hay forma de guardar los demás registros y banderas a través de HL. Debido a esto, es necesario conectar algún tipo de dispositivo de memoria externa, como una pila de hardware o un par de registros de lectura/escritura , al 8008 a través de los puertos de E/S para ayudar a guardar su estado. [ 20 ]

Diseñadores

  • CTC ( Conjunto de instrucciones y arquitectura ): Victor Poor y Harry Pyle .
  • Intel ( Implementación en silicio ):
    • Ted Hoff y Stan Mazor propusieron una implementación de un solo chip de la arquitectura CTC, utilizando memoria de registro RAM en lugar de memoria de registro de desplazamiento, y también añadieron algunas instrucciones y la funcionalidad de interrupción. El diseño del chip 8008 (originalmente llamado 1201) comenzó antes del desarrollo del 4004. Sin embargo, Hoff y Mazor no pudieron ni desarrollaron un "diseño de silicio" porque no eran ni diseñadores de chips ni desarrolladores de procesos, y además, la metodología y los circuitos de diseño basados ​​en compuertas de silicio con carga de arranque necesarios, que Federico Faggin estaba desarrollando para el 4004, aún no estaban disponibles. [ 21 ]
    • Federico Faggin , tras finalizar el diseño del modelo 4004, se convirtió en el líder del proyecto desde enero de 1971 hasta su exitosa finalización en abril de 1972, después de que hubiera estado suspendido, por falta de avances, durante unos siete meses.
    • Hal Feeney , ingeniero de proyecto, realizó el diseño lógico detallado, el diseño de circuitos y la disposición física bajo la supervisión de Faggin, empleando la misma metodología de diseño que Faggin había desarrollado originalmente para el microprocesador Intel 4004 y utilizando los circuitos básicos que había desarrollado para el 4004. Se grabó un logotipo combinado "HF" en el chip, aproximadamente a la mitad de la distancia entre las almohadillas de conexión D5 y D6.

Fuentes secundarias

Véase también

Notas

  1. Las banderas CPZS se presentan como un grupo en este orden durante el estado 4 del ciclo PCC de la instrucción INP.

Referencias

  1. "El ciclo de vida de una CPU" . www.cpushack.com .
  2. "Treinta años en robótica – Robótica" . 19 de mayo de 2014. Archivado del original el 19 de marzo de 2014. Consultado el 11 de abril de 2018 .
  3. 1 2 3 4 5 Wood, Lamont (2008-04-08), "Historia olvidada de la PC: Los verdaderos orígenes de la computadora personal" , Computerworld , archivado del original el 16-11-2018 , recuperado el 02-12-2014.
  4. 1 2 "El Intel 8008" . Intel . Consultado el 15 de diciembre de 2024 .
  5. Shirriff, Ken. "El Texas Instruments TMX 1795: el (casi) primer microprocesador olvidado" . Blog de Ken Shirriff . Consultado el 6 de marzo de 2025 .
  6. Ken Shirriff (26/01/2021). "On the Metal: Ken Shirriff" . Podcast Oxide Computing (Entrevista). Entrevistado por Bryan Cantrill; Jessie Frazelle; Steve Tuck. El evento ocurre a las 19:52. Primero, el 4004 y el 8008 son chips completamente diferentes. El marketing los hace sonar como si fueran solo una versión de 4 bits y 8 bits, pero son totalmente diferentes.
  7. Universidad de Brunel, 1974. Tesis de maestría en tecnología, L. R. Crawford.
  8. "HP 2640A" . Wiki de terminales . Consultado el 22 de agosto de 2025 .
  9. "XI. Apéndices III. Paquete de software MCS-8 – Simulador". Conjunto de microcomputadora MCS-8 – 8008 – Unidad de procesador central paralelo de 8 bits – Manual del usuario (PDF) . Revisión 4, segunda impresión. Santa Clara, California, EE. UU.: Intel Corporation . 1974 [noviembre de 1973]. págs. 84–94 . MCS-056-0574/25K. Archivado (PDF) del original el 25/11/2023 . Recuperado el 25/11/2023 . 
  10. Kildall, Gary Arlen (27 de junio de 1974). "El lenguaje de alto nivel simplifica la programación de microcomputadoras" (PDF) . Electrónica . McGraw-Hill Education . págs. 103–109 [108]. Archivado (PDF) del original el 14 de noviembre de 2021. Recuperado el 14 de noviembre de 2021 . 
  11. "8008 Simulator INTERP/8" (PDF) . Software para microcomputadoras. Santa Clara, California, EE. UU.: Intel Corporation . Marzo de 1975. Código de producto 98-118A. MCS-514-0375/27.5K. Archivado (PDF) del original el 25/11/2023 . Consultado el 25/11/2023 .
  12. 1 2 "Manual del usuario del conjunto de microcomputadoras MCS-8" (PDF) . Intel Corporation . 1972. págs. 3–10 . Recuperado el 22 de julio de 2025 . 
  13. 1 2 8008 Unidad Central Procesadora Paralela de 8 Bits (PDF) (Rev 4, Segunda Impresión ). Intel. Noviembre de 1973. págs. 14, 17. Recuperado el 30 de abril de 2024 .  
  14. 1 2 "Manual del usuario del conjunto de microcomputadoras MCS-8" (PDF) . Intel Corporation . 1972. Consultado el 4 de diciembre de 2010 .
  15. "Códigos de operación Intel 8008" . Consultado el 4 de diciembre de 2010 .
  16. "Familia de microprocesadores Intel 8008 (i8008)" . CPU World. 2003–2010 . Consultado el 4 de diciembre de 2010 .
  17. Intel (2008). "Guía de referencia rápida de microprocesadores" .
  18. Historia oral de Federico Faggin (PDF) (X2941.2005 ed.). Museo de Historia de la Computación. 22-09-2004. p. 82 . Consultado el 14-07-2023 .  
  19. Manual del usuario del sistema de microcomputadoras Intel 8080 (PDF) . Intel. Septiembre de 1975. pág. 1. Los programas escritos para el 8008 se pueden ensamblar y ejecutar en el 8080. 
  20. Chamberklin, Hal (octubre de 1975) ."Añade una pila a tu 8008" . Byte . 0 (2): 52– 56. Recuperado el 05-10-2024 .
  21. Maricón, Federico ; Hoff, Jr., Marcian E .; Mazor, Stanley ; Shima, Masatoshi (diciembre de 1996). "La Historia del 4004". Micro IEEE . 16 (6). Los Alamitos, EE. UU.: IEEE Computer Society: 10– 19. doi : 10.1109/40.546561 . ISSN 0272-1732 . 
  • Manual de usuario del MCS-8 con hoja de datos del 8008 (1972)
  • Wood, Lamont (8 de agosto de 2008). "Historia olvidada de la PC: Los verdaderos orígenes de la computadora personal" . Computer World . Archivado del original el 16 de noviembre de 2018. Recuperado el 2 de diciembre de 2014 .
  • La página de soporte no oficial de Intel 8008
  • Martin, Donald P. (1974). Diseño de microcomputadoras . Martin Research .
  • Runyan, Grant (abril de 1977). "Ahora, BASIC para el 8008, ¡incluso!" . Revista Kilobaud : 116–118 .
  • "Un intérprete de lenguaje BASIC para el microprocesador Intel 8008" . Universidad de Illinois. 1974.
  • Tarjeta de referencia del lenguaje ensamblador 8008
  • Shirriff, Ken (diciembre de 2016). "Fotos del chip y análisis del revolucionario microprocesador 8008, de 45 años de antigüedad" .
    • (Febrero de 2017). "Ingeniería inversa de la sorprendentemente avanzada ALU del microprocesador 8008" .
    • (Octubre de 2020). "Cómo la carga de arranque hizo posible el histórico procesador Intel 8008" .
    • (Noviembre de 2020). "Ingeniería inversa del circuito de anticipación de acarreo en el procesador Intel 8008" .