Actualizado a: 16 de abril de 2024
Ya realizamos varios repasos a algunas tecnologías novedosas e interesantes en el ámbito de la memoria, como puede ser la memoria transaccional, la MR-DIMM, la FRAM, la HBM, la 3DXP, o la ReRAM, entre otras. Ahora le toca el turno a la eDRAM, y te explicaremos todo lo que debes saber sobre ella…
Introducción al problema
El gap en el rendimiento entre la memoria RAM y la CPU, algo que viene de lejos por la evolución más rápida de la CPU y la evolución más lenta de la memoria RAM, ha producido un importante cuello de botella de la memoria, puede causar una serie de problemas en el rendimiento general. Ten en cuenta que los procesadores han avanzado mucho en cuantro a su microarquitectura y nodos de fabricación, mientras que los chips de memoria DRAM tiene menos margen, y los nodos que se usan para su fabricación suelen ser bastante más atrasados que los de un procesador.
Esta diferencia puede generar algunos problemas como:
- Más ciclos de acceso: las aplicaciones y los programas pueden tardar más tiempo en cargar debido a la limitación en la velocidad de acceso a los datos almacenados en la memoria RAM. Ten en cuenta que cuando la CPU necesita ejecutar un programa, tiene que acceder a las instrucciones y datos que componen dicho proceso, y si tarda más en acceder a la RAM, tendrá una importante penalización de ciclos de reloj «desperdiciados». No obstante, se ha conseguido paliar esto mediante algunas tecnologías de precarga, mediante el uso de caché, la ejecución fuera de orden, etc.
- Mayor consumo de energía: por otro lado, tenemos que los módulos de memoria RAM, al estar basados aún en celdas con condensadores que necesiten una frecuencia de refresco para que los datos no se borren y esta constantemente alimentados para no perder los datos, supone también un importante consumo de energía, más aún si tenemos en cuenta de que estos chips no están fabricados en nodos tan avanzados como la CPU. Por ejemplo, SK Hynix ha introducido recientemente el nodo de 10nm para sus memorias DDR5, mientras que las CPUs avanzadas van ya por 5nm, 3nm, etc.
- Mayor latencia: se refiere al tiempo que se tarda en acceder a los datos. Cuando el sistema experimenta un desajuste en el rendimiento entre la CPU y la memoria RAM, la latencia puede aumentar, lo que significa que los datos tardan más en estar disponibles para la CPU. Como sabes, conforme avanza la frecuencia de reloj de la memoria RAM y con las nuevas generaciones, como la DDR4 o la DDR5, esta memoria CL ha ido en aumento, a pesar de que se piensa que debería ser lo contrario. No obstante, hay que decir que compensa esa CL mayor cuando se pasa de una DDR4 a una DDR5, ya que el ancho de banda y rendimiento aportado por la nueva generación hace que merezca la pena.
¿La memoria caché al rescate?
La memoria caché llegó para mejorar este gap de rendimiento entre la memoria principal y la CPU, como he descrito en el apartado anterior. Esta memoria actúa como un buffer, una memoria intermedia para mejorar el rendimiento. Es decir, básicamente se trata de interponer una memoria SRAM, que es más rápida que la DRAM, entre la DRAM y la CPU. De esta forma, si los datos e instrucciones se encuentran en esta SRAM se pueden acceder con menos ciclos de penalización.
En un inicio se empleó módulos de memoria SRAM similares a los DIMM que ahora tenemos para la memoria principal, y eran opcionales si se quería conseguir mayor rendimiento, como lo era también el co-procesador matemático o FPU, que se encontraba en un chip aparte. Con el paso del tiempo, la memoria caché pasó a estar en el mismo empaquetado en el Pentium Pro, etc., y finalmente se incorporó on-chip, es decir, dentro del propio chip de la CPU para mejorar el rendimiento y el acceso.
Gracias a este avance se han conseguido algunas mejoras:
- Acelerar el acceso a datos e instrucciones (menor latencia o ciclos de reloj de penalización): al almacenar copias de datos e instrucciones frecuentemente utilizados, la caché permite que la CPU los acceda de manera mucho más rápida en comparación con la memoria principal. Esto mejora significativamente el tiempo de respuesta y el rendimiento general de la computadora. Sin embargo, para aquellos datos e instrucciones a los que se accede por primera vez y no están cargados en la caché, la penalización de ciclos seguirá siendo igual. Además, el acceso necesitará menos ciclos si se encuentra en la L1, en comparación con la L2. Y la L2 será más rápida que la L3 y así sucesivamente según los niveles que tenga.
- Mejora de la eficiencia energética: al acceder a datos con mayor eficiencia (más cerca de la unidad de control y con menor consumo), la CPU puede realizar su trabajo de manera más eficiente.
- Reducción del cuello de botella de la memoria: al reducir la cantidad de accesos necesarios a la memoria principal (RAM), también permite usar el ancho de banda aportado por ésta para otros accesos, aliviando parte del problema del cuello de botella.
Sin embargo, no todo son ventajas, ya que aumentar el tamaño de esta SRAM es complicado, por un lado ocupa mayor superficie del chip, haciendo que el die sea más grande y costoso de producir, por otro también aumenta mucho el coste, ya que las celdas SRAM son bastante más costosas que las DRAM si se quieren conseguir grandes capacidades. Y, al tener un die de mayor tamaño, también penalizamos el yield… Algunos han encontrado la esperanza en el 3D Packaging, como AMD y su 3D V-Cache.
Además, para tratar de seguir mejorando esta comunicación CPU-RAM, se están buscando otras alternativas y tecnologías de las que ya hemos hablado en este blog. Una de esas soluciones podría llegar de parte de la eDRAM que te describiré en el próximo apartado…
¿Qué es la eDRAM?
La memoria eDRAM, o embedded DRAM, como su propio nombre indica, es un tipo de memoria DRAM (Dynamic Random Access Memory), simillar a la que tenemos en los chips de los módulos de RAM, pero que se encuentra embebida, es decir, encapsulada en el mismo paquete que el procesador. Es decir, acercar la DRAM a la CPU para reducir estos problemas de los que hemos hablado anteriormente.
Aunque la memoria eDRAM tiende a ser más costosa por bit en comparación con la memoria DRAM independiente equivalente, las ventajas en términos de rendimiento que ofrece al estar integrada en el mismo chip (diseño chiplet o MCM) que el procesador superan estas desventajas de coste en muchas aplicaciones. Es más, no solo podría ser una buena solución para las CPUs, también para las próximas GPUs, como una alternativa a la HBM, aunque ésta HBM también tiene muchas miradas puestas, dado su enorme ancho de banda. No obstante, como sabes, la HBM tiene más problemas para escalar a capacidades más altas, algo que la DRAM no tiene. Además, si el controlador de memoria está integrado también, puede manejar esta eRAM como si fuese una caché de nivel superior.
No todo son ventajas, por supuesto, ya que la eDRAM implica fabricar un chips de memoria independiente en obleas diferentes a las que implementan el procesador, y luego procesos adicionales en la fabricación para unir ambos chips en el mismo empaquetado y crear el interposer para conectar ambos chips de forma correcta. Además, al ser una DRAM, con celdas de memoria creadas con condensadores (las SRAM se fabrican íntegramente con transistores), necesitan de una frecuencia de actualización constante para que no se pierda todo lo almacenado, es decir, un refresh o refresco.
La eDRAM realmente no es un concepto nuevo, se ha venido empleando en algunos diseños, como es el caso del IBM POWER7, que incluía chips eDRAM en el MCM junto con el chip de la CPU. Los chips A-Series de Apple para dispositivos móviles hacen algo parecido, también las APUs de AMD para consolas como la Sony PlayStation o la Microsoft Xbox. Incluso Intel la usó en su Haswell para los gráficos integrados GT3e. Y es posible que próximamente, con los empaquetados 3D y el auge de los chiplets se vean nuevamente como una solución, tanto en el lado de la CPU como en el lado de la GPU, aunque más bien podrían mirar hacia la eSRAM…
¿Qué es la eSRAM?
Para finalizar, me gustaría decir que además de existir la eDRAM, también existe una tecnología aún superior, más rápida que la DRAM, como es la eSRAM, que es una memoria del tipo SRAM incorporada directamente en el procesador, o embebida. Es decir, una memoria como la caché. Entonces ¿qué diferencias existen? Pues que, al estar en un chip separado, y no en el mismo die como la caché actual, volvemos a los mismos problemas del pasado como en el Pentium Pro o similares, y es que el consumo y latencia de acceso, al estar en un chip independiente, es mayor que en la caché on-chip o interna.
Hay que decir que la eSRAM no ofrece la misma capacidad de almacenamiento que la eDRAM, ya que es bastante más cara y por tanto no se puede escalar como la DRAM, por tanto, en la eSRAM nos encontramos con limitaciones parecidas a la HBM, como comenté anteriormente.