Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 16. Типы и форматы команд.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
96 Кб
Скачать
☆

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

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

- код операции;

- адреса операндов, над которыми выполняется операция;

- адрес результата операции.

Формат команды определяет ее структуру, то есть:

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

количество и расположение отдель­ных полей команды.

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

Оценивая возможные форматы, нуж­но учитывать следующие факторы:

общее число различных команд;

общую длину команды;

тип полей команды (фиксированной или переменной длины) и их длина;

простоту декодирования;

адресуемость и способы адресации;

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

Длина команды

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

В рам­ках системы команд одной архитектуры могут использоваться разные форматы команд. Обычно это связано с особенностями команд различных типов.

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

В «максимальном» варианте в команде необходимо указать 4 компонента: адрес первого операнда, адрес второго операнда, адрес результата операции и адрес следующей команды. В итоге имеет место четы­рехадресный формат команды (рис. 2).

Код операции

Адрес первого операнда

Адрес

второго операнда

Адрес результата

Адрес следующей команды

Рис. 16.1. Четырехадресный формат команды

В фон-неймановских архитектурах необходимость в четвертом адресе отпадает, поскольку команды располагаются в оперативной памяти в порядке их выполнения, и адрес очередной команды может быть получен простым увеличением адреса текущей коман­ды в счетчике команд. Это позволяет перейти к трехадресному формату команды (рис. 16.2). Требуется только добавить в систему команд архитектуры команды, способные изменять порядок вычислений.

Код операции

Адрес первого операнда

Адрес

второго операнда

Адрес результата

Рис. 16.2. Трехадресный формат команды

К сожалению, и в трехадресном формате длина команды может оказаться весь­ма большой. Так, если адрес ячейки оперативной памяти 32- разрядный, а длина кода операции — 8 разрядов, то длина команды составит 104 разряда (13 байт).

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

Код операции

Адрес первого операнда

Адрес второго операнда и результата

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

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

Код операции

Адрес операнда

Рис. 16.4. Одноадресный формат команды

Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора ча­сто используют и другие регистры процессора. Так как число регистров в процессоре невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата (рис. 16.5).

Код операции

Регистр

Адрес второго операнда

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

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

В современных архитектурах процессоров преобладают два подхода к выбору формата команд, а именно, формат команд переменной длины и формат команд фиксированной длины.

В архитектуре процессоров IA-32/64 был принят формат с переменной длиной команд. Это объяснялось обстоятельствами того времени, когда эта архитектура разрабатывалась. В изменившихся условиях, когда оперативная память (очень дорогостоящий ресурс компьютера во времена разработки архитектуры IA-32/64) существенно подешевела, такой подход стал тормозом при разработке структур процессоров.

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