The NVMexpress organization announced the NVMe 2.0 standard last week, bringing significant changes to the growing storage interface. Some of the core new features include ZNS partition namespace, KV command set, Endurance Group management, multi-controller update definition, and shutdown enhancement features. However, one notable addition which was missed by a lot of observers is support for mechanical HDDs.
Note: While SATA is used to denote the connector and as well as the transport protocol (AHCI). NVMe, on the other hand, is the name of the protocol which uses primarily the M.2 connector. When I use the word NVMe connector, please consider it as the former.
HDDs that primarily leveraged the SATA interface can now also be paired with NVMe. As for why you’d want to pair HDDs with NVMe, the answer is rather straightforward: Speed. While SATA III (6 Gbps) is limited to 600 MB/s, NVMe 2.0 speeds are primarily dictated by the PCIe standard used in parallel. Even PCIe 2.0 x4 based NVMe drives have a bandwidth of 2000 MB/s.
With NVMe, SSDs connect to host systems via the PCIe bus. This connection requires a controller chip but it no longer needs the SATA/SAS controller (Figure 1), a move that significantly increases sequential transfer rates due to the elimination of several processing latencies and the constriction of the SATA/SAS pipeline.
In terms of the command queue, NVMe also has a major advantage. While AHCI/SATA has a command queue with a depth of 32 commands and SAS with 256, NVMe can have up to 65,535 queues with as many as 65,536 commands per queue (infinitely more). This significantly increases the number of parallel instructions that can be executed on an NVMe drive. On the latency side, since NVMe drives are attached directly to the CPU via the PCIe lanes, you get a latency reduction of 15 to 25 microseconds.
NVMe SSDs require fewer CPU cycles to complete the same number of IOPS and use approximately 33% fewer CPU resources than their AHCI/SATA counterparts. This reduction is achieved by, among other things, the complete removal of the SATA/SCSI translation requirement, as well as the elimination of a number of controllers that AHCI configurations usually require. In addition to this, NVMe drives have a 35% lower power consumption (on average) than traditional SATA/SAS connectors.
NVMe drives come in a variety of form factors, reflecting the ubiquitous nature of the PCIe interface. The three main types are:
- AIC/CEM (add-in card/card electromechanical) is the general-purpose form factor for PCIe in different sizes and heights that most SSDs use;
- M.2, developed for mobile devices and laptops, is also used in data centers and by hyperscale
- U.2 is the 2.5-inch form factor that makes up the majority of NVMe SSDs today.
SAS has fewer form factor options than NVMe drives, but it connects to more types of devices than NVMe. It also lets you create tiered storage structures with different caching layers: A warm layer that stores the regularly accessed data on faster media while and a cold layer that uses low-cost, high-capacity magnetic storage.
In addition to this, SATA-based drives can only perform read or write instructions at a time. For NVMe-based drives, both the read and write instructions can be executed simultaneously, although this won’t really make a difference for HDDs given the way data is read and written.