Non Volatile Memory Express
   HOME

TheInfoList



OR:

NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface
specification A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard. There are different types of technical or engineering specificati ...
for accessing a computer's
non-volatile storage Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typ ...
media usually attached via the
PCI Express PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
bus. The initial ''NVM'' stands for ''
non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typ ...
'', which is often NAND
flash memory Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
that comes in several physical form factors, including
solid-state drive A solid-state drive (SSD) is a type of solid-state storage device that uses integrated circuits to store data persistently. It is sometimes called semiconductor storage device, solid-state device, or solid-state disk. SSDs rely on non- ...
s (SSDs), PCIe add-in cards, and M.2 cards, the successor to
mSATA SATA (Serial AT Attachment) is a computer bus interface that connects host adapter, host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PAT ...
cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices. Architecturally, the logic for NVMe is physically stored within and executed by the NVMe controller chip that is physically co-located with the storage media, usually an SSD. Version changes for NVMe, e.g., 1.3 to 1.4, are incorporated within the storage media, and do not affect PCIe-compatible components such as motherboards and CPUs. By its design, NVM Express allows host hardware and software to fully exploit the levels of parallelism possible in modern SSDs. As a result, NVM Express reduces I/O overhead and brings various performance improvements relative to previous logical-device interfaces, including multiple long command queues, and reduced latency. The previous interface protocols like
AHCI The Advanced Host Controller Interface (AHCI) is a technical standard defined by Intel that specifies the Hardware register, register-level interface of Serial ATA (SATA) host controllers in a non-implementation-specific manner in its Intel chip ...
were developed for use with far slower
hard disk drive A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
s (HDD) where a very lengthy delay (relative to CPU operations) exists between a request and data transfer, where data speeds are much slower than RAM speeds, and where disk rotation and
seek time Higher performance in hard disk drives comes from devices which have better performance characteristics. These performance characteristics can be grouped into two categories: #Access time, access time and #Data transfer rate, data transfer time (o ...
give rise to further optimization requirements. NVM Express devices are chiefly available in the form of standard-sized PCI Express
expansion card In computing, an expansion card (also called an expansion board, adapter card, peripheral card or accessory card) is a printed circuit board that can be inserted into an electrical connector, or expansion slot (also referred to as a bus sl ...
s and as 2.5-inch form-factor devices that provide a four-lane PCI Express interface through the
U.2 U.2 (pronounced "U-dot-2"), formerly known as SFF-8639, is a computer interface standard used to connect solid-state drives (SSDs) to a computer. It defines the physical connector, electrical characteristics, and supported communication protocol ...
connector (formerly known as SFF-8639). Storage devices using
U.2 U.2 (pronounced "U-dot-2"), formerly known as SFF-8639, is a computer interface standard used to connect solid-state drives (SSDs) to a computer. It defines the physical connector, electrical characteristics, and supported communication protocol ...
and the M.2 specification which support NVM Express as the logical-device interface are a popular use-case for NVMe and have become a dominant form of solid-state storage for servers, desktops, and laptops alike.


Specifications

Specifications for NVMe released to date include: * 1.0e (January 2013) * 1.1b (July 2014) that adds standardized ''Command Sets'' to achieve better compatibility across different NVMe devices, ''Management Interface'' that provides standardized tools for managing NVMe devices, simplifying administration and ''Transport Specifications'' that defines how NVMe commands are transported over various physical interfaces, enhancing interoperability. * 1.2 (November 2014) ** 1.2a (October 2015) ** 1.2b (June 2016) ** 1.2.1 (June 2016) that introduces the following new features over version 1.1b: ''Multi-Queue'' to supports multiple I/O queues, enhancing data throughput and performance, ''Namespace Management'' that allows for dynamic creation, deletion, and resizing of namespaces, providing greater flexibility, and ''Endurance Management'' to monitor and manage SSD wear levels, optimizing performance and extending drive life. * 1.3 (May 2017) ** 1.3a (October 2017) ** 1.3b (May 2018) ** 1.3c (May 2018) ** 1.3d (March 2019) that since version 1.2.1 added ''Namespace Sharing'' to allow multiple hosts accessing a single namespace, facilitating shared storage environments, ''Namespace Reservation'' to provides mechanisms for hosts to reserve namespaces, preventing conflicts and ensuring data integrity, and ''Namespace Priority'' that sets priority levels for different namespaces, optimizing performance for critical workloads. * 1.4 (June 2019) ** 1.4a (March 2020) **1.4b (September 2020) **1.4c (June 2021), that has the following new features compared to 1.3d: ''IO Determinism'' to ensure consistent latency and performance by isolating workloads, ''Namespace Write Protect'' for preventing data corruption or unauthorized modifications, ''Persistent Event Log'' that stores event logs in non-volatile memory, aiding in diagnostics and troubleshooting, and ''Verify Command'' that checks the integrity of data. * 2.0 (May 2021) ** 2.0a (July 2021) ** 2.0b (January 2022) ** 2.0c (October 2022) ** 2.0d (January 2024), that, compared to 1.4c, introduces ''Zoned Namespaces (ZNS)'' to organize data into zones for efficient write operations, reducing write amplification and improving SSD longevity, ''Key Value (KV)'' for efficient storage and retrieval of key-value pairs directly on the NVMe device, bypassing traditional file systems, ''Endurance Group Management'' to manages groups of SSDs based on their endurance, optimizing usage and extending lifespan. * 2.1 (August 2024) that introduces ''Live Migration'' to maintaining service availability during migration, ''Key Per I/O'' for applying encryption keys at a per-operation level, ''NVMe-MI High Availability Out of Band Management'' for managing NVMe devices outside of regular data paths, and ''NVMe Network Boot / UEFI'' for booting NVMe devices over a network.


Background

Historically, most SSDs used
buses A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a motor vehicle that carries significantly more passengers than an average car or van, but fewer than the average rail transport. It is most commonly used ...
such as
SATA SATA (Serial AT Attachment) is a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PATA) standard ...
, SAS, or
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
for interfacing with the rest of a computer system. Since SSDs became available in mass markets, SATA has become the most typical way for connecting SSDs in
personal computer A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
s; however, SATA was designed primarily for interfacing with mechanical
hard disk drive A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
s (HDDs), and it became increasingly inadequate for SSDs, which improved in speed over time. For example, within about five years of mass market mainstream adoption (2005–2010) many SSDs were already held back by the comparatively slow data rates available for hard drives—unlike hard disk drives, some SSDs are limited by the maximum
throughput Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel in a communication network, such as Ethernet or packet radio. The data that these messages contain may be delivered ov ...
of SATA. High-end SSDs had been made using the
PCI Express PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
bus before NVMe, but using non-standard specification interfaces, using a SAS to PCIe bridge or by emulating a hardware RAID controller. By standardizing the interface of SSDs,
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s only need one common
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
to work with all SSDs adhering to the specification. It also means that each SSD manufacturer does not have to design specific interface drivers. This is similar to how USB mass storage devices are built to follow the
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
mass-storage device class specification and work with all computers, with no per-device drivers needed. NVM Express devices are also used as the building block of the
burst buffer In the high-performance computing environment, burst buffer is a fast intermediate storage layer positioned between the front-end computing processes and the back-end storage systems. It bridges the performance gap between the processing speed o ...
storage in many leading supercomputers, such as Fugaku Supercomputer, Summit Supercomputer and Sierra Supercomputer, etc.


History

The first details of a new standard for accessing non-volatile memory emerged at the Intel Developer Forum 2007, when NVMHCI was shown as the host-side protocol of a proposed architectural design that had Open NAND Flash Interface Working Group (ONFI) on the memory (flash) chips side. A NVMHCI working group led by Intel was formed that year. The NVMHCI 1.0 specification was completed in April 2008 and released on Intel's web site. Technical work on NVMe began in the second half of 2009. The NVMe specifications were developed by the NVM Express Workgroup, which consists of more than 90 companies; Amber Huffman of
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
was the working group's chair. Version 1.0 of the specification was released on 1 March 2011, while version 1.1 of the specification was released on 11 October 2012. Major features added in version 1.1 are multi-path I/O (with namespace sharing) and arbitrary-length scatter-gather I/O. It is expected that future revisions will significantly enhance namespace management. Because of its feature focus, NVMe 1.1 was initially called "Enterprise NVMHCI". An update for the base NVMe specification, called version 1.0e, was released in January 2013. In June 2011, a Promoter Group led by seven companies was formed. The first commercially available NVMe chipsets were released by
Integrated Device Technology Integrated Device Technology, Inc. (IDT), was an American semiconductor company headquartered in San Jose, California. The company designed, manufactured, and marketed low-power, high-performance mixed-signal semiconductor products for the adva ...
(89HF16P04AG3 and 89HF32P08AG3) in August 2012. The first NVMe drive,
Samsung Samsung Group (; stylised as SΛMSUNG) is a South Korean Multinational corporation, multinational manufacturing Conglomerate (company), conglomerate headquartered in the Samsung Town office complex in Seoul. The group consists of numerous a ...
's XS1715 enterprise drive, was announced in July 2013; according to Samsung, this drive supported 3 GB/s read speeds, six times faster than their previous enterprise offerings. The LSI SandForce SF3700 controller family, released in November 2013, also supports NVMe. A Kingston HyperX "
prosumer A prosumer is an individual who both consumes and produces. The term is a portmanteau of the words '' producer'' and ''consumer''. Research has identified six types of prosumers: DIY prosumers, self-service prosumers, customizing prosumers, co ...
" product using this controller was showcased at the
Consumer Electronics Show CES (; formerly an initialism for Consumer Electronics Show) is an annual trade show organized by the Consumer Technology Association (CTA). Held in January at the Las Vegas Convention Center in Winchester, Nevada, United States, the event typi ...
2014 and promised similar performance. In June 2014, Intel announced their first NVM Express products, the Intel SSD data center family that interfaces with the host through PCI Express bus, which includes the DC P3700 series, the DC P3600 series, and the DC P3500 series. , NVMe drives are commercially available. In March 2014, the group incorporated to become NVM Express, Inc., which consists of more than 65 companies from across the industry. NVM Express specifications are owned and maintained by NVM Express, Inc., which also promotes industry awareness of NVM Express as an industry-wide standard. NVM Express, Inc. is directed by a thirteen-member board of directors selected from the Promoter Group, which includes Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk and Seagate. In September 2016, the CompactFlash Association announced that it would be releasing a new memory card specification,
CFexpress CFexpress is a standard for removable media memory card, cards by the CompactFlash Association (CFA). The standard uses the NVM Express protocol over a PCI Express, PCIe interface. 3 different form factors are available, with 1 to 4 PCI-E lanes ...
, which uses NVMe. NVMe Host Memory Buffer (HMB) feature added in version 1.2 of the NVMe specification. HMB allows SSDs to utilize the host's
DRAM Dram, DRAM, or drams may refer to: Technology and engineering * Dram (unit), a unit of mass and volume, and an informal name for a small amount of liquor, especially whisky or whiskey * Dynamic random-access memory, a type of electronic semicondu ...
, which can improve the I/O performance for DRAM-less SSDs. For example, HMB can be used for cache the FTL table by the SSD controller, which can improve I/O performance. NVMe 2.0 added optional Zoned Namespaces (ZNS) feature and Key-Value (KV) feature, and support for rotating media such as
hard disk drive A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
s. ZNS and KV allows data to be mapped directly to its physical location in flash memory to directly access data on an SSD. ZNS and KV can also decrease
write amplification Write amplification (WA) is an undesirable phenomenon associated with flash memory and solid-state drives (SSDs) where the actual amount of information physically written to the storage media is a multiple of the logical amount intended to be wr ...
of flash media.


Form factors

There are many form factors of NVMe solid-state drive, such as AIC, U.2, U.3, M.2 etc.


AIC (add-in card)

Almost all early NVMe solid-state drives are HHHL (half height, half length) or FHHL (full height, half length) AIC, with a
PCIe PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
2.0 or 3.0 interface. A HHHL NVMe solid-state drive card is easy to insert into a PCIe slot of a server.


SATA Express, U.2 and U.3 (SFF-8639)

SATA Express SATA Express (sometimes unofficially shortened to SATAe) is a computer bus interface that supports both Serial ATA (SATA) and PCI Express (PCIe) storage devices, initially standardized in the SATA 3.2 specification. The SATA Express co ...
allows the use of two PCI Express 2.0 or 3.0 lanes and two SATA 3.0 (6 Gbit/s) ports through the same host-side SATA Express connector (but not both at the same time). SATA Express supports NVMe as the logical device interface for attached PCI Express storage devices. It is electrically compatible with
MultiLink SAS In computing, Serial Attached SCSI (SAS) is a point-to-point serial Communications protocol, protocol that moves data to and from Computer storage, computer-storage devices such as hard disk drives, solid-state drives and tape drives. SAS replac ...
, so a backplane can support both at the same time. U.2, formerly known as SFF-8639, uses the same physical port as SATA Express but allows up to four PCI Express lanes. Available servers can combine up to 48 U.2 NVMe solid-state drives. U.3 (SFF-TA-1001) is built on the U.2 spec and uses the same SFF-8639 connector. Unlike in U.2, a single "tri-mode" (PCIe/SATA/SAS) backplane receptacle can handle all three types of connections; the controller automatically detects the type of connection used. This is unlike U.2, where users need to use separate controllers for SATA/SAS and NVMe. U.3 devices are required to be backwards-compatible with U.2 hosts, but U.2 drives are not compatible with U.3 hosts.


M.2

M.2, formerly known as the Next Generation Form Factor (NGFF), uses a M.2 NVMe solid-state drive
computer bus In computer architecture, a bus (historically also called a data highway or databus) is a communication system that transfers data between components inside a computer or between computers. It encompasses both hardware (e.g., wires, optical ...
. Interfaces provided through the M.2 connector are PCI Express 3.0 or higher (up to four lanes).


EDSFF


NVMe-oF

NVM Express over Fabrics (NVMe-oF) is the concept of using a
transport protocol Transport (in British English) or transportation (in American English) is the intentional movement of humans, animals, and goods from one location to another. Modes of transport include air, land ( rail and road), water, cable, pipelines, a ...
over a network to connect remote NVMe devices, contrary to regular NVMe where physical NVMe devices are connected to a PCIe bus either directly or over a PCIe switch to a PCIe bus. In August 2017, a standard for using NVMe over
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
(FC) was submitted by the standards organization
International Committee for Information Technology Standards The InterNational Committee for Information Technology Standards (INCITS), (pronounced "insights"), is an ANSI-accredited standards development organization composed of Information technology developers. It was formerly known as the X3 and NCIT ...
(ICITS), and this combination is often referred to as FC-NVMe or sometimes NVMe/FC. As of May 2021, supported NVMe transport protocols are: * FC, FC-NVMe * TCP, NVMe/TCP *
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
, RoCE v1/v2 ( RDMA over converged Ethernet) *
InfiniBand InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
, NVMe over InfiniBand or NVMe/IB The standard for NVMe over Fabrics was published by NVM Express, Inc. in 2016. The following software implements the NVMe-oF protocol: * Linux NVMe-oF initiator and target. RoCE transport was supported initially, and with
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
5.x, native support for TCP was added. * Storage Performance Development Kit (SPDK) NVMe-oF initiator and target drivers. Both RoCE and TCP transports are supported. * StarWind NVMe-oF initiator and target for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, supporting both RoCE & TCP, and
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
transports.
Lightbits Labs
NVMe over TCP target for various
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
distributions & public clouds. * Bloombase StoreSafe Intelligent Storage Firewall supports NVMe over RoCE, TCP, and
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
for transparent storage security protection.
NetApp ONTAP
supports iSCSI and NVMe over TCP targets.
Simplyblock
storage platform with NVMe over Fabrics support.


Comparison with AHCI

The Advanced Host Controller Interface (AHCI) has the benefit of wide software compatibility, but has the downside of not delivering optimal performance when used with SSDs connected via the
PCI Express PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
bus. As a logical-device interface, AHCI was developed when the purpose of a host bus adapter (HBA) in a system was to connect the CPU/memory subsystem with a much slower storage subsystem based on rotating magnetic media. As a result, AHCI introduces certain inefficiencies when used with SSD devices, which behave much more like
RAM Ram, ram, or RAM most commonly refers to: * A male sheep * Random-access memory, computer memory * Ram Trucks, US, since 2009 ** List of vehicles named Dodge Ram, trucks and vans ** Ram Pickup, produced by Ram Trucks Ram, ram, or RAM may also ref ...
than like spinning media. The NVMe device interface has been designed from the ground up, capitalizing on the lower latency and parallelism of PCI Express SSDs, and complementing the parallelism of contemporary CPUs, platforms and applications. At a high level, the basic advantages of NVMe over AHCI relate to its ability to exploit parallelism in host hardware and software, manifested by the differences in command queue depths, efficiency of
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
processing, the number of uncacheable
register Register or registration may refer to: Arts, entertainment, and media Music * Register (music), the relative "height" or range of a note, melody, part, instrument, etc. * ''Register'', a 2017 album by Travis Miller * Registration (organ), ...
accesses, etc., resulting in various performance improvements. The table below summarizes high-level differences between the NVMe and AHCI logical-device interfaces.


Operating system support

;
ChromeOS ChromeOS, sometimes styled as chromeOS and formerly styled as Chrome OS, is an operating system designed and developed by Google. It is derived from the open-source operating system and uses the Google Chrome web browser as its principal user ...
: On February 24, 2015, support for booting from NVM Express devices was added to
ChromeOS ChromeOS, sometimes styled as chromeOS and formerly styled as Chrome OS, is an operating system designed and developed by Google. It is derived from the open-source operating system and uses the Google Chrome web browser as its principal user ...
. ;
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
: The first release of
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
with NVMe support is version 4.6. ;
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
: Intel sponsored a NVM Express driver for
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
's head and stable/9 branches. The nvd(4) and nvme(4) drivers are included in the GENERIC kernel configuration by default since FreeBSD version 10.2 in 2015. ; Genode : Support for consumer-grade NVMe was added to the Genode framework as part of the 18.05 release. ;
Haiku is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
:
Haiku is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
gained support for NVMe on April 18, 2019. ;
illumos Illumos (stylized as "illumos") is a partly free and open-source Unix operating system. It has been developed since 2010 and is based on OpenSolaris, after the discontinuation of that product by Oracle. It comprises a kernel, device driver ...
:
illumos Illumos (stylized as "illumos") is a partly free and open-source Unix operating system. It has been developed since 2010 and is based on OpenSolaris, after the discontinuation of that product by Oracle. It comprises a kernel, device driver ...
received support for NVMe on October 15, 2014. ;
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
: With the release of the iPhone 6S and 6S Plus,
Apple An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
introduced the first mobile deployment of NVMe over
PCIe PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
in smartphones. Apple followed these releases with the release of the first-generation
iPad Pro The iPad Pro is a series of tablet computers, positioned as the premium line of Apple Inc., Apple's iPad brand. It runs iPadOS, a tablet-optimized Fork (software development), fork of the iOS operating system. Early models were distinguished f ...
and first-generation iPhone SE that also use NVMe over PCIe. ;
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
: Intel published an NVM Express driver for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
on 3 March 2011, which was merged into the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
mainline on 18 January 2012 and released as part of version 3.3 of the Linux kernel on 19 March 2012. Linux kernel supports NVMe Host Memory Buffer from version 4.13.1 with default maximum size 128 MB. Linux kernel supports NVMe Zoned Namespaces start from version 5.9. ;
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
: Apple introduced software support for NVM Express in
Yosemite Yosemite National Park ( ) is a national park of the United States in California. It is bordered on the southeast by Sierra National Forest and on the northwest by Stanislaus National Forest. The park is managed by the National Park Service ...
10.10.3. The NVMe hardware interface was introduced in the 2016
MacBook MacBook is a type of Mac laptop computer that is developed and marketed by Apple that use Apple's macOS operating system since 2006. The MacBook brand replaced the PowerBook and iBook brands during the Mac transition to Intel processors, ann ...
and
MacBook Pro The MacBook Pro is a line of Mac laptop computers developed and manufactured by Apple. Introduced in 2006, it is the high-end sibling of the MacBook family, sitting above the ultra-portable MacBook Air and previously the low-end MacBook li ...
. ;
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
:
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
added support for NVMe in NetBSD 8.0. The implementation is derived from OpenBSD 6.0. ;
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
: Development work required to support NVMe in
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
has been started in April 2014 by a senior developer formerly responsible for USB 2.0 and
AHCI The Advanced Host Controller Interface (AHCI) is a technical standard defined by Intel that specifies the Hardware register, register-level interface of Serial ATA (SATA) host controllers in a non-implementation-specific manner in its Intel chip ...
support. Support for NVMe has been enabled in the OpenBSD 6.0 release. ;
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
: Arca Noae provides an NVMe driver for
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
, as of April, 2021. The driver requires advanced interrupts as provided by the ACPI PSD running in advanced interrupt mode (mode 2), thus requiring the SMP kernel, as well. ;
Solaris Solaris is the Latin word for sun. It may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Sol ...
: Solaris received support for NVMe in Oracle Solaris 11.2. ; VMware : Intel has provided an NVMe driver for VMware, which is included in vSphere 6.0 and later builds, supporting various NVMe devices. As of vSphere 6 update 1, VMware's VSAN software-defined storage subsystem also supports NVMe devices. ;
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
: Microsoft added native support for NVMe to Windows 8.1 and Windows Server 2012 R2. Native drivers for
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
and
Windows Server 2008 R2 Windows Server 2008 R2, codenamed "Windows Server 7" or "Windows Server 2008 Release 2", is the eighth major version of the Windows NT operating system produced by Microsoft to be released under the Windows Server brand name. It was release ...
have been added in updates. Many vendors have released their own Windows drivers for their devices as well. There are also manually customized installer files available to install a specific vendor's driver to any NVMe card, such as using a Samsung NVMe driver with a non-Samsung NVMe device, which may be needed for additional features, performance, and stability. : Support for NVMe HMB was added in Windows 10 Anniversary Update (Version 1607) in 2016. In Microsoft Windows from Windows 10 1607 to Windows 11 23H2, the maximum HMB size is 64 MB. Windows 11 24H2 updates the maximum HMB size to 1/64 of system RAM. : Support for NVMe ZNS and KV was added in Windows 10 version 21H2 and
Windows 11 Windows 11 is a version of Microsoft's Windows NT operating system, released on October 5, 2021, as the successor to Windows 10 (2015). It is available as a free upgrade for devices running Windows 10 that meet the #System requirements, Windo ...
in 2021. The OpenFabrics Alliance maintains an open-source NVMe Windows Driver for Windows 7/8/8.1 and Windows Server 2008R2/2012/2012R2, developed from the baseline code submitted by several promoter companies in the NVMe workgroup, specifically IDT, Intel, and LSI. The current release is 1.5 from December 2016. The Windows built-in NVMe driver does not support
hardware acceleration Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...
; hardware acceleration required vendor drivers.


Software support

; QEMU : NVMe is supported by
QEMU The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
since version 1.6 released on August 15, 2013. NVMe devices presented to QEMU guests can be either real or emulated. ; UEFI : An open source NVMe driver for
UEFI Unified Extensible Firmware Interface (UEFI, as an acronym) is a Specification (technical standard), specification for the firmware Software architecture, architecture of a computing platform. When a computer booting, is powered on, the UEFI ...
called NvmExpressDxe is available as part of EDKII, the open-source reference implementation of UEFI.


Management tools


nvmecontrol

The nvmecontrol tool is used to control an NVMe disk from the command line on FreeBSD. It was added in FreeBSD 9.2.


nvme-cli

NVM-Express user space tooling for Linux.


See also

* M.2 *
PCI Express PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
*
SATA Express SATA Express (sometimes unofficially shortened to SATAe) is a computer bus interface that supports both Serial ATA (SATA) and PCI Express (PCIe) storage devices, initially standardized in the SATA 3.2 specification. The SATA Express co ...
*
Solid-state drive A solid-state drive (SSD) is a type of solid-state storage device that uses integrated circuits to store data persistently. It is sometimes called semiconductor storage device, solid-state device, or solid-state disk. SSDs rely on non- ...
* Universal Flash Storage (UFS)


References


External links

*
CompactFlash Association

LFCS: Preparing Linux for nonvolatile memory devices
LWN.net, April 19, 2013, by Jonathan Corbet
Multipathing PCI Express Storage
Linux Foundation The Linux Foundation (LF) is a non-profit organization established in 2000 to support Linux development and open-source software projects. Background The Linux Foundation started as Open Source Development Labs in 2000 to standardize and prom ...
, March 12, 2015, by Keith Busch
NVMe, NVMe-oF and RDMA for network engineers
August 2020, by Jerome Tissieres {{Computer bus Computer storage buses Solid-state computer storage Computer hardware standards