ENES

NVMe

The fast way for a computer to talk to an SSD, designed for flash from the start.

Two paths from a CPU to flash storage: an old SATA route through a single narrow lane with one queue, and an NVMe route straight over PCIe with many parallel queues

NVMe, short for NVM Express, is the protocol a computer uses to talk to modern SSDs. It defines how the CPU sends read and write requests to the drive and gets answers back. It runs over PCIe, the same high-speed connection that graphics cards use, which puts the drive almost directly next to the processor.

Before NVMe, SSDs plugged into SATA, a connection designed in the era of spinning hard disks. SATA tops out around 600 megabytes per second and handles requests through a single queue of up to 32 commands, which was fine when a disk's arm could only be in one place at a time. Flash memory has no moving parts and can work on many requests at once, so SATA became the bottleneck. NVMe, first published in 2011, allows up to 65,535 queues with up to 65,536 commands each, and drives over PCIe reach several gigabytes per second.

In practice, most NVMe drives in laptops and desktops are small sticks that slot into an M.2 connector on the motherboard. M.2 is just the shape, though: some M.2 drives still speak SATA, so it pays to check. In data centers, NVMe is the default for fast storage, and NVMe over Fabrics extends the same protocol across a network so servers can use remote flash almost as if it were local.

Keep in mind

Go deeper

Related terms

More in Hardware