190 likes | 280 Views
Explore the implementation of the Path Dispatcher and Control modules of the FlexPath NP, a network processor, focusing on real-time packet classification, packet order preservation, and network performance enhancement. Details include hardware implementation, algorithm approaches, system integration, and potential expansion. Discover how these components optimize packet routing in fluctuating network traffic scenarios.
E N D
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 Entscheidungin 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
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 • 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) PaC Post- Proc. Buffer Manager (DMA) DDR MAC I/F PLB Arb. Path Disp. Ctx Gen. eng. Pre- Proc.
Verbindung 1 Verbindung 2 Einsatzszenarien: IP forwarding & IPSec • Messszenario: 100 Mbps IMIX + variabler IPSec Verkehr FlexPath IPSec (512 Byte Pakete) 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
IPSec >1 ms Einsatzszenarien: Fall 1 Data Plane PathDispatcher • hohe Grundlast durch SPD-Check • geringe IPSec-Paketrate steigert CPU-Last deutlich • Paketverluste bei Forwarding trotz ausreichender CPU Lastreserve
Einsatzszenarien: Fall 2 Data Plane PathDispatcher • 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 PathDispatcher • keine Paketverluste mehr bei Forwarding • Head-of-Line Blocking bei 100% CPU-Last
Einsatzszenarien: Fall 4 Data Plane Data Plane PathDispatcher • CPU 1 hat höhere Priorität am Bus mehr Spraying-Verkehr • keine Verluste bei Forwarding durch 2. CPU
Einsatzszenarien: Fall 5 Data Plane PathDispatcher • AutoRoute-Verhalten vergleichbar mit Fall 3 (2 CPUs, dedizierte Lastverteilung)
DynaCORE DES AES AES 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 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!
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 FlexPath NP - Systemüberblick 2. Förderperiode