NVM Express

from Wikipedia, the free encyclopedia
NVMe plug-in card for server applications
NVM Express M.2 SSD in format 2280 (22 mm wide, 80 mm long)

NVM Express (short NVMe ) is a first published in 2011 software - interface (ie, a protocol) to SSD , so non-volatile mass storage ( . Engl nonvolatile memory , shortly NVM) over PCI Express needed to connect without the need for vendor-specific drivers would be. It is intended to increase the speed , especially with parallel accesses, which often occur with multithreading , by reducing the latency and the overhead caused by the commands.

NVMe can therefore be mentioned as a series of mass storage interfaces with SCSI and AHCI , since from the point of view of the computer they are generic software interfaces to address different mass storage devices without their own drivers.

The driving force behind the standard is Intel , along with manufacturers of storage solutions such as NetApp , Dell , Cisco , EMC , Marvell and the storage manufacturers SanDisk , Avago Technologies , Micron Technology , HGST , Samsung and Seagate .

NVMe was originally developed primarily for servers, but the technology is now also used in workstations . That is why there are now very different designs of NVMe devices available:

  • PCI Express cards
  • M.2 cards
  • SFF (Small Form Factor) or 2.5 "devices with U.2 connection
  • E1 or NGSFF (Next Generation Small Form Factor)

Compare AHCI and NVMe

AHCI

  • the AHCI interface is an interface for controlling SATA devices via a controller or host bus adapter (HBA), i.e. a bus translator PCI (e) to SATA; a command translation is always included that increases the latencies (the AHCI controller is also called "aggregation point")
  • the AHCI standard is a software standard for the use of SATA devices, which are based on the even older ATA devices; The ATA commands were therefore still used in AHCI, and a trim command (delete) was added for SSDs. This command set is intended for drives (magnetic hard drives or optical drives)
  • the AHCI standard supports native command queuing , the rearrangement of command stacks by the device
  • Hotplug is supported if the device and the connector support it
  • A maximum of 32 ports (devices) are possible per controller
  • 32 commands per port in the "Command Table" (called "Slots") with 8 ATA commands each (called "Command List")
  • the devices return data to the host in the form of PRDT entries ("Physical Region Descriptor Table"); a “command table” can have up to 65535 PRDT entries
  • 6 or 9 (NCQ) registers Read / Writes required per command
  • one interrupt per device and transfer required / possible

NVMe

  • NVMe was developed for persistent solid-state storage with a new command set (small) for this device class. From the outset, care was taken to enable a very high degree of parallelism when accessing NVMe devices:
    • An IO channel or command submission queue with a command completion queue is defined for each access ; 65535 channels are possible.
    • One interrupt is possible / required for each completion queue.
    • 65535 entries are possible per IO channel.
    • Only 2 "Writes" tabs required per command
  • NVMe devices are PCIe devices, so they use the PCIe protocol directly and do not need a protocol translator, HBA or controller (also called "endpoint").
  • Hot swapping is implemented using the PCIe functions.
  • “NVMe Namespaces” are defined as partitions of a physical device; the “IO Channels” are attached to a namespace.
  • Multi-pathing is defined.
  • To boot an NVMe SSD, the UEFI must be switched to UEFI mode. Booting via Legacy BIOS Mode is not supported.

NVMe over fabrics

A further development of the NVMe standard is NVMe over Fabrics ( NVMe-oF for short ). This protocol extension defines the level of a network distributor (the “fabric”) between the NVMe device and the computer or the PCI Express bus of the computer and thus makes it possible to remove the mass storage devices from a computer in order to increase utilization and availability . At the network level, the existing hardware and software technologies of remote direct memory access are used ( Infiniband , RDMA over Converged Ethernet-RoCE, Internet Wide Area RDMA Protocol-iWARP).

NVMe over Fabrics is not directly comparable to a storage area network , as here too, as with the NVMe protocol, the mass storage controller level is omitted in order to keep latencies low. Think of an array of NVMe mass storage devices connected via fabrics like a just a bunch of disks .

Similar standards

There are overlaps with the following standards, which define the connectors and electrically take over PCI Express:

  • mSATA - Here the mechanical connector is borrowed from the Mini-PCI-Express and is smaller than SATA.
  • M.2 - successor to mSATA with a smaller connector, based on PCI Express and NVMe
  • U.2 - Interface for workstations and storage servers, based on PCI Express and NVMe, extended with hot swap function
  • SATA Express , SATAe for short, is the current successor to SATA 6G, is based on PCI Express 3.0 and is primarily intended for desktop PCs. Almost identical to M.2 except for the connector, but only uses two PCIe lanes, which makes it considerably slower

Web links

Commons : NVM Express  - collection of images, videos and audio files

Individual evidence

  1. Boi Feddern: Standard for PCI-Express SSDs adopted. In: heise online . March 5, 2011, accessed September 26, 2015 .
  2. NVMe and AHCI. (No longer available online.) Archived from the original on March 5, 2016 ; accessed on May 16, 2018 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / sata-io.org
  3. NVMe over fabrics. Retrieved May 16, 2018 .
  4. Lutz Labs: Samsung brings new M.2 SSDs with NVMe. In: heise online . September 22, 2015, accessed September 27, 2015 .