Korund

Quelloffener 100G NIC-IP-Kern

Starten Sie Ihr SmartNIC-Projekt mit dem Open-Source-IP-Kern Corundum! Er bietet das Grundgerüst für FPGA-basierte Netzwerkbeschleunigung, das Sie anpassen und erweitern können. Die Erwartung ist, dass die Benutzer ihre eigene kundenspezifische Logik und Host-Software hinzufügen, um SmartNICs zu bauen und Zeit zu sparen, indem sie die grundlegenden Netzwerk-Paketverarbeitungselemente in Corundum verwenden. Ein Benutzeranwendungsbereich ermöglicht eine einfachere Ausrichtung auf mehrere Kartentypen.

Was Corundum von anderen Open-Source-FPGA-NIC-Frameworks unterscheidet, sind Funktionen wie Scatter/Gather, PTP und robuste Host-DMA-Integration. Die Gesamtleistung zielt auf allgemeine Paketverarbeitungsanwendungen mit Leitungsraten von bis zu 100 Gb/s ab.

Der IP-Core zielt auf BittWare FPGA-Karten mit AMD (ehemals Xilinx) Virtex UltraScale+ und Intel Agilex 7 Bausteinen. Spezifisch unterstützte Karten sind unter Spezifikationen aufgeführt. Da es sich um ein Open-Source-Projekt handelt, können Kunden die IP für die Portierung auf andere BittWare-Karten verwenden.

Open Source für Kommerzielle Projekte

Feinkörnig Verkehrskontrolle

Entworfen für Personalisierung

Beschreibung des Produkts

Eigenschaften

  • Quelloffener FPGA-basierter NIC
    • PCIe Gen3 x16, mehrere 10G/25G/100G Ethernet-Anschlüsse
    • Vollständig angepasste DMA-Engine; Linux-Treiber
  • Feinkörnige Verkehrskontrolle
    • 10.000+ Hardware-Warteschlangen, anpassbare Planer
  • Anwendungsblock für benutzerdefinierte Logik
    • Zugang zum Netzwerkverkehr, DMA-Engine, On-Card-RAM, PTP-Zeit
  • PTP-Zeitstempelung und Zeitsynchronisation
  • Verwaltungsfunktionen (FW-Aktualisierung, usw.)

Datenblatt und Produktdetails

Anwendungen

  • Entlastung der anwendungsspezifischen Verarbeitung
  • Datenpfad für neuartige Sendeplanungsprogramme
  • Instrument Korund für Leistungsmessungen
  • Direkter Zugang zum Transceiver ermöglicht Messungen auf der physikalischen Ebene und die Entwicklung neuer Leitungsprotokolle
  • Verwendung der Kernlogik als Paket-DMA-Modul in einem größeren System

Detaillierte Funktionsliste

Feinkörnige Verkehrskontrolle

  • 10.000+ Sendewarteschlangen
    • Jede Warteschlange ist ein unabhängiger Kanal zwischen SW und HW
    • Klassifizierung in SW, Kontrolle in HW
    • Feinkörnige Kontrolle pro Fluss oder pro Zielort
    • 128 Bits/Warteschlange -> 4096 Warteschlangen in 2 URAM auf US+
  • Sendeplanungsprogramm
    • Legt fest, aus welcher Warteschlange gesendet werden soll
    • Standardmäßiger Planer ist der Rundlaufplan
    • Kann verwendet werden, um Traffic Shaping, Ratenbegrenzung usw. zu implementieren.

Offene Quelle

  • Corundum-Kernlogik 100% quelloffenes Verilog
    • Einschließlich 10G/25G MACs, PCIe DMA, AXI, AXI-Stream, usw.
    • Geräte-Hard-IP für Schnittstellen - PCIe, 100G MAC, Serden
  • Simulation nutzt Open-Source-Tools
    • Cocotb + Icarus Verilog/Verilator
    • Cocotb-Erweiterungen für AXI, Ethernet und PCIe
  • Tox + pytest für CI
  • Makefiles für die Build-Automatisierung

Ports und Schnittstellen

  • Hardware-Unterstützung für mehrere Uplinks
  • Mehrere physische Anschlüsse erscheinen als eine einzige Schnittstelle auf Betriebssystemebene
  • Häfen haben separate Zeitplaner
  • Migrieren oder Strippen von Flüssen über Ports hinweg durch Ändern der Planereinstellungen

Traditioneller NIC: Zuordnung in Software

Corundum NIC: Zuweisung in Hardware

Modulare DMA-Engine

  • DMA-Engine aufgeteilt auf Schnittstellen- und Client-Module
    • Schnittstelle verbindet mit dem Host - PCIe, AXI, etc.
    • Client-Module bilden interne Ports - AXI-Stream, memory-mapped AXI
  • An die Schnittstelle angeschlossene Clients mit Dual-Port-RAMs
  • Unterstützt sowohl Server (PCIe) als auch SoCs (AXI) mit derselben Kernlogik

Korund

Über das Projekt

Corundum ist ein FPGA-basierter Open-Source-NIC und eine Plattform für netzinterne Berechnungen. 

Interessieren Sie sich für Preise oder weitere Informationen?

Unser technisches Vertriebsteam steht bereit, um Ihnen Informationen zur Verfügbarkeit und Konfiguration zu geben oder Ihre technischen Fragen zu beantworten.