Hardware Reference
In-Depth Information
T. 1
T. 2
T. 3
T. 4
T. 5
T. 6
T. 7
F
D
X
M
W
XOR l,l,r
F
D
X
M
XOR r,l,r
F
D
XOR l,l,r
F
CMP tmp,l,pivot
Abbildung 3.7. Read-After-Write-Abhangigkeit in einer Pipeline ohne Result Forwarding.
Das Wort Takt it durch T. abgekurzt. Schraffuren bezeichnen Stufen, die der Befehl bereits
vollstandig durchlaufen hat, in denen er aber verweilen muss, weil er durch einen Vorganger
blockiert wird
T. 1
T. 2
T. 3
T. 4
T. 5
T. 6
T. 7
F
D
X
M
W
XOR l,l,r
F
D
X
M
W
XOR r,l,r
F
D
X
M
W
XOR l,l,r
F
D
X
M
CMP tmp,l,pivot
Abbildung 3.8. Read-After-Write-Abhangigkeit in einer Ppipeline mit Result Forwarding
Abhilfe schafft in diesem Beispiel ein Mechanismus, der es erlaubt, Ergeb-
nisse weiter zu verwenden, bevor sie in Registern abgespeichert wurden,
das so genannte Result Forwarding . Dies bedeutet, dass Ergebnisse der X-
und M-Phase immer als ALU-Input zuruckgereicht werden konnen ( Feed
Back ). Eine spezielle Steuerlogik sorgt dafur, dass - falls erforderlich - die
zuruckgereichten Ergebnisse anstelle der Werte aus den Registern verwendet
werden (man spricht von Forwarding oder Bypassing). Fur das obige Pro-
grammfragment ist dieser Sachverhalt in den Abbildungen 3.7 und 3.8 darge-
stellt. Abbildungen 3.7 zeigt, wie die Pipeline blockiert, weil der zweite Befehl
auf das Ergebnis des ersten wartet (grau schra erte Flachen). Demgegenuber
zeigt Abbildung 3.8, wie die Technik des Forwarding fur ein kontinuierliches
Arbeiten der Pipeline sorgt.
Abbildung 3.9 zeigt die um Leitungen zum Forwarding erganzte Implemen-
tierung einer Pipeline.
Leider hilft dieser Mechanismus nicht in jedem Fall. Ladeoperationen konnen
ihr Ergebnis in keinem Fall vor dem Ablauf der M-Phase zur Verfugung stel-
len. Result forwarding hilft hier zwar, die Phase des Stillstands zu verkurzen,
aber ganz vermieden werden kann sie nicht. Wir werden spater sehen, dass
Ladeoperationen unter Umstanden die Pipeline noch viel langer blockieren
konnen als nur um einen Takt. Abbildung 3.10 zeigt den Read-After-Write-
Hazard einer Pipeline durch einen Ladebefehl.
Search WWH ::




Custom Search