Конспект лекций по курсам "Проектирование центральных и периферийных устройств ЭВС", "Микропроцессоры и ЭВМ в микросистемах". Лукьяненко Е.Б. - 26 стр.

UptoLike

Составители: 

2.7. Счетчик команд и выполнение программы
Счетчик команд представляет собой регистр, в котором содержится адрес сле-
дующей выполняемой команды. Напрямую из программы он недоступен. Размер
счетчика зависит от объема памяти программ (12-16 разрядов).
При нормальном выполнении программы содержимое счетчика команд авто-
матически увеличивается на единицу (или на два в зависимости от выполняемой
команды) в каждом машинном цикле. После включения питания и после сброса
МК в счетчик команд автоматически загружается стартовый адрес $0000. Как пра-
вило, по этому адресу располагается команда безусловного перехода к инициали-
зационной части программы.
Этот порядок нарушается при выполнении команд перехода и возврата из под-
программы, при возникновении прерываний. При возникновении прерывания в
счетчик команд загружается адрес соответствующего вектора прерывания. По ад-
ресам векторов прерываний размещаются команды перехода к подпрограммам
обработки прерываний.
2.7.1. Выполнение команды
Порядок выполнения команды микроконтроллером приведен на рис. 23.
Шина данных
Адрес
Память
Дешифратор
ячейки
команд
Шина адреса
ячейки
памяти
.
0002
Регистр Код
0000
памяти
.
.
ЦПУ
.
.
0001
команд
команд
Счетчик
команды
.
Содержимое
Рис. 23
Значение, указанное счетчиком команд, «выставляется» на шину адреса и в
память посылается информация об адресе команды. Из памяти считывается код
команды и выставляется на шину данных. ЦПУ считывает код команды из памяти
по указанному адресу и помещает его в регистр команд. Дешифратор команд
расшифровывает команду и посылает указание в АЛУ для ее выполнения.
В микроконтроллерах AVR используется конвейерная обработка команд. Во
время первого машинного цикла происходит выборка команды из памяти про-
грамм и ее декодирование. Во время второго цикла эта команда выполняется, а
параллельно происходит выборка и декодирование второй команды. Таким об-
разом выполнение команды происходит за один машинный цикл.
26