NVM Express (NVMe): La interfaz estándar para unidades de estado sólido (SSD)

A medida que la adopción de las unidades de estado sólido (SSD) aumenta en los mercados empresariales, profesionales y de consumidores, la práctica de adaptar memoria flash a interfaces y formatos diseñados para discos duros mecánicos tradicionales con el fin de lograr compatibilidad cruzada está quedando obsoleta. Para aprovechar al máximo el potencial de la tecnología de almacenamiento de estado sólido, los interesados de la industria han diseñado NVM Express como una interfaz estándar para que los SSD se comuniquen con las computadoras.

Índice de Contenido
  1. ¿Qué es NVM Express?
  2. ¿Por qué importa NVM Express?
  3. ¿A quién afecta NVM Express?
  4. ¿Cuándo se lanzó NVM Express?
  5. ¿Cómo obtengo una unidad con NVM Express?

¿Qué es NVM Express?

NVM Express (NVMe), o la especificación de interfaz de controlador de host de memoria no volátil, es una especificación de interfaz de dispositivo que se ideó para aprovechar las ventajas de las tecnologías de almacenamiento basadas en flash, como NAND y XPoint 3D, comercializada como Optane por Intel.

Antes de NVM Express, los SSD se conectaban a computadoras a través de Serial ATA o SAS, y se comunicaban utilizando la interfaz de controlador de host avanzada (AHCI). Estas tecnologías estaban diseñadas para discos duros mecánicos tradicionales, que tienen limitaciones físicas en el acceso aleatorio de datos y en la velocidad con la que se pueden transferir datos de una vez. A finales de 2010, los SSD para consumidores mainstream estaban siendo limitados por la capacidad de transferencia relativamente limitada de SATA. En el mercado profesional, esta limitación se superó mediante la creación de SSD que se conectaban a través de PCI Express.

Esta estrategia solo permitía a los fabricantes superar la limitación de velocidad de 6Gb/s (750MB/s) inherente a SATA, con SSD que alcanzaban máximo alrededor de 550MB/sec, teniendo en cuenta el margen. Sin embargo, estas unidades usaban AHCI, lo que retenía casi todos los cuellos de botella de rendimiento de E/S aleatorias, o usaban una especificación de interfaz personalizada, lo que hacía que su funcionamiento fuera muy diferente entre fabricantes y, en cierto grado, entre modelos del mismo fabricante. Debido al diseño personalizado de estas unidades, se requerían controladores de software específicos del dispositivo para su uso. Como resultado, los SSD de PCI Express iniciales eran más complicados de usar como disco de arranque en Windows o para usar con Linux si el fabricante no lo admitía.

NVM Express elimina esos problemas al proporcionar una interfaz común y predecible para que las unidades la utilicen, con una especificación de controlador común que elimina la necesidad de controladores específicos del dispositivo, lo que simplifica el uso de estos SSD.

Es importante destacar que los discos duros tradicionales generalmente venían en formatos de 3,5" y 2,5", y los SSD generalmente estaban disponibles como tarjetas mSATA o de 2,5". Los discos NVMe pueden tener una variedad de formatos, el más común es el formato M.2, que tiene un ancho de 22 mm y longitudes de 30, 42, 80 o, menos común, 110 milímetros. (M.2 incluye capacidades SATA para compatibilidad retroactiva.) El formato NF1 es una variante orientada a centros de datos de M.2 que permite hot swapping. Los discos U.2, anteriormente conocidos como SFF-8639, son discos de 2.5" con un conector especializado para proporcionar señalización PCI Express. Algunos discos de alta gama solo están disponibles como tarjetas PCI Express, generalmente de media altura y media longitud (HHHL).

Los diferentes tipos de buses en los dispositivos electrónicos

¿Por qué importa NVM Express?

NVM Express permite a los fabricantes de unidades crear unidades de mayor rendimiento sin estar limitados por los cuellos de botella de transferencia de SATA/SAS y AHCI, que estaban destinados a discos duros tradicionales. Cuando se trabaja con múltiples archivos en discos duros tradicionales, el cabezal de la unidad debe moverse a alta velocidad por varias partes del disco para leer y escribir datos en él. Aunque el almacenamiento en caché y otros trucos de firmware amortiguan esto, los discos duros tradicionales solo pueden trabajar efectivamente con un archivo a la vez.

Como resultado, AHCI, que fue diseñado para discos duros tradicionales, tiene solo una cola de comandos, con un máximo de 32 comandos por cola. Dado que esta limitación mecánica no existe en las unidades de estado sólido (que carecen de cabezal de unidad), este atributo de AHCI es extremadamente desventajoso. NVMe soluciona esto permitiendo hasta 65535 colas de comandos, cada una con un máximo de 65536 comandos por cola. (Esto se ofrece según la especificación, aunque en la práctica aprovechar esto requiere que el controlador de la unidad lo admita.)

Además, NVMe ofrece 2048 interrupciones MSI-X, mientras que AHCI ofrece una sola interrupción sin direccionamiento. La sobrecarga en NVMe también se reduce, ya que los parámetros de comando de 4K se realizan en una sola recuperación, mientras que AHCI requiere dos recuperaciones de RAM del host. Además, NVMe no requiere bloqueo para instrucciones paralelas. En conjunto, NVMe tiene una filosofía orientada hacia flash que no limita a las unidades en el uso de las características de estado sólido del flash, lo que conduce a un mayor rendimiento.

Varios factores, como el tipo de flash utilizado, así como el controlador y el firmware de la unidad, pueden influir en el rendimiento relativo de las unidades de estado sólido. La comparación más equitativa disponible sería entre WDS100T2B0B y WDS100T2X0C. Ambas son unidades SSD de 1 TB relativamente recientes de Western Digital, que utilizan flash TLC 3D de 64 capas. La primera es una unidad SATA/AHCI, que tiene una velocidad secuencial de lectura y escritura de 560MB/s y 530MB/s respectivamente, con 95K y 84K de IOPS de lectura y escritura aleatoria. En contraste, la última es una unidad PCIe/NVMe, que tiene una velocidad secuencial de lectura/escritura de 3400MB/s y 2800MB/s respectivamente, con 500K y 400K de IOPS aleatoria. Este nivel de rendimiento solo es posible gracias al uso de NVM Express.

¿A quién afecta NVM Express?

En las empresas, la adopción de NVM Express puede aumentar considerablemente el rendimiento de las bases de datos. En 2015, investigadores de la Universidad del Sur de California y la Universidad Estatal de San José que trabajaron en conjunto con Samsung encontraron que las diferencias arquitectónicas de NVMe resultaron en una "disminución del 4x en los costos generales del software del sistema", a partir de la versión 3.14 del kernel de Linux. Además, los investigadores indican que, en una comparación directa entre una sola unidad NVMe y una unidad SATA, la unidad NVMe "puede proporcionar beneficios de rendimiento de hasta 8x" en cargas de trabajo de bases de datos. De manera similar, una sola unidad NVMe supera a un conjunto RAID0 de cuatro SSD SATA hasta "5x".

Para casos de uso profesionales y de uso doméstico avanzado, como la edición de gráficos y la producción de video, los beneficios son un poco más modestos, ya que estas actividades dependen más de las velocidades de lectura y escritura en bruto que de las capacidades de E/S aleatorias de las unidades. Dado esto, los aumentos de rendimiento de 8x, como se observan en las bases de datos, no son tan realistas para estos casos de uso. Volviendo a los ejemplos de velocidad de las dos unidades comparadas en la última sección, NVMe ofrece aproximadamente un aumento de 6x en la velocidad de lectura y un aumento de 5.25x en la velocidad de escritura en comparación con una unidad SATA SSD similar.

Cómo entrar al programa de configuración del BIOS en tu computadora

¿Cuándo se lanzó NVM Express?

La primera versión de la especificación NVMe se lanzó en marzo de 2011, mientras que la versión actual (1.3c) se lanzó en mayo de 2018.

Todos los principales sistemas operativos incluyen soporte para NVM Express. Microsoft incluyó soporte nativo para NVMe en Windows 8.1 y Server 2012 R2 en octubre de 2013, con soporte retroactivo para Windows 7 y Server 2008 R2 a través de Windows Update. Apple agregó soporte para NVMe en OS X Yosemite 10.10.3 en abril de 2015. El soporte para NVMe en Linux se lanzó en la versión del kernel 3.3 en marzo de 2012. Este soporte se agregó a Chrome OS en febrero de 2015.

El soporte para NVM Express también existe en OpenBSD 6.0, NetBSD-current, FreeBSD 10.2, DragonFly BSD 4.6, así como en Oracle Solaris 11.2 y el fork illumos de OpenSolaris. VMware tiene soporte para NVMe a partir de vSphere 6.0. Naturalmente, las versiones sucesivas de estos productos (Windows 10, OS X 10.4 Mojave, etc.) conservan el soporte para NVM Express.

¿Cómo obtengo una unidad con NVM Express?

Los usuarios de PC relativamente modernos pueden usar SSD NVMe, ya que muchos fabricantes los envían con PC integrados. Para usuarios de Mac, Apple adoptó los SSD NVMe a partir de la MacBook Retina en 2015 y en la MacBook Pro con Touch Bar en 2016, así como en la mayoría de las configuraciones del iMac Retina de mediados de 2017 y todas las configuraciones del iMac Pro de 2017.

En el caso de las PC, las nuevas placas base a menudo tienen ranuras M.2 dedicadas para conectar SSD. Para placas base más nuevas que no cuentan con estos conectores, están disponibles tarjetas adaptadoras que permiten conectar unidades M.2 utilizando ranuras PCI Express existentes. Algunos fabricantes de unidades ofrecen estas tarjetas junto con los SSD, aunque también hay soluciones genéricas económicas que funcionan con unidades de todos los fabricantes.

Es importante destacar que el rendimiento de las unidades NVM Express depende de la revisión y el número de carriles disponibles a través de PCI Express. PCI Express 2.0 soporta 500 MB/s por carril, mientras que PCI Express 3.0 soporta ~985 MB/s por carril. Si bien las computadoras más antiguas con solo PCI Express 2.0 pueden usar SSD NVMe, la mayoría de los SSD NVMe utilizan una interfaz de cuatro carriles (x4), lo que limita las unidades a un máximo teórico de 2000 MB/s, aunque en la práctica esto es un 10-15% menor debido a la sobrecarga. Dicho esto, lograr las velocidades de lectura especificadas de 3400 MB/s en la unidad WDS100T2X0C mencionada anteriormente no sería posible.

Entendiendo los permisos de archivos y directorios en UNIX

Un problema relacionado se encuentra en la serie de computadoras portátiles ThinkPad de Lenovo. Para algunos de los ThinkPads más nuevos que utilizan procesadores Intel de octava generación (Kaby Lake Refresh), las placas del sistema asignan dos carriles PCIe 3.0 a las unidades SSD, aunque las propias unidades SSD (en este caso, una Samsung PM981) están diseñadas para una una interfaz x4. Samsung clasifica las unidades con una velocidad de lectura/escritura de 3200 MB/s y 2400 MB/s, pero una prueba de rendimiento realizada en una revisión del ThinkPad P52s por NotebookCheck registró velocidades de 1777 MB/s y 1722 MB/s, respectivamente. Este error de diseño se puede encontrar en los modelos E480, L480, T580 y T480, mientras que los modelos X280, T480s, X380 Yoga y X1 Carbon G6 asignan correctamente una interfaz x4 al SSD.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a NVM Express (NVMe): La interfaz estándar para unidades de estado sólido (SSD) , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.