FlexPath Netzwerkprozessor Michael Meitinger Rainer Ohlendorf Thomas Wild Andreas Herkersdorf
Inhalt Kurzüberblick FlexPath Vervollständigung FlexPath Einzelmodule Path Dispatcher Path Control Systemintegration Dual Core Erweiterung Demonstrator: Einsatzszenarien & Messungen Anbindung an DynaCORE Ausblick Erweiterung des MPSoC Weitere Load Balancing Strategien Zusammenfassung
Kürzüberlick FlexPath NP Grundidee FlexPath Flexible Wegewahl für Pakete Paketabhängige Entscheidung in Hardware Regelbasis zur Laufzeit rekonfigurierbar Stark fluktuierende Verkehrsmuster Hardwareunterstützung AutoRoute-Pfad CPU Pfad Stand: Mai 2007
Path Dispatcher - Implementierung Publikationen: WASP 2007, Salzburg IEEE TVLSI (under review) Anforderungen an den Path Dispatcher: Realtime-Klassifikation des ankommenden Paketstroms nach Applikationen => Ziele im NP Regelbasis zur Laufzeit rekonfigurierbar Ansatz: Heterogeneous Decision Graph Algorithm (HDGA) optimierte Kombination aus Entscheidungsbaum und Hashtabellenlookup Baum: Regeln auf verschiedenen Headerfeldern (heterogen, z.B. protokollspez. Flags) Überprüfung von max. 2 Feldern pro Takt Hash-Tabelle: Bedingungen für ein Headerfeld mit vielen Möglichkeiten (homogen, z.B. Adressen) Resultate auf Virtex-4 FX60: 1,446 slices (6%), 14 BlockRAMs (6%) 101.8 MHz max. Taktfrequenz Organigramm !!!!
Path Control - Implementierung Publikation: ARCS 2008, Dresden Anforderungen an die Path Control: Sicherstellen der Paketreihenfolge am Ausgang Vermeidung von TCP-Retransmissions Erhöhung der Netzwerkperformance (Congestion Control) Ansatz: Festhalten der Paketreihenfolge am Eingang Aggregation Unit zur Wiederherstellung der Reihenfolge am Ausgang Resultate auf Virtex-4 FX60: Ingress Tagger 195 slices (< 1%) 3 BlockRAMs (1%) Egress Aggregation Unit 1093 slices (4%) 11 BlockRAMs (5%) 139 MHz max. Taktfrequenz
Systemintegration Vollständiger, funktionsfähiger Netzwerkprozessor auf einem FPGA ML410: Virtex-4 FX60 2x Gigabit Ethernet MPSoC mit zwei PowerPCs Data Plane Control Plane Dynamische Pfadwahl Dedizierte Pfadwahl Spraying Zur Laufzeit konfigurierbar Software Protocol Stack IPv4 forwarding IPSec Statische Konfiguration
Ressourcenverbrauch PaC Post- Buffer Proc. Manager (DMA) DDR MAC I/F PLB Arb. Path Disp. Ctx Gen. eng. Pre- Proc. insgesamt: 16,006 slices (63%) 77 BlockRAMs (33%) Max. Taktfrequenz von 100 MHz nur durch sorgfältiges Floorplanning (PlanAhead) erreichbar Problem: Verdrahtung beim PLB (Leitungslänge) Baumklassifizierer im Path Dispatcher (40 Logic-Levels)
Einsatzszenarien: IP forwarding & IPSec Messszenario: 100 Mbps IMIX + variabler IPSec Verkehr FlexPath IPSec (512 Byte Pakete) Verbindung 1 Verbindung 2 IMIX 100 Mbps / 34,5 kpps (forwarding) Fall 1: Alle Pakete ohne Vorklassi- fizierung zur CPU Fall 2: Vorklassifizierung im Path Dispatcher Fall 3: Forwarding dediziert auf zweite Data Plane Fall 4: Forwarding Verkehr verteilt auf beide Data Plane CPUs (Spraying) Fall 5: Forwarding Verkehr per AutoRoute
Einsatzszenarien: Fall 1 Data Plane Path Dispatcher hohe Grundlast durch SPD-Check geringe IPSec-Paketrate steigert CPU-Last deutlich Paketverluste bei Forwarding trotz ausreichender CPU Lastreserve >1 ms IPSec
Einsatzszenarien: Fall 2 Data Plane Path Dispatcher Abfall der CPU-Last durch Vorklassifizierung im Path Dispatcher (SPD-Check) IPSec-Paketverluste ab 2,700 kbit/s
Einsatzszenarien: Fall 3 Data Plane Data Plane Path Dispatcher keine Paketverluste mehr bei Forwarding Head-of-Line Blocking bei 100% CPU-Last
Einsatzszenarien: Fall 4 Data Plane Data Plane Path Dispatcher CPU 1 hat höhere Priorität am Bus mehr Spraying-Verkehr keine Verluste bei Forwarding durch 2. CPU
Einsatzszenarien: Fall 5 Data Plane Path Dispatcher AutoRoute-Verhalten vergleichbar mit Fall 3 (2 CPUs, dedizierte Lastverteilung)
Anbindung von DynaCORE (Universität zu Lübeck) Motivation: Crypto-Funktionen sehr rechenaufwändig HW-Beschleunigung DynaCORE als externen HW-Beschleuniger Anschluss über Ethernet Gemeinsame Demonstration: flexible Ansteuerung / Wegewahl aus Perspektive FlexPath NP allgemeine Performanceerhöhung einfache Anbindung durch Standard-Schnittstellen gemeinsamer Stand auf FPL 2008 DynaCORE DES AES Aktueller Status: Datenformate spezifiziert Demonstrator angepasst Tunnel-SW zum Remote-Paketaustausch über Internet (München-Lübeck) erster Testlauf in Kürze
Ausblick: MPSoC Ziel Einbindung weiterer Data Planes (MicroBlazes) Mögliche Probleme Anbindung der MicroBlazes MicroBlazes mit PLB-Anschluss erst ab EDK 9.2 / 10.1 Atomare Zugriffe (bisher: 64 Bit Cacheline Zugriffe) Interconnect Mehr Busteilnehmer erschweren Timing Auslastung des Busses Alternativen Infrastruktur mit Bridging Multiport Memory Controller …
Ausblick: Weitere Load Balancing Strategien Bisher Keine Kenntnis des aktuellen Belastungszustandes Ziel Geregelte Lastzuweisung System-Monitoring Auswertung Regelalgorithmus Aspekte Zwei Mechanismen Spraying (Paketverteiler) Dedizierte Zuweisungen (Path Dispatcher) Migration von statebehafteten Applikationen in Überlastsituationen Rechenreserven durch gezielte Lastallokation z.B. für hochprioren Verkehr Sicherstellung von QoS
Zusammenfassung Funktionsfähiger FlexPath Netzwerkprozessor Vollständiger Multi-Processor System-on-Chip Demonstrator 2 PowerPCs Einsatzszenarien zeigen Vorteile und Möglichkeiten der flexiblen Wegewahl Anpassungsfähigkeit des FlexPath Systems mittels einfacher Konfiguration
Vielen Dank für Ihre Aufmerksamkeit!
FlexPath NP - Systemüberblick 2. Förderperiode Aufbauend auf Gerüst aus 1. Förderperiode Multi-Prozessor Cluster Mindestens 4 Data Plane CPUs Lastbalancierungsstrategie Multi-Prozessor Interrupt-Controller Hardwarebeschleuniger für Aufgaben mit besonders hoher Rechenanforderung (z.B. Crypto) Dynamisch partielle Rekonfiguration Optimierung der aktuellen Systemkonfiguration Farben!!!