Information Technology Reference
In-Depth Information
Zunächst werden die virtuellen Befehle hierbei wie gewohnt interpretiert und ein
Profil des Laufzeitverhaltens angefertigt. Erkennt der Interpreter eine virtuelle
Befehlsfolge als übersetzenswert, wird sie ohne aufwendige Optimierungen für
einen niedrigen sog. Ausführungsmodus ( execution mode ) binärübersetzt, wobei in
die reale VLIW-Befehlsfolge Operationen zur Fortführung des Laufzeitprofils, ohne
den Interpreter aufrufen zu müssen, eingebettet werden.
Stellt sich im weiteren Verlauf der Programmbearbeitung durch Auswertung der
Profildaten heraus, dass es von Vorteil wäre, den separierten Programmpfad zu opti-
mieren, wird der Binärübersetzer erneut gestartet und von diesem eine überarbeitete
reale VLIW-Befehlsfolge nun für einen höheren Ausführungsmodus erzeugt. Dieser
Vorgang lässt sich wiederholen, bis schließlich eine maximal optimierte reale
VLIW-Befehlsfolge vorliegt. Ob die Ausführungsmodi dabei immer sequentiell
durchlaufen werden müssen oder ob auch „Quereinstiege“ möglich sind, ist abhän-
gig von der Implementierung. Im Prinzip lässt sich ein Ausführungsmodus nämlich
z.B. mit Hilfe von Heuristiken bereits zum Zeitpunkt der binären Erstübersetzung
festgelegen.
4.2.5 Binden (linking)
Nach einer ggf. auch optimierten Binärübersetzung wird ein separierter virtueller
Programmpfad mit einer ähnlich hohen Geschwindigkeit ausgeführt, wie er nativ
durch einen dynamisch operationsparallel arbeitenden Prozessor verarbeitet würde.
Allerdings gilt dies nur, solange der separierte Programmpfad nicht verlassen und
die Laufzeitumgebung reaktiviert wird, was nach den bisherigen Ausführungen auch
dann erforderlich ist, wenn die als nächstes auszuführende virtuelle Befehlsfolge
bereits binärübersetzt vorliegt.
Falls z.B. der in Bild 4.11 hervorgehoben dargestellte bedingte Sprungbefehl bhi
verzweigt (mit a markiert), wird mit der an der Sprungmarke V2 codierten stop-
Operation die Laufzeitumgebung aufgerufen und von diesem der Trace-Cache nach
dem virtuellen Sprungziel L3 durchsucht (b). Da ein entsprechender Eintrag exis-
tiert, kommt es schließlich zum Aufruf der binärübersetzten realen VLIW-Befehls-
folge V4 (c). Der hier angedeutete Umweg über die Laufzeitumgebung ist leicht
dadurch vermeidbar, dass sich die bereits binärübersetzten separierten Programm-
pfade direkt, wie z.B. durch den mit d markierten Sprungbefehl im Bild 4.11 ange-
deutet, gegenseitig aufrufen. Dieses sog. Binden kann nach [12] die Ausführungsge-
schwindigkeit eines virtuellen Programms um bis zu einer Größenordnung steigern.
Direktes Binden
Die Vorgehensweise ist davon abhängig, ob der separierte virtuelle Programmpfad
zu einer bereits binärübersetzten oder zu einer bisher noch nicht binärübersetzten
Sprungmarke verzweigt. Ersteres bedeutet nämlich, dass sich bei der Binärüberset-
zung die jeweilige virtuelle Sprungadresse mit Hilfe des Trace-Caches in eine reale
Sprungadresse umwandeln und statt der stop-Operation direkt eine unbedingte
Search WWH ::




Custom Search