Jazelle

Jazelle  este o familie de tehnologii dezvoltate și comercializate de ARM pentru accelerarea hardware a aplicațiilor Java . Jazelle este proiectat pentru arhitectura ARMv5TEJ [1] , iar primul procesor care a folosit tehnologia Jazelle a fost ARM926EJ-S [2] . Disponibilitatea tehnologiei Jazelle în numele procesorului este indicată prin litera „J”, cu excepția modelelor pentru care această tehnologie este o parte integrantă a arhitecturii.

În prezent, pe piață există o variantă a lui Jazelle DBX (prescurtat din engleza  Direct Bytecode eXecution  - direct bytecode execution). Elementul principal al acestei tehnologii este un coprocesor special încorporat în arhitectura standard a microprocesorului ARM9 . Coprocesorul convertește bytecode Java din hardware în secvența corespunzătoare de instrucțiuni de la procesorul principal, care le execută imediat. Astfel, interpretarea software a codurilor de octet este înlocuită cu una hardware, ceea ce duce la o accelerare semnificativă a procesării codurilor de octet, și, ca urmare, la accelerarea execuției programelor în Java. Cu alte cuvinte, Jazelle DBX realizează conversia hardware a codurilor de octet în instrucțiuni ale procesorului principal din mers. De aici și numele DBX - „execuție dinamică”.

În iunie 2005, ARM a anunțat o nouă generație de tehnologie numită Jazelle RCT (abreviat din limba engleză  Runtime Compiler Target  - suport pentru compilatoare dinamice). Jazelle RCT introduce un set de instrucțiuni suplimentar pentru arhitectura standard a procesorului ARM . Noile comenzi sunt concepute special pentru execuția optimă a bytecode Java . Astfel, un simplu compilator poate converti rapid bytecode-ul în instrucțiuni pentru procesorul principal, folosind în același timp noi tipuri de instrucțiuni. În cele mai multe cazuri, fiecare bytecode va corespunde unei singure instrucțiuni de 16 biți din noul set. Ca rezultat, codul generat va avea aproape aceeași dimensiune ca bytecode original, dar va fi executat în hardware și, prin urmare, mult mai rapid.

În primul rând, dezvoltatorii așa-numitelor compilatoare dinamice ( Just-In-Time Compilers ) pot profita de caracteristicile tehnologiei RCT, deoarece conversia bytecode în setul de instrucțiuni RCT poate fi efectuată foarte rapid, iar codul rezultat va nu necesită memorie de stocare inutil de mare. Setul de instrucțiuni RCT nu este strict legat de limbajul Java și poate fi folosit pentru a compila codurile de octet ale altor limbaje interpretate, cum ar fi Perl , Python și limbi acceptate de tehnologia Microsoft .NET .

Implementare

Extensia Jazelle folosește o traducere binară de nivel scăzut implementată ca un pas suplimentar între pasul de preluare și decodificare a instrucțiunilor pipeline ale procesorului. Bytecode recunoscut este convertit într-un șir de la una sau mai multe instrucțiuni ARM native.

Vezi și

Note

  1. Manual de referință pentru arhitectura ARM  (engleză) (PDF)  (link nu este disponibil) . BRAŢ. — Ghid de referință pentru arhitectura ARM. Consultat la 1 iunie 2009. Arhivat din original la 26 ianuarie 2007.
  2. Shanghai Jade License ARM Prime Starter Kit pentru DCP SoC  (engleză)  (link nu este disponibil) . Design & Reuse (12 ianuarie 2004). — Prima mențiune despre licențierea tehnologiei Jazelle. Consultat la 1 iunie 2009. Arhivat din original pe 4 februarie 2012.

Link -uri