Rekonfigurierbare Prozessoren für die Sicherungsschicht in Mobilfunksystemen Dipl.-Ing. Thilo Pionteck Professor Dr. Dr. h. c. mult. Manfred Glesner Karlstrasse 15 6423 Darmstadt
Übersicht Motivation Dynamisch rekonfigurierbare Funktionseinheit für Prozessoren Ablaufsteuerung / Prozessorintegration Zusammenfassung / Ausblick
Motivation Änderungen in WLAN-Systemen häufig auf der Sicherungsschicht (Medium Access Control Layer) Beispiele: IEEE 02.11e/f/h/i Aufgaben der Sicherungsschicht bei WLANs Powermanagement Flusskontrolle Kollisionserkennung Steuerung des Kanalzugriffes Quality of Service Verschlüsselung Fehlerkorrektur Software Software / Hardware Hardware Standardrealisierung der Sicherungsschicht Software Benötigt hohe Taktraten Hoher Leistungsverbrauch Software + Hardwarebeschleuniger Mangelnde Flexibilität Sobald sich Standards ändern ist ein Redesign erforderlich
Motivation Entwurfsziele: Lösung speziell für den Bereich drahtloser Netzwerke (WLANs) Hohe Stückzahlen Einsatz von ASICs prinzipiell sinnvoll Flexible Hardwarelösung für rechenintensive Anwendungen in der Sicherungsschicht Verschlüsselung (Advanced Encryption Standard) Fehlererkennung (Cyclic Redundancy Check) Fehlerkorrektur (Reed Solomon) Keine Realisierung einer rekonfigurierbaren Architektur auf einem FPGA Erweiterung eines ASIC-Entwurfes um rekonfigurierbare Komponenten Geringer Hardwareoverhead im Vergleich zu einer reinen ASIC-Lösung Funktionsspezifische dynamich rekonfigurierbare Architektur Wiederverwendung von Hardwarekomponenten für kontrollflussdominierte Aufgaben der Sicherungsschicht
Motivation Einbettungsvarianten rekonfigurierbarer Architekturen in Prozessorumgebungen Peripheriebus-Kopplung Anbindung über den I/O-Bus des Prozessorsystems Vergleichbar mit der Anbindung eines Prozessors in Multiprozessorensystemen Hohe Kommunikationskosten / modularer Aufbau Prozessorbus-Kopplung Vergleichbar mit der Kopplung zwischen Prozessor und Koprozessor Geringe Kommunikationskosten Anpassung der rekonfigurierbaren Architektur an einen Prozessor Datenpfadkopplung / Rekonfigurierbare Funktionseinheit Minimale Kommunikationskosten Hardwareunterstützung auch kleinerer Teilaufgaben Hoher Entwicklungsaufwand Ggf. Problem der Geschwindigkeitslücke zwischen Prozessor und RFU
Motivation Einbettungsvarianten rekonfigurierbarer Architekturen in Prozessorumgebungen Peripheriebus-Kopplung Anbindung über den I/O-Bus des Prozessorsystems Vergleichbar mit der Anbindung eines Prozessors in Multiprozessorensystemen Hohe Kommunikationskosten / modularer Aufbau Prozessorbus-Kopplung Vergleichbar mit der Kopplung zwischen Prozessor und Koprozessor Geringe Kommunikationskosten Anpassung der rekonfigurierbaren Architektur an einen Prozessor Datenpfadkopplung / Rekonfigurierbare Funktionseinheit Minimale Kommunikationskosten Hardwareunterstützung auch kleinerer Teilaufgaben Hoher Entwicklungsaufwand Ggf. Problem der Geschwindigkeitslücke zwischen Prozessor und RFU
Übersicht Motivation Dynamisch rekonfigurierbare Funktionseinheit für Prozessoren Ablaufsteuerung / Prozessorintegration Zusammenfassung / Ausblick
Rekonfigurierbare Funktionseinheit Funktionsspezifiasche rekonfigurierbare Funktionseinheit Aufgaben Verschlüsselung (AES) Fehlererkennung (CRC) Fehlerkorrektur (Reed Solomon) Unterstützung der Rekonfiguration zur Laufzeit Geringer Hardwareoverhead Autonome Bearbeitung komplexer Aufgaben Hohe Ressourcenauslastung Entlastung des Prozessors Lokaler Konfigurationsspeicher Direkter Zugriff auf Datenspeicher Hardwareunterstützung auf für kleine Teilaufgaben Direkter Zugriff des Prozessors auf alle Speicherkomponenten und arithmetischen Einheiten der rekonfigurierbaren Funktionseinheit
Rekonfigurierbare Funktionseinheit Aufbau der RFU (ohne Rekonfigurationskontrolle) Unterteilung in Arithmetische Ressourcen Speicherkomponenten Spezielle Module zur Verschlüsselung und Fehlerkorrektur to memory address data Memory Controler input a Error Correction Module LUT Module output input b Common Resources Security Module
Rekonfigurierbare Funktionseinheit Error Correction Module to memory address data Memory Controler from previous cell n-1 M11 0 input add_n σ x 0 M12 Reg2_n FF add_n 0 M13 Reg1_n FF input a Error Correction Module LUT Module output input b Common Resources M14 to next cell n+1 α n 1 quot M17 x α G n 1 enc_input 0 LUT Module Reg2_n from Input Module cell n Cell 1 Cell 2 Cell 16 to Abort Module to Output Module Security Module Block A LUT input a input b ECM Input Module Block A Abort Module Output Module to tun control output Syndrome calculation, RS encoding Euclid s algorithm, chien search Block B Block B from Input Module Cell 1 Cell 2 Cell 9 Common Resources Common Resources Common Resources to Output Module ω n 1 M21 Reg3_n FF crc n 1 σ n 1 M25 β n 1 n 1 β z α quot M22 from previous cell n- 1 Forney algorithm CRC encoding/decoding Euclid s algorithm, chien search M24 Reg4_n FF 0 M23 Reg5_n FF to next cell n+1
Rekonfigurierbare Funktionseinheit Security Module Gleicher Datenpfad für Verschlüsselung und Entschlüsselung to memory address data Memory Controler Error Correction Module Unterstützung verschiedener Schlüssellängen input a LUT Module output Kompromiss zwischen Hardwareaufwand und Performance input b Common Resources Datenpfadbreite 32 Bit Security Module Möglichkeit des Pipelinings MUX5 Signal selection for encryption MixColMulti 4 x bit multiplier GF(256) 4 x bit multiplier GF(256) MUX3 MUX1 output input a Add RK MUX2 input b Key Schedule SubByte, Table Lookup ShiftRow forwarding logic ShiftRow Register
Rekonfigurierbare Funktionseinheit Advanced Encryption Standard (AES) Basiert auf Rijndael s symmetric block chiper Algorithmus Datenlänge von 12 Bits Schlüssellänge 12, 192, 256 Bits Input key expansion first round AddRound Key SubBytes ShiftRows round key(0) round key(nr) AddRound Key InvSubBytes InvShiftRows first round for i=2 to Nr-1 AddRound Key MixColumns SubBytes ShiftRows AddRound Key round key(i) round key(nr) round key(i) round key(0) InvMixColumns AddRound Key InvSubBytes InvShiftRows AddRound Key for i= 2 to Nr-1 Output
Rekonfigurierbare Funktionseinheit KeyExpansion On-the-fly Schlüsselgenerierung Geringer Hardwareaufwand verglichen mit anderen Ansätzen Rundenschlüssel wird in mehreren Schritten erzeugt Benötigt nur 4 SubByte-Module Verwendung der gleichen SubByte-Module für KeyExpansion und Datenverschlüsselung
Rekonfigurierbare Funktionseinheit SubByte Look-up Tabellen werden mit Hilfe von RAMs realisiert Gemeinsame Look-up Tabelle fur Verschlüsselung und Entschlüsselung Vorgeschlagen von C. Lu and S. Tseng: Integrated Design of AES Encrypter and Decrypter in IEEE Transaction on Information Theory Wiederverwendung des RAMs 32 32 Look-up Table, 256 x bit 32 32 0..7 0..7 m 1 1 bit 0 1 ( in + c) M SubByte out = in M + c InSubByte 0..7 m 2 1 bit 1 c m 1 bit 7 c 23..31 23..31 1 ( in + c) M SubByte out = in M + c InSubByte 23..31
Rekonfigurierbare Funktionseinheit MixColumns (Multiplikation in GF(2 )) Realisierung der Multiplikation durch eine wiederholte Anwendung der Xtime-Operation Shift und bitweise XOR Operationen auf Byteebene Feste primitive polynomials für AES, es wurden trotzdem vollständige Multiplizierer verwendet Wiederverwendung der Multiplizierer für andere Anwendungen (RS-Codes, CRC) Generisches Xtime-Modul x Bit Multiplizierer kann in zwei 4x Multiplizierer aufgespalten werden Anwendung: Verschlüsselung a(x) a7 a6 a5 a4 a3 a2 a1 a0 a2 primitive polynomial p mux 1 p7 p6 p5 & & & a1 b 1 xt 1 xt 2 xt 3 xt 4 xt 5 xt 6 xt 7 0 p4 p3 p2 & & & 0..0 0..0 0..0 0..0 0..0 0..0 0..0 0..0 b(0) b(1) b(2) b(3) b(4) b(5) b(6) b(7) p1 & r7 r6 r5 r4 r3 r2 r1 r0 genxtime( a(x) ) a 1 b(3..0) a 2 b(7..4) a b
Rekonfigurierbare Funktionseinheit Pipelining Hohe Auslastung aller Komponenten Dynamische Rekonfiguration Beispiel: Verschlüsselung mit einer Schlüssellänge von 12 Bits AES 12 AES 192 AES 256 Encryption 64 77 Decryption 74 4 100 round cycle AddRKey SubByte ShiftRow input / MixCol 1 in out output 0 1 S1 S1, K1 2 S2 S1 S2, K2 3 S3 S2 S1 S3, K3 4 S4 S3 S2 S4, K4 5 S4 S3 i = 1 to 9 0 + 6 * i K1 S4 S1 S1 1 + 6 * i S1 S2 S2 2 + 6 * i S2 S1 S3 S3 3 + 6 * i S3 S2 S1 S4 S4 4 + 6 * i S4 S3 S2 5 + 6 * i S4 S3 10 60 K1 S4 61 S1 S1 S1 62 S2 S2 S2 63 S3 S3 S3 64 S4 S4 S4
Übersicht Motivation Dynamisch rekonfigurierbare Funktionseinheit für Prozessoren Ablaufsteuerung / Prozessorintegration Zusammenfassung / Ausblick
Ablaufsteuerung Entwurfsziele: Allgemeine Konfigurationssteuerung für dynamisch rekonfigurierbare Funktionseinheiten Einfache Kontrolllogik Rekonfiguration zur Laufzeit Effiziente Speicherung der Konfigurationsdaten Minimaler Rekonfigurationsoverhead Selbständige Kontrolle der Rekonfiguration Autonome Ausführung komplexer Operationen Sequenz von Konfigurationen Einfache Integration in einen Prozessor mit Befehlspipeline Pipelinesteuerung des Prozessors soll nicht verändert werden
Ablaufsteuerung Kontrolllogik Config_vector = Tab1[i][2..0]&Tab_Var[tab_select][Tab1][7..3]]&Tab_Const[tab_select]
Ablaufsteuerung Entwursziele: Selbständige Ausführung komplexer Berechnungen Eigenschaften: Single-Cycle Operationen Zuweisung eines Konfigurationsvektors an die RFU durch Auswahl eines Eintrages in Tabelle 1 Vergleichbar zu den Programmiermodellen anderer Architekturen Multi-Cycle Operationen Ausführung einer beliebig langen Sequenz von Rekonfigurationen Run unit inkrementiert jeden Takt den Zeiger auf die Tabelle 1 Schleifen / Sprünge Tabelle der konstanten Konfigurationsdaten kann zur Speicherung von Sprungadressen oder der Anzahl von Schleifendurchläufen verwendet werden. Kodierung von Sprüngen/Schleifen durch zusätzliche Bits in Tabelle 1
Prozessorintegration Prozessormodell 32 Bit RISC-Prozessor mit einer fünfstufigen Befehlspipeline (in Anlehnung an die DLX-Architektur) Pipelinesteuerung soll durch die RFU nicht beeinflusst werden Befehlssatzerweiterung Konfigurationsbefehl Aktiviert die program unit. Konfigurationsdaten werden autonom aus einem externen Speicher in die Konfigurationstabellen geladen Single-Cycle Befehl 31 20 15 10 Spezifiziert zwei Quell- und ein Zielregister. Zusätzlich wird der Konfigurationsvektor bestimmt (Tabelle 1) Multi-Cycle Befehl RU table # words to start addr. 0 0 1 1 1 0 start address ROM sel. select load table 31 25 23 20 15 10 0 0 0 1 1 1 1 dest src 1 src 2 t start address table 25 7 6 0 0 1 0 0 1 0 src 2 src 1 # instructions t start address table 31 25 20 15 14 7 6 0 Spezifiziert zwei Quellregister, die Anzahl der Operationen und den ersten Konfigurationsvektor
Prozessorintegration Pipelineintegration - Nur single-cycle Befehle können Ergebnisse in die Registerbänke schreiben - Ergebnis eines multi-cycle Befehls muss mit Hilfe eines single-cycle Befehls abgeholt werden multi-cycle operation 4 cycles RFU ALU ALU ALU IF ID EX EX EX IF ID EX MEM WB EX MEM WB IF ID EX MEM WB IF ID EX MEM WB pipiline conflict multi-cycle operation 5 cycles RFU ALU IF ID EX EX EX EX IF ID EX MEM WB EX single-cycle operation Receive result of multi-cycle operation ALU ALU ALU RFU ALU IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB
Prozessorintegration Beispielimplementierung: DLX-Prozessor IF ID EX MEM WB Instruction Decode CTRL CTRL CTRL RFU Control Config. Tables DM extern IM / CM extern PC 4 IWord PC IX REGISTERS reg a reg b imm PC dest RFU IU 0...0 PSW OUT IN res reg PC dest 31 mem reg dest 0
Prozessorintegration Synthese 0.25µm 1P5M CMOS Standardzellenprozess Verwendung von RAM-Macros für größere Speicherblöcke (Konfigurationstabellen) Geringer Hardwareoverhead von nur 6.5% (RFU Kontrolllogik + Konfigurationstabellen) Performanz Datenraten aktueller WLANs werden problemlos erreicht Hohe Verfügbarkeit der ALU Hohe Ressourcenauslastung Maximale Taktrate: 100 MHz Operation Throughput RFU ALU Module/Unit Chip Area Critical Path Encrypt. 12 262 Mbps 95% % Basic CPU 0.91563 mm 2 5.02 ns Encrypt. 192 21 Mbps 95% 90% RFU 1.70749 mm 2.20 ns Encrypt. 256 191 Mbps 96% 91% ECM 0.65491 mm 2 7.29 ns Decrypt. 12 230 Mbps 95% 91% AES 0.4924 mm 2 7.24 ns Decrypt. 192 200 Mbps 95% 91% LUT 0.59974 mm 2 1.70 ns Decrypt. 256 170 Mbps 96% 92% RFU Control 0.77122 mm 2 4.09 ns RS(255,239) enc 736 Mbps 99% 62% Overall Design 3.5233 mm 2 10.17 ns RS(255,239) dec 373 Mbps 95% 71% CRC enc/dec 2512 Mbps 69% 51%
Prozessorintegration Integration in Leon2: Prototyping auf einem Virtex2 FPGA Geschwindigkeitssteierung um Faktor 20 (CRC) Slices Slice Flip-Flops 4 input LUTs Block Ram Ratio LEON2 to LEON2/RFU 37,52% 3,37% 37,9% 50,00% LEON2/RFU LEON2 Resource Available Used Ratio Used Ratio Slices 10752 17 2,00% 3329 30,96% Slice Flip-Flops 21504 411 19,15% 164 7,66% 4 input LUTs 21504 16124 74,9% 613 2,54% Block RAM 56 16 2,57% 14,29%
Übersicht Motivation Dynamisch rekonfigurierbare Funktionseinheit für Prozessoren Ablaufsteuerung / Prozessorintegration Zusammenfassung / Ausblick
Zusammenfassung / Ausblick Entwicklung einer dynamisch rekonfigurierbaren Funktionseinheit zur Beschleunigung von rechenintensiven Anwendungen in der Sicherungsschicht von WLANs Integration unabhängig vom Prozessormodell Geringer Hardwareoverhead Ausblick Realisierung der IEEE 02.11a Sicherungsschicht in Software und mit Hilfe der RFU Performance Leistungsverbrauch Aufbau eines Prototypen / Ansteuerung des digitalen Basisbandes Echtzeitbedingungen Basisbandchip von Infineon Ableitung von verallgemeinerten Entwurfmethoden und metriken
Publikationen Pionteck, Thilo, Thorsten Staake, Thorsten Stiefmeier, Lukusa D. Kabulepa, Manfred Glesner: Design of a Reconfigurable AES Encryption/Decryption Engine for Mobile Terminals. In Proceedings of the IEEE International Symposium on Circuits and Systems, May 2004. Glesner, Manfred, Thomas Hollstein, Leandro Soares Indrusiak, Peter Zipf, Thilo Pionteck, Mihail Petrov, Heiko Zimmer, Tudor Murgan: Reconfigurable Platforms for Ubiquitous Computing. In Proceedings of the first Conference on Computing Frontiers, 2004. Pionteck, Thilo, Thomas Stiefmeier, Thorsten Staakte, Lukusa D. Kabulepa und Manfred Glesner: Integration dynamisch rekonfigurierbarer Funktionseinheiten in Prozessoren. In: 2004. - Organic and Pervasive Computing, GI-Edition Lecture Notes in Informatics (LNI), März Pionteck, Thilo, Thorsten Staake, Thomas Stiefmeier, Lukusa D. Kabulepa, and Manfred Glesner: On the Design of a Function-Specific Reconfigurable Hardware Accelerator for the MAC-Layer in WLANs. In Proceeding of the 2004 ACM/SIGDA 12th International Symposium on Field Programmable Gate Arrays (FPGA), 2004. Pionteck, Thilo, Lukusa D. Kabulepa, Clemens Schlachta, and Manfred Glesner: Reconfiguration Requirements for High Speed Wireless Communicatio Systems. Proceedings of IEEE International Conference on Field-Programmable Technology December 2003. Pionteck, Thilo, Thomas Stiefmeier, Thorsten R. Staake, and Manfred Glesner: A Dynamically Reconfigurable Function-Unit for Error Detection and Correction in Mobile Terminals. In 14th International Conference on Field-Programmable Logic and Applications (FPL), 2004.
Fragen?