Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Hochperformante Mikroprozessoren - 6

Ähnliche Präsentationen


Präsentation zum Thema: "Hochperformante Mikroprozessoren - 6"—  Präsentation transkript:

1 Hochperformante Mikroprozessoren - 6
Hochperformante Mikroprozessoren Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die CISC-Mikroprozessoren mit den Familien der Intel 80x86- und der Motorola 680x0-Prozessoren Die (skalaren) RISC-Mikroprozessoren mit den Familien der MIPS- und Sun SPARC-Prozessoren Beide Prozessorlinien nutzten Pipelining, jedoch nur einen Befehl pro Pipelinestufe (single issue). Ende der 80er Jahre: Integrationsgrad von 1.2 M Transistoren pro Prozessor-Chip (Beispiel: Intel 80486) ab Anfang der 90er Jahre Siegeszug der superskalaren Prozessoren Die Grundidee von Superskalar: Einschränkung der skalaren RISC-Prozessoren auf Einmalzuweisung (single issue) überwinden und mehr als einen Befehl pro Takt holen, decodieren, den Ausführungs-einheiten zuweisen, ausführen und die Ergebnisse zurückschreiben.

2 Stand der Chip-Technologie (vom Juni 2002)
ca. 100 M Transistoren, 0.14 mm CMOS und bis zu 2 GHz Taktrate Beispielprozessoren: Intel Pentium III: 9.5 M Transistoren, 0.13 mm BiCMOS, bis zu 1,6 GHz Intel Pentium 4: 42 M Transistoren, 0.13 mm BiCMOS, bis zu 2,4 GHz Intel IA-64 Itanium: 0.18 mm CMOS, 800 MHz Intel Itanium 2 (Codename: McKinley, Juli 2002): 1 GHz Alpha 21364: 100 M Transistoren, 0.18 mm CMOS, 1.5 Volt, 100 Watt

3 Mehrfachzuweisungstechniken (multiple issue)
Heutige Hochleistungsmikroprozessoren und Signalprozessoren arbeiten mit Mehrfachzuweisungstechniken (multiple issue). Zu diesen Techniken gehören die Superskalartechnik, die VLIW-Technik (Very Long Instruction Word), im Wesentlichen bei Signalprozessoren und bei Multimediaprozessoren angewandt, und die aus VLIW entwickelte EPIC-Technik (Explicitly Parallel Instruction Computing). Das von Hewlett-Packard und Intel entwickelte EPIC-Format ist das neue Befehlsformat der IA-64 und wird in der Itanium-Prozessorfamilie angewandt.

4 6.2 Komponenten eines superskalaren Prozessors

5 6.3 Superskalare Prozessor-Pipeline
In-order In-order Out-of-order

6 Die drei Abschnitte einer superskalaren Pipeline
Die In-order-Sektion besteht aus der Befehlsholestufe und der Befehlsdecodier- und Registerumbenennungsstufe. Wird die Zuweisung der Befehle an die Ausführungseinheiten immer in Programmreihenfolge gemacht (in-order issue), gehört die Zuordnungsstufe ebenfalls zu dieser Inorder-Sektion. Die Out-of-order-Sektion startet gegebenenfalls mit der Zuordnungsstufe und beinhaltet die Ausführungsstufen bis zur Resultatwerterzeugung. Die zweite In-order-Sektion sorgt für das Rückordnen der Ergebnisse in der ursprünglichen Programmreihenfolge und das Rückschreiben in die Architekturregister

7 Befehlsholestufe (IF)
Lädt mehrere Befehle aus dem Code-Cache. Typischerweise werden in einem Takt mindestens so viele Befehle geholt wie maximal den Ausführungseinheiten zugewiesen werden können. Welche Befehle geholt werden, hängt von der Sprungvorhersage ab, die in der Befehlsholestufe zum Tragen kommt. Im Sprungzieladress-Cache werden die Adressen der Sprungbefehle und die dazugehörigen Sprungziele gespeichert. Ein Befehlsholepuffer entkoppelt die Befehlsholestufe von der Decodierstufe

8 Decodierstufe (ID) eine Anzahl von Befehlen wird decodiert
Decodierbandbreite entspricht meist der maximalen Zuordnungs-bandbreite Operanden- und Resultatregister werden umbenannt, d.h., die in den Befehlen spezifizierten Architekturregister werden auf die physikalisch vorhandenen Register abgebildet. Danach werden die Befehle in das Befehlsfenster (instruction window) geschrieben. Die Befehle in dem Befehlsfenster sind durch die Sprungvorhersage frei von Steuerflussabhängigkeiten und durch das Registerumbenennen frei von Namensabhängigkeiten. Es müssen nur noch die echten Datenabhängigkeiten beachtet und Strukturkonflikte gelöst werden.

9 Zuweisung von Befehlen an die Ausführungseinheiten (Issue)
Die Logik für die Zuweisung von Befehlen an die Ausführungseinheiten überprüft die wartenden Befehle im Befehlsfenster und weist in einem Takt bis zur maximalen Zuordnungsbandbreite Befehle zu. Die Programmreihenfolge der zugewiesenen Befehle wird im Rückordnungspuffer abgelegt. Die Befehle können in der sequenziellen Programmreihenfolge (in order) oder außerhalb der Reihenfolge (out of order) zugewiesen werden. Die Prüfungen auf Daten- und Strukturkonflikte können in einer Pipeline-Stufe geschehen oder sie können auf verschiedene Pipeline-Stufen aufgeteilt werden.

10 Umordnungspuffer - Reservation Station(s)
Wenn die Strukturkonflikte vor den Datenkonflikten geprüft werden, geschieht die Zuweisung der Befehle in sogenannte Umordnungspuffer (reservation stations), die sich vor den Ausführungseinheiten befinden. Ein Befehl wartet im Umordnungspuffer, bis alle Operanden verfügbar sind. Abhängig vom Prozessor gehören die Umordnungspuffer zu einer Gruppe von Ausführungseinheiten (Beispiel: Pentium-Prozessoren) oder jede Ausführungseinheit hat seine eigenen Umordnungspuffer (PowerPC-Prozessoren). Im letzteren Fall kommt es zu einem Strukturkonflikt, wenn mehr als ein Befehl an einen der Umordnungspuffer der gleichen Ausführungseinheit zugewiesen werden soll.

11 Dispatch Der Übergang vom Warten zur Ausführung wird als Dispatch bezeichnet. Sollten bei der Zuordnung schon alle Operanden verfügbar sein und die Ausführungseinheit nicht beschäftigt, so kann die Ausführung des Befehls schon direkt im folgenden Takt begonnen werden. Deshalb ist Dispatch auch keine Pipeline-Stufe. Ein Befehl kann null oder mehr Takte im Umordnungspuffer verbringen. Dispatch und Ausführung der Befehle geschehen außerhalb der Programmreihenfolge. Anmerkung: Die Bedeutungen von issue und dispatch kommen in der Literatur auch vertauscht vor.

12 Befehlsvervollständigung - Completion
Wenn der Befehl die Ausführungseinheit verlassen hat und das Ergebnis für das Forwarding zur Verfügung steht, sagt man, die Befehlsausführung sei vollständig (complete). Die Befehlsvervollständigung geschieht außerhalb der Programmreihenfolge. Während der Vervollständigung werden die Umordnungspuffer bereinigt und der Zustand der Ausführung im Rückordnungspuffer vermerkt. Der Zustand eines Eintrags im Rückordnungspuffer kann eine aufgetretene Unterbrechung anzeigen oder auch einen vollständigen Befehl, der jedoch noch von einer Spekulation abhängt.

13 Gültigmachen - Commitment
Nach der Vervollständigung werden die Befehlsresultate in der Programmreihenfolge gültig gemacht (committed). Ein Befehlsresultat kann gültig gemacht werden, wenn: die Befehlsausführung vollständig ist, die Resultate aller Befehle, die in Programmreihenfolge vor dem Befehl stehen, bereits gültig sind oder im gleichen Taktzyklus gültig gemacht werden, keine Unterbrechung vor oder während der Ausführung auftrat und der Befehl von keiner Spekulation mehr abhängt. Während oder nach dem Gültigmachen werden die Ergebnisse der Befehle in den Architekturregistern dauerhaft gemacht, gewöhnlich durch das Rückschreiben aus den Umbenennungsregistern. Oft in einer eigenen Stufe Umbenennungsregister werden erst einen Takt nach der Vervollständigung freigegeben.

14 präzise Unterbrechung - Precise Interrupt, Precise Exception
Wenn eine Unterbrechung auftritt, werden die Resultate aller Befehle, die in der Programmreihenfolge vor dem Ereignis stehen, gültig gemacht und diejenigen aller nachfolgenden Befehle verworfen. Abhängig von der Architektur und der Art der Unterbrechung, wird das Resultat des verursachenden Befehls noch gültig gemacht oder verworfen, ohne weitere Auswirkungen zu haben.

15 Rückordnung - Retirement
Freigeben eines Platzes im Umordnungspuffer Bei der Rückordnung (retirement) eines Befehls wird entweder das Befehlsresultat gültig gemacht (committed) oder verworfen.

16 6.4 Präzisierung des Begriffs „superskalar“
Definition: Superscalar machines are distinguished by their ability to (dynamically) issue multiple instructions each clock cycle from a conventional linear instruction stream.

17 Erklärungen zum Superskalar-Begriff
Den Ausführungseinheiten kann mehr als ein Befehl pro Takt zugewiesen werden (dies motiviert den Begriff superskalar im Vergleich zu skalar). Die Befehle werden aus einem sequenziellen Strom von normalen Befehlen zugewiesen. Die Zuweisung der Befehle erfolgt in Hardware durch einen dynamischen Scheduler. Die Anzahl der zugewiesenen Befehle pro Takt wird dynamisch von der Hardware bestimmt und liegt zwischen null und der maximal möglichen Zuweisungsbandbreite.

18 Erklärungen zum Superskalar-Begriff (2)
Die dynamische Zuweisung von Befehlen führt zu einem komplexen Hardware-Scheduler. Die Komplexität des Schedulers steigt mit der Größe des Befehlsfensters und mit der Anzahl der Befehle, die außerhalb der Programmreihenfolge zugewiesen werden können. Mehrere Ausführungseinheiten müssen verfügbar sind. Anzahl der Ausführungseinheiten entspricht mindestens der Zuweisungsbandbreite, häufig gibt es jedoch noch mehr Ausführungseinheiten, um potenzielle Strukturkonflikte zu umgehen. Superskalartechnik ist eine Mikroarchitekturtechnik und hat keinen Einfluss auf die Befehlssatz-Architektur. Der Begriff „superskalar“ wird oft in unpräziser Weise benutzt, um Prozessoren mit mehreren parallelen Pipelines oder mehreren Ausführungseinheiten zu beschreiben. Das erlauben es nicht zwischen der Superskalar- und der VLIW-Technik zu unterscheiden.

19 Zeitliche vs. Räumliche Parallelität
Befehls-Pipelining und Superskalartechnik nutzen beide feinkörnige Parallelität (fine-grain oder instruction-level parallelism), d.h. Parallelität zwischen einzelnen Befehlen. Pipelining nutzt zeitliche Parallelität (temporal parallelism) Superskalar nutzt räumliche Parallelität (spatial parallelism). Eine Leistungssteigerung durch zeitliche Parallelität kann mit einer längeren Pipeline und „schnelleren“ Transistoren (höherer Taktfrequenz) erreicht werden. Falls genügend feinkörnige Parallelität vorhanden ist, kann die Leistung durch räumliche Parallelität im superskalaren Fall mit Hilfe von mehr Ausführungseinheiten und einer höheren Zuweisungsbandbreite erreicht werden.

20 6.5 Die VLIW-Technik (Very Long Instruction Word)
Architekturtechnik, bei der ein Compiler eine feste Anzahl von einfachen, voneinander unabhängigen Befehlen zu einem Befehlspaket zusammenpackt und in einem Maschinenbefehlswort meist fester Länge speichert. Das Maschinenbefehlsformat eines VLIW-Befehlspakets kann mehrere hundert Bits lang sein, in der Praxis sind dies zwischen 128 und 1024 Bits. Alle Befehle innerhalb eines VLIW-Befehlspakets müssen unabhängig voneinander sein und eigene Opcodes und Operandenbezeichner enthalten. Die Anzahl der Befehle in einem VLIW-Befehlspaket ist in der Regel fest. Wenn die volle Bandbreite eines VLIW-Befehlspakets nicht ausgenutzt werden kann, muss es mit Leerbefehlen aufgefüllt werden. Neuere VLIW-Architekturen sind in der Lage, durch ein komprimiertes Befehlsformat auf das Auffüllen mit Leerbefehlen zu verzichten.

21 VLIW-Befehl vs. CISC- und SIMD-Befehl
Unterschied zu einem CISC-Befehl: CISC-Befehl kann mit einem Opcode mehrere, eventuell sequenziell nacheinander ablaufende Operationen codieren. Unterschied zu einem SIMD-Befehl (Single Instruction Multiple Data): SIMD-Befehle sind die Multimediabefehlen, bei denen ein Opcode eine gleichartige Operation auf einer Anzahl von Operanden(paaren) auslöst. Die Operationen innerhalb eines VLIW-Befehlspakets sind in der Regel verschiedenartig.

22 VLIW-Prozessor Ein VLIW-Prozessor besteht aus einer Anzahl von Ausführungseinheiten, die jeweils eine Maschinenoperation taktsynchron zu den anderen Maschinenoperationen eines VLIW-Befehlspakets ausführen können, wobei ein VLIW-Befehlspaket so viele einfache Befehle umfasst, wie Ausführungseinheiten in dem VLIW-Prozessor vorhanden sind. Der Prozessor startet im Idealfall in jedem Takt ein VLIW-Befehlspaket. Die Befehle in einem solchen VLIW-Befehlswort werden dann gleichzeitig geholt, decodiert, zugewiesen und ausgeführt. In Abhängigkeit von der Anzahl n der Befehle, die gemeinsam durch die Pipeline fließen und entsprechend der maximalen Anzahl n von Befehlen in einem Befehlspaket spricht man von einem n-fachen VLIW-Prozessor.

23 VLIW-Prozessor (2) keine dynamische Befehlszuordnung, die statische Befehlsanordnung durch den Compiler wird von der Zuordnungseinheit nicht geändert, Überprüfen von Datenkonflikten und die Erkennung der Parallelität auf Befehlsebene durch die Zuordnungs-Hardware fällt weg  Hardware-Komplexität der Zuordnungseinheit gering Speicherhierarchie aus Cache- und Hauptspeicher wird erschwert. Dynamische Ereignisse, wie z.B. Cache-Fehlzugriffe, führen zum Stillstand der nachfolgenden Pipeline-Stufen. Alle Operationen müssen die gleiche Ausführungszeit haben. Eine spekulative Ausführung von Befehlen nach bedingten Sprüngen wird nicht von der Hardware organisiert, sondern ist auf Compilertechniken wie das sogenannte Trace Scheduling angewiesen. Ablaufreihenfolge der VLIW-Befehlspakete ist fest, Ausführung auch außerhalb der Programmreihenfolge nicht möglich. Operanden stehen in einem allen Ausführungseinheiten zugänglichen Registersatz.

24 6.6 Die EPIC-Technik (Explicit Parallel Instruction Computing)
Weiterentwicklung der VLIW-Technik durch Intel und HP zur IA-64-Architektur für Universalprozessoren auf Server-Niveau (64-Bit-Prozessoren). ein erweitertes Dreibefehlsformat, ähnlich einem dreifach VLIW-Format Ziel der EPIC-Technik: die Einfachheit und hohe Taktrate eines VLIW-Prozessors mit den Vorteilen des dynamischen Scheduling zu verbinden. Das EPIC-Format erlaubt es dem Compiler, dem Prozessor die Befehlsparallelität direkt mitzuteilen. Ein EPIC-Prozessor muss im Idealfall keine Überprüfung von Daten- und Steuerflussabhängigkeiten durchführen und unterstützt keine Veränderung der Ausführungsreihenfolge. Damit wird die Mikroarchitektur gegenüber einem Superskalarprozessor stark vereinfacht. EPIC verbessert die Fähigkeit des Compilers, auf statische Weise gute Befehlsanordnungen zu erzeugen.

25 IA64-Architektur (Intel Architecture 64)
Zur IA64-Architektur gehören weiterhin ein voll prädikativer Befehlssatz, viele Register 128 allgemeine Register, 128 Gleitkommaregister, 64 Prädikatregister und 8 Sprungregister und spekulative Ladebefehle.

26 EPIC-Befehlsbündel der IA-64-Architektur
Ein EPIC-Befehlsbündel besteht aus einem compilererzeugten 128 Bit breiten Befehls-„Bündel“ mit drei IA-64-Befehlen und sogenannten Template-Bits. Ein IA-64-Befehl: besteht aus dem Opcode, einem Prädikatfeld, zwei Adressen der Quellregister, Adresse des Zielregisters und weiteren Spezialfeldern. Länge von 41 Bit. Für die Template-Bits sind im Bündel 5 Bit reserviert, die Informationen zur Gruppierung von Befehlen beinhalten. Es gibt keine Leerbefehle, sondern die Parallelität wird durch die Template-Bits angegeben. Sie geben an, ob ein Befehl mit einem anderen parallel ausgeführt werden kann. Das kann sich auf Befehle innerhalb des gleichen EPIC-Befehlsbündels beziehen, aber auch auf nachfolgende EPIC-Befehlsbündel. Da auch voneinander daten- oder steuerflussabhängige Befehle vom Compiler in einem Bündel zusammengefasst werden können, ist das EPIC-Format wesentlich flexibler als die VLIW-Formate.

27 Itanium-Prozessor sechsfacher EPIC-Prozessor mit zehnstufiger Pipeline
neun Ausführungseinheiten, dies sind vier ALU/MMX-Einheiten, zwei Fließkommaeinheiten, zwei Lade-/Speichereinheiten und eine Sprungeinheit. Der Itanium konkateniert bei der Ausführung zwei Befehlsbündel mit voneinander unabhängigen Befehlen und führt diese Befehle parallel zueinander in der Pipeline aus. Zukünftige EPIC-Prozessoren können dann beispielsweise drei oder mehr Befehlsbündel miteinander kombinieren.  Skalierbarkeit auf zukünftige Prozessoren möglich.

28 6.7 Vergleich der Superskalar- mit der VLIW- und der EPIC-Technik
Alle drei Techniken verfolgen das Ziel, durch Parallelarbeit einer Anzahl von Ausführungseinheiten eine Leistungssteigerung zu erzielen. Es sollen möglichst mit jedem Takt so viele Operationen ausgeführt werden, wie die Maschine Ausführungseinheiten besitzt. Architekturtechnik versus Mikroarchitekturtechnik: VLIW und EPIC sind Architekturtechniken, die Superskalartechnik ist eine Mikroarchitekturtechnik. Befehlsablaufplanung und Konfliktvermeidung: VLIW/EPIC: Compiler muss die Befehlszuordnung an die Ausführungseinheiten planen und die Konfliktvermeidung zwischen Befehlen vornehmen, Beim superskalaren Prozessor geschieht dies durch die Hardware. Anforderungen an den Compiler bei VLIW/EPIC höher als bei superskalar

29 Vergleich der Superskalar- mit der VLIW- und der EPIC-Technik (2)
Compileroptimierungen: alle drei Architekturformen setzen einem optimierenden Compiler voraus, Der Compiler der VLIW- und der EPIC-Prozessoren muss auch noch den Zeitbedarf der Speicherzugriffe in die Befehlsablaufplanung einbeziehen, die Speicherzugriffe des superskalaren Prozessors werden automatisch von seiner Lade-/Speichereinheit vorgenommen. häufig können die gleichen Optimierungsstrategien bei der Codeerzeugung in allen drei Fällen mit Erfolg angewandt werden Befehlsanordnung: Ebene der „einfachen“ Maschinenbefehle: ein superskalarer Prozessor speist seine Ausführungseinheiten aus nur einem Befehlsstrom einfacher Befehle, bei einem VLIW-Prozessor ein Befehlsstrom von VLIW-Befehlspaketen, also von Tupeln einfacher Befehle EPIC-Format kann auch voneinander abhängige Befehle in einem Bündel vereinen. Template-Bits müssen vom Prozessor geprüft werden. Mehrere Bündel mit voneinander unabhängigen Befehlen können gleichzeitig ausgeführt werden. Ein EPIC-Prozessor kann somit als Hybrid aus VLIW- und Superskalarprozessor entworfen werden.

30 Vergleich der Superskalar- mit der VLIW- und der EPIC-Technik (3)
Reaktion auf Laufzeitereignisse: VLIW nicht so flexibel wie superskalar Speicherorganisation: bei VLIW ungünstiger, da der Superskalarprozessor eine Hierarchie aus Cache- und Hauptspeichern verwenden kann Sprungvorhersage und Sprungspekulation: Verfahren der dynamischen Sprungvorhersage, bei heutigen Superskalarprozessoren Standard, bei VLIW-Prozessoren nicht und bei EPIC-Prozessoren nur erschwert möglich. Codedichte: VLIW hat festes Befehlsformat  Codedichte immer dann geringer als bei Superskalarprozessoren, wenn der Grad der zur Verfügung stehenden Befehlsebenenparallelität die Anzahl der Befehle in einem VLIW-Befehlspaket unterschreitet. Beim EPIC-Format ist dies nicht der Fall, jedoch kommen die Template-Bits pro EPIC-Bündel hinzu.

31 Vergleich der Superskalar- mit der VLIW- und der EPIC-Technik (4)
Erzielbare Verarbeitungsleistung und Anwendungsfelder: Im Idealfall in allen drei Fällen eine vergleichbare Verarbeitungsleistung Die Einfachheit der VLIW-Prozessoren ermöglicht eine gegenüber der Superskalartechnik höhere Taktrate. VLIW-Technik ist bei Code mit sehr hohem Parallelitätsgrad vorteilhaft. Eine hohe Parallelität auf Befehlsebene ist oft bei Signalverarbeitungsanwendungen und in numerischen Programmen der Fall. Allgemeine Anwendungsprogramme wie Textverarbeitungsprogramme, Tabellenkalkulation, Compiler und Spiele besitzen im Vergleich dazu eine geringe Befehlsebenenparallelität und zeigen ein sehr dynamisches Verhalten, was den Einsatz der Superskalartechnik in Universalmikroprozessoren als geeigneter erscheinen lässt. EPIC: Kombination der VLIW- mit der Superskalartechnik Zum einen wird die Starrheit des VLIW-Prinzips vermieden und zum anderen die Komplexität der Zuordnungseinheit durch das VLIW-artige EPIC-Format verringert.


Herunterladen ppt "Hochperformante Mikroprozessoren - 6"

Ähnliche Präsentationen


Google-Anzeigen