Entwicklungstrends bei Mikroprozessoren Großes Seminar Oliver Becker
Motivation Hohe Innovationsgeschwindigkeit Leistungssteigerung von Prozessoren Parallelität Neue Architekturen
Inhalt Stand der Technik Trends Grundsäztlicher Aufbau von Mikroprozessoren Skalare RISC-Mikroprozessoren Superskalare RISC-Mikroprozessoren VLIW-/EPIC-Technik Trends Spekulative Parallelität Grobkörnige Parallelität Kontrollfadenspekulation Rekonfigurierbarer Prozessor Asynchroner Prozessor
Stand der Technik Grundsätzlicher Aufbau von Mikroprozessoren Steuerwerk Operationswerk Interner Speicher
Befehlszyklus Fetch (Befehl holen) Decode (Befehl decodieren, Operanden holen) Execute (ausführen) Write Back (Ergebnis zurückschreiben)
RISC-Philosophie RISC (Reduced Instruction Set Computer) Ein-Zyklus-Befehle Pro Takt einen Maschinenbefehl ausführen Verzicht auf Mikroprogrammierung Decodier- und Steueraufwand und somit Chipfläche einsparen Einheitliches Befehlsformat Weniger Fallunterscheidungen Load/Store-Architektur Neben Laden und Speichern sollen keine weiteren Befehle mit Speicherzugriff existieren
Skalare RISC-Prozessoren Pipelining (Fließbandverarbeitung) CLR R5 MOVE R1,R6 ADD R1,R2,R7 SUB R3,R4,R8
Probleme beim Pipelining Datenabhängigkeit Lösungen Einführung von nop-Befehlen Sperren des Fließbands Register-Bypassing Sprungabhängigkeit Sprungvorhersage (Hardware) Optimierung durch Compiler (Software)
Superskalare RISC-Prozessoren Mehrere Verarbeitungseinheiten Es werden mehrere Befehle pro Takt beendet Befehlsreihenfolge änderbar Beim zuordnen der Befehle an die Funktionseinheit Beim beenden der Befehlsausführung
Superskalare RISC-Prozessoren Zweifach-Superskalar
Befehlsreihenfolge(1) In-order-Issue/In-order-Completion Probleme: Datenabhängigkeit Lösung: Scoreboarding Sprungabhängigkeit Lösung: Sprungvorhersage Betriebsmittel-Abhängigkeit Lösung: Vervielfachung der Betriebsmittel
Befehlsreihenfolge(2) In-order-Issue/Out-of-order-Completion Probleme: Wie bei In-order-Issue/In-order-Completion Zusätzlich: Unterbrechnung durch Traps oder Interrupts
Befehlsreihenfolge(3) Out-of-order-Issue/Out-of-order-Completion Problem: Konfliktbehaftete Befehle Lösung: Befehlspuffer (reservation stations) Datenabhängigkeiten Echte Datenabhängigkeit Gegenabhängigkeit Ausgabeabhängigkeit
Datenabhängigkeiten Echte Datenabhängigkeit Ausgabeabhängigkeit (Write-after-Write) Gegenabhängigkeit (Write-after-Read)
Registerumbenennung Betriebsmittelvervielfachung Zusätzliche Register, vom Übersetzer nicht sichtbar (register renaming) Verwaltung durch Prozessor Pseudoabhängigkeiten werden aufgelöst Beispiel: B1: r1 / r2 -> r3 B1: r1a / r2a -> r3a B2: r3 + 1 -> r4 B3: r5a * r6a -> r3b B3: r5 * r6 -> r3 B2: r3a + 1 -> r4a B4: r3 * 2 -> r7 B4: r3b * 2 -> r7a
Befehlsreihenfolge(4) Out-of-order-Issue/In-order-Completion Rückordnungspuffer (recorder buffer) FIFO-Speicher Wird mit Befehlen in Programmreihenfolge geladen Immer nur Letzter Befehl in FIFO kann beendet werden Befehl wird anschließend aus FIFO entfernt
Sprungvorhersage Spekulative Ausführung Statische Sprungvorhersage Häufig durch Compiler Dynamische Sprungvorhersage Unabhängig von Compiler Vorgeschichte eines Sprungbefehls wird berücksichtigt
Sprungvorhersagetechniken 2-Bit-Prädiktor 4 Zustände
Sprungvorhersagetechniken Korrelationsprädiktor Berücksichtigt eigene Vergangenheit des Sprungbefehls Vergangenheit benachbarter Sprungbefehle (m,n)-Prädiktor die letzten m-Sprünge Auswahl aus Prädiktoren Jeder Prädiktor ist ein n-Bit-Prädiktor
Sprungvorhersagetechniken Hybridprädiktor Besteht aus 2-Bit-Prädiktor Korrelationsprädiktor Selektorprädiktor Selektorprädiktor wählt Prädiktor für die Sprungvorhersage aus
VLIW-/EPIC-Technik Very Long Instruction Word Parallelisierung übernimmt der Compiler (statische Befehlszuordnung) Hardware-Komplexität geringer als bei Superskalar-Technik Befehlsformat EPIC (Explicit Parallel Instruction Computing) Dreibefehlsformat Template Bits Variable Breite
Itanium
Spekulative Parallelität Datenabhängigkeits- und Wertespekulation Befehlsausführung startet mit spekulativen Operandenwerten Wertespekulation Ladeadresse Zu ladenden Wert Konstante Operanden Konstante Wertzunahme
Spekulative Parallelität Trace Cache Leistungsfähige Befehlsbereitstellung Befehlsfolgen werden mit fester Länge in Trace Cache gespeichert Bei erneuter Ausführung einer Befehlsfolge werden Befehle aus dem Trace Cache geholt
Spekulative Parallelität Vielfach superskalare Prozessoren 8-, 16- oder 32 fache superskalare Zuordnungsbandbreite Probleme Komplexe Hardware Durch Erhöhung der Zuordnungsbandbreite steigen auch die Fehlspekulationen Ansatz Superskalartechnik kombiniert mit VLIW-/EPIC-Technik
Grobkörnige Parallelität Chip-Multiprozessor (CMP) Mehrere Prozessoren auf einem Chip
Grobkörnige Parallelität Prozessor-Speicher-Integration Ein oder mehrere Prozessoren mit einem DRAM-Speicher auf einem Chip Speicher steht bei Entwicklung im Vordergrund Evtl. Ohne Cache-Speicher
Grobkörnige Parallelität Mehrfädige Prozessoren Gleichzeitiges ausführen mehrerer Kontrollfäden Kontexte der Fäden in seperaten Registersätzen Latenzzeiten werden überbrückt Techniken: Cycle-by-Cycle-Interleaving Block Interleaving Mehrfädigkeit mit Superskalartechnik
Kontrollfadenspekulation Erzeugung von Threads aus einem sequentiellen Befehlsstrom (Compiler oder zur Laufzeit) Multiskalare Prozessoren Prozessoren sind über einen unidirektionalen Ring verbunden Sequenzer verteilt die Befehlsfolgen Ein Prozessorelement führt den nicht spekulativen Teil aus Nachfolgende Prozessorelemente führen spekulativen Teil aus
Rekonfigurierbarer Prozessor Beispiel: Xputer Coprozessor Berechnung großer Datenmengen Haupbestandteile: Datenspeicher Datensequenzer Rekonfigurierbare Recheneinheiten (r-ALUs)
Rekonfigurierbarer Prozessor Beruht auf Konzept der Field Programmable Gate Arrays (FPGAs) Bausteine sind zur Laufzeit veränderbar (Multiplizierer, Addierer, Schieberegister) Programm besteht aus Konfiguration der rekonfigurierbaren ALUs Einer Folge von Datenzugriffen Datenzugriff und Berechnung werden getrennt Nachteil: Funktion einer Recheneinheit umschaltbar, aber nur beim Wechsel des kompletten Algorithmus
Rekonfigurierbarer Prozessor
eXtreme Processing Platform XPU128-ES 128 Recheneinheiten Konfiguration der Recheneinheiten jederzeit änderbar Eigener C-Compiler Verteilt die Arbeit auf möglichst viele Einheiten 50 Milliarden Operationen pro Sekunde 100MHz Unter 20 Watt
eXtreme Processing Platform Aufbau 2 Rechen-Cluster, bestehend aus 64 Recheneinheiten Jeder Cluster besitzt Speicher I/O-Anschlüsse Configuration Manager Supervising Configuration Manager Koordiniert die einzelnen Cluster
Asynchroner Prozessor Synchrone Prozessoren Alle Komponenten schalten im Rhythmus des Taktes Komponenten die nichts zu tun haben, erzeugen Verlustleistung (Wärme) Schwächstes Glied in der Kette gibt die Geschwindigkeit vor Prozessoren mit hohen Taktfrequenzen erzeugen hohe elektromagnetische Abstrahlung
Asynchroner Prozessor Es existiert kein zentraler Takt Komponenten kommunizieren über Handshake-Signale Request (Anfrage) Acknowledge (Bestätigung)
Asynchroner Prozessor Logik-Block Problem: Wann ist ein Logik-Block mit seiner Berechnung fertig? Lösung: Bounded Delay Model Current Sensing Completion Detection
Asynchroner Prozessor Current Sensing Completion Detection
Asynchroner Prozessor Funktionsfähige asynchrone Prozessoren Amulet3 TITAC-2 Extremtest: Von –196 bis 100 C Temperatur
Asynchrone Prozessoren Anwendungsgebiete UMTS Voiceprocessing Audio- und Bildverarbeitung Netzwerk-Prozessoren Simulationen Anwendungen in der Genforschung
Fazit Superskalar-Technik wegen mangelnder Befehlsebenenparallelität weitestgehend ausgereizt