Прерывания: типы, механизмы и применение в современных вычислениях
Современные ПК опираются на запросы прерываний для координации аппаратных функций. Концепция восходит к UNIVAC 1103 (1953), а IBM 650 ввёл маскирование прерываний в 1954. Назначение отдельных линий IRQ отдельным устройствам критично для эффективной работы. Когда периферия — клавиатура, мышь — нуждается в внимании CPU, они генерируют прерывания, запускающие соответствующую подпрограмму обслуживания прерывания (ISR). ISR незаменимы для задач, чувствительных ко времени, передач данных, обработки ошибок, сторожевых таймеров и трапов.
Что такое прерывание?
Определение: Прерывание — входной сигнал, требующий немедленного внимания процессора, имеющий наивысший приоритет среди аппаратных и программных событий. В ранних вычислениях процессоры должны были опрашивать каждое периферийное устройство и программу на сигналы, тратя такты и снижая производительность. Механизм прерываний инвертировал эту модель: периферия или программный модуль сигнализирует CPU, который приостанавливает текущую задачу, сохраняет состояние и исполняет соответствующий ISR. После завершения ISR CPU восстанавливает предыдущее состояние и продолжает исполнение.

Типы прерываний
Прерывания широко делятся на две категории.
Аппаратные прерывания (Hardware Interrupts)
Это электронные сигналы от внешних устройств к CPU, указывающие, что им требуется немедленное обслуживание. Нажатия клавиш, движения мыши, сенсорные алерты — типичные примеры. Аппаратные прерывания асинхронны, приходят в любую точку исполнения инструкций.
Аппаратные прерывания дополнительно подразделяются:
- Маскируемые прерывания (Maskable Interrupts) — регистр маски прерываний процессора контролирует, включён ли конкретный источник прерывания или отключён. Каждый бит регистра соответствует конкретной линии IRQ; установленный бит разрешает обслуживание прерывания, сброшенный — блокирует его.
- Немаскируемые прерывания (NMI — Non-Maskable Interrupts) — NMI имеют наивысший приоритет и не могут быть отключены процессором. Обычно используются для критических событий: истечение сторожевого таймера, аппаратные сбои.
Программные прерывания (Software Interrupts)
CPU может сам генерировать прерывание, выполняя специальную инструкцию или при возникновении исключительного условия во время исполнения программы. Программные прерывания позволяют системные вызовы, обработку исключений и трап-подпрограммы.
Методы запуска (Triggering)
Линии прерываний могут запускаться логическим уровнем или фронтом сигнала. Эти подходы отличаются тем, как источник сигнализирует CPU.
Уровневые прерывания (Level-Triggered Interrupt)
В этом режиме линия прерывания остаётся активной, пока источник требует обслуживания. Если источник остаётся активным пока выполняется ISR, CPU повторно вызывает обработчик после завершения. Уровневые входы могут быть проблематичны, если сигнал остаётся активным длительное время.
Фронтовые прерывания (Edge-Triggered Interrupt)
Фронтовое прерывание срабатывает немедленно при переходе сигнала из низкого в высокое или из высокого в низкое. CPU не зависит от уровня сигнала, только от перехода, что делает этот режим подходящим для быстрых одноразовых событий.

Системная реализация
Прерывания подключены в железе как выделенные контрольные линии или встроены в подсистемы памяти. При реализации через Программируемый контроллер прерываний (PIC) множество источников делят один пин CPU, упрощая проводку и позволяя арбитраж приоритетов.
Общие запросы прерываний (Shared IRQs)
С фронтовыми прерываниями pull-up или pull-down резистор держит линию в известном состоянии. Импульс каждого устройства распространяется по общей линии, и CPU сэмплирует линию на спаде, гарантируя, что ни один импульс не упущен. Старые ISA-платы полагались на общие IRQ, что могло вызывать конфликты; современные PCI-архитектуры митигируют это через выделенные контроллеры и динамическое выделение.
Гибридные
Гибридные системы комбинируют фронтовой запуск с верификацией уровня, гарантируя, что активный сигнал не игнорируется. Этот подход часто используется для немаскируемых входов, снижая ложные срабатывания.
Message-Signaled Interrupt (MSI)
Вместо выделенной линии устройство посылает сообщение по шине (например, PCI Express) для уведомления CPU. Это устраняет физические пины и поддерживает более высокую пропускную способность.
Doorbell
Doorbell-прерывание — программно-драйвимый сигнал, где устройство пишет данные в общую область памяти и затем триггерит прерывание, позволяя CPU обработать готовые данные.
Межпроцессорные IPI (Multiprocessor IPI)
В многоядерных системах один процессор может послать межпроцессорное прерывание (IPI) другому, координируя задачи или сигнализируя события через ядра.
Типичные использования/применения
- Обработка аппаратных таймеров и ввода клавиатуры/мыши.
- Реакция на чувствительные ко времени или реально-временные события.
- Управление передачей данных к и от периферийных устройств.
- Обработка высокоприоритетных сигналов: запросы выключения питания, трапы, сторожевые таймеры.
- Репорт аномальных событий CPU.
- Обеспечение упорядоченного выключения при потере внешнего питания.
- Генерация периодических прерываний для абсолютного хронометража.
FAQ
1. Зачем используются прерывания?
Прерывания фокусируют внимание CPU на срочных аппаратных или программных задачах, позволяя своевременные ответы без постоянного опроса.
2. Что такое NMI?
NMI — Non-Maskable Interrupt, сигнал, который не может быть отключен процессором, зарезервирован для критических событий.
3. Какая функция линии подтверждения прерывания?
Она сигнализирует устройству, что CPU готов принять прерывание, позволяя устройству поместить адрес ISR на шину.
4. Опишите аппаратное прерывание. Примеры.
Аппаратные прерывания генерируются внешними устройствами — нажатия клавиш, клики мыши, выходы сенсоров — требующими немедленного сервиса CPU.
5. Опишите программное прерывание.
Программные прерывания вызываются процессором через специальные инструкции, такие как системные вызовы или подпрограммы обработки исключений.
6. Какое прерывание имеет наивысший приоритет?
- Немаскируемые прерывания (NMI) и трапы имеют наивысший приоритет.
7. Некоторые использования прерываний.
- Быстрый отклик на реально-временные события.
- Передача данных с периферийными устройствами.
- Обработка критических задач: выключение питания, сторожевые таймеры.
- Репорт аномальных событий CPU.
8. Что такое гибридный тип системной реализации?
Гибридная система использует и фронтовой запуск, и верификацию уровня, гарантируя захват настоящих событий при снижении ложных срабатываний.
Статья исследует значимость прерываний, детализируя их типы, системную интеграцию и практические применения.
Встроенный
- Титановые проволоки: типы, свойства и промышленные применения
- 13 типов рефрактарных материалов и их ключевые промышленные применения
- Оксид гафния (HfO₂): структура, свойства и ключевые применения
- Принцип работы датчиков расстояния и их ключевые применения
- Датчик ЭКГ AD8232: функциональность и применения
- Ультразвуковой датчик HC-SR04: принцип работы и ключевые применения
- Датчики напряжения: принцип работы и ключевые применения в современных системах питания
- Лямбда-сенсор (кислородный): функция, принцип работы и ключевые автомобильные применения
- 3D-печать: технологии, процессы и принцип работы
- Виды газосварки: ацетилен, бензин, MAPP, пропан, водород — сравнение и применение