Diseñando la PlayStation 4 Portable

Spread the love

Ha aparecido el rumor de que SONY podría volver a hacer una consola portátil, cosa que dudo mucho, ya que no van a dividir recursos para apoyar a una nueva plataforma a no ser que hagan una versión portátil de su PlayStation 4 con la capacidad de correr los juegos de dicha consola en su nuevo sistema. Es por ello que he decidido hacer esta entrada. ¿Hasta qué punto es posible la PlayStation 4 Portable?

Antes de nada, recordaré que no voy a hablar de la especificaciones de una consola real, sino de un rumor y, por tanto, a la hora de escribir este artículo se trata de una consola inventada. PlayStation 4 Portable es el nombre que le he dado yo al siguiente hardware de bolsillo de SONY, sucesor de PlayStation Vita pero sin compatibilidad hacia atrás con esta a nivel de hardware, pero si muy posiblemente a nivel de software a través de un emulador.

La consola no tendría catálogo propio, pero nos permitiría utilizar los juegos de PlayStation 4 en ella y jugarlos desde cualquier lugar a través de su pantalla 1080P de 7 pulgadas. ¿El factor forma? El de Trinity, la tercera revisión de PS Vita, la cual tenía que añadir elementos cómo los gatillos L2 y R2 y que podéis ver cómo portada de este artículo.

El procesador central de PlayStation 4 Portable

Por suerte la tecnología para construir nuestro sistema  ya existe y tanto AMD cómo SONY la pueden sacar de la Steam Deck de Valve, aunque le vamos a hacer una serie de cambios importantes a dicho hardware qué no lo conocerá ni su madre. En primer lugar, tenemos la CPU Zen 2, la cual es la misma que en PlayStation 5 y, por tanto, es compatible hacia atrás. El problema es que PS4 dispone 8 núcleos físicos en vez de los 4 de Zen 2 y si bien este último soporta multihilo y es mucho más potente por ciclo de reloj, para ejecutar juegos de PS4 en una portátil no es la mejor opción.

Por lo que lo mejor es empezar con una configuración de 8 núcleos, y que mejor que un Zen 3+ como CPU base, el cual tiene una optimización mucho mayor en dispositivos de bajo consumo Todo ello gracias a un Power Delivery Network interno en el chip mejorado en los Ryzen 6000, los cuales usaremos cómo base, al menos en la parte de la CPU y lo que la rodea.

No obstante, hemos de tener en cuenta que nuestro objetivo es tener una consola portátil capaz de ejecutar juegos de PS4 y, por tanto, nos interesa de entrada eliminar todo aquello que los juegos de PS4 no utilizan:

  • Instrucciones AVX de 256 bits.
  • Soporte para multihilo, una de las cosas que más energía consume.
  • La eliminación del modo Boost en el procesador para alcanzar velocidades más altas.

En cuanto a la velocidad de reloj, la cosa se quedaría en los 1.6 GHZ de la CPU de la PS4 original y su versión Slim, en realidad no necesitamos más y los juegos no están diseñados para aprovechar una potencia mayor. Pensad que en este clase de sistemas cada MHz de más no solo aumenta la capacidad de cómputo, sino también el consumo de la batería y la velocidad de la PS4 original es más que suficiente.

No olvidemos que Zen 3+ puede solventar más instrucciones por núcleo que el viejo Jaguar de PS4, además, desde el momento en que los 8 núcleos están en el mismo clúster y no separados, la latencia de comunicación entre todos ellos es la misma y esto es algo que junto al IPC suma al rendimiento. Tampoco nos podemos olvidar de la caché L3, ausente en el Jaguar de PS4 y que nos ayudará a reducir los accesos a memoria. Un punto crucial en un dispositivo diseñado para funcionar con batería.

La memoria RAM de PlayStation 4 Portable

El segundo punto que pienso que es importante es la memoria RAM, precisamente hemos de tener en cuenta que la pieza más importante en una consola es la GPU y estas siempre dependen del caudal de datos con las que puedan ser alimentadas. Una de las claves del rendimiento de PS4 es su enorme bus GDDR5 de 256 bits capaces de otorgar 176 GBps de ancho de banda en una configuración del tipo UMA, donde dos controladores de memoria integrados, el de la CPU y el de la GPU, se pelean por el acceso.

PS4 Memory Totals

En PlayStation 4 tenemos dos grupos de dispositivos distintos, por un lado, los que son coherentes en el espacio de memoria con la CPU y por el otro los qué no lo son y acceden al espacio de la GPU.

DAGB

Haciendo un símil con la vida real:

  • Dos oficinas de correos, cada una asignas a un barrio distinto.
  • Un solo repartidor trabajando para ambas oficinas.

Obviamente, esto crea una contención en el acceso a la memoria que hace que buena parte del ancho de banda total se pierda. Lo cual podéis ver en el siguiente gráfico sacado del la documentación del kit de desarrollo oficial de la consola.

PlayStation 4 contención de la memoria

Hay varias formas de solucionarlo, aunque la más obvia es hacer uso de memoria multicanal que pueda suministrar varias peticiones al mismo tiempo. Por lo que con ello nuestro repartidor ahora son varios que trabajarán en la misma empresa de reparto. Por lo que esto nos deja con dos posibilidades distintas para solventar el problema.

Primera opción para la RAM de PlayStation 4 Portable: LPDDR5

La LPDDR5 nos interesa cómo memoria RAM, en primer lugar cada uno de sus chips de memoria tiene acceso multicanal y el contrario que la GDDR5 de la PS4 original evitamos la contención. Lo más curioso es que si tenemos en cuenta la configuración de la Steam Deck veremos que cuatro chips LPDDR5-5500 nos dan ahora mismo un ancho de banda de 88 GB/s en un bus de 128 bits. Justo la mitad que los 176 GB/s de PlayStation 4 en un bus de 256 bits. Por lo que por lógica solo tendríamos que colocar el doble de chips de memoria. Pero, ¿es una buena idea?

LPDDR5 SteamDeck

Sin embargo, esta opción tiene los siguientes problemas:

  • Desde el momento en que la interfaz con la memoria se encuentra cableada en el perímetro del chip, duplicar la cantidad de interfaces supone aumentar el área del mismo y con ello el coste. Hemos de partir de la base que hablamos de tener 128 conexiones para datos a 256, lo que supone además aumentar el perímetro del chip en total.
  • Además, que el tamaño de la placa donde todo va montado sería mucho más grande, al tener que albergar más chips de memoria. Es posible que no nos quepa para realizar una consola portátil, por lo que hemos de buscar una solución a este problema, por suerte esta.
  • Sobre el punto anterior, no podemos colocar la otra mitad de los chips en la parte posterior de la placa por el hecho de que no hablamos de un modo clamshell en el que dos chips de memoria comparten la misma interfaz.

Además, existe un problema adicional y es que en este caso el ancho de banda se dividiría en 2, esto significa tener un sobreancho de banda de 88 GB/s para la CPU, cuando esta solo necesita 24 GB/s para funcionar y luego un ancho de banda mucho más bajo para la GPU de 88 GB/s, lo que supondría un cuello de botella enorme para los gráficos.

La alternativa: Memoria HBM

Lo primero que muchos pensaréis es que me he vuelto loco proponiendo esto, pero hemos de partir que la HBM es el tipo de memoria con el mejor TDP de todos gracias a sus bajos pJ/bit comparados con otros tipos de memoria. Sin embargo, lo que yo sugiero es el uso de una versión de la memoria HBM totalmente optimizada para el uso en dispositivos de bolsillo para PlayStation 4 Portable. Y estoy muy seguro que una memoria de este tipo la acabaremos viendo en dispositivos portátiles en menos tiempo del que os creéis.

Una pila de memoria HBM2E en la actualidad puede proporcionar 8 GB de RAM en un bus de 1024 bits y un ancho de banda de 307.2 GB/s, mucho más de lo que necesitamos. Por lo que podemos disminuir la velocidad de reloj y el voltaje para bajar el consumo progresivamente hasta legar a nuestros 176 GB/s deseados. ¿A qué velocidad?

  • Hemos de partir que le hemos de dar a la CPU y sus clientes un canal a 24 GB/s, ya que es lo que utiliza el bus ONION.
  • En las arquitecturas Zen como la que usaremos, el IMC de la CPU se comunica con el exterior con un ancho de banda de 256 bits multiplicado por el memclock.
  • El memclock de la HBM2 es la mitad que los Gbps por pin de interconexión.

HBM Memory Channel

La idea es conectar el IMC ONION a uno de los 8 canales de una interfaz del tipo HBM. Este se comunica a 256 bits*ciclo a velocidad del memclock de la memoria que es de 750 MHz. La otra parte a 1500 en un bus de 128 bits. El mismo ancho de banda y con periodos en que uno es la mitad del otro para facilitar la sincronización. Teniendo en cuenta los 8 canales de memoria, esto nos dan 192 GB/s en una memoria que tendría un consumo muy bajo, ya que haríamos funcionar la memoria a un voltaje mucho menor que el habitual.

HBM underclocking

No obstante, no se trataría de la memoria HBM al uso que vemos en PC, no solo por este cambio, sino también por el hecho que carecería de mecanismos ECC, los cuales no nos son necesarios en una consola de videojuegos. Además, qué todo el conjunto del SoC y la memoria al ir montados sobre un interposer ocuparían muy poco espacio dentro de la portátil o al menos mucho menos que otras soluciones. Lo que nos daría espacio para una gran batería, pero especialmente para dejar circular el aire por el interior del dispositivo y darle una mejor refrigeración al mismo sin que se convierta en un armatoste como la Steam Deck.

RX Vega Mobile

La configuración de la GPU de PlayStation 4 Portable

Esta es la parte que más he tenido que cambiar respecto a la versión preliminar de la entrada, es una de las ventajas que tiene tener una comunidad, pero creo que hay que aclarar un concepto que es importante. En el Discord Duque77 me ha dejado caer lo siguiente:

18 CU al menos que estes hablando en 5nm, lo veo un poco grande y en consumó se buscaria un soc de 10-15w si se quiere autonomía. Si se personaliza un 6800U, la GPU de 12CU estaria bien a unos 1600mhz, tendria un poco mas potencia que la GPU de la steamdeck.

Sería mucho peor desde mi punto de vista, ya que intento evitar en el diseño los consumos energéticos altos y una forma de hacerlo es mantener la velocidad de reloj lo suficientemente baja. Es por ello que pienso que escoger una configuración de 18 CU a 800 MHZ y que corresponde con la de la PS4 original, pero usando RDNA 2 cómo arquitectura es mucho mejor que una a mayor velocidad. La idea es la misma que con la CPU y la memoria, bajar la frecuencia para con ello el consumo energético en el proceso.

Aunque al mismo tiempo, estoy de acuerdo con Duque77 y su comentario en el Discord, 18 CU en el espacio del chip es mucho, por lo que hemos de buscar la manera de reducirlos y hacer posible este diseño.

Equilibrando la GPU

Hemos de partir de las siguientes normas:

  • Las Compute Units están agrupadas de 2 en 2 en la arquitectura RDNA2, dicho grupo recibe el nombre de WGP.
  • 18 Compute Units suponen 9 por Shader Engine y, por tanto, tener medio WGP inactivo por lado.
  • Las arquitecturas RDNA no permiten desactivar un WGP parcialmente, sino totalmente

Es decir, la configuración de 18 CU no es posible, pero sí que sería posible una de 16 CU a 900 MHz. El caso es que si volvemos a recortar nos quedamos con una de 12 CU, ya que hemos de recortar 1 WGP por lado. ¿Qué nos queda al final? La misma configuración que la 680M de las APU Ryzen 6000.

Ryzen 6000 GPU

La diferencia es que en nuestro diseño tendríamos 2 Primitive Units, ¿a qué velocidad? Pues a 1200 MHz. Sin embargo, hemos de tener en cuenta que una mayor velocidad de reloj supone aumentar también la tasa de relleno y con ello la tasa de ancho de banda que este necesita. Por suerte la cantidad de RB se puede regular para que en vez de 32 ROPS sea de 24.

Por el otro lado tenemos una serie de tecnologías que funcionan de forma automática y de forma implícita que sirven para mejorar el rendimiento y disminuir el consumo energético de ciertas operaciones. Desde el momento en que estas tecnologías no entran en conflicto con el código de los juegos y son un benefició general las vamos a dejar, por lo que se elimina el soporte para hardware de los Mesh Shaders, el Ray Tracing y el Variable Rate Shading. El resto de tecnología de RDNA 2 y que permite la compatibilidad con la GPU de PS4 se mantendría por completo.

¿Southbridge integrado?

PlayStation 4 Portable no traería el Southbridge típico de PlayStation 4 con tal de reducir el espacio en la placa del sistema, sino también por el hecho que muchas de las interfaces no las vamos a necesitar en la consola portátil.

  • Solo vamos a usar un puerto USB del tipo C, el cual se va a usar solo para cargar la consola y no para la transferencia de datos ningún tipo, por lo que la mayoría de interfaces USB quedan suprimidas.
  • La interfaz SATA-USB para el disco duro y el lector Blu Ray obviamente queda totalmente suprimida, ya que estas unidades no se encuentran disponibles.
  • No habría salida HDMI, sino un sistema eDP para comunicar la GPU con la pantalla integrada en la consola. Por lo que esta sería totalmente portátil.
  • El puerto Ethernet queda fuera por completo, obviamente no la conectividad WiFi y Bluetooth que tendrán sus propios módulos en el sistema.

PS4 Background Processing

Sin embargo, una de las funciones que sí que tiene el Southbridge que son las descargas en segundo plano tendría que reemplazarse por un modo de muy bajo consumo para la CPU principal, el cual consistiría en lo siguiente:

  • La pantalla y la GPU estarían totalmente apagadas.
  • De la LP-HBM 7 de los canales de acceso estarían apagados en consecuencia y su velocidad de reloj disminuida, así cómo el voltaje.
  • Solo se usaría un núcleo de la CPU, a velocidad también reducida.

La consola se podría apagar a través del menú, pero traería consigo un botón en el que una sola pulsación no-sostenida en el tiempo colocaría a la consola en modo de espera. Lo cual es crucial para una consola que queremos llevar a cualquier parte como nuestra PlayStation 4 Portable. Al mismo tiempo esto nos lleva a un elemento muy importante, el almacenamiento.

Almacenamiento en PlayStation 4 Portable

La consola vendría con un almacenamiento interno basado en memoria de estado sólido y no haría uso de ningún disco duro cómo en la consola original. Al mismo tiempo hemos de tener en cuenta que los juegos no están pensados para aprovechar el ancho de banda de un SSD NVMe y mucho menos un SSD SATA.

No vamos a utilizar el SSD de PS5, ya que el consumo de nuestra PlayStation 4 Portable no nos lo permitiría. Sin embargo, las memorias flash usadas en dispositivos de bolsillo no solo son lo suficientemente rápidas como para suplir el disco duro de la consola en su versión portátil al completo sin irnos a usar un SSD NVMe en el proceso.

Es más, la experiencia con la Steam Deck haciendo uso de una MicroSD para el almacenamiento complementario nos demuestra que no necesitamos más que eso y que los juegos no tardan más de 2 o 3 segundo en cargar e incluso en salir del modo de espera. Además, se trata de una pieza que se encuentra disponible en gran volumen y es relativamente barata.

3 4 votes
Article Rating
Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Over
Over
6 months ago

Interesante. Sería un poco superior a Switch pero con más del doble de resolución.

Pero no habría que eliminar el Variable Rate shading, sirve para mejorar el rendimiento y el consumo. Y de todas formas los juegos serían parcheados para su edición en la portátil. No es como con PS4 pro teniendo que funcionar con todo el catálogo sin parches, por lo que aprovecharían algunas mejoras de rendimiento.

Last edited 6 months ago by Over
1
0
Would love your thoughts, please comment.x
()
x