Interfaz utilizada para conectar dispositivos de almacenamiento
NVM Express ( NVMe ) o Non-Volatile Memory Host Controller Interface Specification ( NVMHCIS ) es una especificación de interfaz de dispositivo lógico abierta para acceder a los medios de almacenamiento no volátil de una computadora, generalmente conectados a través del bus PCI Express . Las iniciales NVM significan memoria no volátil , que a menudo es memoria flash NAND que viene en varios factores de forma física, incluidas las unidades de estado sólido (SSD), las tarjetas complementarias PCIe y las tarjetas M.2 , el sucesor de las tarjetas mSATA . NVM Express, como interfaz de dispositivo lógico, ha sido diseñada para capitalizar la baja latencia y el paralelismo interno de los dispositivos de almacenamiento de estado sólido. [2]
Desde el punto de vista arquitectónico, la lógica de NVMe se almacena físicamente dentro del chip controlador de NVMe, que se encuentra ubicado físicamente junto al medio de almacenamiento (normalmente un SSD) y es ejecutada por él. Los cambios de versión de NVMe (por ejemplo, de la 1.3 a la 1.4) se incorporan dentro del medio de almacenamiento y no afectan a los componentes compatibles con PCIe, como las placas base y las CPU. [3]
Por su diseño, NVM Express permite que el hardware y el software del host aprovechen al máximo los niveles de paralelismo posibles en los SSD modernos. Como resultado, NVM Express reduce la sobrecarga de E/S y aporta varias mejoras de rendimiento en relación con las interfaces de dispositivos lógicos anteriores, incluidas múltiples colas de comandos largas y una latencia reducida. Los protocolos de interfaz anteriores, como AHCI , se desarrollaron para su uso con unidades de disco duro (HDD) mucho más lentas, donde existe un retraso muy prolongado (en relación con las operaciones de la CPU) entre una solicitud y la transferencia de datos, donde las velocidades de los datos son mucho más lentas que las velocidades de la RAM y donde la rotación del disco y el tiempo de búsqueda dan lugar a requisitos de optimización adicionales.
Los dispositivos NVM Express están disponibles principalmente en forma de tarjetas de expansión PCI Express de tamaño estándar [4] y como dispositivos de formato de 2,5 pulgadas que proporcionan una interfaz PCI Express de cuatro carriles a través del conector U.2 (antes conocido como SFF-8639). [5] [6] Los dispositivos de almacenamiento que utilizan SATA Express y la especificación M.2 que admiten NVM Express como interfaz de dispositivo lógico son un caso de uso popular para NVMe y se han convertido en la forma dominante de almacenamiento de estado sólido para servidores, computadoras de escritorio y portátiles por igual. [7] [8]
Presupuesto
Las especificaciones para NVMe publicadas hasta la fecha incluyen: [9]
Históricamente, la mayoría de los SSD utilizaban buses como SATA , SAS o Fibre Channel para interactuar con el resto de un sistema informático. Desde que los SSD estuvieron disponibles en los mercados masivos, SATA se ha convertido en la forma más típica de conectar SSD en computadoras personales ; sin embargo, SATA fue diseñado principalmente para interactuar con unidades de disco duro mecánicas (HDD), y se volvió cada vez más inadecuado para los SSD, que mejoraron en velocidad con el tiempo. [12] Por ejemplo, dentro de los cinco años de adopción generalizada en el mercado masivo (2005-2010) muchos SSD ya estaban frenados por las velocidades de datos comparativamente lentas disponibles para los discos duros; a diferencia de las unidades de disco duro, algunos SSD están limitados por el rendimiento máximo de SATA.
Los primeros detalles de un nuevo estándar para acceder a la memoria no volátil surgieron en el Intel Developer Forum 2007, cuando se mostró NVMHCI como el protocolo del lado del host de un diseño arquitectónico propuesto que tenía al Open NAND Flash Interface Working Group (ONFI) en el lado de los chips de memoria (flash). [17] Ese año se formó un grupo de trabajo NVMHCI dirigido por Intel. La especificación NVMHCI 1.0 se completó en abril de 2008 y se publicó en el sitio web de Intel. [18] [19] [20]
El trabajo técnico sobre NVMe comenzó en la segunda mitad de 2009. [21] Las especificaciones de NVMe fueron desarrolladas por el grupo de trabajo NVM Express, que consta de más de 90 empresas; Amber Huffman de Intel fue la presidenta del grupo de trabajo. La versión 1.0 de la especificación se publicó el 1 de marzo de 2011, [22] mientras que la versión 1.1 de la especificación se publicó el 11 de octubre de 2012. [23] Las principales características añadidas en la versión 1.1 son la E/S de múltiples rutas (con uso compartido de espacios de nombres) y la E/S de dispersión-recolección de longitud arbitraria . Se espera que las futuras revisiones mejoren significativamente la gestión de espacios de nombres. [21] Debido a su enfoque en las características, NVMe 1.1 se llamó inicialmente "Enterprise NVMHCI". [24] En enero de 2013 se publicó una actualización de la especificación NVMe básica, denominada versión 1.0e. [25] En junio de 2011, se formó un grupo promotor dirigido por siete empresas.
Los primeros chipsets NVMe disponibles comercialmente fueron lanzados por Integrated Device Technology (89HF16P04AG3 y 89HF32P08AG3) en agosto de 2012. [26] [27] La primera unidad NVMe, la unidad empresarial XS1715 de Samsung , se anunció en julio de 2013; según Samsung, esta unidad admitía velocidades de lectura de 3 GB/s, seis veces más rápida que sus ofertas empresariales anteriores. [28] La familia de controladores LSI SandForce SF3700, lanzada en noviembre de 2013, también admite NVMe. [29] [30] Un producto "prosumer" Kingston HyperX que utiliza este controlador se exhibió en el Consumer Electronics Show 2014 y prometió un rendimiento similar. [31] [32] En junio de 2014, Intel anunció sus primeros productos NVM Express, la familia de unidades SSD para centros de datos Intel que interactúa con el host a través del bus PCI Express, que incluye las series DC P3700, DC P3600 y DC P3500. [33] A partir de noviembre de 2014 , las unidades NVMe están disponibles comercialmente.[actualizar]
En marzo de 2014, el grupo se incorporó para convertirse en NVM Express, Inc., que a partir de noviembre de 2014 [actualizar]consta de más de 65 empresas de toda la industria. Las especificaciones de NVM Express son propiedad de NVM Express, Inc. y se encarga de su mantenimiento, lo que también promueve el conocimiento de la industria de NVM Express como un estándar de toda la industria. NVM Express, Inc. está dirigida por una junta directiva de trece miembros seleccionados del Grupo Promotor, que incluye a Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk y Seagate. [34]
En septiembre de 2016, la Asociación CompactFlash anunció que lanzaría una nueva especificación de tarjeta de memoria, CFexpress , que utiliza NVMe. [ cita requerida ]
La característica NVMe Host Memory Buffer (HMB) se agregó en la versión 1.2 de la especificación NVMe. [35] HMB permite que los SSD utilicen la DRAM del host , lo que puede mejorar el rendimiento de E/S para SSD sin DRAM. [36] Por ejemplo, HMB se puede usar para almacenar en caché la tabla FTL por el controlador SSD, lo que puede mejorar el rendimiento de E/S. [37] NVMe 2.0 agregó la característica opcional Zoned Namespaces (ZNS) y la característica Key-Value (KV), y soporte para medios rotativos como discos duros. ZNS y KV permiten que los datos se asignen directamente a su ubicación física en la memoria flash para acceder directamente a los datos en un SSD. [38] ZNS y KV también pueden disminuir la amplificación de escritura de los medios flash.
Factores de forma
Hay muchos factores de forma de unidad de estado sólido NVMe, como AIC, U.2, U.3, M.2, etc.
AIC (tarjeta complementaria)
Casi todas las primeras unidades de estado sólido NVMe son AIC HHHL (altura media, longitud media) o FHHL (altura completa, longitud media), con una interfaz PCIe 2.0 o 3.0. Una tarjeta de unidad de estado sólido NVMe HHHL es fácil de insertar en una ranura PCIe de un servidor.
U.2 (SFF-8639)
U.2, anteriormente conocida como SFF-8639 , es una interfaz de computadora para conectar unidades de estado sólido a una computadora. Utiliza hasta cuatro carriles PCI Express. Los servidores disponibles pueden combinar hasta 48 unidades de estado sólido NVMe U.2. [39]
U.3 (SFF-8639 o SFF-TA-1001)
U.3 se basa en la especificación U.2 y utiliza el mismo conector SFF-8639. Es un estándar de "tres modos", que combina compatibilidad con SAS, SATA y NVMe en un único controlador. U.3 también puede admitir el intercambio en caliente entre las diferentes unidades cuando el soporte de firmware está disponible. Las unidades U.3 siguen siendo compatibles con versiones anteriores de U.2, pero las unidades U.2 no son compatibles con los hosts U.3.
M.2
M.2, anteriormente conocido como Next Generation Form Factor ( NGFF ), utiliza un bus informático de unidad de estado sólido M.2 NVMe . Las interfaces proporcionadas a través del conector M.2 son PCI Express 3.0 o superior (hasta cuatro carriles ).
El estándar para NVMe over Fabrics fue publicado por NVM Express, Inc. en 2016. [45] [46]
El siguiente software implementa el protocolo NVMe-oF:
Iniciador y destino NVMe-oF de Linux . [47] El transporte RoCE fue admitido inicialmente y, con el kernel de Linux 5.x, se agregó soporte nativo para TCP. [48]
Controladores de iniciadores y destinos NVMe-oF del Storage Performance Development Kit (SPDK). [49] Se admiten tanto los transportes RoCE como TCP. [50] [51]
El firewall de almacenamiento inteligente Bloombase StoreSafe admite NVMe sobre RoCE , TCP y Fibre Channel para una protección de seguridad de almacenamiento transparente.
Comparación con AHCI
La interfaz avanzada de controlador de host (AHCI) tiene la ventaja de una amplia compatibilidad de software, pero tiene la desventaja de no ofrecer un rendimiento óptimo cuando se utiliza con unidades SSD conectadas a través del bus PCI Express . Como interfaz de dispositivo lógico, la AHCI se desarrolló cuando el propósito de un adaptador de bus de host (HBA) en un sistema era conectar el subsistema de CPU/memoria con un subsistema de almacenamiento mucho más lento basado en medios magnéticos giratorios . Como resultado, la AHCI introduce ciertas ineficiencias cuando se utiliza con dispositivos SSD, que se comportan mucho más como RAM que como medios giratorios. [7]
La interfaz del dispositivo NVMe ha sido diseñada desde cero, aprovechando la latencia más baja y el paralelismo de los SSD PCI Express, y complementando el paralelismo de las CPU, plataformas y aplicaciones contemporáneas. En un nivel alto, las ventajas básicas de NVMe sobre AHCI se relacionan con su capacidad para explotar el paralelismo en el hardware y software del host, manifestado por las diferencias en las profundidades de la cola de comandos , la eficiencia del procesamiento de interrupciones , la cantidad de accesos a registros no almacenables en caché , etc., lo que resulta en varias mejoras de rendimiento. [7] [56] : 17–18
La siguiente tabla resume las diferencias de alto nivel entre las interfaces de dispositivos lógicos NVMe y AHCI.
Intel patrocinó un controlador NVM Express para las ramas principal y estable/9 de FreeBSD . [62] [63] Los controladores nvd(4) y nvme(4) están incluidos en la configuración del kernel GENÉRICO de manera predeterminada desde la versión 10.2 de FreeBSD en 2015. [64]
illumos recibió soporte para NVMe el 15 de octubre de 2014. [68]
iOS
Con el lanzamiento del iPhone 6S y 6S Plus , Apple presentó la primera implementación móvil de NVMe sobre PCIe en teléfonos inteligentes. [69] Apple siguió estos lanzamientos con el lanzamiento del iPad Pro de primera generación y el iPhone SE de primera generación que también usan NVMe sobre PCIe. [70]
Intel publicó un controlador NVM Express para Linux el 3 de marzo de 2011, [71] [72] [73] que se fusionó con la línea principal del kernel de Linux el 18 de enero de 2012 y se lanzó como parte de la versión 3.3 del kernel de Linux el 19 de marzo de 2012. [74] El kernel de Linux admite NVMe Host Memory Buffer [75] desde la versión 4.13.1 [76] con un tamaño máximo predeterminado de 128 MB. [77] El kernel de Linux admite espacios de nombres con zonas NVMe a partir de la versión 5.9.
Apple introdujo soporte de software para NVM Express en Yosemite 10.10.3. La interfaz de hardware NVMe se introdujo en la MacBook y MacBook Pro de 2016. [78]
El trabajo de desarrollo necesario para soportar NVMe en OpenBSD comenzó en abril de 2014 por un desarrollador senior anteriormente responsable de la compatibilidad con USB 2.0 y AHCI . [80] La compatibilidad con NVMe se ha habilitado en la versión OpenBSD 6.0. [81]
Arca Noae proporciona un controlador NVMe para ArcaOS a partir de abril de 2021. El controlador requiere interrupciones avanzadas como las que proporciona el PSD ACPI que se ejecuta en modo de interrupción avanzada (modo 2), por lo que también requiere el kernel SMP. [82]
Intel ha proporcionado un controlador NVMe para VMware , [84] que está incluido en vSphere 6.0 y versiones posteriores, y es compatible con varios dispositivos NVMe. [85] A partir de la actualización 1 de vSphere 6, el subsistema de almacenamiento definido por software VSAN de VMware también es compatible con dispositivos NVMe. [86]
Microsoft agregó soporte nativo para NVMe a Windows 8.1 y Windows Server 2012 R2 . [56] [87] Se agregaron controladores nativos para Windows 7 y Windows Server 2008 R2 en actualizaciones. [88] Muchos proveedores también lanzaron sus propios controladores de Windows para sus dispositivos. También hay archivos de instalación personalizados manualmente disponibles para instalar el controlador de un proveedor específico en cualquier tarjeta NVMe, como usar un controlador NVMe de Samsung con un dispositivo NVMe que no sea de Samsung, que puede ser necesario para funciones adicionales, rendimiento y estabilidad. [89]
La compatibilidad con NVMe HMB se agregó en Windows 10 Anniversary Update (versión 1607) en 2016. [35] En Microsoft Windows desde Windows 10 1607 hasta Windows 11 23H2 , el tamaño máximo de HMB es de 64 MB. Windows 11 24H2 actualiza el tamaño máximo de HMB a 1/64 de la RAM del sistema. [90]
La compatibilidad con NVMe ZNS y KV se agregó en Windows 10 versión 21H2 y Windows 11 en 2021. [91] OpenFabrics Alliance mantiene un controlador NVMe de Windows de código abierto para Windows 7/8/8.1 y Windows Server 2008R2/2012/2012R2, desarrollado a partir del código base enviado por varias empresas promotoras en el grupo de trabajo NVMe, específicamente IDT, Intel y LSI. [92] La versión actual es la 1.5 de diciembre de 2016. [93]
Soporte de software
UEMQ
QEMU admite NVMe desde la versión 1.6 publicada el 15 de agosto de 2013. [94] Los dispositivos NVMe presentados a los invitados de QEMU pueden ser reales o emulados.
UEFI
Un controlador NVMe de código abierto para UEFI está disponible en SourceForge. [95]
Herramientas de gestión
control nvme
La nvmecontrolherramienta se utiliza para controlar un disco NVMe desde la línea de comandos en FreeBSD. Se agregó en FreeBSD 9.2. [96]
nvme-cli
Herramientas de espacio de usuario NVM-Express para Linux. [97]
^ ab "Especificación básica de NVM Express®, revisión 2.1" (PDF) . nvmexpress.org . NVM Express, Inc. 5 de agosto de 2024 . Consultado el 10 de agosto de 2024 .
^ "NVM Express". NVM Express, Inc. Recuperado el 24 de enero de 2017. NVMe está diseñado desde cero para ofrecer acceso a almacenamiento de baja latencia y gran ancho de banda para las tecnologías NVM actuales y futuras.
^ Tallis, Billy (14 de junio de 2019). "Publicada la especificación NVMe 1.4: optimización adicional del rendimiento y la confiabilidad". AnandTech . Archivado desde el original el 27 de enero de 2021.
^ Drew Riley (13 de agosto de 2014). "Revisión de Intel SSD DC P3700 de 800 GB y 1,6 TB: el futuro del almacenamiento". Tom's Hardware . Consultado el 21 de noviembre de 2014 .
^ "Unidad de estado sólido Intel serie DC P3600" (PDF) . Intel . 2015. págs. 18, 20–22. Archivado desde el original (PDF) el 28 de octubre de 2015 . Consultado el 11 de abril de 2015 .
^ Paul Alcorn (5 de junio de 2015). "SFFWG cambia el nombre del conector PCIe SSD SFF-8639 a U.2". Tom's Hardware . Consultado el 9 de junio de 2015 .
^ abcd Dave Landsman (9 de agosto de 2013). "AHCI y NVMe como interfaces para dispositivos SATA Express: descripción general" (PDF) . SATA-IO . Consultado el 2 de octubre de 2013 .
^ Paul Wassenberg (25 de junio de 2013). «SATA Express: PCIe Client Storage» (PDF) . SATA-IO . Archivado desde el original (PDF) el 4 de octubre de 2013. Consultado el 21 de noviembre de 2014 .
^ Especificaciones NVMe
^ "NVM Express anuncia la biblioteca de especificaciones NVMe 2.0 rediseñada" (nota de prensa). Beaverton, Oregon, EE. UU.: NVM Express, Inc. 3 de junio de 2021. Consultado el 31 de marzo de 2024 .
^ "Especificación básica de NVM Express 2.0d" (PDF) . nvmexpress.org . NVM Express, Inc. 11 de enero de 2024 . Consultado el 26 de marzo de 2024 .
^ Walker, Don H. "Una comparación de NVMe y AHCI" (PDF) . 31 de julio de 2012. SATA-IO. Archivado desde el original (PDF) el 12 de febrero de 2019. Consultado el 3 de julio de 2013 .
^ "Análisis del SSD PCIe ASUS ROG RAIDR Express de 240 GB". 6 de diciembre de 2013.
^ "Explicación de NVM Express" (PDF) . nvmexpress.org . 9 de abril de 2014 . Consultado el 21 de marzo de 2015 .
^ "Uso de los sistemas Sierra de LC". hpc.llnl.gov . Consultado el 25 de junio de 2020 .
^ "Guía del usuario de SummitDev". olcf.ornl.gov . Archivado desde el original el 2020-08-06 . Consultado el 2020-06-25 .
^ "Acelerando Flash... en un instante". The Inquirer. 13 de octubre de 2007. Archivado desde el original el 18 de septiembre de 2009. Consultado el 11 de enero de 2014 .
^ "Extending the NVMHCI Standard to Enterprise" (PDF) . Santa Clara, CA, EE. UU.: Flash Memory Summit. Agosto de 2009. Archivado desde el original (PDF) el 17 de junio de 2017.
^ "Flash new standard tips up". The Inquirer. 16 de abril de 2008. Archivado desde el original el 11 de enero de 2014. Consultado el 11 de enero de 2014 .
^ Amber Huffman (agosto de 2008). "NVMHCI: La interfaz optimizada para cachés y SSD" (PDF) . Santa Clara, CA, EE. UU.: Flash Memory Summit.
^ por Peter Onufryk (2013). "Novedades en NVMe 1.1 y direcciones futuras" (PDF) . Santa Clara, CA, EE. UU.: Flash Memory Summit.
^ "Nuevo grupo promotor formado para impulsar NVM Express" (PDF) . Nota de prensa . 1 de junio de 2011 . Consultado el 18 de septiembre de 2013 .
^ Amber Huffman, ed. (11 de octubre de 2012). «NVM Express Revision 1.1» (PDF) . Especificación . Consultado el 18 de septiembre de 2013 .
^ David A. Deming (8 de junio de 2013). «Almacenamiento basado en PCIe» (PDF) . snia.org . Archivado desde el original (PDF) el 20 de septiembre de 2013 . Consultado el 12 de enero de 2014 .
^ Amber Huffman, ed. (23 de enero de 2013). «NVM Express Revision 1.0e» (PDF) . Especificación . Consultado el 18 de septiembre de 2013 .
^ "IDT lanza dos controladores SSD NVMe PCI-Express". The Inquirer. 21 de agosto de 2012. Archivado desde el original el 24 de agosto de 2012. Consultado el 11 de enero de 2014 .
^ "IDT muestra el primer procesador SSD PCIe NVMe y el diseño de referencia - Actualización de FMS 2012". The SSD Review. 24 de agosto de 2012. Consultado el 11 de enero de 2014 .
^ "Samsung anuncia el primer SSD NVMe de 2,5 pulgadas de la industria | StorageReview.com - Reseñas de almacenamiento". StorageReview.com . 2013-07-18. Archivado desde el original el 2014-01-10 . Consultado el 2014-01-11 .
^ "LSI SF3700 SandForce Flash Controller Line Unveiled | StorageReview.com - Storage Reviews". StorageReview.com . 2013-11-18. Archivado desde el original el 2014-01-11 . Consultado el 2014-01-11 .
^ "LSI presenta el controlador SSD ultrarrápido de la serie SF3700, compatible con PCIe y SATA 6 Gbps". hothardware.com . Archivado desde el original el 5 de marzo de 2016 . Consultado el 21 de marzo de 2015 .
^ Jane McEntegart (7 de enero de 2014). "Kingston presenta el primer SSD PCIe: velocidades de lectura de 1800 MB/s". Tom's Hardware . Consultado el 21 de marzo de 2015 .
^ "Kingston HyperX Predator PCI Express SSD presentado con controlador flash PCIe LSI SandForce SF3700". hothardware.com . Archivado desde el original el 28 de mayo de 2016 . Consultado el 21 de marzo de 2015 .
^ "Familia de unidades de estado sólido Intel® para centros de datos PCIe*". Intel . Consultado el 21 de marzo de 2015 .
^ "Historial de la organización de NVM Express". NVM Express . Archivado desde el original el 23 de noviembre de 2015. Consultado el 23 de diciembre de 2015 .
^ ab Tallis, Billy (14 de junio de 2018). "Revisión del SSD RC100 de Toshiba: una unidad pequeña en un mercado grande". AnandTech . Consultado el 30 de marzo de 2024 .
^ Kim, Kyusik; Kim, Taeseok (2020). "HMB en SSD NVMe sin DRAM: su uso y efectos en el rendimiento". PLOS ONE . 15 (3): e0229645. Código Bibliográfico :2020PLoSO..1529645K. doi : 10.1371/journal.pone.0229645 . PMC 7051071 . PMID 32119705.
^ Kim, Kyusik; Kim, Seongmin; Kim, Taeseok (24 de junio de 2020). "HMB-I/O: vía rápida para gestionar E/S urgentes en unidades de estado sólido con memoria no volátil Express". Applied Sciences . 10 (12): 4341. doi : 10.3390/app10124341 . ISSN 2076-3417.
^ "NVMe se refactoriza". 30 de junio de 2021.
^ "Servidores NVME All-Flash para informática avanzada Supermicro". Supermicro . Consultado el 22 de julio de 2022 .
^ ab "Estándar NVMe over Fibre Channel (NVMe over FC) o FC-NVMe". Tech Target . 1 de enero de 2018 . Consultado el 26 de mayo de 2021 .
^ "FC-NVMe rev 1.14 (T11/16-020vB)" (PDF) . INCITS . 19 de abril de 2017 . Consultado el 26 de mayo de 2021 .
^ "Especificación NVMe-oF". NVMexpress . 15 de abril de 2020 . Consultado el 26 de mayo de 2021 .
^ "Suplemento a la especificación de arquitectura InfiniBandTM Volumen 1 Versión 1.2.1". Infiniband . 2 de septiembre de 2014. Archivado desde el original el 9 de marzo de 2016 . Consultado el 26 de mayo de 2021 .
^ "¿Qué es NVMe-oF?". Revisión de almacenamiento . 27 de junio de 2020. Consultado el 26 de mayo de 2021 .
^ "NVM Express over Fabrics Revisión 1.0" (PDF) . NVM Express, Inc. 5 de junio de 2016.
^ Woolf, David (9 de febrero de 2018). "Qué significa NVMe over Fabrics para el almacenamiento de datos".
^ Hellwig, Christoph (17 de julio de 2016). "Compatibilidad con NVMe Over Fabrics en Linux" (PDF) .
^ Petros Koutoupis (10 de junio de 2019). "Datos en un instante, parte III: NVMe sobre estructuras con TCP". Linux Journal . Consultado el 26 de mayo de 2021 .
^ Stern, Jonathan (7 de junio de 2016). "Anuncio del objetivo SPDK NVMf".
^ "Informe de rendimiento de SPDKNVMe-oFRDMA (objetivo e iniciador)" (PDF) . SPDK . 1 de febrero de 2021 . Consultado el 26 de mayo de 2021 .
^ "Informe de rendimiento de SPDKNVMe-oFTCP (objetivo e iniciador)" (PDF) . SPDK . 1 de febrero de 2020 . Consultado el 26 de mayo de 2021 .
^ "Práctica con StarWind NVMe-oF Initiator para Windows". StorageReview . 6 de octubre de 2021 . Consultado el 6 de octubre de 2021 .
^ "StarWind SAN & NAS over Fibre Channel". StorageReview . 20 de julio de 2022 . Consultado el 20 de julio de 2022 .
^ "Intel planea un gran impulso para el almacenamiento NVMe/TCP de Lightbits". Blocks & Files . 9 de junio de 2022 . Consultado el 9 de junio de 2022 .
^ "LightBits Super SSD incorpora NVMe a Ethernet estándar". ComputerWeekly . 29 de abril de 2021 . Consultado el 29 de abril de 2021 .
^ de Andy Herron (2013). "Avances en sistemas de almacenamiento y archivos en Windows 8.1" (PDF) . snia.org . Archivado desde el original (PDF) el 2014-01-10 . Consultado el 2014-01-11 .
^ Amber Huffman (9 de marzo de 2020). "NVM Express Base Specification Revision 1.4a" (PDF) . Especificación . Sección 1.4 Teoría de funcionamiento, pág. 7. Consultado el 16 de mayo de 2020 .
^ Werner Fischer; Georg Schönberger (1 de junio de 2015). "Diagrama de pila de almacenamiento de Linux". Thomas-Krenn.AG . Consultado el 8 de junio de 2015 .
^ "ChromeOS agrega soporte de arranque para NVM Express". NVM Express . 24 de febrero de 2015 . Consultado el 21 de marzo de 2015 .
^ Akers, Jason B. (22 de enero de 2015). «4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge». Git en Google . Consultado el 21 de marzo de 2015 .
^ "release46". DragonFly BSD . Consultado el 8 de septiembre de 2016 .
^ "Registro de /head/sys/dev/nvme". Árbol de fuentes de FreeBSD . El proyecto FreeBSD . Consultado el 16 de octubre de 2012 .
^ "Registro de /stable/9/sys/dev/nvme". Árbol de fuentes de FreeBSD . El proyecto FreeBSD . Consultado el 3 de julio de 2013 .
^ "Notas de la versión de FreeBSD 10.2-RELEASE". The FreeBSD Project . Consultado el 5 de agosto de 2015 .
^ "Notas de la versión de Genode OS Framework 18.05". genode.org .
^ "Compatibilidad con dispositivos NVMe #9910". dev.haiku-os.org . Consultado el 18 de abril de 2019 .
^ "El controlador NVMe ya está disponible - Proyecto Haiku" www.haiku-os.org . Consultado el 28 de julio de 2016 .
^ "4053 Agregar compatibilidad con controlador NVME a Illumos". github.com . Consultado el 23 de mayo de 2016 .
^ Ho, Joshua (28 de septiembre de 2015). «Resultados preliminares del iPhone 6s y iPhone 6s Plus». AnandTech . Consultado el 1 de junio de 2016 .
^ Chester, Brandon (16 de mayo de 2016). "Revisión del iPhone SE". AnandTech .
^ Matthew Wilcox (3 de marzo de 2011). «Controlador NVM Express». LWN.net . Archivado desde el original el 17 de julio de 2012. Consultado el 5 de noviembre de 2013 .
^ Keith Busch (12 de agosto de 2013). "Linux NVMe Driver" (PDF) . flashmemorysummit.com . Consultado el 5 de noviembre de 2013 .
^ "Laboratorio práctico IDF13: compilación del controlador de código abierto NVM Express Linux y evaluaciones comparativas y optimizaciones SSD Linux" (PDF) . activeevents.com . 2013. Archivado desde el original (PDF) el 2014-01-11 . Consultado el 2014-01-11 .
^ Kim, K.; Kim, T. (2020). "HMB en SSD NVMe sin DRAM: su uso y efectos en el rendimiento". PLOS ONE . 15 (3): e0229645. Bibcode :2020PLoSO..1529645K. doi : 10.1371/journal.pone.0229645 . PMC 7051071 . PMID 32119705.
^ "Linux 4.13 se lanzó el domingo 3 de septiembre de 2017".
^ "Pci.c « host « nvme « controladores - kernel/Git/Stable/Linux.git - Árbol estable del kernel de Linux".
^ "La interfaz SSD 'NVM Express' más rápida llega a los MacBook Retina y OS X 10.10.3". macrumors.com . 11 de abril de 2015 . Consultado el 11 de abril de 2015 .
^ "nvme - Interfaz de controlador de host de memoria no volátil". Páginas del manual de NetBSD . 2021-05-16 . Consultado el 2021-05-16 .
^ David Gwynne (16 de abril de 2014). "controlador express de memoria no volátil (/sys/dev/ic/nvme.c)". Referencia cruzada de BSD . Consultado el 27 de abril de 2014 .
^ David Gwynne (14 de abril de 2016). "man 4 nvme". Página del manual de OpenBSD. Consultado el 7 de agosto de 2016 .
^ "NVME". Wiki Arca Noae . Arca Noae, LLC. 2021-04-03 . Consultado el 8 de junio de 2021 .
^ "nvme(7D)". Oracle . Consultado el 2 de diciembre de 2014 .
^ "Controladores de estado sólido Intel para NVMe". intel.com . 25 de septiembre de 2015 . Consultado el 17 de marzo de 2016 .
^ "Guía de compatibilidad de VMware para dispositivos NVMe". vmware.com . Consultado el 17 de marzo de 2016 .
^ "VSAN ahora es compatible con dispositivos NVMe". vmware.com . 2015-11-11 . Consultado el 2016-03-17 .
^ "Windows 8.1 admitirá discos híbridos y agregará un controlador NVMe nativo". Myce.com . 2013-09-06 . Consultado el 2014-01-11 .
^ "Actualización para admitir NVM Express mediante el uso de controladores nativos en Windows 7 o Windows Server 2008 R2". Microsoft. 13 de noviembre de 2014. Consultado el 17 de noviembre de 2014 .
^ "Controladores AHCI/RAID y NVMe recomendados". 10 de mayo de 2013. Archivado desde el original el 24 de febrero de 2021. Consultado el 19 de febrero de 2021 .
^ lorihollasch (9 de agosto de 2023). "Compatibilidad con funciones NVMe y capacidades extendidas: controladores de Windows". learn.microsoft.com . Consultado el 11 de abril de 2024 .
^ "Windows NVM Express". Sitio web del proyecto . Archivado desde el original el 12 de junio de 2013. Consultado el 18 de septiembre de 2013 .
^ "Nvmewin - Revisión 157: /Lanzamientos". Archivado desde el original el 10 de mayo de 2017. Consultado el 13 de agosto de 2016 .
^ "ChangeLog/1.6". qemu.org . Consultado el 21 de marzo de 2015 .
^ "Descargar EDK II desde". SourceForge.net . Consultado el 11 de enero de 2014 .
^ "Utilidad de control de NVM Express". El proyecto FreeBSD. 2018-03-12 . Consultado el 2019-07-12 .
^ "GitHub - linux-nvme/nvme-cli: Interfaz de línea de comandos de administración de NVMe". linux-nvme. 2019-03-26 . Consultado el 2019-03-27 .
Enlaces externos
Wikimedia Commons tiene medios relacionados con NVM Express .
Sitio web oficial
Asociación CompactFlash
LFCS: Preparación de Linux para dispositivos de memoria no volátil, LWN.net , 19 de abril de 2013, por Jonathan Corbet
Almacenamiento PCI Express con múltiples rutas, Linux Foundation , 12 de marzo de 2015, por Keith Busch
NVMe, NVMe-oF y RDMA para ingenieros de redes, agosto de 2020, por Jerome Tissieres