Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Hardware/Embedded Java Java Virtual Machine Seminar - Sommersemester 2009 Institut für Praktische Informatik - FG Programmiersprachen und Übersetzer 24.06.2009 Hardware/Embedded Java 0/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 0/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 0/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Java auf Embedded Systemen Vorteile Nachteile • Portabilität • Hoher Speicherbedarf • Sicherheit • Schlechte Performance • Hohe Code-Dichte • Probleme mit • Große Entwicklergemeinde Echtzeitgarantien Hardware/Embedded Java 1/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Beschleunigungen von Java auf Embedded Systemen • JIT Compiling oder DAC • AOT Compiling • Hardware Beschleunigung • Co-Prozessor • Architektur-Erweiterung • Java-Architektur Hardware/Embedded Java 2/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 2/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 2/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM ARM Jazelle Basierend auf der ARM 32-bit RISC Architektur mit 16 Universal-Registern • Thumb und Thumb-2 • Direct Bytecode eXecution (DBX) • Runtime Compilation Target (RCT) Hardware/Embedded Java 3/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM ARM Jazelle Direct Bytecode eXecution • Implementation als Endlicher Automat statt Mikrocode • Die Mehrheit aller Bytecode-Operationen wird in Hardware ausgeführt ( angeblich wird nur 5% der Zeit Emuliert) • Alle Java-Instruktionen können jederzeit Unterbrochen und später wieder aufgenommen werden • Die obersten vier Operandenstack-Elemente liegen in Registern vor • Mit dem BXJ-Befehl wird die Ausführung von Bytecode gestartet • Im Status Register Wird durch das setzen des J-Bits und löschen des T-Bits der Java Modus aktiviert Hardware/Embedded Java 4/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Pipeline Jazelle DBX White Paper, Seite 3 Hardware/Embedded Java 5/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Startzeiten Jazelle DBX White Paper, Seite 4 Hardware/Embedded Java 6/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 6/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Der ATMEL AVR32 Mikrocontroller • 32-bit RISC Mikrocontroller • Optimiert für hohe Code-Dichte und geringe Leistungsaufnahme • 15 Universal-Register • 7-Stufige Pipeline Hardware/Embedded Java 7/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Die Pipeline ATMEL AVR 32-bit Technical Reference Manual, Seite 21 Hardware/Embedded Java 8/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Das Statusregister Das obere Halb-Wort des Status Registers ATMEL AVR 32-bit Technical Reference Manual, Seite 7 Hardware/Embedded Java 9/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Die Systemregister Auszug aus der Tabelle der System Register ATMEL AVR 32-bit Technical Reference Manual, Seite 10 und 11 Hardware/Embedded Java 10/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Das Register File Die Zuweisung der Register zu den Javaspezifischen Funktionen ATMEL AVR32 Java Technical Reference, Seite 10 Hardware/Embedded Java 11/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Der Methodframe Ein Java-Methodframe in der AVR32 JVM ATMEL AVR32 Java Technical Reference, Seite 7 Hardware/Embedded Java 12/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Die AVR32 JVM Der Aufbau der AVR32 Java Virtual Machine ATMEL AVR32 Java Technical Reference, Seite 3 Hardware/Embedded Java 13/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM AVR32 Java Extension Module • Einfache Bytecode Anweisungen werden in Hardware ausgeführt • Nicht in Hardware realisierte Funktionalitäten werden mit Traps abgefangen und dann in Software ausgeführt • • • • • Methodenaufrufe und Objekthandling Stackover- und -underflow-Handling Gleitkomma- und Long-Operationen iinc nur wenn der Index der lokalen Variable >= 8 ist Exceptions • Die RETJ Anweisung kehrt in den Java Modus zurück und setzt das Java-Bit im Statusregister Hardware/Embedded Java 14/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Traps • J Bit wird gelöscht, R-Bit gesetzt • Byte 2 vom JECR ist der Bytecode • Wenn die Operanden auch je ein Byte lang sind stehen sie in Byte 0 und 1 des JECR • Der Wert im JTBA-Register wird mit dem Trap-spezifischen Offset verodert • Die Trap-Offsets werden immer um 128 inkrementiert • Der höchste Offset ist 2944 (0xB80), der Wert im JTBA-Register sollte nicht kollidieren Hardware/Embedded Java 15/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Beispiel Ausführung eines Java-Programms ATMEL AVR32 Java Technical Reference, Seite 5 Hardware/Embedded Java 16/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Beispiel Hardware/Embedded Java 16/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Beispiel Hardware/Embedded Java 16/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Garbage Collection • Zur Unterstützung der Garbage Collection werden Objekte und Arrays über Handles angesprochen, wenn das Handle Bit im Statusregister gesetzt ist • Die ersten und letzten zwei Bits werden vom Speicherzugriff ignoriert und können vom GC zur Markierung genutzt werden ATMEL AVR32 Java Technical Reference, Seite 13 Hardware/Embedded Java 17/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Write Barrier Dient ebenfalls der Unterstützung inkrementellem Markieren bei der Garbage Collection • Start-Adresse des überprüften Speicherbereichs im Java Barrier Control Register (JBCR) • Nur aktiv wenn das Handle Bit im Zustandsregister gesetzt ist • Speichern von Referenzen an Adressen > JBCR lösen Trap aus Hardware/Embedded Java 18/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Memory-Constrained Copying (MC2 ) Garbage Collector • Geringer Speicher-Overhead • Guter Durchsatz • Kurze Pausen Hardware/Embedded Java 19/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Methoden des MC2 Garbage Collectors Diesr GC Algorithmus bedient sich bekannter Mittel: • 2 Generationen (Nursery und Old Generation) • Windows • Dreifarbige Markierung Hardware/Embedded Java 20/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Probleme bei inkrementeller Markierung • Die Objekte A und B werden markiert Hardware/Embedded Java 21/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Probleme bei inkrementeller Markierung • Die Objekte A und B werden markiert • Die Referenzen werden verändert Hardware/Embedded Java 21/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Probleme bei inkrementeller Markierung • Die Objekte A und B werden markiert • Die Referenzen werden verändert • Die Markierung ist abgeschlossen Hardware/Embedded Java 21/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Probleme bei inkrementeller Markierung • Die Objekte A und B werden markiert • Die Referenzen werden verändert • Die Markierung ist abgeschlossen • D ist erreichbar aber nicht markiert Hardware/Embedded Java 21/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM MC2 und die Write Barrier Vermeidung unmarkierter erreichbarer Objekte • Old Generation ist über der Write barrier • Referenzmanipulationen an Adresse > Write Barrier werden abgefangen und entweder Das Ziel ist in der Nursery und wird als lebendig vorgemerkt, oder Das Ziel ist in der Old Generation und wird als verändert vorgemerkt und beim nächsten Markieren als erstes behandelt Hardware/Embedded Java 22/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Full Collection Hardware/Embedded Java 23/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Full Collection Hardware/Embedded Java 23/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Full Collection Hardware/Embedded Java 23/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Full Collection Hardware/Embedded Java 23/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Weitere Performance Verbesserungen • Kopieren in der Old Generation wird während Nursery Collections durchgeführt • Die Windows in der Old Generation sind nach Potenzen von 2 ausgerichtet • Wenn die Remembered Sets zu groß werden, werden sie in Card Tables umgewandelt Hardware/Embedded Java 24/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Card Tables Hardware/Embedded Java 25/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Card Tables Hardware/Embedded Java 25/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Card Tables Hardware/Embedded Java 25/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Card Tables Hardware/Embedded Java 25/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Performance Messungen Hardware/Embedded Java 26/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung ARM Jazelle AVR32 JEM Performance Messungen Hardware/Embedded Java 26/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 26/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 26/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Eine Java Hardware für Multimedia Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications (1999) • Entwickelt am Labor für Informationstechnologie an der Universität Hannover • Basierend auf einer RISC Architektur • Optimiert für multimedia Anwedungen • leicht parallelisierbar Hardware/Embedded Java 27/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Befehlsdecodierung (1) Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications, Seite 35 Hardware/Embedded Java 28/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Befehlsdecodierung (2) Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications, Seite 38 Hardware/Embedded Java 29/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Die Pipeline Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications, Seite 35 Hardware/Embedded Java 30/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Parallelisierung Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications, Seite 40 Hardware/Embedded Java 31/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 31/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Multimedia Java-Hardware aj-100 Der ajile aj-100 Ein kommerzielles Produkt mit starken Ähnlichkeiten zur vorherigen Architektur • Native Java-Bytecode Ausführung • Hardware-Gleitkommaberechnung • Unterstützt die RTSJ • Parallelisert Hardware/Embedded Java 32/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Übersicht 1 Warum Java Hardware? 2 Architekturerweiterungen Die ARM Jazelle Erweiterung Das AVR32 Java Extension Module 3 Java-Architektur Multimedia Java-Hardware aj-100 4 Zusammenfassung Hardware/Embedded Java 32/ 33 Warum Java Hardware? Architekturerweiterungen Java-Architektur Zusammenfassung Zusammenfassung • Im Kommerziellen Bereich Hauptsächlich Erweiterungen bestehender Architekturen • Java Hardware Implementationen sind im embedded Bereich performanter als reine Softwarelösungen • Garbage Collection erfordert immer hohen Softwareaufwand Hardware/Embedded Java 33/ 33