NVMe & What it Really Means to You

When people first hear the acronym NVMe, many might assume that it stands for 'Non-Volatile Memory, Enterprise' and it is some new type of enterprise grade NAND. While a good and logical guess, it is not even close to what NVMe is and what it is meant to do. Non-Volatile Memory Express is actually an entirely new standard for SSDs and how they communicate with a system’s PCIe bus.As most enthusiasts and professionals know, SATA based devices have a whole host of legacy issues that intrinsically hold Solid State Drives back. Put simply, the SATA standard was never designed with extremely high performance NAND based devices in mind. Instead it was designed with Hard Disk Drives in mind. While the governing body of SATA's standard certainly has done their best to improve it via SATA 6Gbps and the new SATA Express, at the end of the day it still relies upon the outmoded 'Advanced' Host Controller Interface that requires an intermediary controller between the CPU and the storage device.By requiring an I/O Controller Hub (or PCH), AHCI - like IDE before it - allows the production of associated drives to be less expensive as the drive's controller doesn’t need to do the heavy lifting. Rather, the tertiary processing gets offloaded to the PCH / CPU combination. This increases latency and creates a performance bottleneck when dealing with ultra-high performance devices which require a massive amount of data to be processed off-device.In this past this didn’t cause too much of an issue since spindle-based drives didn’t need to have extremely high performance controllers. However, solid state devices have seen their capabilities increase exponentially in a relatively short amount of time, vastly outstripping what even a 6Gbps SATA interface can provide. Even in a perfect world where SATA-IO could quickly implement upgraded standards there would still be a large latency bottleneck due to the fact that the SATA controller would still have to receive the commands from the CPU, pass them on to the SSD controller, receive the information and then retransmit.Without scalability or a quick means to keep pace with SSD technology, many have concluded that SATA is a dead end with an outmoded standards process. Instead something different is needed, something built from the ground up with next generation storage performance as its primary focus.While waiting for a new standard to emerge, Solid State Device manufactures turned to the PCIe bus to circumvent the SATA or SAS controller. Unfortunately, this in turn required a PCIe HUB controller and special proprietary drivers which allow a PCIe SSD to connect to the PCIe bus and effectively communicate with the system. For the most part these new overheads simply reduced instead of eliminated the underlying problems with existing SSD communication designs.Obviously these issue have been known for some time, and back in 2007 (a mere four years after SATA was implemented) Intel helped create a newstandard called the Non-Volatile Memory Host Controller Interface Specification (NVMHCI for short). After two years of work a consortium of over ninety companies founded the NVM Express Workgroup which would be in charge of developing NVMHCI into a workable, open source connectivity and communication standard. It is out of this workgroup that the standard which we now know as Non-Volatile Memory Express (NVMe) was created.As previously stated NVMe has been designed from the ground up with the unique abilities and demands of Solid State Drives in mind. As such overall latency, available bandwidth, and scalability are the most important areas NVMe seeks to address. To minimize these issues, the NVM-EW opted to use PCIe as its foundation. However, instead of just making a hodge-podge standard that relies upon PCIe host bus adapters to work, NVMe compatible controllers will be able to talk directly to the CPU as they have to 'speak' PCIe.By removing this middleman controller a lot of the latency issues associated with PCIe based Solid State Drives are also removed. Equally important, this also eliminates the need for custom drivers and their associated overhead, which will also further reduce latency as there will be fewer layers between the SSD controller and CPU. In the case of the Intel DC P3700 800GB, its NVMe design allows it to boast an impressively low 20 microsecond readwrite latency.As an added bonus NVMe based devices will require fewer controller chips on the device, which reduces power consumption and cooling requirements. This is why the Intel PDC P3700 consumers only 20-25 watts of power compared to the last generation, lower performing Intel 910 which required 25 to 28 watts of power.Obviously NVMe solves the latency issue which was actually starting to bottleneck PCIe based drives but it also solves future performance issues as well. By using the PCIe bus the NVMe Workgroup is able to be meet emerging needs faster than SATA's or SAS' workgroups could ever hope to, as most of the hard work is done for them. For example PCIe 2.0 NVMe devices have access to a 2GB/s wide bus, whereas PCIe 3.0 NVMe devices will be able to hit nearly 4GB/s before saturating the bus, and future versions (PCIe 4.0 compatibility has already been announced) will have nearly 8GB/s of bandwidth to work with, and so on and so forth. Needless to say both performance and future proofing have been neatly taken care of as they are built directly into NVMe standards.As an additional benefit from having no legacy issues to support, the number of channels and even number of NAND ICs per channel can be scaled up beyond what AHCI based devices can reasonably support. This allows increased capacity drives which not only reduces the cost per gigabyte of each NVMe device, but also allows for fewer NVMe drives to meet given capacity and performance requirements of a build. That’s something that will be of utmost importance to enterprise consumers. For example, the performance offered by one NVMe DC P3700 can replace up toIntel DC S3700 drives, while also offering increased steady state performance and decreased latency.While NVMe is for the time being an Enterprise-only affair this should quickly change and workstation or even mass market NVMe based drives will likely start appearing in the near future. On the surface, the idea of NVMe may not appeal to consumer motherboard manufactures used to offering only 'SATA' compatibility, and the idea of finding room forport standard certainly does not appeal to many engineers. Luckily NVMe has another ace up its sleeve: Small Form Factor 8639 specification and SATA Express.In a bout of inter-bureaucratic cooperation rarely seen, SATA Express has been designed from the ground up to use either 'legacy' AHCI or NVMHCI as its standard. Of course, there will be a certain performance loss by using NVMe instead of AHCI ( at heart it is still a SATA-IO and not NVM-EW created standard) but this will allow an intermediary step between AHCI compliant solid state drives and NVMHCI complaint devices. Thanks to Intel pushing SATA Express (via their Z97 PCH controller) this ensures compatible portsbecome standard on most Intel based consumer grade motherboards. On its own this would certainly help ease the inevitable transition from AHCI to the superior NVMe standard but the truly ingenious part is the new 8639 Small Form Factor specification.8639 SFF is an emerging standard which takes the usual SATA / SAS / SATA Express power and data ports and converts it to also support NVMe based devices. To ensure there is no confusion, NVMe devices using SFF 8639 interface will have a slightly different pin out configuration. Much like SATA connectors will not work on SAS drives, NVMe connectors will not (or should not) work with the other types, thus eliminating the 'it fits, but doesn’t work' risk that could have otherwise cropped up.This boon to workstation and home users is more a side effect as the SFF 8639 standard is meant to quickly allow servers to be upgraded to NVMe with just a backplane swap. For whatever the reason the end result is that NVMe will not just be replacing 'PCIe' Solid State Drives, but will also replace AHCI based 'SATA', and 'SAS' SSDs as well. Taken as whole NVMe is easily the biggest advancement in storage subsystem development since the creation of solid state drives and compatible devices are about to start pouring into the market.