Lably
Skip to content

NVM Express

Interface used for connecting storage devices

  • 14 min read
  • 9 chapters

Related on Lably

Through Interface (computing), Non-volatile memory and Input/output

Architecturally, the logic for NVMe is physically stored within and executed by the NVMe controller chip that is physically co-located with the storage media, usually an SSD. Version changes for NVMe, e.g., 1.3 to 1.4, are incorporated within the storage media, and do not affect PCIe-compatible components such as motherboards and CPUs.

By its design, NVM Express allows host hardware and software to fully exploit the levels of parallelism possible in modern SSDs. As a result, NVM Express reduces I/O overhead and brings various performance improvements relative to previous logical-device interfaces, including multiple long command queues, and reduced latency. The previous interface protocols like AHCI were developed for use with far slower hard disk drives (HDD) where a very lengthy delay (relative to CPU operations) exists between a request and data transfer, where data speeds are much slower than RAM speeds, and where disk rotation and seek time give rise to further optimization requirements.

NVM Express devices are chiefly available in the miniature M.2 form factor, while standard-sized PCI Express expansion cards and 2.5-inch form-factor devices that provide a four-lane PCI Express interface through the U.2 connector (formerly known as SFF-8639) are also available.

Specifications

Specifications for NVMe released to date include:

  • 1.0e (January 2013)
  • 1.1b (July 2014) that adds standardized Command Sets to achieve better compatibility across different NVMe devices, Management Interface that provides standardized tools for managing NVMe devices, simplifying administration and Transport Specifications that defines how NVMe commands are transported over various physical interfaces, enhancing interoperability.
  • 1.2 (November 2014)
    • 1.2a (October 2015)
    • 1.2b (June 2016)
    • 1.2.1 (June 2016) that introduces the following new features over version 1.1b: Multi-Queue to supports multiple I/O queues, enhancing data throughput and performance, Namespace Management that allows for dynamic creation, deletion, and resizing of namespaces, providing greater flexibility, and Endurance Management to monitor and manage SSD wear levels, optimizing performance and extending drive life.
  • 1.3 (May 2017)
    • 1.3a (October 2017)
    • 1.3b (May 2018)
    • 1.3c (May 2018)
    • 1.3d (March 2019) that since version 1.2.1 added Namespace Sharing to allow multiple hosts accessing a single namespace, facilitating shared storage environments, Namespace Reservation to provides mechanisms for hosts to reserve namespaces, preventing conflicts and ensuring data integrity, and Namespace Priority that sets priority levels for different namespaces, optimizing performance for critical workloads.
  • 1.4 (June 2019)
    • 1.4a (March 2020)
    • 1.4b (September 2020)
    • 1.4c (June 2021), that has the following new features compared to 1.3d: IO Determinism to ensure consistent latency and performance by isolating workloads, Namespace Write Protect for preventing data corruption or unauthorized modifications, Persistent Event Log that stores event logs in non-volatile memory, aiding in diagnostics and troubleshooting, and Verify Command that checks the integrity of data.
  • 2.0 (May 2021)
    • 2.0a (July 2021)
    • 2.0b (January 2022)
    • 2.0c (October 2022)
    • 2.0d (January 2024), that, compared to 1.4c, introduces Zoned Namespaces (ZNS) to organize data into zones for efficient write operations, reducing write amplification and improving SSD longevity, Key Value (KV) for efficient storage and retrieval of key-value pairs directly on the NVMe device, bypassing traditional file systems, Endurance Group Management to manages groups of SSDs based on their endurance, optimizing usage and extending lifespan, Flexible Data Placement makes software can marks hot data ranges and cold data ranges.
    • 2.0e (July 2024)
  • 2.1 (August 2024) that introduces Live Migration to maintaining service availability during migration, Key Per I/O for applying encryption keys at a per-operation level, NVMe-MI High Availability Out of Band Management for managing NVMe devices outside of regular data paths, and NVMe Network Boot / UEFI for booting NVMe devices over a network.
  • 2.2 (March 2025)
  • 2.3 (August 5, 2025)
  • 2.4 (August 4, 2026). The August 2026 NVMe specification update added support for post-quantum cryptography and PCIe Exported NVM Subsystem Migration, extending virtualization to locally attached PCIe SSDs. It also added controller-based rate limiting for bandwidth and IOPS, along with voltage monitoring.

Sign in to keep reading

8 more chapters are free with a Lably account.

More in Computing and communication