КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

Для нескольких однотипных устройств (например, сетевых адаптеров на одном и том же кристалле), пользующихся одним драйве¬ром, разделяемые прерывания работают вполне успешно.
Чтобы прерывания, одновременно возникающие от нескольких устройств, не те¬рялись, контроллер прерываний должен быть чувствительным к уровню, а не к перепаду на входе запроса. В соответствие со схемотехникой логики ТТЛ и КМОП активным уровнем должен быть низкий; выходной формирователь сигнала запро¬сов у адаптеров — с открытым коллектором (ТТЛ) илиоткрытым стоком (КМОП); вход запроса у контроллера должен быть «подтянут» к высокому уровню резисто¬ром. Тогда непосредственное соединение этих выходов со входом контроллера («Монтажное И») даст требуемый результат в аппаратном плане, а в программном плане необходимо корректно выстроить обработчики в цепочку.
Поясним, почему надежное разделение прерываний при чувствительности к пе¬репаду на линии запроса невозможно. Если устройство 1 выработает сигнал за¬проса после того, как его выработает (но еще не снимет) устройство 2, то контрол¬лер обработает только один запрос. Цепочка программных обработчиков окажется ненадежной: если обработчик устройства 1 в этой цепочке будет проверять свое

12.4. Прямой доступ к памяти — DMA '
463
устройство до возникновения прерывания, то прерывание будет потеряно. По¬скольку прерывания по своей природе обычно асинхронны, работа этих устройств совместно с поддерживающими программами будет загадочно нестабильной.
Как уже говорилось, в шине ISA прерывание вырабатывается по положительному перепаду сигнала на линии запроса. Стандартный контроллер 8259А позволяет задавать чувствительность — уровень или перепад — только для всех входов од¬новременно, поэтому разделяемые прерывания на шине ISA неработоспособны. Тем не менее некоторые чипсеты, реализующие контроллеры прерываний, допус¬кают индивидуальное управление чувствительностью каждого входа. Тогда при соответствующих возможностях CMOS Setup, адаптеров и их ПО разделяемые прерывания технически реализуемы.

Hosted by uCoz