Information Technology Reference
In-Depth Information
des Ausnahmeprogramms im Arbeitsregister r6 und im Bedingungsregister cr0 die
zu diesem Zeitpunkt noch nicht erwarteten Ergebnisse der and-Operation.
Darf die Ausnahmeanforderung unpräzise bearbeitet werden, lässt sich das Problem
einfach lösen, indem z.B. die VLIW-Befehlsfolge bis zu ihrem Ende abgearbeitet
wird, wobei erneut eine lange Ausnahmelatenzzeit zu tolerieren wäre. Natürlich
ließe sich eine VLIW-Befehlsfolge auch abbrechen und der virtuelle Prozessor in
einen Zustand versetzen, als wäre die reale VLIW-Befehlsfolge nicht ausgeführt
worden. Allerdings erfordert dies, dass (1.) die Inhalte der Register, wie sie zu
Beginn der Ausführung eines binärübersetzten separierten Programmpfads bestan-
den haben, restauriert und dass (2.) sämtliche Zugriffe auf den Hauptspeicher annul-
liert werden (siehe hierzu die abschließende Bemerkung). Die bereits erzeugten
Ergebnisse gehen dabei selbstverständlich verloren und müssen nach der Ausnah-
meverarbeitung erneut berechnet werden.
Virtuelle Befehlsfolge
Ausnahmeauslösender Befehl
1: L1:
sub
r1, r2, r3
Reale VLIW-Befehlsfolge
2:
ld
r4, [r1, r5]
1: V1:
sub
r1, r2, r3;
and.cr0
r6, r7, r8 ;;
3:
and.cr0
r6, r7, r8
2:
ld
r4, [r1, r5];
xor
r1', r2, r3
beq
V2;;
4:
beq
L2
5:
xor
r1, r2, r3
Bild 4.15. Gegenüberstellung einer virtuellen Befehlsfolge und der daraus erzeugten realen VLIW-
Befehlsfolge. Falls mit dem Lesezugriff eine Ausnahmeanforderung auftritt, ist der and-Befehl in
Zeile 3 der virtuellen Befehlsfolge bereits emuliert worden
Das Wiederherstellen des zu Beginn der Ausführung einer VLIW-Befehlsfolge
bestehenden virtuellen Prozessorzustands hat auch für die Bearbeitung von präzisen
Ausnahmeanforderungen eine Bedeutung. Nach dem Einstellen des Startzustands
werden dabei die einzelnen Befehle durch den Interpreter nacheinander emuliert, bis
das die Ausnahme auslösende Ereignis erneut auftritt. Das Verfahren ist z.B. in
BOA von IBM realisiert [53]. Es hat den Nachteil, dass eine lange Ausnahmelatenz-
zeit in Kauf genommen werden muss, die jedoch durch zahlreiche Varianten des
Verfahrens versucht wird zu minimieren. Bei Daisy von IBM [34, 35] ist es z.B.
möglich, von der Adresse eines VLIW-Befehls direkt auf die Adresse der entspre-
chenden virtuellen Befehlsfolge zu schließen, sodass man bei Auftreten der Ausnah-
meanforderung nur den laufenden VLIW-Befehl in seiner Bearbeitung abbrechen
muss. Die darin codierten Operationen werden anschließend interpretiert, bis das
jeweilige Ereignis erneut auftritt.
Beim Crusoe TM5800 von Transmeta [94] wird bei einer Ausnahmeanforderung
zwar die laufende VLIW-Befehlsfolge auf den Startzustand zurückgespult ( roll-
back ), der ausnahmeauslösende Befehl jedoch nicht durch Interpretation gefunden,
sondern indem man eine binärübersetzte, streng sequentiell codierte Befehlsfolge
aufruft. Die Adresse des virtuellen für die Ausnahmeanforderung verantwortlichen
Befehls lässt sich schließlich aus der Startadresse der sequentiellen nativen Befehls-
folge, der Startadresse der assoziierten virtuellen Befehlsfolge und der Adresse zum
Zeitpunkt der Ausnahmeanforderung der nativen Befehlsfolge berechnen.
Search WWH ::




Custom Search