Codesigned Virtual Machines Seminar Virtualisierung Philipp Kirchhofer philipp.kirchhofer@student.kit.edu Institut für Technische Informatik Lehrstuhl für Rechnerarchitektur Universität Karlsruhe (TH) 13. Juli 2009 Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 1 / 23
Gliederung 1 Einführung Codesign, Virtuelle Maschine Gründe für Codesigned Virtual Machines 2 Technische Implementierung Virtual Machine Monitor Register Abbildung Speicher Abbildung Übersetzungscache Checkpointing 3 Praxisbeispiele Transmeta Crusoe/Efficeon Entstehungsgeschichte Code Morphing Software Transmeta Interna MegaProto/E Cluster IBM System i 4 Ausblick Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 2 / 23
Codesign & Virtuelle Maschine Einführung Hardware/Software Codesign: Gleichzeitiger Entwurf von Hardware und Software Hohe Flexibilität Hoher personeller und planerischer Aufwand In Verbindung mit einer Virtuellen Maschine: Unterstützung alter Befehlssatzarchitekturen (Investitionsschutz) Erhöhung der Freiheitsgrade beim Design Verknüpfung Codesigned Virtual Machine Codesign + Virtuelle Maschine Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 3 / 23
Gründe für Codesigned Virtual Machines Hohe Flexibilität Verbesserte Performance Einfaches Hardware-Design Energieeffizienz Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 4 / 23
Gliederung 1 Einführung Codesign, Virtuelle Maschine Gründe für Codesigned Virtual Machines 2 Technische Implementierung Virtual Machine Monitor Register Abbildung Speicher Abbildung Übersetzungscache Checkpointing 3 Praxisbeispiele Transmeta Crusoe/Efficeon Entstehungsgeschichte Code Morphing Software Transmeta Interna MegaProto/E Cluster IBM System i 4 Ausblick Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 5 / 23
Virtual Machine Monitor Zentrale Funktionen der Codesigned Virtual Machine Umwandlung von Instruktionen (Gast ISA Host ISA) Behandlung von Ausnahmen und Unterbrechungen Anwendungsprogramme Betriebssystem Gast ISA VMM Übersetzer Cache Host ISA Virtual Machine Monitor in der Host ISA codiert läuft direkt auf der Hardware Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 6 / 23
Virtual Machine Monitor Register Abbildung Abbildung Register Gast ISA Register Host ISA Mehr Host ISA Register vorhanden als für die Ausführung des Gast ISA Codes benötigt Weitere Verwendung: Optimierung der Ausführung des Gast Codes Schattenregister VM Verwaltung Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 7 / 23
Virtual Machine Monitor Speicher Abbildung Aufteilung des realen Systemspeichers in disjunkte Teile: Reservierter Speicher: Code und Daten der VMM Software Übersetzungscache Verwaltungsinformationen Konventioneller Speicher: Betriebssystem Anwendungen Übersetzungscache Programme oft zeitlich und örtlich lokal: Caching übersetzter Programmteile Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 8 / 23
Checkpointing Situation Bei Codesigned Virtual Machines häufig blockweise Programmabarbeitung Realisierung von Ausnahmesemantiken Problem Fehlerbehandlung kann erst nach vollständiger Ausführung eines Blockes durchgeführt werden Lösung Checkpointing durch Einsatz von Schattenregistern Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 9 / 23
Checkpointing Kontrollpunkt Kontrollpunkt Übersetzter Code Block A Commit Übersetzter Code Block B Kontrollpunktzustand wieder herstellen (Rollback) Ausnahme Quellcode Instruktionsweises Interpretieren Keine Ausnahme (Commit) Kontrollpunkt Übersetzter Code Block C Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 10 / 23
Gliederung 1 Einführung Codesign, Virtuelle Maschine Gründe für Codesigned Virtual Machines 2 Technische Implementierung Virtual Machine Monitor Register Abbildung Speicher Abbildung Übersetzungscache Checkpointing 3 Praxisbeispiele Transmeta Crusoe/Efficeon Entstehungsgeschichte Code Morphing Software Transmeta Interna MegaProto/E Cluster IBM System i 4 Ausblick Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 11 / 23
Transmeta Entstehungsgeschichte Transmeta 1995 in Santa Clara, Kalifornien gegründet CEO David Ditzel (Co-Autor RISC) VLIW Ansatz Entwickelte Prozessorreihen Crusoe und Efficeon Zielsetzung beim Design der Prozessoren Hohe Flexibilität Verbesserte Performance Einfaches Hardware-Design Energieeffizienz Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 12 / 23
Code Morphing Software Code Morphing Software Transmetas Bezeichnung für Virtual Machine Monitor Umsetzung IA-32 VLIW Gast ISA prinzipiell beliebig Entscheidung für IA-32 aufgrund weiter Verbreitung Prototyp PowerPC Änderung durch Austausch von Code Morphing Software möglich Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 13 / 23
Transmeta Interna Zerlegung Zerlegung IA-32 Instruktion Atome Atome 128 Bit VLIW Moleküle Verarbeitung Molekül kann Atome aus verschiedenen IA-32 Instruktionen enthalten Parallele Ausführung aller Atome eines Moleküls Feste Zuordnung Atomposition Funktionseinheit Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 14 / 23
Transmeta Interna Aufbau eines Transmeta Crusoe Moleküls Molekül FPU Integer ALU 128 Bit Memory Load/Store Branch Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 15 / 23
Transmeta Interna Vorteile Einfache Dekodierungs- und Verteilungslogik Keine komplexe Out-of-Order Hardware Performance-Problem Atomplätze nicht vollständig belegt NOPs einfügen Erhebliche Reduktion des Durchsatzes Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 16 / 23
MegaProto/E Cluster Einsatz von Codesigned Virtual Machines Neue Möglichkeiten für den Bau von energieeffizienten Prozessoren Idee Hohe Performance durch Nutzung von Niedrigenergieprozessoren bei hoher Packungsdichte Einordnung Hohe Flexibilität Verbesserte Performance Einfaches Hardware-Design Energieeffizienz Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 17 / 23
MegaProto/E Cluster Cluster Einheit Interna 16 Transmeta Efficeon 1 Transmeta Crusoe Temperatur < 40 C 1,3 bis 3,7 fach schneller als Dual-Xeon bei vergleichbarer Leistungsaufnahme Peak Performance / Power Crusoe TM5800 Efficeon TM8820 Intel Dual-Xeon 124 MFlops / W 666.7 MFlops / W 71,76 MFlops / W Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 18 / 23
IBM System i Einsatz von Codesigned Virtual Machines Hoch abstrahierte Gast ISA IBM System i 1986 entwickelt Midrange-Rechner Architekturunabhängigkeit Einfaches Software Design Einordnung Hohe Flexibilität Verbesserte Performance Einfaches Hardware-Design Energieeffizienz Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 19 / 23
IBM System i IBM System i Architektur Anwendungsprogramme Betriebssystem Übersetzer (VMM) Machine Interface IMPI / PowerPC Hardware Architektur Machine Interface Umfangreicher objektorientierter Befehlssatz Zukunftssicherheit (128 Bit Adressraum) Einstufiges Speichersystem Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 20 / 23
Ausblick Ausblick IBM System i Transmeta Crusoe / Efficeon Komplette Architekturwechsel durchgeführt Kommerziell nicht erfolgreich Technischer Pionier Weitere Produkte im Consumer Bereich nicht absehbar. Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 21 / 23
Vielen Dank für die Aufmerksamkeit! Fragen? Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 22 / 23
Code Morphing Software Interpreter Übersetzungsschwelle überschritten? Nein Nicht gefunden Start Interpretiere x86 Instruktion Nächste Instruktion im Übersetzungscache? Übersetzer Ja Rollback Keine Verkettung Ausnahmefehler Gefunden Übersetze Codeabschnitt und speichere in Übersetzungscache Führe übersetzten Code im Übersetzungscache aus Verkettung Philipp Kirchhofer (UKA/ITEC CA) Codesigned Virtual Machines 13. Juli 2009 23 / 23