Entwicklungstrends bei Mikroprozessoren
Großes SeminarOliver Becker
Motivation Hohe Innovationsgeschwindigkeit Leistungssteigerung von
Prozessoren Parallelität Neue Architekturen
Inhalt Stand der Technik
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• MOVER1,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 Lösungen
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-ProzessorenZweifach-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 BefehleLö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 -> r3aB2: r3 + 1 -> r4 B3: r5a * r6a -> r3bB3: r5 * r6 -> r3 B2: r3a + 1 -> r4aB4: 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
m2
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 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