Intel 8008-Intel 8008

Intel 8008
KL Intel C8008-1.jpg
Una variante del procesador Intel C8008-1 con pines y tapa de metal chapado en oro y cerámica púrpura.
información general
Lanzado Mediados de 1972
Interrumpido 1983
Diseñada por Corporación de Terminales Informáticos (CTC)
Fabricantes comunes
Actuación
máx. frecuencia de reloj de la CPU 200 kHz a 800 kHz
Ancho de datos 8 bits
Ancho de dirección 14 bits
Arquitectura y clasificación
Solicitud Terminales de computadora , calculadoras , máquinas embotelladoras, robots industriales ASEA de los años 70 (IRB 6), computadoras simples , etc.
Nodo de tecnología 10 micras
Conjunto de instrucciones 8008
Especificaciones físicas
transistores
Paquete(s)
Zócalo(s)
Historia
Sucesor Intel 8080
Estado de soporte
no soportado

El Intel 8008 (" ocho mil ocho " u " ochenta y ocho ") es uno de los primeros microprocesadores orientados a bytes diseñado por Computer Terminal Corporation (CTC), implementado y fabricado por Intel , e introducido en abril de 1972. Es una CPU de 8 bits con un bus de direcciones externo de 14 bits que podría direccionar 16 KB de memoria. Originalmente conocido como 1201 , el chip fue encargado por Computer Terminal Corporation (CTC) para implementar un conjunto de instrucciones de su diseño para su terminal programable Datapoint 2200 . Como el chip se retrasó y no cumplió con los objetivos de rendimiento de CTC, el 2200 terminó usando la propia CPU basada en TTL de CTC . Un acuerdo permitió a Intel comercializar el chip a otros clientes después de que Seiko expresara su interés en usarlo para una calculadora .

Historia

CTC se formó en San Antonio en 1968 bajo la dirección de Austin O. "Gus" Roche y Phil Ray, ambos ingenieros de la NASA . Roche, en particular, estaba principalmente interesado en producir una computadora de escritorio. Sin embargo, dada la inmadurez del mercado, el plan de negocios de la compañía mencionaba solo un reemplazo de Teletype Model 33 ASR, que se envió como Datapoint 3300 . El estuche fue diseñado deliberadamente para caber en el mismo espacio que una máquina de escribir IBM Selectric y usó una pantalla de video con la misma relación de aspecto que una tarjeta perforada de IBM . Aunque comercialmente exitoso, el 3300 tenía problemas de calor continuos debido a la cantidad de circuitos empaquetados en un espacio tan pequeño.

Para abordar el calentamiento y otros problemas, se inició un rediseño que presentaba la parte de la CPU del circuito interno reimplementada en un solo chip. En busca de una empresa capaz de producir su diseño de chip, Roche recurrió a Intel, entonces principalmente un proveedor de chips de memoria. Roche se reunió con Bob Noyce , quien expresó su preocupación por el concepto; John Frassanito recuerda que "Noyce dijo que era una idea intrigante y que Intel podría hacerlo, pero que sería un movimiento tonto. Dijo que si tienes un chip de computadora, solo puedes vender un chip por computadora, mientras que con memoria , puedes vender cientos de chips por computadora". Otra preocupación importante era que la base de clientes existente de Intel compraba sus chips de memoria para usarlos con sus propios diseños de procesadores; si Intel introdujera su propio procesador, podrían ser vistos como un competidor y sus clientes podrían buscar memoria en otra parte. Sin embargo, Noyce acordó un contrato de desarrollo de $50,000 a principios de 1970. También se incorporó a Texas Instruments (TI) como segundo proveedor.

TI pudo hacer muestras del 1201 basadas en dibujos de Intel, pero resultaron tener errores y fueron rechazadas. Las propias versiones de Intel se retrasaron. CTC decidió volver a implementar la nueva versión de la 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, con su primera venta a General Mills el 25 de mayo de 1970. 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 y expresó su interés en usar el 1201 en una calculadora científica, probablemente después de ver el éxito del Intel 4004 más simple que usa Busicom en sus calculadoras comerciales. Siguió un pequeño rediseño, bajo el liderazgo de Federico Faggin , el diseñador del 4004, ahora líder del proyecto del 1201, expandiéndose de un diseño de 16 pines a 18 pines, y el nuevo 1201 se entregó a CTC a finales de 1971. .

En ese momento, CTC había avanzado una vez más, 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ó para poner fin a 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 le cambió el nombre a 8008 y lo puso en su catálogo en abril de 1972 a un precio de 120 dólares. 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. El 8008 se convirtió en un diseño comercialmente exitoso. A esto le siguió el Intel 8080 , y luego la exitosa familia Intel x86 .

Uno de los primeros equipos en construir un sistema completo alrededor del 8008 fue el equipo de Bill Pentz en la Universidad Estatal de California, Sacramento . Sac State 8008 fue posiblemente la primera microcomputadora verdadera, con un sistema operativo de disco construido con lenguaje ensamblador IBM Basic en PROM, todo manejando una pantalla a color, disco duro, teclado, módem, lector de cinta de audio/papel e impresora. El proyecto comenzó en la primavera de 1972 y, con la ayuda clave de Tektronix , el sistema estaba en pleno funcionamiento un año después. Bill ayudó a Intel con el kit MCS-8 y proporcionó información clave para el conjunto de instrucciones Intel 8080 , lo que ayudó a que fuera útil para la industria y los aficionados.

En el Reino Unido, un equipo de SE Laboratories Engineering (EMI) dirigido por Tom Spink construyó en 1972 una microcomputadora basada en una muestra preliminar del 8008. Joe Hardman amplió el chip con una pila externa. Esto, entre otras cosas, le permitió guardar y recuperar energía en caso de falla. 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 Digital Equipment Corporation PDP-11 . El sistema operativo se grabó en una PROM. Fue impulsado por interrupciones, en cola y basado en un tamaño de página fijo para programas y datos. Se elaboró ​​un prototipo operativo para la gerencia, quien decidió no continuar con el proyecto.

El 8008 fue la CPU para las primeras computadoras personales comerciales sin calculadora (excluyendo el propio Datapoint 2200): el kit SCELBI de EE. UU. y el Micral N francés y el MCM / 70 canadiense preconstruidos . También fue el microprocesador de control de los primeros modelos de la familia de terminales de computadora 2640 de Hewlett-Packard .

Intel ofreció un simulador de conjunto de instrucciones para el 8008 denominado INTERP/8. Fue escrito en FORTRAN .

Diseño

microarquitectura i8008
Registros Intel 8008
1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (posición de bit)
Registros principales
  A un acumulador
  B registro b
  C registro c
  D registro _
  mi registro electronico
  H Registro H (indirecto)
  L Registro L (indirecto)
Contador de programa
ordenador personal Contador de programa _
Pila de llamadas de dirección push-down
COMO Nivel de llamada 1
COMO Nivel de llamada 2
COMO Nivel de llamada 3
COMO Nivel de llamada 4
COMO Nivel de llamada 5
COMO Nivel de llamada 6
COMO Nivel de llamada 7
banderas
  C PAG Z S banderas

El 8008 se implementó en  lógica PMOS de modo de mejora de puerta de silicio de 10 μm . Las versiones iniciales podrí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 5 y 11 estados T, donde cada estado T es de 2 ciclos de reloj. Las cargas registro-registro y las operaciones ALU toman 5T (20 μs a 0,5 MHz), registro-memoria 8T (32 μs), mientras que las llamadas y los saltos (cuando se toman) toman 11 estados T (44 μs). 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 . pero dado que el 8008 procesa datos de 8 bits a la vez y puede acceder a una cantidad significativamente mayor de RAM, en la mayoría de las aplicaciones tiene una ventaja de velocidad significativa sobre estos procesadores. El 8008 tiene 3.500 transistores .

El chip (limitado por su DIP de 18 pines ) tiene un solo bus de 8 bits y requiere una cantidad significativa de lógica de soporte externo. Por ejemplo, la dirección de 14 bits, que puede acceder a "16 K × 8 bits de memoria", debe bloquearse mediante 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.

Para el uso de controladores y terminales CRT , este es un diseño aceptable, pero es bastante engorroso de usar para la mayoría de las otras tareas, al menos en comparación con las próximas generaciones de microprocesadores. Algunos de los primeros diseños de computadoras se basaron en él, pero la mayoría usaría el último y mejorado Intel 8080 en su lugar.

Diseños de procesadores relacionados

El posterior NMOS Intel 8080 de 40 pines amplió los registros 8008 y el conjunto de instrucciones e implementa una interfaz de bus externa más eficiente (usando los 22 pines adicionales). A pesar de una relación arquitectónica cercana, 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 usaba dos sintaxis de ensamblaje diferentes en ese momento, el 8080 podría usarse en un 8008 lenguaje ensamblador compatible con versiones anteriores.

El Intel 8085 es una versión modernizada eléctricamente del 8080 que usa transistores en 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 ligeramente 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 de 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:

  • Siete registros de "scratchpad" de 8 bits: el acumulador principal (A) y otros seis registros (B, C, D, E, H y L).
  • Contador de programa de 14 bits (PC).
  • Pila de llamadas de direcciones push-down de siete niveles . En realidad, se utilizan ocho registros, y el registro superior es el PC.
  • Cuatro indicadores de estado de código de condición: acarreo (C), paridad par (P), cero (Z) y signo (S).
  • Acceso indirecto a la memoria utilizando los registros H y L (HL) como un puntero de datos de 14 bits (los dos bits superiores se ignoran).

Código de ejemplo

El siguiente código fuente de ensamblaje 8008 es para una subrutina llamada MEMCPYque copia un bloque de bytes de datos de un tamaño determinado de una ubicación a otra.

                   
                   
                   
                   
                   
                   
                   
                   
                   
001700  000        
001701  000        
001702  000        
001703  000        
001704  000        
001705  000        
                   
                   
002000  066 304    
002002  056 003    
002004  327        
002005  060        
002006  317        
002007  302        
002010  261        
002011  053        
002012  302        
002013  024 001    
002015  320        
002016  301        
002017  034 000    
002021  310        
002022  066 300    
002024  056 003    
002026  302        
002027  207        
002030  340        
002031  060        
002032  301        
002033  217        
002034  350        
002035  364        
002036  337        
002037  066 302    
002041  056 003    
002043  302        
002044  207        
002045  340        
002046  060        
002047  301        
002050  217        
002051  350        
002035  364       
002052  373        
002053  104 007 004
002056             
; MEMCPY --
; Copy a block of memory from one location to another.
;
; Entry parameters
;       SRC: 14-bit address of source data block
;       DST: 14-bit address of target data block
;       CNT: 14-bit count of bytes to copy
 
            ORG     1700Q       ;Data at 001700q
SRC         DFB     0           ;SRC, low byte
            DFB     0           ;     high byte
DST         DFB     0           ;DST, low byte
            DFB     0           ;     high byte
CNT         DFB     0           ;CNT, low byte
            DFB     0           ;     high byte
 
            ORG     2000Q       ;Code at 002000q
MEMCPY      LLI     CNT+0       ;HL = addr(CNT)
            LHI     CNT+1
            LCM                 ;BC = CNT
            INL
            LBM
LOOP        LAC                 ;If BC = 0,
            ORB
            RTZ                 ;Return
DECCNT      LAC                 ;BC = BC - 1
            SUI     1
            LCA
            LAB
            SBI     0
            LBA
GETSRC      LLI     SRC+0       ;HL = addr(SRC)
            LHI     SRC+1
            LAC                 ;HL = SRC + BC
            ADM                 ;E = C + (HL)
            LEA                 ;(lower sum)
            INL                 ;point to upper SRC
            LAB
            ACM                 ;H = B + (HL) + CY
            LHA                 ;(upper sum)
            LLE                 ;L = E
            LDM                 ;Load D from (HL)
GETDST      LLI     DST+0       ;HL = addr(DST)
            LHI     DST+1
            LAC                 ;HL = DST + BC
            ADM                 ;ADD code same as above
            LEA
            INL 
            LAB
            ACM
            LHA
            LLE
            LMD                 ;Store D to (HL)
            JMP     LOOP        ;Repeat the loop
            END

En el código anterior, todos los valores se dan en octal. Las ubicaciones SRC, DSTy 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 tiene solo 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. Dado que no hay ninguna instrucción para cargar un registro directamente desde una dirección de memoria determinada, primero se debe cargar el par de registros HL con la dirección, y luego se puede cargar el registro de destino desde el operando M, que es una carga indirecta desde la ubicación de la memoria. en el par de registros HL. El par de registros BC se carga con el CNTvalor del parámetro y se reduce al final del ciclo 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.

Diseñadores

  • CTC ( Conjunto de instrucciones y arquitectura ): Victor Poor y Harry Pyle .
  • Intel ( Implementación en silicio ):
    • Ted Hoff , Stan Mazor y Larry Potter (científico jefe de IBM) 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 agregaron algunas instrucciones y funciones de interrupción. El diseño del chip 8008 (originalmente llamado 1201) comenzó antes del desarrollo del 4004. Hoff y Mazor, sin embargo, no pudieron y no 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 puertas de silicio necesarios, en desarrollo por Federico Faggin para el 4004, aún no estaban disponibles.
    • Federico Faggin , habiendo terminado el diseño del 4004, se convirtió en líder del proyecto desde enero de 1971 hasta su finalización con éxito en abril de 1972, después de haber sido suspendido, por falta de progreso, durante unos siete meses.
    • Hal Feeney , ingeniero de proyectos, realizó el diseño lógico detallado, el diseño de circuitos y el diseño físico 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 "HF" combinado en el chip aproximadamente a mitad de camino entre las almohadillas de unión D5 y D6.

Segundas fuentes

Ver también

  • Mark-8 y SCELBI , kits de computadora basados ​​en 8008
  • MCM/70 y Micral , microordenadores pioneros
  • PL/M , el primer lenguaje de programación dirigido a un microprocesador, el Intel 8008, desarrollado por Gary Kildall

Referencias

enlaces externos