Definition

Was ist NVMe?

| Autor / Redakteur: Walter Schadhauser / Rainer Graefen

NVM Subsystem mit zwei Controllern und einem PCIe-Port: So könnte man den ausfallsicheren Betrieb auf eine Dual-ported SSD organisieren. Bei der Variante mit 2 PCIe-Ports sind alle Zugriffskomponenten redundant.
NVM Subsystem mit zwei Controllern und einem PCIe-Port: So könnte man den ausfallsicheren Betrieb auf eine Dual-ported SSD organisieren. Bei der Variante mit 2 PCIe-Ports sind alle Zugriffskomponenten redundant. (Bild: NVM Express)

Non Volatile Memory Express ist ein Festplattenprotokoll, das über die nächsten Jahre hinweg das SATA- und wahrscheinlich auch das SAS-Protokoll ersetzen wird. Durch einen reduzierten Befehlssatz ist das Protokoll sehr schlank geworden. NVMe benutzt nicht wie SAS und SATA den Plattform Controller Hub (PCH), sondern das PCIe-Interface. PCIe bietet durch die Bündelung von 4 oder 8 Lanes vorerst genügend Bandbreite und durch die enge Kopplung mit der CPU geringe Latenzen.

Schon vor einigen Jahren wurde für die Leser von Storage-Insider ersichtlich, dass die zukünftigen SSDs ihren Lebenszyklus nicht an einer SAS, geschweige denn an einer SATA-Schnittstelle beenden würden. Die 6 GBit/s Bandbreite einer SATA-Schnittstelle war schnell schon durch die 2. SSD-Generation überlastet und im letzten Jahr traf dasselbe dann auf die doppelt so schnelle SAS-Schnittstelle zu. Der häufig von Experten zitierte Storage-Stack hat sich überlebt.

Mit dem Non Volatile Memory Express Interface (NVMe) soll das anders werden. Grundsätzlich geht es nicht nur um die Kommunikation und bessere Verwaltbarkeit von SSDs, sondern darum, dass zukünftige Halbleiterspeicher wie 3D Xpoint, ST-MRAMs oder ReRAMs mit maximal möglicher Performance und niedrigsten Latenzen betrieben werden können.

Kooperation von Hard- und Software bei Höchstgeschwindigkeit

Für die Insider von Standardisierungsgremien war das sogar schon ein paar Jahre vor der ersten NVMe-Spezifikation ersichtlich. Als vorerst letzte Schnittstelle blieb damals wie heute der PCIe-Bus übrig, der eigentlich für schnelle Grafik- und inzwischen auch für 100 GBit/s-Netzwerkkarten konzipiert worden ist.

Doch PCIe-Bus und Speichermedien wie SSDs respektive Flash-Speicherkarten konnten nicht miteinander. Einige Flashkarten-Hersteller wie Fusion-IO lösten die Kommunikationsprobleme des neu zu konzipierenden Storage-Stacks auf ihre eigene Art und entwickelten proprietäre Treiber.

Mit NVMe ist das Problem des Wildwuchses herstellerspezifischer Treiber gelöst. Allerdings scheinen erst in der Version NVMe 1.3 vom Mai 2017 alle wichtigen Funktion integriert worden zu sein, die für den normalen Rechenzentrumsbetrieb erforderlich sind. Z.B. das Booten von externen Medien.

Wie schon angedeutet ist NVMe auf die Zusammenarbeit mit dem seriellen PCIe-Bus zugeschnitten. Die Kommunikation mit der PCIe Version 4.0 erfolgt bei inzwischen 16 Gigatransfers pro Sekunde, in Version 5.0 sollen es 25 bis max. 32 GT/S werden. Der Datentransfer erfolgt bei PCIe 4.0 also mit 2 GByte pro Sekunde und pro Lane. (Eine Lane ist ein Kombination zweier Leitungen, die je das Sende- und das Empfangssignal transportieren. Maximal 32 Lanes sind beim PCIe-Standard vorgessehen. Die Red.)

Für Notebook-Hersteller, die mit M2.-Speicherkarten arbeiten, ist das eine erfreuliche Entwicklung. Bei PCIe 3.0 sind für moderne Flash-Speicher inzwischen vier Lanes mit einem Transportvolumen von 4 GByte/s notwendig, um vollen Nutzen aus der Flash-Performance ziehen zu können. Mit dem neuem Standard käme man mit 2 Lanes aus, so dass für andere Aufgaben wie z.B. USB-3.0-Schnittstellen von den maximal 40 (zukünftig: 48) PCIe-Kanälen mehr Datenleitungen zur Verfügung stünden.

Einiges zum NVMe-Protokoll

Das NVMe trägt nun einiges zum beschleunigten Datentransport bei. Die Anzahl der Kommunikationsbefehle hat sich verglichen mit dem SATA-Protokoll halbiert. Der Befehlssatz kennt 13 Befehle, die ein gleichartiges Parameterschema besitzen. NVMe kann 64.000 Warteschlangen mit 64.000 Befehlen bedienen. Das sollte auch für eine größere Anzahl von Prozessoren mit einer zweistelligen Anzahl von Prozessorkernen und Threads erst einmal ausreichend sein. Eine Priorisierung und Umsortierung der Befehle innerhalb der Warteschlange ist möglich. Die Verarbeitung erfolgt parallelisiert, so dass maximaler Nutzen aus dem "Random Access", dem wahlfreien Zugriff auf den inzwischen 200 Mikrosekunden schnellen Flash-Speicher gezogen werden kann.

Das bringt NVMe:

NVMe 1.0 (März 2011):

NVMe 1.0e (Januar 2013):

NVMe 1.1b (Juli 2014):

NVMe 1.2.1 (Juni 2016): Vorrang in dieser Version hat der Support von SSDs in tragbaren Geräten. Dazu gehört ein verbessertes Power-Management, um die Funktionen auch bei niedrigem Energielevel aufrechtzuerhalten und ein Überhitzungsschutz. Nun kann auch der Hauptspeicher des Hosts für die Verwaltung von SSDs eingesetzt werden. Das ermöglicht preiswertere SSD-Designs.

NVMe 1.3 (Mai 2017): Mit dieser Version ist NVMe Enterprise und Cloud ready, verspricht die NVM Express Organisation. Unterstützt werden nun Virtualisierung, die Zuordnung von SSD-Kapazität zu virtuellen Maschinen und Streams wie auch PCIe 4.0, um Vorteile aus den Latenzzeiten und der Performance der neuesten PCIe-Spzifikation zu ziehen . Ergänzt wurde die Fähigkeit, von mobilen Speichermedien zu booten. Eine sogenannte Sanitize-Funktion erleichtert die Volllöschung des Flash-Speichers für die schnelle Wiederverwertbarkeit des Gerätes.

Kommentare werden geladen....

Was meinen Sie zu diesem Thema?

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44203522 / Definitionen)