The individual command set specifications allow NVM Express to isolate and independently evolve command sets for emerging technologies such as Zoned Namespaces, Key Value and eventually computational storage. The NVMe specifications before NVMe 2.0 included all command set details. NVMe 2.0 separates these command sets into different specifications.

The NVMe Base specification defines the Admin Command Set, which provides essential administrative and management commands, including identify and get-log-page.

What is the NVM Command Set specification?

The NVM Command Set specification defines the NVM Command Set, which includes the most essential I/O commands: read and write. The NVM Command Set specification is effectively the block address command set that existed in NVMe before the NVMe 2.0 specifications.

What is the Zoned Namespaces (ZNS) Command Set specification?

The NVMe Zoned Namespaces (ZNS) interface is a command set developed by NVM Express. By dividing an NVMe namespace into zones, which are required to be sequentially written, ZNS offers essential benefits to hyper-scale organizations, all-flash array vendors and large storage-system vendors to take advantage of storage devices optimized for sequential write workloads. ZNS reduces device-side write amplification, over-provisioning and DRAM while improving tail latency, throughput and drive capacity. By bringing a zoned-block interface to NVMe SSDs, ZNS brings alignment with the ZAC/ZBC host model already being used by SMR HDDs and enables a zoned-block storage layer to emerge across the SSD/HDD ecosystem.

What is the Key Value Command Set specification?

The NVMe Key Value (NVMe-KV) Command Set has been standardized as one of the new I/O Command Sets. NVMe-KV allows access to data on an NVMe SSD using a key rather than a block address. The NVMe-KV Command Set provides the key to store a corresponding value on non-volatile media, then retrieves that value from the media by specifying the corresponding key. NVMe-KV allows users to access key-value data without the costly and time-consuming overhead of additional translation tables between keys and logical blocks.