Skip to content
Bytearium

No ads or affiliate links active

Hardware

Understanding NVMe SSDs

NVMe is a protocol for non-volatile storage over PCI Express; form factor, lane count and protocol are not the same thing.

Two SSDs fit the same slot, look the same and behave very differently. “M.2” on the box describes the shape, not the behavior.

The short answer

NVMe is the language a modern SSD uses to talk to the computer, usually over PCI Express, the fast connection inside a PC. M.2 is only a connector and a size. How a drive behaves depends on the protocol, on how many PCI Express lanes and which generation the slot really provides, on cooling and on the endurance rating, so those are the things to compare.

How it works

  1. Three layers, three questions. The form factor is the shape and connector. M.2 is a family of form factors defined by PCI-SIG, and modules are named by width and length in millimetres: a 2280 module is 22 mm wide and 80 mm long. The link is the electrical connection, either SATA or PCI Express. The protocol is how host and drive talk. NVMe defines how host software communicates with non-volatile memory. It started out for PCI Express and now also covers RDMA and TCP transports, and it is the industry standard for SSDs in U.2, M.2, add-in-card and EDSFF form factors.
  2. An M.2 slot can carry SATA or PCI Express. M.2 SSDs exist in a SATA flavor and a PCI Express flavor, and a SATA drive runs at SATA speed regardless of its form factor. The notch pattern on the connector, called the key, tells you what a module and a socket support: SATA drives tend to use a B key, while fast PCI Express x4 drives use an M key, since that is the one that supports four lanes. Always check what the slot in your device supports.
  3. Queues instead of one line. With NVMe over PCI Express, the host places commands in a submission queue in memory and tells the drive via a doorbell register; the drive writes results into a paired completion queue, and commands may complete out of order. There can be many such queues in parallel. NVM Express describes about 64,000 queues of about 64,000 commands each as the theoretical maximum, and in 2018 noted that SSDs actually offered 16 to 256 queues with depths of 32 to 2,048. That design suits many small requests at the same time.
  4. Lanes and generation set the ceiling. An M-key socket can provide up to four PCI Express lanes. How many lanes and which generation a given slot really delivers depends on the motherboard, and the speeds on a vendor’s box are “up to” figures. The link a drive actually runs at is visible in the operating system.
  5. Heat matters. NVMe drives report a composite temperature in their SMART/health log, plus the minutes spent above a warning and a critical threshold. The composite value is computed in an implementation-specific way and may not represent any physical point on the drive. Vendors of the fastest drives say cooling is required, and Corsair does so for its PCIe 5.0 drive below.
  6. Endurance is a rating, wear is a reading. The JEDEC standard JESD218 defines the endurance rating TBW (terabytes written): the maximum number of terabytes a host may write to the drive, using the standard workload of its class (client or enterprise), while the drive keeps its capacity, error rate, failure rate and data retention within limits. The same rating can be expressed as DWPD (drive writes per day) = TBW ÷ (capacity in TB × lifetime in years × 365). Ratings depend on the workload used. The drive itself reports Percentage Used, a vendor-specific estimate of life used (100 means the estimated endurance is consumed, which does not necessarily mean failure, and the value may exceed 100), Available Spare with a threshold, and Critical Warning flags.

In practice

Three commands show what you really have (the output is not reproduced here):

lsblk -d -o NAME,MODEL,SIZE,TRAN        # TRAN shows "nvme" for NVMe drives
sudo nvme smart-log /dev/nvme0          # temperature, percentage used, spare (nvme-cli)
sudo lspci -vv -s 01:00.0               # LnkCap = what the drive can do, LnkSta = what it runs at

(01:00.0 is a placeholder; lspci | grep -i "non-volatile" lists the real address.) An example from Bytearium’s inventory: the G-PC carries a 2 TB Corsair MP700 as its games drive. Corsair lists that model as PCIe 5.0 x4, NVMe 2.0, M.2 2280, states up to 10,000 MB/s sequential read and write (a vendor claim, not our measurement) and notes that SSD cooling is required and that performance is lower on PCIe Gen4 M.2 slots. Which link the G-PC’s slot actually negotiates and how the drive is cooled are not recorded in the inventory. LnkSta from the command above would answer the first question.

Heat is the quiet limit

An NVMe SSD under sustained writes warms up quickly, and most drives throttle their speed once the controller reports a temperature it considers too high; the drive stays safe, the transfer just slows to a fraction. In a server chassis with airflow that rarely matters, in a mini PC or a slot behind a graphics card it does. A flat heatsink or the board’s own M.2 cover is usually enough; the point is to watch the temperature field in the SMART output during a long copy before you blame the drive or the cable.

Checklist

  • Check in the motherboard manual what the slot supports (SATA, PCI Express, number of lanes, generation) before you buy; “M.2” alone is not enough.
  • Match the key and the length: an M-key module of type 2280 needs a socket that takes it.
  • Compare protocol, PCI Express generation and lanes first, then sustained performance and endurance, not the headline sequential speed.
  • Read the endurance rating (TBW or DWPD) together with the workload class, warranty period and capacity it applies to.
  • Check the link the drive actually runs at with lspci -vv, and its temperature under real load with nvme smart-log.
  • Cool the drive the way its vendor requires, especially fast PCIe 5.0 models.
  • Read Percentage Used, Available Spare and Critical Warning regularly, and keep a backup anyway (see the 3-2-1 backup guide).
  • Look up vendor firmware updates, and check the datasheet for power-loss protection if the drive holds data that must not be lost mid-write.

Primary sources

The sources back the core technical claims. The interpretation and checklist are our own work.

  1. NVM Express, Inc.Specifications
  2. NVM Express, Inc.NVM Express over PCIe Transport Specification, Revision 1.0
  3. NVM Express, Inc.Base NVM Express – Part One
  4. PCI-SIGPCI Express M.2
  5. Dell TechnologiesDifferences between M.2 cards, slots, keys, sizes and types
  6. JEDECJESD218B, Solid-State Drive (SSD) Requirements and Endurance Test Method
  7. JEDECSolid State Drives
  8. libnvme project (via Debian Manpages)nvme_smart_log(2)
  9. CorsairMP700 2TB PCIe 5.0 (Gen 5) x4 NVMe M.2 SSD

This page has no ads and no affiliate links.