Blog personal sobre tecnología

Disruptive Ludens

Diseñando la Nintendo Switch Pro

Esta entrada es completamente ficticia, no es más como yo diseñaría la llamada Switch Pro en el caso de que yo estuviese al cargo de tal diseño. No voy a decir que tengo contactos, ni he recibido filtraciones ni voy a ir de Insider, simplemente es una construcción con mis conocimientos de tal manera que sea coherente con la realidad.

El SoC de la Switch Pro

El procesador central de la consola es un SoC a medida, el cual integra en un solo chip todos los elementos necesarios del sistema excepto la memoria flash y el almacenamiento interno. Estaría fabricado bajo el proceso de 8 nm de Samsung, pero no la variante de alto rendimiento que esta utilizando NVIDIA en estos momentos para la RTX 3000, sino la de bajo consumo.

La CPU del SoC de Switch Pro

La primera parte que nos interesa es la CPU de la consola, la cual tiene que ser compatible con  el conjunto de instrucciones ARMv8.0-A para una total compatibilidad hacía atrás con la CPU de Nintendo Switch. Por lo que la CPU escogida sería el ARM Cortex-A72.

Se trata de una CPU que fue anunciada por ARM Holdings en el 2015 y es el reemplazo directo del Cortex-A57 que utiliza la Nintendo Switch como CPU principal. Se trata de un rediseño del A57 que consume menos energía a la hora de funcionar, lo que le permite por un lado que la batería dure más respecto al A57 o poder alcanzar mayores velocidades de reloj cuando sea necesario. La idea no es otra que mantener la compatibilidad hacía atrás de manera total, que todo el software, desde el sistema operativo de la consola hasta el último juego funcionen sin problemas.

A57 vs A72

La configuración de la que estaríamos hablando sería la de un solo cluster de 4 núcleos, ya que los juegos de Switch están pensados para funcionar con dicha configuración, por lo que no estaríamos hablando de una configuración de 8 núcleos, al fin y al cabo estamos hablando de una versión mejorada.

La nueva CPU servirá para que los juegos limitados por CPU puedan recibir una mejora en rendimiento, leve, pero que la puedan recibir.

La RAM de de Switch X

Aunque la RAM no se encuentra dentro del SoC, necesitamos escoger el tipo de memoria, ya que la interfaz se encuentra en la periferia del SoC principal.

Los actuales modelos de Switch utilizan la LPDDR4X, una versión de menor consumo de la LPDDR4, que es una de las claves para mejorar la vida de la batería respecto a la primera revisión de la consola de 2017, esta segunda revisión fue lanzada en 2019.

El tipo de RAM para smartphones y tablets más avanzada en estos momentos es la LPDDR5, pero tiene el problema de tener un mayor consumo por dato transmitido que la LPDDR4X, sumadle esto que es un ancho de banda mayor y entonces entenderéis que es un paso atrás en cuanto a la relación ancho de banda/consumo.

¿Entonces? Creo que en el caso de la Switch Pro vamos a volver a ver una configuración LPDDR4X en su SoC como la de Mariko, se que es una decepción para muchos, pero es lo que más sentido tiene.

Elementos repetidos del SoC de Switch

El SoC de Switch tiene una serie de elementos en su interior que son utilizados por los juegos y por tanto se han de mantener, otros no son utilizados mientras que en el tercer grupo incluiríamos los que pueden recibir una mejora.

  • 4K 60 FPS Display Controller:  Se trata de la interfaz DisplayPort y su controlador, desde el momento en que soporta 4K a 60 FPS no necesitamos actualizarla, ya que es lo suficientemente buena, esta pieza por lo tanto se mantiene.
  • LPDDR4 Memory Controller: Aunque el cambio ya se hizo en la revisión del X1 de Switch, la tenemos en cuenta en este caso.
  • 4K 60 FPS Video Encode Decode: Debido a que vídeos se van a tener que reproducir tanto en la Switch estándar como en la Switch X, el sistema de vídeo no va a recibir ningún tipo de actualización.
  • USB 3.0: La consola utiliza su puerto USB-C para cargar y para enviar vídeo a través del protocolo DisplayPort haciendo uso de una interfaz USB-C Alt DP. Pero la interfaz USB 3.0 de la consola es por donde interaccionan los módulos WiFi y Bluetooth
  • Security Offloads: Es el chip de seguridad encargado de vigitar que nadie viole la «confianza» del sistema, lo cual significa que nadie ejecute software no autorizado. Teniendo en cuenta que Switch ha sido pirateada ya hace tiempo, esta parte va a recibir un cambio importante.
  • 4K HDMI 2.0 HDCP 2.2: Desde el momento en que Switch transmite a través de DisplayPort via USB-C esta es una pieza totalmente inútil, ya que la consola no tiene salida HDMI de ningún tipo, otra pieza a la basura.
  • Dual Display: Soporte para dos pantallas al mismo tiempo, otro elemento inútil que vamos a enviar al guano.
  • MIPI DSI eDP: Es la interfaz con el DisplayPort en el USB-C, por lo que vamos a mantenerla, eso si, sin cambios.
  • eMMC 5.x Flash + SPI SDIO: Un elemento que se mantiene. Los NVIDIA Tegra utilizan uno con dos canales, uno para la memoria interna y el otro para el slot SD que esta mencionado como SPI SDIO. No vamos a ver cambios en este aspecto respecto a la actual Nintendo Switch. La idea es que puedas trasladar tus microSD de una consola a otra sin problemas.
  • MIPI CSI-2 e ISP: La Camera Serial Interface y Image Signal Processor van de la mano, y ambos en nuestro diseño marcharían juntos. No nos interesa una consola con cámaras.
  • Audio Engine: Este elemento lo vamos a dejar igual también, se trata de los procesadores y DSPs de sonido.

La GPU de Switch X

Llegamos a la parte importante, la cual es la GPU del nuevo sistema. ¿Cuál es para mi la configuración ideal?

  • 2 GPC:
      • Una unidad de rasterizado por GPC, doble de triangulos rasterizados por ciclo respecto al Tegra X1. La unidad de rasterizado es la misma que GeForce Ampere, soporte para Variable Rate Shading.
      • Una unidad de teselación por GPC, doble de triangulos rasterizados por ciclo respecto al Tegra X1.
      • 16 ROPS por GPC, 32 ROPS en total. Del mismo tipo que las GeForce Ampere.

La idea de tomar 2 GPC en vez de uno solo tiene como objetivo duplicar la tasa de rasterizado y la cantidad de píxeles dibujados en memoria. Pero especialmente para activar el modo viaje largo, donde uno de los GPC se apaga y el bus de memoria se reduce a la mitad. Dicho modo funciona de la siguiente manera:

  • Calidad de los gráficos y velocidad de la consola igual que el modo portátil de la Switch original.
  • Es un modo pensado para viajes largos, en los que el tiempo de los mismos supera la duración normal de la batería.
  • El modo viaje largo puede ser activado en cualquier momento desde las opciones de la consola.

En cuanto a los SM tenemos un total de 8 SM repartidos en 4 SM en un GPC y otros 4 en el otro GPC. Estos son los mismos que los de la GeForce RTX 3000 pero sin los RT Cores, ya que la consola no estaría preparada para reproducir juegos con Ray Tracing.

Por otro lado a algunos os habrá sorprendido el motivo por el cual no he descartado los Tensor Cores, después de haberlos considerado como prescindibles, sobre ello ya hablaremos más adelante en esta entrada.

GPUs comparadas

El punto crucial es la GPU, la cual vamos a basarla en la arquitectura GeForce Ampere de las actuales RTX 3000, pero con un cambio muy simple, la no inclusión de la unidad RT Core.

Ampere SM Lite

En el caso del Tegra Xavier, su GPU de 8 SM del tipo Volta al completo ocupa de área 89.2 mm2 , por lo que con el salto a los 8 nm estaríamos hablando de reducir el área de dicha GPU a los 50 mm2, eso si, hay que tener en cuenta los cambios de Volta a Ampere, por lo que estaríamos hablando de 60 mm2 en total, siendo la pieza más grande en toda la GPU de nuestra versión mejorada de Switch.

Los números de la nueva GPU

La GPU de Nintendo Switch opera teóricamente en dos velocidades de reloj, una para el modo Dock y otra para el modo portátil. Esta última inicialmente era de 307. 2 MHz, pero añadieron la opción a 384 MHz. Mientras que el modo Dock ha funcionado siempre a 768 MHz, al menos oficialmente.

El paso de un nodo a otro permiten utilizar velocidades de reloj más altas que los anteriores, pero el modelo original del Tegra X1 se diseño para que su GPU funcione a múltiples de 76.8 MHz.

Velocidad base Multiplicador Velocidad final
76,8 MHz 1 76,8 MHz
76,8 MHz 2 153,6 MHz
76,8 MHz 3 230,4 MHz
76,8 MHz 4 307,2 MHz
76,8 MHz 5 384 MHz
76,8 MHz 6 460,8 MHz
76,8 MHz 7 537,6 MHz
76,8 MHz 8 614,4 MHz
76,8 MHz 9 691,2 MHz
76,8 MHz 10 768 MHz
76,8 MHz 11 844,8 MHz
76,8 MHz 12 921,6 MHz

A partir de aquí podemos conocer la potencia de cálculo teórica de nuestra Switch X.

Velocidad final TFLOPS FP32 TFLOPS FP16
76,8 MHz 0,16 0,31
153,6 MHz 0,31 0,63
230,4 MHz 0,47 0,94
307,2 MHz 0,63 1,26
384 MHz 0,79 1,57
460,8 MHz 0,94 1,89
537,6 MHz 1,10 2,20
614,4 MHz 1,26 2,52
691,2 MHz 1,42 2,83
768 MHz 1,57 3,15
844,8 MHz 1,73 3,46
921,6 MHz 1,89 3,77

El uso de los Tensor Cores y el DLSS

Mucha gente espera poder ver gráficos a 4K en sus televisores con los anémicos Tensor Cores, en comparación con los de las RTX 2000 y RTX 3000, cuando un simple análisis demuestra que esto no es posible.

El siguiente gráfico es del NVIDIA NSight, nos marca el grado de carga de trabajo de cada fotograma en el tiempo, si os fijáis los Tensor Cores en esta captura de pantalla no se utilizan, por lo que la línea esta completamente plana.

DLSS-1

En cambio en esta otra vemos el uso de los Tensor Cores al final, ya que corresponde al uso del DLSS.

Por otro lado sabemos por las tablas oficiales de NVIDIA que el tiempo necesario para realizar el DLSS no es fijo para todas sus RTX, ya que depende de dos factores:

  • La GPU que estemos utilizando.
  • La resolución en origen y la resolución de salida que se quiera obtener.

DLSS NVIDIA Cost

La obsesión de los medios es hablar de escalar de 1080p a 4K como cotorras, nadie se atreve a decirles que el Emperador esta desnudo, pero hay que tener en cuenta que hay juegos que en modo portátil no funcionan a 720p, sino a resoluciones mucho menores, e incluso a 360p.

Con el DLSS sería posible hacer que las resoluciones de estos juegos se moviesen a los 720p sin problemas, eliminando uno de los problemas de rendimiento de la Switch original. En ese caso si que habría potencia de sobras para hacerlo y la experiencia de dichos juegos en modo portátil mejoraría.

En realidad dado que una gran cantidad de juegos utilizan resolución dinámica los veríamos mejorados gracias a la mayor velocidad. Todos los juegos correrían sin problemas en modo Dock a 1080P y en modo portátil a 720P.

Elementos finales del hardware

  • La unidad principal de la consola tiene una carcasa metálica con aleación de magnesio.
  • Nuevos Joy-Cons, el stick analógico ha sido mejorado para evitar el problema del Drift, los botones ZL y ZR tienen ahora recorrido como gatillos en vez de ser simples botones.
  • Pantalla 720P OLED a 7 pulgadas, obviamente el marco se hace más estrecho.

Con este termino.