logo
AOM / Мельник А

11.5.3. Вхід в переривальну програму

При поступленні запиту переривання системи переривання програм повинна спо­чатку визначити допустимий момент переривання і початкову адресу переривальної програми. При цьому, для забезпечення повернення до перериваної програми, вміст елементів пам'яті комп'ютера, в першу чергу лічильника команд та регістра станів, в мо­мент її переривання повинен бути збережений з тим, щоб після завершення виконан­ня переривальної команди відновити цей вміст та продовжити виконання перериваної програми.

Існують наступні способи визначення допустимого моменту переривання:

■ переривання дозволено після кожного такту команди. Тут час реакції tpє міні­мальним. Недолік цього способу: необхідність збереження станів не тільки програмно доступних регістрів та комірок пам'яті, включаючи і кеш пам'ять, а й недоступних про­грам і вузлів, зокрема вмісту лічильника тактів.

408

Другий і третій способи використовуються в комп'ютерах найчастіше. При цьому потрібно зазначити, що для їх реалізації в процесор необхідно ввести спеціальні апа­ратні та програмні засоби для проведення операцій із збереження та відновлення після завершення переривальної програми вмісту програмно доступних регістрів та комірок основної пам'яті, в яких зберігалася програма, включаючи і кеш пам'ять. Як ми вже наго­лошували раніше, для обробки переривань в пам'яті макрокоманд пристрою керування для цього записані спеціальні мікропрограми.

Після визначення допустимого моменту переривання потрібно визначити початкову адресу переривальної програми з тим, щоб приступити до її виконання. Зрозуміло, що джерел переривання може бути декілька. Це, наприклад, запити від пристроїв введення-виведення, від джерела живлення, від засобів захисту пам'яті, від АЛГІ. Тому система переривання програм повинна вміти розпізнати причину переривання та вказати на по­чаткову адресу програми, яка обробляє це переривання. Існують наступні способи ви­значення початкової адреси переривальної програми:

■ програмне розпізнавання причин переривання. Запит переривання спочатку фік­сується, а потім переривальна програма проводить опитування джерел переривання;

■ апаратне розпізнавання причин переривання. Тут кожному джерелу перериван­ня, або групі джерел переривання, ставиться у відповідність своя адреса початку пере­ривальної програми. Кількість початкових адрес рівна кількості рівнів системи перери­вання. Для реалізації цього способу потрібні додаткові апаратні засоби.

Зазвичай використовують комбінацію обох описаних способів, тобто апаратно-про­грамне розпізнавання причин переривання.

На рис. 11.10 наведено пристрій фіксування запитів переривання та формування по­чаткової адреси переривальної програми.

409

Запити поступають в систему переривання по спеціальній шині запиту перериван­ня. Запити з однаковим пріоритетом поступають на ті ж самі логічні схеми АБО. Сигнал переривання сигналізує про те, що даний пристрій потребує переривання програми. Всі сигнали переривання зазвичай фіксуються в регістрі коду переривання РгКП. Оскільки сигнали переривання є асинхронними, будь-який пристрій може послати переривання в довільний момент часу, включаючи і моменти, коли обробляється попереднє перериван­ня. Для запобігання виконання переривання програми до збереження необхідної інфор­мації, потрібної для повернення до виконання перериваної програми, до складу системи переривання програм вводиться тригер блокування переривання (ТБП). Крім того, в системі переривання існує тригер очікування переривання (ТОП), який інформує при­стрій керування про потребу проведення переривання. Тригер блокування переривання блокує схеми І, та не дозволяє фіксацію запиту переривання в тригері очікування пере­ривання. За значенням вмісту регістра коду переривання дешифратор формує почат­кову адресу переривальної програми. Мікронакази скидання регістра РгКП та тригерів ТБП і ТОП формує пристрій керування комп'ютера.