Information Technology Reference
In-Depth Information
wicklung von Hardware und Software spricht man deshalb auch vom sog. Hard-
ware-Software-Codesign.
Die Anpassung der Hardware an die Anforderungen der Laufzeitumgebung ist nicht
zwingend erforderlich. Tatsächlich lassen sich beliebige reale Prozessorarchitektu-
ren einsetzen, um virtuelle Programmiermodelle in Software zu implementieren.
Dabei steht jedoch eine andere Zielsetzungen im Vordergrund: Während man beim
Hardware-Software-Codesign vor allem geringe Kosten und Kompatibilität
anstrebt, ist es bei den vom zugrunde liegenden realen Prozessor unabhängigen
Laufzeitumgebungen, den sog. virtuellen Prozessoren (auch virtuelle Maschine , vir-
tual machine ), die Plattformunabhängigkeit. Selbstverständlich sind die Prinzipien
für die Programmierung der Laufzeitumgebung in beiden Fällen vergleichbar.
Wegen der Unabhängigkeit von der Hardware werden die Grundlagen dieses Kapi-
tels im Folgenden zunächst anhand der virtuellen Prozessoren beschrieben. Der sich
anschließende Abschnitt 4.2 beschäftigt sich mit einer der wichtigsten Techniken
zur Realisierung von Prozessoren im Hardware-Software-Codesign: der dynami-
schen Binärübersetzung (dynamic binary translation). Nach einer Beschreibung, der
sich hinter diesem Begriff verbergenden Prinzipien, wird zum Abschluss des Kapi-
tels die sog. Prozessorabstraktionsschicht (processor abstraction layer) diskutiert.
4.1 Grundlagen virtueller Prozessoren
Im Folgenden werden die Prinzipien der Implementierung virtueller Prozessoren
einführend erläutert. Abschnitt 4.1.1 beschreibt zunächst die Arbeitsweise sog.
Interpreter. Der sich daran anschließende Abschnitt 4.1.2 diskutiert eine hier als
Laufzeittransformation bezeichnete Technik, mit der sich bei geringem Ressourcen-
bedarf hohe Ausführungsgeschwindigkeiten erreichen lassen. Insbesondere wird mit
Gironimo ein an der TU Berlin entwickelter, die Laufzeittransformation nutzender
virtueller Prozessor vorgestellt. Abschnitt 4.1.3 erläutert die Arbeitsweise der sog.
Laufzeitübersetzung (just in time compiling), mit der sich ebenfalls hohe, von der
virtuellen Prozessorarchitektur unabhängige Ausführungsgeschwindigkeiten errei-
chen lassen. Zum Abschluss wird in Abschnitt 4.1.4 ein Kriterienkatalog für die
Bewertung virtueller Prozessoren eingeführt. Er eignet sich insbesondere als Grund-
lage zur Entwicklung neuer leistungsfähiger virtueller Prozessoren.
4.1.1 Interpretation
Virtuelle Prozessoren lassen sich am einfachsten als Interpreter verwirklichen.
Dabei werden Befehle in derselben Weise bearbeitet, wie dies auch in realen Prozes-
soren üblich ist. Bild 4.1 enthält hierzu ein einfaches Beispiel: Der in Abschnitt
2.1.2 beschriebene sequentiell arbeitende Prozessor auf der linken Bildseite wird
durch das rechts aufgelistete Programm in seinem Verhalten exakt nachgebildet.
Dabei sind Bereiche einheitlich grau unterlegt, die jeweils dieselbe Funktionalität
aufweisen.
Search WWH ::




Custom Search