Information Technology Reference
In-Depth Information
im History-Buffer gespeicherten Werte in umgekehrter Reihenfolge wieder in den
Registerspeicher übertragen (c). Dies kann parallel oder sequentiell geschehen.
Registerspeicher
History-Buffer
r0
0
a
r1
11
div
r1, r4, r5
Verarbeitungs-
einheiten
r2
-11
143
22
add
r2, r6, r7
22
r3
1010
33
sub
r2, r8, r9
143
r4
44
and
r3, r10, r11
33
r5
55
b
:
:
c
r6
66
r7
77
r8
88
r9
99
r10
1010
r11
1111
:
:
Bild 3.40. Funktionsweise eines History-Buffers. Mit jedem Schreibzugriff auf den Registerspei-
cher wird der alte Registerinhalt im History-Buffer eingetragen
Falls sich z.B. pro Takt zwei Werte aus dem History-Buffer in den Registerspeicher
übertragen lassen, würden in diesem Beispiel zunächst 33 und 143 in die Register r3
und r2 geschrieben und anschließend 22 in das Register r2. Das Beispiel verdeut-
licht die Grenzen des Verfahrens. Um im Extremfall alle Einträge eines großen His-
tory-Buffers in den Registerspeicher zurückzuschreiben, wird möglicherweise eine
erhebliche Zeit in Anspruch genommen. Solange nur Ausnahmeanforderungen auf
diese Weise bearbeitet werden, geht dies zu Lasten der Ausnahmelatenzzeit, was
tolerierbar ist. Bei der spekulativen Ausführung von Sprungbefehlen muss jedoch zu
jedem falsch vorhergesagten Sprung eine möglicherweise signifikante Strafzeit in
Kauf genommen werden.
Speicherzugriffe (Datenflussspekulation)
Ein Speicherzugriff kann in einer vom programmierten Befehlsfluss abweichenden
Reihenfolge erfolgen, wenn sichergestellt ist, dass sich die dabei erzielte Wirkung
auf den sichtbaren Maschinenstatus rückgängig machen lässt. Besonders einfach ist
dies mit Ladeoperationen, deren Ergebnis z.B. in einem Renaming-Register gespei-
chert und bei Bedarf jederzeit verworfen bzw. in ein Arbeitsregister übertragen wer-
den kann. Zum Erhalt der Semantik des sequentiellen Befehlsstroms darf letzteres
natürlich erst geschehen, wenn der Ladebefehl den Kopf des Reorder-Buffers
erreicht hat, somit die Bearbeitung aller vorangehender Befehle abgeschlossen ist.
Dabei ist auch zu überprüfen, ob der Zugriff auf den Datenspeicher eine Ausnahme-
anforderung , z.B. einen Seitenfehler, gestellt hat. Die Ausnahmeanforderung darf
dabei nicht mit dem eigentlichen Lesezugriff, sondern muss verzögert bearbeitet
werden, weshalb sie zunächst nur im Reorder-Buffer protokolliert wird. Dies ist ver-
gleichbar mit der Kontroll- bzw. Datenflussspekulation von VLIW-Prozessoren, bei
der ein Lesezugriff spekulativ vor einer Sprung- oder Speichereoperation ausgeführt
Search WWH ::




Custom Search