Does NVMe use PCIe?

Data processing is at the core of every business. A PC with mediocre specs is decent enough for simple data processing, but on a larger scale, it will not suffice. As data continues to grow, businesses are always searching for the latest technologies that can accelerate data processing. High-speed computer components are crucial in processing big chunks of data real-time. One of the key components that require upgrading is the internal secondary storage device. These devices play a vital role in capturing, accessing, processing and transforming data, and these have evolved significantly to meet business demands. NVMe (Non-Volatile Memory Express) drive is the latest and by far the fastest evolution of storage devices. Before we delve deeper into NVMe, let’s briefly look at the different internal secondary storage media utilized today.

Hard Disk Drive (HDD). The magnetic and mechanical spinning drive is considered a legacy storage device. It’s been around since the mid-20th century. HDDs are made of moving parts which more often cause the device to fail. Currently, the form factors available are the 3.5” and 2.5” HDDs. Today’s HDDs are using the SATA standard (Serial Advanced Technology Attachment) interface which replaced the already obsolete IDE (Integrated Drive Electronics) and PATA (Parallel Advanced Technology Attachment) standards.

Solid State Drive (SSD). SSD is the new generation storage device which stores the information in flash-based memories. It does the same functions of HDD, only faster. Unlike  HDD, it is unlikely to fail as there are no moving parts. SSDs use either the SATA or PCIe (Peripheral Component Interconnect Express) interface.

So where does NVMe fit in? To understand NVMe better, let us first know the differences between SATA and PCIe interface.

SATA vs PCIe

SATA and PCIe are the interface media for internal storage devices. SATA is used for both HDD and SSD while the more recent PCIe is used for SSDs.

The hard drive is the slowest among the hardware components of computers. To keep up with the speed of other components, it was an absolute necessity to replace IDE and PATA standards with the faster interface, SATA.

SATA is both a connector and a bus standard. The SATA connector connects HDDs and SSDs to the SATA bus of the computer’s motherboard. This simple connector had several developments and its latest iteration, SATA III is widely used in modern HDDs and SSDs. SATA III has a transfer rate of 600 MB/s and uses AHCI (Advanced Host Controller Interface) to communicate with SATA devices. AHCI was designed explicitly for the spinning HDDs, but because there was no standard for SATA drives upon its development, AHCI was endorsed to work with SATA. Although AHCI was compatible with SATA drives, it didn’t fully optimize the potential of the flash-based SSDs because of its slow transfer rate. Also, there is a need for a SATA controller for AHCI to communicate with the SATA drive further slowing down the data transfer. Manufacturers then explored other interfaces that could deliver faster transfer rates.

PCIe is a high-speed expansion bus standard that replaced the older and slower PCI, PCI-X, and AGP bus standards. It was used mainly for graphics, Wi-Fi and Ethernet cards. PCIe has a direct connection to the CPU, which significantly speeds-up the transfer rate. Unlike SATA, PCIe does not require a controller in between the drive and the CPU for data to be shuttled to and fro. PCIe also comes with other impressive advantages such as lower latency, scalable performance, increased I/O of up to 40 lanes per CPU socket, and low power.[1] PCIe 3.0 is the latest generation of PCIe and has a transfer rate of 985 MB/s per lane and can consist of up to 16 lanes. These superb attributes of PCIe make it an ideal slot for SSDs. But one thing’s still missing; the communication standard between SSDs and the PCIe interface. This is when NVMe gets into the picture.

Does NVMe use PCIe?

There’s a lot of confusion between NVMe and PCIe as these two words are often used interchangeably. In other cases, SSD and NVMe are considered as two different drives. But what exactly is NVMe?

NVMe is neither an interface nor a drive. It is currently the industrial communication standard for NVM storage devices such as SSDs. As a matter of fact, it is designed specifically for flash-based SSDs. While PCIe is the physical interface, NVMe is the protocol that manages the NVM devices that’s using the PCIe. It is, therefore, similar to AHCI, only much faster.

In comparison, AHCI has only one command queue and can send 32 commands per queue, NVMe, on the other hand, has a mind-blowing 64K queues and can send 64K commands per queue. That’s an overwhelming 4M commands in total! Unlike AHCI which goes through the SATA controller before data is sent to the CPU, NVMe communicates directly to the CPU without the need for any controller. Moreover, it has over a million IOPs (Input/Output Operations per second) as opposed to 100K of AHCI. Additionally, it has a lower latency of just a few microseconds as compared to AHCI’s 30-100 microseconds. Let’s talk about the transfer rate. As previously mentioned, PCIe has a transfer rate of 1GB/s per lane. NVMe is using four lanes of PCIe, which means, theoretically, NVMe SSDs have a transfer rate of 3.9 GB/s.[2] More than 6x faster compared to the 600MB/s transfer rate of SATA drives.

It’s a done deal, NVMe is the sure winner in all aspects, but there’s one drawback – the price. NVMe carries a higher price tag, and for some, it is an impractical choice. SATA SSDs can run programs, transfer files and start-up a computer relatively quickly but for processing large video files for example, or in industries that require running multiple applications simultaneously and real-time processing of huge files, the extra bucks spent on NVMe drives is a worthy pay off.

Does NVMe use PCIe? It’s a definite Yes! NVMe works hand in hand with PCIe for an exceptionally high-speed data transfer and is a significant improvement over the older AHCI standard.

Sources:

[1] J. Metz, “NVMe for Absolute Beginners”, November 11, 2014, https://blogs.cisco.com/datacenter/nvme-for-absolute-beginners, Accessed December 16, 2020

[2] Westrick, Tom, “What Are NVMe Drives, and Should You Buy One?”, September 16, 2020, https://www.howtogeek.com/404627/what-are-nvme-drives-and-should-you-buy-one/, Accessed December 16, 2020



from Linux Hint https://ift.tt/3nMiCDg

Post a Comment

0 Comments