¿Se puede colocar memoria entre CPU y RAM para mejorar el rendimiento?

El concepto de Cache DRAM consiste en añadir un nivel de caché adicional entre el procesador y la memoria RAM con tal de aumentar el rendimiento del primero. Pero, ¿qué cambios supone en la arquitectura de un procesador y como funciona este concepto? Os lo explicamos y de paso que procesadores utilizarán esta arquitectura.

Hace unos días apareció una patente de Apple en la que se mencionaba el uso de Cache DRAM en uno de sus futuros procesadores, un concepto que aunque pueda parecer exótico no lo es, por lo que vamos a desmitificarlo.

Muchas veces en los discos duros se habla de concepto Cache DRAM cuando se utiliza memoria DRAM como búfer de datos, el concepto del que hablamos aquí pese a tener el mismo nombre no es exacta, ente el mismo y se centra en el uso de un hipotético nivel de memoria adicional que se sitúa entre la cache de último nivel dentro de la CPU y la memoria RAM.

La Cache DRAM es por lo tanto cualquier uso de memoria DRAM entre un procesador y su memoria para acelerar el acceso a los datos de dicha memoria.

Memoria DRAM como caché, una contradicción

Todas las memorias RAM actuales que se utilizan fuera de un procesador son del tipo DRAM o Dynamic RAM, mientras que las memorias que se utilizan dentro de los procesadores son Static RAM o SRAM. Ambas funcionan prácticamente de la misma manera cuanto a la forma de acceder a los datos, pero en lo que no son iguales es en la forma en la que almacenan un bit de memoria.

La memoria DRAM es mucho más barata, pero por su naturaleza requiere refresco constante, además que su velocidad de acceso es más lenta que la SRAM, por lo que no se utiliza por lo general dentro de los procesadores. Por otro lado escala de peor manera que la DRAM por lo que pese a que IBM la ha estado utilizando memoria DRAM como caché de último nivel en sus CPU para computación de alto rendimiento, POWER, en su siguiente generación van a utilizar memoria SRAM.

Por lo que el concepto de caché, lo cual tiene relación con una memoria del tipo SRAM, junto al concepto DRAM en principio no casan y aunque tenemos el caso de las CPU de IBM no vamos a hablar de utilizar memoria DRAM como caché dentro del procesador.

Cache DRAM y memoria HBM como ejemplo

Apple Cache DRAM

Cache DRAM es el concepto de añadir un nivel adicionan en la jerarquía de memoria entre la caché de último nivel del procesador y la memoria principal del sistema, pero construido a través de una memoria DRAM con una mayor velocidad de acceso y menos nivel de latencia que la DRAM utilizada como memoria principal.

Una forma de conseguir esto es utilizando memoria del tipo HBM como caché DRAM, la cual es un tipo de memoria DRAM en la que los diferentes de chips de memoria se apilan y se conectan en vertical utilizando un tipo de cableado llamado TSV o vías a través del silicio por el hecho que atraviesan los chips. Siendo este tipo de conexión utilizado también para la construcción de memoria 3D-NAND.

Cache DRAM

Debido a que la conexión es en vertical, es necesario un interposer, el cual es una pieza de electrónica en forma de una placa que se encarga de comunicar el procesador y la memoria HBM. Tanto el procesador, sea CPU o GPU, están montados sobre dicho interposer, lo que debido a la corta distancia le da la memoria HBM la capacidad de funcionar como un tipo de memoria DRAM con menor latencia que las clásicas memorias DDR y GDDR.

Se ha de aclarar, que si la DRAM estuviese más cercana al procesador, como una configuración 3DIC la coloca justo encima, entonces el nivel de latencia comparado con la memoria HBM sería más bajo y por tanto la velocidad de acceso mayor, por el hecho que los electrones han de atravesar una distancia menor.

Realmente hemos utilizado la memoria HBM para que os podáis hacer una idea, pero cualquier tipo de memoria en una configuración 2.5DIC nos vale como ejemplo.

Pero un interposer estándar no es suficiente

El siguiente problema es que una caché no funciona de la misma manera que una memoria RAM, ya que lo que hace el sistema de búsqueda de datos del procesador no es copiar las líneas de instrucción desde la RAM una por una, sino que el sistema de caché lo que hace es copiar el fragmento de la memoria donde se encuentra la línea de código actual en el último nivel de la caché.

El último nivel almacena de la caché de un procesador es compartido por todos los núcleos, pero a medida que nos vamos acercando al primer nivel estas son más privadas. Se ha de aclarar que en el orden descendente cada nivel de caché contiene un fragmento de la caché anterior. Cuando un procesador busca un dato lo que hace es buscarlo en orden ascendente de los niveles de caché, donde cada nivel tiene más capacidad que el anterior.

Pero, para que la memoria HBM se comporte como una caché entonces necesitamos que el elemento que comunica el procesador con dicha memoria, el interposer, tenga la circuitería necesaria para que se comporte como una memoria caché. Por lo que un interposer convencional no se puede utilizar y es necesario añadir circuitería adicional en el interposer que permita a la memoria HBM comportarse como una caché de memoria adicional.

1 Comentario