ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5258
Скачиваний: 8
Форматы команд 99
Если по умолчанию взять в качестве адреса результата адрес одного из операн-
дов (обычно
то можно обойтись без третьего адреса, и в итоге получаем
двухадресный
команды
2.41). Естественно, что в этом случае соот-
ветствующий операнд после выполнения операции теряется.
Рис.
Двухадресный формат команды
Команду можно еще более сократить, перейдя к
формату
(рис. 2.42), что возможно при выделении определенного стандартного места для
хранения первого операнда и
Обычно для этой цели используется спе-
циальный регистр центрального процессора (ЦП), известный под названием
ак-
кумулятора,
поскольку здесь аккумулируется результат.
Рис. 2.42.
Одноадресный формат команды
Применение единственного регистра для хранения одного из операндов и ре-
зультата является ограничивающим фактором, поэтому помимо аккумулятора ча-
сто используют и другие регистры ЦП. Так как число регистров в ЦП невелико,
для указания одного из них в
достаточно иметь сравнительно короткое
адресное поле. Соответствующий формат носит название
полутораадресного
или
регистрового формата
(рис. 2.43).
Рис. 2.43.
Полутораадресный формат команды
Наконец, если для обоих операндов указать четко заданное местоположение,
а также в случае команд, не требующих операнда, можно получить
нульадресный
формат команды
(рис. 2.44).
Глава 2. Архитектура системы команд
В таком варианте адресная часть команды вообще отсутствует или не задей-
ствуется.
Выбор адресности команд
При выборе количества адресов в адресной части команды обычно руководству-
ются следующими
• емкостью запоминающего устройства, требуемой для хранения программы;
• временем выполнения программы;
• эффективностью использования ячеек памяти при хранении программы.
Для оценки влияния адресности на каждый из перечисленных элементов вос-
пользуемся методикой и выводами, изложенными в [25].
Адресность и емкость запоминающего устройства
Емкость запоминающего устройства для хранения программы
можно оценить
из соотношения
где
-
количество программ в программе;
— разрядность команды, опреде-
ляемая в соответствии с формулой (2.1);
А —
индекс, указывающий адресность
команд программы. С этих позиций оптимальная адресность команды определя-
ется путем решения уравнения
дЕ
А
/дA=0
при условии, что найденное значение обес-
печивает минимум
В [29] показано, что в среднем
монотонно возрастает
с увеличением
А.
Таким образом,
при выборе количества адресов по критерию
кость
ЗУ»
предпочтение следует отдавать одноадресным командам.
Адресность и время выполнения программы
Время выполнения одной команды складывается из времени выполнения опера-
ции и времени обращения к памяти.
Для трехадресной команды последнее суммируется из четырех составляющих
времени:
• выборки команды;
• выборки первого операнда;
• выборки второго операнда;
• записи в память результата.
Одноадресная команда требует двух обращений к памяти:
• выборки команды;
• выборки операнда.
Как видно, на выполнение одноадресной команды затрачивается меньше вре-
мени, чем на обработку трехадресной команды, однако для реализации одной трех-
адресной команды, как правило, нужно три одноадресных. Этих соображений тем
Подставляя в (2.8) значения
А
= 1 и
А
3, можно
разность времен
дельта Т
еализации алгоритма с помощью одноадресных и трехадресных команд, при-
нимая во внимание, что для трехадресных
= 0 :
Форматы команд
не менее не достаточно, чтобы однозначно отдать предпочтение тому или иному
варианту адресности. Определяющим при выборе является тип алгоритмов, на
преимущественную реализацию которых ориентирована конкретная ВМ.
В самой общей постановке задачи время выполнения алгоритма
можно оп-
ределить выражением
в котором
—
количество арифметических и логических команд в
тета
-
время выполнения
арифметической или логической команды;
количество неарифметических команд; тета На — время выполнения одной неари
команды;
А
{1, 2, 3} — индекс, определяющий количество
команде. В свою очередь,
можно определить как
N
П
=
+
где
—
кол
чество команд передачи управления (их число в программе не зависит от адресн
сти), а
—
количество вспомогательных команд пересылок данных в
сумматора и из него.
команды
из времени выборки команды из памяти
трачиваемое на одно обращение к памяти) и времени считывания/записи данных
В случае арифметической команды следует учесть также вклад на исполнение
арифметической операции
Таким образом, имеем:
время, за-
так и неарифметической
Время выполнения как арифметической
и выражение (2.5) принимает вид:
Теперь проанализируем
той или иной адресности команды в за-
висимости
типа целевого алгоритма. Возможные типы алгоритмов условно раз-
делим на три группы:
• последовательные;
• параллельные;
• комбинированные.
Для последовательного алгоритма результат предшествующей команды исполь-
зуется в последующей. Здесь
=2, так как требуется всего одна команда пред-
варительной засылки числа в сумматор (аккумулятор) в начале вычисления и одна
команда пересылки результата в память в конце вычислений. Если обозначить
количество арифметических и логических команд в последовательном алгоритме
Глава 2. Архитектура системы команд
и затратами времени
Т
на доступ к адресуемым данным. Затраты оборудования
определяются суммой
где
— затраты аппаратных средств, обеспечивающих вычисление исполнитель-
ных адресов;
— затраты памяти на хранение адресных кодов команд. Обычно
»
поэтому при оценке затрат оборудования ограничиваются учетом ве-
личины
Затраты времени
Т
определяются суммой времени
формирова-
ния исполнительного адреса и
выборки или записи операнда:
Т
+
В настоящее время используются различные виды адресации, наиболее распро-
страненные из которых рассматриваются ниже.
Непосредственная адресация
При
непосредственной адресации
(НА) в
поле команды вместо адреса
содержится непосредственно сам операнд (рис. 2.45). Этот способ может приме-
няться при выполнении арифметических операций, операций сравнения, а также
для загрузки констант в
Рис. 2.45. Непосредственная адресация
Когда операндом является число, оно обычно представляется в дополнитель-
ном коде. При записи в регистр, имеющий разрядность, превышающую длину не-
посредственного операнда, операнд размещается в младшей части регистра, а ос-
тавшиеся свободными позиции заполняются значением знакового бита операнда.
Помимо того, что в адресном поле могут быть указаны только константы, еще
одним недостатком данного способа адресации является то, что размер непосред-
ственного операнда ограничен длиной адресного поля команды, которое в
шинстве случаев меньше длины машинного слова. В [120]
данные
о типичной длине непосредственного операнда для программ GCC, Spice и ТеХ,
выполнявшихся на вычислительной машине DEC VAX (рис. 2.46).
В 50-60% команд с непосредственной адресацией длина операнда не
ет 8 бит, а в 75-80% — 16 бит. Таким образом, в подавляющем числе случаев шест-
надцати разрядов вполне достаточно, хотя для вычисления адресов могут потре-
боваться и более длинные константы.
Рисунок 2.47 дает представление о распространенности непосредственной ад-
ресации в командах различных типов. На верхней диаграмме показана статистика
для программ GCC, Spice ТеХ. Нижняя диаграмма иллюстрирует
непосредственной адресации в приложениях с преимущественно целочисленны-
ми и вещественными вычислениями, однако следует иметь в виду, что средний
процент использования непосредственной адресации по всем командам составля-
ет 35% для целочисленных вычислений и 10% — в программах, ориентированных
на обработку чисел с плавающей запятой.