Hardware/Embedded Java - Java Virtual Machine Seminar

Werbung
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
Herunterladen