В компьютер, запрос прерывания (или IRQ ) - это аппаратный сигнал, отправляемый процессору, который временно останавливает запущенную программу и разрешает выполнение специальной программы, обработчик прерывания, чтобы запустить его. Аппаратные прерывания используются для обработки таких событий, как получение данных от модема или сетевой карты, нажатие клавиш или движения мыши.
Строки прерывания часто идентифицируются индексом с форматом IRQ, за которым следует номер. Например, в семействе программируемых контроллеров прерываний Intel 8259 (PIC ) имеется восемь входов прерывания, обычно обозначаемых как IRQ0 - IRQ7. В x86 компьютерных системах , использующих две из этих PIC, объединенный набор линий обозначается как IRQ0 - IRQ15. Технически эти линии называются от IR0 до IR7, а линии на шине ISA, к которой они были подключены исторически, имеют имена от IRQ0 до IRQ15 (хотя исторически по мере увеличения количества аппаратных устройств общее возможное количество прерываний был увеличен с помощью каскадных запросов, путем каскадирования одного из номеров IRQ в другой набор или наборы пронумерованных IRQ, обрабатываемых одним или несколькими последующими контроллерами).
Более новые системы x86 включают усовершенствованный программируемый контроллер прерываний (APIC), который соответствует архитектуре Intel APIC. Эти APIC поддерживают интерфейс программирования для 255 физических аппаратных линий IRQ на APIC, при этом типичная система реализует поддержку всего около 24 аппаратных линий.
В первые годы развития персональных компьютеров управление IRQ часто вызывало озабоченность пользователей. С появлением устройств plug and play это было уменьшено.
При работе с аппаратным обеспечением персонального компьютера, установке и удалении устройств система полагается на запросы на прерывание. Существуют настройки по умолчанию, которые настроены в системе BIOS и распознаются операционной системой. Эти настройки по умолчанию могут быть изменены опытными пользователями. Современная технология plug and play не только уменьшила необходимость беспокоиться об этих настройках, но также практически устранила ручную настройку.
Ранние ПК, использующие процессоры Intel 8086/8088, имели только один PIC и, следовательно, ограничены восемью прерываниями. Он был расширен до двух PIC с появлением компьютеров на базе 286.
Обычно в системах, использующих PIC Intel 8259, используется 16 IRQ. IRQ от 0 до 7 управляются одним PIC Intel 8259, а IRQ с 8 по 15 - вторым Intel 8259 PIC. Первый PIC, главный, является единственным, который напрямую сигнализирует CPU. Второй PIC, подчиненное устройство, вместо этого передает сигнал мастеру на своей линии IRQ 2, и мастер передает сигнал процессору. Таким образом, для оборудования доступно только 15 строк запроса прерывания.
В более новых системах, использующих архитектуру Intel APIC, обычно доступно 24 IRQ, а дополнительные 8 IRQ используются для маршрутизации прерываний PCI, что позволяет избежать конфликта между динамически настраиваемыми прерываниями PCI и статически настроенными ISA прерывает. В ранних системах APIC только с 16 IRQ или только с Intel 8259 контроллерами прерываний, линии прерывания PCI направлялись на 16 IRQ с использованием PIR, встроенного в южный мост.
Самый простой способ просмотреть эту информацию в Windows - использовать Диспетчер устройств или Системную информацию (msinfo32.exe). В Linux сопоставления IRQ можно просмотреть, выполнив cat / proc / interruptsили используя утилиту procinfo.
В ранних IBM-совместимых персональных компьютерах конфликт IRQ - это некогда распространенная аппаратная ошибка, полученная, когда два устройства пытались использовать тот же запрос прерывания (или IRQ), чтобы сигнализировать о прерывании Prog расширяемый контроллер прерываний (PIC). PIC ожидает запросов прерывания только от одного устройства на линию, поэтому более одного устройства, отправляющего сигналы IRQ по одной и той же линии, обычно вызывают конфликт IRQ, который может привести к зависанию компьютера.
. Например, если модем карта расширения добавляется в систему и назначается IRQ4, которое традиционно назначается последовательному порту 1, это, вероятно, вызовет конфликт IRQ. Первоначально IRQ 7 был обычным выбором для использования звуковой карты , но позже было использовано IRQ 5, когда было обнаружено, что IRQ 7 будет мешать порту принтера (LPT1). Последовательные порты часто отключаются, чтобы освободить линию IRQ для другого устройства. IRQ 2/9 - это традиционная линия прерывания для порта MIDI MPU-401, но это конфликтует с прерыванием управления системой ACPI (SCI жестко привязан к IRQ9 на наборах микросхем Intel); это означает, что карты ISA MPU-401 с аппаратным IRQ 2/9 и драйверы устройств MPU-401 с жестко запрограммированным IRQ 2/9 не могут использоваться в режиме управления прерываниями в системе с включенным ACPI.
В некоторых редких случаях два устройства могут использовать один и тот же IRQ, если они не используются одновременно. Чтобы решить эту проблему, более поздняя спецификация шины PCI допускает совместное использование IRQ с дополнительной поддержкой прерываний с сигнализацией сообщений (MSI) в более поздних версиях. PCI Express вообще не имеет линий физического прерывания и использует исключительно MSI.