Пріоритети переривань

Обслуговування запитів тільки від одного периферійного пристрою відбувається за описаною вище схемою і не викликає будь-яких утруднень, бо початкова адреса підпрограми обробки переривань однозначно задається, а джерелом запиту є лише один ЗП.

Ситуація ускладнюється, якщо на лінію запиту переривань можуть подаватися сигнали від кількох ЗП. У такій системі можливий запит на переривання одразу від двох або більш ЗП під час виконання мікропроцесором деякої команди фонової програми. Отже, наприкінці виконання цієї команди мікропроцесор матиме справу з кількома запитами, які звуться одночасними, хоча в дійсності вони могли виникнути не в той самий момент, а протягом виконання одної команди. Система переривань повинна визначити, який із ЗП, що послав запит, треба обслуговувати негайно, а який може почекати. Іншими словами, вона має встановлювати черговість обслуговування ЗП, або ж їх пріоритет.

Цю задачу можна розв'язати двома методами: програмним або апаратним. При програмному методі процесор одержавши запит від якогось із зовнішніх пристроїв (поки що невідомо від якого) засилає в стек вміст лічильника команд, регістрів А та F і розпочинає послідовне опитування всіх ЗП, з'ясовуючи коїрий із них зробив запит. Це можна здійснити, наприклад, за допомогою команди IN ADR N, де ADR N - адреса N-того зовнішнього пристрою. У відповідь контролер цього пристрою видає слово готовності, в одному з розрядів якого стоїть одиниця, а в усіх інших - нулі. Командою JZ (або JNZ) мікропроцесор перевіряє слово готовності. Якщо опитуваний ЗП не видавав запиту, то його слово готовності виявляється нульовим і мікропроцесор переходить до опитування наступного за номером ЗП. Якщо ж у слові готовності є одиниця (воно не нульове), то запускається підпрограма обробки запиту для цього ЗП. Черговість опитування визначається рівнем пріоритетів ЗП: першим опитується найпріоритетніший, останнім - ЗП із найнижчим пріоритетом. Отже, пріоритетність ЗП закладається в

програму їх опитування. Такий метод програмного опитування називається полінгом. Приклад блок-схеми програми полінгу зображено на рис. 9.3і.

Для входження в програму полінгу за сигналом збірного INT (і після одержання відповіді INTA) адреса самої підпрограми полінгу вводиться на ПІД із буферного регістра подібно до того, як це робилось для команди рестарту (рис. 9.2.). Буфер звичайно має бути запрограмований на фіксовану адресу підпрограми полінгу. Недоліком методу полінгу є його деі^о мала швидкодія, бо щоразу програмне доводиться опитувати підряд усі контролери зовнішніх пристроїв.

1 При цьому методі організації переривань контролери ЗП видають тільки сигнал з одиницею в молодшому біті, а адреса підпрограми обробки переривань закладається в програмі полінгу. Отже, немає потреби в командах рестартів.

Кращим щодо цього є метод векторних переривань, за яким ЗП сам сповіщає мікропроцесору своє ім'я (вектор) і запускає в дію відповідну програму обробки переривань. Цей процес здійснюється автоматично (апаратно) і не потребує складних та повільно діючих програм. Блок-схему такої системи зображено на рис. 9.4.

Зовнішні пристрої через диз'юнктор (схему АБО) виставляють свої запити на переривання на збірну лінію INT. У відповідь на це із системного контролера виходить сигнал підтвердження переривань


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: