What is NVMe?

NVMe™ is the most common host controller interface for systems using PCI Express (PCIe) based devices. With the participation of over 120 member companies, NVM Express® is the organization that authors the NVMe specifications. While NVMe was architected from the ground up for PCIe Solid State Drives (SSDs) to be efficient, scalable, and manageable, it has grown to include support for Hard Disk Drives (HDDs) and Key Value (KV) storage devices.

The first NVMe specification was published in 2011. Since then, there have been many NVMe specifications published with multiple revisions each: NVMe Base Specification, NVMe Management Interface (NVMe-MI™), NVMe Command Set Specification, NVMe Zoned Block Device Command Set Specification, NVMe Key Value Command Set Specification, along with transport specifications for each supported transport.

The NVM Express Base specification defines an interface that provides optimized command submission and completion paths. The interface supports parallel operations with up to 64k I/O Queues and up to 64k outstanding commands per I/O Queue. The interface scales for multi-core CPUs, with a minimum of clock cycles needed for each I/O operation. The specification also includes end-to-end data protection, enhanced error reporting, and virtualization support.

The NVM Express Management Interface is the command set for in-band and out-of-band management of NVMe storage systems. These management functions include, but are not limited to, discovering, monitoring, and updating firmware on NVMe devices. NVMe-MI provides an industry-standard way to manage NVMe drives and devices.

The NVMe-oF protocol enables NVMe commands to be transmitted over RDMA, Fibre Channel, and TCP. NVMe-oF extends the NVMe deployment from local host to remote host(s) for a scale-out NVMe storage system. The NVMe-oF protocol is defined in the NVMe RDMA Transport specification, the NVMe Transport Specification and the INCITS T11 FC-NVMe family of standards.
The Native NVMe over Fabrics Drive Specification defines methods to connect a Native NVMe-oF device directly to an ethernet infrastructure that enables NVMe commands to be transmitted over NVMe-RDMA or NVMe-TCP.

These specifications are continuously evolving to new revisions to provide more features and functionalities to support increasing demand for NVMe based storage solutions.

Learn more about NVMe in our Educational Library