Für einen wichtigen Kunden aus dem Netzwerksegment haben wir an der Konzeption und Entwicklung des P4-Kerns für FPGA mitgewirkt. Das System wurde entwickelt, um die Konfigurationen aus der P4-Sprache zu kompilieren und Firmware für ein FPGA zu erstellen, die das Paket-Routing oder andere gewünschte Funktionen realisiert.
Unsere Aufgabe und Herausforderung
Parametrierbar, FPGA herstellerunabhängig
P4 ist eine Programmiersprache und steht für ProgrammingProtocol-independentPacketProcessor. Im Gegensatz zu C oder Python ist es eine domänenspezifische Sprache für Netzwerkgeräte (Switches, NICs, Router, Filter, etc.).
P4 ist für die Weiterleitung von Netzwerkdaten optimiert. Mit P4 kann ein Netzwerkentwickler komplexe Netzwerk-Routing-Konfigurationen ohne umfassende Kenntnisse von Standardprogrammiersprachen entwerfen. Zu den häufig verwendeten Funktionen gehören Paketfilterung, Paketrouting, Header-Änderungen, Tenant-Isolation, Lastausgleich, Flusskontrolle, Inband-Netztelemetrie oder Zugriffskontrolllisten. Es wird von allen großen Netzwerkbetreibern wie Google oder Intel unterstützt.
Unsere Aufgabe war es, das bestehende System zu analysieren und eine neue parametrisierbare ALU (Arithmetic-Logic Unit) und den parametrisierbaren Speichercontroller für QDR und DDR RAMs zu entwerfen. Diese Komponenten wurden vom P4-Compiler als Bausteine verwendet, um den gewünschten Paketverarbeitungspfad im FPGA zu erstellen.
Lösung
FPGA-Komponenten mit hohem Datendurchsatz.
Wir haben parametrisierbare IP-Cores entwickelt, die verschiedene vom P4-Sprachcompiler verwendete Netzwerkfunktionen unterstützen. Es gab mehrere Abstraktionsebenen, und die fortschrittlichsten Konstrukte der SystemVerilog-Sprache wurden verwendet, um die Cores parametrisierbar und synthetisierbar zu halten.
Kundennutzen
Leicht programmierbares Netzwerkgerät
Durch die Erstellung parametrisierbarer, synthetisierbarer IP-Cores, die vom P4-Compiler verwendet werden können, erhielt der Kunde eine Reihe von Bausteinen, die einen optimalen Paket-Routing-Pfad im FPGA für die schnellste Paketverarbeitung erstellen können. Der Grad der Komplexität und Parametrisierung, der in den HDL-Code eingebettet ist, ermöglichte die Erstellung eines vereinfachten P4-Compilers.
Wie es hergestellt wird
SystemVerilog HDL
Alle IP-Cores wurden in SystemVerilog entworfen und verwendeten die neuesten unterstützten synthetisierbaren Konstruktionen der Sprache, die es ermöglichten, die Last der Abstraktion und Parametrisierung von SW auf HW zu verlagern. Die Kernentwicklung dauerte etwas länger als die reine Kodierung in SW; die Aufgabe bestand jedoch darin, Kerne zu entwerfen, die die schnellste Paketverarbeitung ermöglichen, und dies ist nur möglich, wenn die Pakete von IP-Kernen in Hardware (FPGA) verarbeitet werden.
Kunde
Kunden aus dem Netzwerksegment
Im Jahr 2019 haben wir mehrere parametrisierte FPGA-Komponenten in SystemVerilog erstellt, die vom P4-Compiler verwendet werden und verschiedene Netzwerkfunktionalitäten realisieren.
Weitere Lösungen
Seit der Gründung von Consilia im Jahr 2004 haben wir Dutzende von Projekten abgeschlossen und unterstützt.