NVM Express

Ir a: navegación, búsqueda de
Grupo de trabajo de no volátil memoria Host Controller Interface
NVM Express logo.gif
Abreviatura NVMe
Formación 2011
Sitio web www.nvmexpress.org

NVM Express, NVMe, o Memoria no volátil Host Controller Interface Specification (NVMHCI), es un Especificación para acceder a unidades de estado sólido (SSD) conexión a través de la PCI Express Bus (PCIe). "NVM" se erige como un acrónimo memoria no volátil, que se utiliza en SSDs. Como una interfaz de dispositivo lógico, NVM Express ha sido diseñado desde cero, aprovechando la baja latencia y paralelismo de PCI Express SSDs y cumpliendo con el paralelismo del contemporáneo CPUs, plataformas y aplicaciones. Al permitir que los niveles de paralelismo ofrecidos por SSDs siendo plenamente utilizados por hardware y software del host, NVM Express trae varias mejoras de rendimiento.

NVM Express SSDs existen tanto en forma de tamaño estándar PCI Express tarjetas de expansión[1] y en cuanto SATA Express dispositivos de almacenamiento. M.2 Especificación para las tarjetas de expansión del ordenador montado internamente también soporta NVM Express como la interfaz de dispositivo lógico.[2][3]

Contenido

  • 1 Fondo
  • 2 Historia
  • 3 Comparación con AHCI
  • 4 Soporte de sistema operativo
  • 5 Referencias
  • 6 Enlaces externos

Fondo

Históricamente, la mayoría SSDs usados autobuses tales como SATA, SAS o Fibre Channel para conectarse con el resto de un sistema informático. Puesto que los SSDs estuvo disponibles en mercados masivos, SATA ha sido la forma más típica para la conexión de las SSD en computadoras personales; Sin embargo, SATA fue diseñada para mecánico unidades de disco duroy se ha vuelto cada vez más inadecuada como SSDs han mejorado.[4] Por ejemplo, a diferencia de unidades de disco duro, un SSD están limitadas por el máximo rendimiento de procesamiento de SATA.

SSD de gama alta se han hecho usando el bus PCI Express antes, pero utilizando interfaces no estándar de especificación. Al estandarizar la interfaz de los SSD, sistemas operativos Sólo necesita un conductor para trabajar con todas las SSD adhiriéndose a la especificación. También significa que cada fabricante SSD no tiene que utilizar recursos adicionales para diseñar controladores de la interfaz específica. Esto es similar a cómo Almacenamiento masivo USB los dispositivos están construidos para seguir el USB Especificación de clase de dispositivo de almacenamiento masivo y trabajar con todos los equipos, con ningún controlador de cada dispositivo necesitado.[5]

Historia

Los primeros detalles de un nuevo estándar para acceder a la memoria no volátil emergieron en el Intel Developer Forum de 2007, cuando fue demostrado NVMHCI como el protocolo de lado del host de un diseño arquitectónico propuesto que tenía ONFI en el lado de chips de memoria (flash).[6] Ese mismo año se formó un grupo de trabajo de NVMHCI liderado por Intel. La especificación NVMHCI 1.0 fue terminada en abril de 2008 y publicada en el sitio web de Intel.[7][8][9]

Trabajo técnico sobre NVMe comenzó en la segunda mitad de 2009.[10] Las especificaciones de NVMe fueron desarrolladas por el grupo Express NVM, que consta de más de 90 empresas; Amber Huffman de Intel fue Presidente del grupo de trabajo. La versión 1.0 de la especificación fue lanzada el 01 de marzo de 2011,[11] mientras que la versión 1.1 de la especificación fue publicado el 11 de octubre de 2012.[12] Principales características añadidas en la versión 1.1 son Multi-path I/O (con compartir el espacio de nombres) y longitud arbitraria dispersión ENTRADA-SALIDA. Se espera que futuras revisiones mejorará significativamente la administración de namespace.[10] Debido a su enfoque de la función, NVMe 1.1 inicialmente fue llamado "Empresa NVMHCI".[13] Una actualización de la especificación NVMe base, llamada versión controlador 1.0e, fue lanzada en enero de 2013.[14]En junio de 2011, se formó un grupo promotor liderado por siete compañías.

Los primeros chipsets NVMe comercialmente disponibles fueron lanzados por Integrated Device Technology (89HF16P04AG3 y 89HF32P08AG3) en agosto de 2012.[15][16] La primera unidad de NVMe, Samsungde XS1715 coche de empresa, fue anunciado en julio de 2013; Según Samsung, esta unidad apoyó a 3 GB/s lectura velocidades, seis veces más rápido que su anterior oferta de empresa.[17] El LSI SandForce Familia de controladores SF3700, lanzado en noviembre de 2013, también es compatible con NVMe.[18] Ingeniería muestra tablas con el PCI Express 2.0 × 4 modelo de este regulador encontró velocidades secuencial de lectura/escritura 1.800 MB/seg y 150K / 80K al azar IOPS.[19] Un Kingston HyperX "prosumer"el producto que utiliza este controlador se lució en el Consumer Electronics Show 2014 y prometió un rendimiento similar.[20][21] En junio de 2014, Intel anunció sus primeros productos NVM Express, los datos de Intel SSD centro familiar interfaces con el anfitrión a través de bus PCI Express, que incluye la serie DC P3700, la serie de DC P3600 y la serie de DC P3500.[22] A partir de noviembre de 2014, NVMe unidades están comercialmente disponibles.

En marzo de 2014, el grupo incorporó a convertirse en NVM Express, Inc., que a partir de noviembre de 2014 consta de más de 65 empresas de toda la industria. NVM Express se constituyó como una asociación de la industria para definir un nuevo protocolo de interfaz de almacenamiento, NVM Express, para permitir el pleno rendimiento potencial proporcionado por la tecnología de almacenamiento basada en memoria no volátil. Especificaciones NVM Express son propiedad y mantenidas por NVM Express, Inc., que también promueve el conocimiento de la industria de NVM Express como un estándar de toda la industria. El NVM Express, Inc. está dirigida por una junta de trece miembros de directores seleccionados por el grupo promotor, que incluye Avago Technologies, Cisco, Dell, EMC, HGST, Intel, Micron, NetApp, Oracle, PMC, Samsung, SanDisk y Seagate.[citación necesitada]

Comparación con AHCI

Tiempo Interfaz de controlador Host avanzada Interfaz (AHCI) tiene la ventaja de compatibilidad de software legado, no ofrecen un rendimiento óptimo cuando un SSD se conecta a través PCI Express autobús. Esto es porque AHCI fue desarrollado en el tiempo cuando el propósito de un adaptador de bus host (HBA) en un sistema era para conectar el subsistema de memoria/CPU con un tanto más lento subsistema de almacenamiento basado en rotación medios magnéticos. Tal interfaz tiene algunas ineficiencias inherentes cuando se aplica a dispositivos SSD, que se comportan más como DRAM que como medios de giro.[2]

NVMe ha sido diseñado desde cero, aprovechando la baja latencia y paralelismo PCI Express SSDs, y cumpliendo con el paralelismo del contemporáneo CPUs, plataformas y aplicaciones. En un nivel alto, las ventajas básicas de NVMe sobre AHCI se refieren a su capacidad para explotar paralelismo en host hardware y software, manifestada por diferencias en la profundidad de colas de comandos, interrupciones procesamiento, la cantidad de caché registro accesos etc., dando como resultado varias mejoras de rendimiento.[2][23]:: p. 17 – 18

La siguiente tabla resume las diferencias de alto nivel entre las interfaces de dispositivo básicas NVMe y AHCI.

Comparación de alto nivel de AHCI y NVMe [2]
 AHCI NVMe
Profundidad máxima de la cola cola 1 mando;
32 comandos por cola
65536 filas;
65536 comandos por cola
Registro caché accesos
(2000 ciclos cada)
6 por comando no en cola;
9 por comando cola
2 por comando
MSI-X
y la dirección de interrupción
sola interrupción;
No manejo
MSI-X 2048 interrumpe
Paralelismo
y varios subprocesos
requiere bloqueo de sincronización
ejecutar un comando
sin bloqueo
Eficiencia
para comandos de 4 KB
parámetros de comandos requieren
dos host serializada DRAM recupera
Obtiene los parámetros de comando
en una recuperación de 64 Bytes

Soporte de sistema operativo

Windows
"NVMe Windows grupo" es una iniciativa de la OpenFabrics Alliance software para mantener Microsoft Windows para utilizar dispositivos de estado sólido de PCI Express. El controlador de Windows base contribuido a la iniciativa de código abierto fue desarrollado por varias compañías de promotor en el grupo de trabajo NVMe, específicamente IDT, Intel y LSI. [24]
Microsoft añade soporte nativo para NVMe a Windows 8.1 y Windows Server 2012 R2. [23] [25] Controlador nativo para Windows 7 y Windows Server 2008 R2 se ha añadido en las actualizaciones. [26]
Linux
Intel publicó un controlador NVM Express para Linux. [27] [28] [29] Fue combinado en el Kernel de Linux principal el 19 de marzo de 2012, con el lanzamiento de la versión 3.3 del kernel de Linux. [30]
Una capa de bloqueo escalable para almacenamiento SSD de alto rendimiento, desarrollada principalmente por Fusion-io los ingenieros, se fusionó con el Linux kernel principal en la versión del kernel 3.13, lanzado el 19 de enero de 2014. Esto aprovecha el rendimiento ofrecido por SSD y NVM Express, permitiendo tasas mucho mayores presentación de I/O. Con este nuevo diseño de la capa de bloque del kernel de Linux, colas internas se dividen en dos niveles (colas por CPU y envío de hardware), por lo tanto eliminar cuellos de botella y permitiendo niveles mucho más altos de paralelización de I/O. Desde la versión 3.18 del kernel de Linux, publicado el 07 de diciembre de 2014, VirtIO conductor del bloque y la SCSI capa (que es utilizada por controladores Serial ATA) han sido modificados para usar esta nueva interfaz; otros conductores serán portadas en las siguientes versiones. [31] [32] [33] [34]
FreeBSD
El controlador Intel NVM Express fue importado a FreeBSDla cabeza y estable/9 sucursales. [35] [36]
QEMU
NVMe es apoyado por QEMU desde la versión 1.6 lanzado el 15 de agosto de 2013. [37]
Solaris
Solaris recibió apoyo para NVMe en Oracle Solaris 11.2. [38]
UEFI
Un controlador de NVMe de código abierto para UEFI está disponible en SourceForge. [39]
OpenBSD
Trabajo de desarrollo necesario para admitir NVMe en OpenBSD se ha iniciado en abril de 2014 por un desarrollador senior anteriormente responsable USB 2.0 y AHCI apoyo. [40]

Referencias

  1. ^ Drew Riley (2014-08-13). "Intel SSD DC P3700 800GB y 1,6 TB revisión: el futuro del almacenamiento". tomshardware.com. 21 / 11 / 2014.
  2. ^ a b c d Dave Landsman. "AHCI y NVMe como Interfaces para dispositivos SATA Express ™ - Resumen" (PDF). SanDisk. 2013-10-02.
  3. ^ Paul Wassenberg (25 / 06 / 2013). "SATA Express: PCIe cliente almacenamiento" (PDF). SATA-IO. 21 / 11 / 2014.
  4. ^ Walker, Don H. "A Comparison of NVMe and AHCI". 31 de julio de 2012. La organización internacional Serial ATA. 3 de julio 2013.
  5. ^ "Explicó NVM Express".
  6. ^ "Acelerar el Flash... en un instante". El Inquirer. 13 / 10 / 2007. 2014-01-11.
  7. ^ https://www.bswd.com/FMS09/FMS09-T2a-Huffman.pdf
  8. ^ "Flash nuevas puntas estándar para arriba". El Inquirer. 2008-04-16. 2014-01-11.
  9. ^ https://www.flashmemorysummit.com/English/collaterals/Proceedings/2008/20080813_T2A_Huffman.pdf
  10. ^ a b https://www.flashmemorysummit.com/English/collaterals/Proceedings/2013/20130813_A12_Onufryk.pdf
  11. ^ "Nuevo grupo promotor formado a Advance NVM Express". Comunicado de prensa. 01 de junio de 2011. 18 de septiembre, 2013.
  12. ^ Amber Huffman editor (11 de octubre de 2012). "NVM expresar revisión 1.1". Especificación. 18 de septiembre, 2013.
  13. ^ David A. Deming (2013-06-08). "Almacenamiento de información basadas en PCIe" (PDF). SNIA.org. 2014-01-12.
  14. ^ Amber Huffman editor (23 de enero de 2013). "NVM expresar revisión controlador 1.0e". Especificación. 18 de septiembre, 2013.
  15. ^ "IDT lanza dos controladores de SSD NVMe PCI-Express". El Inquirer. 21 / 08 / 2012. 2014-01-11.
  16. ^ "IDT muestra el primer procesador de SSD de NVMe PCIe y diseño de referencia - FMS 2012 actualización". La revisión SSD. 24 / 08 / 2012. 2014-01-11.
  17. ^ "Samsung anuncia primera 2,5 pulgadas NVMe SSD la industria | StorageReview.com - almacenamiento comentarios". StorageReview.com. 2013-07-18. 2014-01-11.
  18. ^ "SF3700 LSI SandForce Flash controlador línea reveló | StorageReview.com - almacenamiento comentarios". StorageReview.com. 2013-11-18. 2014-01-11.
  19. ^ LSI introduce ardiente regulador rápido SF3700 serie SSD, compatible con ambos PCIe y SATA 6Gbps
  20. ^ Kingston presenta primer SSD de PCIe: 1800 MB/s leer velocidades
  21. ^ Kingston HyperX depredador PCI Express SSD dio a conocer con el controlador LSI SandForce SF3700 PCIe Flash
  22. ^ [1]
  23. ^ a b Andy Herron (2013). "Los avances en sistemas de almacenamiento y archivo en Windows 8,1" (PDF). SNIA.org. 2014-01-11.
  24. ^ "Windows NVM Express". Sitio web del proyecto. 18 de septiembre, 2013.
  25. ^ "Windows 8.1 apoyar híbrido discos y agrega el controlador nativo de NVMe". Myce.com. 2013-09-06. 2014-01-11.
  26. ^ "Actualización para apoyar NVM expresar mediante el uso de los controladores nativos en Windows 7 o Windows Server 2008 R2". Microsoft. 2014-11-13. 17 / 11 / 2014.
  27. ^ Matthew Wilcox (2011-03-03). «Conductor NVM Express». LWN.net. 2013-11-05.
  28. ^ Keith Busch (2013-08-12). "Linux Driver NVMe" (PDF). flashmemorysummit.com. 2013-11-05.
  29. ^ "Hands-on Lab: compilar el NVM Express Driver Linux Open Source y SSD Linux Benchmarks y optimizaciones" (PDF). IDF13. activeevents.com. 2013. 2014-01-11.
  30. ^ "Combinar git://git.infradead.org/users/willy/linux-nvme". kernel.org. 2012-01-18. 2013-11-05.
  31. ^ "Linux kernel 3.13, sección 1.1 A capa de bloque escalable para almacenamiento SSD de alto rendimiento". Kernelnewbies.org. 19 / 01 / 2014. 25 / 01 / 2014.
  32. ^ "Linux kernel 3.18, sección 1.8. Opcional soporte SCSI multiqueue". Kernelnewbies.org. 2014-12-07. 2014-12-18.
  33. ^ Jonathan Corbet (06 / 05/2013). "La capa del bloque multiqueue". LWN.net. 25 / 01 / 2014.
  34. ^ Matias Bjørling; Jens Axboe; David Nellans; Philippe Bonnet (2013). "Linux bloque IO: introducción de acceso a múltiples colas SSD en sistemas multinúcleo" (PDF). kernel.dk. ACM. 25 / 01 / 2014.
  35. ^ "Registro de /head/sys/dev/nvme". Árbol de código fuente de FreeBSD. El proyecto FreeBSD. 16 de octubre 2012.
  36. ^ "Registro de /stable/9/sys/dev/nvme". Árbol de código fuente de FreeBSD. El proyecto FreeBSD. 3 de julio 2013.
  37. ^ ChangeLog/1.6 - QEMU
  38. ^ "nvme(7D)". Oracle. 2014-12-02.
  39. ^ "Descargar EDK II de". SourceForge.net. 2014-01-11.
  40. ^ David Gwynne (2014-04-16). "expreso controlador de memoria no volátil (/ sys/dev/ic/nvme.c)". Referencia cruzada de BSD. 27 / 04 / 2014.

Enlaces externos

  • Página Web oficial del NVM Express
  • PAÍSES: Preparación de Linux para dispositivos de memoria no volátil (LWN.net)

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=NVM_Express&oldid=638655772"