¿Qué es HMB (Host Memory Buffer) y cómo abarata las unidades SSD?

Rubén Castro, 21 diciembre 2023

Comienzan los Días Naranjas en PcComponentes. Hay un montón de artículos con descuentos impresionantes!!!

Ver mejores ofertas

¿Qué es HMB?

Host Memory Buffer o HMB es una función utilizada en algunas SSD para mejorar el rendimiento y reducir los costes de fabricación.

Tradicionalmente, las SSD disponen de una caché DRAM (memoria dinámica de acceso aleatorio) integrada que almacena temporalmente los datos durante las operaciones de lectura y escritura. Esta caché ayuda a mejorar el rendimiento al acelerar la transferencia de datos entre el controlador de la SSD y la memoria flash NAND. Sin embargo, se trata de una característica que añade un coste significativo a las SSD.

Para reducir costes, se lanzaron algunas unidades SATA DOM que carecían de DRAM, sin embargo, el rendimiento empeoraba significativamente. Y no fue hasta la versión NVMe 1.2 cuando se creó la funcionalidad Host Memory Buffer o HMB que mejora este aspecto.

¿Cómo funcionan las unidades SSD HMB?

Las unidades SSD mantienen una tabla L2P (lógica a física) de asignación que realiza un seguimiento de la ubicación física de los datos en una unidad SSD y le proporciona una asignación lógica para que el sistema operativo no tenga que realizar un seguimiento de los movimientos de datos internos de la unidad SSD.

De esta manera la unidad SSD sabe dónde se guarda cada cosa, qué se puede sobrescribir y qué no para trabajar de forma eficiente. Esta información no ocupa mucho espacio. Además, hay que tener en cuenta que los sistemas operativos realizan pequeñas operaciones de escritura constantemente. Estos cambios constantes supondrían realizar muchas escrituras en la SSD, concretamente en una sección, lo que reduciría su vida útil.

Para evitarlo, la mayoría de las SSD incluyen algo de DRAM a bordo. La DRAM no se desgasta como la memoria flash, por lo que puede actualizarse con la frecuencia necesaria. Y también hay que tener en cuenta que es más rápida. Por eso, cuando solicite un archivo, las unidades SSD con DRAM nos devolverán el resultado algo más rápido, ya que se reduce el tiempo de búsqueda.

Algunas unidades SSD económicas optan por prescindir de la DRAM para ahorrar costes lo que disminuye tanto el rendimiento como la vida útil de la unidad.

El HMB se diseñó para aumentar el rendimiento y la vida útil de las unidades SSD sin necesidad de utilizar DRAM, por lo que mantenemos los costes más bajos. El HMB utiliza otra fuente de DRAM para almacenar, al menos parcialmente, un mapa lógico-físico de la unidad. Lo bueno de esto es que todos los ordenadores ya disponen de una fuente abundante de DRAM en la memoria RAM principal del ordenador.

Los controladores de las unidades SSD permiten a éstas solicitar una pequeña porción de la memoria RAM del sistema para almacenarla en la tabla de búsqueda. Aunque las SSD suelen disponer de 1 GB de DRAM por cada TB de memoria flash, el HMB no suele acercarse a ese tamaño. Las implementaciones exactas varían según los fabricantes y las unidades, pero lo normal son unos 100 MB. Esto permite que los datos más utilizados tengan su ubicación asignada para un acceso más rápido. A los demás datos se accede de forma lenta.

HMB no utiliza mucha memoria del sistema, por lo que no es una carga en ese sentido. Sin embargo, no va a ser tan rápido como la DRAM de la unidad a la que accede directamente el controlador SSD. También está sujeta a la cooperación del resto del ecosistema PCIe y a la sobrecarga de la búsqueda de HMB a través del bus.

Esto mejora la latencia en la mayoría de las cargas de trabajo en comparación con las unidades SSD sin DRAM. Sin embargo, el rendimiento no llega al nivel de una unidad con DRAM integrada. También ayuda a reducir parte del desgaste de la propia unidad SSD. Sin embargo, este beneficio es difícil de medir y probablemente sea mínimo.

Requisitos para usar HMB

El HMB requiere algunos elementos importantes para funcionar… En primer lugar, el sistema anfitrión y el sistema operativo tienen que ser compatibles con las especificaciones HMB y NVMe 1.2. Esto se debe a que la memoria principal tiene que ser compatible con la DRAM integrada. Esto se debe a que la memoria principal debe asignarse a estas tareas. En segundo lugar, la propia unidad SSD necesita funciones específicas de HMB en su controlador y firmware.

Ejemplos de estas funciones son el Activador HMB y el Asignador HMB. La función más destacada del Activador HMB es gestionar la inicialización de la SSD HMB. Cuando el sistema host solicita a la SSD que se identifique, el Activador HMB indica que se trata de una SSD HMB enviando el atributo HMPRE. A partir de ahí, el SSD y el sistema host configuran las estructuras HMB.

Por parte del Asignador de HMB, la unidad SSD debe realizar un seguimiento y gestionar la memoria que ha solicitado al sistema host. En funcionamiento, el asignador de HMB realiza una gran cantidad de trabajo. Tiene funciones como asignar y liberar memoria que reside en el bus PCIe y en la memoria principal del sistema host. Si la SSD es compatible con el búfer de escritura rápida HMB, el asignador HMB del controlador también debe disponer de la funcionalidad necesaria para gestionarlo.

Una de las características del HMB es que las unidades pueden incluir un búfer de escritura rápida (FWB) como parte de la estructura del HMB. La idea básica es que los fabricantes de SSD puedan aprovechar la velocidad de la memoria principal y utilizarla como búfer de escritura para el dispositivo NAND. Esto permite, por ejemplo, que los datos que se escriben en la NAND se alineen de forma más eficiente con las celdas de la NAND a medida que se vuelcan desde el FWB a la SSD NAND.

El inconveniente es la seguridad de los datos. En la mayoría de los sistemas de la generación actual, la memoria principal es DRAM volátil sin protección contra pérdida de energía o PLP. En las unidades SSD para centros de datos, los circuitos PLP se añaden a la SSD para que la memoria DRAM volátil de la SSD se pueda transferir a la memoria NAND no volátil en caso de pérdida de alimentación.


En el mundo real

  • HMB suena muy bien, pero en la práctica, sólo recientemente ha comenzado a cumplir sus expectativas

Aunque a muchos en el sector les gusta decir que las SSD HMB son tan rápidas como sus alternativas equipadas con DRAM, no es así. En cambio, se suelen considerar una tecnología de valor porque elimina el paquete DRAM de una SSD y también puede reducir la huella física de una unidad.

Por tanto, aunque el HMB funciona, las unidades SSD NVMe más rápidas de la actualidad son siempre las que utilizan DRAM integrada dedicada. Sí, la DRAM es la DRAM, pero la ubicación importa.

Sin embargo, NVMe es tan rápido que las diferencias entre los diseños con y sin DRAM solo se aprecian en pruebas de rendimiento sintéticas o en situaciones de estrés extremo, es decir, cuando se escriben grandes cantidades de datos. Por tanto, la mayoría de usuarios puede comprar sin problemas unidades con HMB, ya que el rendimiento es muy bueno y la vida útil de las unidades SSD suele varios órdenes de magnitud superiores al uso medio.

¿La PS5 admite HMB?

Lamentablemente, no todos los ordenadores o implementaciones NVMe admiten HMB. En particular, la PlayStation 5 de Sony no es compatible con HMB. Sí, las unidades SSD sin DRAM deberían funcionar perfectamente en la PS5, pero Sony emite la advertencia: “Las unidades SSD NVMe pueden seguir siendo rápidas, aunque no tan ágiles en ráfagas cortas, sin caché primaria. Crean caché secundaria tratando su NAND TLC (Triple-Level Cell/3-bit) o QLC (Quad-Level Cell, 4-bit) como SLC.”

¿Qué quiere decir esto?

La SSD reserva una cierta cantidad de NAND para que se escriba como datos SLC (celda de nivel único/1 bit) de simple encendido/apagado (voltaje alto/bajo) en lugar de los múltiples niveles de voltaje necesarios para representar más de un bit en TLC y QLC.

La escritura de un bit es mucho más rápida, ya que no es necesario comprobar errores para asegurarse de que se ha escrito el nivel de voltaje adecuado de los ocho posibles con TLC y los dieciséis posibles con QLC. La caché se reescribe a ¾ bits en otras NAND a medida que la unidad encuentra tiempo para hacerlo.

Básicamente, como afirma Sony, se puede utilizar una unidad SSD HMB en la PS5, pero es posible que no se obtenga un rendimiento óptimo. Puede que notes o no la diferencia.

Rubén Castro

Redactor

Apasionado de explorar y diseccionar lo último en tecnología. Tengo mucha experiencia en el mundo de los ordenadores y el gaming, aunque también me gustan todos los tipos de gadgets.

Consentimiento