Hardware Reference
In-Depth Information
chen Befehls angegeben ist, dann wird die Instruktion so lange aufgehalten,
bis das Ergebnis verfugbar ist. Hier liegt eine Read-After-Write-Abhangigkeit
vor. Wenn also ein neuer Befehl zugeteilt wird, muss der Reorder Buffer vom
kalten Ende her durchsucht werden, ob einer der eingetragenen Befehle ei-
nes der Operandenregister des neuen Befehls als Ergebnisregister beschreiben
will. Der erste (kalteste) Eintrag, der gefunden wird, muss dann beobachtet
werden. Sobald das Ergebnis zur Verfugung steht, kann es mittels Forwarding
an die wartende Instruktion geleitet werden, auch wenn es noch nicht in ein
Register geschrieben wurde.
Zusammenfassend lasst sich der Weg, den ein Befehl geht, so beschreiben:
1. Eine freie Ausfuhrungseinheit wird gesucht. Ist eine verfugbar, so wird sie
durch den Befehl belegt und ein Eintrag im Reorder Buffer wird angelegt.
2. Die Operanden werden bereitgestellt. Fur jeden Operanden wird der Re-
order Buffer vom kalten zum heißen Ende durchsucht. Findet sich kein
Befehl, der als Ergebnis den Operanden liefert, so wird der Wert aus dem
Register genommen und an die Ausfuhrungseinheit durchgereicht. Andern-
falls wird der Wert von dem vorangehenden Befehl ubernommen bzw. der
Befehl beobachtet, falls er noch nicht fertig ausgefuhrt ist.
3. Der Befehl wird ausgefuhrt. Ist die Ausfuhrung beendet, so wird das Er-
gebnis im Eintrag des Befehls im Reorder Buffer vermerkt.
4. Der Befehl wird bestatigt, d.h., seine Ergebnisse werden in die entspre-
chenden Register ubernommen.
Ein Eintrag fur einen Befehl im Reorder Buffer kann die folgenden Informa-
tionen enthalten [17, 22]:
Befehlswort der Instruktion. Damit ist die Instruktion beschrieben, ein-
schließlich der Operanden.
Die Ausfuhrungseinheit (AE), die diesen Befehl ausfuhrt. Bei beendeten
Befehlen ist dieses Feld ohne Bedeutung.
Ein Status, der anzeigt, ob die Instruktion noch auf Operanden wartet,
sich bereits in Ausfuhrung befindet oder bereits fertig gestellt ist. Wir
verwenden anschließend das von audio-visuellen Geraten her bekannte
Pausesymbol \\ fur wartend (stalled) bzw. das Startsymbol ￿ fur laufend
und ein Hakchen fur fertig ausgefuhrt: .
Die Werte der Operanden: Q Y und Q Z . Wie wir gesehen haben, mussen
diese Werte beim Eintragen der Instruktion in den Reorder Buffer noch
gar nicht zur Verfugung stehen; die Instruktion wird in diesem Fall auf
fehlende Operanden warten (Hazard durch eine Read-After-Write-Abhan-
gigkeit).
Um fehlende Operanden schnell zu bekommen, wird vermerkt, welche Be-
fehle im Reorder Buffer zu beobachten sind. Dazu dienen zwei Zeiger V Y
Search WWH ::




Custom Search