ВС за счет распараллеливания работы периферийных устройств с
различной скоростью. Процесс управления обменом в режиме прерываний осуществляет контроллер прерываний (КП) при участии процессора. КП обрабатывает запросы, поступающие от ПУ в соответствии с предусмотренной в нем схемой приоритетов и маскирования, формирует сигнал INTR, поступающий на соответствующий вход процессора, и выставляет на шину адрес вектора прерывания, рекомендуемого им к обработке.
Логика работы программируемого контроллера прерываний построенного на БИС Intel 8259 принята за основу при создании более современных устройств подобного типа. Это обеспечивает совместимость выпускаемых сегодня компьютеров с более ранними модификациями.
Программируемый контроллер прерываний Intel 8259 поддерживает восемь уровней приоритетов. Это достаточно для конфигурации персонального компьютера типа XT. Для AT с шестнадцатью уровнями приоритетов используются две такие БИС, соединенные каскадно. Таким образом, ведущий контроллер обрабатывает первые восемь аппаратных прерываний от IRQ0 до IRQ7 включительно, а ведомый следующие прерывания от IRQ8 до IRQ15. Приоритеты между ними распределены так, что уровни приоритетов ведомого контроллера находятся между вторым и третьим уровнями ведущего.
________________________________________________________________
Номер Номер IRQ Функция прерывания прерывания ведущий ведомый
hex КП КП
_______________________________________________________________
08 0 запрос от таймера
09 1 запрос от контроллера клавиатуры
0A 2 подчиненный (ведомый) Intel 8259А или вертикальный обратный ход луча
EGA/VGA
70 8 часы реального времени
71 9 программно переводятся в IRQ2
72 10 зарезервировано
73 11 зарезервировано
74 12 мышь
75 13 ошибка операции математического сопроцессора
76 14 КНЖМД
77 15 зарезервировано
0B 3 COM2 ( COM4 )
0C 4 COM1 ( COM3 )
0D 5 КНЖМД ( XT ) или LPT2 ( AT )
0E 6 КНГМД
0F 7 LPT1
_________________________________________________________________
КП на основе БИС 8259 имеет три однобайтовых регистра, которые управляют восемью линиями аппаратных прерываний:
- IRR - регистр запроса на прерывание, устанавливает соответствующий бит, когда линия прерывания сигнализирует о запросе;
- ISR - регистр обслуживания прерывания, содержит информацию о том, обрабатывается ли в данный момент другое прерывание и контролирует цепь приоритетов;
- IMR - регистр маски прерывания служит для хранения, разрешения и запрета ( маскирования ) прерываний.
Назначение битов регистров контроллера приведено на рис.1.
Как правило, программисты обращаются только к регистру
IMR через порт 21h и к командному регистру или регистру обслуживания прерывания ISR через порт 20h.
Регистр IMR позволяет программно запретить или разрешить прерывания от периферийных устройств ( поэтому их иначе называют маскируемыми ). Маскирование может быть полным, когда блокируются все прерывания, и частичным, когда маскируются только определенные аппаратные прерывания.
Полное маскирование необходимо в случаях, когда критический участок программы должен быть выполнен целиком прежде, чем компьютер выполнит какое-либо другое действие. Например, при изменении вектора аппаратного прерывания, чтобы избежать выполнения прерывания по неполностью измененному вектору.
Частичное маскирование может потребоваться, когда некоторые прерывания могут взаимодействовать с операциями критичными к временным интервалам. Например, точно расчитанная процедура ввода/
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.