Blog Personal.

Uncategorized

PS5 y XSX: Streaming y Tiempos de Carga.

En la actual generación lo que llamamos «El Sistema» se come unos 3GB de RAM… ¿Como es eso posible? Supuestamente es para dejar las aplicaciones en segundo plano, estáticas en memoria para cuando se haga el «swap» del entorno del juego al entorno del sistema no se tengan que cargar desde el Disco Duro, cosa que es cierta, pero esas aplicaciones no ocupan unos 3GB de RAM sino mucho menos espacio.

Por lo visto tanto Xbox One como PS4 son iguales a la hora de reservar memoria para el «sistema», el siguiente gráfico de Microsoft es muy revelador, pero no por la información explicita que contiene sino por la implicita.

Si os dais cuenta, la columna en azul son los recursos máximos que podíamos darle a las aplicaciones en el Shared OS… ¿Pero donde van a parar los 2GB que faltan? ¿Al Sistema Operativo? No del todo, hay una parte en ambas consolas que son unos 2GB que se reparten entre lo que es el sistema y la cache de disco. Y lo que voy a comentar afecta a ambos sistemas actualmente, ambos en cuanto a la unidad BluRay tienen las mismas especificaciones y ambos utilizan parte de la RAM como cache de disco.

Pese a que ambos HDD están conectados a un puerto SATA, el ratio máximo que pueden dar es de 100MB/s si los datos están en la parte exterior del disco, pero los desarrolladores tienen que tener en cuenta la peor velocidad que es de 50MB/s ya que no pueden preveer nunca donde se instalará el juego. Es cierto que la conferencia de Sony fue un funeral pero la explicación de Cerny en cuanto a las ventajas del SSD se puede aplicar a AMBAS consolas.

Los 30 segundos de RAM no utilizable son los datos almacenados en la cache de disco, cada vez que hay un cambio de escenario el juego tiene que hacer algun truco como por ejemplo ponernos una cinemática que no podemos saltar, una pantalla de carga, la simple apertura de una puerta. Todo para darle tiempo al sistema de E/S para copiar desde el Disco Duro a la memoria. ¿Para que? Pues para tener esos datos ya disponibles en memoria y no tener que preguntar por ellos, ya que esto ralentizaría enormemente el sistema. De tal manera que en ambas consolas hasta 1.5GB de los 8GB de almacenamiento se utilizan como cache de disco, por lo que es propiamente el sistema operativo no consume 3GB sino solamente 0.5GB pero en todo caso para lo que son los juegos solo tenemos unos 5GB.

Pero la realidad es que por cada cambio de nivel, es decir, por cada cambio de escenario solo podemos hacer el cambio de 1.5GB de datos y no de los 5GB enteros. La mayoría de desarrolladores cargan primero los datos más utilizados en una larga pantalla de carga del mundo y los datos más utilizados los dejan en memoria y en cuanto a las cargas leves van cambiando los datos a medida que el usuario se acerca a una zona a través de los trucos clásicos de distracción del jugador que he comentado antes para cambiar los datos necesarios.

¿Significa esto que con las nuevas consolas ese pozo de memoria de 1.5GB no utilizable ha desaparecido?

Sigue estando, ahora es algo más grande por lo que me han comentado varias fuentes y se queda en unos 2GB, la diferencia es que no tarda unos 30 segundos en cargar los datos sino mucho menos como es obvió, es decir, en aproximadamente 1 segundo tenemos esos 2GB llenos y eso en el peor de los casos que es Xbox Series X sin probar la compresión.

SI hacemos caso a lo que le dijo Andrew Goosen, quien es uno de los arquitectos de Xbox Series X a Digital Foundry.

«Nuestro segundo componente es un bloque de descompresión de alta velocidad que puede entregar hasta unos 6 GB/s» revela Andrew Goosen». Esto es un bloque de silicio dedicado a descargar el trabajo de descompresión de la CPU y esta empatado con el SSD de tal manera que la descompresión nunca resulta un cuello de botella. El hardware de descompresión soporta Zlib para los datos generales y un nuevo sistema de compresión llamado BCPack que esta pensado para las texturas de la GPU que tradicionalmente comprenden la mayoría de la información del juego».

Es decir, el descompresor transmite desde el SSD a memoria con un limite de 6GB/s , da igual que el ratio de descompresión pueda dar una cantidad de información mayor, ese el ancho de banda disponible disponible, es decir, con el que la unidad DMA copia los datos de salida del descompresor a la RAM. Esto es incluyendo la compresión llamada BCPack. La idea es que los datos lleguen descomprimidos a la RAM y que la CPU no tenga que hacer el trabajo pero no puede pasar de ese ratio.

La descompresión no se utiliza normalmente para enviar más datos sino para enviar una cantidad determinada de datos más rápido y que lleguen antes. La velocidad de transmisión desde el descompresor a la RAM en ambas consolas no aumentará y es lo suficientemente rápido como para marcar un diferencial. No se trata de que el juego al completo este cargado en memoria sino que se trata de que no tengamos que soportar horrendas transiciones dentro del mismo juego.

Esto lo digo porque hay gente que confunde churras con merinas, el hecho de que el compresor BCPack sea más eficiente que el Kraken de Sony no quita que el ancho de banda total que puede llegar a utilizar sean más de esos 6GB/s de datos que es la velocidad en la que el descompresor descomprime a la RAM, es decir, es la velocidad de salida… ¿En que se traduce esto? En poder llenar los 2GB que sirven como cache de disco en 0.33s de media en vez de hacerlo e 30s. PlayStation 5 utiliza un sistema similar pero es más rápido, en todo caso si crees que el diferencial entre ambas consolas en este aspecto es algo que merece discusiones de foros sinceramente… ¡Pide ayuda psiquiatrica! Porque la diferencia es realmente nimia entre ambos sistemas pero aún así vamos a tener una guerra de verdaderos…

Esta no es la única ventaja del SSD en general,la otra es como ha cambiado el Virtual Texturing, pero esto ya hablare en otra entrada para no liaros.

Esto es todo, tenéis el Discord y los comentarios de esta entrada para comentarla.

0 0 vote
Article Rating
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Snake128

[…] He hecho una entrada sobre esto precisamente hace unos minutos. Y no, no carga todo el mapeado de golpe, lo carga a medida que vamos accediendo al mismo pero lo hace tan rápido que a niveles practicos es como si fuese un nivel homogeneo sin transiciones. […]

Charli
Tokra_Kree

Sin duda es una ventaja a la hora de que los juegos ocupen menos espacio en el disco duro, el cual es escaso en ambas consolas.
Pero otra cosa es el tiempo en transferir los datos y descomprimirlos.

Dani

Si no he entendido mal, lo que van hacer es llenar la caché de disco con datos del SSD para hacer el streaming del juego. Entonces, quedaría algo como: – PS5 -> El SSD envía 1,25-1,3 GB comprimidos a 5,5 GB/s -> El descompresor envía 2 GB a la memoria a 22 GB/s -> Tiempo total: 0,32 segundos. – XsX -> El SSD envía 1 GB comprimido a 2,4 GB/s -> El descompresor envía 2 GB a la memoria a 6 GB/s -> Tiempo: 0,75 segundos. ¿Cada cuánto tiempo requiere un desarrollador disponer de 2 GB de datos nuevos? Viniendo… Read more »

[…] ver, en la misma entrada donde tu pones el comentario preguntando esta la respuesta pero veo que la tendré que […]