logo search
AK

3.2.1. Типи і основні характеристики системи переривань

Роботу будь-якого комп’ютера можна представити як сукупність подій, які відбуваються усередині і поза процесором. Деякі події є програмно-залежними, інші - незалежними.

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

Зовнішні події - запити від таймера, будильника, модема, пристроїв вводу/виводу. Кожний комп’ютер повинен своєчасно реагувати на всі події. Перше рішення: сканування незалежних подій. Сканування - включення в програму спеціальних команд, за допомогою яких можна визначати появу незалежних подій.

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

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

Основні завдання СП:

      1. Пріоритетне обслуговування запитів переривань (ЗП). Окремі запити від джерел ЗП виникають у випадкові моменти часу, отже, може виникнути ситуація, коли буде більше одного ЗП. Для того, щоб вибрати з цих ЗП найважливіший, їм приписується пріоритет. Переривання схем контролю мають найвищий пріоритет, пристрої вводу/виводу - відповідно до швидкодії (більша швидкість - більший пріоритет). У сучасних комп’ютерах пріоритет встановлюється гнучким(програмно-керований).

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

      3. Запам'ятовування стану перерваної програми і її відновлення після обслуговування переривання. Вся інформація формується в спеціальних словах PSW - ССП - слово стану програми.

Рис. 3.8. – Часові параметри СП

Основнами характеристиками СП є:

1. Часові (рис. 3.8)

tp = t2 - t1 - час реакції МП.

tзап = t3 - t2 - час запам'ятовування.

tвч = t4 - t3 - власна частина - корисний час роботи обслуговуючої програми.

tв = t5 - t4 - час відновлення перерваної програми.

2. Число входів в СП - загальне число джерел переривання (>1000). Число обслуговуючих програм значно менше числа джерел. Всі запити об'єднуються в класи. Для кожного класу може бути власна обслуговуюча програма. Така СП називається багаторівневою. Аналіз виникаючих запитів виконується за допомогою спеціальних схем. Можливе програмне розпізнавання причин переривання, тоді СП може бути однорівневим. Якщо разом з запитом видається адреса обслуговуючої програми, СП називається векторною. У мейнфреймах (МФ) СП - багаторівнева, у мікропроцесорних системах - векторна. У багаторівневих МФ існує 5 класів переривання:

Чим вище номер класу, тим нижче пріоритет. Пріоритет для обслуговуючих програм - зворотний (окрім машинних).

3. Глибина переривання – кількість програм, які можуть переривати одна одну. Якщо після виконання програми, система не реагує на інші запити, то глибина дорівнює одиниці.

4. Насичення СП. Якщо до моменту вступу другого запиту не встигли обслужити перший запит від того ж джерела, то СП зветься насиченою. До складу будь-якої СП входить спеціальний регістр, який називається регістром переривань і який складається з декількох тригерів. Кожен тригер реєструє виникаючі запити певного класу, рівня або номера. Якщо обчислювальна система вибрала найбільш авторитетний з виниклих запитів, то відповідний тригер скидається в нуль. СП для аналізу стану тригерів регістра переривань використовує спеціальну схему аналізу запитів переривань. Кожен тригер відповідного рівня переривань жорстко підключається до одного з входів цієї схеми. Це рішення має такий недолік - пріоритет переривання виявляється жорстким, а в будь-якій обчислювальній машині відносна важливість виникаючих запитів і відповідних програм, обслуговуючих ці запити з часом міняються, тому в кожній системі переривань бажано мати пріоритети, що динамічно змінюються, як серед запитів, так і серед обслуговуючих програм.

Для здобуття пріоритету, що програмно-змінюється, з кожним тригером запиту переривань зв'язується ще один тригер, що входить в ще один регістр, який називається регістром маски. Якщо в певний момент часу запит відповідного рівня заборонений, у відповідному розряді регістра маски записується нуль (така ситуація називається «замаскованим запитом»). Якщо в якомусь розряді регістра маски записана одиниця, то запит демаскований. Для кожної програми задається власна маска - отримуємо програмно-керований пріоритет.

Схеми аналізу запитів переривань можуть бути наступних типів: схема з циклічним оглядом, схема огляду матричного типу, схема з регістром маски. Завдання кожної схеми огляду (СО) - знайти найстаршу одиницю в регістрі переривань, тобто визначити найбільший пріоритет з виниклих на даний час запитів і по номеру цього запиту обчислити початкову адресу переривання програми, яка обслуговуватиме даний запит.

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