ЛЕКЦИЯ 10-11. ЦИКЛ РАБОТЫ МИКРОПРОЦЕССОРА
Как у всякого процессора у МП цикл
работы состоит из
чтения команды и ее исполнения. Во время выборки
команде извлекается из памяти и записывается в
управляющий регистр IR
Если команда двух или трех байтовая, то
организуется необходимое число обращений к
памяти второй и третий байты помещаются в
регистры временного хранения информации W и Z. Во время выполнения команда
дешифруется, производится обращение к памяти за
операндом если необходимо производится
обработка данных.
Цикл выборки и исполнения команды
состоят из нескольких
машинных циклов (от одного до пяти). Машинный цикл
требуется
всякий раз, как только происходит обращение к
памяти или внешним устройствам системы. При
выборе команды всегда необходим
один машинный цикл на каждый байт команды.
Машинный цикл состоит из 3-5 тактов
синхрогенератора. Такт - наименьший промежуток
времени, необходимый для выполнения
элементарного
действия в МП. Его длительность равна периоду
поступления сигналов ФГ синхрогенератора.
Начало каждого машинного цикла сообщается
восьмиразрядным словом состоятия процессора,
которое
выдается им в момент действия сигнала
SYNC. МП имеет
10 различных машинных циклов :
1. FETCH (MI) -
выборка команды, при выполнении
этого цикла команда извлекается из памяти и
помещается в управляющий регистр IR;
2. MEMOR READ -
чтение из памяти, этот цикл формируется во всех
тех случаях, когда читаются какие-либо
данные иди второй и третий байты команды;
3. MEMORY WRITE - запись в память;
4. STACK READ - чтение стека;
5. STACK WRITE - запись в стек;
6. INPUT - ввод информации от внешних устройств;
7. OUTPUT - вывод информации во внешнее устройст во;
8. INTERRUPT - подтверждение прерывания;
9. HALT - подтверждение останова;
10. HALT INTERRUPT - подтверждение прерывания во время
останова.
В таблице 2.1. указано распределение
сигналов состояния
МП по шине данных.
Таблица 2.1
Типы машинных циклов
Разряд шины данных |
Информ. В состоянии |
Выборка команды MI |
Чтения памяти |
Запись в память |
Чтения стека |
Запись в стек |
Ввод |
Вывод |
Подверждение прерыв. |
Подверждение состояния |
Подверждение прерыв во время ост. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
D0 |
INTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D1 |
W0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
D2 |
STACK |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
D3 |
HLTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
D4 |
OUT |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
D5 |
MI |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D6 |
IN |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
D7 |
MEMR |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
Общая диаграмма управляющих
последовательностей аналогична той, что
приведена на рис.1.5. Каждая ветвь диаграммы
состоит из нескольких машинных циклов в
зависимости от содержания команды. Машинные
циклы следуют один за другим. Диаграмма выполнения Машинного
цикла приведена на рис. 2.2. Цикл
состоит из 3-5 тактов, которые на диаграмме
указаны как Ti (i=I-5).
В первом такте Т т на шину данных выдается слово состояния процессора, которое сопровождается сигналом SYNC .
Кроме того, в это время на адресную
шину выдается адрес
ячейки памяти или внешнего устройства, к
которому будет производиться обращение.
В состоянии Т2 MП анализирует значение сигнала READY
или HLTA и переходит соответственно, в
состояние Тwn и
Тw - ожидание. Если на МП поступил
сигнал захвата HOLD,
то внутренний триггер захвата устанавливается в
I и МП переходит в режим захват, сообщая об этом
сигналом HLDA
на соответствующем своем выходе. При отсутствии
сигнала READY МП
переходит в режим ожидания так же сообщая об этом
сигналом
WAYT. С
приходом сигнала готовности МП переходит в
следующее состояние Т3. В этом состоянии характер
действий определяется типом машинного цикла. При
выполнении цикла Ml код операции переносится в
управляющий регистр IR, а в циклах чтения
из памяти, записи в память, ввода и вывода
информации, осуществляется пересылка данных,
Состояния Т4 и Т5 являются необязательными, и выполняются при необходимости в соответствии с содержанием команды.
После такта Т3 и Т4 если выполнение команды не
ограничивается одним машинным циклом, МП входит
в следующий машинный цикл.
Если же команда состоит из одного машинного
цикла или выполняется последний машинный цикл
команды, то начинается цикл Ml
следующей команды. Во
время прерывания МП в последнем такте
последнего машинного цикла команды, по фазе Ф2
производится
опрос входа INТ, на который поступает сигнал прерывания.
Если INT =1
и сигнал 1NTE в единичном состоянии (т.е. прерывание уже
было разрешено), то в течении машинного цикла Ml
приращения PC не производится и выдается
сигнал INTE
Сигнал INTE сбрасывается в "0" в такте Т1. В этом же цикле, но в такте Т3 устройство,
запрашивающее прерывание выставляет код
операции CALL
(вызов подпрограммы) и последовательно два байта
адресной части команды. Для чтения этих данных в
МП
последний трижды генерирует сигналы INTA и DBIN.
Если сигнал HLTA в единичном состоянии, то МП
будет находится в состоянии останова до тех пор,
пока не поступит
запрос прерывания при единичном значении
сигнала INTE. В
этом состоянии может происходить захват шин.
Если состояние HLTA нулевое, то захват может
происходить
в такте Т3 в цикле чтения и в такте, следующем за Т3 в цикле
записи.