31
1 6 Hochperformante Mikroprozessoren - 6.1 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.

1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

Embed Size (px)

Citation preview

Page 1: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

1

6 Hochperformante Mikroprozessoren - 6.1 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.

Page 2: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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

Page 3: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 4: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

6.2 Komponenten eines superskalaren Prozessors

L o ad /S to re

U n it(s )

F lo a tin g -P o in t

R eg is te rs

G en e ra lP u rp o se

R eg is te rs

M u lti-m ed ia

R eg is te rs

F lo a tin g -P o in t

U n it(s )

In teg e rU n it(s )

M u lti-m ed iaU n it(s )

R e tireU n it

R en am eR eg is te rs

D -cach eM M U

R eo rd e r B u ffe r

In s tru c tio n B u ffe rIn s tru c tio nIssu e U n it

In s tru c tio n D eco d e an dR eg is te r R en am e U n it

In s tru c tio n F e tchU n it

B ran chU n it

B H T B TA C

R A S

M M UI-cach e

B u sIn te rface

U n it

Page 5: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

6.3 Superskalare Prozessor-Pipeline

In s tru c tio n F e tch

. . .

In s tru c tio n D eco d e

an d R en am e

. . .

Inst

ruct

ion

Win

dow

I s su e

Res

erva

tion

St

atio

ns

E x ecu tio n

Res

erva

tion

St

atio

ns

E x ecu tio n

. . .

R etire an d

W rite B ack

In-order In-order

Out-of-order

Page 6: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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

Page 7: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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

Page 8: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 9: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 10: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 11: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 12: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 13: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 14: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 15: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 16: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 17: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 18: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 19: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 20: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 21: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 22: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 23: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 24: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 25: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 26: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 27: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 28: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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

Page 29: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 30: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.

Page 31: 1 6Hochperformante Mikroprozessoren - 6.1 Von skalaren RISC- zu Superskalarprozessoren In den 80er Jahren gab es zwei Linien von Mikroprozessoren: Die

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.