Hardware Reference
In-Depth Information
Bisher haben wir es vermieden, uber bedingte Sprungbefehle (Verzweigun-
gen) zu sprechen. Da nicht a priori fest steht, ob ein Sprung ausgefuhrt werden
wird oder nicht, arbeiten moderne Prozessoren auch hier spekulativ [32, 35].
Die Programmausfuhrung folgt dabei zunachst einer der beiden moglichen
Verzweigungsrichtungen, selbst wenn der Wert, von dem die Verzweigung
abhangt, noch gar nicht zur Verfugung steht. Der Sprungbefehl wird im Reor-
der Buffer blockiert, bis die Bedingung zuverlassig ausgewertet werden kann,
und weitere Befehle konnen uberholen. Sollte sich dann heraus stellen, dass
die falschen Befehle ausgefuhrt wurden, so sind sie aus dem Reorder Buffer
zu entfernen und die Programmausfuhrung wird in der anderen Richtung der
bedingten Verzweigung fortgefuhrt.
Wir werden in Kapitel 6 Methoden kennen lernen, um die Sprungrichtung
vorherzusagen. Bereits hier ist einzusehen, dass jede falsche Vorhersage den
Programmablauf deutlich behindert, denn die Ausfuhrung ist einschließlich
Instruction Fetch neu aufzusetzen.
Beispiel
Zur Veranschaulichung dieses Sachverhalts ziehen wir wieder einen Ausschnitt
aus mandelbrot.mms heran:
43 FADD r,temp1,temp2
44 FCMP test,r,:M
45 BNP test,2F
46 LDA temp1,:Bmp:data
Der LDA -Befehl in Zeile 46 wird vom Assembler in einen SETH umgesetzt [1].
Zum Zeitpunkt t 0 sei die Addition fertig, der Vergleich FCMP und der Sprung-
befehl werden zugeteilt. Die Ausfuhrung des FCMP kann sofort beginnen, aber
der Sprungbefehl in Zeile 45 blockiert, weil er vom Ergebnis des Vergleichs
abhangt:
t 0
Operanden
Befehl
unit
Status
Q Y
Q Z
V Y
V Z
Ergebnis
FADD r,r,temp1
$6
$10
$6
FCMP test,r,:M
FPU
$6
$254
$9 (ungultig)
BNP
test,2F
INT1 \\ —
2F
FPU
Im nachsten Takt t 1 ist der Vergleich fertig, der Sprungbefehl wird ausgefuhrt.
Deshalbwirdder LDA -Befehl auf die zweite Ausfuhrungseinheit fur ganzzah-
lige Operationen INT2 zugeteilt und beginnt sofort mit der Ausfuhrung. Die
Vorhersage des Sprungergebnisses fur den BNP habe hier voraus gesagt, dass
der Sprung nicht erfolgt.
Search WWH ::




Custom Search