Jazelle es una familia de tecnologías desarrollada y comercializada por ARM para la aceleración de hardware de aplicaciones Java . Jazelle está diseñado para la arquitectura ARMv5TEJ [1] , y el primer procesador que usó la tecnología Jazelle fue el ARM926EJ-S [2] . La disponibilidad de la tecnología Jazelle en el nombre del procesador se indica con la letra 'J', excepto en los modelos en los que esta tecnología es parte integral de la arquitectura.
Actualmente en el mercado existe una variación de Jazelle DBX (abreviado del inglés Direct Bytecode eXecution - ejecución directa de bytecode). El elemento principal de esta tecnología es un coprocesador especial integrado en la arquitectura estándar del microprocesador ARM9 . El coprocesador convierte el bytecode de Java en el hardware en la secuencia adecuada de instrucciones del procesador principal, que las ejecuta inmediatamente. Así, la interpretación del software de bytecodes es reemplazada por hardware, lo que conduce a una aceleración significativa del procesamiento de bytecodes y, como resultado, a la aceleración de la ejecución de programas en Java. En otras palabras, Jazelle DBX realiza la conversión de hardware de bytecodes en instrucciones del procesador principal sobre la marcha. De ahí el nombre DBX - "ejecución dinámica".
En junio de 2005, ARM anunció una nueva generación de tecnología llamada Jazelle RCT (abreviado del inglés Runtime Compiler Target - soporte para compiladores dinámicos). Jazelle RCT introduce un conjunto de instrucciones adicional a la arquitectura de procesador ARM estándar . Los nuevos comandos están diseñados específicamente para una ejecución óptima del código de bytes de Java . Por lo tanto, un compilador simple puede convertir rápidamente el código de bytes en instrucciones para el procesador principal, mientras usa efectivamente nuevos tipos de instrucciones. En la mayoría de los casos, cada código de byte corresponderá a una única instrucción de 16 bits del nuevo conjunto. Como resultado, el código generado tendrá casi el mismo tamaño que el código de bytes original, pero se ejecutará en hardware y, por lo tanto, mucho más rápido.
En primer lugar, los desarrolladores de los llamados compiladores dinámicos ( Just-In-Time Compilers ) pueden aprovechar las características de la tecnología RCT, ya que la conversión del código de bytes en el conjunto de instrucciones RCT se puede realizar muy rápidamente y el código resultante será no requiere una memoria de almacenamiento innecesariamente grande. El conjunto de instrucciones RCT no está estrictamente ligado al lenguaje Java y puede usarse para compilar los bytecodes de otros lenguajes interpretados como Perl , Python y lenguajes compatibles con la tecnología .NET de Microsoft .
La extensión Jazelle utiliza una traducción binaria de bajo nivel implementada como un paso adicional entre el paso de búsqueda y decodificación de las instrucciones de canalización del procesador. El código de bytes reconocido se convierte en una cadena de una o más instrucciones ARM nativas.