Antes de todo perdón por hacer esta entrada con un tiempo de retraso, quería tener la mente libre para llegar a una conclusión escrita respecto a los últimos rumores en cuanto a la siguiente generación de consolas, los cuales incluyen ciertas especificaciones técnicas.

El paseo por la naturaleza me ha permitido aclarar las ideas que yo tenía completamente desordenadas acerca de como puede ser la siguiente generación y algunas de ellas las he ido desarrollando durante los últimos tiempos en este blog e incluso hice una especulación reciente de como podría ser un chip de siguiente generación.

Pero antes de ir a por los rumores hay un elemento que me gustaría tener en cuenta y es la palabra «Custom» y como creo que van a ser los procesadores o más bien el conjunto de procesadores para la siguiente generación de consolas y personalmente creo que tienen mucho que ver con un concepto que AMD lleva ya muchos año trabajando que es el concepto de la HPC (High Performance Computing) APU y con el tiempo se ha ido transformando en lo que es el conjunto de chips para la siguiente generacíón.

Explicar la historia en los últimos 5 años es bastante pesado, pero todo empieza con el desarrollo de un chip llamado «Greenland» de una serie llamada Artic Islands que tenía que ser la GCN4/GCN1.3, una serie completamente fantasma por el hecho que aparecieron como Polaris 10 y Polaris 11 pero conservan a nivel interno sus nombres originales que son Baffin y Ellesmere, en referencia a islas del océano artico y Greenland hace referencia como e obvio a Groenlandia.

El primer prototipo de dicha HPC APU se puede ver en el siguiente diagrama:

Es un diagrama bastante viejo, la CPU forma parte de la familia Bulldozer y se habla de RAM apilada porque era cuando la HBM no tenía ni nombre. Si os dais cuenta incluso el diagrama de la GPU no corresponde a las GCN sino a una GPU con memoria al estilo HBM que tenían pensado por aquel momento, incluso hubo un prototipo reemplazando la memoria GDDR5 con una proto memoria HBM.

AMD lanzo una gama llamada Northern Islands justo antes del lanzamiento de las GCN pero que disponia de una configuración en los shaders diferente a los utilizados en gama evergreen… A la gama le llamaron Northern Islands y solo tuvo un chip al que llamaron «Cayman», dicha gama tenía que aparecer bajo el nodo de 32nm de TSMC que fue cancelado y al cancelarse el diseño de Cayman se paso a los 40nm descartando el resto de los chips de la gama. Las islas Cayman se encuentran en el Caribe que no es el Oceano Artico pero si que tenía que ser la GPU que AMD utilizará como base de cara al futuro pero pese a que Northern Islands tenía un largo mapa de ruta y era un cambio completo en toda la arquitectura de la GPU lo que tenía AMD en la recámara era un cambio repentino en la Compute Unit y es que realmente las primera GCN aka GFX6 aka Southern Islands en todos los elemento excepto en las Compute Units reclclan todos lo elemento de la Northern Islands.

Con ello a AMD le toco la lotería, el hecho de apostar por GCN le dio a AMD una ventaja enorme a la hora de concretar los contratos con Sony y Microsoft y conseguir de paso la capacidad para hacer avanzar su GPU pero AMD tenía una obsesión fija, la de que el futuro pasaba por una GPU con memoria apilada en formato 2.5D vez de la GDDRx que se estaba utilizando en aquel momento.

La actual generación de consolas es donde supuestamente la configuración 2.5D iba a aparecer, incluso hubo una entrevista al por aquel entonces CTO de Sony en que hablaba de un futuro basado en la tecnología TSV.

Esta visión deberá aprovechar la tecnología de fabricación de chips emergente: vias a través del silicio (TSV). Que apila múltiples piezas de silicio en estructuras 3D interconectadas por vías que se ejecutan a través de los propios chips. La técnica promete reducir enormemente la latencia y aumentar el rendimiento al reducir en gran medida los cables que deben atravesar las señales. Ofrece una alta integración de procesamiento tradicional y de gráficos junto con analógico.
Dado que las fábricas avanzadas de hoy operan en geometrías de proceso nanométricas de 28nm y avanzan en 20nm, queda claro cuán increíblemente delicada y compleja es esta tarea. Después de todo, ahora es bastante difícil diseñar un chip de 28nm «plano» y lograr que rinda en cantidades rentables con características tan pequeñas. Como resultado, las fundiciones de chips líderes están trabajando duro en 3D, pero ofrecen a los clientes típicos una alternativa interina / 2.5D, a menudo llamada intercalador de silicona. Esto parece integrar el silicio más estrechamente lado a lado que apilado.

Pensad que esto es de 2012 y por aquel año si que se presento un producto con dicha tecnologia, con marca PlayStation y por parte de la propia Sony.

Vita tiene una configuración TSV para comunicarse con la VRAM… El tema es que los rumores del interés de Sony por una configuración TSV eran cierto pero los analistas erraron el tiro pensando que apuntaban a PlayStation 4 cuando realmente era en referencia a PS Vita.

Sony con PlayStation 4 descarto por completo el uso de una configuración de ese tipo por ser cara y experimental pero AMD durante años ha estado investigando y desarrollando supuestamente tecnologías que utilizan tecnologia TSV y no me refiero unicamente a las AMD Fiji y Vega sino que se llegaron a plantear una configuración 3DIC, es decir, con la memoria directamente apilada.

Incluso en el paper a futuro de la Exascale Heterogeneous Processor podemos ver la configuración de GPUs en formato 3DIC, es decir, con la memoria apilada directamente encima via TSV.

¿Y que tenemos? Pues un sistema compuesto por Chiplets donde las GPUs están en una configuración 3DIC… AMD incluso llego a hacer pruebas de laboratorio para ver el rendimiento de dichas GPUs utilizando GPUs contemporaneas por aquel entonces.

Las cifras hacen referencia a las 8 GPUs en conjunto, se refiere a configuraciones de 40 y 48 CUs respectivamente y esto era lo que AMD pensaba que era el futuro, GPU y memoria en un solo chip y era lo que inicialmente iba a ser Navi.

La idea era poder conectar varias Proto-Navi con su memoria 3DIC a través de una interfaz de memoria coherente, pero se encontraron con dos problemas de base, el primero de ellos era que el ahogamiento termico impedia avanzar a la GPU a niveles de rendimiento satisfactorio, el segundo era que la interconexión entre diferentes las diferentes GPUs no funcionaba por lo que AMD decidió descartar por completo el proyecto de Navi.

¿Verdad que antes hemos dicho que Vega era originalmente Greenland? Originalmente Greenland no se penso jamás como una GPU aparte sino que tenía que formar parte de un mastodóntico MCM, inicialmente pensado para utilizarse en conjunto a una CPU de la serie Bulldozer en un SoC…

Rapidamente evoluciono a adoptar unos 16 núcleos Zeppelin.

El desarrollo de un uncore para un acceso completamente coherente de la memoria del sistema en la GPU paso a ser clave, Greenland no podía ser una vulgar Fiji sino que tenía que haber un mecanismo que le permitiese un acceso completamente coherente a la memoria del sistema pero donde al mismo tiempo la gráfica tuviese una memoria con el suficiente ancho de banda. ¿La solución? El desarrollo del HBCC que transforma la memoria de la gráfica desde la perspectiva de la GPU en una cache L3…

… y le da acceso a todas las memorias del sistema como si fueran memorias más abajo en la jerarquia, incluyendo si la hay, la NVRAM (NAND Flash).

¿Y que tiene que ver esta mierda que nos estas contando con la Next Gen Urian?

Las casas no se empiezan por el tejado, precisamente el HBCC es un controlador de memoria que no solo es ideal para una GPU, sino también como controlador de memoria de un sistema heterogeo de cara al acceso a la memoria y es que el tema de la memoria en todo esto es muy importante si tenemos en cuenta las especificaciones técnicas que se han filtrado.

El plan evolutivo de AMD era que la HBM pasara de 2.5DIC a 3DIC no solo en las GPUs sino también en los SoC, el hecho de tener dos controladores de memoria para un sistema donde se quiere la coherencia total de memoria es cuanto menos una fuente de problemas pero… ¿que hacer cuando la memoria principal no tiene el suficiente ancho de banda para la GPU? Desgraciadamente AMD tuvo que realizar un cambio de planes como he comentado antes.

En un sistema heterogeneo el último nivel de cache para conseguir la coherencia se tiene que encontrar en el uncore en común que comunica las diferentes piezas.

Es decir, AMD no lo especifica pero la Cache L3 desde la perspectiva de la GPU se tiene que encontrar en el «Tranport Layer» que no es otra cosa que el Data Fabric/Uncore…

… Que de cara a la CPU sería una cache L4… ¿Pero como es que AMD no lo comenta publicamente? Porque AMD a nivel de PC no lo ha utilizado aún…

Pero en la patente «Cerny» hay referencias a un nivel de cache en el uncore…

La Cluster Level Cache es la L3, las Local Cache son la L1 y la L2 de los núcleos Ryzen. La L4 para la CPU sería la cache para el HBCC que se encargaría de gestionar el acceso a la memoria, fijaos como en el AMD Vega la pieza entre la memoria (HBM2) y la GPU misma es el HBCC y fijaos como la cache L2 de la GPU se comunica via HBCC a través del Infinity Fabric.

En Raven Ridge la arquitectura de la GPU es Vega pero en el caso que nos ocupa no hay unidad HBCC sino que la cache L2 de la GPU se comunica via Infinity Fabric al sDMA que comunica con el controlador de memoria a través de un bus PCIe.

Pero en las consolas de siguiente generación pienso que el Infinity Fabric de la GPU comunicara directamente con el HBCC integrado en el uncore del sistema, ahora bien, el uncore del sistema se encontrará en el mismo chip de la GPU misma, no es algo raro en consolas.

¿Y que hay de la CPU? Un simple chiplet a 7nm con 8 nucleos como el del Ryzen 3000 o el de Rome comunicado a través de un bus Infinity Fabric al uncore de la GPU que será el general del sistema y que no os parezca raro porque el hecho de tener el uncore del sistema en la GPU y con ello el controlador de memoria lo hemos visto en…

  • Nintendo64
  • Xbox
  • Gamecube
  • Xbox 360
  • Xbox One
  • PS4

Es decir, todas las consolas con una configuración de memoria UMA han tenido el uncore en el mismo chip que la GPU… ¿Pero y que tiene de especial el uso del HBCC? Pues dos cosas, la primera es que es un controlador de memoria pensado para poder mover grandes anchos de banda y la segunda, queue permite utilizar memorias a niveles inferiores y esto es ideal para el Virtual Texturing.

physical address. Texture Unit. virtual address. data. Memory Controller. physical address. data. Physical Memory. Page Table.

La arquitectura GCN ya soporta desde la versión 1.0 un sistema de memoria virtual para el acceso a la memoria pero no fue hasta Vega que vimos un controlador de memoria que le permite a la GPU acceder a memoria más alla de su memoria local. Por lo que las piezas para conseguir esto ya las tenemos y estoy al 100% seguro que vamos a ver esto implementado en la siguiente generación de base..

La idea del Virtual Texturing es que en vez de tener todas las texturas en la memoria solo tenemos las necesarias para la escena y sus mipmaps y a medida que va pasando el tiempo las podemos ir moviendo de la memoria principal del sistema a la NAND Flash sin problemas siendo la mayor ventaja de que no necesitamos tanta memoria para almacenar las texturas de un juego y permitiendo además que la memoria principal sea más estrecha en tamaño por lo que las busquedas de datos son más cortas.

… Pero Urian… ¿Vas a comentar los rumores acerca de las especificaciones o que?

A eso voy a ir ahora, me habéis escrito un comentario que dice lo siguiente:

urian y esto
https://wccftech.com/next-xbox-raytracing/
la razon de que hayan metido de nuevo como decias a navi en el diseño es porque han metido RAYTRACING¿¿¿???
y nos remiten al gdc2019, como dijo sony que tb remitia a marzo para los kit finales de ps5

Principalmente la noticia nos da unas potenciales especificaciones para uno de los dos modelos de Xbox «Scarlett» aunque de entrada no sabemos si se refiere a Lockhart o Anaconda.

  • CPU: Custom 8 cores / 16 Threads Zen 2 CPU
  • GPU: Custom NAVI @12+ teraflops
  • Memoria: 16GB GDDR6
  • Almacenamiento: 1TB NVMe SSD @ 1+GB/s
  • DirectX Raytracing + MS AI

Lo primero que me llama la atención es el almacenamiento la memoria y tiene que ver con lo que os he comentado antes. El salto de uno 8GB a uno 16GB suena pobre pero tiene sentido porque a Microsoft le permite realizar una configuración con solo 8 chips de memoria en vez de tirar de 16 chips. El problema con el rumor es que el bus es de 256 bits con ello pero sobre ese problema ya entrare más adelante.

Para empezar hemos de tener en cuenta que el IO Hub dentro del nuevo uncore de AMD donde este asigna unos 4 lanes PCIe al almacenamiento. En el caso de la Subor Z+ aprovecha esto para conectar un modulo SSD M.2.

La imagen tiene un atributo ALT vacío; su nombre de archivo es descarga-18.jpg

Esto no significa que la consola no vaya a tener un puerto SATA 3 interno para colocar un Disco Duro y ampliar las capacidades pero tampoco es imposible ver 1TB de memoria UFS de serie en una consola para 2020. Suena exagerado pero… No es imposible y le daría sentido al uso del HBCC en el uncore.

Con todo lo explicado nos podemos ir haciendo una idea esquemática de como puede ser el uncore para consola, el cual sin contar las conexiones a CPU, GPU y los aceleradores varios tendría la siguiente forma en Xbox «Scarlett»;

El siguiente punto a tener en cuenta es la memoria, esta se encuentra muy relacionada con la tasa de relleno de la GPU. Una configuracion de 16GB GDDR6 supone una configuración de 256 bits, lo cual resulta en un problema.

GbpsGhzBWBW CPUBW GPUROPSFillrateGhz GPU
121,53844833664420,66
141,754485639264490,77
1625126444864560,88
182,255767250464630,98
202,56408056064701,09

Lo de los 64 ROPS con un bus de 256 bits, lo comente en la entrada especulatoria de hace unos días y es debido a como funciona la GDDR6. Es por ello que soy más partidario de una configuración de 384 bits con unos 24 GB de densidad (2GB por chip) en un total de 12 chips, pero ent tema costes una configuración GDDR6 de 256 bits tiene sentido con 16GB porque entonces pueden ser 8 chips de memoria y se ahorran cuatro en el coste.

¿Pero como paliamos el problema del ancho de banda respecto a la velocidad de reloj? Si algo hace bueno en particular Microsoft es el equilibrio entre ancho de banda y tasa de relleno. Xbox One tiene unos 109 GB/s de ancho de banda en la ESRAM que coinciden exactamente con el ancho de banda necesario para su tasa de relleno. Xbox One X en modo «Scorpio» tiene un ancho de banda disponible para la GPU de 285 GB/s, lo cual es cercano a lo 280 GB/s que requiere la GPU para ello. No creo que en «Scarlett» tiren precisamente esa filosofia para atrás.

Pues con una solución que AMD ya ha implementado en sus GPUs desde las Volcanic Islands y que en PS4 Pro se utiliza para que el ancho de banda no sea un problema para su configuración de 64 ROPS.

El Delta Color Compression es algo que se encuentra ya en la GPU de Xbox One X, pero no es utilizado porque los 35 Gpixeles de tasa de relleno de dicha GPU no se ven afectados por el ancho de banda.

El mecanismo DCC permite compresiones de 2:1 en lo datos de la tasa de relleno, esto significa que cada ROP en vez de escribir 8 bytes en memoria escribira 4, obviamente todo los componentes que trabajen con dichos datos tendrán que tener la capacidad de descomprimir y comprimir al vuelo pero esto no resulta un cambio en el hardware.

Pero para entender porque los anchos de banda por si solos no son lo suficientemente buenos hemos de tomar la otra premisa de las supuestas especificaciones que son los 12 TFLOPS, no sabemos la cantidad de Compute Units. pero si las posibles configuraciones.

TFLOPSCUsGhzROPSFillrateBytes/ROPBW GPU
12402,3464150,0081200,00
12442,1364136,3681090,91
12481,9564125,0081000,00
12521,8064115,388923,08
12561,6764107,148857,14
12601,5664100,008800,00
12641,466493,758750,00

De esta lista voy a tomar las configuraciones cercana a los 1.5 Ghz de velocidad por dos motivos:

  • La GPU en Subor Z+ (14nm, SoC y por tanto más ahogamiento termico) alcanza lo 1.3 Ghz. El salto a los 7nm debería permitir un aumento sin problemas a lo 1.5 Ghz.
  • Vega 7nm siendo energeticamente ineficiente puede alcanzar los 1.5 Ghz de velocidad.

Esto hace que las cosas queden de la siguiente manera:

TFLOPSCUsGhzROPSFillrateBytes/ROPBW GPU
12561,6764107,148857,14
12601,5664100,008800,00
12641,466493,758750,00

Las tres configuraciones de memoria me valen, es más, soy de los que piena que Xbox Scarlett va a ser vendida bajo la premisa de poder reproducir los juegos que en Xbox One X van a 4K30 a 4K60… Por eso lo de los 12 TFLOPS y supondria duplicar la tasa de relleno también, no habría problema para ello. Ahora bien, el ancho de banda parece inalcanzable pero si tenemo en cuenta el DCC.

TFLOPSCUsGhzROPSFillrateBytes/ROPBW GPU
12561,6764107,144428,57
12601,5664100,004400,00
12641,466493,754375,00

Ahora el ancho de banda es alcanzable con la memoria GDDR6…. ¿Y que velocidad de memoria vamos a escoger? La que se le acerque más y sea la más barata.

BW GPU12 Gbps14 Gbps16 Gbps
428,57NONOSI
400,00NONOSI
375,00NOSISI

Con ello podemos obtener unas posibilidades especificaciones finales para la GPU:

  • 1.46 Ghz de velocidad
  • 12 TFLOPS FP32, 24 TFLOPS FP16, 48 TOPS Int8.
  • 93.75 Gpixeles/s de Fillrate/tasa de relleno
  • 64 Compute Units, 256 unidades de texturas. 373,76 Gtexeles/s.

Con todo esto podemos hacer avanzar nuestro diagrama…

¿Que nos queda? Pues la CPU, la cual creo que va a ser un chiplet como el del AMD Rome o el el Ryzen 3000 con unos 8 núcleos y ahora si que podemos tener el diagrama al completo.

¿Y como se vería la circuiteria del sistema en la placa? De la siguiente manera, aunque he obviado algunas interfaces externas relacionadas con el Southbridge y la salida de video pero con el diagrama completo que estáis viendo el siguiente se sobre-entiende.

Y con esto terminamos de darle una forma con sentido a la máquina de la que hablan los rumores y vemos que no es imposible construir una, tampoco es que mi visión vaya a ser 100% exacta sino que es una especulación, en todo caso esto ya ha terminado…

… pero aún nos falta comentar el resto, pero terminare rápido, no os preocupeis.

Es sobre los comentarios a los rumores en resetera a los que la noticia de wcftech hace referencia:

Veamos…

Sobre el leak en reddit.
El hardware es parcialmente cierto

Es parcialmente cierto según lo que tengo entendido porque las specs de PS5 son falsas y las de Lockhart también, en el post he comentado solo las de Anaconda que son las que a mi me parecen más viables y puede que me equivoque pero no al 100% y creo que me voy a acercar bastante.

El almacenamiento es cierto

Ya lo he comentado con una enorme parrafada, no hace falta que me repita de nuevo.

El Raytracing es cierto

Solo para el modelo Anaconda… Pero no se como lo implementara AMD en la arquitectura.

En Lockhart no lo sabemos y todo apunta a que no desde que existen indicios de que Lockhart va a ir con Navi Lite mientras que Anaconda ira con Full Navi pero en ambos casos se puede referir a la cantidad de CUs.

Si lo que dicen cierta malas lenguas es cierto, Lockhart como Anaconda son simétricas excepto en la GPU y la pequeña diferencia de precio entre ambas debido a ello. Pero no penseis en ellas como Xbox One y Xbox One X, sino que más bien una será consola 4K y la otra consola la 4K+Raytracing. En el caso de Lockhart no van a tirar hacía atrás en cuanto a las premisas que tienen actualmente con Xbox One X que es lo de…

La imagen tiene un atributo ALT vacío; su nombre de archivo es true_4k_iadea.jpg

Pero en cambio no serían simetricas en el concepto de que Anaconda sería un MCM y Lockhart un SoC con tal de reducir costes, pensad en Lockhart como un paso intermedio entre Xbox One X y Anaconda pero sin dejar de ser la base para la siguiente generación ya que todos los juegos de la siguiente generación han de funcionar en ella.

Por lo que Lockhart se va a situar entre los 6 TFLOPS de Xbox One X y los 12 TFLOPS de Anaconda. En el caso de Lockhart a la hora de solventar ciertos «problemas» gráficos no se tiraría del Raytracing pero en Anaconda si dando una mayor calidad visual a los juegos que salgan para la consola.

La idea es que los juegos no va a ir más rapidos en tasa de fotogramas entre ambas consolas, la base de los juegos va a ser el hardware de Lockhart y la potencia adicional se va a ir en Anaconda para el Hybrid Rendering utilizando el Raytracing para ciertas areas, es más, si la rumorología es cierta entonces la diferencia entra ambos SKUs sería el añadido de unidades equivalentes a los RT Cores en Anaconda y un mayor número de CUs.

Lockhart no es la caja de streaming

Eso ya lo sabíamos.

Sobre la caja de streaming no he comentado nada, pero ya hare una entrada sobre lo que se sabe de ella.

El nombre en clave del SoC de Xbox es Anubis, comprobad el planning de AMD.

¿Quereis una prueba? Aquí la tenéis.

La IA de Microsoft no es parte del hardware, en otras palabras, no he oido nada de una TPU o un ASIC.

No os voy a marear mucho con esto, os pido que leais una de mis recientes entradas para que veais realmente que es lo que creo que vamos a ver para que os hagáis una idea de lo que pienso sobre este tema a nivel de hardware.

Para que la gente lo entienda, vais a ver muchos juego que internamente no se renderizaran a 4K sino a menos resolución pero se verán mejor que en los de Xbox One X por el hecho que al tener que renderizar menos pixeles en la imagen base se podran aplicar más operaciones por pixel y por tanto mejorar la calidad de imagen al contener estos mucha más información. Obviamente luego a través de algoritmos de Machine/Deep Learning se reconstruira y limpiara la imagen para reproducirla limpia a 4K en la pantalla.

Obviamente esos juego se tendrán que adaptar para usas las nuevas caracteristicas del hardware.

Y con esto termino, tenéis los comentarios de la entrada y el Discord para comentarla.