NVM Express (NVMe) - Non-Volatile Memory Host Controller Interface Specification (NVMHCIS)
- introduced in 2011
- is a communication protocol specifically developed for SSDs
- was designed to address the shortcomings of the SATA and SAS interfaces
- defines how host software communicates with non-volatile memory across a PCIe, RDMA, TCP and more
- is an industry standard for SSDs in many form factors (U.2, M.2, AIC, EDSFF)
- bypasses all the AHCI/SCSI layers
NVMe - Specification Structure
|
|
NVMe library of specifications is divided into eight different specifications, including the:
- NVMe Management Interface Specification - (NVMe-MI) Specification - defines an optional management interface for all NVMe subsystems
- NVMe I/O Command Set Specifications - define data structures, features, log pages, commands, and status values that extend the NVMe Base Specification
- NVM Command Set specification
- ZNS Command Set specification
- KV Command Set specification
- NVMe Base Specification -
- NVMe Transport Specifications - defines the binding of the NVMe protocol including controller properties to a specific transport
- PCIe Transport specification
- RDMA Transport specification
- TCP Transport specification
- NVMe Boot Specification (NVMe Boot) - defines constructs and guidelines for booting from NVMe interfaces
/nvm-express-(nvme)---non-volatile-memory-host-controller-interface-specification-(nvmhcis)/nvm-express-specification.png)