NVMe Performance for the SSD Age
Technology Paper
Non-Volatile Memory Express optimizes system's devices for significantly better performance
Non-Volatile Memory Express (NVMe) is a scalable host controller interface protocol that operates over a PCI Express (PCIe) bus. Interface protocols govern the way host systems interact with storage devices. And systems clearly perform better when the interfaces and their protocols are optimized for the characteristics of the system's devices.
SATA is the most widely used interface for solid state drives (SSD) today.
Throughout the consumer world and in much of the enterprise market, SATA SSDs that use the legacy Advanced Host Controller Interface (AHCI) protocol still reign.
But despite their ubiquity in the SSD space, SATA and the AHCI protocol were originally designed with the latency and throughput characteristics of HDDs.
As a result, they aren't ideal for taking full advantage of an SSD's strengths. NVMe,
in contrast, is designed as an optimal interface protocol for NVM technologies like flash, so NVMe-based SSDs are better able to live up to the technology's potential.
NVMe Performance for the SSD Age
High Sequential Throughput and Random IOPS
Command Queue
PCIe Bus
NVMe also has a much more robust command-queue structure with a significantly larger queue depth than AHCI/
SATA. Whereas AHCI/SATA has one command queue with a depth of 32 commands, NVMe is designed to have up to
65,535 queues with as many as 65,536 commands per queue.
The much higher queue depth for NVMe allows for a greater number of commands that can be executed simultaneously.
With NVMe, SSDs connect to host systems via the PCIe bus.
This connection still requires an SSD controller chip but it no longer needs the SATA/SAS controller (Figure 1), a move that can double and sometimes triple sequential throughput rates, owing to the elimination of several processing latencies and the constriction of the SATA/SAS pipeline.
AHCI CONNECTION
PCH
Chipset
CPU