Hardware Reference
In-Depth Information
t
1
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
—
—
—
FCMP test,r,:M
$6
$254
$9
BNP
test,2F
INT1
$9
∗
2F
—
—
—
INT2
Direktop.
×
—
—
$10
(ung.)
LDA
temp1,...
—
Zum Zeitpunkt
t
2
sind sowohl der
BNP
als auch der
LDA
fertig, aber es stellt
sich heraus, dass der
LDA
gar nicht auszufuhren ist, weil der Sprung aus-
gefuhrt wird und das Programm mit einem ganz anderen Befehl als ange-
nommen fortgesetzt werden muss. Der bereits ausgefuhrte Befehl muss also
verworfen werden, was durch das Symbol
veranschaulicht wird. Als Er-
gebnis des Sprungbefehls wird hier ein neuer Wert fur den Befehlszahler BZ
bereit gestellt:
t
2
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
$9
∗
BNP
test,2F
—
2F
—
—
Neuer BZ
LDA
temp1,:Bmp:data
—
—
—
—
—
—
—
—
Wenn der erste Befehl vom tatsachlichen Sprungziel nicht schnell genug bereit
gestellt werden kann, dann ist der Reorder Buffer im nachsten Taktzyklus
t
3
leer.
4.6
4.6 Umbenennung von Registern
Wie wir in den vorangegangenen Abschnitten gesehen haben, werden im Re-
order Buffer Kopien von Operanden sowie Ergebnisse gespeichert. Diesen
Aspekt wollen wir nun etwas genauer betrachten. Wir nehmen zur Beispiel-
konfiguration von Seite 66 eine Ausfuhrungseinheit fur Speicherzugriffe hin-
zu (Load-And-Store-Unit, kurz LSU)sowieeinenfunften Eintrag im Reorder
Buffer. Der Reorder Buffer sehe zu einem Zeitpunkt
t
0
folgendermaßen aus:
t
0
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
LSU
—
—
$1
(ung.)
LDO
$1,$254,0
$254
0
INT1
\\
—
×
LSU
—
neuer BZ (ung.)
BP
$1,1F
—
—
—
$2
(gultig)
ADD
$2,$3,$4
$3
$4
—
—
Wir gehen davon aus, dass der Ladebefehl (erster Eintrag) sehr lange lauft
und andere Befehle uberholen konnen. Der
BP
-Befehl (zweiter Eintrag) be-
obachtet die Load-And-Store-Unit, weil er deren Ergebnis benotigt. Der Ad-