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

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Контроллер прерываний (англ. 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.

Литература