Xbox Scorpio (IV)

En esta entrada voy a hablar de la siguiente consola de Microsoft, concretamente del hardware de manera puramente especulativa.

#1 Arquitectura General

Desde Xbox 360 la arquitectura general de las consolas de Microsoft ha sido la siguiente:

ArquitecturaGeneralXbox

A partir de la misma intentare construir un potencial sistema de siguiente generación de manera coherente, aunque repito que esto es completamente especulatorio.

#2 El Uncore

Antes de nada fijaos en el la última columna del siguiente mapa de ruta:

amd_zen_apu_roadmap_hbm

El mapa de ruta es para los SoC de AMD en PC pero los de consola derivan de estos ya que son versiones a medida de los mismos, el uncore es importante porque nos dice como están unidas las piezas y una de las particularidades observadas es el futuro añadido de memoria HBM como apoyo a la GPU del SoC por la falta de ancho de banda de la DDR4, hay que tener en cuenta que la DDR4-3200 con una interfaz de 256 bits no solo resulta en un chip de considerable tamaño sino acompañado por unos 16 chips de memoria, lo mismo que ocurre en Xbox One que tiene alrededor del chip principal unos 16 chips de memoria.

XboxOne Memoria

¿Y que haría el papel de memoria embebida? A simple vista un chip de memoria HBM2 y acabaríamos teniendo una placa base la mar de complicada pero es que la situación acaba siendo la siguiente:

  1. El número de unidades de texturas de la GPU depende del ancho de banda que el salto desde la DDR3 a la DDR4 no es muy espectacular por lo que el texturizado se debería realizar desde la memoria HBM2 pero un solo chip tiene solo unos 4GB de memoria por lo que harían falta dos chips.
  2. El Uncore de AMD desde Carrizo es completamente coherente al 100%.
  3. Se busca en una consola un equilibrio con los costes y dicha configuración de memoria resulta en un sobrecoste.

Como ya explique en algunas entradas anteriores, la memoria HBM2 utiliza varios canales distintos para sus diferentes chips dentro de la pila, esto significa que el controlador de memoria del sistema puede manejar de manera coherente los accesos a la HBM2 de todo el SoC. Es decir, sería posible eliminar la memoria DDR4 y hacer una configuración solo HBM2.

¿Existe otra configuración posible? Si, el uso de memoria GDDR5X para el sistema, pero dado que las configuraciones de memoria dependen de la GPU lo mejor es tocar esta antes de volver a la memoria ya que todo esta interrelacionado

#3 GPU

Hay dos elementos que marcan el futuro, el primero es la VR y el segundo son los 4K y aunque a cierta gente le parezca sorprendente Microsoft considera su consola un sistema 1080P y el salto de los 1080P a los 4K es de 4 veces.

4k-resolution-on-eyes

La GPU de Xbox One tiene la siguiente configuración:

  • 12 Compute Units (768 Stream Processors)
  • 853 Mhz.
  • 1.31 TFLOPS.

Un simple salto 4X nos da unos 5.24 TFLOPS en total, cercanos a los 6 TFLOPS del rumor, el problema es que la configuración de memoria también tendría que aumentar de la misma manera, pasar de los 68 GB/seg a una configuración de 272 GB/seg por lo que de entrada:

  • La DDR4 queda por completo descartada por su limitado ancho de banda.
  • Un solo chip HBM2 cuyo ancho de banda máximo son los 256GB/seg también.
  • Pero el problema vendría en el tema de las operaciones con el equivalente a la ESRAM, Xbox One soporte RGBA16F y su ESRAM puede operar a 204GB/Seg por lo que acabaría necesitando unos 816 GB/seg de ancho de banda para ciertas operaciones, sobre el tema de la ESRAM y la posible solución hablare más adelante.

La GPU lo más seguro es que sea una AMD Polaris en adelante (Vega vendria a ser una versión de Polaris para HBM2) con una configuración de 256 bits GDDR5X o con dos chips HBM2, más que eso no tendría ningún sentido porque el chip resultante acabaría siendo demasiado grande para una consola de videojuegos por lo que las opciones en cuanto a memoria para el SoC acabarían siendo:

  • 16 Chips GDDR5X en Clamshell (dos chips por canal) de 1GB cada uno, haciendo un total de 16GB de densidad, con un ancho de banda que puede ir desde los 320 GB/seg a los 448 GB/Seg.
  • Dos chips HBM2 de 8GB cada uno, haciendo un total de 16GB de densidad, con un ancho de banda desde los 256GB/Seg a los 512 GB/seg.

Dado que la densidad de los chips aumenta a mi personalmente no me extrañaría ver el año que viene configuraciones de 32GB con la GDDR5X en las tarjetas gráficas de PC por lo que la elección que me parece más lógica es la primera por el hecho que la memoria HBM2 es más cara que la GDDR5X y la impotancia aquí son los costes y tampoco sabemos si su densidad va a aumentar.

¿Y que hay del tema de la ESRAM en este escenario? Pues es sencillo, el entorno Xbox One será solo para los juegos de Xbox One mientras que el entorno UWP será para los juegos que serán las versiones 4K de los juegos de Xbox One (portadas a UWP)y para la VR. Es decir, lo más seguro es que los juegos de Xbox One puedan correr en Xbox Scorpio desde su entorno y que Microsoft mantenga en el SoC una serie de elementos para la compatibilidad hacía atrás pero no los reescalara y tampoco los juegos para Xbox Scorpio los utilizarán al funcionar en un entorno distinto, aunque sobre el tema software ya comentare más adelante.

El otro tema son las Compute Units, este tema es peliagudo porque hay diversas variables.

Filosoraptor

Un gran número de CUs disminuye el consumo del chip pero aumenta el área y el coste del mismo, un menor número se puede paliar con una mayor velocidad de reloj pero el consumo energético acaba aumentando y otros costes asociados crecen. ¿Cual es la mejor solución entonces? Lo que os voy a decir os va a sorprender mucho, pero dado que la consola parece pensada para la Realidad Virtual…

Oculus-Rift-Final-Xbox-One

… lo mejor es pensar en una solución no de una sino de dos GPUs.en el sistema:

44766_03_amd-radeon-r9-395x2-dual-gpu-fiji-vr-monster_full

amd-dx12-crossfire-4

¿Pero dentro de un mismo SoC? Ni mucho menos, la idea es reducir costes colocando una segunda GPU fuera del chip principal pero en el mismo sustrato interposer, por lo que tendríamos dos chips, el primero sería el SoC principal que incluiría todos los chips y la primera GPU, el segundo sería la segunda GPU. Hay que tener en cuenta además el tema de la memoria en DX12 y como esta es asignada en una configuración de doble GPU.

28050433645l

Tener dos GPUS significa que cada una de ellas tendría que tener una potencia aproximada de unos 3 TFLOPS, pero esto haría que el número de chips fabricados buenos del SoC principal aumentase y aunque la configuración de dos GPUs puede parecer una burrada empezad a pensar que en plena era de la VR esto va a ser completamente normal y en pocos años no os parecerá tan escandaloso. Meter un SoC con una GPU de 48 CUs es una burrada incluso en FinFet pero colocar una de 24 CUs no lo es, al final la configuración del sistema sería la siguiente:

XBoXScorpioEspeculación

El SoC principal estaría compuesto por los siguientes elementos:

  • CPU
  • GPU#1
  • ESRAM y DMEs (Xbox One)
  • Audio Video.

La GPU#2 sería solamente la GPU#2 y para evitar duplicidades habrían menos elementos que en una GPU normal como son los descodificadores de video por ejemplo. La configuración de cada una de las GPUs sería:

  • 24 Compute Units (1536 Stream Processors), 96 TMUs.
  • 16 ROPS.
  • 1 Ghz

La potencia combinada de ambas GPUs sería en este escenario de 6 TFLOPS en total.

#4 CPU

Mi apuesta es clara, un doble modulo Zen de 8 núcleos.

ZenCPU

Esto supondrá que la cantidad de memoria SRAM dentro del SoC principal será bastante alto, recordemos que en Xbox One hay unos 47MB de memoria en total:

xbox_one_soc

Los cuales se reparten de la siguiente manera:

  • 32MB eSRAM
  • 4MB Cache L2 para la CPU (2MB por módulo)
  • 512KB Cache L1 (64KB por núcleo)
  • 1MB SHAPE (Xbox One Audio processor)
  • 512KB Level 2 for the GPU.
  • 768KB LDS (GPU) – LDS stands for Local Data Share
  • 96KB Scalar Data cache (GPU)
  • 3120KB (GPU – 260KB por CU

En Xbox Scorpio en cambio:

  • 32MB eSRAM (Xbox One)
  • 4MB Cache L2 para la CPU (2MB por módulo)
  • 16MB Cache L3 para la CPU (8MB por modulo)
  • 512KB Cache L1 (64KB por núcleo)
  • 1MB SHAPE (Xbox One Audio processor)
  • 512KB L2 para la GPU.
  • 1.5 MB LDS (GPU) – LDS stands for Local Data Share
  • 192 KB Scalar Data cache (GPU)
  • 6240KB (GPU – 260KB por CU)

Por lo que la cantidad de SRAM del nuevo SoC estaría por los 70MB aproximadamente incluyendo todos los elemento del chip.

#5 Software

El entorno vendría a ser el mismo que el de Xbox One:

XboxOS

Pero con la diferencia sustancial de que en el nuevo sistema el UWP podría tomar toda la RAM si le es necesario, los modos de funcionamiento serían los siguientes:

  • Modo Xbox One (Juego): Toma solo 5GB de la RAM total del sistema, solo es activado cuando ejecutamos software de Xbox One.
  • Modo Xbox Scorpio (UWP): Tiene acceso a toda la RAM del sistema.

Es decir, el modo Xbox One es otro SO funcionando de manera virtual por lo que a no ser que se invoque un juego de Xbox One para ser ejecutado entonces el SO funcionará de la siguiente manera:

UWPOS

Creo que queda todo claro, con esto termino la entrada y esta serie.

Anuncios