Hardware Reference
In-Depth Information
FMUL
noch zwei Takte lauft, bleibt die Situation in den beiden Takten
t
2
und
t
3
unverandert:
t
2
und
t
3
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
—
—
$4
(ungultig)
FMUL yk,yk,xk
MUL
$4
$3
FPU
\\
—
—
$4
(ungultig)
FADD yk,yk,q
$2
FMUL
—
×
—
—
SET
xk,temp1
$10
$3
—
Nun ist die Multiplikation beendet und kann anschließend bestatigt werden.
Damit ist auch der zweite Operand fur die Addition verfugbar. Der
FADD
-
Befehl wird in
t
4
sofort ausgefuhrt. Ferner folgt sofort die nachste
FMUL
-
Instruktion aus Zeile 42 auf die nun frei gewordene Ausfuhrungseinheit MUL
nach. Diese Multiplikation bezieht ihren Operanden
xk
nicht aus dem ent-
sprechenden Register
$3
, sondern durch den Mechanismus des Forwarding
von dem vorangehenden Eintrag des
SET
-Befehls im Reorder Buffer. In der
Darstellung ist durch einen Stern
∗
gekennzeichnet, dass der Wert durch
Forwarding ubernommen wird. Der
FMUL
-Befehl kann dadurch auch sofort
ausgefuhrt werden:
t
4
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
—
—
—
FMUL yk,yk,xk
$4
$3
$4
$4
∗
—
—
$4
(ung.)
FADD yk,yk,q
FPU
$2
×
—
—
SET
xk,temp1
INT1
$10
$3
$3
∗
$3
∗
MUL
—
—
—
FMUL temp1,xk,xk
Die beendete Multiplikation wird bestatigt in
t
5
,verlasst damit den Reorder
Buffer und das Ergebnis wird in das Register
$4
geschrieben:
t
5
Operanden
Befehl
unit
Status
Q
Y
Q
Z
V
Y
V
Z
Ergebnis
$4
∗
FPU
—
—
$4
(ung.)
FADD yk,yk,q
$2
—
$10
×
—
—
SET
xk,temp1
$3
$3
∗
$3
∗
—
—
$10
(ung.)
FMUL temp1,xk,xk
MUL
—
Die Werte in Registern
$4
und
$10
sind im Moment ungultig. Falls zu die-
sem Zeitpunkt ein Interrupt auftrate, so wurde der Reorder Buffer geleert
werden und das Ergebnis des bereits ausgefuhrten
SET
-Befehls musste ver-
worfen werden. Als aktueller Wert des Programmzahlers wurde die Adresse
des laufenden
FADD
-Befehls gesichert. Die Befehlsausfuhrung wurde mit den