З погляду переривання, в кількість часу, ви тримаєте ключ вниз не має значення. Все, що важливим є визначити, коли подія спочатку відбувається.
На відміну від цього, рівень-спрацьовує переривання в деяких відносинах, як опитування винятком того, що процесор управляє опитування без втручання програми. Як правило, процесор зразки переривання, що надходять на певний час протягом кожного циклу шини, такі як державного Т2 для мікропроцесора Z80. Якщо переривання не працює, коли процесор зразки його, CPU не бачить його. Одне з можливих застосувань цього типу переривання є зведення до мінімуму помилкові сигнали від галасливої ??лінії переривань.
Останні переривання типу являє собою гібрид, в якому апаратні засоби не тільки виглядає для переходу, але вона також підтверджує, що сигнал переривання залишається активним протягом певного періоду часу. Загальна гібрид переривання NMI (немаскируемое переривання) вхід. Оскільки, як правило НМІ сигнал основні або навіть катастрофічні-системних подій, хороша реалізація цього сигналу намагається гарантувати, що переривання дійсно, перевіривши, що він залишається активним протягом певного періоду часу. Це 2-х ступінчастий підхід допомагає уникнути помилкових переривань від впливу на систему.
Обробка переривання
Добре, тепер у вас є сигнал переривання на CPU, наступний крок, щоб побачити, як вона впливає на роботу процесора. Жоден метод не описує всі можливі форми обробки переривань, так що я почну з простого опису і далі про більш складному.
Обробка переривань має деякі основні вимоги від процесора. Перш, ніж це може відповісти на переривання, процесор повинен чекати «перериваються» стану в його обробці. Наприклад, якщо процесор пише в пам'ять, він повинен чекати, поки записи не буде зроблено перед обробкою переривань. Після того, як CPU виявляє переривання, його перша дія, щоб зберегти всю інформацію, потрібно буде відновити нормальну обробку відразу переривання закінчена. Принаймні, чіп зберігає програми по боротьбі (ПК). Цей процес аналогічний ви, помістивши палець в книзі, коли хтось перериває вас, поки ви читаєте. Після перерви йде, ви точно знаєте, де, щоб продовжити.
Після збереження цього «закладки» інформації, процесор змінює значення ПК на фіксованому місці в пам'яті процесора, який містить покажчик на інструкції званий підпрограма обслуговування переривання (ISR) - Це говорить процесору, як боротися з перериванням. Коли ISR обробки, процесор відновлює первинну ПК і весело продовжує, як ніби нічого не сталося.
НМІ відмінним прикладом цього найбільш основної форми переривання. Багато процесори мають спеціальну переривання штифт, відведений для маркування таких катастрофічних подій, як збою живлення. Використовуючи цей переривання може дозволити вам кілька мілісекунд, в якому, щоб зберегти важливу інформацію з експлуатації або вимкнути систему, перш ніж влада повністю гине.
Крім цих основах, переривання часто спорту деякі удосконалення, які роблять їх ще більш корисним. Наприклад, одна спільна особливість для мультиплексування один вхід переривання, дозволяючи джерело переривання відправити ідентифікаційний код разом з сигналом, що дозволяє процесору визначити, який відбувся розрив. Цей код може приймати форму на адресу, де процесор може знайти ISR для цієї конкретної переривання або індекс в таблиці, де процесор може знайти адресу в ISR-х років. Код зазвичай йде в процесор на лініях даних.
При виникненні переривання, процесор також посилає сигнал підтвердження аналогічно пам'яті CPU читати сигнал, що інші частині використання системи для розміщення інформації на шині даних процесора. Я бачив питання процесорів від одного до чотирьох з них визнають сигнали для кожного переривання. Такі множинні сигнали дозволяють процесору отримати додаткову інформацію про переривання з апаратних засобів.
Залежно від мікропроцесора, ця інформація може бути у формі або вектора або адреса виконуваного коду операції. Останнє може піддається в деяких досить своєрідних реалізаціях.- Процедура обробник переривання основи
Нарешті, переривання не буде повним без обговорення того, що відбувається всередині ISR. Є два основних правила. По-перше, ISR необхідно зберегти потім відновити всі дані процесора, пам'яті і введення/виводу ресурсів, які він використовує. Наприклад, ці дані можуть включати в себе регістри процесора пам'яті, такі як допоміжної області для чисел з плаваючою точкою пакета (багато з яких такими не є). По-друге, він повинен повернутися з ISR якомога швидше. Причина для цього правила є те, що ISR не повинні, як правило блокувати нові переривання і до закінчення ISR не запуститься нове переривання. Таким чином, ISR повинна робити якомога менше, дл...