NVMe, or Non-Volatile Memory Express, is the standardised interface protocol that has been optimised for solid-state drives (SSDs). In the early days, SSDs used to leverage legacy SAS (Serial Attached SCSI) and SATA (Serial ATA) protocols. However, these protocols were not designed for high-speed storage media like SSDs.
They were good enough for slower hard disks that had moving parts and slow, read/write heads that could only deal with so much data at a time. SATA, for instance, has a transfer limit of only about 600MB/s, while SSDs are capable of much faster speeds.
Therefore, to get the most out of what SSDs can offer in terms of performance and remove the storage bottlenecks caused by legacy interfaces, a new interface was needed.
NVMe was then developed as a communications standard and protocol that could operate across the Peripheral Component Interface Express (PCIe) bus. Since PCIe slots connect directly to the CPU, they can provide memory-like access that is more suited for SSDs. Furthermore, PCIe is known to have excellent attributes when it comes to scalability, latency as well as performance.
A PCIe connection consists of serially connected data transmission lanes, with each lane consisting of two pairs of wires for receiving and transmitting data. In a single PCIe slot, you can have one (x1), four (x4), eight (x8) or sixteen (x16) lanes. Bandwidth scales linearly according to the number of lanes, so an eight-lane connection will have twice the bandwidth of a four-lane connection, for example.
Besides to obtain a boost in performance, NVMe was also introduced as a way to provide high compatibility and interoperability across a broad range of systems.
The NVMe specification was developed by over 80 industry players, including the likes of Intel, Samsung, Sandisk, Dell, and Seagate. It was released on the 1st of March 2011 by the NVMe Work Group and is now becoming the new industry standard as SSDs become more mainstream. Interestingly, as the name suggests, the NVMe protocol was not designed just for SSDs that are available today, but also for future non-volatile memory devices.
How fast is NVMe? While SATA possesses only one command queue, with each queue capable of sending only 32 I/O commands, NVMe offers the possibility of using 64,000 command queues, which can send 64,000 commands per queue. Comparing it to SATA, the latest PCIe 4.0 generation used by NVMe is capable of transfer data at a rate of up to 32,000MB/s, with the 5th generation set to double the bandwidth of PCIe 4.0 when it is finalised and released.
Businesses are now opting for SSDs to meet rising data demands, especially with the proliferation of data-intensive technologies like AI, IoT and blockchain. However, in order to effectively eliminate the bottlenecks and unlock the true potential of their high-performance storage media, they should consider upgrading to NVMe.