Information Technology Reference
In-Depth Information
Unter den genannten Annahmen wird die Ausführung der Division in Zeile 1 des in
Bild 3.34a links dargestellten Assemblerprogramms sofort begonnen und das Zielre-
gister A (rechts daneben) dabei als ungültig gekennzeichnet (0 im Feld valid). Auf-
grund der bestehenden RAW-Abhängigkeit wird die in Zeile 2 folgende Subtraktion
zunächst noch nicht begonnen, sondern bis zur Verfügbarkeit des Divisionsergebnis-
ses in der Subtraktionseinheit zwischengespeichert. Des Weiteren wird in den Read-
Tags des Scoreboards zu beiden Quelloperanden eingetragen, dass sie später noch
benötigt werden (sub im Feld rd-tag). Zur Erinnerung: Diese Einträge sind einerseits
erforderlich, um die Subtraktionseinheit zu starten, sobald das fehlende Divisionser-
gebnis verfügbar ist, andererseits um die Variablen nicht durch nachfolgende
Befehle zu überschreiben, solange deren alte Inhalte noch nicht verarbeitet wurden.
valid
rd-tag
valid
rd-tag
pref
write
1: A
=
Y
/
Z
1:A= Y/ Z
A
0
A
0
RAW
RAW
2: B
=
C
-
A
A
0 b
2: B
=
C
-
A
A
0 b
write
write
read
B
0
B
0
WAR
C
1 b
WAR
C
1 b
W .
W .
3: C
=
X
3: C
=
X
A
0 b
write
write
read
B
0
WAW
C
0
sub
a
b
4: A
=
U
+
V
Bild 3.34. Exemplarische Darstellung der Funktionsweise eines Scoreboards. Neben den Befehlen
sind die relevanten Einträge im zeitlichen Verlauf angegeben. a Scoreboard ohne, b Scoreboard mit
Preference-Bit
Mit der Multiplikation in Zeile 3 tritt eine WAR-Abhängigkeit auf, die sich über das
Read-Tag von C erkennen lässt. Obwohl die Quelloperanden der Multiplikation
nicht von vorangehenden Befehlen abhängig und somit verfügbar sind, ist bei dieser
einfacheren Variante des Scoreboardings die weitere Befehlsbearbeitung solange zu
blockieren, bis die Subtraktion gestartet wurde. Es ließe sich ansonsten nicht mehr
unterscheiden, ob C zuerst gelesen und anschließend geschrieben werden soll oder
umgekehrt (wie das z.B. für den Inhalt von A der Fall ist). In Bild 3.34b ist zur
Lösung dieses Problems deshalb ein Preference-Bit hinzugefügt worden, in dem
codiert ist, ob der entsprechende Operand zuerst gelesen oder geschrieben werden
muss. Die Ausführung der Addition in Zeile 4 lässt sich mit dieser Modifikation
zwar beginnen, jedoch nicht beenden. Das Ergebnis darf nämlich erst gespeichert
werden, wenn die Subtraktion gestartet und die Lesepräferenz dadurch aufgehoben
wurde. Tatsächlich wird die Addition deshalb zunächst ebenfalls verzögert.
Im weiteren Verlauf führt die WAW-Abhängigkeit dazu, dass keine nachfolgenden
Befehle mehr bearbeitet werden, und zwar solange, bis die Division in Zeile 1 abge-
schlossen ist, dadurch der Operand A als gültig gekennzeichnet und die Subtrakti-
onseinheit gestartet wird, die ihrerseits die benötigten Operanden A und C liest und
dabei die entsprechenden Read-Tags löscht. Weil die Quelloperanden für die Sub-
traktion nunmehr gelesen sind, müssen ggf. gesetzte Lesepräferenzen in Schreibprä-
 
Search WWH ::




Custom Search