Условное восполнение
Одним из существенных отличий архитектуры ARM от архитектуры IA-32/64 является так называемая предикация - возможность условного выполнения команд. Под "условным выполнением" здесь понимается то, что команда будет выполнена или проигнорирована в зависимости от текущего состояния признаков (флагов) состояния процессора.
В то время как для других архитектур таким свойством, как правило, обладают только команды условных переходов, в архитектуру ARM была заложена возможность условного выполнения практически любой команды. Это было достигнуто добавлением в структуру команд особого 4-разрядного поля (предиката). Одно из его значений определяет, что команда должна быть выполнена безусловно, а остальные кодируют то или иное сочетание условий (флагов). С одной стороны, с учётом ограниченности общей длины команды, это сократило число разрядов, доступных для кодирования смещения в командах обращения к оперативной памяти, но с другой - позволило избавляться от команд ветвления при генерации программы для небольших if-блоков.
Если необходимо уплотнить программы, так чтобы они занимали меньше оперативной памяти, то поле 4-разрядного предикатаудаляется (не используется) из всех команд, кроме ветвлений.
Дата добавления: 2015-09-29; просмотров: 718;