На головну

Організація системи переривання програм

  1. B) програмованої логіки
  2. I. Використання користувальницької підпрограми-функції
  3. I. Організація проведення Конкурсу

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

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

Кожна подія, що вимагає переривання програми, супроводжується сигналом, що сповіщає мікропроцесор, який називається запитом переривання (  ). Програма, затребувана запитом переривання, називається перериває програмою.

Щоб мікропроцесорна система могла реалізувати переривання програм їй необхідно мати відповідні апаратні і програмні засоби, сукупність яких отримала назву системи переривання програм або контролера переривань.

Основне призначення системи переривання - це автоматичне переривання програм з метою збільшення його швидкості перемикання.

Основними функціями системи переривання є: запам'ятовування стану переривається програми, ідентифікація перериває пристрої та здійснення переходу до перериває програму, а також відновлення стану перерваної програми і повернення до неї.

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

Однак загальна послідовність реакції різних мікропроцесорів на сигнал переривання приблизно однакова і містить наступні дії:

- Пристрій генерує сигнал переривання, який подається на вхід переривання мікропроцесора (INT); на цій лінії за схемою АБО об'єднуються запити всіх пристроїв, що працюють в режимі переривання;

- Мікропроцесор завершує поточну команду і, якщо переривання дозволені (НЕ замасковані), формують сигнал INTA підтвердження переривання; до отримання цього сигналу пристрій зберігає активний рівень сигналу INT;

- Здійснюється запам'ятовування вмісту програмного лічильника і деяких РОН в стеці;

- Мікропроцесор ідентифікує перериває пристрій для переходу до відповідної підпрограми обслуговування;

- Виконується коротка (30-50 байт) підпрограма обслуговування переривання, в якій запрограмовані дії з передачі даних, модифікації покажчиків, перевірці закінчення операцій введення-виведення та ін .;

- Відновлюється стан перерваної програми, для чого запомненное вміст регістрів витягуються з стека;

- Поновлюється виконання переривається програми; це дія ініціюється командою повернення з переривання, що є останньою командою підпрограми обслуговування переривання.

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

Для оцінки ефективності систем переривання можуть бути використані наступні характеристики.

час реакції  - Час між появою сигналу переривання і початком виконання перериває програми (включаючи час виконання циклу переривання мікропроцесора).

час обслуговування  є сума часу, витраченого на збереження стану перерваної програми, і часу на повернення до неї:

глибина переривання - Максимальне число програм, які можуть переривати один одного. Якщо після переходу до перериває програму і аж до її закінчення прийом інших запитів переривань заборонений, то система має глибину переривання рівну 1. Глибина дорівнює  , Якщо допускається послідовне переривання до  програм. Глибина переривань зазвичай збігається з числом рівнів пріоритету в системі переривань.

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

число рівнів (Класів) переривання - сукупність запитів, що ініціюють одну і ту ж переривають програму.

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

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

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

масковані переривання реалізується тільки за умови дозволу переривання. Процесор реагує на запити маскуються переривань по лінії INT, якщо встановлений внутрішній тригер дозволу переривань INTE, званої також маскою. На малюнку 1.7 приведена функціональна внутрішня схема переривань.

Малюнок 1.7. Внутрішня схема переривань

Стан тригера дозволу переривання INTE ідентифікується вихідним сигналом дозволу переривання з такою ж мнемонікою INTE. Якщо INTE = 0, переривання заборонені (замасковані) і процесор не реагує на сигнал INT = 1. За допомогою команд дозволу EI і заборони DI переривань можна програмно керувати станом тригера INTE, і користувач може захистити від переривань критичні сегменти прикладної програми.

При сприйнятті переривання тригер переривання IFF переводитися в нульовий стан, що призводить до заборони инкремента програмного лічильника і генерування сигналу підтвердження переривання INTA.

При цьому скидається тригер INTE і надалі дозволити переривання можна тільки командою EI. Для програмного управління ПУ в їх регістрах управління і стану передбачений спеціальний біт INTEN дозволу переривання (маска). Іноді біти масок усіх пристроїв об'єднуються в спеціальний регістр. Нарешті, в деяких мікропроцесорах біт маскування переривання входить в слово стану процесора PSW.

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

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

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

Для реалізації векторного пріоритетного переривання необхідно розподілити пріоритети між рівнями і забезпечити механізм взаємодії підпрограм обслуговування переривання відповідних рівнів.

Розподіл пріоритетів між рівнями можуть реалізовуватися різними способами.

Одним з цих способів є векторне переривання з фіксованим пріоритетом. Кожному рівню (входу) запитів переривання присвоюється фіксований пріоритет в порядку зростання. Запит з більш високим пріоритетом перериває обслуговування переривання з меншим пріоритетом.

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

Цей спосіб характерний для таких застосувань, в яких пристрої мають однаковий пріоритет і жодному з них не можна віддати переваги.

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

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

Переривання підпрограм обслуговування переривань називається вкладеним перериванням.

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

Для організації вкладених переривань в кожній підпрограмі обслуговування переривань необхідно виконати наступні дії:

- Дозволити переривання;

- Тимчасово запам'ятати пріоритет перерваної програми;

- Завантажити в схему пріоритетних переривань новий поточний пріоритет;

- Власне обслужити переривання;

- Відновити колишній пріоритет;

- Відновити перервану програму за допомогою команди RTI.

При визначенні пріоритету переривання програм розрізняють два його значення: пріоритет між запитами переривання і пріоритет між переривають програмами.

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

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

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

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



Принципи побудови пристроїв пам'яті | Подання чисел в мікропроцесорах

Загальні відомості про мікропроцесори | Поняття мікропроцесорного комплекту БІС. Класифікація мікропроцесорів і їх основні характеристики | Структура мікропроцесорного пристрою (системи) | Виконання арифметичних операцій | Склад мікропроцесорного комплекту | Структурна схема мікропроцесора | Арифметико-логічний пристрій | блок регістрів | буферні схеми | Система команд мікропроцесора |

© um.co.ua - учбові матеріали та реферати