stringtranslate.com

Intel 8008

El Intel 8008 (" ocho mil ocho " u " ochenta y ocho ") es uno de los primeros microprocesadores de 8 bits capaz de direccionar 16 KB de memoria, introducido en abril de 1972. La arquitectura 8008 fue diseñada por Computer Terminal Corporation (CTC) y fue 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

Para solucionar varios problemas con el Datapoint 3300 , incluida la radiación térmica excesiva, Computer Terminal Corporation (CTC) diseñó la arquitectura del sucesor planificado del 3300 con una CPU como parte del circuito interno reimplementado en un solo chip. En busca de una empresa capaz de producir su diseño de chip, el cofundador de CTC, Austin O. "Gus" Roche, recurrió a Intel, que en ese entonces era 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:

"Noyce dijo que era una idea interesante y que Intel podría llevarla a cabo, pero que sería una decisión tonta. Dijo que si tienes un chip de computadora, sólo puedes vender un chip por computadora, mientras que con la memoria, puedes vender cientos de chips por computadora". [3]

Otra preocupación importante era que la base de clientes existente de Intel compraba sus chips de memoria para utilizarlos con sus propios diseños de procesadores; si Intel presentaba su propio procesador, podrían ser vistos como un competidor y sus clientes podrían buscar memoria en otro lugar. Sin embargo, Noyce aceptó un contrato de desarrollo de 50.000 dólares a principios de 1970 (equivalente a 392.000 dólares en 2023). Texas Instruments (TI) también fue contratado como segundo proveedor. [ cita requerida ]

TI pudo fabricar muestras del 1201 basándose en los dibujos de Intel, [ cita requerida ] pero resultaron tener errores y fueron rechazadas. Las versiones propias de Intel se retrasaron. CTC decidió volver a implementar la nueva versión del terminal utilizando TTL discreto en lugar de esperar a una CPU de un solo chip. El nuevo sistema se lanzó como Datapoint 2200 en la primavera de 1970, y 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. Seis meses después, 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 Intel 4004 más simple utilizado por Busicom en sus calculadoras comerciales. Un pequeño rediseño siguió, bajo el liderazgo de Federico Faggin , el diseñador del 4004, ahora líder del proyecto 1201, expandiéndose de un diseño de 16 pines a 18 pines, y el nuevo 1201 fue entregado a CTC a fines de 1971. [3]

En ese momento, CTC había vuelto a avanzar, esta vez al Datapoint 2200 II, que era más rápido. El 1201 ya no era lo suficientemente potente para el nuevo modelo. CTC votó por terminar su participación en el 1201, dejando la propiedad intelectual del diseño a Intel en lugar de pagar el contrato de $ 50,000. Intel lo rebautizó como 8008 y lo puso en su catálogo en abril de 1972 con un precio de US $ 120 (equivalente a $ 874 en 2023). Este cambio de nombre intentó 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. [4] El 8008 pasó a ser un diseño comercialmente exitoso. A esto le siguió el Intel 8080 y luego la exitosa familia Intel x86 . [3]

Uno de los primeros equipos en construir un sistema completo en torno al 8008 fue el equipo de Bill Pentz en la Universidad Estatal de California, Sacramento . El 8008 de la Universidad Estatal de California en Sacramento fue posiblemente el primer microordenador auténtico, con un sistema operativo de disco construido con lenguaje ensamblador IBM Basic en PROM, todo ello controlando una pantalla a color, un disco duro, un teclado, un módem, un lector de cintas de audio/papel y una impresora. [5] El proyecto comenzó en la primavera de 1972 y, con la ayuda clave de Tektronix , el sistema estuvo completamente funcional un año después.

En el Reino Unido, un equipo de SE Laboratories Engineering (EMI) dirigido por Tom Spink construyó en 1972 un microordenador basado en una muestra de prelanzamiento del 8008. Joe Hardman amplió el chip con una pila externa. Esto, entre otras cosas, le proporcionó ahorro de energía y recuperació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 . [6] El sistema operativo se grabó en una PROM. Estaba controlado por interrupciones, en cola y basado en un tamaño de página fijo para programas y datos. Se preparó un prototipo operativo para la gerencia, que decidió no continuar con el proyecto. [ cita requerida ]

El 8008 fue la CPU de las primeras computadoras personales comerciales que no eran calculadoras (excluyendo la propia Datapoint 2200): el kit estadounidense SCELBI y las prefabricadas Micral N francesa y MCM/70 canadiense. También fue el microprocesador controlador de los primeros modelos de la familia de terminales de computadora 2640 de Hewlett-Packard . [ cita requerida ]

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

Diseño

Microarquitectura i8008

El 8008 se implementó en  lógica PMOS de modo mejorado de compuerta de silicio de 10 μm . Las versiones iniciales podían funcionar a frecuencias de reloj de hasta 0,5 MHz. Esto se aumentó más tarde 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 son 2 ciclos de reloj. [11] Las cargas de registro-registro y las operaciones ALU toman 5 T (20 μs a 0,5 MHz), las de registro-memoria 8 T (32 μs), mientras que las llamadas y los saltos (cuando se toman) toman 11 estados T (44 μs). [12] 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 los Intel 4004 e Intel 4040 de 4 bits . [13] pero como 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 3.500 transistores . [14] [15] [16]

El chip, limitado por su DIP de 18 pines , tiene un solo bus de 8 bits que trabaja con una triple función para transferir 8 bits de datos, 14 bits de dirección y dos bits de estado. El pequeño paquete requiere alrededor de 30 chips de soporte TTL para interactuar con la memoria. [17] Por ejemplo, la dirección de 14 bits, que puede acceder a "16 K × 8 bits de memoria", necesita ser bloqueada por parte de esta lógica en un registro de dirección de memoria externa (MAR). El 8008 puede acceder a 8 puertos de entrada y 24 puertos de salida. [11]

Para el uso en controladores y terminales CRT , este es un diseño aceptable, pero es bastante complicado de usar para la mayoría de las demás tareas, al menos en comparación con las siguientes generaciones de microprocesadores. Algunos de los primeros diseños de computadoras se basaron en él, pero la mayoría usaría en su lugar el Intel 8080, que fue mucho mejor y que se desarrolló posteriormente . [ cita requerida ]

Diseños de procesadores relacionados

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 8008 no se ejecutaría en un 8080. Sin embargo, como Intel utilizaba dos sintaxis de ensamblador diferentes en ese momento, el 8080 podía usarse de manera compatible con versiones anteriores del lenguaje ensamblador del 8008.

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

El Intel 8086 , el procesador x86 original, es una extensión no estricta del 8080, por lo que también se parece vagamente al diseño original del Datapoint 2200. Casi todas las instrucciones de Datapoint 2200 y 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 instrucciones son diferentes).

Características

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

Conjunto de instrucciones

Las instrucciones tienen una longitud de uno a tres bytes y consisten en un byte de código de operación inicial, seguido de hasta dos bytes de operandos que pueden ser un operando inmediato o una dirección de programa. Las instrucciones operan solo en 8 bits; no hay operaciones de 16 bits. Solo hay un mecanismo para direccionar la memoria de datos: direccionamiento indirecto apuntado por una concatenación de los registros H y L, referenciados como M. Sin embargo, el 8008 admite direcciones de programa de 14 bits. Tiene instrucciones CAL y RET automáticas para llamadas y retornos de subrutinas de varios niveles que se pueden ejecutar condicionalmente, como saltos. Existen ocho instrucciones de llamada de un byte (RST) para subrutinas en las direcciones fijas 00h, 08h, 10h, ..., 38h. Estas están destinadas a ser suministradas por hardware externo para invocar rutinas de servicio de interrupción, pero se pueden emplear como llamadas rápidas. Se puede realizar una copia directa entre dos registros cualesquiera o entre un registro y la memoria. Se admiten ocho funciones matemáticas/lógicas entre el acumulador (A) y cualquier registro, memoria o valor inmediato. Los resultados siempre se depositan en A. Se admiten incrementos y decrementos para la mayoría de los registros, pero curiosamente no para A. Sin embargo, el registro A admite cuatro instrucciones de rotación diferentes. Todas las instrucciones se ejecutan en entre 3 y 11 estados. Cada estado requiere dos relojes.

Ejemplo de código 1

Oblea Intel 8008 y dos procesadores, cerrada y abierta

El siguiente código fuente de ensamblador 8008 corresponde a una subrutina denominada 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 toma prestados los operadores AND y SHR (desplazamiento a la derecha) del ensamblador 8080 para seleccionar los bytes bajos y altos de una dirección de 14 bits para colocarlos en los registros de 8 bits. Se esperaba que un programador contemporáneo del 8008 calculara los números y los escribiera para 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 denominada 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 primero debe cargarse con la dirección, y luego el registro de destino puede 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 convierte en cero. Tenga en cuenta que la mayoría de las instrucciones utilizadas ocupan un solo código de operación de 8 bits.

Ejemplo de código 2

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

Interrupciones

Las interrupciones en el 8008 se implementan solo parcialmente. Después de que se activa la línea INT, el 8008 reconoce la interrupción al emitir un código de estado de S0,S1,S2 = 011 en el tiempo T1I. En el ciclo de búsqueda de instrucciones subsiguiente, una instrucción es "bloqueada" (palabra de Intel) por hardware externo en el bus. Por lo general, se trata de una instrucción RST de un byte.

En este punto, hay un problema. El 8008 no tiene ninguna disposición para guardar su estado arquitectónico . El 8008 solo puede escribir en la memoria a través de una dirección en el par de registros HL. Cuando se interrumpe, no hay ningún mecanismo para guardar HL, por lo que no hay forma de guardar los otros registros y banderas a través de HL. Debido a esto, algún tipo de dispositivo de memoria externa, como una pila de hardware o un par de registros de lectura/escritura, debe conectarse al 8008 a través de los puertos de E/S para ayudar a guardar el estado del 8008. [18]

Diseñadores

Segundas fuentes

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 desde el original el 19 de marzo de 2014. Consultado el 11 de abril de 2018 .
  3. ^ abcde Wood, Lamont (8 de abril de 2008), "Historia olvidada de la PC: los verdaderos orígenes de la computadora personal", Computerworld , archivado desde el original el 16 de noviembre de 2018 , consultado el 2 de diciembre de 2014
  4. ^ Ken Shirriff (26 de enero de 2021). "Sobre el metal: Ken Shirriff". Podcast de Oxide Computing (entrevista). Entrevista realizada por Bryan Cantrill; Jessie Frazelle; Steve Tuck. El evento ocurre a las 19:52. En primer lugar, el 4004 y el 8008 son chips completamente diferentes. El marketing los hace parecer como si fueran solo versiones de 4 y 8 bits, pero son totalmente diferentes.
  5. ^ "Dentro de la primera microcomputadora del mundo, perdida hace mucho tiempo". cnet.com . 2010-01-08 . Consultado el 2024-10-09 .
  6. ^ Universidad Brunel, 1974. Tesis de Maestría en Tecnología, LR Crawford.
  7. ^ "XI. Apéndices III. Paquete de software MCS-8 - Simulador". Conjunto de microcomputadoras MCS-8 - 8008 - Unidad central de procesamiento en 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) desde el original el 25 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .(132 páginas)
  8. ^ 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) desde el original el 14 de noviembre de 2021. Consultado el 14 de noviembre de 2021 .
  9. ^ "8008 Simulator INTERP/8" (PDF) . Software de microcomputadoras. Santa Clara, California, EE. UU.: Intel Corporation . Marzo de 1975. Código de producto 98-118A. MCS-514-0375/27.5K. Archivado (PDF) desde el original el 25 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .(2 páginas)
  10. ^ 8008 8 Bit Parallel Central Processor Unit (PDF) (Rev 4, Second Printing ed.). Intel. Noviembre de 1973. págs. 14, 17. Consultado el 30 de abril de 2024 .
  11. ^ ab "MCS-8 Micro Computer Set Users Manual" (PDF) . Intel Corporation . 1972 . Consultado el 4 de diciembre de 2010 .
  12. ^ "Códigos de operación de Intel 8008" . Consultado el 4 de diciembre de 2010 .
  13. ^ "Familia de microprocesadores Intel 8008 (i8008)". CPU World. 2003–2010 . Consultado el 4 de diciembre de 2010 .
  14. ^ Intel. «Gordon Moore y la Ley de Moore». Archivado desde el original el 4 de septiembre de 2009. Consultado el 28 de junio de 2009 .
  15. ^ Intel (2012). "Chips Intel: póster de la línea de tiempo".
  16. ^ Intel (2008). "Guía de referencia rápida del microprocesador".
  17. ^ Historia oral de Federico Faggin (PDF) (X2941.2005 ed.). Computer History Museum. 2004-09-22. p. 82. Consultado el 2023-07-14 .
  18. ^ Chamberklin, Hal (octubre de 1975). «"Agrega una pila a tu 8008". Byte . 0 (2): 52–56 . Consultado el 5 de octubre de 2024 .
  19. ^ 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.

Enlaces externos