Hasta la llegada de las SSD y el almacenamiento flash, SATA se utilizaba con todos los sistemas de almacenamiento de HDD. Sin embargo, a medida que las aplicaciones móviles, los videojuegos y las nuevas tecnologías como la IA aumentaron las exigencias de los entornos informáticos, las limitaciones de SATA se hicieron evidentes. En concreto, la baja velocidad y ancho de banda de SATA empezaron a ralentizar las grandes transferencias de datos, clave para las funciones de las nuevas aplicaciones.
NVMe se inventó como una mejor opción de almacenamiento y transferencia de datos que SATA para las SSD en entornos en los que se necesitaban grandes transferencias de datos sin ralentizar los tiempos de procesamiento. NVMe permite a las SSD conectarse directamente a la CPU mediante el bus de PCIe y un adaptador M.2 o U.2, igual que con una unidad SATA. NVMe permite a las SSD conectarse directamente a la CPU y leer y escribir gran cantidad de datos con rapidez.
Para lograr un mayor rendimiento, NVMe define una interfaz de registro, un conjunto de comandos y un grupo de funciones para las SSD basadas en PCIe. Una vez conectado a través del bus de PCIe, el protocolo de NVMe facilita una menor latencia y ayuda a optimizar las operaciones de E/S por segundo (IOPS).
Los controladores NVMe son compatibles con muchos tipos de sistemas operativos (SO) populares, incluidos Windows, Linux y macOS. Además, el protocolo de NVMe admite todo tipo de NVM, incluidas las SSD con flash NAND. Por último, NVMe utiliza colas de comandos paralelas y un “bucle de sondeo” en lugar del controlador de dispositivo basado en "interrupciones" de sus predecesores, lo que reduce la latencia y los gastos generales del sistema y ayuda a evitar cuellos de botella en la CPU, como cuando una tarjeta gráfica funciona más rápido que la CPU subyacente.
Factores de forma de las SSD de NVMe
Otro diferenciador importante de las especificaciones de NVMe es su factor de forma o la forma en que el tamaño, la configuración y el diseño físico afectan a su compatibilidad con otros dispositivos. Recientemente, la Storage Networking Industry Association (SNIA) se reunió para establecer el factor de forma estándar para centros de datos y empresas (EDSFF) con el fin de crear un marco consensuado en todo el sector para la tecnología de SSD.
El factor de forma estándar acordado para una SSD fue de 2,5 pulgadas, que cabe fácilmente en la bahía de unidades de la mayoría de computadoras portátiles y de escritorio, lo que hace que las SSD de NVMe sean muy compatibles con la tecnología existente. Dado que la unidad de 2.5 pulgadas se utiliza ampliamente tanto en entornos informáticos de consumo como comerciales, sustituir una HDD por una SDD de NVMe es sencillo y directo para los usuarios que deseen mejorar el rendimiento de su sistema.
Unidades NVMe m.2
Las SSD M.2 son otro factor de forma física o conector utilizado en las SSD. Aunque el término se utiliza a menudo indistintamente con NVMe, son diferentes tipos de tecnología de almacenamiento. Mientras que las SSD de NVMe se acoplan a una ranura PCIe de una placa madre, lo que les proporciona una velocidad de transferencia de datos muy superior a la de sus competidoras, las unidades m.2 son un factor de forma físico, o conector, que permite un almacenamiento de gran rendimiento en dispositivos pequeños y con limitaciones de potencia, como computadoras portátiles y tabletas ultradelgadas.
NVMe y memoria dinámica de acceso aleatorio
La memoria dinámica de acceso aleatorio (DRAM) es un tipo de memoria de acceso aleatorio (RAM) muy utilizado en computadoras personales (PC), servidores y estaciones de trabajo. Los SSD de NVMe vienen en variedades con DRAM y sin DRAM. Las SSD de NVMe con DRAM son más caras y rápidas que las sin DRAM, y son una mejor opción para aplicaciones de uso intensivo de gráficos, como el software de edición de fotos o videos. Las NVMesin DRAM son más asequibles y más lentas, pero siguen siendo mucho más rápidos que las HDD o las SSD de SATA, lo que las convierte en buenas opciones para los usuarios que no necesitan tanta velocidad o rendimiento para las aplicaciones que ejecutan.