ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 5261

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Форматы команд

Рис. 2.55.

 Базовая регистровая адресация с использованием одного из РОН

Распределение значений смещения, оцененное в [120] при выполнении пяти-

тестовых программ пакета SPECInt92 и пяти программ пакета

 показа-

но на рис. 2.56.

Рис. 2.56.

 Распределение размеров смещений при базовой регистровой адресации

Длина смещения

 16 бит лишь в 1% случаев базовой регистровой

адресации, то есть в подавляющем большинстве случаев длина смещения суще-
ственно меньше.

Разрядность смещения

 и, соответственно, затраты оборудования опреде-

ляются из условия

 R

CM

 N

ОП1

 — количество опе-

рандов i-й программы.

Затраты времени составляют:

 Т

БРA

 =

 t

РОН +

t

CЛ +

 t

ЗУ

Индексная адресация

При

 индексной адресации

 (ИА) подполе  содержит адрес ячейки памяти, а ре-

гистр (указанный явно или неявно) — смещение относительно этого адреса. Как
видно, этот способ адресации похож на базовую регистровую адресацию. Поскольку
при индексной адресации в поле  находится полноразрядный адрес ячейки па-

мяти, играющий роль базы, длина этого поля больше, чем при базовой регистро-
вой адресации. Тем не менее вычисление исполнительного адреса операнда про-
изводится идентично (рис.


background image

 Глава 2. Архитектура системы команд

Рис. 2.58.

 Индексная адресация с использованием одного из РОН

Индексная адресация предоставляет удобный механизм для организации ите-

ративных вычислений. Пусть, например, имеется массив чисел, расположенных
в памяти последовательно, начиная с адреса

 N,

 и мы хотим увеличить на единицу

все элементы данного массива. Для этого требуется извлечь каждое число из па-
мяти, прибавить к нему 1 и вернуть обратно, а последовательность исполнитель-
ных адресов будет следующей:

 N, N+

 1,

 N+

 2 и т. д., вплоть до последней ячейки,

занимаемой рассматриваемым массивом. Значение

 N

 берется из подполя

 ко-

манды, а в выбранный регистр, называемый

 индексным регистром,

 сначала зано-

сится 0. После каждой операции содержимое индексного регистра увеличивается
на 1.

Так как это довольно типичный случай, в большинстве

 увеличение или

уменьшение содержимого индексного регистра до или после обращения к нему
осуществляется автоматически как часть машинного цикла. Такой прием называ-
ется

 автоиндексированием.

 Если для индексной адресации используются специ-

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

Автоиндексирование с увеличением содержимого индексного регистра носит на-

звание

 автоинкрементной адресации

 и может быть описано следующим образом:

В первом варианте увеличение содержимого индексного регистра происходит

после формирования исполнительного адреса, и этот способ называется

 постинк-

рементным автоиндексированием.

 Во втором

 сначала производится увели-

чение содержимого индексного регистра, и уже новое значение используется для


background image

Форматы команд

формирования исполнительного адреса. Тогда говорят о

 преинкрементном авто-

индексировании.

Автоиндексирование с уменьшением содержимого индексного регистра носит

название

 автодекрементной адресации

 и может быть описано так:

Здесь также возможны два варианта, отличающиеся последовательностью вы-

полнения операций уменьшения содержимого индексного регистра и вычисления
исполнительного адреса:

 постдекрементное автоиндексирование

 и

 предекремент-

ное автоиндексирование.

Интересным и весьма полезным является еще один вариант индексной адреса-

ции —

 индексная адресация с масштабированием и смещением:

 содержимое индекс-

ного регистра умножается на масштабный коэффициент и суммируется с

 Мас-

штабный коэффициент может принимать значения

 или 8,

 чего в

части команды выделяется дополнительное поле. Описанный способ адресации
реализован, например, в микропроцессорах фирмы Intel.

Следует особо отметить, что система команд многих ВМ предоставляет воз-

можность различным образом сочетать базовую и индексную адресации в каче-
стве дополнительных способов адресации.

Страничная адресация

Страничная адресация

 (СТА) предполагает разбиение адресного пространства на

страницы. Страница определяется своим начальным адресом, выступающим в ка-
честве базы. Старшая часть этого адреса хранится в специальном регистре

 —реги-

стре адреса страницы

 (РАС). В адресном коде команды указывается смещение

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

 к

 содер-

жимому РАС, как показано на рис. 2.59. На рисунке символ || обозначает опера-
цию конкатенации.

Показатели эффективности страничной адресации имеют вид:

где

 М

 — количество страниц в памяти.


background image

 Глава 2. Архитектура системы команд

Блочная

 адресация

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

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

Стековая

 адресация

Данный вид адресации был рассмотрен при описании стековой

 сис-

темы

Распространенность различных видов адресации

Частота использования различных способов адресации существенно зависит от
типа АСК. Для машин со стековой архитектурой очевидно, что основным спосо-
бом адресации является стековая адресация. Для ВМ с аккумуляторной АСК глав-
ные способы адресации — это прямая и непосредственная.

Достаточно ясна и ситуация с RISC-архитектурой. Из самой идеи этого подхода

вытекает, что преимущественный способ адресации здесь — регистровая адресация.

Более сложным является вопрос о частоте использования различных видов

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

 и Spice на вычислитель-

ной машине DEC VAX (рис. 2.60) и на ВМ с микропроцессором класса 80x86

Из диаграмм видно, что в машине VAX из применявшихся способов адресации

доминируют непосредственная, базовая регистровая и косвенная регистровая. Доля

не упомянутых в таблице способов адресации не превышает 2%.

Рис. 2.60. Частота использования методов адресации на программах GCC и Spice (DEC VAX)


background image

Форматы команд

Рис.

 Частота использования методов адресации на программах GCC и Spice (Intel

При выполнении

 и Spice на ВМ с микропроцессорами се-

рии 80x86 наиболее активно используются прямая и базовая регистровая ад-
ресации.

Как видно, сделать однозначный вывод о наибольшей распространенности

какого-либо способа адресации для архитектур с POH достаточно сложно. Един-

ственное общее замечание — интенсивность применения конкретных способов ад-
ресации ощутимо зависит от характера решаемой задачи. Это обстоятельство обя-
зательно должно учитываться пользователями при выборе

 под конкретное

применение.

Способы адресации в командах

управления потоком команд

Основными способами адресации в командах управления потоком команд явля-

ются прямая и относительная.

Для команд безусловного и условного перехода (ветвления) наиболее типична

относительная адресация, когда в адресной части команды указывается смещение
адреса точки перехода относительно текущей команды, то есть смещение относи-
тельно текущего содержимого счетчика команд. Использование данного способа
адресации позволяет программе выполняться в любом месте памяти — програм-
мы становятся перемещаемыми. Среди команд безусловного перехода доля отно-

сительной адресации составляет около 90%.

Для команд перехода чрезвычайно важно, насколько далеко адрес перехода от-

стоит от адреса команды перехода, иными словами, какова типичная величина
смещения. В [120] приведены данные о типовой величине смещения, оцененной
по программам GCC, Spice,

 они представлены на рис. 2.62. Результаты, полу-

ченные на смесях программ с преимущественной обработкой целочисленных и ве-
щественных данных, показаны на нижнем графике того же рисунка.

Как видно, длина смещения в основном не превышает 8 бит, что соответствует

смещению в пределах ±128 относительно команды ветвления. В подавляющем боль-
шинстве случаев переход идет в пределах 3-7 команд относительно команды пе-

рехода.

Рисунок 2.63 дает представление о преимущественном направлении переходов.


Смотрите также файлы