- •7. Принципы управления микропроцессора.
- •7.1. Классификация микропроцессоров.
- •7.2. Декомпозиция мп.
- •7.3. Принцип аппаратного управления ("жёсткой" логики).
- •7.4. Принцип микропрограммного управления (гибкой логики).
- •7.5. Способы формирования сигналов управления
- •Код номера
- •7.6. Операционное устройство мп.
- •7.7. Обобщённая структурная схема мп.
- •Адресный блок
- •8. Элементы архитектуры мп.
- •8.1. Структура команд.
- •8.2. Способы адресации, основанные на прямом использовании
- •Номера реги- стров
- •Число 4527
- •Адрес 1765
- •8.3. Способы адресации, основанные на преобразовании кода команды.
- •8.4. Понятие вектора состояния мп.
- •8.5. Понятие системы прерывания программ.
- •8.6. Характеристики системы прерывания.
- •8.7. Способы организации приоритетного обслуживания
- •Счётчик
- •Счётчик
- •Компаратор
- •Код маски
- •8.8. Процесс выполнения команд. Рабочий цикл мп.
- •8.9. Конвейерная обработка команд и данных.
- •8.10. Особенности risc-архитектуры.
- •Регистры глобальных переменных
8. Элементы архитектуры мп.
Однокристальные микропроцессоры по быстродействию и возможностям системы команд приближаются к процессорам ЭВМ. Поэтому дальнейший материал применим как к тем, так и к другим приборам.
Под архитектурой МП принято понимать совокупность представлений о составе его компонентов, организации обмена информацией внутри МП и с внешней средой, а также о функциональных возможностях, реализуемых посредством системы команд.
Выделим следующие элементы архитектуры МП:
типы обрабатываемых данных (целое двоичное число, число с плавающей точкой, десятичное число и т.д.) и способы их представления в МП (изложены в первой части курса);
структуры команд;
способы адресации информации;
системы прерывания;
рабочий цикл процессора;
конвейеризация обработки команд и данных.
8.1. Структура команд.
Обработка информации и функционирование МП обеспечиваются с помощью программного управления. Программа записывается во внешнем ОЗУ в виде последовательности команд.
Команда представляет собой код, определяющий вид операции, адреса операндов, адрес размещения результата операции и адрес расположения следующей команды.
По функциональному назначению различаются команды передачи данных, обработки данных, передачи управления и дополнительные команды.
Команды передачи данных включают в себя команды передачи кодов между регистрами МП, между МП и внешней памятью, между МП и внешними устройствами.
Команды обработки данных подразделяются на арифметические, логические и команды сдвига.
Команды передачи управления используются для изменения естественного порядка следования команд (условные и безусловные переходы) и организации циклических участков в программах.
Дополнительные команды предназначены для задания останова программы, начальной установки аппаратных средств, реализации ожидания.
В общем случае команда состоит из операционной и адресной частей:
КОП
опера-
ционная
часть
адресная
часть
(КОП), который задаёт вид операции (сложение, ум- ножение, передача и т.д.).
Адресная часть содержит информацию об адресах операндов и результата операции, а в некоторых случаях информацию об адресе следующей команды.
Структура команды определяется составом, назначением и расположением полей в команде.
Форматом команды называют её структуру с разметкой номеров разрядов (бит), определяющих границы полей команды, или с указанием числа бит в каждом поле.
Гибкость МП и его эффективность определяются системой команд, средствами и способами адресации. С увеличением разрядности команды растут и возможности МП.
Вместе с тем для упрощения аппаратной части и повышения быстродействия формат команды должен быть как можно короче.
Поэтому проблема выбора формата команд и кодирование полей команд МП имеет особое значение.
Ч
КОП
А1
А2
А3
А4
КОП
А1
А2
Первые два адреса указывают ячейки памяти, содер- жащие операнды, третий адрес – ячейку памяти, в которую помещается результат операции, и четвёртый адрес – ячейку памяти, содержащую следующую команду.
Такой порядок выборки команд называется принудительным.
Четырёхадресный формат команды неэффективен и в настоящее время не применяется.
Можно установить, что после выполнения данной команды, расположенной по адресу К и занимающей L ячеек памяти, выполняется команда из (К+L)-й ячейки.
Такой порядок выборки команд называется естественным. Он нарушается только специальными командами.
В этом случае отпадает необходимость указывать в явной форме адрес сле-дующей команды. В результате приходим к трёхадресной команде.
Можно условиться, что результат операции всегда помещается на месте одного из операндов, например, первого. В итоге получаем двухадресную команду:
КОП
А1
А2
ОП[A1] := ОП[A1]*ОП[A2], где знак * обозначает символ операции (+, - и т.п.).
Запись читается так: в ячейку оперативной памяти с номером А1 помещается результат операции над числами, размещёнными в оперативной памяти по адресам А1 и А2.
Таким образом, в этом случае для результата операции используется подразумеваемый адрес.
В одноадресной команде подразумеваемые адреса имеют и результат операции и один из операндов.
Предполагается, что явно не адресуемый операнд всегда находится в аккумуляторе. Туда же записывается и результат операции.
Символическая запись соответствующей операции имеет вид:
Ак := Ак*ОП[A].
Наконец, в некоторых случаях (например, при работе со стековой памятью) возможно использование безадресных команд.
В таких случаях подразумеваются адреса обоих операндов и результата операции.
В современных МП применяют, как правило, двух- и одноадресные команды. Обусловлено это следующими причинами:
необходимость иметь большее число разрядов для представления адресов и кода операции приводит к недопустимо большой длине трёхадресной команды;
часто в качестве операндов используются результаты предыдущих операций, хранимых в регистрах МП. В этом случае трёхадресный формат используется неэффективно.
При ограниченной разрядности команд практически невозможно кодировать большое число различных операций и одновременно иметь гибкую форму адресации операндов.
Это противоречие преодолевается расширением кодов операций в команде.
Так, для задания небольшой группы основных операций (арифметических и т.п.) используется короткий код операции, а получаемая при этом сравнительно большая адресная часть команды позволяет реализовать гибкую адресацию (например, двухадресную с многими модификациями).
Для задания других операций используются более длинные (расширяемые) коды операций, при этом сокращаемая адресная часть оставляет возможность лишь для более простой адресации операндов (например, одноадресной).
В пределе расширяемый код операций занимает весь формат команды (безадресная команда).
Приведённые структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.