Information Technology Reference
In-Depth Information
Im ersten Schritt der Verarbeitung werden zwei Befehle aus dem Befehlsspeicher gelesen, deco-
diert, die Registerumbenamung durchführt, die benötigten Operanden, falls verfügbar, aus den
Renaming- oder Arbeitsregistern geladen und ggf. die Operationsausführung begonnen (im Bild
durch die ausgezeichneten mit b markierten Pfeile symbolisiert). Außerdem werden die Befehle
zyklisch entsprechend ihrer Reihenfolge im Reorder-Buffer protokolliert (c) und jeweils als „in
Bearbeitung befindlich“ gekennzeichnet (im Bild durch einen Bindestrich zu den Einträgen der
Positionen 3 und 0 dargestellt).
Verarbeitungseinheiten
Befehlsspeicher
b
2
or
r0 = r0, 15
div r1 a = r2, 3
Renaming-Register
3 div
r1 = r2, 3
sub r3 a = r4, r1 a
0
sub
r3 = r4, r1
f
1
mul
r4 = r5, r6
mul r4 a = r5, r6
2
add
r1 = r7, r8
Arbeitsregister
d
add r1 b = r7, r8
3
and
r9 = r10, 15
a
e
Reorder-Buffer
sub
r3 a = r4, r1 a
-
ok
ok
-
mul
r4 a = r5, r6
c
add
r1 b = r7, r8
div
r1 a = r2, 3
Bild 3.39. Prinzipielle Funktionsweise eines Reorder-Buffers. Die Befehle innerhalb eines Befehls-
fensters werden parallel bearbeitet (Befehlsfenster durch a markiert)
Nach Verteilung der Operationen lässt sich wegen der bestehenden RAW-Abhängigkeit zunächst
nur die Ausführung der Division starten. Da diese i. Allg. sehr langsam bearbeitet wird, ist es wahr-
scheinlich, dass vor ihrem Abschluss als nächstes die zwei folgenden Befehle an die zuständigen
Verarbeitungseinheiten verteilt und im Reorder-Buffer an den Positionen 1 und 2 vermerkt werden.
Das Starten weiterer Befehle ist wegen des nun vollständig gefüllten Reorder-Buffers nicht mög-
lich. Hierzu muss man warten, bis die Division beendet und die älteste Position des Reorder-Buffers
freigeräumt ist.
Unter realistischen Annahmen wird von den vier begonnenen Befehlen zuerst die Addition und
danach die Multiplikation beendet. Sobald dies geschehen ist, werden die erzeugten Ergebnisse in
den Renaming-Registern r1 b und r4 b gespeichert (d). Dort warten sie darauf, dass sie entweder in
die Arbeitsregister übertragen oder im Falle einer Ausnahmesituation verworfen werden. Außer-
dem wird im Reorder-Buffer zu den entsprechenden Befehlen vermerkt, dass ihre Ausführung
beendet und die erzeugten Ergebnisse in den jeweiligen Renaming-Registern gespeichert sind (ok).
Mit der Division verfährt man zunächst in derselben Weise: Das erzeugte Ergebnis wird in r1 a
gespeichert 1 und der Befehl im Reorder-Buffer als abgeschlossen gekennzeichnet. Als ältester in
Bearbeitung befindlicher Befehl lässt sich die Division jedoch vollständig beenden. Hierzu wird mit
Hilfe der im Reorder-Buffer gespeicherten Informationen (e) der Inhalt des Renaming-Registers r1 a
in das Arbeitsregister r1 übertragen (f) und der entsprechende Eintrag schließlich aus dem Reorder-
Buffer gelöscht.
1. Zu diesem Zeitpunkt sind in den assoziativen Renaming-Registern r1 a und r1 b zwei für r1
bestimmte Werte gespeichert. Maximal müssen sogar vier Werte zu einem Arbeitsregister
gespeichert werden, nämlich dann, wenn die in Ausführung befindlichen Befehle alle dasselbe
Zielregister verwenden.
Search WWH ::




Custom Search