TCP/IP mit bis zu 4,4 GByte/s Kommunikation in Multiprozessor-Anwendungen

Was tun, wenn TCP/IP das Protokoll der Wahl ist, aber mehr Bandbreite benötigt wird als Embedded-Prozessoren und -Chipsätze hergeben? TCP/IP über PCI-Express verspricht hier Abhilfe, besonders wenn die Kommunikation über PCIe-Switches läuft. Mit Übertragungsleistungen von bis zu 4,4 GByte/s (bzw. 5,6 GByte/s für Rohdaten) über VPX-Backplanes eignet sich dieser Ansatz sogar als Verbindungstechnik für Multiprozessor-Anwendungen.

Bei PCI-Express (PCIe) handelt es sich um keine neue Technik. Sie kommt bereits in vielen unterschiedlichen Bereichen zur Anwendung - in Speicherapplikationen und Servern, für Grafik, Kommunikation, Messtechnik und Medizintechnik sowie für Embedded- und Konsumelektronikgeräte. Vergleichsweise neu ist aber der Einsatz von PCIe als Verbindungstechnik für Multiprozessor-Applikationen. Möglich macht dies die hohe Übertragungsleistung der dritten PCI-Express-Generation, die bis zu 8 Gigatransfers/s (GTps) bietet. Ein einziger PCIe-Switch kann nun Daten mit bis zu 1,5 TBit/s übertragen, was ganz neue Anwendungsfelder erschließt. Zudem unterstützen neueste PCIe-Switches auch neue Funktionen wie beispielsweise zwei nicht-transparente (NT) Schnittstellen für Redundanz, »Direct Memory Access« (DMA) für schnelleren Datentransfer sowie die »Spread Spectrum Clock«-Isolierung (SSC) für die Kommunikation über unterschiedliche Clock-Domains hinweg. All diese Funktionen unterstützen das Design-In der PCIe-Verbindungstechnik in neueren Applikationen wie beispielsweise der Multiprozessor-Kommunikation auf VPX-Basis.

VPX ist eine Spezifikation nach VITA-Standards und wurde für Hochleistungssysteme in der Luftfahrt- und Verteidigungstechnik entwickelt. Mit VPX können sich Bordcomputer mit paralleler Busarchitektur auf der Backplane hin zu seriellen Systemen mit schnellen Punkt-zu-Punkt-Verbindungen entwickeln und Links wie PCI-Express, Gigabit-Ethernet oder Serial-Rapid-IO zwischen den Boards dafür nutzen. VPX bietet ein Ökosystem zur Entwicklung von Systemen mit Multi-Vendor- und Multi-Modul-Support; Entwickler und Systemintegratoren können also viel Leistung und Interoperabilität für ihre spezifischen COTS-basierten robusten Systeme nutzen.

Mehr Bandbreite!

Systeme auf VPX-Basis kommen oft in anspruchsvollen bildintensiven Anwendungen zum Einsatz, die sowohl in Bezug auf eine höhere Wiedergabegenauigkeit der Daten (höhere Auflösung) als auch in Bezug auf unterschiedliche Datenarten (Video und Audio) sowie in Bezug auf die Anzahl der Datenquellen (steigende Zahl der Sensoren) immer höhere Bandbreiten und immer mehr Datendurchsatz über von Switch-basierte serielle Kommunikationsverbindun-gen benötigen. Gleichzeitig ist es für all diese Applikationen besonders wichtig, die Leistungsfähigkeit der Systeme zu steigern, ohne dass sie mehr Platz benötigen oder sich Gewicht und Verlustleistung erhöhen.

Die meisten dieser bereits im Feld befindlichen Applikationen nutzen TCP/IP über Ethernet für die Interprozessor-Kommunikation. Doch natives Ethernet ist in der Regel auf das limitiert, was der Prozessor und/oder der Chipsatz hergeben. Und die hoch energieeffizienten Embedded-Prozessoren und -Chipsätze unterstützen aktuell kein 10-GBit-Ethernet, geschweige denn 40-GBit-Ethernet. Für mehr Bandbreite müssen Entwickler von Radar-, Sonar- und Videoüberwachungsapplikationen also einen anderen Weg suchen, die Leistung zu steigern - meist durch Modifikation des Applikationscodes. Ein anderer Weg, diese Bandbreitenlücke ohne Software-Modifikation zu schließen, ist der Einsatz von Ethernet over PCIe (TCP/IP over PCIe) und PCIe-Switches, die stetig weiterentwickelt werden und damit höhere Performance bieten. PCI-Express-Gen.3-Lane-Bauelemente von PLX beispielsweise unterstützen bis zu 96 Lanes und 24 Ports, wurden speziell für solche Applikationen entwickelt und können über jede Lane bis zu 8 GTps übertragen. Applika-tionen können die nativen PCIe-Ports für alle Komponenten auf VPX-Single-board-Computern (SBC) nutzen, was die Kosten niedrig hält und die Latenz des Systems reduziert.

Für solche Anwendungen ist aus der Kooperation von Kontron- und PLX-Entwicklern die »VXFabric«-Technik mit dem Ziel entstanden, die Entwicklungskosten für die Inter-CPU-Kommunikation in Systemarchitekturen auf VPX-Basis zu reduzieren und so auch die Applikationsentwicklung zu vereinfachen und zu beschleunigen. VXFabric stellt die zwischen PCIe-Gen.3-Switches und den Standard-TCP/IP-Stacks erforderlichen Software-Stacks bereit. So können Boards ihre bestehenden Anwendungen auf TCP/IP-Basis weiter ausführen, ohne sie modifizieren zu müssen. Zudem ermöglicht diese Konfiguration auch die Migration hin zu den kommenden Standards wie 10-GBit- und 40-GBit-Ethernet.

Mit ihrer offenen Infrastruktur ermöglicht die VXFabric eine effiziente Kommunikation zwischen Boards in »Hardwaregeschwindigkeit«. Die Architektur ist konform zum OpenVPX-Standard (VITA65) ausgelegt. Dieser Standard definiert zwei grundlegende Hardware-Topologien mit sehr unterschiedlicher Verbindung auf der Backplane:

  • Eine verteilte PCIe-Backplane kann komplett ohne PCIe-Switch auskommen. In diesem Fall ist es möglich, eine sehr kompakte Architektur umzusetzen, solange die zwischen den Knoten benötigten Datenpfade auf der Backplane zur Verfügung stehen. Da die Datenpfade zumeist applikationsspezifisch genutzt werden, ist eine verteilte Backplane oft die richtige Bauform für kosteneffiziente Lösungen. 
  • Wird jedoch eine höhere Bandbreite und mehr Flexibilität benötigt, ist eine zentralisierte Topologie erforderlich. 

Mithilfe eines PCIe-Switchboards, das sowohl PCIe als auch Ethernet unterstützt (wie das »3U VPX Hy-brid Switch VX3905« von Kontron), lassen sich mit der VXFabric bis zu zwölf Knoten simultan über PCI-Express verbinden und Kommunikationslinks zwischen den Knoten aufbauen, die dieselbe Backplane nutzen. So eignet sich VXFabric sowohl für hochperformante Embedded-Computing-Applikationen (HPEC) als auch für den Laboreinsatz, bei dem sich viele Applikations-Datenpfade mit dem gleichen Equipment evaluieren lassen.

Multiprozessor-Architekturen

Hardwareseitig basiert die Implementierung auf mehreren CPU-Boards, die jeweils mehrere Verarbeitungskerne bieten. Diese sind mit PCIe über die VPX-Backplane verbunden und nutzen hierfür einen PCIe-Switch. Softwareseitig ist VXFabric äquivalent zur Netzwerk-infrastruktur auf Ethernetbasis, die über Switched-PCIe-Fabrics abgebildet wird. Ein hierfür implementierter Layer erlaubt es dem Anwender, die Kommunikation mit einem IP-Socket-Programming-Interface aufzusetzen. Ein solches API ermöglicht den direkten Zugriff auf alle klassischen Protokolle wie beispielsweise TCP oder UDP. Zudem erfordert VXFabric keine Modifikation der bestehenden Applikation, was die Entwicklungskosten reduziert und die Migration hin zur neuen VPX-Architektur erleichtert.

Das Standard-Programmiermodell für Anwender basiert auf dem IP-Protokoll und beinhaltet ein Socket-Layer-API mittels Emulation eines Ethernet-Interfaces über PCIe - vergleichbar mit Pseudo-Ethernet in virtuellen Maschinen. Durch dieses API bleiben bestehende Applikationen mit der VXFabric kompatibel, zudem verhindert die Migration von einer GBit-Ethernet-TCP/IP-Infrastruktur zur Lösung auf VXFabric-Basis laut Kontron, dass sich Anwender mit leistungsarmen, proprietären APIs auseinander setzen müssen, wie sie beispielsweise die meisten Serial-Rapid-IO- oder Infiniband-Implementierungen nach Meinung der Autoren darstellen. Die VXFabric ist auf allen VPX-CPU-Boards von Kontron verfügbar, unterstützt Linux und wurde so entwickelt, dass sie auch auf andere OS portierbar ist.

Sie bietet einen modernen TCP/IP-Stack und unterstützt auch andere Architekturen wie beispielsweise FPGAs (Bild 1). Zudem braucht die VXFabric außer VPX-Backplane und Switch zur Verbindung der Boards keine weitere Infrastruktur. Weil die komplette Hardware inklusive der verwendeten Chips aus dem Standard-IT-Markt kommt, entstehen keine Abhängigkeiten von einer kleinen Gruppe von Lieferanten.

Ob man das Socket-API auf der VXFabric oder auf einem Standard-Ethernet-Interface aufsetzt, macht keinen Unterschied. Daher ist das Datenpaket- (UDP) oder Streaming-Socket-API (TCP) der bevorzugte Weg, die VXFabric für die dedizierte Datenkommunikation anzusprechen. Ein gutes Codebeispiel findet sich beispielsweise im Quellcode des Open-Source-Tools »Iperf«. Diesen unter GPL stehende Code nutzten die Entwickler unmodifiziert, um einen Benchmark für die Durchsatzmessung einer VXFabric-Implementierung zu bekommen.

Eine Applikation, die Echtzeitdaten übertragen soll, kann bei spezifischen Kommunikationslinks auch entscheiden, ob die VXFabric den Roh-datenmodus nutzt, um große Datensätze unmittelbar von einem zum anderen Arbeitsspeicher zu bewegen. Kommen hierfür die in Silizium gegossenen PCIe-DMA-Engines zum Einsatz, können die Utility-Layer der VXFabric das Handling der Low-Level-Instruktionen und das Management der Scatter/Gather-DMA-Joblisten übernehmen, während die VXFabric-Infrastruktur für das notwendige, systemweit einheitliche Address-Mapping sorgt.

Im Rohdatenmodus lassen sich jedoch nicht alle wesentlichen Features nutzen, wie etwa garantierte Übermittlung, die Datenüberprüfung oder die Flusskontrolle der TCP/IP-Kommunikation (Bild 2). Entwickler müssen bei der Wahl des Rohdatenmodus also andere Mittel und Wege finden, um eine Synchronisation zwischen den vielfältigen Teilen einer verteilten Applikation sicherzustellen.

Rohdaten mit bis zu 5,6 GByte/s

Bis zu 5,6 GByte/s Rohdaten-Bandbreite lassen sich so für Systeme auf Basis des VPX-Formfaktors bereitstellen. Die Konfiguration unterstützt bis zu 4,4 GByte/s für die TCP/IP-Kommunikation. Im Vergleich mit früherem PCIe ist dies ein enormer Leistungssprung, was den Durchsatz und die Bandbreite anbelangt. Anwendungen finden sich in Radar- und Sonar-Systemen hoher Leistung sowie in Systemen zur Analyse von Videodaten zur Steigerung der »Situational Awareness«. Die erzielten Durchsätze in Tabelle 1 wurden mit dem Standardtool »Iperf« gemessen.

 Übertragene TCP-Bandbreite CPU-Last TCP (Last als Prozentsatz der Volllast einer Multicore-CPU) Übertragene Rohdaten-Bandbreite 
PCI Express x8 Gen.34,4 GByte/s10% (Quadcore)5,6 GByte/s
PCI Express x4 Gen.32,5 GByte/s6% (Quadcore)2,8 GByte/s
PCI Express x4 Gen.2 1,3 GByte/s 8% (Dualcore) 1,5 GByte/s 
PCI Express x4 Gen.1 oder x2 Gen.2 0,6 GByte/s 5% 0,8 GByte/s 
Tabelle 1: Bandbreiten und CPU-Last für eine TCP-Übertragung auf einer VXFabric

Dabei erfolgte die Messung der PCIe-Gen.3-Leistung auf Boards vom Typ »VX3042« bzw. »VX3044« mit Intel-Core-i7-Prozessoren der dritten Generation (Ivy Bridge), die PCIe-Gen.2-Ergebnisse wurden bei der Kommunikation von VPX-VX3035-Karten erzielt, die auf Intel-Core-i7-Prozessoren der zweiten Generation basieren (Sandy Bridge). Auf VPX-Karten des Typs »VX3030« bzw. »VX6060« mit Intel-Core-i7-Prozessoren der ersten Generation (Arrandale) wurde zudem die Bandbreite im PCIe-Gen.1-Modus getestet. Während dieser Messungen waren sowohl Turbo Boost als auch Hyperthreading abgeschaltet.

Aufbauend auf PCIe-Gen.3 eignet sich VXFabric also sowohl für Hochleistungsapplikationen mit bis zu zwölf Quadcore-Prozessorknoten als auch für optimierte Designs mit einigen wenigen Prozessorknoten, dafür aber vielen I/Os. Die Autoren erwarten, dass die vierte PCIe-Generation mit Übertragungsraten von bis zu 16 GBit/s pro Link die Implementierung von PCIe dramatisch beschleunigen und auch in neue Marktsegmente Einzug halten wird - und all dies bei zunehmend einfacheren und ökonomischeren Designs. Da VXFabric die Brücke von PCIe zum »Internet der Dinge«-Protokoll TCP/IP schlägt, lässt sich bestehende Applikationssoftware über die nächsten 20 Jahre hinweg verwenden, ohne diesbezüglich Änderungen vornehmen zu müssen.

Über die Autoren:

Vincent Chuffart ist Produktmanager bei Kontron und Krishna Mallampati ist Senior Director Product Marketing bei PLX Technology.