What is NVMe?
Non-Volatile Memory Express (NVMe), also sometimes known as Enterprise Non-Volatile Memory Host Controller Interface (NVMHCI), is a shared logical scalable boundary with a set of rules, standards, and protocols to exchange information between the non-volatile storage media such as solid-state device (SSDs), next-generation form factor (NGFF) cards, etc. NVMe was developed by a group of vendors including Intel, Samsung, Sandisk, Dell, and Seagate to achieve fast data transfer between dynamic random-access memory and storage devices.
When the NVMe specification is used for memory subsystem via a Peripheral Component Interconnect Express (PCIe) bus, it is referred to NVMe over PCIe. However, when NVMe over Fabrics specification is used to enable communication over other interconnects (for example, Ethernet, InfiniBand, Fibre Channel, etc.) to connect remote devices over a network, it is referred to NVMe over Fabrics.
NVMe allows a maximum of 65535 queues with 65536 commands per queue, with highly efficient 4 kilobytes (KB) command that can get parameters in one 64-byte fetch, allows 2048 message signaled interrupts, uncacheable register access of two 2000 cycles per command, and no locking required for parallelism and multiple threads. It also includes support for end-to-end data protection, enhanced error reporting, and virtualization. As a result, NVMe can deliver high bandwidth and low latency storage access, which can help industries and data centers to meet the higher performance demands related to non-volatile memory storage. Nowadays, it is also commonly used in computer systems for playing games or do CPU-intensive processing to avoid bottlenecks.
The operating system that supports NVMe includes, but not limited to, Linux, Windows, VMware, Solaris, macOS, OpenBSD, iOS, Illumos, Haiku, Genode, FreeBSD, DragonFly BSD, and Chrome OS.« Back to Definition Index