Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 2

       

ВОЗМОЖНЫЕ СТРУКТУРЫ МАШИННЫХ КОМАНД


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

1. Четырехадресная структура

Такая команда содержит наиболее полную информацию о выполняемой операции (рис. 5.2, а), так как она содержит поле кода операции и четыре адреса для указания ячеек памяти двух операндов, участвующих в операции, ячейки, в которую помещается результат операции, и ячейки, содержащей следующую команду. Такой порядок выборки команд называется принудительным. Он использовался в первых моделях ЭВМ, имеющих небольшое число команд и очень незначительный объем ОП.

Рассмотрим длину такой команды применительно к ЭВМ, имеющей порядка 200 команд и объем памяти порядка 16 Мбайт. В этом случае длина КОП будет:

NКОП = log2200, т.е. 8 разрядов (28

= 256).

Для обеспечения доступа ко всем ячейкам памяти потребуется

.

Таким образом, длина четырехадресной команды составит

.

Полученная длина команды оказывается недопустимо большой, поэтому в современных ЭВМ такая структура команд не используется.

2. Трехадресная структура

Можно построить ЭВМ так, что после выполнения команды по адресу K (команда занимает L ячеек памяти) выполняется команда по адресу K+L. Такой порядок выборки команд называется естественным. Он нарушается только специальными командами передачи управления. При естественном порядке выборки адрес следующей команды формируется в устройстве, называемом счетчик адреса команд. В этом случае команда становится трехадресной (рис. 5.2, б).



3. Двухадресная структура

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

4. Одноадресная структура

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

5. Безадресная структура

Использование безадресных команд (рис. 5.2, д) возможно только при естественном порядке выборки команд и подразумеваемых адресах обоих операндов и результата операции, например при работе со стековой памятью. В этом случае один операнд находится в вершине стека, а второй операнд – в аккумуляторе. Туда же помещается и результат.

Обычно в ЭВМ используется несколько форматов команд разной длины. Кроме того, трехадресные команды в современных универсальных ЭВМ практически не используются, так как являются слишком громоздкими (хотя и самыми удобными с точки зрения программиста). Обычно используются одно- и двухадресные команды и их модификации. Следует отметить, что трехадресные команды используются при работе с памятями небольшого объема. Обычно это массивы внутренней памяти процессора. При выполнении операций типа "регистр-регистр" и достаточно больших объемах регистровой памяти (десятки регистров), как, например, в процессорах классической RISC-архитектуры (см. пп. 9.2), подобные команды очень эффективны.

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


Содержание раздела