Найчастіше під час роботи ПК виникає ситуація, коли процесору не обходимо призупинити виконання основної програми і обробити подія, що виникло в одному з пристроїв комп'ютера. Для вирішення цієї проблеми використовується механізм переривань.
Переривання (interrupt, INT) - це припинення центральним процесором виконання пріоритетної програми для обробки події, яке надійшло від одного з пристроїв.
Механізм переривань реалізований наступним чином:
- У разі виникнення події, що вимагає втручання ЦП, пристрій, який викликало дану подію, посилає спеціальний сигнал - запит на переривання.
- Запит на переривання обробляється контролером переривань.
- Сигнал, після обробки контролером переривань, передається процесору. Процесор призупиняє виконання основної програми (зберігаючи при цьому поточний стан своїх регістрів в оперативну пам'ять) і обробляє дане переривання. Після обробки переривання процесор продовжує виконувати основну програму.
- У разі виникнення одного переривання під час обробки процесором іншого, виконання переривань буде згідно з їх пріоритетом.
Контролер переривань (Programmable Interrupt Controller, PIC) - це мікросхема (або вбудований в процесор модуль), яка виконує обробку запитів на переривання від різних пристроїв.
Кожному переривання привласнюють число, зване номером переривання. Деякі з номерів переривання зарезервовані за певними пристроями, деякі можна звільнити і використовувати для інших пристроїв. Позначається переривання символом IRQ.
1. немаскіруемое переривання (Non-Maskable Interrupt, NMI). Переривання з вищим пріоритетом. Переривання даного типу обробляються у випадках виникнення аварійних ситуацій, викликаних помилками в роботі пам'яті або інших пристроїв.
2. Масковані (апаратні) переривання. У цю групу відносять переривання від периферійних пристроїв. Обробляються контролером переривань. Стандартний контролер переривань дозволяє звертатися до 16 переривань від різних пристроїв. Сьогодні є можливість використовувати розширений контролер переривань APIC.
APIC (Advanced Programmable Interrupt Controller) - розширений програмований контролер переривань, що дозволяє використовувати 24 апаратних переривань замість 16.
Прикладом апаратного переривання може бути сигнал від таймера, звукової карти, натискання клавіші клавіатури.
Апаратні переривання і зарезервовані за ними пристрої