Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 05.04.2005 | Доступ: свободный | Студентов: 17230 / 6112 | Оценка: 4.25 / 4.16 | Длительность: 12:55:00
Специальности: Разработчик аппаратуры
Лекция 14:

Система прерываний

< Лекция 13 || Лекция 14: 123 || Лекция 15 >

Обработка прерываний в персональной ЭВМ

Микропроцессоры типа х86 имеют два входа запросов внешних аппаратных прерываний:

  • NMI - немаскируемое прерывание, используется обычно для запросов прерываний по нарушению питания;
  • INT - маскируемое прерывание, запрос от которого можно программным образом замаскировать путем сброса флага IF в регистре флагов.
Структура контроллера приоритетных прерываний

Рис. 14.4. Структура контроллера приоритетных прерываний

Единственный вход запроса маскируемых прерываний микропроцессора не позволяет подключить к нему напрямую сигналы запросов от большого числа различных внешних устройств, которые входят в состав современного компьютера: таймера, клавиатуры, "мыши", принтера, сетевой карты и т.д. Для их подключения к одному входу INT микропроцессора используется контроллер приоритетных прерываний (рис. 14.4). Его функции:

  • восприятие и фиксация запросов прерываний от внешних устройств;
  • определение незамаскированных запросов среди поступивших запросов ;
  • проведение арбитража: выделение наиболее приоритетного запроса из незамаскированных запросов в соответствии с установленным механизмом назначения приоритетов ;
  • сравнение приоритета выделенного запроса с приоритетом запроса, который в данный момент может обрабатываться в микропроцессоре, формирование сигнала запроса на вход INT микропроцессора в случае, если приоритет нового запроса выше;
  • передача в микропроцессор по шине данных типа прерывания, выбранного в процессе арбитража, для запуска соответствующей программы - обработчика прерывания ; это действие выполняется по сигналу разрешения прерывания INTA от микропроцессора, который выдается в случае, если прерывания в регистре флагов микропроцессора не замаскированы ( IF=1 ).

Переход к соответствующему обработчику прерывания осуществляется (в реальном режиме работы микропроцессора) посредством таблицы векторов прерываний. Эта таблица (рис. 14.5) располагается в самых младших адресах оперативной памяти, имеет объем 1 Кбайт и содержит значения сегментного регистра команд ( CS ) и указателя команд ( IP ) для 256 обработчиков прерываний.

Структура таблицы векторов прерываний

Рис. 14.5. Структура таблицы векторов прерываний

Обращение к элементам таблицы осуществляется по 8-разрядному коду - типу прерывания (табл. 14.1).

Таблица 14.1.
Тип прерывания Источник прерывания
0 Деление на 0
1 Пошаговый режим выполнения программы
2 Запрос по входу NMI
x x x
8 Запрос по входу IRQ0 (системный таймер)
9 Запрос по входу IRQ1 (контроллер клавиатуры)
x x x
11 Отсутствие сегмента в оперативной памяти
x x x
255 Пользовательское прерывание

Различные источники задают тип прерывания по-разному:

  • программные прерывания вводят его изнутри процессора или содержат его в номере команды INT n ;
  • аппаратные маскируемые прерывания вводят его от контроллера приоритетных прерываний по шине данных;
  • немаскируемому аппаратному прерыванию назначен тип 2.
< Лекция 13 || Лекция 14: 123 || Лекция 15 >
Илья Бекиров
Илья Бекиров
Кирилл Кондратьев
Кирилл Кондратьев