TuMundoHardware.com
Search

NVMe: ¿Qué es?, Función, Historia y Cronología de Desarrollo

NVMe (Non-Volatile Memory Express) es un protocolo de interfaz diseñado para dispositivos de almacenamiento con memoria no volátil (SSD, Memorias flash, Tarjetas de expansión PCIe, SSD M.2, etc.), el cual funciona mediante el bus PCI Express.

La tecnología NVMe surge debido a que la interfaz de controlador de host anterior (AHCI) está enfocada en unidades de disco duro mecánico (HDD), aunque esto no era inconveniente al momento de utilizar una unidad de estado sólido (SSD), aun así, a medida que aumentaba el rendimiento de las unidades SSD, el estándar AHCI se iba volviendo cada vez más ineficaz para estas unidades.

Debido a lo mencionado anteriormente, NVM Express fue diseñado con la finalidad de aprovechar al máximo las unidades de estado sólido (SSD). Más tarde, NVM Express se volvería un estándar para cualquier dispositivo que utilizara una memoria no volátil (móviles, tabletas, laptops).

Nota: NVM Express utiliza una comunicación en paralelo.

Tabla de contenido

¿Cómo Funciona NVMe?

La forma de trabajar de NVM Express es simple, una unidad de almacenamiento SSD NVMe se conecta a través del bus PCIe o mediante un puerto M.2 o U.2, seguidamente, mediante esta conexión, el protocolo permite una menor latencia, una reducción en el uso de energía y un aumento en las IOPS (Operaciones de entrada/salida por segundo, en español).

Por otra parte, los comandos NVMe trabajan de la siguiente manera:

  1. La computadora host envía colas de comandos de entrada/salida (I/O) hacia los controladores NVM Express.
  2. El controlador NVM Express recupera las colas de comandos de entrada/salida.
    1. Seguidamente, el controlador ejecuta las colas de comandos de entrada/salida.
    2. A continuación, el controlador envía colas de finalización de comandos de E/S.
  3. Finalmente, la computadora host recibe y registra las colas de comandos y las procesa como finalizadas.

Especificaciones hasta la Fecha (NVM Express, NVMe-oF, NVMe-MI)

NVM Express base:

  • 1.0 (1 de marzo del 2011)
    • 1.0e (23 de enero del 2013)
  • 1.1 (11 de octubre del 2012)
    • 1.1b (2 de julio del 2014)
  • 1.2 (3 de noviembre del 2014)
    • 1.2a (23 de octubre del 2015)
    • 1.2b (1 de junio del 2016)
    • 1.2.1 (5 de junio del 2016)
  • 1.3 (1 de mayo del 2017)
    • 1.3a (24 de octubre del 2017)
    • 1.3b (4 de mayo del 2018)
    • 1.3c (24 de mayo del 2018)
    • 1.3d (20 de marzo del 2019)
  • 1.4 (10 de junio del 2019)
    • 1.4a (9 de marzo del 2020)
    • 1.4b (21 de septiembre del 2020)
    • 1.4c (9 de marzo del 2021)
  • 2.0 (13 de mayo del 2021)
    • 2.0a (23 de julio del 2021)
    • 2.0b (6 de enero del 2022)
    • 2.0c (4 de octubre del 2022)

NVM Express over Fabrics:

  • 1.0 (5 de junio del 2016)
    • 1.0a (17 de julio del 2018)
  • 1.1 (22 de octubre del 2019)
    • 1.1a (12 de julio del 2021)

NVMe-MI:

  • 1.0 (17 de noviembre del 2015)
    • 1.0a (8 de abril del 2017)
  • 1.1 (29 de abril del 2019)
    • 1.1a (20 de abril del 2020)
    • 1.1b (5 de octubre del 2020)
    • 1.1c (2 de febrero del 2021)
  • 1.2 (2 de junio del 2021)
    • 1.2a (22 de julio del 2021)
    • 1.2b (10 de enero del 2022)
    • 1.2c (6 de octubre del 2022)

NVM Express Vs AHCI

Cronología e historia de NVMe

2007 - 2011: Creación y Lanzamiento

  • 2007 En el Intel Developer Forum del 2007, se mostró un diseño arquitectónico del NVMHCI propuesto por la ONFI (Open NAND Flash Interface Working Group). En ese mismo año, se formó NVMHCI Working Group dirigido por Intel (dicho grupo estaría conformado por más de 40 empresas).
  • 2008 – En abril del 2008, poco menos de un año desde la formación del equipo, la especificación NVMHCI 1.0 sería liberada. Esta especificación incluye registros, motor DMA y motor DMA, y conjunto de comandos.
  • 2009 – Comienza el desarrollo de NVMe. Estas especificaciones fueron desarrolladas NVMe Workgroup.

Nota: Después de la reestructuración en NVMHCI Work Group, esta paso a llamarse “NVMe Work Group”.

  • 2011 – El primero de marzo del 2011, la especificación NVMe 1.0 fue lanzada, esta especificación incluye: Soporte para funcionamiento en paralelo, Protección de extremo a extremo (DIF y DIX), complementos de seguridad, virtualización y una mejora en el apartado de informe de errores.
  • 3 de marzo del 2011, Intel pública un controlador NVM Express para Linux.

Nota: Durante su desarrollo, se denominó “Enhanced NVMHCI”. Sin embargo, el nombre se modificó a “NVM Express” para su comercialización.

2012 - 2013: Estandarización de NVM Express

  • 2012 – En agosto del 2012, IDT (Integrated Device Technology) lanza comercialmente los primeros chipsets NVMe que funcionan mediante el bus PCIe 3.0 (89HF16P04AG3 y 89HF32P08AG3).
  • El 11 de octubre del 2012, la especificación NVM Express 1.1 fue lanzada, esta especificación incluye: E/S multirruta, una mejora con la transición autónoma de energía y el uso compartido del namespace.
  • 2013 – 23 enero del 2013, NVM Express lanzo una actualización para la especificación NVMe 1.0, llamada NVMe 1.0e
  • Del 13 al 16 de mayo del 2013, NVM Express Workgroup festejo su primer Plugfest. Este evento les brindo a sus participantes la oportunidad de medir el cumplimiento de sus productos con la especificación NVM Express.
  • En julio del 2013, Samsung anuncia la primera unidad de almacenamiento NVMe (XS1715) con una velocidad de 3,000MB/s para utilización empresarial.
  • 18 de octubre del 2013, Microsoft agrego soporte para NVM Express de forma nativa para windows 8.1.
  • Noviembre de 2013, LSI presento la tercera generación de su línea de controladores flash SandForce, SF3700, el cual también es compatible con NVMe.

2014: Expansión hacia nuevos horizontes

  • 2014 – Comienzo el desarrollo de NVMe Over Fabrics.
  • Marzo del 2014, NVM Express Workgroup se incorporó bajo el nombre NVM Express. Más tarde, la asociación pasaría a llamarse “NVM Express Inc”.
  • Junio del 2014, Intel anuncia sus primeros productos NVM Express  (DC P3700 series, DC P3600 series, y DC P3500 series).
  • 2 julio del 2014, NVM Express lanza una actualización para la especificación NVM Express  1.1, llamada NVM Express  1.1b.
  • 5 de octubre del 2014, illumos obtiene soporte para NVM Express.
  • El 3 de noviembre del 2014, se lanzó al público la especificación NVM Express  1.2, esta especificación agrego una administración de energía mejorada, actualizaciones de fireware en vivo, administración enfocada a los namespace y soporte de transferencia. Más tarde, las unidades NVM Express de Intel estarían disponibles comercialmente.

2015: Un Año Prometedor Para NVM Express

  • 2015 – enero del 2015, NVM Express Inc anuncia sus resultados en las elecciones para sus nuevos promotores (HGST, Micron, Microsoft, Samsung, SanDisk y Seagate).
  • 24 de febrero del 2015, el sistema operativo Chrome OS agrego soporte para dispositivos NVM Express.
  • Del 8 al 11 de junio del 2015, NVM Express Inc celebro su 4.º plugfest, durante el evento se probaron distintos dispositivos mediante la especificación NVM Express  1.2, dentro de dichas pruebas se incluyo la conexión en caliente para entornos que utilicen el factor de forma U.2.
  • 9 de septiembre del 2015, Apple presento la primera implementación de NVM Express en móviles.
  • 23 de octubre del 2015, NVM Express lanzo una actualización para la especificación NVMe 1.2, llamada NVMe 1.2a.
  • 17 de noviembre del 2015, NVM Express lanzo al público la NVMe-MI 1.0, esta especificación proporciona una arquitectura y un conjunto de comandos enfocada en administrar un subsistema de memoria no volátil fuera de banda (a través de un sistema operativo).

2016 - 2017: Lanzamiento de Nuevas Tecnologías NVMe

  • 2016 – Del 29 de febrero al 3 de marzo, NVM Express Inc celebro su 5.º plugfest, este evento tendría la asistencia más alta hasta la fecha.
  • El primero de junio de 2016, NVM Express lanzo una actualización para la especificación NVM Express  1.2, llamada NVM Express  1.2b.
  • 5 de junio del 2016, NVM Express lanza al público NVMe Over Fabrics 1.0 (NVMe-oF), esta especificación está enfocada en acceder a dispositivos y sistemas de almacenamiento mediante Ethernet, Fibre Channel, etc.
  • 6 de junio de 2016, NVM Express lanzo una actualización para la especificación NVM Express  1.2, llamada NVM Express  1.2.1.
  • 2017 – enero del 2017, NVM Express Inc anuncia sus resultados en las elecciones para sus nuevos promotores (Facebook, Micron, Microsoft, Samsung, Seagate, Toshiba y Western Digital).
  • Del 22 al 25 de mayo, NVM Express Inc celebro su 7.º plugfest.
  • Mayo del 2017, NVM Express lanzo al público la especificación NVMe 1.3, esta especificación incluye mejoras de la virtualización, autodiagnóstico del dispositivo, particiones de arranque y administración térmica controlada por host.
  • Del 30 de octubre al 2 de noviembre del 2017, NVM Express Inc celebro su 8.º plugfest, el evento incluyo protocolos de prueba para la especificación NVMe 1.3.
  • 24 de octubre del 2017, NVM Express lanzo una actualización para la especificación NVMe 1.3, llamada NVMe 1.3a.

Nota: En las características se encuentra “Identify Namespace return list of Namespace Identifiers” (no encontré una manera clara de traducirlo xd), la cual es obligatoria (el resto son características opcionales).

2018 - 2019: Mantenimientos hacia sus especificaciones

  • 2018 – enero del 2018, NVM Express Inc anuncia sus resultados en las elecciones para sus nuevos promotores (Cavium, Cisco, Dell, Facebook, Intel, Microsemi y NetApp).
  • 4 de mayo del 2018, NVM Express lanza una actualización para la especificación NVM Express  1., llamada NVM Express  1.3b.
  • 24 de mayo del 2018, NVM Express lanza una actualización para la especificación NVM Express  1.3, llamada NVM Express 1.3c.
  • 2019 – 20 de marzo del 2019, NVM Express lanzo una actualización para la especificación NVM Express  1.3, llamada NVM Express  1.3d.
  • 18 de abril del 2019, el sistema operativo Haiku obtiene soporte para NVM Express.
  • 29 de abril 2019, NVM Express lanzo al público la NVMe-MI 1.1.
  • En junio del 2019, se lanzaría al público la especificación NVM Express  1.4, esta especificación incluye un registro de eventos persistentes, acceso asimétrico al namespace, funciones de host memory buffer, etc.
  • 22 de octubre 2019, NVM Express lanzo al público la NVMe-MI 1.1.

2020 - Actualidad: Un Estándar en la Industria

  • 2020 – 9 de marzo del 2020, NVM Express lanza una actualización para la especificación NVM Express  1.4, llamada NVM Express  1.4a.
  • 21 de septiembre del 2020, NVM Express lanza una actualización para la especificación NVM Express  1.4, llamada NVM Express  1.4b.
  • 2021 – 9 de marzo del 2021, NVM Express lanza una actualización para la especificación NVM Express  1.4, llamada NVM Express  1.4c.
  • En mayo del 2021 se lanzó al público la especificación NVMe 2.0, esta especificación incluye un copiado de comandos simples, compatibilidad con versiones anteriores, compatibilidad con discos HDD, conjuntos de comandos KV, CRC de 32 y 64, conjunto de comandos ZNS, etc.
  • 2 de junio del 2021, NVM Express lanzo al público la NVMe-MI 1.2.
  • 23 de julio del 2021, NVM Express lanza una actualización para la especificación NVMe 2.0, llamada NVMe 2.0a.
  • Del 9 al 10 de noviembre del 2021, Seagate presento la primera unidad de disco duro (HDD) NVMe nativa en la industria durante la OCP Experience Center.
  • 2022 – 6 de enero del 2022, NVM Express lanza una actualización para la especificación NVMe 2.0, llamada NVMe 2.0b.
  • 4 de octubre del 2022, NVM Express lanza una actualización para la especificación NVMe 2.0, llamada NVMe 2.0c (última versión de la especificación hasta la fecha).

Factores de Forma

AIC (Add In Card): AIC es una unidad de almacenamiento de estado sólido que utiliza un factor forma de tarjeta estándar mediante PCI Express.

U.2 (Conocido anteriormente como SFF-8639): El factor de forma U.2 fue diseñado con el objetivo de encajar en los puertos de almacenamiento destinados a unidades SAS y SATA, esto con la finalidad de implementar NVM Express con la menor reingeniería posible.

EDSFF (Enterprise & Data Center SSD Form Factor): EDSFF es un factor enfocado en brindar el mayor rendimiento y velocidad en los sistemas de almacenamiento de nivel empresarial.

U.3(Conocido anteriormente como SFF-8639): Es un estándar basado en la especificación U.2, esta combina el soporte SAS, NVMe y SATA en un solo controlador.

2007 - 2011: Creación y Lanzamiento

  • M.2(Conocido anteriormente como NGFF): M.2 fue diseñado con el fin de aprovechar el tamaño compacto y la baja temperatura de las memorias NAND.

Nota: Pongo estos enlaces porque soy un vendido, jajaja. 

Picture of Jesús Rosa
Jesús Rosa
Alquimista estatal y estudiante de ingeniería. Amante del hardware y la cultura pop, cuyo mayor anhelo es vivir cómodo y tranquilo, escribiendo acerca de lo que tanto me apasiona (Hardware && Software).
Entradas Relacionadas
guest
0 Comentarios
Ver todos los comentarios