Контроллер прерываний

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Контроллер прерываний (англ. Programmable Interrupt Controller, PIC) — микросхема или встроенный блок процессора, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств.

Описание[править | править код]

Как правило, представляет собой электронное устройство, иногда выполненное как часть самого процессора или же сложных микросхем его обрамления, входы которого присоединены электрически к соответствующим выходам различных устройств. Номер входа контроллера прерываний обозначается «IRQ». Следует отличать этот номер от приоритета прерывания, а также от номера входа в таблицу векторов прерываний (INT). Так, например, в IBM PC в реальном режиме работы (в этом режиме работает MS-DOS) процессора прерывание от стандартной клавиатуры использует IRQ 1 и INT 9.

В первоначальной платформе IBM PC используется очень простая схема прерываний. Контроллер прерываний представляет собой простой счётчик, который либо последовательно перебирает сигналы разных устройств, либо сбрасывается на начало при нахождении нового прерывания. В первом случае устройства имеют равный приоритет, во втором устройства с меньшим (или большим при обратном счёте) порядковым номером обладают большим приоритетом[1].

Контроллеры прерываний на платформе x86 отвечают за получение сигналов прерывания от устройств, сопоставление сигнала с вектором IDT, а затем прерывание одного или нескольких процессоров в системе с помощью вектора IDT. Однако платформа x86 имеет некоторые дополнительные особенности. Во-первых, из-за ограничений исходных контроллеров прерываний и шин, используемых на PC-AT, к платформе были добавлены отдельные программируемые маршрутизаторы прерываний, которые размещались между сигналами прерывания PCI и контроллерами прерываний PC-AT. Во-вторых, по мере развития платформы x86 был введен совершенно новый набор контроллеров прерываний, известных как усовершенствованные программируемые контроллеры прерываний (APIC). Чтобы сохранить обратную совместимость, системы с APIC также по-прежнему включают контроллеры прерываний PC-AT, и любая система может использоваться для обработки прерываний в современных системах. Можно даже использовать оба одновременно[2].

См. также[править | править код]

Примечания[править | править код]

  1. Intel 8259
  2. Interrupt Controllers (Stuff in the Middle). people.freebsd.org. Дата обращения: 6 сентября 2022. Архивировано 4 февраля 2022 года.

Литература[править | править код]