Аппаратные прерывания. контроллер прерываний

      Комментарии к записи Аппаратные прерывания. контроллер прерываний отключены

Аппаратное прерывание – прерывание, выполняемое в результате запроса, поступающего от периферийного оборудования.

Контроллер прерываний – устройство, которое обрабатывает сигналы аппаратных прерываний.

В отличие от программных прерываний аппаратные всегда возникают асинхронно от выполняющейся программы. Запросы на прерывания передаются по специальным сигнальным линиям, которые называются IRQ-линиями (Interrupt Request – запрос на прерывание).

Программируемый контроллер прерываний 8259, используемый в машинах IBM AT, предназначен для обработки до 8 приоритетных уровней прерываний. Возможно каскадирование микросхем, при этом общее число уровней прерывания будет достигать 64.

В машинах IBM AT имеется 15 линий сигналов прерывания, для обслуживания которых используются ведущая и одна ведомая микросхемы. Для каскадирования используется линия IRQ2 ведущей микросхемы. Ведомой микросхеме программным методом присваивается код, равный номеру входа IRQ ведущей микросхемы, с которым соединен выход запроса прерывания INT ведомой микросхемы. Внутри микросхемы приоритет зависит от номера IRQ и задается программно.

Для идентификации прерываний различных устройств им присваивают номера от 0 до 15. По этим номерам процессор узнает, какое устройство выдает запрос на прерывание. Естественно, что при этом все будет функционировать безупречно, если с каждым конкретным устройством будет связано определенное прерывание. Действует стандартное правило: каждому компоненту ПК-системы должно быть назначено свое собственное прерывание.

Исключением являются системы, которые могут работать по методу разделения прерываний. К ним относятся шина EISA, a также системы, соответствующие спецификации Plug and Play фирмы Intel. Разумеется, трудно найти программное обеспечение, которое могло бы управлять разделением прерываний, поэтому стандартное правило «каждому устройству – свое собственное прерывание» должно выполняться (рис. 13).

Рис. 13. Распределение линий сигналов прерывания в машинах IBM AT

Приоритеты прерываний распределены в следующем порядке (по убыванию приоритета):

IRQ0 — прерывание таймера;

IRQ1 — прерывание от клавиатуры;

IRQ8 — прерывание от часов реального времени;

IRQ9 — прерывание от контроллера графической платы;

IRQ10 — зарезервированная линия;

IRQ11 — зарезервированная линия;

IRQ12 — зарезервированная линия;

IRQ13 — прерывание от математического сопроцессора;

IRQ14 — прерывание от контроллера жестких дисков;

IRQ15 — прерывание от IDE-контроллера (CD-ROM);

IRQ3 — прерывание от последовательного порта COM2;

IRQ4 — прерывание от последовательного порта COM1;

IRQ5 — зарезервированная линия;

IRQ6 — прерывание от контроллера гибких дисков;

IRQ7 — прерывание от параллельного порта (от принтера).

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

Даже стандартная ПК-система с самым распространенным набором компонентов предоставляет весьма ограниченный выбор свободных прерываний. С учетом звуковой, сетевой плат и дополнительного хост-адаптера SCSI список свободных прерываний исчерпывается.

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

Статьи к прочтению:

Проверка легенд — \


Похожие статьи: