Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 21. Особенности архитектур ARMv7A, ARMv8, ARMv7M.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Условное восполнение

Одним из существенных отличий архитектуры ARM от архитектуры IA-32/64 является так называемая предикация - возможность условного выполнения команд. Под "условным выполнением" здесь понимается то, что команда будет выполнена или проигнорирована в зависимости от текущего состояния признаков (флагов) состояния процессора.

В то время как для других архитектур таким свойством, как правило, обладают только команды условных переходов, в архитектуру ARM была заложена возможность условного выполнения практически любой команды. Это было достигнуто добавлением в структуру команд особого 4-разрядного поля (предиката). Одно из его значений определяет, что команда должна быть выполнена безусловно, а остальные кодируют то или иное сочетание условий (флагов). С одной стороны, с учётом ограниченности общей длины команды, это сократило число разрядов, доступных для кодирования смещения в командах обращения к оперативной памяти, но с другой - позволило избавляться от команд ветвления при генерации программы для небольших if-блоков.

Если необходимо уплотнить программы, так чтобы они занимали меньше оперативной памяти, то поле 4-разрядного предиката удаляется (не используется) из всех команд, кроме ветвлений.

Сопроцессоры

Архитектура предоставляет способ расширения набора команд, используя сопроцессоры. В команде существует 4-х разрядное поле номера сопроцессора.

Каждый сопроцессор имеет свою систему команд, свой набор регистров.

В системах на основе архитектуры ARM периферийные устройства обычно адресуются как ячейки оперативной памяти.

Архитектура Thumb

Для уменьшения размеров программ (увеличения плотности программ) существует система команд Thumb. В процессорах с версией Thumb все команды 16-разрядные, и, соответственно, имеют ограниченные возможности по сравнению с режимом полного набора команд архитектуры ARMv7. Многие команды могут использовать только половину регистров общего назначения, только команды ветвления могут быть условными. Более короткие коды операций позволяют создавать более короткие программы, хотя некоторые операции требуют дополнительных команд. Это важно для тех применений, где ограничена емкость оперативной памяти.

Большинство из этих 16-разрядных команд режима Thumb в процессорах переводятся аппаратно в нормальные команды архитектуры ARM с помощью специального декодера команд режима Thumb.

Архитектура Thumb-2

Для достижения размеров программ как при использовании режима Thumb, так и производительности как при использовании набора команд архитектуры ARM с 32-разрядными регистрами была разработана система команд Thumb-2. Она расширила ограниченный 16-разрядный набор команд Thumb рядом полноценных 32-разрядных команд, включая управление битовым полем, табличное ветвление, условное выполнение.

VFP

Технология VFP (Vector Floating Point, обработка векторов чисел с плавающей точкой)  — это сопроцессор в архитектуре ARM. Он производит вычисления над числами с плавающей точкой одинарной и двойной точности, в соответствии со стандартом IEEE 754.

Архитектура VFP поддерживает выполнение коротких векторных команд. Но, поскольку процессор выполняет операции последовательно над каждым элементом вектора, то VFP нельзя назвать истинным SIMD-набором команд. Этот режим может быть полезен в графике и приложениях обработки сигнала, так как он позволяет уменьшить размер программ.

Технология NEON

NEON  является сопроцессором в процессоре. Обладая независимым конвейерным модулем, собственными 32 64-разрядными и 16 128-разрядными регистрами данных, сопроцессор NEON с легкостью работает с такими задачами, как кодирование и декодирование видео и звука, обработка 2D- и 3D-графики. При этом сопроцессор NEON тесно интегрируется с ARM-ядром, а это значит, что в многоядерной архитектуре число модулей NEON совпадает с числом процессорных ядер.

Сопроцессор NEON полностью реализует функции модулей SIMD и VFP.

Технология Trust Zone

Технология Trust Zone обеспечивает низкозатратную альтернативу добавлению специального ядра безопасности, обеспечивая 2 виртуальных процессора, поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения переключаться между двумя состояниями, называемыми «миры» (во избежание путаницы с названиями возможных доменов), чтобы не допустить утечку информации из более важного «мира» в менее важный «мир». Этот переключатель «миров» обычно ортогонален всем другим возможностям процессора. Таким образом, каждый «мир» может работать независимо от других «миров», используя одно и то же ядро. Память и периферия соответственно изготавливаются с учетом особенностей «мира» ядра, и могут использовать это, чтобы получить контроль доступа к секретам и программам ядра. Типичные приложения TrustZone Technology должны запускать полноценную операционную систему в менее важном «мире», и компактные, специализированные на безопасности, программы в более важном «мире», позволяют намного точнее контролировать использование медиа на устройствах с архитектурой ARM, и предотвращают несанкционированный доступ к устройству.

Технологии виртуализации

Технологии виртуализации обеспечивают поддержку наиболее популярных гипервизоров виртуальных машин при появлении недорогих и энергоэффективных серверных платформ на базе ARM-ядер, которые с легкостью можно использовать при организации «облачных» вычислений. Ну а на потребительском уровне наличие нескольких виртуальных сред позволяет создавать устройства:

работающие с двумя или более операционными системами;

создающие в устройстве пользователя независимо выполняющиеся программные окружения, такие, допустим, как «для работы», «для отдыха». В таких программных окружениях рабочие и домашние данные и задачи пользователя отделены друг от друга.