Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
стей (рис. 2.16, а).

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

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

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

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

Важной и сложной проблемой при проектировании ЭВМ является выбор структуры и форматов команды, т.е. ее длины, назначения и раз- мерности отдельных ее полей. Естественно стремление разместить в команде в возможно более полной форме информацию о предписыва- емой командой операции. Однако в условиях, когда в современных ЭВМ значительно возросло число выполняемых различных операций и соответственно команд (в системе команд х86 более 500 команд) и зна- чительно увеличилась емкость адресуемой основной памяти (4 Гбайт, 6 Гбайт), это приводит к недопустимо большой длине формата команды.

Действительно, число двоичных разрядов, отводимых под код опе- рации, должно быть таким, чтобы можно было представить все выпол- няемые машинные операции. Если ЭВМ выполняет М различных опе- раций, то число разрядов в коде операции

nкоп log2 М; например, при М= 500 nкоп = 9.

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

nА log2 S; например, при S = 4 Гбайт nА = 32.

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

Проследим изменения классических структур команд.

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

А1, А2 – адреса операндов, А3 – адрес результата, А4 – адрес следу- ющей команды (принудительная адресация команд).

Такая структура приводит к большой длине команды (например, при М = 500, S = 4 Гб длина команды – 137 бит) и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC- архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.

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

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

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

В одноадресной команде (рис. 2.16, д) подразумеваемые адреса имеют уже и результат операции, и один из операндов. Один из операн- дов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата, или аккумулятором. Результат операции записывается в тот же регистр.

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

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

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

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

а



Операционная часть


КОП

А1

А2

А3

А4



б

Адресная часть




КОП

КОП

А1

А2

А3




КОП

А1

А2



вг

д е
Рис. 2.16. Структуры команд:

а обобщенная; б четырехадресная; в трехадресная;

г двухадресная; д одноадресная; е безадресная

Способы адресации информации в ЭВМ


Существует два различных принципа поиска операндов в памяти:

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


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




























Рис. 2.17. Ассоциативный поиск

Адресный поиск предполагает, что искомый операнд извлекается из ячейки, номер которой формируется на основе информации в адрес- ном поле команды (рис.2.18).



















Рис. 2.18. Адресный поиск
Ниже мы будем рассматривать только реализацию адресного прин- ципа поиска операнда. Следует различать понятия «адресный код» в ко-

манде АК и «исполнительный (физический) адрес» АИ. Адресный код это информация об адресе операнда, содержащаяся в команде. Исполни- тельный адрес это номер ячейки памяти, к которой
Источник: https://files.student-it.ru/previewfile/151041