Due to the advent of NVMe, the performance of hard drives has greatly improved. How much, exactly? Read bandwidth has increased from 500MB/s to 3200MB/s, and write bandwidth from 400MB/s to about 1200MB/s. Meanwhile, read IOPS has reached 500,000, or even higher. In other words, the performance of an SSD based on NVMe is now better than that of an enterprise-level disk array.
After all this hype, what exactly is NVMe? NVMe stands for Non-Volatile Memory Express, which translates to a non-volatile memory host controller interface specification. You might still be confused, so let’s search for this keyword on a search engine, and you might see the following image.
After all the talk, what is NVMe? First, it is an interface specification, and second, it is an interface specification used for storage devices. To be precise, it is the latest communication protocol for storage devices. This protocol is similar to SAS and SATA, defining hardware interfaces and transmission protocols.
01
Concepts about Storage
To thoroughly understand what NVMe is, let’s first clarify a few concepts about storage.
Form Factor: This refers to the shape and size of the device. Common storage device form factors include:
- 2.5-inch or 3.5-inch drives (defined in the SFF standard)
- M.2 and PCI Express (PCIe) (defined in the PCI-SIG standard)
Interface: This is how the device communicates with the computer. Common storage device interfaces include:
- SATA interface, usually used for 2.5-inch and 3.5-inch hard drives, and sometimes for some M.2 devices
- PCI Express (PCIe) interface, used for M.2 and PCIe devices
- SAS (Serial SCSI) and FC (Fibre Channel) interfaces, used only in the server domain and data centers
The PCIe interface is much faster than the SATA interface. SATA3 has a maximum bandwidth of 6Gb/s, while an M.2 interface based on 4X PCIe can reach up to 32Gb/s.
Protocol: Defines how data is transferred between the computer and the device. Common protocols include:
- AHCI or ATA protocol for SATA interfaces,
- NVMe protocol for PCIe interfaces
Now, we should have a clearer understanding that NVMe is a communication protocol that operates over a certain interface to regulate data transfer between computers and storage devices. The aforementioned device sizes, interfaces, and protocols are usually combinable. Below are common combinations:
- A 2.5-inch SSD based on the SATA interface, using AHCI or ATA communication protocols. A typical device is illustrated in Figure 2.
- An M.2 SSD based on the PCIe interface, using the NVMe communication protocol. A typical device is illustrated in Figure 3.
- A PCIe SSD, based on the PCIe interface, using the NVMe communication protocol. A typical device is illustrated in Figure 4.
These are just a few specific examples to help understand the relationships between interfaces, devices, and protocols. Specifically, there are many other combination forms, which are not further elaborated in this article.
02
Why is NVMe so fast?
We’ve already introduced what NVMe is, and now this article will explain why NVMe is so fast (note: this speed is relative to SSD devices, and not applicable to mechanical hard drives). Due to the physical characteristics of SSDs themselves, data access is already very fast, and the performance bottleneck is at the interface and protocol connecting the computer and the device.
Let’s take a simple example. Imagine we have a warehouse that continuously produces products. We could use a robotic arm to move products from the warehouse to other places (as shown in Figure 5). An SSD with a SATA interface, it’s like a robot with just one arm. The warehouse produces quickly, but the robot can only carry one item at a time, so the movement is relatively slow.
However, what about an SSD based on NVMe? It’s as if the robot has grown hundreds of arms, clearly much faster than the former.
This is essentially the principle behind the NVMe protocol. It establishes multiple pathways between the computer and the storage device, which naturally increases the speed of data transfer. In the NVMe protocol, these multiple pathways are multiple queues, as shown in Figure 7. In SATA, there can only be one queue between the computer and the storage device, and even in multi-CPU scenarios, all requests can only pass through this narrow path. However, the NVMe protocol can support up to 64K queues, with each CPU or core having its queue, greatly enhancing the degree of concurrency and naturally the performance as well.
Today’s discussion is just an introduction; we will delve deeper into more details about NVMe in future articles. If you find this interesting, please follow our channel, and if you think it’s terrible, feel free to leave a comment below.
Related:
- Confessions of an HDD like Dining Table: Unheard Stories
- HighPoint Launches PCIe Gen5 Card: Up to 960TB!
Disclaimer: This article is created by the original author. The content of the article represents their personal opinions. Our reposting is for sharing and discussion purposes only and does not imply our endorsement or agreement. If you have any objections, please contact us through the provided channels.