ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6777
Скачиваний: 22
409
Запити поступають в систему переривання по спеціальній шині запиту переривання. Запити з однаковим пріоритетом поступають на ті ж самі логічні схеми АБО. Сигнал переривання сигналізує про те, що даний пристрій потребує переривання програми. Всі сигнали переривання зазвичай фіксуються в регістрі коду переривання РгКП. Оскільки сигнали переривання є асинхронними, будь-який пристрій може послати переривання в довільний момент часу, включаючи і моменти, коли обробляється попереднє переривання. Для запобігання виконання переривання програми до збереження необхідної інформації, потрібної для повернення до виконання перериваної програми, до складу системи переривання програм вводиться тригер блокування переривання (ТБП). Крім того, в системі переривання існує тригер очікування переривання (ТОП), який інформує пристрій керування про потребу проведення переривання. Тригер блокування переривання блокує схеми І, та не дозволяє фіксацію запиту переривання в тригері очікування переривання. За значенням вмісту регістра коду переривання дешифратор формує початкову адресу переривальної програми. Мікронакази скидання регістра РгКП та тригерів ТБП і ТОП формує пристрій керування комп'ютера.
11.5.4. Пріоритетне обслуговування переривання
Джерел переривання в комп'ютері є багато, і запити від них можуть поступати одночасно, тому потрібно встановити порядок їх обслуговування, тобто пріоритетність.
В системі переривання програм є два типи пріоритетів:
■ пріоритет між запитами переривань;
■ пріоритет між переривальними програмами.
Перший пріоритет потрібний головним чином для селекції: вибирається один запит з багатьох, оскільки комп'ютер не завжди може відразу прийняти декілька запитів. Він може бути реалізований методом послідовного пошуку, або шляхом паралельного дешифрування всіх запитів, та вибору з них одного за якимось правилом, наприклад, з найменшим номером серед прийнятих запитів.
Другий пріоритет визначає фактичний порядок, в якому переривальні програми будуть виконуватись.
Вибір пріоритету програм в багаторівневій системі переривання програм є досить складною задачею. Часто пріоритетність програм потрібно поміняти. Тому встановлення пріоритетів має бути програмно керованим.
В сучасних комп'ютерах використовується метод встановлення програмно-керованого пріоритету, який забезпечує присвоєння пріоритету програмістом, який називають маскою переривань. Маска переривань - це двійкове число, кожний розряд якого ставиться у відповідність одному із рівнів переривання і дозволяє (якщо його значення рівне 1), або забороняє (якщо його значення рівне 0) переривання від запитів, які належать до даного рівня. Існує регістр маски переривань, вміст якого змінюється програмним шляхом. Значення розрядів нього регістра поступають на логічні схеми І пристрою фіксування запитів переривання та формування початкової адреси переривальної програми, як це показано на рис. 11.11, та дозволяють, або забороняють, фіксацію запиту переривання в тригері очікування переривання ТОП. Для того, щоб значення в тригері очікування переривання не було змінене до його фіксації, в пристрій введено тригер блокування переривань ТБП.
410
Для кожної переривальної програми може бути встановлена своя маска. Маска для всіх програм зберігається в основній пам'яті та засилається в регістр маски, якщо викликається до виконання відповідна програма.
Крім індивідуальних масок можуть бути і групові, в яких один розряд належить до декількох рівнів. Вищим ступенем в такій ієрархії масок може бути головний тригер, який виключає систему переривання повністю.
Якщо запит переривання заборонений маскою, він або ігнорується, або запам'ятовується відповідною апаратурою, про що може бути відповідна вказівка в масці переривання.
11.5.5. Організація повернення до перериваної програми
Повернення до перериваної програми полягає у відновленні стану цієї програми, в якому вона була в момент переривання і який був збережений в момент входу в пере-ривальну програму.
Інформація про біжучий стан перериваної програми ділиться на дві частини:
-
основну, яка повинна запам'ятовуватись завжди при вході в переривальну програму;
-
додаткову інформацію, необхідність запам'ятовування якої залежить від змісту переривальної програми.
До складу першої частини інформації про біжучий стан перериваної програми належать:
-
вміст лічильника команд;
-
стан тригера роботи комп'ютера (робота/зупинка);
-
маска переривання;
■ код переривання - двійковий номер джерела переривання;
■ вміст регістрів захисту пам'яті.
47 ї
Перераховані дані компонуються в так званий вектор переривання, який займає декілька комірок основної пам'яті.
В деяких комп'ютерах, наприклад в системі IBM 370, для збереження вектора переривання використовується регістр слова стану програми РгССП. В ньому зберігаються код переривання, маска переривання та інша важлива інформація. Початкова частина переривальної програми проводить запам'ятовування ССП перериваної програми і встановлює ССП переривальної програми. Заключна частина переривальної програми відновлює ССП перериваної програми. Під час заміни ССП будь-яке нове переривання забороняється.
До складу другої частини інформації про біжучий стан перериваної програми належать вміст індексних та інших програмно доступних регістрів. В більшості випадків сам програміст визначає, що тут необхідно зберігати.
11.5.6. Введення-виведення за перериваннями
При програмно-керованому введенні-виведенні процесор чекає, коли зовнішній пристрій буде готовий до обміну. В цей час він не зайнятий роботою. Інший підхід - процесор постійно працює, а при необхідності введення-виведення з пристрою введення-виведення до нього по спеціальній лінії поступає запит переривання. Це і є введення-виведення за перериваннями, реалізація якого покладена на систему переривання програм, описану вище. Тому організація введення-виведення за перериваннями не відрізняється від виконання інших програм, які виконуються в комп'ютері з за діянням системи переривання програм.
Коли поступає переривання від зовнішнього пристрою, процесор припиняє виконання поточної перериваної програми і переходить до програми обслуговування цього переривання, тобто до переривальної програми, наприклад, це може бути програма друкування, як це показано на рис. 11.12.
Якщо сигнал переривання поступав при виконанні і-1 команди перериваної програми, її виконання закінчується, запам'ятовується вміст програмного лічильника і процесор переходить до виконання переривальної програми друкування, після закінчення
412
якої знову загружає в програмний лічильник раніше запам'ятоване значення, і продовжує виконання поточної перериваної програми.
Коли процесор приступає до обслуговування переривання, він повідомляє про це відповідний пристрій введення-виведення, який після цього знімає запит.
Введення-виведення за перериваннями можна представити як інверсію програмованого введення-виведення. Замість того, щоб процесор безупинно опитував приєднані до нього пристрої чи вони хочуть вводити інформацію, самі ці пристрої говорять процесору, коли вони мають дані для посилання. Процесор обслуговує інші задачі поки пристрій введення-виведення не виставить переривання. Про наявність переривання повідомляє відповідний прапорець в регістрі стану процесора, який називається прапорцем переривання.
Як тільки прапорець переривання встановлений, операційна система перериває виконання поточної програми, зберігаючи стан програми і її змінну інформацію. Система переривання вибирає адресний вектор, який указує на адресу службової програми введення-виведення. Після того, як процесор завершив обслуговування введення-виведення, він відновлює інформацію, яка була збережена від перерваної програми, і виконання програми поновлюється.
11.6. Прямий доступ до пам'яті
Для звільнення процесора від організації введення-виведення з синхронними пристроями введення-виведення, передача даних з яких здійснюється з частотою, незалежною від процесора і не зв'язаною з його частотою, використовується прямий доступ до пам'яті, коли передача блоків даних здійснюється прямо між пам'яттю і пристроями введення-виведення без участі процесора. Наприклад, магнітний диск не можна зупинити після записування символу.
В цьому випадку необхідний контролер прямого доступу до пам'яті, який керує взаємодією пам'яті та пристроїв введення-виведення без участі процесора.
На рис 11.13 показаний двоканальний контролер прямого доступу до пам'яті, який керує зв'язком основної пам'яті з дисковою пам'яттю і високошвидкісним принтером,
413
До складу контролера входять:
-
регістр даних;
-
регістр адреси;
-
лічильник слів;
-
регістр команд;
-
регістр станів;
■ логіка керування.
Ці вузли мають свої адреси для засилання в них інформації з процесора. Кількість таких вузлів кратна кількості каналів.
Для початку передавання даних між пам'яттю і пристроєм введення-виведення в контролер записується наступна інформація:
■ адреса пам'яті;
■ кількість слів;
■ адреса даних в пристрої введення-виведення
(на диску);
■ виконувана функція
(запис/зчитування).
Ця інформація поступає в контролер з процесора. Коли передача закінчена, цей факт реєструється в регістрі станів контролера. Тут також записується інформація про помилки при передачі даних. Після закінчення введення-виведення, чи при наявності помилки, система прямого доступу до пам'яті повідомляє про це процесор відповідним сигналом переривання.
Як це видно з рисунку, контролер прямого доступу до пам'яті та процесор розділяють шину пам'яті. Тільки один з них в той же час може мати контроль над шиною. Загалом, пристрої введення-виведення мають перевагу над процесором при взаємодії з пам'яттю, тому що багато пристроїв введення-виведення діють з суттєвими часовими обмеженнями. Якщо вони не проводять ніякої діяльності в межах вказаного періоду, вони припиняють роботу і переривають процес введення-виведення. Оскільки пересилання інформації від пристроїв введення-виведення здійснюється блоками не досить довгої тривалості, це не суттєво впливає на продуктивність процесора.
11.7. Введення-виведення під керуванням периферійних процесорів
11.7.1. Принципи введення-виведення під керуванням периферійних процесорів
Програмно-кероване введення-виведення передбачає передачу одного байта за один раз. Кероване перериваннями введення-виведення також може маніпулювати даними по одному байту за один раз або малими блоками, залежно від виду пристрою, що бере участь у введенні-виведенні. Повільніші пристрої, як наприклад клавіатура, генерують більшу кількість переривань відносно кількості переданих байтів, ніж диски або принтери. Методи прямого доступу до пам'яті є блочно-орієнтованими. Тут переривання роботи процесора відбувається лише після завершення (або помилки) передачі групи байтів. Після того, як система прямого доступу до пам'яті сигналізує про завершення введення-виведення, процесор може надати їй адресу наступного блоку пам'яті, для зчитуван-