NVMe and SATA: what's different and which is faster
NVMe is similar to SATA, but it has some advantages over it. Let's examine them. It is important to note that this article contains many technical details; if you are simply interested in which disk to choose, we have written another article titled Conventional SSD drives and NVMe drives.
NVMe (Non-Volatile Memory Express) is an interface protocol designed specifically for solid state drives (SSDs). SSDs have no moving parts and are in many ways more robust than HDDs. Right now, SSDs are already the primary source of storage for smartphones and tablets. In addition, SSDs are more expensive than HDDs and are often used as a cache in conjunction with HDDs to boost computer performance.
With SSDs increasingly replacing slower hard disk drives (HDDs) in computers, a new interface was required to take advantage of SSD's high speeds. Historically, SSD installations accessed SSDs through interfaces such as Serial Attached SCSI (SAS) and Serial ATA (SATA), which were used with slower hard drives. However, SSDs have the distinct advantage of providing faster access through PCI Express (PCIe).
NVME was designed from the ground up as a method of providing efficient access to storage devices with non-volatile (flash) memory, namely solid state drives (SSDs). NVMe provides a faster interface to exploit the speeds that SSDs are capable of. In fact, NVMe is an optimized, scalable host controller interface designed for enterprise systems, data centers, and client systems using PCI Express (PCIe) SSDs.
There are several alternative interfaces for SSDs (which can be used to replace hard drives in PCs) such as Serial ATA (SATA), mSATA, and PCIe. For PCIe, the internal interface can be used if the SSD is on a board that can be plugged into a PCIe connector on the motherboard. Today's servers can access SSDs through serial SCSI (SAS), SATA, PCIe, or fiber optic.
NVMe-based SSDs use PCIe to achieve reduced latency. Form factors that use the NVMe protocol must connect to PCIe on the computer. Connections for NVMe can be made through a PCIe expansion card, a 2.5-inch U.2 connector, or a small M.2 form factor. These days SSD manufacturers show a tendency to be moving to PCIe, with most using the M.2 connector, known as the "Next Generation Form Factor."
How does NVMe work?
Submission and Completion Queue is one of the mechanisms that leverage SSD technology in NVMe. The queue host software manages SSD data flow, creates and deletes individual queues, cancels commands, etc. A computer with four cores can have four pairs of queues to ensure that data structures are stored in the cache of the appropriate core (see Figure). Furthermore, NVMe supports multiple deep queues that are independent of each other.
Figure. For NVMe, the Submission and Completion Queue system is one mechanism that takes advantage of SSD technology (Image: nvmexpress.org)
NVMe SSDs on the market
NVMe was originally created for enterprise systems and data centers. Now NVMe is gradually entering the consumer market.
SATA has a bandwidth limit of 6.0 gigabits per second (Gbps), while SAS has a bandwidth limit of 12 Gbps.
NVMe is an interface protocol that uses PCIe technology to transfer data between a processor and an SSD.
PCIe 3.0 was released in 2010 and provides ~1GB/s per line (bidirectional).
With 4 lanes, PCIe 3.0 will provide 8 Gbps in both directions simultaneously (duplex) for a total of 16 Gbps.
PCIe is also scalable. On 16 lanes PCIe 3.0 gives a duplex of 16 Gbps.
The PCIe 4.0 specification was published in late 2017. Compared to PCIe 3.0, it doubled throughput, reduced latency, improved scalability and virtualization support. The PCI Express 5.0 specification is scheduled to appear in 2019. The PCI Express 5.0 bus speed is expected to be as fast as 32 GT/s (Gigatransactions/s).