Blog Personal.

Conceptos Básicos, Microsoft, Xbox Series X, XSX

Comentando Xbox Series X en el Hot Chips (I)

La presentación en el Hot Chips de este año del Scarlet Engine aka el SoC de Xbox Series X nos ha confirmado una serie de datos de los que sospechábamos y nos ha dado información de nuevos, os aviso que no se cuanto va a durar la entrada mientras escribo esto ya que hay muchos detalles que comentar.

Nos encontramos con la misma organización general de todos los SoC basados en las arquitecturas Zen con el SDF o Scalable Data Fabric haciendo de Northbridge o uncore del sistema. El diagrama no esta tan detallado como los de Xbox One y Xbox One X en su día donde se podía ver detallados todos los caminos de datos hacía el controlador de memoria ya que Microsoft ha obviado el UMC (Universal Media Controller) que esta en todos los SoC de la familia de los Zen y que accede a la RAM a un ancho de banda de 32 bytes*memclk. Me sorprende que Microsoft no lo haya explicado en esta presentación. ¿El motivo?

El diagrama esta demasiado simplificado y os explicare el motivo. La Cache L2 de la GPU tiene dos caminos de datos posible:

  • Una conexión directa con uno o ambos canales de la GDDR6 dependiendo de la dirección de memoria física desde donde o hacía donde queramos acceder. Esta conexión no pasa por el Scalable Data Fabric.
  • Una conexión hacía el SDF (Northbridge) para acceder al espacio de memoria del resto sistema a través del UMC, en este caso utiliza un solo canal.

En realidad un diagrama más detallado en cuanto al acceso a la RAM sería algo como esto:

La GDDR6 tiene unos 2 canales y según cual sea el espacio de memoria al que accede el sistema un canal lo utiliza el UMC y otro canal la GPU (56+280=336) o ambos canales los utiliza la GPU en exclusiva (280+280=560). ¿De donde salen los 56GB/s? Pues del hecho que el UMC se comunica siempre a la velocidad de reloj del memclk de la RAM a la que este conectado, en la GDDR6 el memclk es 1/8 de los Gbps*32 bytes/ciclo, algo que he comentado muchas veces y no volvere a repetir.

El SDF esta también muy simplificado y es sorprendente que hayan puesto lo de Media Hub y System Hub cuando estos elementos forman parte del propio SDF, basicamente AMD utiliza dos tipos de conectores con los aceleradores, estos son:

  • Conectores de tipo Coherente: Acceden al espacio de memoria de la CPU.
  • Conectores de tipo No-Coherente: Acceden a su propio espacio de memoria o a otro diferente del de la CPU.

Los aceleradores HSP, MSP y los Audio Engines acceden al espacio de memoria de la CPU, curiosamente los Audio Engine al igual que ocurría en Xbox One acceden al espacio de memoria de la CPU. Tiene sentido para mantener la compatibilidad hacía atrás. En cambio el Display Controller y los aceleradores de vídeo acceden al espacio de memoria de la GPU, esto es normal porque ambos necesitan acceder al búfer de imagen de la GPU que se encuentra en el espacio de memoria de la GPU.

Ah, nos olvidamos algo de la diapositiva que es la Cache L3 de la CPU, solo 4MB de RAM por CCX (grupo de 4 núcleos) y no nos debería sorprender ya que es la norma general para todos los SoC basados en Zen 2.

En cuanto al I/O Hub tiene unas 8 lineas PCI Express, esto es un cambio respecto al PC donde hay unas 24, pero en PC se da la posibilidad de conectar una GPU externa y aquí esos pines de más ocupan espacio en la periferia del chip. Para saber como se utilizan esas 8 líneas lo mejor es visitar otra de las diapositivas:

El SSD incluido de serie utiliza 2 de las líneas, el puerto de expansión utiliza las otras 2 lineas y nos quedan 4… ¿Para que son? Pues porque Microsoft realmente sigue utilizando un Southbridge aparte.

Personalmente me ha sorprendido esto ya que el I/O Hub utilizado en la arquitectura Zen tiene suficientes interfaces para E/S. Pero tiene cierto sentido y he de decir que esto me pasa por no fijarme en los detalles.

El motivo de tirar de Southbridge tiene que ver con el hecho de que el espacio de en el SoC es sumamente estrecho, esto ha hecho que Microsoft coloque varias interfaces de E/S en un controlador externo como es la interfaz SATA para el BluRay, la controladora de puertos USB… Todo para ahorrar espacio y no tener un SoC más grande de lo normal ya que las interfaces de E/S se colocan en la periferia del chip aumentando con ello su área.

Y es que Microsoft ha avisado que el SoC les es más caro de producir que el de Xbox One X.

El SoC es más caro pero no sabemos cuanto ya que eso es información privada de Microsoft, pero en realidad no sabemos si esto significa que el SoC les cuesta $1 como si les cuesta $50 más. No voy a entrar en cuanto al precio, solo recordare los númeritos de astroturfing y viral marketing diciendo que la consola estaría a $400.

Y no olvidemos a Pachter al lado de Aaron Greenberg diciendo eso y siendo repetido por los medios. No se cuanta gente habrá asumido lo de los $400 pero Microsoft ya nos esta diciendo indirectamente que no.

Bueno, pasemos a la siguiente diapositiva.

La primera novedad que tenemos es que Xbox Series X tiene un nuevo DSP de Audio y muchos diréis:

Pe… pero Urian, tu dijiste que no lo tenía.

El problema es que si hubiese mantenido los de Xbox One también podríamos llamarlo hardware dedicado al audio. Microsoft hasta ahora fue lo suficientemente vaga para no aclarar nada de nada sobre dicho hardware simplemente decir que la consola tenia un hardware dedicado, definición que se hubiese sido 100% correcta si no hubiesen mejorado el sistema de audio. En todo caso no creo que el sistema de audio de Xbox One este completo, en todo caso no importa desde el momento en que esos DSP eran exclusivos de uso del Kinect con el que Microsoft ha roto la compatibilidad hacía atrás por completo en forma de hijo no deseado.

El siguiente punto son el HSP y el MSP, ambos mecanismos tienen relación con la captación de datos de y hacía el SSD. El MSP se comunica con la controladora de la memoria Flash a través del I/O Hub ya que esta última esta conectada a las lineas PCIe de esta. El MSP es el encargado de coger las peticiones a la SSD tanto de la GPU como de la CPU y hacer peticiones al controlador de memoria para luego enviarlas directamente al espacio de la RAM correspondiente. Cuando el dato es captado por el MSP entonces en teoría es copiado a un espacio exclusivo de la RAM con los datos completamente comprimidos. El siguiente paso es el HSP que comprueba que los datos tienen los permisos para ejecutarse en el sistema y entonces los copia descomprimiendolos en el espacio del usuario de la RAM que le corresponda.

Aquí hay un tema un cuanto peliagudo y que puede tomar bastante polémica que es el siguiente:

La memoria SRAM dentro del SoC de PS5 es utilizada por el subsistema que accede al SSD para no tener que copiar los datos a la RAM, realizar la comprobación y luego copiarlos a otra parte de la RAM, ese proceso se hace en una memoria SRAM interna con tal de no tener que impactar la RAM principal, esto reduce el consumo energético de este tipo de operaciones y la latencia y dudo mucho que Microsoft no haya llegado a una solución simular, por no decir idéntica.

En cuanto al ratio de descompresión pienso que el cuello de botella de Xbox Series X esta en la interfaz con el SSD, creo que sus decompresores de datos pueden decomprimir un ratio de datos muy a la par del de PS5 pero debido a que el ancho e banda utilizado por los SSD es menor pues el resultado es menor. El problema es que el SSD principal se comunica a 2.4GB/s en en caso de Xbox Series X y en el de PS5 de 5.5 GB/s. Esto es producto de tener un espacio limitado en la periferia del chip. Sony ha sacrificado seguramente un controlador GDDR6 de 64 bits (2 chips adicionales) a cambio de tener una interfaz PCIe más ancha para el SSD mientras que Microsoft habría optado por tener un ancho de banda mayor en la RAM del sistema.

Bueno, esto es todo por ahora, voy a dejar lo de la GPU para la segunda parte, asi no sobresaturo la entrada.

Esto es todo, tenéis los comentarios de esta misma entrada para comentar y no olvideis que tenemos Discord.

5 8 votes
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
elTitoMalo

En Infinity Fabric 2 la anchura del bus aumenta de 32bytes a 64bytes, así que el ancho de banda debería ser 112GB/s y no 56GB/s: https://www.anandtech.com/show/14525/amd-zen-2-microarchitecture-analysis-ryzen-3000-and-epyc-rome/11 Por otro lado, Microsoft dijo que la GPU accedía a los 10GB óptimos para GPU a 560GB/s y a los 6GB «estándar» a 336GB/s, mientras que el resto del sistema (CPU, audio e IO) «ve» toda la memoria a 336GB/s: [«Memory performance is asymmetrical – it’s not something we could have done with the PC,» explains Andrew Goossen «10 gigabytes of physical memory [runs at] 560GB/s. We call this GPU optimal memory. Six gigabytes… Read more »

Last edited 1 month ago by elTitoMalo
elTitoMalo

Llevas toda la razón, me ha costado encontrar el esquema correcto pero al final lo he hayado:comment image

Last edited 1 month ago by elTitoMalo
elTitoMalo

Por cierto, la XSX incluye 76MB de SRAM en el SoC, supongo que cumplirá la misma función que en PS5, no? Lo mencionaron en el artículo de DF que mostraba las especificaciones de la videoconsola.

Last edited 1 month ago by elTitoMalo