Hardware Reference
In-Depth Information
13
JMP
Main
Dieses Programm nehmen wir nun als Grundlage, um ein Beispiel zu konstru-
ieren, das den schlechtest moglichen Fall (den so genannten Worst Case )der
Sprungverzogerung demonstriert. Wir verwenden wieder die oben erwahnte
PowerPC 970-Konfiguration. Ausgangspunkt ist folgende Uberlegung: Die
Sprungverzogerung wachst mit der Dauer, in der der Sprungbefehl blockiert
wird (weil seine Bedingung noch nicht zur Verfugung steht), aber nur dann,
wenn in dieser Zeit weitere Befehle abgearbeitet werden konnten. Wir mussen
fur die Konstruktion des Worst-Case-Beispiels also den Sprungbefehl von ei-
ner lang laufenden Operation abhangen lassen. Dafur wahlen wir eine ganz-
zahlige Division. Ferner mussen wir ihn auf eine falsche Fahrte locken, also
etwa PBEV verwenden, wenn im Register YesNo lauter Einsen stehen. Schließ-
lich mussen wir noch dafur sorgen, dass im Fall der korrekten Vorhersage
sinnvoll Befehle ausgefuhrt werden konnten. Das leistet beispielsweise folgen-
des Programm:
simple-mis.mms
1 YesNo
GREG
#FFFFFFFFFFFFFFFF
2
3 P
IS
$2
4 q
IS
$3
5
6
LOC
#100
7 Main
YesNo,YesNo,1 liefert spat die Bedingung
DIVU
8
PBEV
YesNo,1F
9
DIVU
$9,$9,2
10 1H
DIVU
$10,$10,2
11
rotieren
AND
q,YesNo,1
12
SLU
q,q,63
13
SRU
YesNo,YesNo,1
14
OR
YesNo,YesNo,q
15
JMP
Main
Das Aktivitatsdiagramm, das zur Diskussion des Programms erforderlich ist,
kann Abbildung 6.2 entnommen werden. Im Fall a) werden alle Verzweigun-
gen falsch vorher gesagt. Wahrend der PBEV auf das Ergebnis der Division
von Zeile 7 wartet, arbeitet die Befehlsausfuhrung spekulativ mit der Division
in Zeile 10 auf der zweiten Ausfuhrungseinheit fur ganzzahlige Befehle weiter
(Situation A in Abbildung 6.2). Sobald das Ergebnis aus Zeile 7 feststeht,
wird die spekulativ ausgefuhrte Division verworfen, der Befehl aus Zeile 9
Search WWH ::




Custom Search