Understanding NVMe (Non-Volatile Memory Express)

SFD8 (Storage Field Day 8) gave us a great opportunity to listen from Intel about a few latest technologies on SSDs (Solid State Drives). The main discussions were on NVMe, 3D XPOINT, ISA-L etc… . I had to do some serious self studies for a better understanding as these topics were quite new for me. Here in this post I am discussing a few points on NVMe.


NVMe What & Why: Introduction of FLASH was big a milestone in the storage industry. A great innovation to the industry which was completely relying on the slow performance spinning disks. But even with FLASH, the way the media was being accessed remained the same – SATA and SAS. This became a big bottleneck for the high performance SSDs.

NVMe was formed as a standard protocol for accessing PCIe FLASH devices. It was formed by a group (NVMHCI group, later turned  NVM Express Inc.) of companies (Lead by Intel) in order to standardize the interface/protocol by which PCIe FLASH were being accessed. Before NVMe, each FLASH vendor was having their on standard of PCIe FLASH access. NVMe v1.0 was released in 2011.

logo-nvmexpress_tmNVMe architecture makes efficient use of the parallelism with SSDs. The result is of course high performance. Compared to SATA (which can have only 1 queue and can have 32 commands), NVMe can have 65536 seperate queues which can have 65536 commands per queue. Below table from Wikipedia will give you a comparison in more detail.


Thus with NVMe, vendors can leverage the existing PCIe technology in producing a high performance and highly efficient FLASH modules.


Image courtesy : intel.com

PCIe FLASH vendors are having NVMe support with their new products in the market. The product acceptance depends highly on how good they are in supporting the NVMe admin and IO command sets.

Intel SSD 750 series (in pic) is an example of PCIe FLASH with NVMe support.


Operating Systems : Most of the common Operating systems are now supporting NVMe. Windows 8.1 and Windows server 2012 R2 support NVMe and NVMe drivers are available as updates in Windows 7 and Windows server 2008 R2. NVMe drivers were made available for Linux and is added into the Kernel version 3.3 . NVMe is supported by other O.Ses including Solaris, OS-X, Chrome OS, OpernBSD and FreeBSD.

Additional Reading : There are many good posts available on internet on NVMe. Posts from PCWorld and flashstorage deserves a special mention. You may also find more resources from NVMe website and you will find the Wikipedia page also very useful.

SFD8 presentation videos from Intel are available here. More write-ups from Tech Field delegates are available here.

Here you can find more posts from me on SFD8.

Disclaimer: My travel and accommodation expenses for the SFD8 (Storage Field Day 8) event were paid by the Tech Field Day team. I am not requested to post about event content and I am not getting paid for any posts or for the time I spend during the event.

This entry was posted in All-Flash, Events, Tech Field Day and tagged , , , , , . Bookmark the permalink.

4 Responses to Understanding NVMe (Non-Volatile Memory Express)

  1. Pingback: Storage Field Day 8 – Wrap-up and Link-o-rama | penguinpunk.net

  2. Pingback: Understanding NVMe (Non-Volatile Memory Express) - Tech Field Day

  3. Pingback: With FLASH, things are changing ‘in a flash’ !? | Vipin V.K

  4. Pingback: Storage Field Day 9 – presenting companies | Vipin V.K

Comments here...