Home Artikel Ist es sinnvoll, NVMe in eingebetteten Lösungen einzusetzen?

Ist es sinnvoll, NVMe in eingebetteten Lösungen einzusetzen?

NVM Express (NVMe) sorgt bereits für viel Aufsehen bei Unternehmen und Verbrauchern, aber einige fragen sich, ob dieses ultraschnelle Solid State Drive (SSD)-Protokoll auch in eingebetteten Lösungen eine Zukunft haben wird. NVMe wurde mit Blick auf Geschwindigkeit entwickelt und übertrifft seit dem ersten Tag alle Leistungsbenchmarks. Durch die Konzentration auf Parallelität war es möglich, das volle Potenzial der besten Consumer- und Enterprise-SSDs von heute auszuschöpfen. Die Märkte für integrierte und industrielle Lösungen haben jedoch ganz andere Ziele als Unternehmen und Verbraucher. Anstelle von Geschwindigkeit konzentrieren sich eingebettete und industrielle Anwendungsbereitstellungen oft auf Dinge wie Zuverlässigkeit, Stromverbrauch und Formfaktor. Es stellt sich die Frage, ob die jüngsten Verbesserungen der NVMe-Spezifikationen es ermöglichen werden, in der Embedded-Arena zu konkurrieren, oder ob Ingenieure, die sich mit solchen Anwendungen befassen, gut daran tun, beim bewährten und getesteten Protokoll SATA zu bleiben.
Was ist NVMe
NVMe wurde 2012 veröffentlicht und ist ein Speicherprotokoll, das für Flash-Laufwerke entwickelt wurde und über einen elektrischen Bus von PCI Express (PCIe) funktioniert. Während frühere Protokolle wie SATA zu Zeiten sich drehender Festplatten konzipiert wurden, wurde NVMe von Grund auf mit dem Ziel entwickelt, das volle Potenzial von Flash-Speicher auszuschöpfen. Dies geschieht durch Nutzung der Parallelität, die heutigen Computersystemen innewohnt, sowie der Direktzugriffsnatur von Flash-Speicher. Anstelle der einzelnen Befehlswarteschlange von SATA, die bis zu 32 Befehle unterstützt, unterstützt NVMe bis zu 64 Warteschlangen, von denen jede bis zu 000 Befehle aufnehmen kann. Da es über den PCIe-Bus funktioniert, ist NVMe eine vollständig skalierbare Schnittstelle, die sehr hohe Maximalgeschwindigkeiten unterstützt. Während SATA III bei 64 MB/s endet, wird die Busgeschwindigkeit von NVMe durch die Anzahl der unterstützten PCIe-Lanes bestimmt.
Mit 1 GB/s-Datenraten-Lanes, die von PCIe Gen 2 unterstützt werden, kann die Leistung um ein Vielfaches vervielfacht werden. NVMe ist ein Protokoll, das direkt auf dem PCIe-Bus läuft, sodass Sie auch keinen E/A-Controller oder Host-Bus-Adapter wie bei SATA oder SCSI benötigen. Dies reduziert sowohl die Latenz als auch den Stromverbrauch des Gesamtsystems. Im Gegensatz zu SATA, seinem Hauptkonkurrenten, der einen Anschluss, einen Bus und ein logisches Protokoll (AHCI) definiert, beschreibt NVMe einfach eine logische Protokollschicht, die über den elektrischen PCIe-Bus läuft. NVMe-Geräte können in einer Vielzahl von Formfaktoren erhältlich sein und über einen physischen PCIe-, M.2- oder U.XNUMX-Anschluss verbunden werden. Im Vergleich zu SATA bietet NVMe nicht nur schnellere Geschwindigkeiten, sondern läuft insgesamt effizienter. Während AHCI vier nicht zwischenspeicherbare Registerlesevorgänge erfordert, um einen Befehl auszugeben, erfordert NVMe keine, was wiederum eine geringere Latenz ermöglicht.
Es verwendet auch einen vereinfachten Befehlssatz, der weniger als die Hälfte der CPU-Taktzyklen von SATA benötigt, um eine E/A-Anforderung zu verarbeiten. Auch kleine zufällige I/O-Operationen können effizienter verarbeitet werden. Eine 4-KB-Leseanforderung erfordert zwei Anweisungen für SATA, während NVMe nur eine benötigt.
Eingebettete Implementierung von NVMe
Während die Vorteile von NVMe als Speicher für hochkarätige Unternehmen und Verbraucher offensichtlich sind, ist auf den ersten Blick nicht so klar, ob NVMe für den Einsatz in modernen eingebetteten Anwendungen geeignet ist. Schließlich wird SATA seit vielen Jahren erfolgreich eingesetzt, und wenn etwas funktioniert, warum sollte man es dann ändern? NVMe bietet jedoch mehr als nur Geschwindigkeit. Obwohl es ursprünglich für die spezifischen Anforderungen von Unternehmenskunden entwickelt wurde, bieten die inhärenten Effizienzen, die das Protokoll bietet, greifbare Vorteile für Entwickler von Embedded-Lösungen.
energetische Aspekte
Eingebettete Low-Energy-Anwendungen stellen einen riesigen Markt dar. Ob für IoT-Geräte, Bluetooth-Beacons, Smartphones oder Wearable-Technologie, dies sind in der Regel batteriebetriebene Geräte, bei denen Energieeinsparung ein Schlüsselfaktor ist. Geschwindigkeit ist in diesem Markt meist nicht die Hauptsache. Stattdessen sind die grundlegenden Ziele eine hohe Zuverlässigkeit, ein kompakter Formfaktor und vor allem ein niedriger Energieverbrauch. NVMe verfügt über erweiterte Funktionen zur Fehlerberichterstattung und -verwaltung, einschließlich umfassendem Datenschutz. Dieser Schutz verwendet Metadaten-Tags, um sicherzustellen, dass die Daten, die auf das Laufwerk geschrieben werden, und die Daten, die vom Laufwerk gelesen werden, im System korrekt sind; eine sehr nützliche Funktion für Anwendungen, bei denen die Datenintegrität von entscheidender Bedeutung ist. Obwohl NVMe nicht auf eine bestimmte Größe und Form beschränkt sein muss, unterstützt es das M.2-Format, eines der kleinsten und dichtesten SSD-Formate auf dem Markt. Der M.2-Standard erlaubt Module mit Breiten von 12 bis 30 mm und Längen von 16 bis 110 mm. Während Consumer-M.2-SSDs oft auf größere Formfaktoren zurückgreifen müssen, um eine höhere Kapazität bereitzustellen, ermöglicht Ihnen M.2 die Arbeit mit eingebetteten Systemen, die keine so großen Kapazitäten benötigen und daher extrem kleine SSDs verwenden können. Zusätzlich zu M.2 können NVMe-SSDs in BGA-Gehäusen geliefert werden, sodass sie direkt mit eMMC-SSDs konkurrieren können. Die NVMe-Technologie ermöglicht zudem einen sehr geringen Stromverbrauch. Was die Verarbeitungseffizienz anbelangt, so benötigen seine I/O-Operationen, wie bereits erwähnt, dank eines optimierteren Befehlssatzes weniger CPU-Zyklen zur Ausführung als SATA-I/O-Operationen.
Da Registerlesevorgänge ohne Zwischenspeicherung eliminiert werden und Schreibvorgänge höchstens einen Registerlesevorgang erfordern, können auch kleine zufällige E/A-Vorgänge äußerst effizient sein. Das vereinfachte Protokoll und die schnelle Leistung von NVMe ermöglichen eine höhere Energieeffizienz, wenn das Laufwerk aktiv ist. Darüber hinaus erhöht die Unterstützung für PCIe-Energieverwaltungsfunktionen die Effizienz, selbst wenn sich das Laufwerk im Leerlauf befindet. Die PCIe-Verbindung kann selbst in ihrem typischen L50-Leerlaufzustand eine große Menge Strom (bis zu 1 mW) verbrauchen, und aus diesem Grund wurden erweiterte Energieverwaltungsmodi hinzugefügt, die den Stromverbrauch im Leerlauf weiter reduzieren. Der L1.1-Unterzustand reduziert den Stromverbrauch, indem er die Gleichtaktspannung aufrechterhält, während der L1.2-Unterzustand Hochgeschwindigkeitsschaltkreise trennt.
Durch die Unterstützung dieser beiden Modi können NVMe-SSDs im Leerlauf einen Stromverbrauch von nur 2,5 mW erreichen, 50 % weniger als der entsprechende DevSLP-Leerlaufmodus der meisten SATA-SSDs. Während SATA DevSLP ein vom Betriebssystem gesendetes Signal benötigt, um in den Energiesparmodus zu wechseln, können NVMe-Laufwerke autonome Energiestatusübergänge verwenden, die im Laufwerkscontroller geplant sind. Dadurch kann das Laufwerk auf Hardwareebene schnell und autonom in den Energiesparmodus wechseln und es verlassen, wodurch die Leerlaufzeit maximiert und die Latenzzeiten beim Aufwachen des Laufwerks minimiert werden. Obwohl NVMe im Hinblick auf erschwinglichere Low-Power-Embedded-Geräte kein so starker Konkurrent von eMMC-Flash ist, ist es aufgrund seiner Kombination aus optimierten Batterien, reduziertem Stromverbrauch und kleinem Formfaktor eine gute Wahl, wenn ein mSATA durch das ersetzt wird neue Generation batteriebetriebener Embedded Devices.
NVMe für Mobilgeräte und Edge-Computing
Neben Low-Power-Geräten sind Mobile und Edge Computing wachsende Sektoren innerhalb von Embedded-Lösungen. Zu diesen Anwendungen gehören Smartphones, Tablets, Laptops, Router und Gateways, die für die Verarbeitung und Analyse von Daten am Rand des Netzwerks ausgelegt sind. Mobile Geräte sind batteriebetrieben und haben begrenzte Leistungsreserven, aber die Speicherkapazität ist beachtlich und die Speicherleistung wichtig. Für diese Geräte ist NVMe aufgrund seiner Leistung, seines kleinen Formfaktors und seines geringen Stromverbrauchs sowie seiner direkten Integration ohne die Notwendigkeit eines Host-Storage-Controller-Chips eine sehr gute Wahl. NVMe 1.2 hat auch die Funktion Host Memory Buffer (HMB) eingeführt. Diese Funktion ermöglicht es NVMe-SSDs, einen Teil des DRAM des Hostsystems zu verwenden, um den DRAM zu ersetzen, der normalerweise in den SSD-Controller integriert ist.
Dank dieser Funktion kann die NVMe-SSD kleiner, deutlich günstiger und energieeffizienter gebaut werden, ohne dabei auf schnelle Speicherleistung zu verzichten. Neben Mobile Computing ist Edge Computing ein weiterer Bereich, in dem Speicherkapazität und Leistung von größter Bedeutung sind. Edge Computing ist in autonomen Fahrzeugen, Drohnen, Routern und Datenverarbeitungs-Gateways vorhanden und basiert auf der Prämisse, dass nicht alles in der Cloud erledigt werden kann oder sollte. In einer hochautomatisierten Fabrik kann ein IoT-Gateway Produktionsdaten an die Cloud senden, um große Datenmengen („Big Data“) zu analysieren, aber es kann auch einige grundlegende Analysen dieser Daten durchführen, die Echtzeit-Einblicke liefern, um Produktionseffizienz zu verbessern.
In diesem Fall kann die Antwort aus der Cloud zu lange dauern, um die verarbeiteten Daten zu nutzen. Diese Gateways haben möglicherweise nicht die gleichen Leistungsanforderungen wie Unternehmensserver, aber Latenz und Bandbreite sind immer noch äußerst wichtig, wenn Daten in Echtzeit verarbeitet werden. In diesem Sinne ist NVMe eine naheliegende Alternative.
NVMe für Onboard-Speicher
Der Markt für eingebettete Speicher ist groß und vielfältig, mit unterschiedlichen Anforderungen, die von niedrigem Stromverbrauch bis hin zu Leistung auf Desktop- oder sogar Serverebene reichen. Obwohl sich NVMe besonders auf hohe Input/Output-Operationen pro Sekunde (IOPS) für Rechenzentren und dergleichen konzentriert hat, macht die Effizienz dieses neuen Protokolls es zu einer zunehmend attraktiven Lösung für eingebettete Speicheranwendungen. Für eingebettete Geräte mit geringem Stromverbrauch passt NVMe in die kleinsten Formfaktoren. Sein leichtgewichtiger Software-Stack und die direkte Schnittstelle zum PCIe-Bus bedeuten Geschwindigkeit, Effizienz und einfache Bereitstellung. Seine Fähigkeit, PCIe-Niedrigstromzustände zu unterstützen, trägt auch dazu bei, den Stromverbrauch auf ein Minimum zu reduzieren.
Obwohl NVMe eMMC wahrscheinlich nie ersetzen wird, ist es aufgrund seiner Vorteile ein guter Kandidat für Anwendungen, die derzeit mSATA verwenden. Dank seiner PCIe Gen3 x4 NVMe-Schnittstelle ist das 600D-NAND-SSD-Modul der Intel 3p-Serie bis zu 17-mal schneller als eine HDD und 3-mal schneller als herkömmliche SATA-basierte SSDs. Es ermöglicht eine Reduzierung des Stromverbrauchs um mehr als 90 % im Vergleich zu einer Festplatte, wodurch die Batterielebensdauer erheblich verlängert wird. Auf dem Flash Memory Summit 2017, der diesen Sommer stattfand, präsentierte Swissbit seinen N-10. Dies ist ein Prototyp eines NVMe-PCIe-M.2-SSD-Moduls mit einem 2-Lane-4-Kanal-Layout, das speziell auf platz- und leistungsbeschränkte Systemdesigns im Embedded-Bereich ausgerichtet ist. Sie bietet die doppelte Leistung einer SSD mit SATA-6-Gb/s-Schnittstellenfähigkeit und reduziert außerdem den Stromverbrauch erheblich.