Механизм реализации прерываний с помощью «старых» и «новых» ячеек
Все запросы на прерывание делятся на 5 классов:
обработка программ обработка запросов на прерывание
прерывания
max приоритет min приоритет
· Аппаратное прерывание.
· В/в
· Внешние прерывания.
· Супервизор.
· Программное прерывания.
min приоритет max приоритет
Обработка одного запроса на прерывание.
В оперативной памяти выделяются «старые» и «новые» ячейки, их количество соответствует числу классов прерывания (по 5 шт.)
- Код причины прерывания заносится на регистр ССП.
- Содержимое регистра ССП будет записано в «старую» ячейку для этого класса прерывания. (I)
- Содержимое «новой» ячейки для данного класса заносится на регистр ССП (II). В «новой» ячейке содержится адрес первой команды обработки прерывания и маски для обработки прерывания.
4. Выполнение программы обработки прерывания:
а. сохранение РОНов
б. непосредственное выполнение програмы обработки прерывания ( анализируется код причины прерывания и в соответствии с кодом выполняется нужная подпрограмма)
в. восстановление РОНов
5. Содержимое «старой» ячейки помещается на ССП (восстановление основных параметров) (III)
При выполнении одной команды приходят одновременно 2 запроса на прерывание от различных классов.
Пример: в/в и внешнее прерываие
- На регистр ССП поступает запрос внешних прерываний.
- В старую ячейку внешних прерываний записывается содержимое регистра ССП.
- Содержимое «новой» ячейки внешних прерываний заносится на регистр ССП. Регистр ССП содержит адрес первой команды программ обработки прерывания для внешних прерываний.
- Запрос по в/в заносится на регистр ССП. Содержимое регистра ССП заносится в «старую» ячейку по в/в. В старой ячейки по в/в будет занесен адрес первой команды внешних прерываний.
- Содержимое из «новой» ячейки по в/в записывается на регистр ССП (адрес первой команды программы обработки прерывания по в/в).
- Выполнение программы обработки прерывания по в/в.
- Содержимое «старой» ячейки по в/в заносится на регистр ССП (На регистре ССП будет содержаться адрес первой команды программы обработки внешних прерываний).
- Выполнение программы обработки внешних прерываний.
- Содержимое «старой» ячейки внешних прерываний записывается на регистр ССП (содержит адрес следующей команды прерванной программы).
Если программа обработки прерывания по в/в уже начала обрабатыватся, и приходит запрос от внешних прерываний, то эта система приоритетов не действует, а возможность прерывания определяется маской: если внешнее прерывание не замаскировано , то запрос от внешних прерываний будет обрабатываться