kap.3 mikroarchitektur - ira.informatik.uni-freiburg.de · z um pipelining im datenpfad ausnutzen...
TRANSCRIPT
![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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/74.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/75.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/76.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/77.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/78.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/79.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/80.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/81.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/82.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/83.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/84.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/85.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/86.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/87.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/88.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/89.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/90.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/91.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/92.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/93.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/94.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/95.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/96.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/97.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/98.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/99.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/100.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/101.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/102.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/103.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/104.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/105.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/106.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/107.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/108.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/109.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/110.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/111.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/112.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/113.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/114.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/115.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/116.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/117.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/118.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/119.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/120.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/121.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/122.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/123.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/124.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/125.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/126.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/127.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/128.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/129.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/130.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/131.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/132.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/133.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/134.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/135.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/136.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/137.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/138.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/139.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/140.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/141.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/142.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/143.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/144.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/145.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/146.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/147.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/148.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/149.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/150.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/151.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/152.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/153.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/154.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/155.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/156.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/157.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/158.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/159.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/160.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/161.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/162.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/163.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/164.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/165.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/166.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/167.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/168.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/169.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/170.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/171.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/172.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/173.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/174.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/175.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/176.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/177.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/178.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/179.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/180.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/181.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/182.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/183.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/184.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/185.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/186.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/187.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/188.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/189.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/190.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/191.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/192.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/193.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/194.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/195.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/196.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/197.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/198.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/199.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/200.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/201.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/202.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/203.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/204.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/205.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/206.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/207.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/208.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/209.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/210.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/211.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050718/5e176ad2b83ff6306422c2ad/html5/thumbnails/212.jpg)
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