La mayor ventaja que las consolas (cualquiera) tienen sobre los PC gaming es el hecho de que son una plataforma fija y con todo integrado, por lo que los desarrolladores lo tienen mucho más fácil para optimizar los juegos para estas plataformas. Una de las grandes novedades de las consolas next-gen es el SSD que incorporan tanto PS5 como Xbox Series X, lo cual permitirá un enorme avance en términos de rendimiento, así que es inevitable que nos hagamos la pregunta: ¿supone esto una nueva era para el gaming?
Hasta ahora, los juegos de PC han demostrado que el aumentar la velocidad del almacenamiento con los SSD tiene poco o nulo impacto en el rendimiento de los juegos si dejamos de lado que se reducen los tiempos de carga. Los SSD NVMe son varias veces más rápidos que los SSD SATA sobre el papel, pero incluso en los juegos más exigentes de PC no se nota una diferencia palpable entre utilizar uno u otro. En parte, esto se debe a cuellos de botella en otras partes del sistema que revelan cuándo el almacenamiento es lo suficientemente rápido para no suponer un bloqueo en ninguna parte.
Las próximas consolas incluirán una serie de características de hardware para facilitar que los juegos aprovechen un almacenamiento mucho más rápido que antaño, aliviando cuellos de botella que serían problemáticos en un PC estándar. Aquí es donde la tecnología de almacenamiento de la consola se vuelve realmente interesante, ya que los SSD de la PS5 o la Xbox Series X en sí mismos son relativamente poco notables.
Así pues, a continuación vamos a describir los aspectos del SSD y en general de las próximas PS5 y Xbox Series X que podrían marcar una nueva era para el gaming si los desarrolladores extrapolaran estas ventajas también al mercado del PC gaming.
La compresión en el SSD de la PS5 y Xbox Series X
La característica de hardware especializado más importante que incorporarán las consolas de nueva generación para complementar el rendimiento del hardware de almacenamiento es el hardware de descompresión de datos dedicado. Los activos del juego deben almacenarse en el disco en forma comprimida para mantener los requisitos de almacenamiento a un nivel razonable, y esto obviamente tiene cierto impacto en el rendimiento.
Los juegos, por norma general, se basan en múltiples métodos de compresión: algunos con pérdidas, especializados para ciertos tipos de datos (por ejemplo audio o imágenes estáticas) y algunos algoritmos de propósito general sin pérdidas; lo que es inapelable es que casi todos los datos pasan por al menos un método de compresión que es bastante complejo desde el punto de vista computacional.
Las arquitecturas de GPU han incluido durante mucho tiempo hardware para manejar secuencias de vídeo de decodificación y admiten métodos de compresión de textura con pérdida simple pero rápidas, como S3TC y sus sucesores, pero esto deja que la CPU se tenga que encargar de descomprimir muchos de los datos. Las CPU de escritorio no tienen motores o instrucciones de descompresión dedicados, aunque muchas instrucciones en las diferentes extensiones SIMD están destinadas a ayudar en este tipo de tareas. Aun así, descomprimir un flujo de datos de varios GB por segundo no es algo trivial, y el tener un hardware específico para esta tarea puede hacerlo de manera mucho más eficiente al mismo tiempo que libera de carga a la CPU.
EL hardware de descarga de descompresión en las próximas consolas se implementa en el SoC principal para que pueda desempaquetar los datos después de atravesar el enlace PCIe desde el SSD, y reside en el grupo de memoria RAM principal compartido por los núcleos de GPU y CPU.
Un hardware de descarga de descompresión como este no se encuentra en un PC de sobremesa, pero no es una idea novedosa ya que sí existe en entornos de servidores y, de hecho, las consolas de anterior generación también incluyen hardware dedicado para la descompresión, si bien no un hardware con un rendimiento capaz de seguirle el ritmo a un SSD NVMe como el de la PS5 o Xbox Series X.
Las plataformas de servidor a menudo incluyen aceleradores de compresión, generalmente emparejados con aceleradores de criptografía: Intel ha hecho tales aceleradores como periféricos dedicados o externos en conjuntos de chips de servidor, y las CPU POWER9 y posteriores de IBM cuentan con unidades de aceleración similares. Estos aceleradores de servidor son más comparables a lo que necesitan las consolas modernas, ya que sí alcanzan un rendimiento de varios GB por segundo.
Tanto Microsoft como SONY han optimizado sus unidades de descompresión para que se ajusten al rendimiento esperado de sus correspondientes SSD. Han elegido diferentes algoritmos decompresión patentados: Kraken de RAD en el caso de SONY, diseñado originalmente para las consolas actuales con CPU relativamente débiles pero con requisitos de rendimiento mucho más bajos, mientras que Microsoft se ha centrado específicamente en la compresión de texturas, razonando que las texturas representan el mayor volumen de datos en un juego. Desarrollaron para ello un nuevo algoritmo de compresión denominado BCPack.
Xbox Series X | PS5 | |
---|---|---|
Algoritmo | BCPack | Kraken |
Ancho de banda máximo de salida | 6 GB/s | 22 GB/s |
Ancho de banda típico | 4.8 GB/s | 8-9 GB/s |
Equivalente en núcleos Zen 2 de CPU | 5 | 9 |
SONY asegura que su hardware de descompresión basado en Kraken puede desempaquetar un flujo de hasta 5.5 GB/s de datos (8-9 GB/s de datos sin comprimir), pero teóricamente podría alcanzar los 22 GB/s si los datos son lo suficientemente redundantes. Por su parte, Microsoft dice que su descompresor BCPack puede generar 4.8 GB/s típicos de entrada pero potencialmente llegaría a 6 GB/s. Así, Microsoft afirma tener relaciones de compresión típicas ligeramente más altas, pero sigue teniendo un flujo de datos inferior a causa de que el SSD de la Xbox Series X es sensiblemente más lento que el de la PS5. Recordemos que Microsoft solo comprime y descomprime datos de texturas, mientras que SONY lo hace con todos los datos.
El tiempo de CPU que se ahorra el sistema por estas unidades de descompresión dedicadas es increíble: es el equivalente a aproximadamente 9 núcleos de CPU Zen 2 en el caso de la PS5 y aproximadamente 5 núcleos en la Xbox Series X. Hay que tener en cuenta que esto son números máximos que suponen que el ancho de banda del SSD se está utilizando en su totalidad, pero la realidad es que los juegos difícilmente tendrán el SSD al 100% de carga constantemente, así que nunca sería necesario tanto uso de CPU.
Las funciones de aceleración de almacenamiento en los SoC de las consolas no se limitan solo a la descarga de compresión, y SONY en particular ha descrito algunas características, si bien de una manera tan sumamente vaga que no nos atrevemos a hacer afirmaciones al respecto porque está demasiado abierta a la interpretación. Quedaos con el concepto de que en teoría este hardware dedicado para la descompresión colabora también en mejorar el rendimiento en otras tareas.
Los motores DMA
El acceso directo a memoria (DMA significa Direct Memory Access) se refiere a la capacidad de un periférico de leer y escribir en la RAM sin que la CPU del sistema se tenga que involucrar en ello. Todos los periféricos modernos de alta velocidad utilizan DMA para la mayoría de sus comunicaciones con la CPU, pero ese no es su único uso ya que un motor DMA es un dispositivo periférico que existe únicamente para mover datos, pero sin hacer nada con ellos. Es como una autopista.
La CPU puede ordenar al motor DMA que realice una copia de una región de la RAM a otra, y éste hace el trabajo de memoria de copiar potencialmente gigabytes de datos sin que la CPU tenga que hacer una instrucción mov (o su equivalente en SIMD) para cada pieza, y sin contaminar además la memoria caché de la CPU. Los motores DMA a menudo también pueden hacer más que simplemente descargar operaciones de copia simples: admiten operaciones de dispersión / recopilación para reorganizar los datos de alguna manera en el proceso de moverlos. NVMe ya tiene características como listas de dispersión / recopilación que pueden eliminar la necesidad de un motor DMA separado para proporcionar esa función, pero los comandos NVMe en los SSD de Xbox y PS5 actúan principalmente con datos comprimidos nada más.
Aunque los motores DMA son un dispositivo periférico, generalmente no los encontraremos como una tarjeta de expansión PCIe por ejemplo. Tiene más sentido que estén lo más cerca posible del controlador de memoria para un acceso con menor latencia, lo que significa que los encontraremos en el chipset o en la misma CPU.
El SoC de PS5 incluye un motor DMA para manejar la copia de los datos que salen de la unidad de compresión, y al igual que con los motores de descompresión, esta no es una nueva invención sino una característica que falta en los PCs de escritorio estándar pero que ya existe en servidores. Simplemente SONY lo que ha hecho es incorporar esta característica en su consola para «afinar» todavía más el rendimiento y liberar de carga a la CPU.
El coprocesador IO
El complejo IO (E/S, entrada y salida) en el SoC de la PS5 también incluye un procesador de doble núcleo con su propio conjunto de SRAM. SONY no ha dicho casi nada sobre lo interno de esto, pero lo ha descrito como un núcleo dedicado al SSD de la consola que permitirá a los juegos «omitir el proceso tradicional de I/O», mientras que el otro núcleo se describe simplemente como una ayuda al mapeo de la memoria. Para más detalles sobre esto debemos recurrir a una patente que SONY presentó hace ya muchos años y que esperamos que refleje lo que realmente vamos a encontrar en la PS5.
Este coprocesador descrito en la patente de SONY descarga porciones de lo que normalmente serían los controladores de almacenamiento del sistema operativo. Una de sus tareas más importantes es traducir entre varios espacios de direcciones: cuando un juego solicita un cierto rango de bytes de uno de sus archivos, busca los datos sin comprimir. El coprocesador IO determina qué fragmentos de datos comprimidos son necesarios y envía comandos de lectura NVMe al SSD. Una vez que éste ha devuelto los datos, el coprocesador IO configura la unidad de descompresión para procesar estos datos y el motor DMA para entregarlos a las ubicaciones solicitadas en la memoria por el juego, todo esto sin que tenga que intervenir la CPU.
Dado que estos dos núcleos del coprocesador son mucho menos potentes que los núcleos Zen 2 del SSoC, no pueden estar a cargo de toda la interacción con el SSD. El coprocesador manejará loa casos más comunes de lectura de datos, y el sistema recurre a los núcleos Zen 2 para el resto. La SRAM del coprocesador no se usa para proteger las grandes cantidades de datos del juego que fluyen a través del complejo IO, sino que esta memoria contiene las diversas tablas de búsqueda (como un índice) utilizadas por el coprocesador. A este respecto, es similar a una controladora de SSD con un conjunto de RAM para sus tablas de mapeo, pero el trabajo del coprocesador IO es completamente diferente al que hace el controlador de un SSD, claro. No obstante, será muy útil con SSDs de terceros si al final la consola los admite.
La coherencia de caché
La última característica de hardware de las consolas que está relacionada con el almacenamiento es el conjunto de motores de coherencia de caché que ha revelado SONY. La CPU y la GPU en el SoC de la consola comparten los mismos 16 GB de RAM GDDR6, lo que elimina el paso de copiar los activos de la RAM principal a la VRAM después de cargarlos desde el SSD y descomprimirlos.
Pero para obtener un mayor beneficio del conjunto compartido de memoria, el hardware debe garantizar cierta coherencia de la memoria caché y ya no solo entre los varios núcleos de la CPU, sino también con las diversas memorias caché de la GPU. Todo eso es normal para una APU, pero lo novedoso con la PS5 y Xbox Series X es que el complejo IO también participa. Cuando los nuevos activos gráficos se cargan en memoria a través del complejo IO del sistema y sobreescriben los activos más antiguos, envía señales de invalidación a la caché al mismo tiempo para descartar solo los datos obsoletos y no los que todavía son válidos (en lugar de vaciar completamente la caché cada vez).
¿Es igual el SSD de la PS5 que el de la Xbox Series X?
Hay muchísima información sobre el almacenamiento personalizado de la PS5 (como os hemos contado en este artículo, aunque también sigue habiendo muchas lagunas), así que es natural preguntarse si los usuarios que compren una Xbox Series X tendrán las mismas «ventajas» o si se limitará solo al hardware de descompresión. Microsoft ha agrupado todas las tecnologías relacionadas con el almacenamiento en lo que han denominado «Xbox Velocity Architecture».
Microsoft lo decine como que tiene cuatro componentes: el SSD en sí mismo, el motor de compresión, una nueva API de software para acceder al almacenamiento y una característica de hardware llamada Sampler Feedback Streaming, de la que ya os hablamos anteriormente. Este último está bastante poco relacionado con el almacenamiento, ya que es una función de la GPU que hace que las texturas parcialmente residentes sean más útiles al permitir que los programas de sombreado mantengan un registro de qué partes de una textura se están utilizando realmente. Esta información se puede utilizar para decidir qué datos desalojar de la memoria RAM y qué cargar a continuación, como una versión de mayor resolución de las regiones de textura que son realmente visibles en cada momento.
Dado que Microsoft no menciona nada como las otras características complejas de la PS5, es razonable suponer que la Xbox Series X carece de ellas y su IO es administrada en gran medida por la CPU. No obstante, no sería sorprendente descubrir más adelante que la consola sí que cuenta con un motor DMA comparable, porque esa característica ya la hemos visto históricamente en anteriores versiones de la consola.