- •Лабораторна робота №1 Тема: Розвиток комп'ютерної архітектури
- •Таблиця 1.1. Основні етапи розвитку комп'ютерів
- •Таблиця 1.2. Перші моделі серії івм-360
- •Лабораторна робота №2 Тема: Типова архітектура еом.
- •Таблиця 2.1. Інтерпретація команд перетворення з різною кількістю адрес в адресній частині
- •Лабораторна робота №3 Тема: Формати команд. Адресовий простір еом
- •Лабораторна робота №4 Тема: Етапи виконання команди. Типи і структура даних. Взаємодія основних пристроїв еом.
- •Лабораторна робота №5 Тема: Структури універсальних, функціонально-орієнтованих і спеціалізованих процесорів. Мікропроцесори
- •Таблиця 3.1. Еволюція мікропроцесорів фірми Intel. Вироби 1970-х років.
- •Таблиця 3.2. Еволюція мікропроцесорів фірми Intel. Вироби 1980-х років.
- •Таблиця 3.3. Еволюція мікропроцесорів фірми Intel. Вироби 1990-х років.
- •Лабораторна робота №6 Тема: Арифметико-логічні пристрої
- •Лабораторна робота №7 Тема: Принцип мікропрограмного управління. Реалізація різних етапів виконання команд
- •Таблиця 15.2 Мікрокоманди пристрою керування гіпотетичного процесора Уілкса
- •Лабораторна робота №8 Тема: Організація даних на магнітному диску. Внутрішня пам’ять
- •Таблиця 6.1. Характеристики пзпмд
- •Лабораторна робота №9 Тема: Ієрархічна структура пам'яті. Віртуальна пам’ять.
- •Таблиця 6.3. Основні функції api для керування віртуальною пам'яттю в системі Windows nt
- •Лабораторна робота №10
- •Листінг 7.1. Приклад програмованого вводу-виводу
- •Лабораторна робота № 12 Тема: Класи переривань
- •Лабораторна робота №12 Тема: Переривання. Дії апаратного та програмного забезпечення
- •Дії апаратного забезпечення:
- •Дії програмного забезпечення:
- •Лабораторна робота № 13 Тема: Фаза переривання основного циклу
- •Лабораторна робота №14 Тема: Організація прямого доступу до пам’яті
- •Лабораторна робота № 15 Тема: Арбітраж шини
- •Лабораторна робота № 16 Тема: Персональні еом, їх різновидності
- •Лабораторна робота № 17 Тема:Робота еом у мультипрограмному режимі
- •Лабораторна робота № 18 Тема:Системи колективного користування з розподілом та без розподілу часу. Системи реального часу
Лабораторна робота № 12 Тема: Класи переривань
Практично у всіх сучасних комп'ютерах маються засоби, що дозволяють визначеним компонентам (або пам'яті модулям вводу-виводу) переривати нормальну роботу процесора. Нижче перераховані найбільш розповсюджені класи переривань.
Програмні переривання. Генеруються в деяких виняткових ситуаціях, що виникають при виконанні команд — при арифметичному переповненні, розподілі на нуль, спробі виконання команди з неіснуючим кодом операції, звертанні за адресою, що виходить за межі фізичного адресного простору комп'ютера.
Переривання таймера. Генеруються таймером, що організаційно входить до складу процесора. Ці переривання використовуються операційною системою для виконання деяких регулярних операцій.
Переривання вводу-виводу. Генеруються модулями вводу-виводу, щоб сигналізувати ЦП про те, що поточна операція вводу-виводу завершена або виникла яка-небудь помилка в процесі її виконання.
Аварійні переривання. Генеруються спеціальними засобами контролю працездатності апаратури при виявленні збоїв, зокрема відключення живлення або помилки контролю пам'яті по парності.
Зараз розглянемо деякі базові зведення про переривання, без яких буде складно зрозуміти структуру основного циклу обробки команди і вплив механізму обробки переривань на структуру системних магістралей. Зараз ми не будемо відволікатися на подробиці процесу генерування й обробки переривань, а зосередимося тільки на одному питанні — змінах у процесі обміну інформацією між модулями при виникненні переривання.
Сам по собі механізм роботи з перериваннями виник у результаті прагнення підвищити ефективність процесу обробки інформації в системі, що включає компоненти з різною швидкодією. Наприклад, до складу обчислювального комплексу часто входять зовнішні пристрої, що працюють значно повільніше, ніж ЦП. Припустимо, що процесор повинний передавати дані на принтер для виводу на друк і при цьому використовує приблизно таку ж послідовність фаз обробки, як раніше представлена на мал. 5.6. Після кожної операції передачі даних на принтер процесор буде змушений очікувати, поки механічні вузли принтера не завершать вивід переданого символу. Тривалість паузи може в сотні або тисячі разів перевищувати тривалість циклу обробки звичайної арифметичної команди з даними, що витягаються з пам'яті. Зовсім очевидно, що так використовувати процесор вкрай безглуздо.
На мал. 7.3,а цей спосіб обміну з низькошвидкістним пристроєм вводу-виводу представлений схематично. Користувальницька програма являє собою послідовність фрагментів обробки даних (на схемі — 1, 2 і 3), що переривається викликами підпрограми WRITE, що виконує пересилання масивів даних на пристрій вводу-виводу. Цю підпрограму можна умовно розділити на три частини.
1.Послідовність команд 1, що виконує підготовку до власне обміну даними з пристроєм вводу-виводу. Як правило, при цьому виведений масив даних копіюється в окремий буфер і набудовуються параметри команд керування зовнішнім пристроєм.
2.Власне команда передачі даних на пристрій виводу-вводу-виводу. Якщо в комп'ютері відсутній механізм роботи з перериваннями (чи він програмно відключений), програма, що передала команду виводу-вводу-виводу, повинна очікувати, поки пристрій не завершить її виконання. При цьому періодично в циклі виконується команда перевірки коду стану пристрою й аналізується, чи не з'явилася в ньому ознака, що операція завершена.
3.Послідовність команд 3 виконує операції, необхідні для завершення сеансу виводу. Зокрема, у такому фрагменті встановлюються програмні перемінні, котрі служать індикатором нормального або аварійного завершення операції.
Оскільки сама по собі операція виводу-вводу-виводу може займати досить багато часу, підпрограма практично блокує на цей час обробку даних, не даючи процесору займатися тим, що він найкраще вміє робити — складати, віднімати, множити і т.д.
Фаза переривання основного циклу
Якщо в комп'ютері мається механізм роботи з перериваннями, можна так організувати обчислювальний процес, що процесор не буде простоювати під час виконання операцій вводу-виводу. Розглянемо потік керування, представлений на діаграмі мал. 7.3,6. Перший фрагмент програми в цьому випадку виконується точно так само, як і в попередньому. Далі програма знову викликає підпрограму WRITE, але сама ця підпрограма складається тільки з фрагмента підготовки і власне команди запуску сеансу обміну. Підпрограма завершує свою роботу і повертає керування основній програмі, як тільки відправить на зовнішній пристрій команду запуску сеансу. Сам же пристрій, одержавши необхідні дані і команду, приступає до самостійної роботи, зчитуючи дані з пам'яті і виводячи їх на печатку. Таким чином, операції виводу-вводу-виводу й обробки інформації з’єднуються.
Коли зовнішній пристрій виявиться готовим до нового сеансу, модуль керування їм (модуль вводу-виводу) посилає сигнал запита переривання процесора. У відповідь процесор тимчасово припиняє виконання поточної послідовності команд і переходить на виконання підпрограми обробки даного переривання. Після завершення роботи програми обробки переривання, процесор повертається до перерваної роботи. Крапки, у яких виникають такі переривання, відзначені на схемі мал. 7,3,б зірочкою.
Що стосується користувальницької програми, сам термін "переривання" відноситься до нормального ходу виконання її команд, що переривається. Коли обробка переривання завершується, природна послідовність виконання команд програми відновлюється (мал. 7.4). Отже, користувальницька програма не має потреби в спеціальному коді, що буде зайнятий роботою з перериваннями — усі турботи по припиненню виконання користувальницької програми і поновленню її після завершення обробки переривання беруть на себе процесор і операційна система.
Контрольні питання:
Класи переривань, їх характеристика.
Реалізація виводу на печать з перериванням.