NVMe-Anwendungen
Die NVMe-Technologie hat eine bahnbrechende Innovation im Bereich der Datenspeicherung gebracht und hat weitreichende Auswirkungen auf die Infrastruktur von Rechenzentren. Die Funktionen des Protokolls machen NVMe zur ersten Wahl, wenn es um die Entwicklung eines neuen Produkts oder einer Anwendung im Bereich der Speicherung geht.
Unternehmensanwendungen wie die Beschleunigung von Datenbanken erfordern niedrige Latenzzeiten sowie 4K- oder 8K-Datenschreibübertragungsraten mit hoher Bandbreite - zwei Anforderungen, die perfekt zu den Stärken des NVMe-Protokolls passen. Diese Eigenschaften machen NVMe zum Vorreiter bei der Implementierung von Redo-Logs, einem Anwendungsfall, bei dem viele Transaktionsdatensätze gespeichert werden und bei einem Ausfall der Datenbank später wiedergegeben werden können. Für diesen Anwendungsfall bringt der 250S+ bis zu 4 TB NVMe-Speicher direkt an den Rand der rekonfigurierbaren FPGA-Struktur, wo die Transaktionsdatensätze mit hoher Geschwindigkeit auf den SSDs gesammelt werden und für die Wiedergabe bereit sind14.
NVMe erleichtert auch die Herausforderungen virtualisierter Infrastrukturen und vereinfacht die Implementierung von VMs (virtuellen Maschinen), zustandslosen VMs und SRIOV, bei denen IO der häufigste Engpass ist. Bei zustandslosen VMs muss der IT-Manager Betriebssystem-Images sperren, die von den Anwendern im Unternehmen nicht geändert werden können. Die Benutzer ändern nur ihre Daten, und das Betriebssystem-Image bleibt im NVMe-Speicher unverändert; der Datenschutz und die Sicherheit zwischen den Benutzern sind entscheidend. In einer solchen IT-Infrastruktur wird der NVMe-Speicher von mehreren Benutzern gemeinsam genutzt. Der 250S+ ist eine All-in-One-Plattform zur Implementierung dieser Anwendung. Jedes physische 1-TB-Laufwerk wird durch die FPGA-IP geteilt, so dass jeder Benutzer einen getrennten und sicheren Zugriff auf sein Betriebssystem-Image und seine Daten erhält. Der Hypervisor verwaltet den direkten Zugriff auf einen Teil des Laufwerks, ohne dass ein Emulationstreiber erforderlich ist, was eine bessere Leistung für diese IO-gebundene Anwendung bietet.
Der "Big Data"-Markt bietet auch Chancen für intelligente NVMe-Produkte, die Speicherung und Verarbeitung kombinieren, da er sich von einem Stapelverarbeitungsansatz zu einer Echtzeitverarbeitungsmethodik wegbewegt. Map-Reduce-Probleme bewegen sich in Richtung Echtzeit-Analysen statt Stapelverarbeitung und benötigen daher eine neue Speicherebene, die viel schneller ist als das GFS-Backend. Das in IT-Infrastrukturen übliche Storage-Tiering trennt kalten Speicher, auf den selten zugegriffen wird und der eine geringe Geschwindigkeit aufweist, von sehr schnellen SSDs, NVMe- oder NVM-Speichern. In diesem Anwendungsfall werden alle Daten im GDFS gespeichert, dann aber auf einen Rechenknoten mit schnellerem Speicher verschoben. Der 250-SoC, der NVMe-over-Fabric implementiert, erfüllt beide Anforderungen, da er Zugang zu Hochgeschwindigkeits-Speicher und Hochleistungs-Rechenfunktionen bietet.
Die Deep-Learning-Branche hat ähnliche Anforderungen wie die Welt der Analytik. Die neue Generation von Beschleunigern für Deep Learning, d. h. GPGPUs, TPUs und FPGAs, benötigen eine große Speicherbandbreite, um mit den Rechenleistungen der Chips Schritt zu halten. Die Trainingsoperationen verbrauchen einen großen Teil dieser Daten mit hohem Durchsatz, oft mehrere Terabyte15. Jüngste Forschungsarbeiten zeigen, dass die FPGA-Fabric die Trainingsoperationen bestimmter Netzwerktypen beschleunigen kann. Durch die Kombination von Speicher- und Rechenmodul auf einer Hardwareplattform wird die Latenzzeit verringert, so dass mehr Umschulungszyklen möglich sind, wenn der Trainingsdatensatz wächst16.
Im HPC-Bereich gibt es für den lokalen Speicher des 250S+ und die Remote-Version mit dem 250-SoC verschiedene Anwendungen wie Checkpoint/Restart, Burst-Buffer, verteilte Dateisysteme oder das Caching der Auftragsdaten von einem Scheduler. Indem der Algorithmus in der Nähe des Speichers auf der FPGA-Fabric ausgeführt wird, bleibt der Platzbedarf der FPGA-Anwendung gering, während der Speicher vollständig genutzt wird und die CPU für andere Verarbeitungsaufgaben frei bleibt. Anstatt die Daten einfach zu speichern oder die Host-CPU zum Komprimieren oder Verschlüsseln der In-Memory-Datenbanken zu verwenden, bei denen Gigabytes von Daten im flüchtigen Speicher gehalten werden, aber regelmäßig in Flash gesichert werden müssen. Ein FPGA-basiertes System kann diese Snapshots von Daten für die dauerhafte Speicherung in großen NVMe-basierten Speicher-Arrays verarbeiten. Für diese Art von Betrieb ist der MPSoC besonders gut geeignet, um komplexere Operationen mit den Benutzerdaten durchzuführen.
Im IoT-Bereich schließlich besteht Bedarf an Datenfilterung und -vorverarbeitung auf IoT-Gateways, wo die Aggregation stattfindet, sowie an der Verschlüsselung von Daten nach dem Empfang. Der FPGA verarbeitet Datenströme in Echtzeit mit Bit-Operationen wie Verschlüsselung oder Komprimierung und speichert die Daten mit dem 250S+ an Bord oder gibt sie mit dem kabelgebundenen 250S+ oder dem 250-SoC an die Speicher-Backplane mit der Eingangsbandbreite weiter. FPGAs sind auch die Plattform der Wahl bei Blockchain-Berechnungen. Die Blockchain-Technologie bringt eine Differenzierung für IoT-Gateways, um eine adaptive und sichere Methode zur Wahrung der Datenschutzpräferenzen von IoT-Geräten zu bieten17.