Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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. Принципи введення-виведення під керуванням периферійних процесорів

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