Information Technology Reference
In-Depth Information
einer nicht real verfügbaren Befehlsfolge wird die Ausführung des virtuellen Pro-
gramms unterbrochen, der Laufzeitübersetzer gestartet, die reale Befehlsfolge gene-
riert und aufgerufen.
Das prinzipiell angedeutete Verfahren ist natürlich auf unterschiedliche Weise reali-
sierbar: So lässt sich die Übersetzung (1.) linear, bis zum jeweils nächsten Sprung-
oder Rücksprungbefehl, (2.) nicht linear, entlang aller Kontrollpfade, bis diese in
Rücksprungbefehlen münden oder (3.) nicht linear, entlang der mit größter Wahr-
scheinlichkeit auszuführenden Kontrollpfade durchführen. Alle Kontrollpfade, die
dabei unberücksichtigt bleiben, werden durch in den Laufzeitübersetzer hinein füh-
rende Sprungbefehle ersetzt. Das leistungsfähigste Verfahren, die Laufzeitüberset-
zung der wahrscheinlichsten Kontrollpfade, wird z.B. in HotSpot von Sun zur Emu-
lation virtueller Programme für die JVM verwendet [178]. Wegen der ausgezeichne-
ten Bedeutung für die im Hardware-Software-Codesign realisierten Prozessoren
wird die als dynamische Binärübersetzung (dynamic binary translation) bezeichnete
Technik in Abschnitt 4.2 detailliert beschrieben.
Bemerkung. Der Syntaxbaum in Bild 4.6b lässt sich aus dem virtuellen Programm leicht durch
Tiefentraversierung generieren, wenn - wie hier der Fall - eine virtuelle 0-Adressarchitektur vor-
liegt (siehe hierzu das Beispiel 1.11 in Abschnitt 1.3.2). Ist der Code für die reale Zielarchitektur
ebenfalls durch einmalige Tiefentraversierung erzeugbar, kann auf den Aufbau eines Syntaxbaums
natürlich auch verzichtet werden. So ist das reale Programm in Bild 4.6c direkt aus dem virtuellen
Programm in Bild 4.6a ableitbar, indem man ähnlich wie bei einer Laufzeittransformation Befehl
für Befehl umsetzt.
Einige virtuelle Befehle lassen sich hierbei sogar einsparen, nämlich dann, wenn eine im realen
Befehl direkt codierbare Konstante oder ein bereits in einem Register befindlicher Operand geladen
wird (siehe die Zeilen 12 und 3 des virtuellen Programms in Bild 4.6a). Im Vergleich zur Laufzeit-
transformation ist die „direkte“ Laufzeitübersetzung jedoch deshalb im Nachteil, weil durch die
einschrittig arbeitende Registerzuteilung das wiederholte unnötige Laden von Operanden, wie in
Bild 4.6c z.B. in Fettschrift hervorgehoben, nicht vermeidbar ist und weil - wie bereits erwähnt -
jeder Sprungbefehl und jede Sprungmarke das Sichern der belegten realen Registerinhalte erforder-
lich macht.
4.1.4 Bewertungskriterien
Im Rahmen der Entwicklung Gironimos (siehe Abschnitt 4.1.2) wurde an der TU
Berlin ein Kriterienkatalog definiert, der eine teils quantitative, teils qualitative
Bewertung virtueller Prozessorarchitekturen ermöglicht. Eine Auswahl der für den
Entwurf und das Verständnis virtueller Prozessoren nützlichen Kriterien ist in Bild
4.7 aufgeführt. Selbstverständlich ist es anhand dieser Kriterien möglich, auch
bestimmte Merkmale virtueller Prozessorarchitekturen zu untersuchen. So lässt sich
z.B. die Effektivität unterschiedlicher Registerorganisationsformen durch Vergleich
der jeweils erreichbaren Emulationsleistungsfähigkeit feststellen. Eine nur auf Tei-
laspekte bezogene Bewertung kann darüber hinaus mit Hilfe der in Bild 4.8 angege-
benen Kriterien durchgeführt werden. - Sowohl die Definitionen in Bild 4.7 als
auch die in Bild 4.8 werden für das Verständnis der noch folgenden Ausführungen
nicht benötigt und können daher übersprungen werden. Wegen der Bedeutung für
Search WWH ::




Custom Search