Работа первичного управляющего автомата в режиме прерывания
Работа первичного управляющего автомата в режиме прерывания представлена на рис. 1.12. Периферийное оборудование МП-системы может запросить сообщение о прерывании текущей программы у МП путем подачи сигнала INT на вход прерывания. Сигнал прерывания INT может возникнуть в любой момент цикла команды. Обработка прерывания организована таким образом, что запрос на прерывание фиксируется на внутреннем триггере TrINT запроса прерывания только при переходе первичного автомата к циклу М1, т. е. к начальному циклу очередной команды (что свидетельствует об окончании выполнения очередной операции), и только в том случае, если программе было разрешено прерывание (внутренний триггер разрешения прерывания INTE находится в состоянии 1). Выполнение этих условий приведет к тому, что следующий машинный цикл М1 будет циклом обработки запроса на прерывание.
Машинный цикл прерывания, который начинается в такте Т1 в условиях разрешенного прерывания, в основном повторяет машинный цикл выборки. В течение времени, определяемом единичным значением сигнала синхронизации SYNC, в регистр состояния выдается сигнал подтверждения прерывания INTA. Этот сигнал используется в периферийном оборудовании для инициирования процедур, определяемых прерыванием.
Отличие машинного цикла прерывания от машинного цикла выборки состоит в том, что содержимое программного счетчика PC не инкрементируется, а запоминается так, чтобы это значение могло быть восстановлено после окончания программы прерывания и возврата к прерванному процессу (программе).
Как уже отмечалось, в цикле прерывания первичный управляющий автомат использует обычный машинный цикл выборки и не производит никаких дополнительных специальных действий. В рассматриваемом случае все специальные процедуры обработки запросов на прерывание возлагаются на периферийную аппаратуру: специальный субпроцессор обработки прерываний или схему определения приоритета прерывания.
Рис. 1.12. Временная диаграмма работы МП при разрешенном прерывании
Периферийное оборудование подготавливает информацию для процессора. В такте Т3 по шине данных начальная команда программы прерывания RST (Restart), подготовленная периферийным оборудованием, помещается в МП. В МПС типовой конфигурации это означает временное отключение памяти от процессорной шины данных (на временной диаграмме это соответствует тому, что в такте Т3 управляющий сигнал WR имеет единичное значение). Информация, содержащаяся в команде RST, может быть по шине данных передана от периферии в МП, несмотря на то, что на шине адреса все еще присутствует адрес, соответствующий содержимому программного счетчика. В списке команд МП предусмотрена специальная команда вызова процедуры прерывания – команда повторного пуска RST. В формате команды содержится трехразрядное поле для представления вектора прерывания. В поле аппаратурой периферийных устройств или субпроцессора обработки прерываний формируется начальный адрес программы обслуживания прерывания, который соответствует приоритету устройства, запросившего прерывание.
Любая программа обслуживания прерывания начинается со специальных команд, которые перегружают содержимое программного счетчика в стек. На временной диаграмме показано, как в машинные циклы М2 и М3 (старший и младший байты) содержимое программного счетчика последовательно загружается в стек. На шине адреса в машинных циклах присутствует декрементируемое значение регистра указателя стека SP. Завершение процесса входа МПС в режим обработки прерывания фиксируется внутренним сигналом возврата к машинному циклу М1.
Особое внимание следует обратить на то, что внутренний триггер разрешения прерывания INTE процедурой входа МП в режим обработки прерывания установлен в 0. Это значит, что никакое прерывание невозможно до тех пор, пока МП не выйдет из режима обработки запроса прерывания или в подпрограмме обработки данного прерывания не будет команды разрешения прерывания с еще более высоким приоритетом.