Information Technology Reference
In-Depth Information
merken. Die für die Beendigung der Befehle verantwortliche Einheit kann jetzt das
Ergebnis der Division und der Multiplikation in den Registerspeicher schreiben. Die
restlichen Ergebnisse dürfen jedoch noch nicht übertragen werden, weil der auf die
Multiplikation folgende Befehl wegen der Abhängigkeit zum Divisionsergebnis bis-
her noch nicht ausgeführt wurde. Erst wenn das Additionsergebnis berechnet ist,
kann man die Ergebnisse der restlichen Befehle in den Registerspeicher schreiben. -
Die Renaming-Register haben die Aufgabe, einerseits Ergebnisse so lange zwi-
schenzuspeichern, bis sie sich in den Registerspeicher übertragen lassen, und ande-
rerseits, die Operanden für nachfolgende Befehle bereitzustellen. Letzteres ist nutz-
bar, um WAR - und WAW-Abhängigkeiten zu lösen und so die Aufgabe der Reservie-
rungsstationen zu vereinfachen.
In der in Bild 3.38 dargestellten Befehlsfolge sind jeweils die physikalischen
Bezüge auf Renaming-Register durch tiefergestellte Buchstaben kenntlich gemacht.
Die Division in Zeile 1 teilt regulär den Inhalt des Arbeitsregisters r3 durch Drei.
Der Dividend befindet sich zum Zeitpunkt der Ausführung jedoch nicht im entspre-
chenden Arbeitsregister, sondern im Renaming-Register r3 a , was auch bedeutet,
dass er als Ergebnis eines vorangehenden Befehls noch nicht in den Registerspei-
cher übertragen wurde. Da, wie beschrieben, r3 a nicht verändert werden darf, spei-
chert man das Ergebnis in einem neuen Register r3 b ( Einmalzuweisungsprinzip ).
Alle nachfolgenden Befehle, z.B. auch die Addition in Zeile 2, greifen bei Bedarf
auf das Register r3 b zu, und zwar so lange, bis entweder r3 b in das Arbeitsregister r3
übertragen oder bis ein weiteres Ergebnis für r3 erzeugt und ein neues Renaming-
Register reserviert wird. Letzteres geschieht z.B. mit der Multiplikation in Zeile 4.
1: r3 b = r3 a / 3
2: r4 b = r3 b + r2 a
3: r2 b =r5 a -1
4: r3 c =r3 b . r4 b
Bild 3.38. Befehlsfolge zur Verdeutlichung der Funktion von Renaming-Registern
WAR- oder WAW-Abhängigkeiten treten normalerweise auf, wenn ein Befehl auf
ein Register schreibend zugreift, auf das vorangehend lesend oder schreibend zuge-
griffen wurde. Durch die laufende Umbenamung der Zielregister kann dieser Fall
jedoch nicht mehr eintreten. So ist z.B. die Multiplikation in Zeile 4 weder zur Divi-
sion WAW- noch zur Addition WAR-abhängig. Daraus resultiert jedoch auch, dass
WAW- und WAR-Abhängigkeiten nicht mehr mit Hilfe der Reservierungsstationen
gelöst werden müssen. Somit reicht es aus, in den Reservierungsregistern statt 32
oder 64 Bit breiter Werte 5 bis 7 Bit breite Referenzen auf Funktionseinheiten oder
Renaming-Register zu halten. Das Verfahren nach Tomasulo gleicht sich durch
diese Änderung dem Scoreboarding an.
Beispiel 3.6. Funktionsweise eines Reorder-Buffers . Bild 3.39 zeigt die prinzipielle Funktions-
weise eines superskalaren Prozessors, der die Befehle außer-der-Reihe startet und in-der-Reihe
beendet, wobei sich maximal zwei Befehle pro Takt verarbeiten lassen und der Reorder-Buffer
maximal vier Einträge aufnehmen kann. Es ist also möglich, dass sich bis zu vier Befehle in Aus-
führung befinden, die innerhalb eines Befehlsfensters liegen, das mit Beendigung der Befehle über
den zu bearbeitenden Befehlsstrom hinweg wandert (mit a markiert).
Search WWH ::




Custom Search