212
1 Kap.3 Mikroarchitektur Prozessoren, interne Sicht

Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

1

Kap.3Mikroarchitektur

Prozessoren,interne Sicht

Page 2: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 2

3.1 Elementare Datentypen, Operationenund ihre Realisierung (siehe 2.1)

3.2 Mikroprogrammierung3.3 Einfache Implementierung von MIPS3.4 Pipelining3.5 Superskalare Befehlsausführung

Page 3: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 3

Übersicht

Page 4: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 3

Übersicht

Performanz von Rechnern läßt sich durch Pipeliningsteigern

Page 5: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 3

Übersicht

Performanz von Rechnern läßt sich durch Pipeliningsteigern

z Prinzip der Fließbandverarbeitung

Page 6: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 3

Übersicht

Performanz von Rechnern läßt sich durch Pipeliningsteigern

z Prinzip der Fließbandverarbeitungz Hardware-Realisierung des MIPS-Datenpfades mit

Fließband

Page 7: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 3

Übersicht

Performanz von Rechnern läßt sich durch Pipeliningsteigern

z Prinzip der Fließbandverarbeitungz Hardware-Realisierung des MIPS-Datenpfades mit

Fließbandz Probleme bei Fließbandverarbeitung

Page 8: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 4

Das Prinzip an einem alltäglichen Beispiel

Page 9: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 4

Das Prinzip an einem alltäglichen Beispiel

z Sie kommen aus dem Urlaub und es ist viel schmutzigeWäsche zu waschen!

Page 10: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 4

Das Prinzip an einem alltäglichen Beispiel

z Sie kommen aus dem Urlaub und es ist viel schmutzigeWäsche zu waschen!

z Zur Verfügung stehen:y eine Waschmaschine (1/2 Stunde Laufzeit)

y ein Trockner (1/2 Stunde Laufzeit)y eine Bügelmaschine (1/2 Stunde Arbeit zum Bügeln)

y ein Wäscheschrank (1/2 Stunde Arbeit zumEinräumen)

Page 11: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 4

Das Prinzip an einem alltäglichen Beispiel

z Sie kommen aus dem Urlaub und es ist viel schmutzigeWäsche zu waschen!

z Zur Verfügung stehen:y eine Waschmaschine (1/2 Stunde Laufzeit)

y ein Trockner (1/2 Stunde Laufzeit)y eine Bügelmaschine (1/2 Stunde Arbeit zum Bügeln)

y ein Wäscheschrank (1/2 Stunde Arbeit zumEinräumen)

z jeder der Personen A, B, C, D aus dem Haushalt wäschtseine Wäsche selbst

Page 12: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 4

Das Prinzip an einem alltäglichen Beispiel

z Sie kommen aus dem Urlaub und es ist viel schmutzigeWäsche zu waschen!

z Zur Verfügung stehen:y eine Waschmaschine (1/2 Stunde Laufzeit)

y ein Trockner (1/2 Stunde Laufzeit)y eine Bügelmaschine (1/2 Stunde Arbeit zum Bügeln)

y ein Wäscheschrank (1/2 Stunde Arbeit zumEinräumen)

z jeder der Personen A, B, C, D aus dem Haushalt wäschtseine Wäsche selbst

z Es gibt zwei Möglichkeiten die vier Waschvorgängeauszuführen!

Page 13: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Prinzip an einem Beispiel

Page 14: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Prinzip an einem Beispiel

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Taskorder

Taskorder

mit Pipelining

Page 15: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Prinzip an einem Beispiel

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Taskorder

Taskorder

mit Pipelining

Dauer der Arbeiten: 8 Stunden

Page 16: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Prinzip an einem Beispiel

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Taskorder

Taskorder

mit Pipelining

Dauer der Arbeiten: 8 Stunden

Dauer der Arbeiten: 3 1/2 Stunden

Page 17: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung der Befehlsabarbeitung in Phasen

Page 18: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung der Befehlsabarbeitung in Phasen

z Um Pipelining im Datenpfad ausnutzen zu können, muß dieAbarbeitung eines Maschinenbefehls in mehrere Phasen mitmöglichst gleicher Dauer aufgeteilt werden.

Page 19: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung der Befehlsabarbeitung in Phasen

z Um Pipelining im Datenpfad ausnutzen zu können, muß dieAbarbeitung eines Maschinenbefehls in mehrere Phasen mitmöglichst gleicher Dauer aufgeteilt werden.

z Eine sinnvolle Aufteilung ist abhängig vom Befehlssatz und derverwendeten Hardware.

Page 20: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung der Befehlsabarbeitung in Phasen

z Um Pipelining im Datenpfad ausnutzen zu können, muß dieAbarbeitung eines Maschinenbefehls in mehrere Phasen mitmöglichst gleicher Dauer aufgeteilt werden.

z Eine sinnvolle Aufteilung ist abhängig vom Befehlssatz und derverwendeten Hardware.

z Beispiel: Abarbeitung in 5 Schritten:y Befehls-Holphase (instruction fetch)

y Dekodierphase / Lesen von Operanden aus Registerny Ausführung / Adressberechnungy Speicherzugriff (memory access)y Abspeicherphase (result write back phase)

Page 21: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung der Befehlsabarbeitung in Phasen

z Um Pipelining im Datenpfad ausnutzen zu können, muß dieAbarbeitung eines Maschinenbefehls in mehrere Phasen mitmöglichst gleicher Dauer aufgeteilt werden.

z Eine sinnvolle Aufteilung ist abhängig vom Befehlssatz und derverwendeten Hardware.

z Beispiel: Abarbeitung in 5 Schritten:y Befehls-Holphase (instruction fetch)

y Dekodierphase / Lesen von Operanden aus Registerny Ausführung / Adressberechnungy Speicherzugriff (memory access)y Abspeicherphase (result write back phase)

z Bei CISC ist Pipelining schwer möglich, da die Dauer der Dekodier-und Ausführungsphase (evtl. mehrere Mikroprogrammbefehle) beiden verschiedenen Maschinenbefehlen sehr unterschiedlich ist.

Page 22: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung des Datenpfades in 5 Phasen

Page 23: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Aufteilung des Datenpfades in 5 Phasen

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

ReaddataAddress

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write back

Page 24: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 8

Pipelining: Illustration

z Annahme: Aufteilung der Befehlsabarbeitung in 5 gleichlange Phasen

Befehl 1: P1 P2 P3 P4 P5

Befehl 2: P1 P2 P3 P4 P5

Befehl 3: P1 P2 P3 P4 P5Befehl 4: P1 P2 P3 P4 P5

Befehl 5: P1 P2 P3 P4 P5

Befehl 6: P1 P2 P3 P4 P5

Befehl 7: P1 P2 P3 P4 P5

Zeitschritt: 1 2 3 4 5 6 7 8 9 10 11

Page 25: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

Page 26: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:

Page 27: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

Page 28: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

Page 29: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

Page 30: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:

Page 31: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

Page 32: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigung

Page 33: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

Page 34: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

⇒ Beschleunigung um Faktor 2 k / (k+1)

Page 35: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

⇒ Beschleunigung um Faktor 2 k / (k+1)

y m ≥ 1: Laufzeit mit Pipeline = t + (m-1)t / k,

Page 36: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

⇒ Beschleunigung um Faktor 2 k / (k+1)

y m ≥ 1: Laufzeit mit Pipeline = t + (m-1)t / k, Laufzeit ohne Pipeline = m t

Page 37: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

⇒ Beschleunigung um Faktor 2 k / (k+1)

y m ≥ 1: Laufzeit mit Pipeline = t + (m-1)t / k, Laufzeit ohne Pipeline = m t

y ⇒ Beschleunigung um

Page 38: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 9

Pipelining: Speedup (1)

z Annahmen:y Abarbeitungszeit eines Befehls ohne Pipelining: t

y k Pipelinestufen, gleiche Laufzeit der Stufen

y Laufzeit einer Stufe der Pipeline: t/k

z Beschleunigung bei m auszuführenden Instruktionen:y m = 1: Laufzeit mit Pipeline = k * t/k = t

⇒ keine Beschleunigungy m = 2: Laufzeit mit Pipeline = t + t/k = (k+1)t / k

⇒ Beschleunigung um Faktor 2 k / (k+1)

y m ≥ 1: Laufzeit mit Pipeline = t + (m-1)t / k, Laufzeit ohne Pipeline = m t

y ⇒ Beschleunigung um 1

)1(

1)1( −+−

−=−+

=⋅−+ km

kkk

km

mk

k

tmt

mt

Page 39: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 10

1

)1(

1)1( −+−

−=−+

=⋅−+ km

kkk

km

mk

k

tmt

mt

Pipelining: Speedup (2)

z Beschleunigung bei m auszuführenden Instruktionen:y m ≥ 1: Laufzeit mit Pipeline = t + (m-1)t / k,y Laufzeit ohne Pipeline = m t

y ⇒ Beschleunigung um

z Ergebnis: Für m >> k nähert sich der Speedup also derAnzahl k der Pipelinestufen.

z Es wurde vorausgesetzt, daß sich die Ausführung derBefehle ohne weiteres „verzahnen“ läßt. Dies ist in derPraxis nicht ohne weiteresder Fall !

Page 40: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Programmablauf ohne Pipelining

Page 41: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Programmablauf ohne Pipelining

Instruction(class)

Instructionfetch

Registerread

ALUoperation

Dataaccess

Registerwrite

Totaltime

lw 2ns 1ns 2ns 2ns 1ns 8ns

sw 2ns 1ns 2ns 2ns 7ns

R-type 2ns 1ns 2ns 1ns 6ns

branch 2ns 1ns 2ns 5ns

Instruction

fetchReg ALU

Data

accessReg

8 nsInstruction

fetchReg ALU

Data

accessReg

8 nsInstruction

fetch

8 ns

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 4 6 8 10 12 14 16 18

...

Program

execution

order

(in instructions)

Page 42: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Programmablauf mit Pipelining

Page 43: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Programmablauf mit Pipelining

Instruction(class)

Instructionfetch

Registerread

ALUoperation

Dataaccess

Registerwrite

Totaltime

lw 2ns 1ns 2ns 2ns 1ns 8ns

sw 2ns 1ns 2ns 2ns 7ns

R-type 2ns 1ns 2ns 1ns 6ns

branch 2ns 1ns 2ns 5ns

2 4 6 8 1 0 1 2 1 4

I n s t r u c t i o n

f e t c hR e g A L U

D a t a

a c c e s sR e g

T i m e

l w $ 1 , 1 0 0 ( $ 0 )

l w $ 2 , 2 0 0 ( $ 0 )

l w $ 3 , 3 0 0 ( $ 0 )

2 n sI n s t r u c t i o n

f e t c hR e g A L U

D a t a

a c c e s sR e g

2 n sI n s t r u c t i o n

f e t c hR e g A L U

D a t a

a c c e s sR e g

2 n s 2 n s 2 n s 2 n s 2 n s

P r o g r a m

e x e c u t i o n

o r d e r

( i n i n s t r u c t i o n s )

Page 44: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 13

Instructionfetch

Reg ALU Dataaccess

Reg

8 nsInstruction

fetchReg ALU Data

accessReg

8 nsInstruction

fetch

8 ns

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 4 6 8 10 12 14 16 18

2 4 6 8 10 12 14

...

Programexecutionorder(in instructions)

Instructionfetch

Reg ALUData

accessReg

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 nsInstruction

fetchReg ALU

Dataaccess

Reg

2 nsInstruction

fetchReg ALU

Dataaccess

Reg

2 ns 2 ns 2 ns 2 ns 2 ns

Programexecutionorder(in instructions)

Pipelining versus Non-Pipelining

Page 45: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardwarerealisierung der Unterteilung

Page 46: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardwarerealisierung der Unterteilung

z Füge Registerbänke ein, um die Phasen hardwaremässig zu trennen

Page 47: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardwarerealisierung der Unterteilung

z Füge Registerbänke ein, um die Phasen hardwaremässig zu trennen

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ionIF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALUZero

ID/EX

Datamemory

Address

Page 48: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

I n st r u c t i on

m e m o ry

A d d r e ss

4

3 2

0

A d dA d d

r es ul t

S h if t

le ft 2

Ins

tru

cti

on

I F /I D E X/ M E M M E M / W B

Mux

0

1

A d d

P C

0Wri ted a t a

Mux

1

R e g i st e r s

R e add at a 1

R e add at a 2

R e a dr e gi s t er 1

R e a dr e gi s t er 2

1 6S ig n

e xte n d

W ri t er e g i s t er

W ri t ed ata

R e a dd a t a

1

A L Ur e s ul t

Mux

A L U

Z e r o

I D / E X

I n s t r u c t io n f e t c h

l w

A

Abarbeitung einer Instruktion:Instruction fetch

Page 49: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Abarbeitung einer Instruktion:Instruction decode and Register file read

In str uc t io n

m e m o ry

A d d r e s s

4

32

0

A d dA d d

r es ul t

S h if t

l eft 2

Ins

t ru

cti

on

I F /I D E X/ M E M

M

ux

0

1

A d d

P C

0W ri t e

d at a

Mu

x

1

R e g i st e r s

R e ad

d at a 1

R e ad

d at a 2

R ea d

re gis t e r 1

R ea d

re gis t e r 2

1 6Si gn

e xte nd

W ri tere g is t e r

W ri te

d at a

R e ad

d a t a

1

A L U

r es u ltMu

x

A L U

Z e r o

I D / E X M E M / W B

I n s t r u c t i o n d e c o d e

l w

A d d r e s s

D a t a

m e m o r y

Page 50: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Abarbeitung einer Instruktion:Execution

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALUZero

ID/EX MEM/WB

Execution

lw

Address

Datamemory

Page 51: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Abarbeitung einer Instruktion:Memory Access

In s tr u c t i on

m e m or y

A d d r es s

4

3 2

0

A d dA d d

r e s ul t

S hi f t

l e f t 2

Ins

tru

cti

on

I F / I D E X / M E M

Mu

x

0

1

A d d

P C

0W rit e

d at a

M

ux

1

R e gi s t e r s

R e a dd a t a 1

R e a d

d a t a 2

R e adr e gi s t er 1

R e adr e gi s t er 2

1 6S i g n

e x t e n d

Wri t e

r e gi s t er

Wri t ed a t a

R e ad

d at aD a t a

m e m o ry

1

A LU

r e s ul tM

u

x

A L U

Z er o

I D / E X M E M / W B

M e m o r y

l w

A d d r e s s

Page 52: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Abarbeitung einer Instruktion:Write back

In stru c ti on

m e m or y

A d d r e s s

4

3 2

0

A d dA d d

r e su l t

S h ift

l ef t 2

Ins

tru

cti

on

I F /I D E X / M E M

M

u

x

0

1

A d d

P C

0W ri t e

d at a

M

u

x

1

R e g ist e r s

R e ad

d at a 1

R e ad

d at a 2

R e ad

r e g is ter 1

R e adr e g is ter 2

1 6S ig n

e xt e n d

W rit e

d at a

R e a d

d at aD a t a

m e m or y

1

A L U

r es ultMu

x

A LU

Ze r o

I D / E X M E M / W B

W r i t e b a c k

l w

W ri te

re g is te rA d d re ss

Page 53: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Abarbeitung einer Instruktion:Write back

In stru c ti on

m e m or y

A d d r e s s

4

3 2

0

A d dA d d

r e su l t

S h ift

l ef t 2

Ins

tru

cti

on

I F /I D E X / M E M

M

u

x

0

1

A d d

P C

0W ri t e

d at a

M

u

x

1

R e g ist e r s

R e ad

d at a 1

R e ad

d at a 2

R e ad

r e g is ter 1

R e adr e g is ter 2

1 6S ig n

e xt e n d

W rit e

d at a

R e a d

d at aD a t a

m e m or y

1

A L U

r es ultMu

x

A LU

Ze r o

I D / E X M E M / W B

W r i t e b a c k

l w

W ri te

re g is te rA d d re ss

Achtung: es gibt ein Fehler in der Hardware !

Page 54: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

In stru c ti on

m e m or y

A d d r e s s

4

3 2

0

A d dA d d

r e su l t

S h ift

l ef t 2

Ins

tru

cti

on

I F /I D E X / M E M

M

u

x

0

1

A d d

P C

0W ri t e

d at a

M

u

x

1

R e g ist e r s

R e ad

d at a 1

R e ad

d at a 2

R e ad

r e g is ter 1

R e adr e g is ter 2

1 6S ig n

e xt e n d

W rit e

d at a

R e a d

d at aD a t a

m e m or y

1

A L U

r es ultMu

x

A LU

Ze r o

I D / E X M E M / W B

W r i t e b a c k

l w

W ri te

re g is te rA d d re ss

Fehler in der Hardware

Page 55: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

In stru c ti on

m e m or y

A d d r e s s

4

3 2

0

A d dA d d

r e su l t

S h ift

l ef t 2

Ins

tru

cti

on

I F /I D E X / M E M

M

u

x

0

1

A d d

P C

0W ri t e

d at a

M

u

x

1

R e g ist e r s

R e ad

d at a 1

R e ad

d at a 2

R e ad

r e g is ter 1

R e adr e g is ter 2

1 6S ig n

e xt e n d

W rit e

d at a

R e a d

d at aD a t a

m e m or y

1

A L U

r es ultMu

x

A LU

Ze r o

I D / E X M E M / W B

W r i t e b a c k

l w

W ri te

re g is te rA d d re ss

Fehler in der Hardware

Der LOAD-Befehl schreibt dasErgebnis in das falsche Register!

Die angelegte Registernummer gehört zu der Instruktion, die gerade erst in die Pipeline geschoben wurde!

0

A d dA d d

r e su l t

S h ift

l ef t 2

Ins

tru

cti

on

F /I D E X / M E M

M

u

x

1

R e g ist e r s

R e ad

d at a 1

R e ad

d at a 2

R e ad

r e g is ter 1

R e adr e g is ter 2

W rit e

R e a d

d at aD a t a

m e m or y

A L U

r es ultMu

x

A LU

Ze r o

I D / E X M E M / W B

W r i t e b a c k

l w

W ri te

re g is te rA d d re ss

Fehler in der Hardware

Page 56: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Korrigierte Hardware

Page 57: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Korrigierte HardwareDie Registernummer muss über die ganzenPhasen in den entsprechenden Pipeline-Registern gerettet werden

Page 58: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Korrigierte HardwareDie Registernummer muss über die ganzenPhasen in den entsprechenden Pipeline-Registern gerettet werden

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Datamemory

1

ALUresult

Mux

ALUZero

ID/EX

Page 59: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Pipelining-Prinzip (1)

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Datamemory

1

ALUresult

Mux

ALUZero

ID/EX

Page 60: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Pipelining-Prinzip (2)

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Datamemory

1

ALUresult

Mux

ALUZero

ID/EX

Page 61: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Das Pipelining-Prinzip (3)

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Datamemory

1

ALUresult

Mux

ALUZero

ID/EX

Page 62: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardware mit Kontrolllogik

Page 63: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardware mit KontrolllogikDie Kontrollsignale zu einer Instruktion müssen ebenfalls in den Pipeline-registern gerettet werden, bis sie benutzt werden können.

Page 64: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Hardware mit KontrolllogikDie Kontrollsignale zu einer Instruktion müssen ebenfalls in den Pipeline-registern gerettet werden, bis sie benutzt werden können.

PC

Instructionmemory

Inst

ruct

ion

Add

Instruction[20– 16]

Mem

toR

eg

ALUOp

Branch

RegDst

ALUSrc

4

16 32Instruction[15– 0]

0

0

Mux

0

1

Add Addresult

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1

ALUresult

Zero

Writedata

Readdata

Mux

1

ALUcontrol

Shiftleft 2

Reg

Writ

e

MemRead

Control

ALU

Instruction[15– 11]

6

EX

M

WB

M

WB

WBIF/ID

PCSrc

ID/EX

EX/MEM

MEM/WB

Mux

0

1

Mem

Wri

te

AddressData

memory

Address

Page 65: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

Page 66: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

Page 67: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

Page 68: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

# $2 = 23-3 = 20

Page 69: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

# $2 = 23-3 = 20# $12 = 20 and 7 = 4

Page 70: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

# $2 = 23-3 = 20# $12 = 20 and 7 = 4# $13 = 3 or 20 = 23

Page 71: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

# $2 = 23-3 = 20# $12 = 20 and 7 = 4# $13 = 3 or 20 = 23# $14 = 20+20= 40

Page 72: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 26

Probleme beim Pipelining: Datenabhängigkeit

z Betrachte folgendes Maschinenprogramm:sub $2 , $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2sw $15, 100($2)

z Nehme an, am Anfang ist Register $1 mit 23,

$2 mit 10,$3 mit 3, $5 mit 7,

$6 mit 3

belegt.

das erwartete Resultat

# $2 = 23-3 = 20# $12 = 20 and 7 = 4# $13 = 3 or 20 = 23# $14 = 20+20= 40# save $15 to 100(20)

Page 73: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

Page 74: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Page 75: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

Page 76: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

Page 77: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

$12 = 10 and 7 = 2

Page 78: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

$12 = 10 and 7 = 2

$12 = 3 or 10 = 11

Page 79: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

$12 = 10 and 7 = 2

$12 = 3 or 10 = 11

Page 80: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

$12 = 10 and 7 = 2

$12 = 3 or 10 = 11

$14 = 20+20 = 40

Page 81: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 27

Berechnung durch die Pipeline

IM Reg

IM Reg

sub $2, $1, $3

Programexecutionorder(in instructions)

Time (in clock cycles)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

DM Reg

Reg

Reg

Reg

DM

Anfangsbelegung $1 mit 23 $2 mit 10 $3 mit 3 $5 mit 7 $6 mit 3

$2 = 23-3 = 20

$12 = 10 and 7 = 2

$12 = 3 or 10 = 11

$14 = 20+20 = 40

3

Page 82: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 28

Datenabhängigkeiten

z Definition:Gegeben zwei Anweisungen S1, S2.DEFi sei die Menge der Variablen auf die Si schreibendzugreift, USEi sei die Menge der Variablen auf die Silesend zugreift.

S1, S2 heißen datenunabhängig, wenn

(DEF1 ∩ USE2)∪(DEF2 ∩ USE1)∪(DEF1 ∩ DEF2) = ∅

Page 83: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 29

Datenabhängigkeiten

Wird S1 vor S2 ausgeführt dann besteht einez True Dependence (RAW) von S1 nach S2 wenn

DEF1 ∩ USE2 ≠ ∅ gilt (geschrieben: S1 → S2 )

z Anti Dependence (WAR) von S1 nach S2 wennUSE1 ∩ DEF2 ≠ ∅ gilt (geschrieben: S1 → S2 )

z Output Dependence (WAW) von S1 nach S2 wennDEF1 ∩ DEF2 ≠ ∅ gilt (geschrieben: S1 → S2 )

δt

δa

δo

Page 84: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 30

Datenabhängigkeiten: Beispiel

S1: ADD R1, R1, 2 ; R1 = R1 + 2

S2: ADD R4, R1, R3 ; R4 = R1 + R3

S3: MULT R3, R5, 3 ; R3 = R5 * 3

S4: MULT R3, R6, 3 ; R3 = R6 * 3

Page 85: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 30

Datenabhängigkeiten: Beispiel

S1: ADD R1, R1, 2 ; R1 = R1 + 2

S2: ADD R4, R1, R3 ; R4 = R1 + R3

S3: MULT R3, R5, 3 ; R3 = R5 * 3

S4: MULT R3, R6, 3 ; R3 = R6 * 3

δt

Page 86: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 30

Datenabhängigkeiten: Beispiel

S1: ADD R1, R1, 2 ; R1 = R1 + 2

S2: ADD R4, R1, R3 ; R4 = R1 + R3

S3: MULT R3, R5, 3 ; R3 = R5 * 3

S4: MULT R3, R6, 3 ; R3 = R6 * 3

δt

δa

Page 87: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 30

Datenabhängigkeiten: Beispiel

S1: ADD R1, R1, 2 ; R1 = R1 + 2

S2: ADD R4, R1, R3 ; R4 = R1 + R3

S3: MULT R3, R5, 3 ; R3 = R5 * 3

S4: MULT R3, R6, 3 ; R3 = R6 * 3

δt

δa

δo

Page 88: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 31

Datenabhängigkeiten

DatenabhängigkeitenDatenabhängigkeiten führen zu Hazards (Hemmnissen)die ohne Behandlung zu fehlerhaften Ergebnissen führen

Output-Output- und Anti DependenciesAnti Dependenciesz bereiten bei einfachen Pipelines keine Problemez machen erst bei Techniken wie superskalarer Ausführung

oder out-of-order execution Schwierigkeitenz können zum Teil vom Compiler durch

Variablenumbenennungen und Variablenkopien aufgelöstwerdenÔ Pseudo Dependencies

Page 89: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Page 90: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Compiler müssen folgende Aufgaben übernehmen

Page 91: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Compiler müssen folgende Aufgaben übernehmenz Entdecken von Daten Hazards im generierten

Maschinenprogramm

Page 92: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Compiler müssen folgende Aufgaben übernehmenz Entdecken von Daten Hazards im generierten

Maschinenprogrammz Einfügen von NN(o)-OPOP(eration)-Instruktion

Page 93: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Compiler müssen folgende Aufgaben übernehmenz Entdecken von Daten Hazards im generierten

Maschinenprogrammz Einfügen von NN(o)-OPOP(eration)-InstruktionIn unserem Beispiel:

sub $2, $1, $3nopnopand $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2)

Page 94: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Software-Lösung

Compiler müssen folgende Aufgaben übernehmenz Entdecken von Daten Hazards im generierten

Maschinenprogrammz Einfügen von NN(o)-OPOP(eration)-InstruktionIn unserem Beispiel:

sub $2, $1, $3nopnopand $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2)

Ô Hardwarelösung

Page 95: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 33

Result Forwarding/Register Bypassing

IF ID EX ...

IF ID EX MEM WB

Register

ALU

Page 96: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 33

Result Forwarding/Register Bypassing

IF ID EX ...

IF ID EX MEM WB

Register

ALU

ResultForwarding

Page 97: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 34

Hardware-Lösung

Page 98: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 34

Hardware-Lösung

PCInstruction

memory

Registers

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Forwardingunit

IF/IDIn

stru

ctio

n

Mux

RdEX/MEM.RegisterRd

MEM/WB.RegisterRd

Rt

Rt

Rs

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Page 99: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 34

Hardware-Lösung

PCInstruction

memory

Registers

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Forwardingunit

IF/IDIn

stru

ctio

n

Mux

RdEX/MEM.RegisterRd

MEM/WB.RegisterRd

Rt

Rt

Rs

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Die Kontrolllogik benötigt die in den aktuellenInstruktionen benutzten Registernummern, umdie Existenz und Art eines Daten Hazards zu erkennen.

Page 100: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 35

Vollständig ohne Stoppen der Pipelinegeht es jedoch nicht !

Betrachte folgendes Programm

lwlw $2, 20($1)and $4, $2, $5or $8, $2, $6add $9, $4, $2alt $1, $6, $7

Page 101: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 35

Vollständig ohne Stoppen der Pipelinegeht es jedoch nicht !

Betrachte folgendes Programm

lwlw $2, 20($1)and $4, $2, $5or $8, $2, $6add $9, $4, $2alt $1, $6, $7

Daten Hazard kann nicht hardwaremässigrepariert werden, da zu dem Zeitpunkt, andem $2 von der AND-Instruktion gelesenwerden soll, der neue Wert von $2 nichtgeladen ist !

Page 102: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 35

Vollständig ohne Stoppen der Pipelinegeht es jedoch nicht !

Betrachte folgendes Programm

lwlw $2, 20($1)and $4, $2, $5or $8, $2, $6add $9, $4, $2alt $1, $6, $7

Daten Hazard kann nicht hardwaremässigrepariert werden, da zu dem Zeitpunkt, andem $2 von der AND-Instruktion gelesenwerden soll, der neue Wert von $2 nichtgeladen ist !

$2, 20($1)$4, $2, $5

Page 103: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 36

Illustration

Reg

IM

Reg

Reg

IM

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

lw $2, 20($1)

Programexecutionorder(in instructions)

and $4, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

DM Reg

Reg

Reg

DM

Page 104: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 36

Illustration

Reg

IM

Reg

Reg

IM

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

lw $2, 20($1)

Programexecutionorder(in instructions)

and $4, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

DM Reg

Reg

Reg

DM

Page 105: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 37

Einfügen eines Wartezyklus

lw $2, 20($1)

Programexecutionorder(in instructions)

and $4, $2, $5

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

Reg

IM

Reg

Reg

IM DM

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6Time (in clock cycles)

IM Reg DM RegIM

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9 CC 10

DM Reg

RegReg

Reg

bubble

Page 106: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 38

Forwarding/Bypasstechniken (2)

lwlw $2, 20($1)and $4, $2, $5

z man kann diesen Hazard nicht beseitigen aberz man kann seine Folgen abkürzen

Register

ALU

ResultForwarding

datamemory

Page 107: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 38

Forwarding/Bypasstechniken (2)

lwlw $2, 20($1)and $4, $2, $5

z man kann diesen Hazard nicht beseitigen aberz man kann seine Folgen abkürzen

Register

ALU

ResultForwarding

datamemory

LoadForwarding

Page 108: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 39

Probleme beim Pipelining: Control Hazards

44 and $12, $2, $5

48 or $13, $6, $252 add $14, $2, $2

...

72 lw $4, 50($14)

Page 109: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 39

Probleme beim Pipelining: Control Hazards

Betrachte folgendes Maschinenprogramm:

40 beq $1 , $3, 72

44 and $12, $2, $5

48 or $13, $6, $252 add $14, $2, $2

...

72 lw $4, 50($14)

44 and $12, $2, $5

48 or $13, $6, $252 add $14, $2, $2

...

72 lw $4, 50($14)

Page 110: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 39

Probleme beim Pipelining: Control Hazards

Betrachte folgendes Maschinenprogramm:

40 beq $1 , $3, 72

44 and $12, $2, $5

48 or $13, $6, $252 add $14, $2, $2

...

72 lw $4, 50($14)

FrageFrage Welche Instruktion wird nach Instruktion 40 ausgeführt ?

44 and $12, $2, $5

48 or $13, $6, $252 add $14, $2, $2

...

72 lw $4, 50($14)

Page 111: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 40

Assume Branch not taken

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM Reg

Reg Reg

Reg

Reg

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 112: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 40

Assume Branch not taken

In den einfachen Implementierungen wird angenommen, dass derSprung nicht ausgeführt werden braucht !

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM Reg

Reg Reg

Reg

Reg

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 113: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 40

Assume Branch not taken

In den einfachen Implementierungen wird angenommen, dass derSprung nicht ausgeführt werden braucht !

Die Folgeinstruktionen $pc+4, $pc+8 und $pc+12 werden "aufVerdacht“ (spekulativ) in die Pipeline geschoben !

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM Reg

Reg Reg

Reg

Reg

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 114: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 41

Assume Branch not taken ff

Wird die Abzweigung doch genommen,

Reg

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM

DM Reg

Reg Reg

Reg

Reg

RegIM

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 115: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 41

Assume Branch not taken ff

Wird die Abzweigung doch genommen,

Reg

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM

DM Reg

Reg Reg

Reg

Reg

RegIM

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

TrashTrash

so muss die Pipeline geleert werden !so muss die Pipeline geleert werden !

Page 116: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 42

Vermeidung von Kontrollhazards

z Softwarey Einfügen von NOPs durch den Compiler

y Delayed Branch Technik

z Hardwarey „einfrieren“ der Pipeline (stalling)

y spekulative Ausführungx mit fester Vorhersage (asume branch taken/ not taken)x mit Sprungvorhersage

• statisch (vom Compiler)• dynamisch

Page 117: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 43

CLR R3CMP R1, R2BEQ 5000NEXT

Delayed Branch

z Externe Rechnerarchitektur definiert, daß derBefehl nach einem Sprungbefehl immer ausgeführtwird(unabhängig von der Sprungbedingung)

z Der Compiler muß durch Umordnung derBefehlssequenz einen datenunabhängigen Befehlfinden und diesen hinter die Sprunganweisungsetzen

y Im schlimmsten Fall eine NOP-Anweisung

y Untersuchungen zeigen, daß ein Befehl gutgefunden werden kann, zwei sind schonschwierig, drei fast unmöglich

z Beispiel: SPARC-Architektur: 1 delay slot

Page 118: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 43

CLR R3CMP R1, R2BEQ 5000NEXT

Delayed Branch

z Externe Rechnerarchitektur definiert, daß derBefehl nach einem Sprungbefehl immer ausgeführtwird(unabhängig von der Sprungbedingung)

z Der Compiler muß durch Umordnung derBefehlssequenz einen datenunabhängigen Befehlfinden und diesen hinter die Sprunganweisungsetzen

y Im schlimmsten Fall eine NOP-Anweisung

y Untersuchungen zeigen, daß ein Befehl gutgefunden werden kann, zwei sind schonschwierig, drei fast unmöglich

z Beispiel: SPARC-Architektur: 1 delay slot

Page 119: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 43

CLR R3CMP R1, R2BEQ 5000NEXT

Delayed Branch

z Externe Rechnerarchitektur definiert, daß derBefehl nach einem Sprungbefehl immer ausgeführtwird(unabhängig von der Sprungbedingung)

z Der Compiler muß durch Umordnung derBefehlssequenz einen datenunabhängigen Befehlfinden und diesen hinter die Sprunganweisungsetzen

y Im schlimmsten Fall eine NOP-Anweisung

y Untersuchungen zeigen, daß ein Befehl gutgefunden werden kann, zwei sind schonschwierig, drei fast unmöglich

z Beispiel: SPARC-Architektur: 1 delay slot

CMP R1, R2BEQ 5000CLR R3 NEXT

CMP R1, R2BEQ 5000CLR R3 NEXT

Page 120: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 44

Sprungrichtungsvorhersage

z Statische Sprungvorhersagey ein Bit im Opcode des Sprungbefehls definiert, ob der Sprung

spekulativ ausgeführt werden soll oder nicht

y Schleifen: Wahrscheinlichkeit hoch, dass gesprungen wird

y if-then-else: 2/3 der Ausführungen gehen in den ELSE-Teil

y Vorhersagegenauigkeit: 55%-80%

z Dynamischy Eine oder mehrere prozessorinterne Tabellen werden ständig

aktualisiert und zur Erzeugung einer Vorhersage ausgewertet.

y Tabellen mit Hilfe der Befehlsadresse des Sprungbefehlsadressiert

y Vorhersagegenauigkeit bis zu 97% (Literatur).

Page 121: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 45

Informationsquellen fürSprungrichtungsvorhersage

z Per-Adress Vorgeschichtey Das Sprungverhalten jedes einzelnen Sprungs wird protokolliert

und zur Vorhersage herangezogen.

y Der Sprung wird im wesentlichen wieder so vorhergesagt, wie erbei letzten n Ausführungen am häufigsten ausgeführt wurde.

z Globale Vorgeschichtey Pfad, den Programm durch die letzten m

Kontrollblöcke beschritten hat, kann zusätzlicheInformation liefern.

y Wenn sich zwei Sprünge ähnlich verhalten(d.h. sie sind korrelliert), kann dies erkannt undausgenutzt werden.

Page 122: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 46

y Einfaches dynamisches Verfahren

y Ein Teil der Befehlsadresse wirdals Hash-Index verwendet

y Kollisionen sind möglich(Verschiedene Sprünge mit demselben niederwertigen Adressanteil.)

y Kollisionsbehandlung wäre nurdurch Tags möglich

y Die gespeicherte Information wirdnach jeder Sprungausführungerneuert

y Aus dieser Information wird beiBedarf eine Vorhersage abgeleitet

Sprungrichtungsvorhersage durch einebranch history table

Page 123: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 47

Vorhersageinformation

z Letzte Sprungausführung - 1 Bity Vorhersage: Wie bei der letzten Ausführung

y Update: Ausgang der letzten Ausführung speichern

z Muster der letzten n Sprungausführungen - n Bity Vorhersage:

Aufgrund einer Heuristik, die aus Sprunghäufigkeiten gewonnenwird

y Update nach der Sprungausführung:Mit einem Schieberegister

Page 124: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 48

...Vorhersageinformation

z Endlicher Automat (Finite State Machine) - 2 oder 3 Bity Vorhersage:

Vom Zustand abhängig, in dem sich der Automat befindet.

y Update nach der Sprungausführung:Gemäß einer Zustandsübergangsfunktion

Page 125: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 49

2-Bit History 2-Bit sättigender Zähler 2-Bit träger Automat

Endliche Automaten für die Sprungvorhersage

z Zähler und träge Automaten erzielen in der Regel die bestenVorhersagen bei geringstem Platzbedarf

z Genauigkeit hängt auch vom Initialzustand der Automaten ab

Page 126: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 50

Sprungziel Speicher

z Berechnung der Sprungzieladresse kostet Zeity Umsetzung der virtuellen in eine physikalische Adresse (Kap. 4)

y Addition/Subtraktion der Sprungdistanz

Ô schneller Zugriff aufy die Zieladresse des Sprungs durch einen assoziativ Speicher

BTAC (branch target address cache)x Adresse des Sprungbefehls → Adresse des Sprungzielsx 1. Sprung löst Cachemiss aus, d.h. Speicher wird geladenx ab dem 2. Sprung: Sprungzieladresse steht zur Verfügung

y die Befehle am Sprungziel durch einen assoziativ SpeicherBTC (branch target cache):

x Adresse des Sprungbefehls → k Befehle am Sprungzielx 1. Sprung löst Cachemiss aus, d.h. Speicher wird geladenx ab dem 2. Sprung: Befehle am Sprungziel stehen zur Verfügung

Page 127: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 51

Zusammenfassung

Page 128: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 51

Zusammenfassung

z Beschleunigung um bis zu Faktor k durch Einsatz einerPipeline (k = Anzahl der Pipeline-Stufen).

Page 129: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 51

Zusammenfassung

z Beschleunigung um bis zu Faktor k durch Einsatz einerPipeline (k = Anzahl der Pipeline-Stufen).

z Data- und control-Hazards verringern dieBeschleunigung.

Page 130: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 51

Zusammenfassung

z Beschleunigung um bis zu Faktor k durch Einsatz einerPipeline (k = Anzahl der Pipeline-Stufen).

z Data- und control-Hazards verringern dieBeschleunigung.

z Viele Möglichkeiten (z.T. in Hardware), Hazards zuvermeideny Forwarding, Bypassing

y Branch Prediction, BTC, ...

Page 131: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 51

Zusammenfassung

z Beschleunigung um bis zu Faktor k durch Einsatz einerPipeline (k = Anzahl der Pipeline-Stufen).

z Data- und control-Hazards verringern dieBeschleunigung.

z Viele Möglichkeiten (z.T. in Hardware), Hazards zuvermeideny Forwarding, Bypassing

y Branch Prediction, BTC, ...

z Möglichkeiten für Code-optimierende Compiler, Hazardszu vermeiden:y Umstellen der Instruktionen eines Maschinenprogramms

Page 132: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 52

Pipelining: Weiterentwicklungen

Page 133: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 52

Pipelining: Weiterentwicklungen

z Einführen mehrerer funktionaler Einheiten (FE) mitunterschiedlichen (gleichen) Aufgaben

Page 134: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 53

Page 135: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 54

Befehlszuordnung, -Ausführung, -Beendigung

z Werden die Befehle in ihrer Programmreihenfolge denFunktionalen Einheiten zugeordnet?y in-order issue

y out-of-order issue

z Werden die Befehle in ihrer Reihenfolge ausgeführt?y in-order executiony out-of-order execution

z Wird die Befehlsausführung in der Reihenfolge beendet?y in-order completion

y out-of-order completion

z Wird genau ein Befehl zu einem Zeitpunkt zugewiesen?y single-issue

y multiple-issue (superskalare Ausführung)

Page 136: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 55

Pipeline mit unterschiedlich langen EX-Phasen

z Befehle werden zu unterschiedlichen Zeitpunkten fertigy Datenabhängigkeiten werden in die Länge gezogen

y trotz in-order-issue folgt out-of-order execution und out-of-ordercompletion

Wer regelt, wann Befehle zugeordnet, gestartet undzurückgeschrieben werden?

Page 137: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 56

Scheduling

Scheduling: ein Verfahren das entscheidet, wann eine Instruktiongestartet wird, seine Operanden liest und das Ergebniszurückschreibt

Ziel: Umordnung von Instruktionen bei Daten- oderKontrollabhängigkeiten

z Static scheduling: Aufgabe des Kompilers

z Dynamic scheduling: Aufgabe der Hardware

z Kernidee: Instruktionen hinter stalls ausführenDIVD F0,F2,F4

ADDD F10,F0,F8

SUBD F12,F8,F14

y SUBD hat keine Datenabhängigkeiten zu anderen Instruktionen

y zulassen von out-of-order execution ⇒ out-of-order completiony ID-Phase prüft auf Struktur- und Datenabhängigkeiten

Page 138: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 57

Dynamic Scheduling

z Dynamic scheduling arbeitet auch wenn stalls erscheinen,die zur Compilezeit nicht vorhersehbar sind, z.B. CacheMisses

z Dynamic scheduling:y Control flow scheduling, wird zentral bei der Dekodierung

vorgenommenz.B. scoreboarding in CDC 6600

y Dataflow scheduling, wird verteilt in den funktionalen Einheitenzur Laufzeit ausgeführt. Befehle werden dekodiert und reservationstations zugeteilt, bis ihre Operanden verfügbar sind.Tomasulo Algorithmus im IBM System/360 Model 91 Prozessor

Page 139: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 58

Scoreboarding

z 1963 von Thornton für den CDC6600 eingeführtz Ziel: Ausführung einer Instruktion pro Takt. Befehle so

früh wie möglich ausführenz Befehle werden out-of-order ausgeführt, wenn alle

nötigen Resourcen zur Verfügung stehen und keineDatenabhängigkeiten existieren

z Das Scoreboard ist eine HW-Einheit die registrierty welche Befehle sich in der Ausführung befinden

y welche Funktionalen Einheiten aktuell benutzt werdeny welche Register die Ergebnisse speichern werden

z Das Scoreboard führt zentral Konflikterkennung durchund kontrolliert dadurch den Programmfortschritt

Page 140: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 59

Scoreboard Pipeline

IF IS WB

MEMEXINT

EXFUf

EXFU1

EXFUn

RO

Scoreboard

Page 141: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 59

Scoreboard Pipeline

IF IS WB

MEMEXINT

EXFUf

EXFU1

EXFUn

RO

Scoreboard

Instruction decode

IS RO

Page 142: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 60

Scoreboarding

z Die Dekodierphase wird aufgeteilt in,y issue (IS) Phase (Zuordnungsphase):

Dekodieren, prüfen auf Struktur- und WAW-Hazards(Strukturhazards: eine Funktionale Einheit wird zu einemZeitpunkt mehrfach benötigt)

y read operands (RO) Phase:Warten bis keine Datenhazards existieren⇒ Lesen der Operanden aus den Registern

z EX (Ausführung) und WB (Rückreiben) Phase sind umzusätzliche Registrierungs- und Überwachungs-aufgaben erweitert

Page 143: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 61

Scoreboarding (im Detail)

Page 144: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 61

Scoreboarding (im Detail)

z IS Phase: wenn kein struktureller und kein WAWHazard vorliegt,y das Scoreboard weist den Befehl der FE zu und aktualisiert seine

internen Datenstrukturen

y ansonsten wird die Zuordnung gestoppt, bis sich die Hazardsaufgelöst haben (⇒ single issue and in-order issue!).

Page 145: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 61

Scoreboarding (im Detail)

z IS Phase: wenn kein struktureller und kein WAWHazard vorliegt,y das Scoreboard weist den Befehl der FE zu und aktualisiert seine

internen Datenstrukturen

y ansonsten wird die Zuordnung gestoppt, bis sich die Hazardsaufgelöst haben (⇒ single issue and in-order issue!).

z RO Phase:y das Scoreboard überwacht die Verfügbarkeit der benötigten Operandeny wenn diese zur Verfügung stehen wird die FE aktiviert, um die Register

zu lesen (⇒ kein Forwarding!!) und in der EX-Phase auszuführenRAW Hazards werden dynamisch aufgelöst

Page 146: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 62

Scoreboarding (im Detail)

Page 147: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 62

Scoreboarding (im Detail)

z EX Phase:Die FE startet die Ausführung (kann mehrere Zyklendauern) und benachrichtigt das Scoreboard wenn dieErgebnisse zur Verfügung stehen (result ready flag).

Page 148: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 62

Scoreboarding (im Detail)

z EX Phase:Die FE startet die Ausführung (kann mehrere Zyklendauern) und benachrichtigt das Scoreboard wenn dieErgebnisse zur Verfügung stehen (result ready flag).

z WB Phase:Wenn das Scoreboard weiß, dass die FE die Ausführungbeendet hat, prüft es auf WAR Hazards und stoppt dieRegisteraktualisierung falls nötig.Andernfalls wird die FE aufgefordert, ihr Ergebnis in dasZielregister zu schreiben.

Page 149: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 63

Scoreboard Implementierung

Page 150: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 63

Scoreboard Implementierung

z Register result status table (R):speichert, welche FE ein Ergebnis in welches Register schreibt, d.h.die Anzahl der Einträge in R ist gleich der Anzahl der Register

Page 151: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 63

Scoreboard Implementierung

z Register result status table (R):speichert, welche FE ein Ergebnis in welches Register schreibt, d.h.die Anzahl der Einträge in R ist gleich der Anzahl der Register

z Functional unit status table (F):speichert die Bearbeitungsphase jeder Instruktion:Phase: Busy, RO, EX, und WB für jede FE.

Page 152: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 63

Scoreboard Implementierung

z Register result status table (R):speichert, welche FE ein Ergebnis in welches Register schreibt, d.h.die Anzahl der Einträge in R ist gleich der Anzahl der Register

z Functional unit status table (F):speichert die Bearbeitungsphase jeder Instruktion:Phase: Busy, RO, EX, und WB für jede FE.

z Instruction status table (auch F): ein Eintrag pro FE:y Opcode der bearbeiteten Instruktion

y Zielregistery Quellenregister

y Verfügbarkeit der Quellenregister

y sind Operanden nicht verfügbar, dann speichert die Tabelle dieFE, die den Operanden gerade erzeugt

Page 153: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 63

Scoreboard Implementierung

z Register result status table (R):speichert, welche FE ein Ergebnis in welches Register schreibt, d.h.die Anzahl der Einträge in R ist gleich der Anzahl der Register

z Functional unit status table (F):speichert die Bearbeitungsphase jeder Instruktion:Phase: Busy, RO, EX, und WB für jede FE.

z Instruction status table (auch F): ein Eintrag pro FE:y Opcode der bearbeiteten Instruktion

y Zielregistery Quellenregister

y Verfügbarkeit der Quellenregister

y sind Operanden nicht verfügbar, dann speichert die Tabelle dieFE, die den Operanden gerade erzeugt

z Initial sind alle Einträge Null (leer).

Page 154: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 64

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add2 mul3 div

cycle 0op EX cycles

all fields are initialized with 0 add 1empty fields have the value 0 sub 1

mul 4div 4

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l

Page 155: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 65

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add2 mul 1 mul 1 3 1 5 13 div

cycle 1

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 156: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 66

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 1 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 sub 2 4 1 3 12 mul 1 1 mul 1 3 1 5 13 div

cycle 2

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 157: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 67

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 1 3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 sub 2 4 1 3 12 mul 1 1 3 mul 1 3 1 5 13 div 1 div 6 1 2 4 1

cycle 3remaining cycles in EX

mul takes 4 cycles in EX

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 158: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 68

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 1 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 1 sub 2 4 1 3 12 mul 1 1 2 mul 1 3 1 5 13 div 1 div 6 1 2 4 1

cycle 4

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 159: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 . 3.4 69

Scoreboarding

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 1 mul 1 3 1 5 13 div 1 div 6 1 2 4 1

cycle 5

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 160: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 70

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

2 1 3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

Busy RO WB Op Src1 Vld1 Src2 Vld21 add add 4 1 32 mul 1 1 0 mul 3 1 13 1 div 1 2 1

cycle

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 161: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 71

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

1 3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 add 4 2 1 3 12 mul 1 1 13 div 1 div 6 1 1 4 1

cycle 7

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 162: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 72

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

1 3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 1 add 4 2 1 3 12 mul 1 1 13 div 1 1 div 6 1 1 4 1

cycle 8

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 163: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

Kap. 3.4

Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 13 div 1 1 3 div 6 1 1 4 1

cycle 9

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 164: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 74

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 13 div 1 1 2 div 6 1 1 4 1

cycle 10

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 165: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 75

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 13 div 1 1 1 div 6 1 1 4 1

cycle 11

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 166: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 76

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

R 1 2 3 4 5 6 sub Reg2, Reg4, Reg3

3 div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 13 div 1 1 1 0 div 6 1 1 4 1

cycle 12

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 167: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 77

Scoreboarding Beispiel

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

div Reg6, Reg1, Reg4

add Reg4, Reg2, Reg3

F Busy RO EX WB Op Dest Src1 Vld1 FU1 Src2 Vld2 FU21 add 1 1 12 mul 1 1 13 div 1 1 1

cycle 13

instruction information of the FUs

registers

phase flags of the FUs

func

tiona

l un

its

Page 168: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 78

Scoreboard Zusammenfassung

Page 169: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 78

Scoreboard Zusammenfassung

z Vorteil:y verwaltet meherer FEs

y out-of-order Ausführung von Mehrtaktoperationeny erkennen aller Datenabhängigkeiten (RAW, WAW, WAR)

Page 170: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 78

Scoreboard Zusammenfassung

z Vorteil:y verwaltet meherer FEs

y out- -order Mehrtaktoperationeny erkennen aller Datenabhängigkeiten (RAW, WAW, WAR)

z Scoreboard Beschränkungen:y single issue Ausführung (läßt sich auf multiple-issue erweitern)

y in-

y kein Registerumbenennen ⇒ Pseudoabhängigkeiten könnenzu Blokierungen führen

y keine Forwardinghardware ⇒ alle Ergebnisse durch Register

Page 171: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap 78

Scoreboard Zusammenfassung

z Vorteil:y verwaltet meherer FEs

y out-of-order Ausführung von Mehrtaktoperationeny erkennen aller Datenabhängigkeiten (RAW, WAW, WAR)

z Scoreboard Beschränkungen:y single issue Ausführung (läßt sich auf multiple-issue erweitern)

y in-order issue

y kein Registerumbenennen ⇒ Pseudoabhängigkeiten könnenzu Blokierungen führen

y keine Forwardinghardware ⇒ alle Ergebnisse durch Register

z generelle Beschränkungeny Beschränkung der FEs führt zu strukturellen Hazards

y Grad der Parallelität im Programm (auf Instruktionsebene)

Page 172: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 79

Zur Erinnerung

Mehrzykleninstruktionen führen zu out-of-orderAusführung

z Control flow scheduling,zentral während des Dekosierens ausgeführt: ⇒ Scoreboarding Technik implementiert im CDC 6600Prozessor

z Dataflow scheduling,wird verteilt in den FEs ausgeführt. Befehle werden dekodiert undanschließend den reservation stations zugeordnet, wo sie auf ihreOperanden warten. ⇒ Tomasulo Algorithmusy benutzt Forwarding und Registerrenaming

y ist single and in-order issuey Basis aller moderner Superskalarer Prozessoren

Page 173: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 80

Register Renaming

z Eine Namensabhängigkeit entsteht, wenn zwei InstruktionenInst1 und Inst2 die selben Register benutzen, aber keine Datenzwischen den Instruktionen ausgetauscht werden

z Wird ein Registeroperand umbenannt, so dass Inst1 und Inst2keine Abhängigkeit mehr haben, dann können beideInstruktionen simultan ausgeführt oder umgeordnet werden

z Die Technik die Namensabhängigkeiten eliminieren um WARund WAW Hazards zu vermeiden, heißt register renaming

z Register renaming kann statisch (vom Compiler) oderdnamisch (von der Hardware) ausgeführt werden

z Tomasulos Algorithmus führt register renaming durch dieHardware aus

Page 174: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

Page 175: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

Page 176: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

z Hazard Erkennung und Ausführungskontrolle sindverteilt in den FEs

Page 177: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

z Hazard Erkennung und Ausführungskontrolle sindverteilt in den FEs

z Reservation stations (RS) vor jeder FE kontrollierenden Beginn der Instruktionsausführung

Page 178: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

z Hazard Erkennung und Ausführungskontrolle sindverteilt in den FEs

z Reservation stations (RS) vor jeder FE kontrollierenden Beginn der Instruktionsausführung

z Common Data Bus verteilt alle Ergebnisse an allereservation stations und an die Register

Page 179: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

z Hazard Erkennung und Ausführungskontrolle sindverteilt in den FEs

z Reservation stations (RS) vor jeder FE kontrollierenden Beginn der Instruktionsausführung

z Common Data Bus verteilt alle Ergebnisse an allereservation stations und an die Register

z Speicherzugriffe werden von speziellen FEsdurchgeführt

Page 180: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 81

Tomasulo Algorithm

z Entwickelt für IBM 360/91 (1967 ca. 3 years nachCDC 6600)

z Hazard Erkennung und Ausführungskontrolle sindverteilt in den FEs

z Reservation stations (RS) vor jeder FE kontrollierenden Beginn der Instruktionsausführung

z Common Data Bus verteilt alle Ergebnisse an allereservation stations und an die Register

z Speicherzugriffe werden von speziellen FEsdurchgeführt

z Jedes Register hat zusätzliche Kontrollflags

Page 181: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

TomasuloOranisation

LoadBuffers

Load/StoreReservationStations

Registers

Control

Inst

ruct

ions

InstructionUnit

Memory

Memory

Reservation Stations

Operand Bus

Functional UnitFunctional Unit

Com

mon

Dat

a B

us (

CD

B)

Page 182: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 83

Reservation Stations

z Jede FE hat eine oder meherere reservation stationsz Die reservation station beinhalten:

y Instructions die bereits zugewiesen wurden und auf ihreAusführung in der FE warten

y die Operanden des Befehls, soweit bereits berechnet(andernfalls wird die Quelle/FE des Operanden gespeichert)

ê WAR Hazards werden umgangen, da die Werte des Registersbereits in der reservation station liegen auch wenn eine andereOperation (out-of-order) dieses Register überschreibt

ê WAW Hazards werden umgangen, da Referenzen aufreservation stations als Tags auf dem CDB benutzt werden,anstatt Referenzen auf konkrete Register

Page 183: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 84

Reservation Station Einträge

Empty: zeigt an, ob die reservation station leer ist InFU: zeigt an, ob die FE die gespeicherte Instruktion

gerade ausführt Op: Operation, die von der FE auszuführen ist Dest: Tag des reservierten Registers Src1, Src2: Werte der Quelloperanden RS1, RS2: Tag der reservation station, die den

Operanden erzeugt Vld1, Vld2: Valid Flags zeigen an, ob die Operanden

gültig sind

Page 184: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

TomasuloOraganisation

rese

rvat

ion

stat

ions

R

Value

Vld

Op Vld1Src1Dest RS1 RS2Vld2Src2Empty InFU

12S

S

S

1

f

n

RS status

s

k

1 2 m

register status

Register… r …

…… ………… ……

…… ……RS

Page 185: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 86

CDB und Reservation Stations

z Nach der Ausführung eines Befehls einer RS wird einErgebnistoken generiert und über den common data bus(CDB) an die Register und direkt an alle RS geschickt(forwarding)

z Alle RS überwachen ständig die Daten auf dem CDB(snooping)

z Ein Ergebnis auf dem CDB wird in alle RS kopiert, diedarauf warten

z CDB ermöglicht simultanes Laden von Ergebnissensobald diese zur Verfügung stehen (Datenflußprinzip)

Page 186: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 87

Drei Phasen des Tomasulo Algorithmus

Page 187: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 87

Drei Phasen des Tomasulo Algorithmus

1. Issue: Instruktion laden (von der instruction queue)Wenn RS frei, dann wird die Instruktion zugewiesen und Operandenaus den Registern geladen (falls möglich)→ In-order issue!

Page 188: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 87

Drei Phasen des Tomasulo Algorithmus

1. Issue: Instruktion laden (von der instruction queue)Wenn RS frei, dann wird die Instruktion zugewiesen und Operandenaus den Registern geladen (falls möglich)→ In-order issue!

2. Execution: Ausführen des Befehls (EX)Wenn beide Operanden bereit stehen, dann wird die Operation andie FE geleitet und dort ausgeführt (dispatch),wenn nicht, dann wird der CDB abgehört um Operandenabzufangen → Out-of-order dispatch und out-of-order execution!

Page 189: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 87

Drei Phasen des Tomasulo Algorithmus

1. Issue: Instruktion laden (von der instruction queue)Wenn RS frei, dann wird die Instruktion zugewiesen und Operandenaus den Registern geladen (falls möglich)→ In-order issue!

2. Execution: Ausführen des Befehls (EX)Wenn beide Operanden bereit stehen, dann wird die Operation andie FE geleitet und dort ausgeführt (dispatch),wenn nicht, dann wird der CDB abgehört um Operandenabzufangen → Out-of-order dispatch und out-of-order execution!

3. Write result: Beendigung der Ausführung (WB)Lege Ergebnis auf den CDBFreigabe der RS.

Page 190: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 88

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- - (R3) (R4) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 1 add Reg4, Reg2, Reg3

0 0 0 0 0 0

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 12 1

Smul 3 1

Sdiv 4 1

cycle 0token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

We assume:mul and div need 4 EX cycles,sub and add need 1 EX cycle.

CDB

Page 191: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 89

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- - (R3) (R4) (R5) - div Reg6, Reg1, Reg4

0 1 1 1 1 1 add Reg4, Reg2, Reg3

3 0 0 0 0 0

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 12 1

Smul 3 0 0 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 1

cycle 1token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

CDB

Page 192: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 90

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- - (R3) (R4) (R5) - div Reg6, Reg1, Reg4

0 0 1 1 1 1 add Reg4, Reg2, Reg3

3 1 0 0 0 0

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 0 0 sub 2 (R4) 1 0 (R3) 1 02 1

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 1

cycle 2token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

CDB

Page 193: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 91

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- - (R3) (R4) (R5) - div Reg6, Reg1, Reg4

0 0 1 1 1 0 add Reg4, Reg2, Reg3

3 1 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 0 1 sub 2 (R4) 1 0 (R3) 1 02 1

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 3

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 3token.tagtoken.data remaining cycles in FU

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

CDB

Page 194: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 92

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- (R4)-(R3) (R3) - (R5) - div Reg6, Reg1, Reg4

0 1 1 0 1 0 add Reg4, Reg2, Reg3

3 0 0 2 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 0 0 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 2

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 4token.tag 1token.data (R4)-(R3)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

sub schreibt auf CDB und gibt RS1 frei;add wird RS2 zugewiesen und lädtden ersten Operanden im gleichen Zyklus vom CDB

CDB

Page 195: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 93

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- (R4)-(R3) (R3) - (R5) - div Reg6, Reg1, Reg4

0 1 1 0 1 0 add Reg4, Reg2, Reg3

3 0 0 2 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 0 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 1

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 5token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

RValueVldRS

register status

CDB

Page 196: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 94

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

0 1 1 1 1 0 add Reg4, Reg2, Reg3

3 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 0

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 6token.tag 2token.data (R4)-(R3)+(R3)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 197: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 94

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

0 1 1 1 1 0 add Reg4, Reg2, Reg3

3 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 0

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 6token.tag 2token.data (R4)-(R3)+(R3)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB add and mul gleichzeitig fertigund konkurieren um den CDB;add schreibt auf CDB, mul muß warten

Page 198: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 94

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

- (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

0 1 1 1 1 0 add Reg4, Reg2, Reg3

3 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 0 1 mul 1 (R3) 1 0 (R5) 1 0 0

Sdiv 4 0 0 div 6 0 3 (R4) 1 0

cycle 6token.tag 2token.data (R4)-(R3)+(R3)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB add and mul gleichzeitig fertigund konkurieren um den CDB;add schreibt auf CDB, mul muß warten

WAR-Hazard wird automatisch aufgelöst: add schreibt Reg4 bevor div die Ausführungbeginnt, allerdings hat div bereits den alten Registerwert in der RS gesichert

Page 199: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 95

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 0 add Reg4, Reg2, Reg3

0 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 0 0 div 6 (R3)*(R5) 1 0 (R4) 1 0

cycle 7token.tag 3token.data (R3)*(R5)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 200: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 96

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 0 add Reg4, Reg2, Reg3

0 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 0 1 div 6 (R3)*(R5) 1 0 (R4) 1 0

cycle 8token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 201: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 97

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 0 add Reg4, Reg2, Reg3

0 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 0 1 div 6 (R3)*(R5) 1 0 (R4) 1 0 3

cycle 9token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 202: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 98

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 0 add Reg4, Reg2, Reg3

0 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 0 1 div 6 (R3)*(R5) 1 0 (R4) 1 0 2

cycle 10token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 203: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 99

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5) - div Reg6, Reg1, Reg4

1 1 1 1 1 0 add Reg4, Reg2, Reg3

0 0 0 0 0 4

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 0 1 div 6 (R3)*(R5) 1 0 (R4) 1 0 1

cycle 11token.tagtoken.data

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 204: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 100

Tomasulo Scheduling

mul Reg1, Reg3, Reg5

1 2 3 4 5 6 sub Reg2, Reg4, Reg3

(R3)*(R5) (R4)-(R3) (R3)(R4)-

(R3)+(R3) (R5)(R3)*(R5)

/(R4) div Reg6, Reg1, Reg4

1 1 1 1 1 1 add Reg4, Reg2, Reg3

0 0 0 0 0 0

Empty InFU Op Dest Src1 Vld1 RS1 Src2 Vld2 RS21 1 1 sub 2 (R4) 1 0 (R3) 1 02 1 1 add 4 (R4)-(R3) 1 0 (R3) 1 0

Smul 3 1 1 mul 1 (R3) 1 0 (R5) 1 0

Sdiv 4 1 1 div 6 (R3)*(R5) 1 0 (R4) 1 0 0

cycle 12token.tag 4token.data (R3)*(R5) /(R4)

registers

RS status

Sadd

rese

rvat

ion

stat

ions

R

ValueVldRS

register status

CDB

Page 205: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

Page 206: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazards

Page 207: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)

Page 208: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)z dynamisches scheduling

Page 209: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)z dynamisches schedulingz Register renaming

Page 210: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)z dynamisches schedulingz Register renamingz Jedoch: single-issue, in-order issue!

Page 211: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)z dynamisches schedulingz Register renamingz Jedoch: single-issue, in-order issue!z CDB ist der Flaschenhals

Page 212: Kap.3 Mikroarchitektur - ira.informatik.uni-freiburg.de · z Um Pipelining im Datenpfad ausnutzen zu können, muß die Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst

JR - RA - SS02 Kap. 3.4 101

Tomasulo Zusammenfassung

z Verhindert WAR und WAW Hazardsz Register sind nicht der Flaschenhals

(forwarding vom CDB an die RS)z dynamisches schedulingz Register renamingz Jedoch: single-issue, in-order issue!z CDB ist der Flaschenhals

z Implementierung in der IBM 360/91