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

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

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

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

Добавлен: 24.12.2021

Просмотров: 6776

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



404


Процесор безупинно опитує регістр команд і станів кожного пристрою введення-ви-ведення, чекаючи на надходження даних (рис. 11.6). Тому програмно-кероване введен-ня-виведення іноді називають введенням-виведенням за запитами. Як тільки процесор виявляє умову готовності даних, він діє згідно з вказівками команд з програми відповід­ного пристрою введення-виведення.

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

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

Один з варіантів з'єднання процесора і відеотерміналу показаний на рис. 11.7.




405

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

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

11.5. Система переривання програм та організація введення-виведення за перериваннями

11.5.1. Функції системи переривання програм

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

■ зупинення виконання програми, пов'язане з перевищенням виділеного часу для її виконання;

  • запити оператора, який вирішив внести зміни до програми під час її виконання;

  • запити периферійних пристроїв за причини завершення операцій введення-ви­ведення або потреби проведення додаткових операцій по їх обслуговуванню;

  • переповнення розрядної сітки;

  • ділення на нуль;

  • вихід за дозволені границі пам'яті і т. д.

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


406

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

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

Переривання програм - це властивість комп'ютера тимчасово переривати виконан­ня поточної програми на час виконання деяких подій і передавати керування програмі, яка спеціально передбачена для даної події.

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

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

Часова діаграма процесу переривання наведена на рис. 11.8.

Тут tp - час реакції системи переривання на запит переривання; t3 - час запам'ято­вування стану перериваної програми, tвпп - час виконання переривальної програми, tв - час виходу з переривальної програми та повернення до перериваної програми (від­новлення її стану).

11.5.2. Характеристики системи переривання програм

До основних характеристик системи переривання програм належать наступні:

  • час реакції tp, який показує як швидко система реагує на запит переривання;

  • час обслуговування переривання - затрати часу на вхід в переривальну програ­му та вихід з переривальної програми to = t3 + tB;

  • глибина переривання - максимальне число програм, які можуть переривати одна одну;

  • кількість входів приймання переривань.

На рис. 11.9 показано переривання двох програм запитами, причому перша програ­ма має глибину переривання 2, а друга - 3.


407

В першому випадку, коли поступив запит переривання 2, виконання першої про­грами переривається і виконується друга програма, яка виконується до завершення не дивлячись на те, що під час її виконання поступив запит 3. Це пояснюється тим, що система переривання програм не дозволяє виконання наступного переривання. Після закінчення виконання програми 2 виконується програма 3 (звичайно, якщо вона має вищий пріоритет, ніж програма 1), а тоді відбувається повернення до виконання програми 1. В другому випадку з поступленням кожного запиту переривання він обслуговується без затримки. Чим більша глибина переривання, тим краще враховуються пріоритети запи­тів переривання. Якщо tp або to більше за час надходження запиту переривання від того ж джерела (події), то виникає так зване насичення системи переривання, чого не можна допускати.

11.5.3. Вхід в переривальну програму

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

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

  • включення в кожну команду програми розряду дозволу переривання. В цьому випадку програміст сам слідкує за тим, щоб переривання не зашкодило виконанню пе­рериваної програми. Недолік цього способу - великий час реакції tp, а також створення додаткових клопотів програмісту;

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

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


408

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

Після визначення допустимого моменту переривання потрібно визначити початкову адресу переривальної програми з тим, щоб приступити до її виконання. Зрозуміло, що джерел переривання може бути декілька. Це, наприклад, запити від пристроїв введення-виведення, від джерела живлення, від засобів захисту пам'яті, від АЛГІ. Тому система переривання програм повинна вміти розпізнати причину переривання та вказати на по­чаткову адресу програми, яка обробляє це переривання. Існують наступні способи ви­значення початкової адреси переривальної програми:

■ програмне розпізнавання причин переривання. Запит переривання спочатку фік­сується, а потім переривальна програма проводить опитування джерел переривання;

■ апаратне розпізнавання причин переривання. Тут кожному джерелу перериван­ня, або групі джерел переривання, ставиться у відповідність своя адреса початку пере­ривальної програми. Кількість початкових адрес рівна кількості рівнів системи перери­вання. Для реалізації цього способу потрібні додаткові апаратні засоби.

Зазвичай використовують комбінацію обох описаних способів, тобто апаратно-про­грамне розпізнавання причин переривання.

На рис. 11.10 наведено пристрій фіксування запитів переривання та формування по­чаткової адреси переривальної програми.