Hardware Reference
In-Depth Information
a) Ohne Pipelining
LDO $0,$1,$2
FDX
M
W
DXW
ADD $3,$4,$5
F
JMP 1F
DX
F
Zeit
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
b) Mit Pipelining
LDO $0,$1,$2
F
D
XMW
ADD $3,$4,$5
F
D
X
W
JMP 1F
JMP 1F
F
F
D
D
X
X
ADD $1,$1,$2
F
D
X
W
Zeit
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Abbildung 3.2. Befehlsausfuhrung ohne und mit Pipelining. Fur jeden Befehl ist
angegeben, zu welcher Zeit er welche Stufe durchlauft
Die Dauer einer Takteinheit muss sich nach der langsten Verweildauer ei-
nes Befehls in einer Stufe richten. Gunstig dabei ist, wenn die Verweildau-
er eines Befehls in jeder der Stufen in etwa gleich groß ist. In unserem
Fall bedeutet das, dass eine Takteinheit 2∆ t dauern muss. Wie in Abbil-
dung 3.2 b) zu sehen ist, entsteht bei kurzeren Phasen ein Verschnitt. Be-
fehle haben diese Phase bereits ganz durchlaufen, bevor der nachste Takt-
schritt beginnt und mussen auf die Weitergabe in die nachste Stufe warten.
Die Ausfuhrungsdauer fur einen einzelnen Befehl wird dadurch also mehr als
theoretisch notig verlangert.
Grundsatzlich durchlauft jeder Befehl alle Stufen der Pipeline. Unter Umstan-
den lauft ein Befehl durch eine Phase, ohne dass eine Bearbeitung erfolgt.
In dem Analogiebeispiel der Essensausgabe bedeutet dies, dass jeder an der
Ausgabe fur die Nachspeise vorbei muss, bevor er zur Kasse gehen kann, auch
wenn er keine Nachspeise nimmt.
Zumindest theoretisch kann somit aber in jedem Takt ein Befehl fertig ge-
stellt werden. Dies bedeutet einen maximalen IPC-Wert von 1. In der Praxis
wird sich dieser Wert aber nur sehr selten einstellen, da sich durch so ge-
nannte Pipeline-Hazards , die im nachsten Abschnitt besprochen werden, die
Befehlsausfuhrung weiter verlangsamt. In den vergangenen Jahren wurde viel
Entwicklungsaufwand betrieben, um solche Situationen moglichst zu vermei-
den. Davon handelt der nachste Abschnitt.
 
Search WWH ::




Custom Search