Blog Personal.

Uncategorized

Xbox Series X (I): RAM y Almacenamiento

Dado que la información de la Xbox Series X que ha aparecido es masiva he decidido por hoy hablar solo de un tema de las especificaciones que es la memoria RAM.

¿El motivo? Bueno, si miramos las especificaciones veremos que aparecen unos dos anchos de banda distintos:

  • 10GB de memoria a 560 GB/s
  • 6GB de memoria a 336 GB/s

Pero lo que tenemos son 10 chips GDDR6 en la placa base de la consola.

¿Que es lo que ocurre? Pues que Microsoft ha combinado memorias de 2GB y 1GB, lo cual a simple vista resulta extraño porque lo primero en lo que piensas es que preferible tener una configuración de 20GB… ¿A que viene una configuración de 16GB? A nivel físico, Microsoft podría haber metido perfectamente unos 20GB de memoria pero las densidades dispares solo se me ocurren si la unidad MMU de la arquitectura de Xbox Series X no puede tener más de 16GB y no reconociese más allá de esa cifra para asignarla a la RAM, es decir, a partir de cierta direccion de memoria la MMU en vez de enviar el dato a la RAM lo haría enviando el dato a la memoria SSD dentro de la jerarquia de memoria.

El siguiente punto es el ancho de banda, en lo que si que son regulares es en el ancho de banda, cada chip es de 14Gbps y si hacemos un cálculo rápido:

14 Gbps*320 bits= 560 GB/s.

¿De donde salen entonces los 336 GB/s? Bueno, uno de los problemas de los SoC es la contención que se produce cuando varios procesadores quieren acceder al mismo espacio en el direccionamiento de memoria.

La GPU a través de su bus directo con la RAM (Acceso no-coherente) puede alcanzar los 560 GB/s pero cuando acceden también los clientes del Data Fabric entonces el ancho de banda se queda en los 336 GB/s. ¿Significa esto que los clientes del Data Fabric se toman para si unos 224 GB/s? No, porque no los necesitan, las CPUs de la gama Zen no necesitan más ancho de banda que el que les da el UMC que toma una cifra que es el memclk*32 bytes. Con la memoria GDDR6 el memclk es 1/8 de los Gbps por lo que hablamos de unos 56GB/s

¿Y que son unos 56 GB/s? Pues 1/4 de 224GB/s que es la cifra de la contencion que se produce, algo que sinceramente no me esperaba, creía que AMD había resuelto el problema de la contención y es posible que PlayStation 5 tenga el mismo problema.

¿Y cuales son los clientes del Data Fabric? Pues son los siguientes:

  • La CPU
  • El IO Hub y por tanto todos los periféricos que accedan al Data Fabric via IOMMU.
  • Procesadores adicionales conectados al Data Fabric con petición de coherencia.

Es decir, todos son clientes excepto la GPU y aquí entramos en algo interesante, en Xbox One y Xbox One X cuando la GPU hace de co-procesador de la CPU y necesita acceder a su espacio de memoria tiene un ancho de banda cercano a 30GB/s. Ahora esto ha cambiado, la GPU puede operar de manera coherente accediendo desde su propio bus privado a las direcciones de memoria del espacio del Data Fabric y esto le da unos 336 GB/s en dichas tareas, es menos que los 560 GB/s que alcanza en el espacio de 10GB, pero es mucho mejor que los 30 GB/s de media de la generación pasada.

Es decir, la GPU ve dos espacios de memoria, el primero es el espacio coherente con el Data Fabric donde accede a 336 GB/S y el Data Fabric a 56GB/s.

El segundo es un espacio de 10GB, el cual es exclusivo para la GPU, a esa memoria no puede acceder ningún otro procesador y tiene una tasa de 560 GB/s. Esta memoria no es coherente con la de la CPU y es privada del espacio de la GPU, que incluye la GPU misma, el codificador/decodificador de vídeo y el controlador de pantalla, más que nada porque estos necesitan acceder al espacio de memoria de la GPU para husmear el búfer de imagen

Estos 10GB de memoria que no son coherentes y están asignados a la GPU y algunos de sus co-procesadores no pueden ser vistos por los clientes del Data Fabric. Es decir, cuando los clientes del Data Fabric (incluyendo la CPU) acceden a esos 10GB de RAM de manera explicita entonces la MMU del sistema les dice:

En cambio la GPU tiene acceso a los 16GB de memoria pero dependiendo a que dirección de memoria acceda tendrá más o menso ancho de banda. Si accede a los 10GB que tiene en exclusiva lo hará con todo el ancho de banda de la GDDR6, si accede a los 6GB que comparte con la CPU lo hará a 336 GB/s.

En cuanto a la CPU tenemos unos 6GB de memoria disponibles, estos se dividen en:

  • 2.5GB para el sistema operativo, es decir, es la parte de la memoria a la que los juegos/aplicaciones no pueden acceder.
  • 3.5GB para los juegos/aplicaciones.

Ahora bien, el tema de la RAM esta relacionado con el del almacenamiento masivo, no tenía pensado tratarlo pero es importante.

Almacenamiento Masivo

Una de las cosas que predije es que veríamos un modelo de negocio razor & blades donde la expansión del almacenamiento masivo serviría para financiar el precio frontal de las consolas, lo que llevaría a la aparición de unidades de almacenamiento propietarias.

Creedme que el precio por unidad de almacenamiento de estas tarjetas no va a ser barato en absoluto y con el tiempo os va a costar mucho más caro que unidades estándar con el mismo almacenamiento. ¿De que me suena esto? Ah si, las Memory Cards de Vita os saludan, sinceramente no me esperaba que Microsoft utilizara memorias propietarias, esto me lo esperaba de Sony mas bien por su trayectoria, aunque no sabemos si Sony…

La tarjeta parece ser una tarjeta del tipo CFExpress dado que la entrada de expansión de la ranura parece ser de ese tipo.

En el SDK la consola estaba conectada a un PC con un cable que enviaba los datos a este puerto, me esperaba sinceramente que el sistema incluyese una memoria Nand Flash interna, pero mirando la placa no esta, lo que tenemos es que han vuelto las Memory Cards y esta se conecta a través del puerto de expansión y de ahi se comunica a través de una interfaz PCI Express con el IO Hub del SoC.

¿El problema de este tipo de tarjetas? Carecen de memoria DRAM para hacer de cache, esto significa que tienen que utilizar parte de la RAM del sistema para ello. Es decir, parte de esos 6GB. ¿Pero de que espacio? ¿Del espacio del sistema o del espacio de las aplicaciones? Pues inicialmente del sistema, donde son copiados a un ancho de banda de 2.4GB/s, ahí se realiza la comprobación de los datos y la posterior descompresión en cualquiera de los espacios de los 13.5GB restantes a un ratio de 4.8 GB/s.

Es decir, parte de los 2.5 GB de almacenamiento del sistema se utilizan como cache para el SSD, esto es un cambio respecto a Xbox One donde no había esta necesidad y el direccionamiento de memoria tomaba unos 3GB en total para el sistema, esto es la demostración de que esa cantidad ingente de memoria no se utilizaba para nada y han decidido re-posicionarla por completo, en todo el direccionamiento de memoria ha de ser compatible hacia atrás para no crear discrepancias.

Por otro lado, Microsoft ha confirmado que podemos conectar un Disco Duro via USB 3.2. Obviamente esto no da el ancho de banda suficiente, pero sirve para instalar los titulos de Xbox One y Xbox One X, pero a cambio no se tiene la ventaja de la velocidad de la SSD.

Modo Xbox One

Para emular el ancho de banda de la ESRAM, los juego de Xbox One pueden utilizar el bus de memoria asignado al espacio de 10GB, el cual es el espacio no-coherente y dejar el pozo de memoria coherente para emular la DDR3. En ambos caso el ancho de banda de la consola es más que suficiente y no resulta en un problema.

Esto es posible hacerlo porque la ESRAM de la Xbox One original no forma parte del espacio de memoria del bus coherente sino del privado de la GPU.

Y si, lo de los 10GB del direccionamiento exclusivos de la GPU parten del mismo concepto.

Modo Xbox One X

Aquí es mas peliagudo, porque en Xbox One X tenemos un solo pozo compartido al 100% y esto provoca contencion, Por lo que en el modo Xbox One X todos los accesos se hacen a 336 GB/s y esto es poco más que los 326 GB/s de la Xbox One X y esto afecta negativamente al rendimiento de la GPU debido al menor ancho de banda disponible, por lo que será recomendable jugar a los juegos en modo Xbox Series X si se tiene una.

En cuanto a la CPU y la GPU ya las tratare en las próximas entradas de esta serie.

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

0 0 vote
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nitupensis

Urian cuando dices… «En el SDK la consola estaba conectada a un PC con un cable que enviaba los datos a este puerto, me esperaba sinceramente que el sistema INCLUYESE UNA MEMORIA NAND FLASH INTERNA, pero mirando la placa no esta, lo que tenemos es que han vuelto las Memory Cards y esta se conecta a través del puerto de expansión y de ahi se comunica a través de una interfaz PCI Express con el IO Hub del SoC.» … parece que digas que no tiene ssd interno y la consola si tiene uno de 1tb en formato m.2 2230… Read more »

Set

El Ancho de banda no esta relacionado a temas de Bus y rops urian??.

Se me viene a la mente el caso tan polemico de la GTx 970 que tenia 4GBVram, pero luego se descubrio que al pasar de 3.5GB de Vram el ancho de banda disminuía drasticamente. Esto me recuerda a esto de la xbox que al pasar de 10gb el ancho disminuye a 336 gb/s.

o es diferente?

Yeray

«sinceramente no me esperaba que Microsoft utilizara memorias propietarias»

Bueno, ya tuvieron sus discos duros propietarios en la 360, no es algo que no hayan hecho.

Nitupensis

por que se me quedan siempre los mensajes con el Awaiting moderation, si pongo alguna imagen?

Schneider

Madre mía, hoy Microsoft se la ha sacado y la puesto en la mesa para fardar de miembro.
Sin duda veo muchas tecnologías interesantes, que me encantaría que comentaras Urian:
– Hardware Decompression.
– DirectStorage.
– Dynamic Latency Input (DLI).
– Project Acoustics por hardware dedicado.
– Spatial Audio (confirmado Dolby Atmos y DTS:X).
Me parece increíble que incluso tengamos ya la freqüencias de core y gpu.
¿Seguro que no se guarda nada para cuando se presente PS5?

Changuin

Gracias urian por aclarar el tema de la ram, a todos los lectores de disruptiv ludens recordemos la máxima : software sella ssystems,. Espero los juegos de microsoft

Steven

Hola si guarda parte del bus para ir copiando del disco ala ram constantemente y para el cpu arm que dicen que tiene