NVM Express® (NVMe®) è una specifica che definisce come il software host comunica con la memoria non volatile attraverso un bus PCI Express® (PCIe®). È lo standard industriale per le unità a stato solido (SSD) PCIe in tutti i fattori di forma (U.2, M.2, AIC, EDSFF). NVM Express è il consorzio no-profit dei leader dell’industria tecnologica che definisce, gestisce e commercializza la tecnologia NVMe. Oltre alla specifica di base NVMe, l’organizzazione ospita altre specifiche: NVMe over Fabrics (NVMe-oF™) per utilizzare i comandi NVMe su un tessuto di rete e NVMe Management Interface (NVMe-MI™) per gestire gli SSD NVMe/PCIe nei server e nei sistemi di storage.
La specifica NVMe è stata progettata da zero per gli SSD. È un’interfaccia molto più efficiente, che fornisce una latenza inferiore ed è più scalabile per gli SSD rispetto alle interfacce legacy, come serial ATA (SATA). La prima parte della specifica è l’interfaccia di controllo host. L’architettura NVMe porta un nuovo meccanismo di accodamento ad alte prestazioni che supporta 65.535 code di I/O ciascuna con 65.535 comandi (indicato come profondità della coda, o numero di comandi in sospeso). Le code sono mappate sui core della CPU, offrendo prestazioni scalabili. L’interfaccia NVMe riduce significativamente il numero di comandi di input/output mappati in memoria e accoglie i driver dei dispositivi del sistema operativo che funzionano in modalità di interrupt o polling per prestazioni più elevate e una latenza inferiore. La specifica NVMe contiene anche un protocollo host-to-device per i comandi SSD usati da un sistema operativo per: lettura, scrittura, flush, TRIM, gestione del firmware, temperatura, errori e altri.