Page 300 - ЭВМ
P. 300
Обработка прерываний. В общих чертах процесс обработки
прерываний описан выше. Для обработки прерываний необходимо
задание адресов обработчиков прерываний для каждого вида преры-
ваний. Этот адрес указывается в микропрограмме процессора.
По прерыванию происходит прекращение выполнения текущей
задачи, сохранение атрибутов этой задачи (состояние всех регистров
процессора, текущего адреса выполнения, вектора состояния процес-
сора) и передача управления на адрес обработчика прерываний.
Существуют различные процедуры обработки прерываний в за-
висимости от организации системы прерывания.
В современных ЦВМ прерывание представляется как вектор,
т. е. слово, имеющее столько битов, сколько есть входов прерывания
в БЦВК (например, 4 входа в процессоре «Салют-4»). Для каждого
бита в векторе прерываний сопоставлен свой вход обработчика пре-
рываний (таким образом, для процессора «Салют-4» имеем 4 входа
обработчика прерываний).
Прерывание в процессоре происходит следующим образом.
При появлении прерываний система прерываний БЦВК вырабатыва-
ет обобщенный сигнал прерывания и вектор прерываний, которые
поступают в процессор. В процессоре, если отработка данного вида
прерываний не запрещена, происходит после выполнения очередной
машинной инструкции сохранение состояния процессора в слове со-
стояния процессора (program status word – PSW) и выбор из вектора
прерываний одного (самого приоритетного) бита, который будет
обрабатываться. Затем производится переход на адрес обработчика
прерываний, соответствующий выбранному биту вектора прерыва-
ний. После принятия на обработку прерывания выбранный бит век-
тора прерываний сбрасывается. Если в векторе прерываний «взведе-
но» несколько бит, они последовательно будут обработаны и сбро-
шены.
Слово состояния программы. Слово состояния программы
предназначено для сохранения статуса процессора при прерывании.
В первую очередь, в слове состояния программы фиксируется адрес,
на котором произошло прерывание. Как отмечалось выше, обработка
каждого вида прерываний может быть разрешена или запрещена, что
отражается в слове состояния (как правило, программные прерывания
запретить нельзя). Кроме этого, имеются подвиды различных масок
запретов обработки сигналов процессора, их может быть большое
289