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

NVMe - Subpages

NVMe - Specification Versions