Guía Hardware

SCM: qué es esta memoria que posee lo mejor de la RAM y lo mejor de un SSD

Actualizado a: 30 de octubre de 2023

Existe una lucha incesante en el mundo de la informática para encontrar nuevas soluciones en cuanto a memorias. Una de las prioridades es conseguir una memoria que tenga lo mejor de ambos mundos: RAM y SSD. Es decir, una memoria tan rápida como una memoria principal, pero con la capacidad y el hecho de no ser volátil como la memoria secundaria. Y en ese camino va la SCM que te presentamos hoy…

Jerarquía de memoria actual

A modo de recordatorio, decir que la memoria en la actual arquitectura de ordenadores tiene una jerarquía de memoria en forma de pirámide, donde se va desde la más rápida, cara y de menor capacidad en la cúspide, hasta la más barata, lenta y de mayor capacidad en la base:

  • Nivel 0: en la cúspide tenemos la más rápida de todas, que son los registros de la CPU, aunque también es la que menor capacidad tiene. Los registros suelen tener tamaños que pueden ir desde los 32-bit a los 64-bit o más. Sin embargo, pese a su baja capacidad, están creados a partir de flip-flops muy rápidos, y se pueden acceder en menos de 0.5 ns.
  • Nivel 1: justo debajo de los registros tenemos la memoria caché, desde la L0 o L1 hasta la LLC (Last Level Cache), incluso se pueden incluir aquí algunos buffers como el TLB, que también es un tipo de caché. Es decir, podemos encontrar frecuentemente la L1, L2 y L3, salvo algunas excepciones. Esta memoria suele tener capacidades superiores a los registros, pudiendo ir desde unos cuantos KB hasta varios MB. Sin embargo, las celdas de esta memoria son SRAM. Esto las hace muy rápidas, aunque no tanto como los registros, pero sí más que los niveles que están por debajo. Aquí estamos hablando de tiempos de acceso que suelen ser desde 1 ns hasta algunas decenas de nanosegundos, dependiendo del nivel, o dicho de otro modo, desde unos 4 ciclos de reloj de la CPU hasta 50 o 70 ciclos en los niveles superiores. Por ejemplo, una L1 puede tener tiempos típicos de acceso de 1 ns, mientras que la L2 podría estar en los 3.3 ns, la L3 entre los 12.8 ns y la L4 en 42.4 ns… Hay que agregar también que tanto el Nivel 0 como el Nivel 1 están dentro de la propia CPU en los casos actuales.
  • Nivel 2: esto es lo que se conoce como memoria primaria, o memoria principal. Es decir, la RAM (se podría incluir aquí la memoria virtual, aunque ten en cuenta que esta es una porción alojada en un nivel 3). Esta memoria tiene una capacidad superior a la caché, de varios GB, pero también es cierto que los tiempos de acceso son más lentos, de entorno a 10 ns, dependiendo del tipo de memoria puede variar, ya que la latencia y la frecuencia de reloj no es igual en todas, pero para que tengas una referencia. Esto es debido a que se trata de una memoria compuesta por celdas DRAM, más lentas que las SRAM, pero más baratas, lo que permite esta capacidad superior a precio moderado. Tanto el Nivel 0, como el Nivel 1 y el Nivel 2, es una memoria a la que la CPU puede acceder de forma directa. Por cierto, como sabes, la GPU también tiene su propia memoria principal o VRAM, y generalmente es de tipo DRAM y también HBM en algunos casos. La HBM también puede ser empleada para la CPU, aunque esto es más exótico.
  • Nivel 3: aquí se puede incluir la memoria no volátil o NVM (Non-volatile memory), ya que todos los niveles anteriores eran volátiles, es decir, cuando se deja de suministrar energía a las celdas de memoria se pierde su contenido. Aquí estamos ante una memoria que, aunque se deje de suministrar energía, se mantiene la información guardada. Además, también es importante destacar que en este caso es una memoria a la que la CPU no puede acceder de forma directa, y en muchos casos necesita asistencia del sistema operativo para ello. Generalmente se denomina a este nivel memoria secundaria, al igual que al Nivel 1 se le denomina memoria primaria. Dentro del Nivel 3 se pueden incluir los discos duros HDD y unidades SSD. Los primeros son magnéticos, y tienen tiempos de acceso de unos 3 ms, mientras los segundos son unidades de memoria flash mucho más rápidas, con tiempos de acceso que pueden estar en torno a 0.1 ms. Como puedes ver, aquí pasamos de los nanosegundos a los milisegundos, pero también hay que decir que es una memoria bastante más barata de producir, por lo que se puede implementar en capacidades de cientos o miles de GB o TB.
  • Nivel 4: en este caso los tiempos de acceso son superiores a los anteriores, pudiendo ser de más de 10 ms en algunos casos. Aquí se pueden incluir medios extraíbles, memoria óptica (CD/DVD/BD), cintas magnéticas, y otras memorias del E/S.

Bien, una vez entendemos esta pirámide o jerarquía de la memoria, lo siguiente es comenzar a ver qué es eso del SCM…

En búsqueda de la memoria universal

Para tratar de mejorar esta jerarquía de memoria, los investigadores están constantemente desarrollando nuevas tecnologías, y camino en búsqueda de lo que se denomina «memoria universal». Este término se refiere a un dispositivo de almacenamiento que puede combinar los beneficios económicos de una memoria DRAM, la velocidad de una SRAM, y el hecho de no ser volátil como una memoria flash, además de tener una durabilidad infinita y longeva.

Evidentemente, reunir todas estas características en una sola memoria no es fácil, de hecho, muchos expertos dudan de que esto sea posible. Algunas memorias que han surgido últimamente pueden reunir algunas de estas características, aunque no llegan a ser una solución definitiva por unas u otras cuestiones.

Me estoy refiriendo a memorias como puede ser la FRAM o FeRAM, MRAM, PCM, RRAM o ReRAM, NRAM o Nano-RAM, PRAM o PCRAM, memoria basada en memristores, PMC, memoria de burbuja (bubble memory), racetrack memory, UltraRAM (bajo investigación semiconductores como el InGaAs, GaSb, AlGaAs, GaAs, AlSb, InAs), 3D XPoint, Millipede, memoria basada en FeFET, NOVRAM, etc. Todas ellas con interesantes ventajas, pero también con desventajas que aún no las hacen aptas para ser consideradas memorias universales y que puedan sustituir a los niveles 2 y al nivel 1, como se puede ver en la pirámide anterior, así como interponerse como una memoria entre la memoria principal y la memoria secundaria.

¿Qué es la NVRAM?

FRAM FeRam

La NVRAM (Non-Volatile Random Access Memory) es un tipo de memoria de acceso aleatorio como la RAM, pero que no pierde sus datos cuando no se le está aplicando energía, por lo que es no volátil. La idea es conseguir esa memoria con las propiedades de una SRAM o DRAM en cuanto a rapidez de acceso, pero que no se pierda la información almacenada, como una memoria secundaria. Esto podría ser una buena tecnología para usar en multitud de frentes, desde almacenamiento del firmware, hasta microcontroladores para la industria, o para usar en aplicaciones de HPC, aplicaciones aeroespaciales, IoT, computación distribuida, aplicaciones de máquinas virtuales, entre otras.

Piensa en todos los beneficios que tendría esta memoria frente a la pirámide convencional actuales, como por ejemplo:

  • Al ser tan rápida como una DRAM o una SRAM, se consiguen tiempos de acceso muy rápidos, pudiéndola usar como una memoria principal.
  • Como no es volátil, su consumo sería muy bajo, ya que no se necesitarían ciclos de refresco y estar constantemente alimentando la memoria como en el caso de las volátiles.
  • Se pueden obtener capacidades grandes, para almacenar volúmenes de información elevados.
  • Estas celdas también cuentan con una mejor fiabilidad con respecto a las actuales celdas flash, por lo que se pueden almacenar datos a largo plazo, sin que se deterioren tras miles o millones de ciclos como sucede actualmente en estas otras celdas. Como sabes, dependiendo si las células de memoria flash son NOR, NAND, o derivados, la fiabilidad puede ser más o menos corta.

Esta memoria persistente podría ser la solución a algunos de los problemas actuales dada las limitaciones tecnológicas que existen y el gap o brecha de rendimiento actual entre la memoria RAM y la CPU.

Como sabes, actualmente existen algunas soluciones que incluyen una memoria volátil más rápida para almacenar la información durante el uso, accediendo de forma más rápida a ella, y cuando se va a cortar el suministro de energía, se vuelca el contenido a una memoria no volátil. Pero esto implica incluir dos tipos de memoria, lo que aumenta el coste de producción, entre otros problemas. Pero con estos módulos se tendría todo en uno.

Recientemente se han estado lanzando algunos estándares como el NVDIMM, es decir, un formato DIMM (Dual In-line Memory Module) para este tipo de memorias permanentes o no volátiles. De esta forma, estas memorias podrían implementarse en forma de módulo como las actuales RAM e instalarse en slots o ranuras similares a las actuales, sin embargo, a diferencia de la DRAM convencional, tendrían esas ventajas enumeradas anteriormente.

Los NVDIMMs evolucionaron a partir de la tecnología conocida como BBU DIMM (Backed Battery Backed Up DIMM), que utilizaba una batería de respaldo para mantener la energía en una memoria volátil durante hasta 72 horas en caso de corte de energía. No obstante, esto no es lo que se busca con esa memoria SCM o universal, ya que el uso de baterías implica que se tengan que cargar o sustituir, tiene impacto medioambiental mayor, etc.

Esta fuente de energía auxiliar es necesaria para que la memoria volátil principal tenga tiempo de volcar el contenido a la memoria no volátil en caso de corte de suministro eléctrico. Actualmente, también existen algunos módulos NVDIMM que no se basan en baterías, sino en supercondensadores, es decir, condensadores de alta capacidad que están llenos durante el uso y cuando se produce un corte brusco, tienen suficiente energía como para permanecer el tiempo suficiente para evitar la pérdida de información.

Algunas de estas soluciones fueron usadas originalmente para la caché de algunos adaptadores de bus host (HBA) para unidades RAID, permitiendo que la caché pueda sobrevivir a un corte de suministro eléctrico. Sin embargo, tiene aplicaciones más allá de esto, como verás.

Para poder exprimir el uso de estos sistemas, han nacido algunos estándares bajo la JEDEC para la NVDIMM que debes conocer, como son:

  • NVDIMM-F: se trata de un estándar de ranura para módulos DIMM con chips de memoria flash. Los usuarios del sistema deberán combinar el DIMM de almacenamiento con un DIMM DRAM tradicional, es decir, los dos módulos por separado. Está disponible desde 2014, con productos como la PCM 3D XPoint anunciada por Intel y Micron Technology.
  • NVDIMM-N: en este caso se combinan los dos tipos de memoria en un solo módulo DIMM. Es decir, en el mismo módulo tenemos almacenamiento flash y DRAM tradicional. De este modo, el sistema puede accede directamente a la DRAM tradicional durante la ejecución del sistema. En caso de corte de energía o apagado, el módulo vuelca los datos de la DRAM tradicional volátil a la memoria flash persistente y los copia de vuelta cuando se restaura la energía. Utiliza una pequeña fuente de energía de respaldo para el módulo mientras se copian los datos de la DRAM a la memoria flash. Sony y Viking Technology también anunciaron una memoria para este tipo de slot basada en ReRAM.
  • NVDIMM-P: especificación apareció en febrero de 2021, permitiendo que la memoria principal sea persistente, con estas nuevas SCM o memorias universales florecientes. Además, podrían compartir interconexiones idénticas a la DIMM de una DDR4 o DD5. Por tanto, se podría sustituir por ellas. Ejemplos de este tipo son la Samsung/Netlist anunciada en 2015 y que posiblemente estaba basada en Z-NAND.
  • NVDIMM-X: no es un estándar del JEDEC, pero también es interesante. En este caso tenemos un módulo DIMM de memoria DDR, pero con almacenamiento NAND flash y que fue desarrollada por Xitore.

Bien, ahora vamos a pasar a la SCM, que tiene relación con todo esto que te he explicado aquí, como verás, pero que era necesario explicar esto antes de ponernos manos a la obra con este nuevo concepto…

¿Qué es la SCM?

La SCM (Storage Class Memory), que es el tema principal de este artículo, es un tipo de memoria física que trata de colarse como una memoria universal, o al menos cubrir algunos de los puntos que esta abarca. Con la SCM tenemos una memoria con lo mejor de una memoria de acceso aleatorio dinámica (DRAM), lo mejor de una memoria flash NAND, y una fuente de energía para la persistencia de datos.

En definitiva, lo que conseguiríamos con una SCM es tener un acceso (escritura y lectura) a los datos es más rápido que el acceso a los datos en unidades de estado sólido (SSD) conectadas localmente a través de PCIe, discos duros magnéticos (HDD) y matrices de almacenamiento externas. La SCM es más duradera que la DRAM y puede leer y escribir datos hasta 10 veces más rápido que las unidades NAND. Pero también se puede conseguir mayor capacidad que una RAM convencional a un coste asequible, así como una vida útil mayor que las unidades SSD actuales.

Una de las aplicaciones en las que se pueden usar estas memorias SCM para sacarle partido es en los centros de datos. Y es que pueden aportar:

  • Latencia: tenemos un medio de almacenamiento de alto rendimiento, con una baja latencia, es decir, con tiempos de acceso más rápidos que los medios de almacenamiento secundario. Algo positivo para cargas de trabajo que impliquen manejar grandes cantidades de información con un buen rendimiento.
  • Persistente: la fuente de energía auxiliar asegura que los datos y el código del programa se retengan durante un fallo del sistema o una pérdida de energía. Esto proporciona una capa de almacenamiento persistente direccionable por bytes entre la DRAM y la flash. El uso de la SCM extiende el rendimiento rápido de la DRAM al almacenamiento almacenamiento no volátil. Por tanto, cuando se reanuda la energía, el sistema puede seguir justo donde lo dejó, sin perder datos ni tiempo, algo vital en los sistemas de alta disponibilidad. Además, en muchos casos se eliminaría la necesidad del constante refresco.
  • Menos dependiente de los medios secundarios: con la SCM, menos datos deben moverse entre la memoria principal y el almacenamiento secundario, ya que tiene una mayor capacidad. Esto reduce la carga de trabajo de la CPU cuando necesita del sistema operativo para el acceso a medios secundarios, como expliqué anteriormente, lo que aumenta el rendimiento. Un dispositivo SCM puede registrar velocidades casi tan rápidas como la DRAM y la memoria estática RAM (SRAM), pero con esa ventaja de la persistencia.

Ventajas y desventajas de la SCM

Como he venido comentando a lo largo del artículo, el uso de la SCM puede tener grandes ventajas sobre las memorias convencionales, como son una mayor capacidad que las DRAM actuales, con tiempos de acceso similares o superiores, pero sin la volatilidad de éstas. Además muchas de las nuevas tecnologías en desarrollo también ofrecen mayor eficiencia energética, algo importante en los centros de datos. Y, en caso de suministro eléctrico local de algún nodo, no se perdería la información. Tampoco hay que olvidar que los datos colocados en la SCM siguen un camino de E/S más corto y reducen la recolección de basura en bloques grandes de datos.

En informática, la recolección de basura, o GC (Garbage Collection) es una forma de gestionar automáticamente la memoria. El GC intenta recuperar la memoria asignada por un programa, pero que ya no se hace uso de ella, es decir, se libera este recurso de memoria. Así se libera al programa de tener que realizar una administración de la memoria, es decir, no necesita especificar qué objetos desasignar y volver a liberar.

Pero, a pesar de sus ventajas, también tienen algunas desventajas, por las cuales aún no tienen una amplia adopción. Uno de los mayores escoyos es que se basan en tecnologías aún en desarrollo o que necesitan madurar, ya que los primeros productos lanzados no han llegado al límite del potencial que se esperaba en la teoría. Además, al ser tecnologías exóticas, pueden ser más costosas de producir.

Ejemplos de productos SCM

Como he citado anteriormente, existen algunos ejemplos de productos que se han lanzado al mercado y que se consideran tipos de implementaciones comerciales de la SCM, como por ejemplo:

  • Intel Optane: se lanzó en 2018, un producto que estaba desarrollado especialmente para HPC, IA, entre otras aplicaciones, permitiendo mejoras de rendimiento gracias a esta memoria SCM basada en 3D XPoint, una tecnología desarrollada junto con Micron. Aunque se lanzaron varios formatos de esta memoria, como los formatos M.2 NVMe, las tarjetas de expansión PCIe, también hubo una en formato DIMM denominada Optane Persistent Memory o PMem. Las capacidades de estos módulos DIMM iban desde 128 GB hasta 512 GB por cada módulo. Sin embargo, en 2021 Intel decidió cesar el desarrollo de esta memoria, y el objetivo se centró en el estándar abierto Compute Express Link (CXL), que parecía más prometedor.
  • Samsung Z-SSD: la surcoreana también crearía un medio de baja latencia y tipo SCM basado en una tecnología diferente al anterior, en este caso se usaba una variación de la V-NAND, denominada Z-NAND, y que se organizaba en 48 capas de celdas de memoria basadas en transistores de puerta flotante.
  • Western Digital Ultrastar DC ME200 Memory Extension Drives: puede utilizarse para ampliar la memoria del sistema existente, fomentar la consolidación de servidores y reducir la complejidad de dividir grandes conjuntos de datos de varios terabytes entre múltiples servidores. Una solución SCM que usó AMD para sus sistemas EPYC-based y competir así con la solución de Intel.
  • Kioxia XL-Flash SCM: esta empresa, anteriormente Toshiba Memory, también desarrolló su propia tecnología SCM, conocida de este modo. Estos productos usaban un factor de forma tipo SSD, pero con planes para llevarla al bus DRAM.
  • Smart Modular Technologies DuraMemory: esta otra solución de memoria persistente en módulos también es otro ejemplo destacable, aunque en este caso pensada para la industria y entornos donde la robustez y fiabilidad bajo condiciones desfavorables sea necesaria.

Todos estos desarrollos, entre otros, hicieron que muchos grandes proveedores de informática, y en especial de HPC, se interesaran por estos productos y los incluyesen en sus soluciones. Algunos ejemplos son de uso de SCM en sistemas comerciales y empresariales son:

  • Dell EMC: la compañía estadounidense anunció que usaría Intel Optane PMem para mejorar el rendimiento de sus sistemas PowerMax SAN.
  • Hewlett Packard Enterprise (HPE): también haría una incrusión en la SCM con soluciones empresariales como Nimble Storage SANs, basados en Optane.
  • Hitachi Vantara: la japonesa también ofrecía su Virtual Storage Platform 5000 Series, con la opción para que los usuarios pudieran usar SCM, actuando como una memoria buffer o caché.
  • Lenovo: el gigante chino de la informática particular y el HPC, también anunciaría el soporte de Intel Optane para sus servidores ThinkSystem.
  • MemVerge: esta startup creada en 2017 desarrolló un sistema conocido como Memory Machine, que virtualizaba la DRAM y la Intel Optane para crear un medio de almacenamiento de gran capacidad y persistente. La idea era usar estos sistemas para snapshots, replicado de servidores, y otros fines.
  • NetApp: diseñó el software Memory Accelerated Data (Max Data). Se trata de un proyecto que usa la tecnología Plexistor y que soporta la SCM Intel Optane.
  • Pure Storage: la idea tras esta compañía era combinar la memoria flash NVMe y módulos desarrollados por ella misma y denominados como DirectMemory, dando como resultado lo que se conoció comercialmente como FlashArray//X all-flash, empleando dispositivos de doble puerto Intel Optane.
  • StorOne: similar al anterior, ya que All-Flash Array.next es un sistema que empaqueta memoria Optane junto con memoria Intel QLC 3D NAND, y gestionado por el software S1.
  • Vast Data: esta otra compañía creó un buffer de escritura basado en SCM para acelerar cargas de inteligencia artificial.

El futuro de la SCM

En definitiva, hemos visto que ha habido algunos intentos de tecnologías y productos que usan algún tipo de SCM, pero que no han terminado de cuajar en el mercado por unos u otros motivos. Aún necesita desarrollo, y la madurez de algunas de las tecnologías en las que se basan estos dispositivos. Y, pese al pesimismo de muchos, esta memoria puede tener un futuro prometedor.

Jaime Herrera

Jaime Herrera

Técnico electrónico y experto en el sector de los semiconductores y el hardware. Con una amplia y sólida trayectoria en el campo de la electrónica, he acumulado una extensa experiencia. Mi pasión por la tecnología y la informática me ha impulsado a dedicar décadas de mi vida al estudio y desarrollo de soluciones en este fascinante sector. Como técnico electrónico, he tenido el privilegio de trabajar en una variedad de proyectos y desafíos, lo que me ha permitido adquirir un profundo conocimiento y experiencia en la creación, diseño y mantenimiento de dispositivos electrónicos.

>
Guía Hardware
Logo