Jazelle är en familj av teknologier utvecklade och marknadsförda av ARM för hårdvaruacceleration av Java -applikationer . Jazelle är designad för ARMv5TEJ [1] -arkitekturen och den första processorn som använde Jazelle-teknologi var ARM926EJ-S [2] . Tillgängligheten av Jazelle-teknik i processornamnet indikeras med bokstaven 'J', förutom för modeller där denna teknik är en integrerad del av arkitekturen.
För närvarande på marknaden finns det en variant av Jazelle DBX (förkortat från engelska Direct Bytecode eXecution - direct bytecode execution). Huvudelementet i denna teknik är en speciell coprocessor inbyggd i standard ARM9 mikroprocessorarkitekturen . Medprocessorn omvandlar Java-bytekoden i hårdvaran till lämplig sekvens av instruktioner från huvudprocessorn, som omedelbart exekverar dem. Således ersätts mjukvarutolkningen av bytekoder av en hårdvara, vilket leder till en betydande acceleration av bearbetningen av bytekoder, och, som ett resultat, till accelerationen av exekveringen av program i Java. Med andra ord utför Jazelle DBX hårdvarukonvertering av bytekoder till instruktioner från huvudprocessorn i farten. Därav namnet DBX - "dynamisk exekvering".
I juni 2005 tillkännagav ARM en ny generation av teknologi som heter Jazelle RCT (förkortat från engelska Runtime Compiler Target - stöd för dynamiska kompilatorer). Jazelle RCT introducerar en extra instruktionsuppsättning till standard ARM- processorarkitekturen . De nya kommandona är speciellt designade för optimal exekvering av Java -bytekod. Således kan en enkel kompilator snabbt konvertera bytekoden till instruktioner för huvudprocessorn, samtidigt som den effektivt använder nya typer av instruktioner. I de flesta fall kommer varje bytekod att motsvara en enda 16-bitars instruktion från den nya uppsättningen. Som ett resultat kommer den genererade koden att ha nästan samma storlek som den ursprungliga bytekoden, men kommer att exekveras i hårdvara och därför mycket snabbare.
Först och främst kan utvecklare av så kallade dynamiska kompilatorer ( Just-In-Time Compilers ) dra nytta av funktionerna i RCT-tekniken, eftersom omvandlingen av bytekod till RCT-instruktionsuppsättningen kan utföras mycket snabbt, och den resulterande koden kommer att inte kräver onödigt stort lagringsminne. RCT-instruktionsuppsättningen är inte strikt knuten till Java-språket och kan användas för att kompilera bytekoder för andra tolkade språk som Perl , Python och språk som stöds av Microsofts .NET - teknik .
Jazelle-tillägget använder en binär översättning på låg nivå implementerad som ett extra steg mellan hämtnings- och avkodningssteget i processorns pipeline-instruktioner. Den igenkända bytekoden konverteras till en sträng från en eller flera inbyggda ARM-instruktioner.