Bild: iStock, Kandfoto

NVM Express Schneller Speicher für Embedded-Systeme

14.03.2018

NVM Express (NVMe) sorgt auf den Unternehmens- und Verbrauchermärkten bereits für viel Wirbel. Jetzt stellt sich die Frage, ob dieses extrem schnelle Solid-State-Drive-Protokoll (SSD) auch im Embedded-Bereich eine Zukunft hat.

NVMe wurde mit dem Hauptaugenmerk auf Geschwindigkeit entwickelt und hat von Anfang an neue Maßstäbe in Sachen Performance gesetzt. Durch die parallele Abarbeitung von Befehlen ist es in der Lage, das Potenzial der leistungsstärksten Unternehmens- und Verbraucher-SSDs von heute voll auszuschöpfen.

Die Märkte für integrierte und industrielle Systeme haben jedoch ganz andere Anforderungen als die meisten Unternehmen und Verbraucher. Statt Geschwindigkeit sind für integrierte und industrielle Anwendungen eher Aspekte wie Zuverlässigkeit, Leistungsaufnahme und Formfaktor wichtig. Es wird diskutiert, ob die neuesten Verbesserungen der NVMe-
Spezifikation im Embedded-Bereich einen entscheidenden Mehrwert schaffen können oder ob die Entwickler solcher Anwendungen mit dem altbewährten SATA-
Protokoll besser beraten sind.

Das ist NVM Express

NVMe kam 2012 auf den Markt und steht für Non-Volatile Memory Express. Es ist ein Protokoll zur Anbindung von Flash-Speichern über einen PCI Express-Bus (PCIe). Während ältere Protokolle wie SATA noch aus der Zeit der rotierenden Magnetscheiben stammen, war NVMe von Anfang an darauf ausgelegt, das Potenzial der Flash-Speicherung voll auszuschöpfen.

Dazu macht es sich die Parallelität heutiger Rechensysteme sowie den wahl-
freien Zugriff dieser Speicher zunutze. Im Gegensatz zur einen SATA-Warteschlange mit ihren 32 Befehlen unterstützt NVMe bis zu 64.000 Warteschlangen mit jeweils bis zu 64.000 Befehlen. Durch die Anbindung über den PCIe-Bus ist NVMe eine voll skalierbare Schnittstelle, die extrem hohe Datenraten unterstützt. Bei SATA III ist bei 600 MB pro Sekunde Schluss. Die Datenrate des NVMe-Busses wird durch die Anzahl der unterstützten PCIe-Lanes bestimmt. PCIe der dritten Generation unterstützt beispielsweise Datenraten von 1 GB/s pro Lane. Damit kann der Durchsatz vervielfältigt werden. Das Protokoll wird direkt auf dem PCIe-Bus ausgeführt, sodass NVMe im Gegensatz zu SATA oder SCSI keinen EA-Controller oder einen Hostbus-Adapter erfordert. So lassen sich sowohl die Latenz als auch die Gesamtleistungsaufnahme des Systems deutlich reduzieren.

Effizienter als SATA

Im Gegensatz zu seinem Hauptkonkurrenten SATA, der einen Steckverbinder, einen Bus und ein logisches Protokoll (AHCI, Advanced Host Controller Interface) umfasst, beschreibt NVMe lediglich eine logische Protokollschicht, die über einen PCIe-Bus ausgeführt wird. Die
NVMe-Geräte können über verschiedene Formfaktoren verfügen und über einen PCIe-, M.2- oder U.2-Anschluss angebunden werden. NVMe unterstützt nicht nur höhere Datenraten als SATA, sondern bietet grundsätzlich mehr Effizienz. AHCI erfordert vier nicht zwischengespeicherte Lesevorgänge für einen Befehl, NVMe dagegen keinen einzigen – deshalb auch die niedrige Latenz.

Zudem verwendet es einen optimierten Befehlssatz, der weniger als halb so viele CPU-Taktzyklen wie SATA zur Verarbeitung einer E/A-Anforderung benötigt. Auch kleine zufällige E/A-Vorgänge können effizienter ausgeführt werden. Eine 4-KB-Leseanforderung benötigt bei SATA zwei Befehle, bei NVMe dagegen nur einen.

NVMe in Embedded-Systemen

Die Vorteile von NVMe für Highend-Speichersysteme von Unternehmen und Verbrauchern lassen sich nicht leugnen. Nicht ganz so klar auf der Hand liegt jedoch, ob sich NVMe für die Implementierung in modernen eingebetteten Anwendungen eignet. SATA wird immerhin seit Jahren verwendet und funktioniert gut. Warum also eine neue Lösung? NVMe bietet mehr als nur die hohe Datenrate. Zwar wurde das effiziente Protokoll ursprünglich im Hinblick auf die Anforderungen von Unternehmenskunden entwickelt – es liefert jedoch auch spürbare Vorteile für Entwickler eingebetteter Systeme.

Die Nachfrage nach eingebetteten Anwendungen mit geringer Leistungsaufnahme ist nämlich enorm. Ob IoT-Geräte, Bluetooth-Beacons, Smartphones oder Wearables – bei batteriebetriebenen Geräten spielt der Energiebedarf eine wichtige Rolle. Geschwindigkeit ist in diesem Bereich selten der entscheidende Faktor. Vielmehr geht es darum, eine hohe Zuverlässigkeit, kompakte Formate und vor allem eine geringe Leistungsaufnahme zu gewährleisten. NVMe verfügt über erweiterte Funktionen zur Fehlermeldung und Verwaltung, einschließlich durchgängiger Datensicherheit. Dieser End-to-End-Schutz basiert auf Metadaten-Tags, um sicherzustellen, dass die Daten, die auf das Laufwerk geschrieben werden, und die Daten, die das System vom Laufwerk liest, korrekt sind – ideal für Anwendungen, bei denen die Integrität der Daten unerlässlich ist.

NVMe ist nicht an eine bestimmte Größe und Form gebunden. Es wird vom M.2-Formfaktor unterstützt, einem der kleinsten und am dichtesten bestückten SSD-Formfaktoren auf dem Markt. Der M.2-Standard ermöglicht Modulbreiten von gerade einmal 12 bis 30 mm und Längen von nur 16 bis 110 mm. M.2-SSDs für Verbraucher haben normalerweise größere Formfaktoren, um größere Kapazitäten zu ermöglichen. Für eingebettete Systeme, die keine großen Kapazitäten benötigen und deshalb auf extrem kleine SSDs zurückgreifen können, ermöglicht M.2 jedoch auch geringere Größen. Neben M.2 sind NVMe-SSDs auch im BGA-Format verfügbar und stehen eMMC-SSDs damit in nichts nach.

Zudem punktet die NVMe-Technologie mit ihrer geringen Leistungsaufnahme. Was die Verarbeitungseffizienz angeht, benötigen E/A-Vorgänge mit NVMe (wie bereits erwähnt) weniger CPU-Zyklen zur Ausführung als SATA-E/A-Vorgänge. Grund dafür ist der effizientere Befehlssatz. Da nicht zwischengespeicherte Lesevorgänge entfallen und Schreibvorgänge höchstens einen Lesevorgang benötigen, können auch kleine zufällige E/A-Vorgänge effizient ausgeführt werden. Das optimierte NVMe-Protokoll und die hohe Performance steigern seine Energieeffizienz bei aktivem Laufwerk. Gleichzeitig sorgen PCIe-Energiemanagementfunktionen für Energieeffizienz im Leerlauf. Die PCIe-Anbindung ermöglicht eine sehr hohe Leistungsaufnahme von bis zu 50 mW – sogar im traditionellen L1-Leerlaufstatus. Erweiterte Modi für das Leistungsmanagement lassen die Leistungsaufnahme im Leerlauf sogar noch weiter sinken. Im L1.1-Substatus sinkt der Verbrauch bei normaler Betriebsspannung; im L1.2-Substatus werden schnelle Schaltkreise abgeschaltet. Dank dieser beiden Modi können NVMe-SSDs eine Leistungsaufnahme im Ruhemodus von nur 2,5 mW liefern – 50 Prozent weniger als der entsprechende DevSLP-Modus der meisten SATA-SSDs.

Darüber hinaus muss bei SATA-DevSLP ein Signal vom Betriebssystem gesendet werden, um den Stromsparmodus zu aktivieren. Die Controller von NVMe-Laufwerken dagegen sind so programmiert, dass sie ihre Modi selbstständig wechseln können. So kann das Laufwerk den Stromsparmodus auf Hardware-Ebene schnell und autonom aktivieren beziehungsweise deaktivieren und damit die Zeit im Ruhemodus maximieren sowie Wartezeiten beim Hochfahren des Laufwerks minimieren.

NVMe ist eMMC in Bezug auf geringe Leistungsaufnahme und niedrigen Preis nicht unbedingt überlegen. In batteriebetriebenen Embedded-Geräten der nächsten Generation kann es dank seiner Kombination aus optimierten Stacks, niedriger Leistungsaufnahme und kleinem Formfaktor mSATA jedoch durchaus das Wasser reichen.

NVMe für Mobilgeräte und Edge-Computing

Neben Geräten mit geringer Leistungsaufnahme spielen auch mobile Geräte und Edge-Computing eine zunehmend wichtigere Rolle im Embedded-Bereich. Zu diesen Anwendungen zählen Smartphones, Tablets, Laptops sowie Router und Gateways zur Datenverarbeitung und -analyse am Netzwerkrand. Mobile Geräte sind batteriebetrieben und verfügen über eingeschränkte Energiereserven, doch ihre Speicherkapazität ist enorm, und die Speicherleistung spielt eine wichtige Rolle. Für diese Geräte ist NVMe dank seiner Performance, seines kleinen Formfaktors und der geringen Leistungsaufnahme gut geeignet. Hinzu kommt die einfache Integration ohne Speichercontroller des Hosts. Außerdem bietet NVMe 1.2 die Funktion Host Member Buffer (HMB). Mit dieser Funktion können NVMe-SSDs einen Teil des Hostsystemspeichers nutzen und kommen somit ohne integrierten DRAM im SSD-Controller aus. Damit bieten NVMe-SSDs weiterhin eine hohe Speicherleistung, sind jedoch schneller, kostengünstiger und energieeffizienter.

Neben dem mobilen Computing ist Edge-Computing ein weiterer Bereich, in dem Speicherkapazität und -leistung eine zentrale Rolle spielen. Von autonomen Fahrzeugen über Drohnen bis hin zu Routern und Gateways zur Datenverarbeitung – Edge-
Computing zeigt, dass nicht alle Vorgänge in die Cloud verlagert werden können oder sollten. In einem hochautomatisierten Werk kann ein IoT-Gateway Produktionsdaten zur Big-Data-Analyse an die Cloud senden und gleichzeitig grundlegende Analysen durchführen, um Echtzeitinformationen zur Optimierung der Fertigungseffizienz zu erhalten. Die Übertragung in die Cloud kann zu lange dauern, sodass die ausgewerteten Daten anschließend nicht mehr brauchbar sind. Diese Gateways haben zwar nicht die gleichen Leistungsanforderungen wie Enterprise-Server, Latenz und Bandbreite sind für sie jedoch ebenso wichtig, damit sie Daten in Echtzeit verarbeiten können. Diesen Anforderungen wird NVMe gerecht.

NVMe für Embedded-Storage

Der Markt für eingebettete Speicheranwendungen ist groß und vielseitig. Die Anforderungen reichen dabei von sehr niedriger Leistungsaufnahme bis hin zu einer Performance, die der von Desktop-PCs oder Servern nicht nachsteht. Neben mehr Input/Output-Operationen pro Sekunde (IOPS) für Rechenzentren und ähnlichen Anwendungen bietet das NVMe-Protokoll eine hohe Effizienz und wird damit zu einer attraktiven Option für Embedded-Storage-Anwendungen.

NVMe kann in kleinste eingebettete Geräte mit geringer Leistungsaufnahme integriert werden. Sein schlanker Software-Stack und die direkte PCIe-Bus-Schnittstelle sorgen für Schnelligkeit, Effizienz und eine einfache Implementierung. Zudem reduziert die Unterstützung für PCIe-Zustände mit niedriger Leistungsaufnahme den Energieverbrauch auf ein Minimum. Den eMMC-Standard wird NVMe wahrscheinlich nie vollständig ersetzen, durch seine Vorteile ist es jedoch eine geeignete Alternative für mSATA-Anwendungen.

Dank seiner PCIe 3.0 x4 NVMe-Schnittstelle ist das 3D-NAND-SSD-Modul 600p von Intel bis zu 17 Mal schneller als eine HDD und dreimal so schnell wie konventionelle SATA-SSDs. Seine Leistungsaufnahme ist im Vergleich zu einer HDD um mehr als 90 Prozent geringer, was die Batterielebensdauer erheblich erhöht. Auf dem Flash Memory Summit 2017 stellte Swissbit im Sommer 2017 seinen N-10 vor. Dabei handelt es sich um den Prototyp eines NVMe PCIe M.2-SSD-Moduls mit einer
2-Lane/4-Channel-Architektur, die speziell für eingebettete Systemdesigns mit Energie- und Platzbeschränkung ausgelegt ist. Bei erheblich geringerer Leistungsaufnahme liefert es eine doppelt so hohe Performance wie eine SSD mit einer 6-GB/s-SATA-
Schnittstelle.

Bildergalerie

  • Unter dem Namen N-10 hat Swissbit erstmals Prototypen des NVMe-PCIe-M.2-Moduls vorgestellt. N-10 ist in besonderer Weise auf die Anforderungen von Telekommunikations- und Embedded-Systemen zugeschnitten.

  • Diese NVMe-SSD wird nicht mehr auf die Hauptplatine gesteckt wie eine M.2-SSD oder via Kabel (SATA) verbunden, sondern via BGA direkt auf die Hauptplatine gelötet.

Firmen zu diesem Artikel
Verwandte Artikel