Page 110 - 6111
P. 110
Обмін інформацією з використанням переривань
використовується тоді, коли необхідна реакція мікропроцесорної
системи на якусь зовнішню подію, на прихід зовнішнього сигналу.
У випадку комп’ютера зовнішньою подією може бути, наприклад,
натискання на клавіші клавіатури або прихід локальною мережею
пакета даних. Комп’ютер повинен реагувати на це, відповідно,
виведенням символу на екран або ж читанням й обробкою
прийнятого з мережі пакета.
У загальному випадку організувати реакцію на зовнішню подію
можна трьома різними шляхами:
- за допомогою постійного програмного контролю факту
настання події (так званий метод опитування прапора або polling);
- за допомогою переривання, тобто насильного переведення
процесора з виконання поточної програми на виконання негайно
необхідної програми;
- за допомогою прямого доступу до пам’яті, тобто без участі
процесора при його відключенні від системної магістралі.
Перший випадок з опитуванням прапора реалізується в
мікропроцесорній системі постійним читанням інформації
процесором із пристрою введення/виведення, який зв’язаний з тим
зовнішнім пристроєм, на поведінку якого необхідно терміново
реагувати.
В другому випадку в режимі переривання процесор, отримавши
запит переривання від зовнішнього пристрою (часто званий IRQ -
Interrupt ReQuest), закінчує виконання поточної команди і
переходить до програми обробки переривання. Закінчивши
виконання програми обробки переривання, він повертається до
перерваної програми з того місця, де його перервали (рис.11.5).
Тут важливим є те, що вся робота, як і у випадку програмного
режиму, здійснюється самим процесором, зовнішня подія просто
тимчасово відволікає його від виконання програми. Реакція на
зовнішню подію по перериванню, в загальному випадку,
повільніша, ніж при програмному режимі. Як і у випадку
програмного обміну, тут усі сигнали на магістралі виставляються
процесором, тобто він цілком контролює магістраль. Для
обслуговування переривань у систему іноді вводиться спеціальний
модуль контролера переривань, але він в обміні інформацією участі
не бере. Його завдання полягає в тому, щоб спростити роботу
процесора з зовнішніми запитами переривань. Цей контролер,
зазвичай, програмно керується процесором системною магістраллю.
109