Un adaptador m.2 nvme expuesto sobre la ranura de placa base para mostrar almacenamiento avanzado

NVMe es un protocolo de software diseñado para conectar dispositivos de almacenamiento masivo no volátiles a través de interfaces de hardware PCI Express (PCIe). Permite la transferencia de datos altamente paralela con gastos generales reducidos, optimizando la comunicación entre el procesador y la memoria flash.

El sistema opera eliminando los cuellos de botella creados por protocolos antiguos. Aprovecha la baja latencia de las memorias de estado sólido para maximizar el rendimiento de entrada y salida.

{inAds}

La arquitectura del protocolo NVMe

El funcionamiento de este sistema se basa en la capacidad de gestionar múltiples colas de comandos simultáneamente. Mientras que los sistemas antiguos procesaban datos de forma secuencial, este protocolo utiliza el paralelismo masivo.

El controlador NVMe permite la creación de hasta 65,535 colas de comandos. Cada una de estas colas puede contener hasta 64,000 comandos individuales. Esta estructura permite que los núcleos de la CPU distribuyan las solicitudes de lectura y escritura sin esperar a que una operación termine para iniciar la siguiente.

La eficiencia reside en la reducción de la pila de software. El protocolo minimiza el número de ciclos de CPU necesarios para procesar una solicitud de E/S, lo que reduce la latencia general del sistema.

El rol del bus PCIe en el transporte de datos

La memoria no volátil no funciona sola; requiere una vía de transporte rápida. El estándar PCIe actúa como la carretera física que conecta la unidad de almacenamiento directamente con la CPU.

A diferencia de otras interfaces, el bus PCIe ofrece carriles dedicados para el flujo de datos. Un dispositivo NVMe suele utilizar 4 carriles (lanes) de PCIe, lo que multiplica el ancho de banda disponible.

Versión PCIe Velocidad por carril (x1) Ancho de banda total (x4)
PCIe 3.0 ~985 MB/s ~3.9 GB/s
PCIe 4.0 ~1.97 GB/s ~7.8 GB/s
PCIe 5.0 ~3.94 GB/s ~15.8 GB/s

Esta conexión directa evita la necesidad de pasar por un controlador de almacenamiento intermedio, reduciendo los saltos de datos y el tiempo de respuesta.

Mecanismos de gestión de memoria no volátil

El almacenamiento no volátil se basa principalmente en la tecnología NAND Flash. Esta memoria almacena datos mediante la captura de electrones en celdas aisladas, lo que permite que la información persista sin energía eléctrica.

El funcionamiento interno se divide en varias capas:

  • Células de almacenamiento: Los datos se guardan en celdas que pueden almacenar diferentes bits según la tecnología (SLC, MLC, TLC o QLC).
  • Controlador de Flash: Este chip gestiona la ubicación de los datos y el desgaste de las celdas mediante el wear leveling.
  • Mapeo lógico: El protocolo NVMe traduce las direcciones lógicas solicitadas por el sistema operativo en direcciones físicas dentro de los chips NAND.

El uso de NVMe optimiza la forma en que el sistema operativo se comunica con el controlador de Flash, permitiendo que este último gestione la escritura de datos de manera más inteligente y rápida.

Diferencias operativas frente a SATA AHCI

El estándar anterior y competidor directo es el SATA (Serial ATA) utilizando el protocolo AHCI. AHCI fue diseñado originalmente para discos mecánicos (HDD), donde el brazo físico del disco limitaba la velocidad.

SATA funciona con una única cola de comandos que puede albergar hasta 32 instrucciones. Esto crea un cuello de botella severo cuando se utilizan memorias flash, ya que la velocidad de la NAND es órdenes de magnitud superior a la capacidad de gestión de AHCI.

En contraste, el almacenamiento no volátil en NVMe elimina el controlador SATA. Al conectar el dispositivo directamente al bus PCIe, se reduce la latencia y se incrementa la tasa de IOPS (operaciones de entrada/salida por segundo). Mientras que un SSD SATA suele alcanzar los 100,000 IOPS, una unidad NVMe de gama alta puede superar los 1,000,000 IOPS.

Impacto en la latencia y el rendimiento del sistema

La latencia es el tiempo que transcurre desde que la CPU solicita un dato hasta que este llega al registro. En los sistemas basados en AHCI, la latencia es alta debido a la complejidad de la pila de comandos.

El protocolo NVMe implementa una arquitectura de mensajería simplificada. Esto reduce el número de registros que la CPU debe leer o escribir para completar un comando. La comunicación es más directa y requiere menos interrupciones del procesador.

Este flujo de trabajo permite que el sistema operativo cargue aplicaciones más rápido y que las bases de datos manejen miles de consultas simultáneas sin saturar el bus de datos. La eficiencia energética también mejora, ya que la CPU pasa menos tiempo en estado activo esperando la respuesta del almacenamiento.

Dudas comunes sobre el almacenamiento NVMe

¿Qué es la memoria no volátil NVMe?

Es un estándar de almacenamiento que combina el uso de memorias NAND Flash (que no pierden datos al apagarse) con un protocolo de comunicación optimizado para el bus PCIe. Su objetivo es eliminar las limitaciones de velocidad de las interfaces antiguas para aprovechar la rapidez inherente de la memoria sólida.

¿Cuál es el funcionamiento de la memoria no volátil?

Funciona almacenando cargas eléctricas dentro de celdas de transistores de puerta flotante. Estas cargas permanecen atrapadas incluso cuando no hay suministro eléctrico, lo que permite que la información se mantenga intacta. El controlador gestiona la lectura y escritura de estas celdas mediante voltajes específicos.

¿Diferencia entre almacenamiento volátil y no volátil?

La memoria volátil, como la DRAM, requiere energía constante para mantener la información y se borra al reiniciar el equipo. El almacenamiento no volátil, como el NVMe, retiene los datos independientemente de la alimentación eléctrica, siendo ideal para guardar archivos y sistemas operativos a largo plazo.