Ульяновский государственный университет
Опубликован: 18.05.2006 | Доступ: свободный | Студентов: 3758 / 1013 | Оценка: 4.05 / 4.02 | Длительность: 15:15:00
Специальности: Разработчик аппаратуры
Лекция 13:

Организация обмена в вычислительной системе

< Лекция 12 || Лекция 13: 1234 || Лекция 14 >

Обработка прерываний на основе контроллера 8259A

Контроллер прерываний 8259A представляет собой устройство, реализующее до восьми уровней запросов на прерывания, с возможностью программного маскирования и изменения порядка обслуживания прерываний.

Контроллер прерываний (рис. 13.3) состоит из следующих блоков:

  • RGI - регистр запретов прерываний ; хранит все уровни, на которые поступают запросы IRQx.
  • PRB - схема принятия решений по приоритетам; схема идентифицирует приоритет запросов и выбирает запрос с наивысшим приоритетом.
  • ISR - регистр обслуживаемых прерываний ; сохраняет уровни запросов прерываний, находящиеся на обслуживании контроллера прерываний.
  • RGM - регистр маскирования прерываний ; обеспечивает запрещение одной или нескольких линий запросов прерывания.
  • BD - буфер данных; предназначен для сопряжения с системной шиной данных.
  • RWCU - блок управления записью/чтением; принимает управляющие сигналы от микропроцессора и задает режим функционирования контроллера прерываний.
  • CMP - схема каскадного буфера-компаратора; используется для включения в систему нескольких контроллеров.
  • CU - схема управления; вырабатывает сигналы прерывания и формирует трехбайтовую команду CALL для выдачи на шину данных.
Структура контроллера прерываний 8259А

увеличить изображение
Рис. 13.3. Структура контроллера прерываний 8259А

Один контроллер 8259A способен обслуживать прерывания от 8 источников. Для обслуживания большего количества устройств используется каскадное включение контроллеров (рис. 13.4). В системах IBM PC AT каскадное включение позволяет до 15 устройствам сигнализировать о прерывании (табл. 13.1).

Каскадное включение контроллеров прерываний

увеличить изображение
Рис. 13.4. Каскадное включение контроллеров прерываний
Таблица 13.1. Источники аппаратных прерываний в IBM PC AT
Запрос Источник Приоритет Номер вектора
NMI Ошибка памяти или другая неисправимая ошибка в системе 02h
IRQ0 Системный таймер 1 08h
IRQ1 Клавиатура 2 09h
IRQ8 Часы реального времени 3 70h
IRQ9 Устройство на шине ISA 4 71h
IRQ10 Устройство на шине ISA 5 72h
IRQ11 Устройство на шине ISA 6 73h
IRQ12 Устройство на шине ISA 7 74h
IRQ13 Ошибка сопроцессора 9 75h
IRQ14 IDE контроллер 9 76h
IRQ15 Устройство на шине ISA 10 77h
IRQ3 Последовательный порт (COM2 или COM4) 11 0Bh
IRQ4 Последовательный порт (COM1 или COM3) 12 0Ch
IRQ5 Параллельный порт (LPT2) или IDE контроллер (вторичный) 13 0Dh
IRQ6 Контроллер дисковода 14 0Eh
IRQ7 Параллельный порт (LPT1) 15 0Fh

Поскольку в каждый момент времени может поступить более чем один запрос на прерывание, контроллер прерываний имеет схему приоритетов. В основном режиме - режиме полного вложения, - до тех пор, пока установлен разряд в регистре ISR, соответствующий запрашиваемому прерыванию, все последующие запросы с таким же или более низким приоритетом игнорируются, подтверждаются лишь запросы с более высоким приоритетом.

В циклическом режиме используется круговой порядок использования приоритетов. Последнему обслуженному запросу присваивается низший приоритет, следующему по кругу - наивысший, что гарантирует обслуживание остальных устройств до очередного обслуживания данного устройства.

Контроллер допускает маскирование отдельных запросов прерываний, что позволяет устройствам с более низким приоритетом получить возможность генерировать прерывания. Режим специального маскирования разрешает прерывания всех уровней, кроме уровней, обслуживаемых в данный момент.

Кроме того, для каскадного включения возможен специальный режим полного вложения. Этот режим программируется любым ведущим контроллером при инициализации. В данном режиме игнорируются запросы с приоритетом более низким, чем приоритет обрабатываемого в данный момент запроса, и обслуживаются все запросы с равным или более высоким приоритетом.

< Лекция 12 || Лекция 13: 1234 || Лекция 14 >
Виктория Монахова
Виктория Монахова
Евгений Коваленко
Евгений Коваленко