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

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

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

Добавлен: 25.12.2021

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

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

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

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

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

дов (обычно

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

двухадресный

 команды

 2.41). Естественно, что в этом случае соот-

ветствующий операнд после выполнения операции теряется.

Рис.

 Двухадресный формат команды

Команду можно еще более сократить, перейдя к

 формату

(рис. 2.42), что возможно при выделении определенного стандартного места для
хранения первого операнда и

 Обычно для этой цели используется спе-

циальный регистр центрального процессора (ЦП), известный под названием

 ак-

кумулятора,

 поскольку здесь аккумулируется результат.

Рис. 2.42.

 Одноадресный формат команды

Применение единственного регистра для хранения одного из операндов и ре-

зультата является ограничивающим фактором, поэтому помимо аккумулятора ча-
сто используют и другие регистры ЦП. Так как число регистров в ЦП невелико,
для указания одного из них в

 достаточно иметь сравнительно короткое

адресное поле. Соответствующий формат носит название

 полутораадресного

 или

регистрового формата

 (рис. 2.43).

Рис. 2.43.

 Полутораадресный формат команды

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

а также в случае команд, не требующих операнда, можно получить

 нульадресный

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

 (рис. 2.44).


background image

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

В таком варианте адресная часть команды вообще отсутствует или не задей-

ствуется.

Выбор адресности команд

При выборе количества адресов в адресной части команды обычно руководству-

ются следующими

• емкостью запоминающего устройства, требуемой для хранения программы;
• временем выполнения программы;
• эффективностью использования ячеек памяти при хранении программы.

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

пользуемся методикой и выводами, изложенными в [25].

Адресность и емкость запоминающего устройства

Емкость запоминающего устройства для хранения программы

 можно оценить

из соотношения

где

 -

 количество программ в программе;

 — разрядность команды, опреде-

ляемая в соответствии с формулой (2.1);

 А —

 индекс, указывающий адресность

команд программы. С этих позиций оптимальная адресность команды определя-

ется путем решения уравнения

 дЕ

А

 /дA=0

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

печивает минимум

 В [29] показано, что в среднем

 монотонно возрастает

с увеличением

 А.

 Таким образом,

 при выборе количества адресов по критерию

кость

 ЗУ»

 предпочтение следует отдавать одноадресным командам.

Адресность и время выполнения программы

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

ции и времени обращения к памяти.

Для трехадресной команды последнее суммируется из четырех составляющих

времени:
• выборки команды;
• выборки первого операнда;
• выборки второго операнда;
• записи в память результата.

Одноадресная команда требует двух обращений к памяти:

• выборки команды;
• выборки операнда.

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

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


background image

Подставляя в (2.8) значения

 А

 = 1 и

 А

 3, можно

 разность времен

дельта Т

 еализации алгоритма с помощью одноадресных и трехадресных команд, при-

нимая во внимание, что для трехадресных

  = 0 :

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

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

В самой общей постановке задачи время выполнения алгоритма

 можно оп-

ределить выражением

в котором

 —

 количество арифметических и логических команд в

тета

 -

 время выполнения

 арифметической или логической команды;

количество неарифметических команд; тета На — время выполнения одной неари

 команды;

 А

 {1, 2, 3} — индекс, определяющий количество

команде. В свою очередь,

 можно определить как

 N

П

 =

 +

 где

 —

 кол

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

 —

 количество вспомогательных команд пересылок данных в

сумматора и из него.

команды

 из времени выборки команды из памяти

трачиваемое на одно обращение к памяти) и времени считывания/записи данных

 В случае арифметической команды следует учесть также вклад на исполнение

арифметической операции

 Таким образом, имеем:

время, за-

так и неарифметической

Время выполнения как арифметической

и выражение (2.5) принимает вид:

Теперь проанализируем

 той или иной адресности команды в за-

висимости

 типа целевого алгоритма. Возможные типы алгоритмов условно раз-

делим на три группы:

• последовательные;
• параллельные;
• комбинированные.

Для последовательного алгоритма результат предшествующей команды исполь-

зуется в последующей. Здесь

 =2, так как требуется всего одна команда пред-

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


background image

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

и затратами времени

 Т

 на доступ к адресуемым данным. Затраты оборудования

определяются суммой

где

 — затраты аппаратных средств, обеспечивающих вычисление исполнитель-

ных адресов;

 — затраты памяти на хранение адресных кодов команд. Обычно

 »

 поэтому при оценке затрат оборудования ограничиваются учетом ве-

личины

 Затраты времени

 Т

 определяются суммой времени

 формирова-

ния исполнительного адреса и

 выборки или записи операнда:

Т

 +

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

страненные из которых рассматриваются ниже.

Непосредственная адресация

При

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

 (НА) в

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

содержится непосредственно сам операнд (рис. 2.45). Этот способ может приме-
няться при выполнении арифметических операций, операций сравнения, а также

для загрузки констант в

Рис. 2.45. Непосредственная адресация

Когда операндом является число, оно обычно представляется в дополнитель-

ном коде. При записи в регистр, имеющий разрядность, превышающую длину не-
посредственного операнда, операнд размещается в младшей части регистра, а ос-

тавшиеся свободными позиции заполняются значением знакового бита операнда.

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

одним недостатком данного способа адресации является то, что размер непосред-
ственного операнда ограничен длиной адресного поля команды, которое в
шинстве случаев меньше длины машинного слова. В [120]

 данные

о типичной длине непосредственного операнда для программ GCC, Spice и ТеХ,
выполнявшихся на вычислительной машине DEC VAX (рис. 2.46).

В 50-60% команд с непосредственной адресацией длина операнда не

ет 8 бит, а в 75-80% — 16 бит. Таким образом, в подавляющем числе случаев шест-
надцати разрядов вполне достаточно, хотя для вычисления адресов могут потре-
боваться и более длинные константы.

Рисунок 2.47 дает представление о распространенности непосредственной ад-

ресации в командах различных типов. На верхней диаграмме показана статистика

для программ GCC, Spice  ТеХ. Нижняя диаграмма иллюстрирует

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

ет 35% для целочисленных вычислений и 10% — в программах, ориентированных
на обработку чисел с плавающей запятой.


background image

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