Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Одноадресная система команд



Дальнейшее уменьшение количества адресов, явно заданных в команде, приводит к одноадресной структуре команд (рис. 2.8).

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

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

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

Сравним эффективность программирования в одноадресной и трехадресной системе команд.

Вычисление оператора С = А+В в трехадресной системе команд можно задать одной командой

ADD <A>, <B>, <C>;

а в одноадресной – тремя командами:

MOVAC <A>; загрузить в регистр-аккумулятор число А

ADD <B>; содержимое аккумулятора увеличить на значение числа В

MOVM <C>; сохранить содержимое аккумулятора в ячейке памяти С.

Здесь в командах используются условные обозначения: угловые скобки задают не значения операндов А, В, С, а их адреса.

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

Например, для оператораA=B´C+D–Eпрограмма в трехадресной системе команд будет содержать 3 команды:

MULT <B>, <C>, <A>

ADD <A>, <D>, <A>

SUB <A>, <E>, <A>,

а в одноадресной системе – 5 коротких команд:

MOVAC <B>

MULT <C>

ADD <D>

SUB <E>

MOVM <A>.

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

Дальнейшее совершенствование структуры команд связано с отставанием роста быстродействия памяти по сравнению с ростом быстродействия процессора. Это отставание стало серьезным препятствием в развитии вычислительной техники.

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

Следовательно, временные потери процессора на ожидание данных из памяти можно уменьшить введением в состав процессора не одного аккумулятора, а множества регистров для сохранения и повторного использования данных. Появление дополнительного множества регистров в процессоре и необходимость их адресации существенно повлияли на дальнейшее развитие структуры команд.

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

Многие фирмы (Intel, DEC) для гибкости системы программирования стали использовать множество формул (режимов адресации) для вычисления адресов.

С появлением РОНов команды снова стали двухадресными. Один – адрес оперативной памяти, другой – РОНа, или оба адреса – номера используемых
РОНов.

В случае использования РОНовкоманды, в зависимости от расположения исходных операндов, разделяются на типы: регистр-регистр, регистр-память.

Команды типа регистр-регистр являются наиболее компактными по размерам и быстрыми по выполнению. Они используют короткие адреса и независимы от задержек при обращении к памяти. Как исключение, некоторые ЭВМ (например, IBM/370) сохранили команды и типа память-память.

Кроме РОНов, современные процессоры содержат ряд других программно доступных регистров, которые образуют регистровый файл процессора.

Вопросы для самопроверки:

1. Двухместные операции.

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

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

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

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

6. Основные преимущества одноадресной системы команд.

7. Причины введения в состав процессора РОНов.

8. Адресация РОНов в командах.

9. Понятие типов команд: регистр-регистр и регистр-память.





Дата публикования: 2014-11-03; Прочитано: 2593 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.017 с)...