Jazelle
Эта статья нуждается в переработке. |
Jazelle — семейство технологий, разработанных и продвигаемых фирмой ARM, предназначенная для аппаратного ускорения выполнения приложений, написанный на языке Java.
В настоящее время на рынке присутствует разновидность Jazelle DBX (Dynamic Byte-Code eXecution — динамическое выполнение байт-кодов). Основным элементом этой технологии является специальный сопроцессор, встраиваемый в стандартную архитектуру микропроцессоров ARM9. Сопроцессор аппаратно преобразует байт-код Java в соответствующую последовательность команд основного процессора, который немедленно их выполняет. Таким образом программная интерпретация байт-кодов заменяется аппаратной, что приводит к существенному ускорения обработки байт-кодов, и как следствие, ускорению выполнения программ на языке Java. Другими словами, Jazelle DBX производит аппаратное преобразование байт-кодов в команды основного процессора «на лету». Отсюда и название DBX — «динамическое выполнение».
В июне 2005 г. ARM анонсировал новое поколение технологии Jazelle под названием RCT (Run Time Compiler Target — поддержка динамических компиляторов). Jazelle RCT вводит дополнительный набор инструкций в стандартную архитектуру процессоров ARM. Новые команды специально разработаны для оптимального выполнения Java байт-кода. Таким образом простой компилятор может быстро преобразовать байт-код в команды основного процессора, при этом эффективно используя новые типы команд. В большинстве случаев каждому байт-коду будет соответствовать единственная 16-разрядная команда из нового набора. В результате чего, сгенерированный код будет иметь практически тот же размер, что и исходный байт-код, хотя будет выполняться аппаратно основным процессором со значительным ускорением.
Особенностями технологии RCT могут воспользоваться, прежде всего, разработчики так называемых динамических компиляторов (Just In Time Compilers), поскольку преобразование байт-кода в набор команд RCT может быть выполнено очень быстро и результирующий код не будет требовать излишне большой памяти для хранения. Набор команд RCT не привязан жёстко к языку Java и может использоваться для компиляции байт-кодов прочих интерпретируемых языков, таких как Perl, Python, а также языков поддерживаемых технологией .NET фирмы Microsoft.
Согласно ARM, первые образцы микропроцессоров с поддержкой команд RCT появятся не позднее 2007 г.