Jazelle bei ARM Prozessoren

Persönliche Seite #1667699
Lesenswert?

seennoob schrieb:
> Ich hab neulich mal was von "Jazelle" bei den ARM cortex A
> Prozessoren gelesen, diese soll ja direkt eine JVM sein ?
> Wisst ihr da mehr zu diesem Thema ?

Ja. Jazelle ist keine JVM, sondern ein Befehlsdecoder in der ARM
Pipeline, der eine Untermenge der Java Bytecodes direkt (daher
schneller) verarbeiten kann. Nicht unterstützte Bytecodes werden per
Exception zur Emulation an die JVM weitergereicht. Nachteil ist, dass
die Jazelle Dokumentation vor allem wegen der etwas vertrackten
Lizenzsituation mit Sun nicht frei erhältlich ist. Man kann also nicht
so einfach eine eigene JVM mit Jazelle implementieren. Typischerweise
wird man eine sogenannte EJVM eines Kommerziellen Anbieters (der sich
den ganzen Stress schon mal gemacht hat) lizensieren.

Jazelle ist übrigens nicht erst im Cortex-A, sondern bereits im recht
weitverbreiteten ARM926EJ-S implementiert worden.

Jazelle(-DBX) ist nicht zwingend in Cortex-A Prozessoren
implementiert, bzw. es gibt eine Trivialimplementierung, die bei jedem
Bytecode zwecks Emulation eine Exception wirft.

Neu in den Cortex-A Prozessoren (ARMv7-A) ist eine (entfernte)
Variante von Jazelle-DBX, die man Jazelle-RCT getauft hat. Hier
handelt es sich um eine Erweiterung des Thumb-2 Befehlssatzes
(Thumb2-EE), die sich weniger an die Ausführung statischen Codes
richtet, sondern an JIT-Compiler. Der JIT-Compiler bedient sich der
Thumb2-EE Befehle (und natürlich auch der restlichen), um besonders
effiziente VM Instruktionshandler zu erzeugen, die mehrere native
Maschinenbefehle benötigen. Die Vorteile von Jazelle-RCT sind, dass
man nicht auf Java beschränkt ist, und daher auch die ganze
Lizenzproblematik entfällt.

Gruß
Marcus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren