Учебное пособие: Адресное пространство. Подсистемы ввода-вывода
Система прерываний – специальный набор действий (какой номер выставлять на шину, что делать, если несколько и т.д.).
Система прерываний радиального типа
Ножка запроса прерываний всегда опрашивается центральным процессором между выполнением машинных инструкций.
Аппаратно в ЦП можно блокировать опрос этого бита (CLI).
Если этот бит устанавливается в 1, начинается обработка прерываний:
1) ЦП должен спасти свой контекст.
2) ЦП должен получить номер дескриптора таблицы (для этого сгенерировать цикл шины – подтверждение прерывания).
Контроллер прерываний – программируемое через СШ устройство.
Необходимо указать контроллеру, какой номер события связан с каким ВУ.
Система прерываний радиального типа: каждое прерывание ассоциирует с каждым устройством специальный единичный запрос.
Для каждой линии IRQx – одно событие. Устройства подключаются к таким линиям.
Приоритет предоставления прерываний – алгоритм, по которому контроллер прерываний определяет приоритеты ВУ, подключаемых к одной линии IRQx (?).
В MS-DOS и Windows используется линейная приоритетная схема: устройства имеют статические приоритеты, которые определяются номером линии IRQx.
Возможны и другие алгоритмы.
Например, циклическая схема: после завершения обработки прерываний устройство становится самым низкоприоритетным.
Наивысший приоритет предоставляется асинхронным устройствам, а также системным событиям. Низший – синхронным устройствам.
Главный недостаток – ограничено число линий запроса, а следовательно и устройств.
Можно построить иерархическую схему (расширяем вторым контроллером):
Третий контроллер подключить нельзя, т.к. не хватит линий прерываний. Шина тоже может накладывать ограничение на число прерываний (ISA – 15).
Если количество устройств очень большое, нельзя использовать эту схему!
Чтобы не потерять короткие прерывания используется маска запомненных прерываний.
EndofInterrupt – команда сброса масок блокировок и запомненных прерываний.
Нужно отправить ее контроллеру!
Нужно, чтобы на одну линию можно было подключить сколько угодно устройств – в этом случае нельзя использовать контроллер!
Приоритетная (параллельная) схема обработки прерываний
Производится программная или аппаратная привязка.