In this post we are going to discuss NVMe technology and why you should be using it. You may have heard the word “NVMe” being thrown around when discussing topics relating to computers and servers but never fully explored the subject. With all these different protocols, interfaces, and form-factors in today’s modern computing world, there is no shame in being a little bit behind. NVMe stands for “NVM Express”, but NVM is short for for “Non-Volatile Memory Host Controller Interface Specification” or NVMHCIS.
History of NVME
A quick history of NVMe will tell you that the NVMe protocol was essentially built on top of the same technology that many Solid-State Devices (SSD) use in terms of storage. Modern Solid-State Drives use NAND-based flash memory, a type of non-volatile memory, that can persistently retain data even if there is no power. You can see that this is the second time we used the phrase “non-volatile memory” or NVM. To explain both NVM and flash memory we just need to look at computer memory aka Random-Access Memory(RAM). Every computer has some form of RAM in it, generally in the form of DIMM sticks. DIMM sticks act like a type of cache that stores cached data that can be quickly accessed by the computer. If a computer runs out of RAM, then it uses temporary virtual storage to act like RAM through your storage drives but is much slower. Comparatively RAM is slower compared to processor cache, but that is another story. When you turn off your computer, all the cached data in your DIMM’s are flushed and emptied. Non-Volatile memory acts the same way as RAM, but the data is not flushed when power is lost. However, this does not mean that NVM does not need power. NVM devices just lose data at a drastically reduced rate. For this reason, many NVM devices come with internal batteries as NVM devices lose data more rapidly with age. Also, for the context of NVMe, flash memory basically means chip-based storage that does not have the same hardware limitations you would find from a standard hard drive, such as noise and power consumption.
NVME vs SSD
Going back to NVMe, essentially, they were built on top of the same technology of Solid-State Drives. What that means is that NVMe drastically improves the capabilities of an SSD. The reason for this is because Solid-State Drives primarily use flash memory, but they traditionally use the Serial ATA (SATA) interface which has a transfer rate cap of 600MBps if you are using the common SATA revision 3.0. Some SSDs will also use PCIe interfaces which can read more than 30GBps transfer rate cap, but this is only if you are using the latest PCIe version with the max number of lanes, which is uncommon for normal consumer products. For a typical consumer using PCIe technology, they might have a transfer rate cap of 3.94GBps up to 8GBps depending on their hardware. The PCIe interface combined with Solid-State Drives was created to get around the SATA limitations that Solid-State Drives were originally applied to for manufacturing convenience purposes, however there was no uniform standard for how this was done. This means that PCIe SSD’s had loads of compatibility issues depending on the manufacturer, the operating system, the motherboard, etc. If you ever had to install custom drivers for a storage device, chances are it was for a PCIe SSD. In contrast the NVMe protocol is standardized the same way USB technology is, therefor there is a standard driver for NVMe devices. In fact, native NVMe drivers have been part of Linux operating systems since 2012 and Windows since the addition of Windows 8.1.
Why You Should Be Using NVMe Technology
Now we can get to the specifics of why you should or should not be using NVMe technology. The short version is if you are normal consumer than there is less reason to use NVMe drives unless you just want the best hardware possible. If you are using a storage system, then that is another story. To put this in perspective let’s look at a recent consumer gaming motherboard, the Asus ROG Strix Z770-E Gaming motherboard released mid-2017. This motherboard has six SATA 3.0 ports, one M.2 socket with PCIe capabilities and another M.2 socket with both SATA and PCIe support. Now compare that to the Asus X299 Sage Workstation motherboard, ‘workstation’ being the important part as it denotes a server type board. The Asus X299 Sage WS has eight SATA 3.0 slots, two M.2 sockets with PCIe capabilities and two U.2 ports. Both motherboards contain M.2 sockets with PCIe features that can support a NVMe M.2 device. The workstation motherboard has two U.2 ports which is one of the type of connections that NVMe devices typically have. The gaming motherboard can fully support one NVMe device with a M.2 form-factor and partially support another with lower speeds. The workstation motherboard can fully support two M.2 NVMe devices and another two with U.2 connectors typically with a 3.5” or 2.5” form-factor. Not enough sockets to use many NVMe devices except maybe as a bootloader drive and remember that the SATA 3.0 interface has a max transfer rate of 600MBps, so a NVMe device would be severely underutilized if it could be connected. Now compare those two motherboards to Exxact’s Tensor TS2-201281-NVM 2U system. This 2U rack mountable system is able to support forty-eight hot swappable 2.5” NVMe drives and two Xeon 2600 series processors that is able to process all of that data. In other words, to truly use the full capacity of NVMe storage devices, then a server is your best bet and not even close as a single Xeon CPU can handle around five NVMe devices. With storage device interfaces and protocols, the limit is not the device, but the other hardware associated with it such as motherboards.
To get a little bit technical, a NVME device with M.2 or U.2 PCIe 3.0 4x link connection with have a transfer rate up to 3928MBps which is more than six times faster than a SATA 3.0 device and almost double of the more recent SATA 3.2 revision which can get transfer speeds of 2000MBps. You also have other benefits such as consuming less power than both SATA and Solid-State Drives, being as quiet as an SSD, and much lower latency in the form of higher IOPS (Input / Output Operations Per Second.) For example, a SATA 3.0 HDD device with 7200 RPM will have an IOPS of up to 100. An SSD using a SATA 2.0 interface will get anywhere in the range of 50,000 to 120,000 IOPS depending on the manufacturer of the device. An SSD using a PCIe interface can reach upwards of 300,000 IOPS, but a NVMe device over M.2 PCIe can reach 450,000 IOPS. Of course, these are not hard numbers as technology is advancing everyday as experimental devices have shown to reach higher numbers of IOPS for each interface and protocol. There are also some downsides to using NVMe devices such as the cost and not all hardware can physically support an NVMe device. They can also be tricky to install as a boot-loader for an operating system. Some users may find out their Windows 7 operating system does not work with NVMe devices without weird workarounds. Others may find that they will have to use a UEFI boot-loader instead of a legacy boot-loader. All in all, NVMe drives are amazing to have if you can afford them and can fully utilize them, if not then a standard SATA SSD will be more than enough for traditional consumer use.
Will you be using NVMe technology? Let us know in the comments below. Or if you have any questions, feel free to contact us directly here.