NVMe auf PetaLinux durchbricht 7 GB/s auf dem AMD-Evaluierungskit ZCU106 mit einer Lösung von Design Gateway

Von Design Gateway Co., Ltd.

Die meisten Zynq™-UltraScale+™-MPSoC-Designs unter Embedded Linux erreichen nur einen Durchsatz von etwa 2 GB/s, wenn der Standard-NVMe-Treiber mit dem PCIe-Gen3-Hardblock verwendet wird. Dieser Artikel stellt die weltweit erste NVMe-PetaLinux-Lösung vor, die mit PCIe Gen4-Geschwindigkeit arbeitet, ohne auf den PCIe-Hardblock des FPGAs angewiesen zu sein. Dieser Durchbruch wird durch die Verwendung von NVMe-IP-Core zusammen mit einem maßgeschneiderten Gerätetreiber von Design Gateway erreicht. Anhand des Evaluierungskits ZCU106 von AMD wird in diesem Artikel gezeigt, dass ca. 7,5 GB/s beim Lesen und 6,9 GB/s beim Schreiben mit einer üblichen NVMe-Gen4-SSD möglich sind und wie die Technologie von Design Gateway das volle Potenzial von Highspeed-NVMe auf Embedded-Linux-Plattformen freisetzt.

Einführung in das Zynq™-UltraScale+™-MPSoC-Evaluierungskit ZCU106

Das AMD-Evaluierungskit ZCU106 basiert auf der Zynq™-UltraScale+™-MPSoC-Plattform, die Quad-Core-Arm-Cortex®-A53-Prozessoren mit programmierbarer Hochgeschwindigkeitslogik integriert. Diese leistungsstarke Kombination ermöglicht es Ingenieuren, vollständige Betriebssysteme wie PetaLinux auszuführen, die Softwarekontrolle, Highspeed-I/O-Management und FPGA-Beschleunigerbetrieb in einer einzigen Umgebung ermöglichen.

Bild des AMD-Zynq™-UltraScale+™-EV (zum Vergrößern anklicken)Abbildung 1: AMD-Zynq™-UltraScale+™-EV. (Bildquelle: Advanced Micro Devices, Inc.)

Bild: Linux (PetaLinux) auf dem AMD-Zynq™-UltraScale+™-MPSoCAbbildung 2: Linux (PetaLinux) auf dem AMD-Zynq™-UltraScale+™-MPSoC - eine Kombination von flexibler Software mit FPGA-Hardwarebeschleunigung. (Bildquelle: AMD)

Um das Leistungspotenzial von PCIe-Gen4-NVMe-SSDs voll auszuschöpfen, müssen Entwickler jedoch auch verstehen, wie sich der herkömmliche Linux-NVMe-Stack auf eingebetteten SoCs verhält. Selbst mit der leistungsstarken heterogenen Architektur des ZCU106 können PetaLinux-Systeme an Durchsatz- und Effizienzgrenzen stoßen, eine Herausforderung, die im folgenden Abschnitt untersucht wird.

Konzeptfibel: Warum NVMe auf PetaLinux oft zu Engpässen führt

PetaLinux bietet zwar eine leistungsstarke Softwareschicht für die Steuerung der Hardware und die Verwaltung von Daten-I/O, aber die herkömmliche NVMe-Implementierung ist nicht für einen anhaltend hohen Durchsatz optimiert. Die Interaktion zwischen dem Linux-Kernel und dem ARM-basierten Verarbeitungssystem führt zu zahlreichen Ineffizienzen, die die Bandbreitennutzung einschränken, selbst wenn PCIe-Gen4-Ressourcen verfügbar sind:

  • ⚙️ Kernel-Stack-Overhead: Der Standard-NVMe-Treiber läuft vollständig innerhalb des Linux-Kernels, was mehrere Kontextwechsel, Interrupt-Verarbeitung, Pufferkopien und Cache-Verwaltung beinhaltet. Diese softwaregesteuerten Vorgänge begrenzen die IOPS und verhindern die volle Bandbreitennutzung.
  • Einschränkungen beim Timing und der Tiefe von Warteschlangen: Standard-NVMe-Konfigurationen verwenden häufig flache Warteschlangen und kleine I/O-Blockgrößen. In Kombination mit dem Kernel-Planungs-Overhead ist die CPU-Auslastung gesättigt, bevor die Link-Bandbreite gesättigt ist.
  • CPU- und Speicher-Subsystem-Einschränkungen: Auf eingebetteten SoCs wie dem Zynq-UltraScale+-MPSoC können die DDR-Bandbreite und der Cache-Kohärenzverkehr zwischen PS und PL zur echten Leistungsgrenze werden.
  • Leistungs- und IRQ-Verwaltung: Systeme, die mit bedarfsgesteuerten CPU-Controllern oder unausgewogenen Interrupt-Affinitäten konfiguriert sind, können bei hoher I/O-Arbeitslast Leistungseinbußen aufweisen.
  • Auswirkungen in der realen Welt: Selbst gut abgestimmte Systeme, die den herkömmlichen NVMe-Treiber verwenden, überschreiten selten ~1,5 bis 2,5 GB/s. Dies ist nur 50 bis 60% von einer 4GB/s-Bandbreite entfernt, was die volle Leistungsfähigkeit von PCIe Gen3x4 darstellt.
  • Nicht verfügbarer PCIe-Hardblock für Gen4: Obwohl bestimmte SoC-Komponenten über Transceiver verfügen, die PCIe-Gen4-Signalraten (16 Gbit/s pro Spur) unterstützen, bleibt ihr integrierter PCIe-Hardblock auf Gen3-Betrieb beschränkt. Diese architektonische Lücke verhindert, dass das System das volle Potenzial der Gen4-Bandbreite ausschöpft, und schränkt leistungsstarke oder datenintensive Anwendungen ein, die einen anhaltenden Durchsatz von mehreren Gigabyte auf kostenoptimierten FPGA-Plattformen erfordern.

Die Grenzen überwinden

Um diese Performanceeinschränkung zu überwinden, gehen Entwickler in der Regel weg vom Kernel-verwalteten Speicherstack hin zu Userspace- oder Hardware-beschleunigter I/O. Es gibt zwei klassische Ansätze:

  • SPDK/DPDK-Frameworks: Verwendung von Poll-Mode-Treibern im Userspace, wodurch Kernel-Kontextwechsel und Interrupts vermieden werden. Diese Methode verbraucht jedoch enorme CPU-Ressourcen.
  • FPGA-Offload (z. B. NVMe-IP + DMA-Engine): Verlagerung der Befehlsverarbeitung, Warteschlangenbildung und Datenübertragung in die programmierbare Logik, wodurch ein Durchsatz nahe der Leitungsgeschwindigkeit mit deterministischer Leistung auf Hardwareebene erreicht wird.

Architektur der Lösung

Bild: Vergleich von NVMe-Lösungen auf PetaLinux mit Zynq-UltraScale+Abbildung 3: Vergleich von NVMe-Lösungen auf PetaLinux mit Zynq-UltraScale+. (Bildquelle: Design Gateway)

Die DMA-PetaLinux-Lösung von Design Gateway ersetzt die herkömmliche PCIe-Hard-IP und den NVMe-Treiber durch einen Soft-NVMeG4-IP-Core und einen kundenspezifischen DG-NVMe-Treiber.

Diese hardwareunabhängige Architektur führt PCIe Gen4 vollständig über FPGA-Transceiver aus und erreicht auf Zynq-UltraScale+-Plattformen einen Durchsatz von 7 GB/s. Durch die Kombination von NVMeG4-IP und Dual-AXI-DMA unter einem einheitlichen DG-Treiber eliminiert das System den CPU-Overhead und ermöglicht die volle Gen4-x4-Leistung unter PetaLinux.

Hauptmerkmale

  • NVMe Gen4 Soft IP in PL - eine komplette NVMe-Lösung mit Hardware-Offload, die einen PCIe-Gen4-Soft-IP-Core integriert, den PCIe-Hardblock überflüssig macht und die FPGA-Transceiver optimal nutzt.
  • Zwei DMA-Kanäle zur Verdoppelung der DMA-Bandbreite, die bei PCIe-Gen4-Geschwindigkeit 8 GB/s erreicht.
  • Benutzerdefinierter PetaLinux-Treiber mit sauberen Steuer- und Überwachungsschnittstellen, der so optimiert ist, dass Engpässe bei der Datenübertragung zwischen Software und Hardware vermieden werden.
  • AXI-kompatible Schnittstellen für einfache Integration in PL-Datenpipelines
  • Komplettes Demo-Paket mit Quellcode, Skripten, Dokumentation und Kurzanleitungen zur Inbetriebnahme
  • Portables Design, anpassbar an jede FPGA-Komponente von AMD, die Embedded Linux unterstützt.

Implementierung und Performanceergebnis auf ZCU106

Abbildung 4 zeigt einen Überblick über das Referenzdesign auf der Grundlage des ZCU106-Evaluierungskits (XCZU7EV) von AMD. Das System integriert die NVMe-Gen4-Soft-IP von Design Gateway mit einer Dual-DMA-Architektur und einem benutzerdefinierten PetaLinux-Treiber, der einen Hochgeschwindigkeitszugriff zwischen der NVMe-Gen4-SSD und dem PetaLinux-Betriebssystem ermöglicht.

Weitere Einzelheiten zum Referenzdesign „NVMeG4-IP mit DMA auf PetaLinux“ finden Sie im Referenzdesign-Dokument „NVMeG4-IP mit DMA auf PetaLinux“ auf der Website von Design Gateway.

Abbildung: Referenzdesign-Dokument für NVMeG4-IP mit DMA auf PetaLinuxAbbildung 4: Übersicht über das Referenzdesign. (Bildquelle: Design Gateway)

Das Demosystem ist für das Schreiben/Verifizieren von Daten mit der NVMe-SSD auf dem ZCU106 ausgelegt. Die Testausführung wird über eine serielle Konsole auf PetaLinux mit der DG-NVMe-Anwendung gesteuert. Diese Anwendung überträgt Daten zwischen dem Hostspeicher und der NVMe-SSD über zwei DMA-Kanäle für Hochgeschwindigkeitsbetrieb. Die CPU ist nur für die Einrichtung und Überwachung zuständig, während der gesamte Datenverkehr in der Hardware abgewickelt wird.

Eine Adapterkarte AB17-M2FMC wird verwendet, um die NVMe-SSD an den FMC-HPC-Steckplatz anzuschließen, wie in Abbildung 5 dargestellt.

Bild der auf dem ZCU106 eingerichteten Demo-UmgebungAbbildung 5: Auf dem ZCU106 eingerichtete Demo-Umgebung. (Bildquelle: Design Gateway)

Das Beispieltestergebnis beim Betrieb des Demosystems auf dem ZCU106 unter Verwendung der 1 TB großen NVMe-SSD 990 Pro von Samsung ist in Abbildung 6 dargestellt und bestätigt die volle Nutzung der PCIe-Gen4-x4-Bandbreite unter PetaLinux.

Bild des Vergleichs der Lese-/Schreibleistung von NVMe-SSDs auf dem ZCU106Abbildung 6: Vergleich der Lese-/Schreibleistung von NVMe-SSDs auf dem ZCU106: Traditioneller NVMe-Treiber vs. DG-NVMe-Lösung. (Bildquelle: Design Gateway)

Fazit

Design Gateways NVMe-Gen4-Soft-IP für PetaLinux verwandelt den Zynq-UltraScale+ in eine hochleistungsfähige Speicherplattform und erreicht als Weltneuheit einen Durchsatz von 7 GB/s bei Gen4-Geschwindigkeit. Durch die vollständige Auslagerung des NVMe-Protokolls in die Hardware-Logik und einen gut optimierten PetaLinux-Gerätetreiber beseitigt die Lösung Engpässe auf Softwareebene, maximiert die Effizienz des Datenpfads und skaliert die Bandbreite für DAQ- und Videoverarbeitungs-Workloads. Das Design ist portabel, effizient und ideal für Edge- oder Embedded-Systeme, die sowohl einen hohen Durchsatz als auch Determinismusleistung erfordern.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Design Gateway Co., Ltd.