NVM Express® (NVMe®) est une spécification définissant la façon dont le logiciel hôte communique avec la mémoire non volatile à travers un bus PCI Express® (PCIe®). Il s’agit de la norme industrielle pour les disques durs solides PCIe (SSD) dans tous les facteurs de forme (U.2, M.2, AIC, EDSFF). NVM Express est le consortium à but non lucratif des leaders de l’industrie technologique qui définit, gère et commercialise la technologie NVMe. En plus de la spécification de base NVMe, l’organisation héberge d’autres spécifications : NVMe over Fabrics (NVMe-oF™) pour l’utilisation des commandes NVMe sur un fabric en réseau et NVMe Management Interface (NVMe-MI™) pour gérer les SSD NVMe/PCIe dans les serveurs et les systèmes de stockage.
La spécification NVMe a été conçue de A à Z pour les SSD. Il s’agit d’une interface beaucoup plus efficace, offrant une latence plus faible, et plus évolutive pour les SSD que les interfaces héritées, comme l’ATA série (SATA). La première partie de la spécification concerne l’interface de contrôle de l’hôte. L’architecture NVMe apporte un nouveau mécanisme de mise en file d’attente haute performance qui prend en charge 65 535 files d’attente d’E/S contenant chacune 65 535 commandes (appelée profondeur de file d’attente, ou nombre de commandes en attente). Les files d’attente sont mappées sur les cœurs de processeur, ce qui permet d’obtenir des performances évolutives. L’interface NVMe réduit considérablement le nombre de commandes d’entrée/sortie mappées en mémoire et prend en charge les pilotes de périphériques de systèmes d’exploitation fonctionnant en mode interruption ou interrogation pour des performances supérieures et une latence réduite. La spécification NVMe contient également un protocole hôte-périphérique pour les commandes SSD utilisées par un système d’exploitation pour : la lecture, l’écriture, le flush, le TRIM, la gestion du firmware, la température, les erreurs et autres.