diciembre 4, 2020

Samsung X-Cube es ideal para la sucesora de Switch

Hace unos días, y perdón por el tiempo ocurrido a la hora de comentarlo, presento un empaquetado del tipo 3DIC que me ha llamado poderosamente la atención. El llamado X-Cube

Los empaquetados del tipo 3DIC consisten en varios chips apilados interconectados verticalmente a través de vias de silicio (TSV) colocadas en vertical. Pero la particularidad aquí es que Samsung no habla de memoria DRAM apilada sino de memoria SRAM, las cuales son más utilizadas como caches y por el enorme tamaño que le daría la densidad al tener un piso propio para sí tiene mucho sentido pensar en una Last Level Cache de un procesador. Ya sea una CPU, una GPU o un SoC de lo que estamos hablando.

Hay que tener en cuenta que la cache de todo procesador no la memoria a la que le habla el procesador sino que este habla a la memoria a través de la cache. Cuando un procesador realiza una petición a memoria la cache mira si tiene una copia de ese dato y le permite entregarla en menos tiempo (menor latencia) dado que al encontrarse en el mismo chip el desplazamiento de los electrones ha de ser menor. Los datos dentro de una cache no son controlados por el programa y esta no es direccionable en el sentido de que no podemos apuntar a una dirección de memoria concreta para acceder a la misma. A lo que podemos apuntar es a la dirección de memoria a la que apunta la cache y entonces esta se actualizará en su contenido con tal de que no se encuentre desfasado respecto al contenido de la dirección de memoria original de la que las caches han copiado los datos para acelerar el tiempo de acceso.

Otro tema distinto es la Scratchpad Memory o Memoria de Apuntes. Esta se trata también de una memoria embebida (puede ser DRAM o SRAM) dentro del chip pero no es tratada como una cache, tiene su propio direccionamiento por lo que podemos acceder al contenido de la misma desde una dirección de memoria pero tampoco tiene las funciones de una cache y manualmente se han de controlar las entradas y salidas de datos de la misma.

Un SPM por tanto es tratado como un pozo de memoria propio que ha de ser manejado por el programa. Tenemos varios ejemplos de SPMs utilizados en el mundo de las consolas.

  • El R3000A de la primera Playstation tiene 1KB de SPM.
  • El Emotion Engine de PlayStation tiene memoria SPM tanto en el núcleo R5900 como en el VU0 y VU1.
  • La memoria embebida del GS de PlayStation 2.
  • La memoria embebida de la GX GPU en Gamecube y Wii.
  • La memoria embebida de Xbox 360
  • La Memoria local de los SPE del CBEA
  • La memoria embebida del Latte en Wii U
  • La memoria embebida de 3DS
  • La memoria ESRAM de Xbox One (S)
  • … En general todas las memorias embebidas de todas las consolas.

El motivo por el cual se ha utilizado durante años en GPUs de consola es que si tiene la densidad suficiente permite colocar el Backbuffer de la imagen en su interior, esto significa que una buena parte del impacto del ancho de banda sobre la memoria externa es reducido y se necesitan menos chips ahorrando así el coste del sistema, pero esto se rompió cuando las necesidades en cuanto a la densidad eran más altas que lo que podía ofrecer la memoria embebida. La guinda del pastel que hizo caer la memoria embebida de su trono fue Xbox One donde sus 32MB de SRAM eran poca densidad para una consola que optaba para juegos a 1080P pese a que para juegos para 720P esa misma cantidad para Wii U era suficiente.

Si 32MB eran necesarios para los 720P, entonces con una resolución de 1080P hubiesen sido necesarios unos 72MB dentro del chip y para los 4K estaríamos hablando de la friolera de 288MB, algo impensable debido a los limites de densidad. ¿Pero acaso Microsoft no podría haber utilizado DRAM? El problema de esta es que alcanza velocidades de reloj mucho más bajas que la SRAM y requiere el refresco continuo de la misma, aumentando enormemente la cantidad de consumo energético.

Ahora bien… ¿Como es que para mi es interesante el X-Cube de Samsung? Pues teniendo en cuenta dos escenarios posibles:

  • El acuerdo de Nvidia con Samsung para la gama Ampere.
  • El acuerdo de AMD con Samsung para llevar la arquitectura RDNA a la gama Exynos.

Y que hay rumores por los dos lados de cara la sucesora de Switch, en combinación con la manía histórica de Nintendo de utilizar memoria embebida y el efecto del segundo sistema pienso y con muchas posibilidades de equivocarme que el empaquetado X-Cube podría ser utilizado en la verdadera sucesora de Swith para funcionar como memoria embebida.

El efecto segundo sistema no es más que el añadido de todos los elementos que el equipo de diseño no pudo agregar en el primer sistema por limitaciones de tiempo y/o presupuesto. ¿Y cual es no de los problemas que tiene Nintendo Switch en estos momentos? El hecho que se encuentra limitada por ancho de banda pero si miramos al horizonte cercano vemos la LPDDR5, la cual es solo el doble de rápida que la LPDDR4 y si el ancho de banda en Switch ya es un problema a la resolución que va entonces imaginaos con resoluciones un poco más altas, la memoria embebida es necesaria si o si pero con lo que hemos visto en Xbox One (S) tirar de esta en un solo chip entonces hace que todo se desmorone.

En cambio colocando la SRAM en un chip aparte, apilado verticalmente y conectado via TSV nos da la densidad suficiente, el consumo energético adecuado y el ancho de banda suficiente como para poder hacer volver la memoria embebida de nuevo y ahorrarnos chips adicionales y no solo eso, hemos de tener en cuenta que el añadido de chips externos no solo aumenta el consumo energético enormemente sino que además el tamaño y el coste del SoC principal.

Otro de los elementos a futuro es la Last Level Cache a nivel de SoC, esto es una cache a la que accede el Northbridge/Data Fabric y por tanto se encuentra después de las caches de la CPU y la GPU pero antes de la RAM en cuanto a la jerarquía. Esto tiene una serie de ventajas:

  • Le da coherencia a todos los componentes del SoC de cara al acceso a la memoria.
  • Permite la comunicación entre los diferentes componentes del SoC sin tocar la memoria principal.

Pero ya hemos dicho que la SPM y la LLC funcionarían distinto. La solución comun a unificar ambas soluciones en una misma memoria es la llamada cache con cerrojo. El truco esta en poder marcar el dato que almacena una linea de cache con tal de que dicha memoria se pueda utilizar como SPM si se quiere por lo que con ello no hace falta tener dos espacios de memoria distintos, uno para la LLC y otro para el SPM y pienso que es una de las cosas que vamos a ver en la sucesora de Switch a nivel de hardware, especialmente por los motivos que he comentado más arriba.

PD: En todo caso aclarar que dicha SRAM en 3DIC no reemplazaría la LPDDRx que se utilizará, sino que es complementaría.

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

5 5 votes
Article Rating
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Hideto

Buena, entrada. Muchas gracias!

Charli

Muy interesante, aunque a la sucesora creo que todavía tardará bastante en salir, veremos que pasa.