TakedaCat1TakedaCat2

 

Por fin se ha producido, Nintendo ha hecho lo que hace años debería haber hecho, que Genyo Takeda deje de trabajar en Nintendo y continuar su nefasto legado en lo que a diseño de hardware se refiere.

champagne2

La ideología de Nintendo a la hora de hacer consolas de sobremesa desde Nintendo64 a Wii U se la debemos a Genyo Takeda, en especial en la parte de hardware. Todas y cada una de las consolas de Nintendo se han basado en una obsesión de Genyo Takeda por ahorrar costes en el sistema ahorrando en la memodia, empezando por N64.

takedan64ram

La última respuesta de Takeda en cuanto al hardware de N64 es cuanto menos significativa.

La gran diferencia y lo atractivo que hace Rambus a una máquina de juegos es reducir sus costes. Y esto significa que toma menos espacio cuando estamos construyendo el sistema. Incluso pese a que funciona a 500 MHz puede ser construida con dos capas de PCB. Otras tecnologías requieren dos capas de un circuito impreso y cuando vas de dos capas a cuatro capas acabas por duplicar el coste del circuito impreso. Y esto son $5, lo cual no parece mucho pero cuando construyes millones de estas cosas…

La memoria RAMBUS fue una elección de Takeda para N64 y no de Silicon Graphics y esta decisión es el origen de uno de los principales problemas de rendimiento de N64 por su enorme latencia. Lo ideal en N64 hubiese sido un ancho de banda mucho mayor en lo que a la memoria se refiere, no en vano Silicon Graphics reciclo el RCP de N64 en sus estaciones de trabajo de bajo coste bajo el nombre de O2, cuya particularidad al igual que en N64 y posteriores esta en colocar el controlador de memoria en el mismo lugar que el procesador gráfico, el audio y la E/S.

n64archEsta arquitectura básica se ira repitiendo en las consolas de Nintendo posteriores cambiando el MIPS R4300i por un derivado del PowerPC. En todo la propia Silicon Graphics en el caso de las estaciones de trabajo O2 nunca llego a utilizar memoria RAMBUS aunque tampoco tenían el mismo esquema que N64 con el RCP al completo pero separado en forma de RSP (ICE) y Rendering Engine (RDP)

o2diagramLa diferencia es que en O2 la CPU era lo suficientemente potente como para que el ICE no tuviese que encargarse de la geometría de la escena, pero la CPU era mucho más compleja y menos viable por lo que en N64 se utilizaba el RCP que no es más que R4000 capado con una unidad vectorial para la geometría y el audio. Podríamos considerar al RCP de N64 como una GPU completa capaz de renderizar gráficos en 3D pero completamente afectada por la decisión de Takeda de coger la memoria RAMBUS, principal culpable de que el sistema no alcance el rendimiento que ha de alcanzar.

Obviamente una consola no tiene todas las necesidades de interfaz de una estación de trabajo, pero es significativo que SGI no utilizará RAMBUS en su estación de trabajo de bajo coste basada en el mismo hardware.

o2-block-diag-2El IOE (Input Output Engine) sobra por completo en una consola de videojuegos y con el mecanismo de N64 sería suficiente en una hipotética consola y lo otro que sobra es el DE (Display Engine) donde el mecanismo integrado en N64 sería suficiente por lo que al final lo que tenemos es la CPU con su cache L2 (recordemos que N64 no la tiene), el ICE que sería el RCP y el MRE que sería el RDP… Con la cache L2 buena parte de la latencia de la RAMBUS se hubiese paliado y este es uno de los motivos por los cuales le dieron tanta importancia a la Cache L2 de la CPU en GameCube y posteriores.

Pero lo impactante estaba en la memoria del O2, totalmente distinta a la de N64.

o2archLa memoria no era RAMBUS sino SDRAM propietaria a 66Mhz con un ancho de banda de lectura+escritura de:

(66*10^6)*32 bytes= 2.1 GB/seg

Con semejante ancho de banda es suficiente para el ancho de banda completo de la memoria y cubrir Bc+Bt+Bz de golpe, pero los costes son enormes al necesitar el cableado para una interfaz de 256 bits. SGI en N64 suplio el Bt utilizando directamente la cache de texturas con sus paupérrimos 4KB y el resultado que todos conocemos pero en especial lo pésimo fue la elección de la memoria.

Es por ello que en la sucesora Nintendo le dijo adiós a RAMBUS y opto por una memoria de baja latencia, la 1T-SRAM de MoSys pero continuo con su obsesión de sobresimplificar la placa base.

rev4n64smallselectedN64 en sus inicios tenía solo dos chips de memoria, GameCube acabo también con solo dos chips de memoria si no tenemos en cuenta la A-RAM que principalmente sirve como cache de disco.

gamecube_motherboardPero Nintendo para ahorrar costes en lo que a memoria se refiere encontró una solución muy simple, la de la memoria embebida. La idea de dicha memoria es el hecho de poder hacer la interfaz de memoria externa mucho más corta y por tanto necesitar menos chips de memoria. En las patentes esta claro que el concepto es ese, en el diagrama de GCN y Wii la memoria embebida es llamada VRAM.

GCNWiiDiagram.pngPero hubo una evolución de GCN a Wii, la 1T-SRAM fue atraída directamente lo más cercanamente posible al procesador gráfico donde esta el Northbridge/Controlador de memoria y la memoria A-RAM se convirtió en la MEM2, pero la tendencia en tener una placa base limpia con una interfaz de memoria estrecha continuo en dicha consola pero lo más significativo fue el no paso a la alta definición. ¿El motivo? Nintendo hubiese necesitado una GPU con 16MB de memoria embebida en su interior como mínimo, una enorme imposibilidad en esos momentos a nivel de coste.

¿La siguiente iteración? Fue Wii U, en ella la internal memory y la VRAM pasan a formar parte de la misma memoria embebida a nivel físico, aunque a nivel arquitectural están separadas.

wiiudiagram-e1404123816731Pero en Wii U la obsesión de Takeda en ahorrar en memoria empezó a decaer y a ser un problema desde el momento en que las unidades Shader dependen de la longitud de acceso a la memoria, de ahí a que a lo máximo que pudieran aspirar fuese a una GPU con 160 Stream Processors bajo la arquitectura R700 afectando la decisión a la potencia global de la consola.

Es decir, la memoria embebida en GameCube tenía sentido pero dejo de tenerlo en Wii U pero aún así Takeda continuo con su obsesión de intentar recortar en lo máximo posible la interfaz de memoria externa de las consolas de Nintendo. En realidad no hay ninguna consola de Nintendo que se conecte a un televisor que… ¡Haya tenido una interfaz de memoria RAM más grande de 64 bits! Ni tan siquiera Switch que utiliza un X1 supera esa cifra en lo que al ancho de banda de la memoria se refiere.

X1-GPU

Pero con el X1 han prescindido de la memoria embebida pero han encontrado un método de continuar el legado de ahorro de la memoria externa a través del Tile Caching, es decir, renderizar la escena por bloques desde la Cache L2 de la GPU para así reducir el impacto sobre la memoria principal.

tiledcaching1tiledcaching2tiledcaching3

Y muchos siempre se preguntan… ¿Cómo es que Nintendo no ha optado por el Tegra Parker en vez del X1? La obsesión en ahorrarse la mayor cantidad de chips de memoria posibles en la placa base que ha tenido Takeda todos estos años tiene la culpa de ello, fijaos como la placa lógica de Switch solo tiene 2 chips de memoria (bus de 64 bits)…

nintendo-switch-interior-2En cambio si miramos la comparativa el «Tegra Parker» tiene el doble de ancho de banda de la memoria (aparte de las ventajas rendimiento/consumo) por ser FinFet.

NVIDIA-Tegra-Parker-SOC_Specs-1En el Drive PX2 Autocruise de Nvidia se pueden ver claramente los 4 chips de memoria LPDDR4.

NVIDIA-DRIVE-PX-2-for-AutoCruise-front-527x630

Las decisiones de Takeda en cuanto a la memoria de los sistemas los capan, de ahí a que en el recorte que he puesto al principio relacionado con N64 veamos las siguientes declaraciones:

Pienso que el motivo por el cual no le estamos dando énfasis a los números de los benchmarks es porque Nintendo tiene una historia donde el diseño del hardware es darle al creador algo de inspiración para hacer los juegos.

Esta filosofía se ha repetido continuamente en todas las consolas de Nintendo con Takeda con director de orquestra, las cifras de rendimiento han sido siempre paupérrimas ergo Takeda se ha salido por la tangente una y otra vez creando sistemas que no han estado técnicamente a la altura en lo que a potencia bruta se refiere solo por las elecciones de un sistema de memoria paupérrimo con tal de ahorrar costes de manera obsesiva y eso al menos se ha mantenido con Switch y de ahí la elección del X1 en vez del «Parker» como SoC del sistema en Switch.

¿Qué significa esto de cara al futuro? No lo sabemos porque no hay ningún hardware más allá del de Switch en estos momentos y no sabemos el camino que puede tomar Nintendo en cuanto al hardware futuro. En todo caso pienso que Nintendo va a monitorizar todas las Switch existentes y su forma de uso en diferentes mercados para ver cuales son los hábitos de consumo de la gente y hacer futuras iteraciones en ese sentido.

¿Qué quieres decir con eso Urian?

Pues que Nintendo puede que se haya planteado por si acaso una sobremesa pura y esto suponga que el concepto de Takeda de como ha de ser el hardware hardware en conflicto con las necesidades reales de cara a hacer una nueva sobremesa. Diria que Takeda con tal de no perder la batalla dialéctica con la que esta obsesionado fue el que le propuso a Iwata en su día la consola híbrida porque a estas alturas su obsesión por recortar chips de memoria en placa ya no tiene sentido de cara el rendimiento, su visión ya se ha convertido en un problema enorme para Nintendo de cara a realizar hardware competitivo a nivel de sobremesa en cuanto a rendimiento bruto y tras unos cuantos sonoros fracasos en este sentido lo mejor es que este señor este fuera.