Comentario Original:

No se si será un sitio apropiado para hacer esta pregunta, pero como no suelo usar discord y también está relacionado con arquitectura de graficos te la dejo por aquí 😉

Desde muy pequeño siempre he sido muy friki del hardware de las consolas y los arcades de su respectiva epoca (hablo de que cuando yo era pequeño era plena epoca super nes, mega drive y todos flipabamos con la neo geo). Luego llegaron los poligonos y todo empezo a complicarse mucho. Pero hubo una cosa que siempre me llamo mucho la atención. Los primeros hardware 3D de las grandes de la epoca (sega, namco) eran bastante mas potentes que las consolas de la epoca (system 22 y 23, model 1, 2, 3 y todas sus revisiones), hasta que a partir de cierto momento (imagino por unificacion y reduccion de costes) empezo a unificarse el hardware de consolas y arcade (naomi de sega q basicamente era una dreamcast, system 11 y system 12 de namco q eran como una play 1, etc etc..

La pregunta sería…. como de potente era realmente el hardware arcade antes de esa unificacion y porque las consosolas iban tan por dentras? (ademas de por costes). Es decir, la saturn no llegaba al model 2 y ademas era bastante especialita (creo q iba por cuadrados en lugar de triangulos en la geometria de poliginos), y luego el model 3 lei por ahi q era bastante completo pero tambien complejo y peculiar. No podia sega haber hecho algo mas parecido a sus model en la saturn?? tan caro hubiese sido??

Y ya puestos otra pregunta :P, desde el punto de vista de arquitectura, que diferencias habia entre esa epoca y la actual. Ahora se habla mucho de GPU y de APIS pero creo que antes era todo como mas espartano, mas “rudo” no?

Perdona el acoso de preguntas pero te veo que controlas mucho de estos temas y me suele interesar mucho tu opinion. Cuando me respondiste a un comentario sobre jimm keller, snowden y meltdown y spectre me resulto muy interesante!

Saludos.

Bueno, hay que tener en cuenta el trasfondo histórico para entender como fue evolucionando la cosa poco a poco hasta llegar a la situación que describes en tu pregunta. En realidad es una muy buena pregunta y parte de mucho antes del periodo que tu describes. Para mi, la generación de los 16 bits tecnicamente nunca me gusto ya que unos 8 bits glorificados y un atraso enorme técnicamente hablando, especialmente por tener que depender de derivados del TMS9918A, eso si muy mejorados, para la generación de los gráficos en pantalla y de eso no se salva ni la Neo-Geo y perdonad todos si tiro desde mucho más atrás.

En realidad el sucesor del TMS9918A ya había aparecido en el mercado de manos de la misma Texas Instruments en forma del TMS34010, hice un par de entradas sobre el mismo hace ya un tiempo (I, II). El procesador era muy superior a cualquier cosa que había en la época, incluido el hardware gráfico del Commodore Amiga, pero acabo en desgracia por completo, su mayor potencia se debía a que era microprogramable y por tanto podia ejecutar pequeños programas, el TMS34010 era como si TI hubiese decidido aumentar dos niveles toda la arquitectura del TMS99 incluyendo también la CPU y se podría comparar con lo más parecido a lo que hoy en día es un SoC/APU, curiosamente tenía la particularidad de poder utilizarse como único chip del sistema o en su defecto como chip gráfico pero rompía toda compatibilidad con el TMS9918A.

¿Y a que viene su importancia? En el blog de Karl Guttag, uno de los ingenieros tanto del TMS99 como del TMS340 se puede leer un extracto muy interesante:

He vivido dos vidas algo diferentes en alta tecnología. Mis primeros 20 años con Texas Instruments me convertí en el miembro más joven de TI en la historia de la compañía. En TI, trabajé en la arquitectura y el diseño lógico del TMS9918 VDP (el primer «Sprite Chip»), el TMS9995 y el TMS99000 (microprocesadores de 16 bits), el TMS34010 y el TMS34020 (los primeros procesadores gráficos programables) y el TMS320C80 (procesador de imagen con cuatro DSP VLIW y una CPU RISC en un chip).

El diseño TMS9918 que comenzó en 1977 fue copiado por los chips de pantalla utilizados en los primeros sistemas de juegos de Nintendo y Sega y fue el primer dispositivo de consumo que interactúa directamente con las DRAM. Uno de mis primeros trabajos fue averiguar el tiempo para interactuar con las DRAM, que antes de la DRAM Sincrónica (SDRAM) tenía un tiempo muy complejo con más de 30 parámetros críticos de tiempo. El procesador de gráficos TMS34010 fue el primer procesador totalmente programable en interactuar directamente con las DRAM y el primer procesador en usar la VRAM (una DRAM con un registro de desplazamiento de alta velocidad y el precursor de la GDRAM y la SDRAM de hoy). El TMS320C80 fue el primer procesador en interactuar directamente con la DRAM síncrona.

Si bien tuvimos que usar DRAM para soportar las grandes demandas de memoria de los procesadores gráficos, el ancho de banda de las DRAM se estaba volviendo demasiado lento para satisfacer nuestras necesidades. Esto me llevó a trabajar con la división de memoria de TI en la primera VRAM práctica a principios de la década de 1980. Mi experiencia de primera mano con los problemas de la interfaz con DRAM y el trabajo con VRAM, a su vez, me ayudó a ayudar al Grupo de Memoria de TI en el desarrollo de la DRAM Sincrónica. En muchos sentidos, la SDRAM y la GDRAM de hoy son descendientes directos de la VRAM.

Por cierto, hago la distinción de la primera «VRAM práctica» porque la idea de poner un registro de desplazamiento en una DRAM para soportar la visualización de video tiene múltiples reclamos de invención superpuestos, incluidos TI, IBM y AT&T. Lo que hizo mi equipo fue hacer una serie de mejoras en el concepto básico para que funcione en un sistema y ayudar a que la idea salga al mercado.

La VRAM no es más que una DRAM pero con un registro de desplazamiento integrado. ¿Que es eso?

Un registro de desplazamiento es un circuito digital secuencial (es decir, que los valores de sus salidas dependen de sus entradas y de los valores anteriores) consistente en una serie de biestables, generalmente de tipo D, conectados en cascada (Fig. 1),

… que basculan de forma sincrónica con la misma señal de reloj. Según las conexiones entre los biestables, se tiene un desplazamiento a la izquierda o a la derecha de la información almacenada. Es de señalar que un desplazamiento a la izquierda de un conjunto de bits, multiplica por 2, mientras que uno a la derecha, divide entre 2. Existen registros de desplazamiento bidireccionales, que pueden funcionar en ambos sentidos. Los registros universales, además de bidireccionales permiten la carga en paralelo.

Si, se que ahora muchos estaréis en modo…

Un registro de desplazamiento lo que hace es convertir una una cadena binaria en paralelo (varios bits) en una cadena secuencial (1 bit) o a la inversa. En los primeros adaptadores de pantalla se utilizaba los Registros de Desplazamiento para leer la RAM donde se encontraba la información de imagen y enviarla a las señal de video. Es algo que no explicare detalladamente aquí para no marearos mucho, pero digamos que la VRAM es DRAM+Registros de Desplazamiento en un chip. Es decir, los registros de desplazamiento se solían utilizar entre la RAM utilizada para video y la salida de video, la VRAM integraba dicho mecanismo en ella para acelerar el proceso.

Lo que esto permitía es el llamado doble puerto donde el DAC de video y lo que es el sistema de generación de imagen no iban conmutados y ambos podían acceder al mismo tiempo a la memoria de vídeo cambiando las reglas, desgraciadamente esto no lo tuvieron las consolas de 16 bits que optaron por utilizar SRAM de un solo puerto.

¿Que ventaja tenía la VRAM? Al ser una RAM de doble puerto no existen diferencias entre el periodo HBlank y HSync para dibujar la información por linea, tampoco con el VBlank y el VSync por lo que podemos darle al sistema gráfico acceso a la RAM de video en cualquier momento.

El cambio a la VRAM curiosamente era clave para el chipset Ranger de Jay Miner, el verdadero sucesor del chipset Amiga que nunca fue lanzado. En cuanto a consolas, la parte que tenía TI patentada del TMS9918 y derivados era la interfaz de DRAM… ¿Que hicieron? Utilizar SRAM en todas las variantes posibles, como la SRAM era más cara por bit esto enlentenció varios años el desarrollo del hardware gráfico a nivel de consolas domésticas.

¿Y como es que me interesa el TMS34010? Pues por el hecho que como conté en su día fue el primer chip gráfico en ser utilizado en la primera recreativa con gráficos en 3D a tiempo real. Y no, no fue ni el Virtua Racing de Sega, tampoco fueron los juegos de Namco con el System 21… Fue el Hard Drivin de Atari.

La geometría de la escena no era calculada ni por el 68010 ni tampoco por el propio TMS34010 que era demasiado lento para dicha tarea. Utilizaba un Motorola 68010 de CPU y dos TMS34010 a 6 Mhz aproximadamente para los gráficos pero para los cálculos de la escena, lo que hoy en día llamamos el pipeline geométrico utilizaba un ADSP-2100, los TMS340 pese a ser completamente programables no tenían la potencia suficiente para mover gráficos en 3D a tiempo real lo suficientemente complejos y se limitaban a hacer el trabajo de las rasterización que es dibujar la escena y lo hacía con dos de ellos, el primero dibujaba el circuito y el escenario mientras que el segundo dibujaba el hub del juego.

El TMS34010 tenía un bus de 16 bits para datos y se podían escoger dos tipos de memoria. La gama TMS4161 a velocidades de hasta 150ns con un solo bit de ancho de banda por chip, esto son memorias a 6,67 Mhz de velocidad, teniendo el bus de 16 bits esto son unos 16 chips de memoria en total en la placa. La segunda opción era la gama TMS4461 que soportaba memoria de hasta 120ns (8.33 Mhz de velocidad), con unos 32KB de densidad y un bus de 4 bits, por lo que era la opción más barata y permitía construir sistemas con solo 4 chips de memoria en vez de 16 chips.

En realidad el sistema estaba pensado para que el búfer de imagen fuese de un solo bit por pixel, era una técnica muy utilizada en la época llamada bitplane (plano de bits) donde la combinación de varios bitplanes no daba la información de color de cada pixel mirando a una tabla de color, no era algo exclusivo del TMS34010 y estaba muy implementado en sistemas como el Amiga y el Atari ST.

De ahí a que los chips fuesen de 1 bit de ancho de banda, en realidad los chips de 4 bits eran 4 chips de 1 bit empaquetados pero reduciendo costes. Esto significaba que en el TMS34010 si se quería trabajar con mayor profundidad de color eran necesarios más chips de memoria o en su defecto el DAC tenía que interpretar grupos de bits concretos a un determinado pixel.

Lo que mucha gente desconoce es que Atari Games por aquel entonces no era la Atari de los Tramiels sino otra Atari propiedad de Namco, la cual estaba trabajando en lo que termino siendo el System 21 de Namco o más conocido como Polygonizer, se puede decir que la recreativa de Hard Drivin era una versión preliminar de la de Winning Run para Namco System 21. pero con la gran diferencia que la placa arcade de Namco disponía de 4 DSP de Texas Instruments en vez del ADSP-2100, esto le permitía al sistema mover unos 1000 polígonos por fotograma a 60 fotogramas por segundo.

La idea de utilizar DSP en los arcades para calculos matemáticos complejos no era algo nuevo y tampoco exclusivo de la generación de gráficos 3D a tiempo real, también fueron ampliamente utilizados en casos especiales como las recreativas SuperScaler de Sega, no para generar gráficos poligonales sino para la enorme cantidad de calculos que necesitaban los patrones/sprites en ciertos juegos.

La clave de esos sistemas fueron los DSP, los cuales no son más que un tipo de procesador que toman enormes cantidades de datos y realiza calculos repetivios y en bucle para producir enormes cantidades de datos resultado. Los primeros DSP no eran especializados en una tarea concreta y se utilizaban tanto para soluciones de vídeo como de sonido, y especialmente fueron clave para la aparición en el campo multimedia. En el caso de los gráficos poligonales en 3D se utilizaban varios DSP para implementarlos como un «Geometry Engine» e implementar un pipeline geométrico sumamente primitivo, por otro lado la fase de rasterización no contenía la subfase de texturizado y los gráficos eran lanzados a pantalla sin mapeado de texturas.

Debido a que el System 21 era una evolución de la recreativa de Hard Drivin se ha de suponer que al menos el par de TMS34010 como unidades de rasterizado, pero estos resultaban en un cuello de botella ya que su velocidad de rasterizado dependía de la velocidad de la memoria en la que estaban conectados ya que de la misma dependía la tasa de relleno y por tanto la cantidad de pixeles que se dibujaban. El TMS34010 paso a ser el cuello de botella de las soluciones de Namco y Atari Games ya que no era lo suficientemente rápido como para seguir el compás de los DSP y esto reducía enormemente la tasa de polígonos que se podían dibujar, pero el TMS34010 estaba limitado por el uso de la memoria que tenía asignada.

Sega por otro lado resulto más prudente, el System 21 de Namco no era lo suficientemente potente para dar el salto a los gráficos poligonales todavía por lo que decidió solventar de antemano el problema de la tasa de relleno antes lanzando al mercado una placa recreativa con una capacidad en tasa de relleno superior a lo que iban a ser las consolas de 32 bits.

Años más tarde, Sega junto a la gente de General Electric Aerospace le coloco una serie de DSP de Fujitsu para el cálculo de la geometria de la escena, la idea era la misma que la del Hard Driving de Atari y el System 21 de Namco pero esta vez con un sistema gráfico con suficiente ancho de banda como para marcar diferencia y permitir una enorme tasa de relleno. El System 32 era tan bestía que permitía la friolera de hasta 8000 patrones/sprites por fotograma, lo que se traduce en un máximo de 8000 poligonos por fotograma.

Curiosamente tanto el Model 1 como el Model 2 utilizan el hardware del System 32 en sus entrañas, pero con el System 32 añadiendo el sistema de mapeado de texturas.

Y tras esta enorme repaso histórico vamos a por la pregunta… ¿Que es lo que les impedía a las consolas de 32 bits? El coste, pero principalmente el hecho de depender de varios DSP… ¿Pero como empezarón a desaparecer los DSP del mercado? Pues a medida que las CPUs se hicieron más y más potente y podían absorber sus tareas sin problemas o aparecieron sustitutos mucho más baratos para ciertas tareas.

El primer clavo en el ataúd fue la aparición de las CPU RISC a finales de los 80 y principios de los 90 que llevo a que muchos sistemas prescindieran por completo de los DSP al poder realizar ciertas tareas con la suficiente soltura sin necesidad de estos dentro de las estaciones de trabajo.

Pero el caso más flagrante fue el de PlayStation, si bien es menos potente que las soluciones arcade de la época, fue uno de los primeros pasos en los que una CPU con unas pocas extensiones en forma de co-procesador podían hacer el trabajo de varios DSP por una porción del coste. Pero aparte de PlayStation lo que empujo a la desaparición de los DSP fue la aparición del Intel Pentium.

Id Sofware dio el salto del Raycasting (Doom) a gráficos poligonales con Quake por la aparición del Intel Pentium, pese a tener una potencia que hoy considerariamos extremadamente limitada, el Pentium era lo suficientemente rápido como para que se prescindiera de los DSP en los ordenadores domésticos, en el mundo del PC esto se mejoro con la aparición de instrucciones como las MMX, las 3Dnow, SSE… Que ya destrozaron por completo la existencia de los DSP.

En consola, N64 no utilizaba ya DSPs para la generación de la geometría de la escena y el audio sino un MIPS R4000 modificado (RSP)… Ningún sistema doméstico de mediados de los 90 utilizaba DSPs para las tareas «multimedia» y esto tenían fecha de caducidad y solo hacía falta que las CPU tuviesen la velocidad suficiente como para reemplazar a los DSP en sus tareas y esto ocurrió cuando apareció Dreamcast que permitía tener un sistema doméstico al nivel de una recreativa de alta gama por una porción del coste.

Pero esto no solo revento el mercado de los salones recreativos,

hay un artículo de la EDGE de Diciembre de 1993 donde hablan de un avanzado sistema gráfico para simulación de Realidad Virtual de Evans & Sutherland.

24K pol/fotograma … ¡En 1993! Esto es impresionante, pero recordad que unos cinco años más tarde había una tal Dreamcast que por un 1% del coste podía mostrar sin problemas los mismos gráficos y toda gracias a que las CPUs de por aquel entonces se hicieron lo suficientemente rápidas como para reemplazar las enormes cantidades de DSP que eran necesarias.

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.