Continuamos nuestro viaje histórico para hablar de la que fue la primera CPU utilizada en videojuegos, el Intel 8080, que si bien no se utilizó en ningún sistema doméstico, sí que tuvo una influencia lo suficientemente grande en el mundo de la informática y los videojuegos como para tener su propio artículo dedicado. Y es que se trata de uno de los microprocesadores más importantes de la historia de la informática
Los origenes del Intel 8080
En la entrada acerca de los chips TTL os comentamos acerca del Intel 8008, el que fue el segundo chip de Intel que agrupaba toda la circuitería con lógica transistor a transistor correspondiente a la CPU del Datapoint 2200 en un solo chip. Dicho chip fue el primero de la historia con la capacidad de realizar operaciones aritméticas de 8 bits y tenía un direccionamiento de 14 bits, por lo que podía acceder hasta 16 KB de memoria, lo cual era bastante para 1972. Sin embargo, no encendió ninguna revolución.
Y es que el verdadero salto se dio con el Intel 8080 (antecesor del Z80), lanzado dos años después con un set de instrucciones idéntico, pero no compatible. El nuevo chip completo lo que es una CPU, ya que pese a que el Intel 4004 y el 8008 se vendían como un microprocesador completo, aún requerían ciertos chips periféricos para funcionar que, en el caso del 8080, se implementaron en el mismo chip.
No obstante, el verdadero salto se dio en rendimiento, y es que mientras el 8008 podía realizar 50.000 instrucciones por segundo, el 8080 elevo dicha capacidad hasta las 290.000. Es decir, un salto casi seis veces superior. ¿El motivo de ello? Entre otras cosas, el hecho de que la velocidad del 8008 era de 0.5 MHz, mientras que el 8080 se lanzó a 2 MHz. No solo eso, sino que los mecanismos de gestión de interrupciones y acceso a memoria eran extremadamente lentos, lo que además les llevo a ampliar los pines de 18 a 40.
El Intellec 8 Mod 80
Intel lanzó una serie de sistemas de desarrollo para sus CPU llamados Intellec durante la década de los 70. En un principio se trataba de sistemas pensados para ejecutar aplicaciones, es más, no venían ni con pantalla y tampoco con teclado de serie, aunque era posible conectar uno. El más importante de todos ellos fue el Intellec 8 Mod 80, el cual vino equipado con el Intel 8080 y salió al mercado el mismo año que su CPU, en 1974.
¿Qué tenían de especial estos equipos? En la época los sistemas más utilizados en las empresas, que se lo podían permitir, eran el DEC PDP-11 o el IBM System/1, los cuales tenían un tamaño equivalente a una nevera. En cambio, los Intellec si bien no eran ordenadores personales, tenían un tamaño modesto y se podrían considerar el eslabón evolutivo entre los miniordenadores y el ordenador personal que nació en 1977.
El motivo de ello es que la gran mayoría de ordenadores seguían basándose en complejos sistemas TTL de varios chips y a veces incluso decenas para la CPU del sistema, mientras que la solución de Intel usaba solo uno, lo que supuso una reducción importante en tamaño.
El primer sistema operativo: CP/M
Uno de los mayores pioneros del mundo de la informática fue Gary Kildall, tristemente fallecido a principios de los 90. Su hito fue la creación del primer sistema operativo para ordenadores domésticos, el cual fue desarrollado años antes de la aparición de estos. Y es que Kildall utilizo su Intellec-8 80 para desarrollar CP/M que son las siglas de Control Program/Monitor.
Con ello, el Intellec-8 80 dejaba de ser un simple kit de desarrollo para ejecutar programas simples a poderse usar para tareas de propósito general. Es más, el MS-DOS de Microsoft, no fue más que una copia burda realizada años más tarde del CP/M de Kildall. Es más, uno de los motivos por los cuales tanto el Intel 8080 como su sucesor, el Zilog Z80, se vieron como CPU para un ordenador personal en muchos casos y no como juguetes, fue precisamente dicho sistema operativo y su enorme cantidad de software de productividad.
Los sistemas S-100 y la aparición del Altair 8800
El siguiente paso de la evolución hacia los PC vino con la aparición del estándar S-100 y el ordenador que lo introdujo, el Altair 8800. Este a simple vista parecía un clon del Intellec-8 80 e incluso utilizaba también un Intel 8080. Sin embargo, lo importante era que fue el primer hardware en utilizar tarjetas de expansión, en concreto de 100 pines, de ahí su nombre. Dicha invención se la debemos a MITS, siglas de Micro Instrumentation and Telemetry Systems, una empresa de electrónica de Alburqueque, Nuevo México.
Fue revolucionario por venderse no solo a un precio que los aficionados a la electrónica se podían permitir, sino también por dejar que estos mismos pudieran hacer sus propias tarjetas de expansión usando los chips TTL que empezaron a venderse en tiendas de electrónica en los Estados Unidos. Eran cuatro gatos, pero como curiosidad un tal Bill Gates tuvo acceso a uno de estos para desarrollar su famoso interprete de BASIC, el cual termino siendo utilizado con el tiempo en los microordenadores basados en el Z80, una CPU posterior que fue una versión muy mejorada del Intel 8080.
Se perdió la primera generación de ordenadores personales
En un principio teníamos pensado realizar un artículo conjunto entre el Intel 8080 y el Z80, pero la cantidad de material ha hecho que al final lo dividamos en dos entradas distintas, una para cada CPU, ya que pese a que la CPU de Zilog es una versión mejorada de la de Intel, tuvo suficientes cambios en cuanto a arquitectura e influencia en el mercado de la informática como para dedicarle su propio espacio.
Si bien el Intel 8080 llego a ser el rey en sistemas como el Altair 8800 y ser ampliamente famoso entre los aficionados a la electrónica. Se perdió el boom de los primeros ordenadores personales por su precio, ya que un solo chip costaba 360 dólares en 1976. Ya un año más tarde, con la aparición del Zilog Z80, el cual era superior binariamente compatible y encima más barato (200 $ versus 360 $). Pues con ello, Intel ya perdió toda oportunidad de formar parte de la primera generación de microordenadores.
Lo curioso es que no era inferior al 6502, pese a ser dos años más joven, ya que entre otras cosas disponía de un set de instrucciones más complejo y una mayor cantidad de registros. La historia real es que nadie quería la CPU de MOS, dado que no ofrecía nada nuevo respecto al 8080, por lo que la tuvieron que vender a precio de saldo.
No obstante, la historia es que por ese bajo precio, el 6502 fue adoptado por unas tales Atari y Apple. En cuanto a Commodore, por aquel entonces era la dueña de MOS Technologies, pero se vio obligada a desarrollar su PET para darle salida a su microprocesador, que ironías de la vida, termino siendo uno de los más populares de la historia.
Arquitectura del Intel 8080
Una vez hemos hecho un repaso histórico de lo que fue el Intel 8080 nos toca hablar de su arquitectura, la cual, como ya hemos dicho, la podríamos considerar a la par en cuanto a capacidades con el 6502 de MOS. Es por ello que hemos hecho una tabla comparativa de ambas CPU.
Característica | MOS 6502 | Intel 8080 |
Nº de Instrucciones | 56 | 75 |
Registros | 7 registros de 8 bits (A, B, C, D, E, H, L) + 16 bits de puntero de pila | 3 registros de 8 bits (A, X, Y) + 16 bits de puntero de pila |
Bus de datos | 8 bits | 8 bits |
Direccionamiento | 16 bits (64 KB) | 16 bits (64 KB) |
Una de las mayores ventajas aparentes del Intel 8080 es el hecho de tener 8 registros de propósito general frente a un solo registro acumulador de la CPU de MOS. Es más, tenía la capacidad de hacer pares de dos registros para poder hacer posibles instrucciones más complejas que requerían dos operandos.
Registro | Tamaño | Descripción |
---|---|---|
A | 8 bits | Registro principal para realizar operaciones aritméticas y lógicas. Contiene el resultado de estas operaciones. |
B | 8 bits | Utilizado como un operando en operaciones aritméticas y lógicas, y para operaciones de transferencia de datos. |
C | 8 bits | Similar al registro B, se utiliza para operaciones de transferencia de datos y aritméticas. |
D | 8 bits | Se usa para operaciones aritméticas y como operando en instrucciones. |
E | 8 bits | Funciona junto con el registro D, formando el registro combinado DE. |
H | 8 bits | Usado en conjunto con el registro L para formar el registro de 16 bits HL que usa para operaciones de direccionamiento de memoria. |
L | 8 bits | Similar al registro H, forma parte del registro HL. |
SP (Puntero a pila) | 16 bits | Apunta a la parte superior de la pila en la memoria. Se utiliza para gestionar llamadas a subrutinas y almacenamiento temporal de datos |
PC (Contador de programa) | 16 bits | Mantiene la dirección de la próxima instrucción a ejecutar. Se incrementa automáticamente después de cada instrucción, controla el flujo de ejecución del programa |
Algunas instrucciones utilizan la combinación DE, otros la BC y otras tantas la HL. Por lo que se puede decir que tenía un set de instrucciones no solo más amplio, sino también más complejo que el del 6502.
Su mayor punto débil, el acceso a la memoria.
No obstante, tenía un enorme talón de Aquiles y es que toda instrucción del 8080 requiere 4 ciclos de reloj para el FETCH y el DECODE. En concreto 3 para la captación y 1 para la decodificación. Mientras que en el chip de MOS a los primeros 256 bytes puede acceder fácilmente a una velocidad de un ciclo de reloj, lo que le permite usarlo como registros y 2 ciclos para el resto de la memoria.
Tened en cuenta que por aquel entonces no había memoria caché, por lo que pese a que el 8080 tuviera mayor velocidad de reloj, esta se veía lastrada por el hecho que todas y cada una de las instrucciones requerían esos 4 ciclos de reloj para acceder a la RAM. ¿A qué se debe esa diferencia? Al hecho que en 1974, año en que se lanzó el Intel 8080, las memorias RAM no eran tan rápidas como las de 1976. De ahí lo dos planteamientos tan dispares en cuanto al acceso a memoria.
Sin embargo, esto no es el tiempo total de la instrucción, ya que algunas de ellas pueden requerir un solo ciclo de reloj adicional para ejecutarse. No obstante, es un handicap para ciertos escenarios. Como curiosidad, uno de los motivos por los cuales Atari rechazo a la CPU de Intel para su VCS (2600) era ese. Ya que requería que escribiese lo suficientemente rápido a la RAM durante el periodo HBlank para el TIA. Recordad que la primera consola de cartuchos de Atari operaba solo con 128 bytes, por lo que funcionaba en la Page Zero.
Máquinas recreativas con el Intel 8080
Pese a no formar parte de la revolución de las primeras consolas de videojuegos y de ordenadores personales, el Intel 8080 sí que llego a los salones recreativos y lo hizo de manos de la versión estadounidense de Gun Fight, desarrollada por Midway, ya que la original de Taito usaba chips TTL para su funcionamiento.
Dicha recreativa tenía la particularidad de tener un subsistema gráfico basado en un búfer de imagen completo de 256 x 224 en monocromo que requería 7 KB de memoria para el mismo, algo prohibitivo para 1975, fecha que se lanzó esta recreativa, la cual absorbio el 60% de la producción de RAM de Intel y se dice que también de los 8080. Sin embargo, no fue tan importante como Space Invaders, en la que Taito viéndose influenciada por la versión de Midway de su recreativa anterior, decidió adoptar el Intel 8080 para su popular Space Invaders, una de las recreativas más populares de la época.
No obstante, Space Invaders, por la lentitud o falta de ciertas instrucciones en el 8080, requería hardware adicional para funcionar, en concreto lo que se llama un Barrel Shifter. Se trata de un componente que permite desplazar rápidamente los bits de un registro en paralelo, en lugar de hacerlo bit a bit. Lo cual era necesario para mover las filas de invasores a la suficiente velocidad.
Con esto terminamos nuestro homenaje al 8080, nos gustaría un poco de Feedback y que nos dijerais si nos hemos dejado algo en el camino.
Muy interesante el artículo. Llevo leyendo ya desde que abriste la nueva página. Aunque me costó darme cuenta que ya estaba. Aún así a ver si me pongo al día. Sigue así. 👌
Pingback: NEC µPD7220, la primera GPU 2D de la historia
Pingback: NEC 7220, la primera GPU 2D de la historia