Si tuviésemos que hablar de un chip gráfico que se adelantó por muchos años a las necesidades técnicas de su época, ese sería sin duda el NEC 7220. Una bestia parda que fue el chip gráfico estándar del PC-98 de la misma empresa japonesa, que no solo destacó por sus especificaciones técnicas, sino por ser la base de lo que terminarían siendo las GPU 2D para PC.
Las limitaciones de los subsistemas gráficos primitivos
Hasta el momento os hemos hablado de chips gráficos cuyo trabajo era trabajar con caracteres y ni con píxeles, especialmente por las limitaciones de memoria debido al alto precio de las mismas en la década de los 70 y principios de los 80. Estos no son más que una serie de máquinas de estado finitas que al colocar ciertos datos en ciertos registros o direcciones de memoria realizaban siempre la misma tarea, haciendo que una serie de tareas coordinadas y en secuencia formasen una imagen en pantalla.
Hemos de partir del hecho de que los primitivos TMS9918A y 6845 CRTC no se pueden considerar microprocesadores gráficos, ya que no pueden ejecutar un programa, o mejor dicho, una serie de instrucciones para crear una imagen en pantalla, lo cual es en lo que se basa el diseño asistido por ordenador. El cual, además, requiere el uso de un búfer de imagen completo, donde en el búfer no se almacena la localización de cada carácter en memoria, sino el valor de color de cada píxel. Lo cual, en términos de memoria, era prohibitivo.
Por si fuera poco, las capacidades aritméticas de las primeras CPU de 8 bits (8080, Z80 y 6502) eran cuando menos pobres. No fue hasta la aparición de las primeras tarjetas gráficas CGA para PC junto al coprocesador 8087 que las aplicaciones CAD/CAM empezaron a hacerse posibles en un ordenador doméstico, pero mucho antes de eso NEC, había empezado a desarrollar uno de los mejores chips gráficos de la historia, El NEC µPD7220.
El NEC µPD7220, el primer microprocesador gráfico
Para entender el NEC 7220 hemos de pensar en cómo hubiese evolucionado el 6845 si se hubiese adaptado a la tecnología de integración VLSI. Es decir, estamos ante una evolución lógica en lo que a especificaciones técnicas se refiere que se encuentra muy por encima del chip de Motorola; sin embargo, hemos de partir del hecho de que sus capacidades van más allá de dar unos números de rendimiento muy superiores.
Para entender todo el avance que supuso el NEC 7220A hemos de partir del hecho que, pese a que el 6845 puede generar un búfer de imagen por píxeles, este carece de la capacidad de ir a una parte concreta de la memoria y modificarla. Es la CPU y otros coprocesadores asociados los que tienen que modificar esa parte del búfer de imagen y luego enviarlo todo el frame entero para que lo redibuje en orden. En cambio, el NEC 7220 tiene la capacidad de poder acceder a cualquier conjunto de píxeles en memoria, independientemente de su posición en pantalla y modificarlos sin tocar el resto de la imagen.
El primer chip gráfico realmente programable
No obstante, la mayor capacidad del NEC 7220 es el hecho de que puede ejecutar una serie de instrucciones para dibujar en pantalla líneas, arcos y formas derivadas como círculos, rectángulos, elipses, cuadrados. Lo que permitió que este chip gráfico llevase el diseño gráfico asistido por ordenador al PC doméstico. Tanto al PC-98 de NEC donde se encontraba en su configuración básica, así como las diferentes tarjetas gráficas para el IBM PC y sus clones que fueron apareciendo a lo largo de los años.
e
El problema es que, mientras el NEC 7220 era muy rápido dibujando píxeles en pantalla de forma directa, la operación de dibujar formas con varios accesos a memoria era cuando menos lenta. Necesitando 800 nanosegundos por píxel (1.25 MHz), lo cual supone 1/4 de la velocidad de dibujado (200 ns o 5 MHz). Eso sí, no olvidemos que dispone de un bus de datos de 16 bits, aunque multiplexado con el direccionamiento al usar un encapsulado de 40 pines. ¿Lo malo de esta capacidad? Su velocidad era inferior a un Motorola 68000 trabajando en bruto.
Sin embargo, dibujar formas geométricas no es la única función para el CAD que trajo este chip gráfico, sino que también disponía de funciones de otras funciones como el Zoom, el cual tenía un factor de aumento de x16. Con cada factor de aumento, cada píxel en esa zona de la pantalla pasaba a representarse en 2 x 2 píxeles. ¿La mayor limitación? El hecho de que ni el propio 7220 podía acceder a su memoria cuando estaba dibujando en pantalla, ya que en esa época no existía todavía la VRAM o memoria de vídeo de doble canal.
Operaciones lógicas
Otra de las capacidades del NEC 7220 que lo colocaban por encima de otros chips gráficos es el hecho de poder realizar operaciones lógicas con los píxeles. ¿A qué nos referimos? Pues al hecho de poder combinar el contenido ya escrito en el búfer de imagen con contenido nuevo para poder realizar ciertos efectos especiales.
Las operaciones lógicas soportadas en el NEC 7220 eran:
- REPLACE: El patrón de dibujo reemplaza directamente el contenido de la memoria de video. Los píxeles del patrón sobreescriben los que están en la memoria sin tomar en cuenta el contenido previo.
- COMPLEMENT: Los píxeles del patrón de dibujo se combinan con el contenido de la memoria mediante una operación XOR (exclusión lógica). Esto significa que los píxeles del patrón invertirán el estado de los píxeles existentes en las posiciones donde se aplica.
- CLEAR: El contenido de la memoria se borra en las posiciones del patrón de dibujo a través de una operación NAND. Se usa cuando se quiere eliminar una área específica de la pantalla.
- SET: se utiliza una operación de OR lógica, lo que significa que el patrón se “superpone” al contenido actual. Es útil para agregar detalles o superponer elementos sobre un fondo existente sin alterar los datos originales.
Todas las GPU 2D bebieron de este chip
El NEC 7220 disponía de una unidad DMA, la cual le permitía leer la lista de pantalla generada por la CPU en cada frame. Tenía dos modos de funcionamiento: el primero estaba pensado para sistemas con una RAM con un bus de datos de 16 bits, como era el caso del PC-98. El segundo modo funcionaba para comunicarse con aquellos con un bus de 8 bits, como es el caso del IBM PC. En el primer modo, el acceso eran 4 ciclos de reloj, en el segundo 5 ciclos reloj. Cifras mucho más bajas que el coste de usar la CPU para copiar la información.
El único handicap es que el software tenía que estar preparado para ello. Un ejemplo era el GSX Graphics de Digital Research para los sistemas CP/M y para el IBM PC. No era el único caso, el famoso AutoCAD también se aprovechó de las capacidades avanzadas del chip de NEC para llevar el diseño asistido para ordenador al IBM PC, no obstante, el mercado principal del 7220 no fue el PC, sino las estaciones de trabajo gráficas como por ejemplo la DEC Rainbow 100.
Y es que hemos de partir de que sus especificaciones técnicas se aprovechaban mucho más en el todavía existente mundo de los miniordenadores, no obstante, poco a poco y a medida que fueron avanzando las capacidades de los ordenadores, este tipo de chips gráficos se fue estandarizando.
Especificaciones del NEC 7220
Pero, ¿qué tiene de especial el NEC 7220 para que desde HARDVERSO estemos obsesionados con él? Pues es el hecho que es una verdadera bestia para el año en que salió, superando por mucho las necesidades gráficas de los ordenadores de la época. Solo hay que ver sus especificaciones técnicas y ver que es un chip lanzado en 1982 para darnos cuenta de ello.
Lo primero que llama la atención es la resolución que puede alcanzar, ya que puede generar sin problemas un búfer de imagen de 4096 x 4096 píxeles con 1 bit de color por píxel, lo cual hace que requiera 512 KB de memoria para almacenar toda una imagen completa. Aunque lo habitual era usar al NEC 7220 una resolución de 1024 x 1024 píxeles con 4 bits por píxel (16 colores), claro está que la resolución de los monitores de la época era más baja, por lo que se quedaba en 640 x 400 píxeles.
Para poneros en perspectiva, pensad por un momento que el 6845, que se veía limitado a 160 x 200 píxeles (o 160 x 400 en progresivo) a dicha definición de color. Además, el NEC 7220 soporta hasta 256 x 100 caracteres de 8 x 8 píxeles frente a los 80 x 25 caracteres del resto de adaptadores, por lo que puede renderizar más allá de la pantalla visible de forma rápida, permitiendo mecanismos de scroll por hardware en todas direcciones.
Representación del color en el NEC 7220
Al igual que ocurre con el 6845 CRTC, el NEC 7220 se encarga de generar el búfer de imagen, pero su trabajo no es leer dicho mapa de información e interpretarlo, es por ello que las diferentes tarjetas gráficas que salieron con este chip tuvieron distintas especificaciones de color, paleta y resolución pese a basarse en el mismo chip. Por ejemplo, tenemos el caso de la Number Nine 512 x8 (con 512 KB de VRAM) en 1983, la cual fue la primera en ofrecer 256 colores por píxel de una paleta de 16.7 millones de colores, eso sí, a unos, 2495 dólares de la época.
Para sacar todo el provecho, era necesario usar chips de RAM con un bus de 1 bit. El problema era que en 1982 los chips de RAM que fabricaba NEC con dicha capacidad eran de 2 KB (NEC 416), por lo que el máximo que podía tener una tarjeta gráfica eran 32 KB, desaprovechando por completo la capacidad del 7220. Otra opción, era usar los TMS4164 de Texas Instruments de 8 KB por chip, lo que aumentaba la memoria a 128 KB.
Por lo que se tuvo que esperar varios años para llegar a los 512 KB y la única manera de hacerlo era usar una gran cantidad de chips de memoria con sistemas multibanco. Lo que encarecía enormemente al chip. Es decir, pese a sus enormes capacidades en los primeros años, se vio altamente limitado en memoria, lo que afectó también a la resolución y los gráficos que se mostraron en los primeros ordenadores.
Su influencia en videojuegos
Dado que fue el chip gráfico estándar del PC-98, todos y cada uno de los títulos para este ordenador japonés aprovechan sus capacidades al máximo. No obstante, hemos de partir de tener en cuenta que la adopción por parte del público japonés como máquina doméstica y no solo profesional se dio a finales de los 80, momento en que empezaron a reemplazar a los PC-88 por aquellas tierras.
En todo caso, algo que llama poderosamente la atención es la elección de los inferiores EGA y VGA por parte de IBM, incluso cuando Intel era licenciataria del 7220, llegando incluso a lanzar tarjetas gráficas con dicho chip. Esto hizo que tuviéramos que esperar varios años para que el PC tuviese un nivel gráfico similar. No obstante, con la llegada de las tarjetas VGA como estándar en los PC, el veterano 7220 ya había quedado desfasado, aunque había recibido varias versiones mejoradas, había aguantado durante una época como un campeón, con versiones como:
Variante 7220 | Caractéristicas |
---|---|
NEC 7220A | bía la velocidad de los 5 MHz a los 7 MHz, permitiendo una mayor tasa de relleno y memorias más rápidas, por lo demás era totalmente igual al primer chip. |
NEC 72020 | Funcionaba a 8 MHz, y añadía soporte para VRAM, permitiéndole al controlador gráfico poder hacer operaciones de manipulación de memoria durante el dibujado. |
NEC 72120 | Una versión del 72020 con el bus de datos y direccionamiento por separado, lo que reducía los tiempos de acceso a la memoria y las operaciones DMA. Incluyó la capacidad de poder rotar e invertir los patrones, lo que fue muy útil para su uso en videojuegos. |
Esto significa que el chip de NEC era tan poderoso que estuvo varios generaciones riéndose en la cara de los diferentes estándares para PC. Por desgracia, al estar pensado para entornos profesionales, nunca tuvo la capacidad de mover sprites y tampoco soportaba scroll a través de hardware. Por lo que no estamos ante un chip gráfico pensado para el gaming tradicional. De ahí que los juegos que salieron para este ordenador fuesen novelas visuales. Y sí, el Policenauts de Kojima, en su versión para PC-98, funciona en un chip lanzado en 1982, siendo este un juego de 1994.
Pingback: Blitter: la tecnología clave en gráficos que definió los 16 bits