Java виконуватися прямо в архітектурі ARM в якості третіх стану виконання (і набору команд) поряд зі звичайними командами ARM і режимом Thumb. Підтримка технології Jazelle позначається буквою «J» у назві процесора - наприклад, ARMv5TEJ. Дана технологія підтримується починаючи з архітектури ARMv6.
Опції RISC:
Архітектура ARM володіє наступними особливостями RISC:
· Архітектура завантаження/зберігання
· Немає підтримки нелінійного (Не вирівняного за словами) доступу до пам'яті (тепер підтримується в процесорах ARMv6 за деякими винятками)
· Рівномірний 16х32-бітний регістровий файл
· Фіксована довжина команд (32 біта) для спрощення декодування за рахунок зниження щільності коду. Пізніше режим Thumb підвищив щільність коду.
· Одноцікловое виконання
Особливості дизайну:
· Арифметичні інструкції замінюють умовні коди тільки коли це необхідно
· 32-бітове многорегістровое циклічне сдвиговое пристрій, який може бути використано без втрат продуктивності в більшості арифметичних інструкцій і адресних розрахунків.
· Потужні індексовані адресні режими
· Регістр посилань для швидкого виклику функцій листя
· Прості, але швидкі, з двома рівнями пріоритетів підсистеми переривань з включеними банками регістрів.
Умовне виконання:
Одним з істотних відмінностей архітектури ARM від інших архітектур ЦПУ є так звана предикация - можливість умовного виконання команд. Під «умовним виконанням» тут розуміється те, що команда буде виконана або проігнорована залежно від поточного стану прапорів стану процесора.
У той час як для інших архітектур такою властивістю, як правило, володіють тільки команди умовних переходів, в архітектуру ARM була закладена можливість умовного виконання практично будь-якої команди. Це було досягнуто додаванням в коди їх інструкцій особливого 4-бітового поля (предиката). Одне з його значень зарезервовано на те, що інструкція повинна бути виконана безумовно, а решта кодують те чи інше поєднання умов (прапорів). З одного боку, з урахуванням обмеженості загальної довжини інструкції, це скоротило число біт, доступних для кодування зміщення в командах звернення до пам'яті, але з іншого - дозволило позбавлятися від інструкцій розгалуження при генерації коду для невеликих if-блоків.
Інші особливості:
Інша особливість набору команд це можливість з'єднувати зрушення і обертання в інструкції «обробки інформації» (арифметичну, логічну, рух регістр-регістр). Це призводить до того, що типові програми ARM стають щільніше, ніж зазвичай, з меншим доступом до пам'яті. Таким чином, конвеєр використовується набагато більш ефективно. Навіть незважаючи на те, що ARM працює на швидкостях, які багато хто б визнали низькими, він досить-таки легко конкурує з багатьма більш складними архітектурами ЦПУ. ARM процесор також має деякі особливості, що рідко зустрічаються в інших архітектурах RISC - такі, як адресація щодо лічильника програм (насправді лічильник команд ARM є одним з 16 регістрів), а також пре- і пост-інкрементні режими адресації. Інша особливість, яку варто відзначити, це те, що деякі ранні ARM процесори (до ARM7TDMI), наприклад, не мають команд для зберігання 2-байтних чисел.
Конвеєр та інші аспекти реалізації:
ARM7 і більш ранні версії мають триступеневий конвеєр. Це ступені переносу, декодування і виконання. Більш продуктивні архітектури, типу ARM9, мають більш складні конвеєри.
VFP:
Технологія VFP - розширення співпроцесора в архітектурі ARM. Вона виробляє низьковитратні обчислення над числами з плаваючою комою одинарної/подвійної точності. VFP робить обчислення з плаваючою комою, підходящі для широкого спектру додатків - наприклад, для КПК, смартфонів, стиснення звуку, тривимірної графіки і цифрового звуку, а також принтерів і телеприставок. Архітектура VFP також підтримує виконання коротких векторних команд.
Розширення безпеки:
Розширення безпеки, що позиціонуються як TrustZone Technology, знаходяться в ARMv6KZ та інших, більш пізніх, профільованих на додатках архітектурах. Воно забезпечує низкозатратную альтернативу додаванню спеціального ядра безпеки, забезпечуючи 2 віртуальних процесора, підтримуваних апаратним контролем доступу. Це дозволяє ядру додатки перемикатися між двома станами, званими «світи» (щоб уникнути плутанини з назвами можливих доменів), щоб не допустити просочування інформації з більш важ...