High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de Matthias Schwarz 1
Übersicht Einführung Motivation und Zielsetzung Begriffe Nexperia Home Platform Architektur Speicherlayout Softwarearchitektur Entwicklungsumgebung Pact XPP III Architektur FNC-PAE ALU-PAE RAM-PAE Synchronisation Video Dekodierung Matthias Schwarz 2
Motivation und Zielsetzung Eingebettete Systeme stellen Anforderungen an Performance Fläche Energieverbrauch Unter diesen Umständen ergeben sich neue Ansätze für Prozessoren die in eingebetteten Systemen zum Einsatz kommen. Matthias Schwarz 3
Heterogene - Homogene Architekturen Heterogen Bestehen aus verschiedenartigen Hardwarebausteinen Anpassung an Anwendungsgebiet durch Auswahl dieser Bausteine Abstraktionsschichten für Programmierung Homogen Gleiche Hardwarebausteine Performancegewinn durch weitere Prozessorelemente Abstraktionsschichten nur bedingt notwendig Matthias Schwarz 4
Kommunikation Shared Memory Komponenten kommunizieren über gemeinsam genutzten Speicher Message Passing Komponenten kommunizieren untereinander mittels Nachrichten Matthias Schwarz 5
Nexperia Home Platform Architektur Vorlage für Digital Video Audio im Bereich der Consumer Electronics. Matthias Schwarz 6
Main Memory Interface Arbitriert Speicherzugriffe Behandelt Kontroll- und Datensignale Keine weitere Logik bei Verbindung mit externem Speicherbaustein nötig Matthias Schwarz 7
Softwarearchitektur Matthias Schwarz 8
TriMedia TM32 Familie Media Processor Mischung aus DSP und GPP VLIW Architektur Matthias Schwarz 9
VLIW Verarbeitung multi-port 128 words x 32 bits register file bypass network FU FU FU FU FU VLIW instruction decode and launch Matthias Schwarz 10
XPP-III Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de 1
Motivation, Klassifikation, Einsatzbereiche Klassifikation homogene Architektur grobgranular (coarse-grained) rekonfigurierbar Warum rekonfigurierbare Architekturen? rekonfigurierbare Architekturen kombinieren die Performance von ASIC's mit der Flexibilität von programmierbaren Prozessoren Algorithmen UND Ressourcen variabel Einsatzbereiche: Multimedia Telekommunikation Simulation Kryptographie... 2
Gesamtstruktur 30 ALU-, 12 RAM-, 6 FNC-PAEs 3
Gesamtstruktur (Function-PAEs) FNC-PAEs (Function-PAEs) sequentielle 16-Bit Prozessor-Kerne führen unregelmäßigen, kontrollflussdominierten Code aus bis zu 8 ALU-Operationen und 1 Spezialbefehl pro Zyklus (z.b. MUL) 4
Gesamtstruktur (dataflow array) ALU-PAEs 3 ALUs RAM-PAEs 2 ALUs, kleiner RAM, I/O Objekt führen regelmäßige Streaming-Algorithmen aus (Filter, Transformationen,...) 5
FNC-PAE 6
ALU-PAE 7
RAM-PAE 8
Synchronisation Paket-orientiertes Netzwerk Standard-Modus XPP Objekte sind selbst-synchronisierend Eine Operation wird ausgeführt, sobald alle nötigen Pakete verfügbar sind 1 Paket pro Zyklus Hardware-Protokolle schützen vor Paketverlust Kein explizites Scheduling der Operationen nötig constant mode setzt die Synchronisation außer Kraft erlaubt die wiederholte Nutzung von Daten 9
Rekonfiguration eigentliche Stärke des XPP-III leistungsfähiger Rekonfigurations-Mechanismus zur Laufzeit PAEs können konfiguriert werden, während benachbarte PAEs Daten verarbeiten ganze Algorithmen können unabhängig auf verschiedenen Teilen des Arrays konfiguriert und ausgeführt werden 10
Video Decoding auf dem XPP-III 11
Video Decoding auf dem XPP-III MPEG 2 H.264 VC-1 VGA (640x480), 30 fps Local Buffer: 240 Kbit XPP12.6.3 XPP20.8.4 XPP40.16.8 45 MHz 25 MHz 19 MHz 237 MHz 148 MHz 80 MHz 149 MHz 106 MHz 59 MHz MPEG 2 H.264 VC-1 SD/D1 (720x480), 30 fps Local Buffer: 270 Kbit XPP12.6.3 XPP20.8.4 XPP40.16.8 50 MHz 28 MHz 21 MHz 266 MHz 166 MHz 90 MHz 167 MHz 119 MHz 66 MHz MPEG 2 H.264 VC-1 HD (1280x720), 30 fps Local Buffer: 480 Kbit XPP12.6.3 XPP20.8.4 XPP40.16.8 132 MHz 72 MHz 53 MHz n/a 325 MHz 174 MHz n/a 312 MHz 165 MHz MPEG 2 H.264 VC-1 VGA (640x480), 30 fps Local Buffer: 60 Kbit XPP12.6.3 XPP20.8.4 XPP40.16.8 50 MHz 31 MHz 28 MHz 242 MHz 156 MHz 92 MHz 161 MHz 118 MHz 84 MHz MPEG 2 H.264 VC-1 HD (1920x1080), 30 fps Local Buffer: 720 Kbit XPP12.6.3 XPP20.8.4 XPP40.16.8 300 MHz 162 MHz 117 MHz n/a n/a 390 MHz n/a n/a 366 MHz 12