¿Qué significa que un SSD es NVMe y por qué importa?

¿Qué significa que un SSD es NVMe y por qué importa?

Rodrigo Alonso

Seguro que llevas ya bastante tiempo escuchando y leyendo acerca de los SSD NVMe. Sabes que son la última tecnología, que son muy rápidos y que, por lo tanto, son el camino a seguir. Pero, ¿sabes qué significa que un SSD sea NVMe? En este artículo te contamos qué es, cómo funciona y por qué es importante de cara al futuro del almacenamiento para PC.

Los primeros SSD basados en memoria flash utilizaban las interfaces que había disponibles en ese momento, SATA y SAS, así como los protocolos y factores de forma que supusieran un menor impacto en los sistemas de almacenamiento existentes. Sin embargo, ninguno de estos fueron diseñados para almacenamiento de alta velocidad, motivo por el que al final los SSD han terminado utilizando interfaz PCI-Express que, aunque no estaba diseñada inicialmente para ello, es mucho más rápida.

 

NVMe: la ventaja de la velocidad de la interfaz PCI Express

La gran ventaja de utilizar la interfaz PCI-Express es que al contrario de otras interfaces no necesita pasar por el IOMMU para comunicarse con la memoria RAM, por lo que es ideal para copiar datos lo más rápido posible a dicha memoria, lo cual combinado con la enorme velocidad de transferencia de este tipo de memoria le da la capacidad al sistema de tener una capacidad de almacenamiento con la que la CPU puede trabajar de manera directa casi infinita.

SSD NVMe PCIe

Solo hace falta que en la RAM haya un espacio de memoria donde se copien las peticiones al SSD NVMe para acelerar el acceso a los datos. Esto es crucial por ejemplo de cara a aplicaciones que mueven archivos de gran tamaño, como es el caso de los atlas de texturas en en el renderizado 3D o en archivos de edición de vídeo de gran capacidad.

Sin embargo, estos SSD necesitaban un firmware específico para poder tener compatibilidad con los PC y no aprovechaban bien todos los raíles que esta interfaz ofrecía. Por este motivo, se creó el protocolo NVMe. El cual permite la comunicación entre el sistema huésped y el SSD NVMe siguiendo una serie de normas comunes, lo que ha permitido estandarizar este tipo de unidades.

 

¿Qué es el protocolo NVMe?

NVMe son las siglas de «Non-Volatile Memory Express», o memoria exprés no volátil y se trata de un protocolo de almacenamiento de alto rendimiento, NUMA (Non Uniform Memory Access, o de acceso a la memoria no uniforme), optimizado para almacenamiento y altamente escalable que se conecta al host del subsistema de memoria. Este protocolo fue diseñado desde cero y específicamente para sistemas de almacenamiento, con el objetivo de ofrecer siempre el mejor rendimiento.

NVMe

El protocolo NVMe hace uso de los raíles PCI-Express del sistema, lo cual ofrece no solo un amplio ancho de banda que permite velocidades de vértigo, muchas veces más altas que con las interfaces SATA, sino que los tiempos de acceso se reducen mucho porque le permite acceder de manera directa a la RAM del sistema y por tanto tiene un enlace mucho más rápido con el procesador y, además, las posibilidades de crecer y escalar son enormes.

En otras palabras, este es un protocolo diseñado para que se siga utilizando a largo plazo y es el que seguirá siendo utilizado en las tecnologías de almacenamiento de próximas generaciones durante muchos, muchos años, salvo que salte a la palestra una nueva tecnología que deje atrás todo lo que conocemos hasta ahora (cosa poco probable porque este protocolo se sigue desarrollando y mejorando para adaptarse a las nuevas necesidades de la tecnología).

 

¿Por qué es tan rápido?

Para entender cómo funciona este protocolo y, sobre todo, cómo logra alcanzar estas cotas de velocidad, hay que profundizar un poco en su arquitectura y, especialmente, entender cómo funcionan las colas I/O (de entrada y salida).

SSD

El estándar NVMe admite múltiples colas de entrada y salida, hasta 64K entradas con 64K peticiones a la memoria NVMe cada una. Para que os hagáis una idea, si lo comparamos con otro estándar como es SATA veremos que este solo admite una cola y de 32 peticiones. De esto se encarga la controladora en la unidad. La cual funciona de manera muy similar al controlador de memoria RAM, pero gestionando el acceso a los chips de memoria RAM no volátil o NAND Flash dentro de la unidad M.2.

La controladora flash en realidad es un microcontrolador que ejecuta en forma de programa interno el protocolo NVMe cada vez que la CPU o la GPU le hace una petición de acceso a la unidad NVMe. Esto significa que no es la CPU la que ejecuta todas las etapas del protocolo y las más pesadas se dejan al hardware interno del SSD.

 

El software que necesita para funcionar

El software host del protocolo NVMe se ejecuta en la controladora y puede crear colas hasta el máximo permitido por la controladora según la configuración del sistema y la carga de trabajo; además, admite dispersión / recopilación de I/S, minimizando el efecto que esto causa en la carga del procesador para la transferencia de datos, e incluso proporciona la capacidad de cambiar su prioridad según los requisitos de la carga de trabajo.

Diagrama NVMe Controladora

En el diagrama de arriba tenéis una forma muy simplificada de comunicación entre un host y la controladora NVMe. Esta arquitectura permite que las aplicaciones comiencen, ejecuten y finalicen múltiples peticiones de entrada o salida de manera simultánea y sin tener impacto en el rendimiento del procesador, dado que es el controlador flash el que se encarga de realizar todas las peticiones de acceso a los datos dentro de la unidad NVMe.

En conclusión, el protocolo NVMe se creó desde cero específicamente para sistemas de almacenamiento de alto rendimiento, para hacer uso de las enormes velocidades de transferencias de la interfaz PCI Express saturando lo menos posible al procesador durante el acceso. Además, está preparado para poder modificar el firmware fácilmente, lo que significa que seguiremos utilizándolo a medio y largo plazo porque tiene la capacidad de seguir evolucionando sin problema, ya que los fabricantes pueden ampliar las capacidades del SSD NVMe fácilmente.

Este tipo de SSD son los que llevan consolas como la ROG Ally o Steam Deck, muy populares actualmente y que ofrecen un rendimiento y velocidad muy notable, gracias también a todo esto que comentábamos. En su día eran bastante más caras, aunque, actualmente, son algo muy común y asequible, por lo que, esa mejora ya habría llegado a toda la tecnología actual, directamente de serie. De todas formas, a la hora de adquirir una unidad SSD, puedes echarle un vistazo a su «apellido» y a si saber también de forma más directa, su velocidad y rendimiento, y conocer si es más antigua o moderna. De ahí también el precio, que pese a haberse reducido, siguen siendo más caras que otros modelos inferiores, como es lógico.

1 Comentario