Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга. Гуржій. 1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.53 Mб
Скачать

Заняття 5. Керування режимами роботи пкп

Тема заняття

Засоби та способи керування режимами роботи ПКП.

Мета заняття

Вивчити способи керування режимами роботи ПКП. У Засвоїти, яку структуру переривань підтримує режим повного вкладення.

Засвоїти, яким чином розпізнаються запити на пе­реривання.

Вивчити наявні способи завершення переривання (ЕОІ).

Навчитись використовувати для завершення процедури обробки переривання звичайну команду ЕОІ.

Навчитись використовувати для завершення процедури обробки переривання спеціальну команду ЕОІ.

Вивчити можливості режиму автоматичного завершення процедури обробки переривання (АЕОІ).

Навчитись використовувати режим читання стану контролера І8259А.

Навчитись використовувати режим опитування джерел переривань (POLL).

Навчитись використовувати спеціальний режим повного вкладення (SFNM).

Зрозуміти та засвоїти відмінності між режимом маску­вання переривань та спеціальним режимом маскування (SMM).

Керування режимами роботи

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

Режим повного вкладення (фіксованих пріоритетів) Режим фіксованих пріоритетів підтримує багато­рівневу структуру переривань, в якій усім восьми входам IRQ контролера призначається фіксований порядок пріоритетів від вищого до нижчого. В базовій конфігурації PC AT цей режим використовується як основний.

Така структура пріоритетів встановлюється за замов­чанням при ініціалізації. При цьому IRQ0 отримує вищий пріоритет, a IRQ7 нижчий. Але режим повного вкладення не обмежується тільки такою структурою задання пріори­тетів. Після ініціалізації вищий пріоритет може бути присвоєний і іншим входам IRQ при збереженні багато­рівневої структури переривань режиму повного вкладення (див. рис. 2.10).

Коли по кількох входах IRQ приходять запити, схема пріоритетів вибирає з них найбільш пріоритетний згідно з встановленим статусом та формує сигнал INTR у мікро­процесор. Мікропроцесор, підтверджуючи запит на обслуго­вування переривання, отримує по шині X вектор переривання по пріоритетному запиту, а І8259А встанавлює відповідний розряд у регістрі ISR, щоб позначити переривання, що обслуговується. Цей розряд ISR залишається незмінним до надходження на І8259А команди закінчення переривання (ЕОІ).

У режимі повного вкладення, поки встановлений розряд ISR, всі наступні запити з таким самим або нижчим пріоритетом не викликають вироблення сигналу INTR для мікропроцесора. Але запити вищого пріоритету можуть формувати запит на переривання для мікропроцесора. Переривання в цьому випадку підтверджуються тільки в тому випадку, якщо мікропроцесор перед цим виконав команду STI. Це пояснюється тим, що вивід запиту переривання на мікропроцесорі автоматично забороняється після підтвердження будь-якого переривання.

На рис. 2.12 наведено взаємодію програм оброблюва­чів переривань з різними рівнями пріоритетів у режимі повного вкладення.

Припустимо, що у випадку, зображеному на рис. 2.12, IRQ0 має вищий пріоритет, a IRQ7 — нижчий, і під час виконання основної програми надходить запит від IRQ3. Оскільки переривання дозволені (командою STI), мікро­процесор переходить до виконання програми оброблювача по IRQ3. Під час виконання цієї програми надходить запит від IRQ1. Оскільки, пріоритет IRQ1 вищий, ніж у IRQ3, контролер формує переривання. Але воно не підтверд­жується, так як мікропроцесор замаскував свій вхід INTR у відповідь на переривання по IRQ3 (IF=0). Запит на переривання по IRQ1 не підтвердиться, поки не буде виконана команда STI в оброблювачі переривань по IRQ3. Таким чином, програма оброблювача IRQ3 має «захищену» область, в якій не дозволені ніякі переривання (за винят­ком немаскованих). У сервісній програмі IRQ1 немає такої «захищеної» частини, оскільки її перша команда STI. Зазначимо, що в цьому прикладі запит по IRQ1 повинен залишатись збудженим до його підтвердження. Коли підтверджується переривання по IRQ3, встановлюється

розряд З ISR. Коли підтверджується переривання по IRQ1, розряди 1 та З ISR виявляються встановленими (ні одна з програм оброблювачів не виконана). У цей час тільки IRQ0 може формувати переривання, так як це єдиний вхід з більш високим пріоритетом порівняно з тими, які вже обслуговуються. По закінченні програми оброблювача переривання по IRQ1 програма повинна «повідомити» І8259А про завершення своєї роботи шляхом скидання розряду 1 в ISR.

Це виконується за допомогою команди ЕОІ. Далі команда IRET у програмі оброблювача переривань по IRQ1 передає керування програмі оброблювача переривань по IRQ3. Тепер запити IRQ0-IRQ2 можуть знову переривати програму оброблювача IRQ3. Якщо запитів на переривання більше не надходить, по команді ЕОІ скидається розряд З ISR та по команді IRET поновлюється виконання основної програми з місця її переривання.

Способи завершення переривання (ЕОІ)

Після завершення виконання програми оброблювач переривання І8259А повинен бути сповіщений про це для скидання відповідних розрядів ISR.

Це потрібно для того, щоб стежити за рівнями перери­вань, що обслуговуються, і співвідношенням їх пріоритетів. Користувачу доступні три різні формати команди кінця переривання ЕОІ:

звичайна команда ЕОІ;

спеціальна команда ЕОІ;

автоматичний режим ЕОІ (АЕОІ).

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

Звичайна команда ЕОІ

Звичайна команда ЕОІ в програмі оброблювача переривань сповіщає І8259А, що завершилось обслуго­вування даної програми. Контролер автоматично визначає

розряд З ISR. Коли підтверджується переривання по IRQ1, розряди 1 та З ISR виявляються встановленими (ні одна з програм оброблювачів не виконана). У цей час тільки IRQ0 може формувати переривання, так як це єдиний вхід з більш високим пріоритетом порівняно з тими, які вже обслуговуються. По закінченні програми оброблювача переривання по IRQ1 програма повинна «повідомити» І8259А про завершення своєї роботи шляхом скидання розряду 1 в ISR.

Це виконується за допомогою команди ЕОІ. Далі команда IRET у програмі оброблювача переривань по IRQ1 передає керування програмі оброблювача переривань по IRQ3. Тепер запити IRQ0-IRQ2 можуть знову переривати програму оброблювача IRQ3. Якщо запитів на переривання більше не надходить, по команді ЕОІ скидається розряд З ISR та по команді IRET поновлюється виконання основної програми з місця її переривання.

Способи завершення переривання (ЕОІ)

Після завершення виконання програми оброблювач переривання І8259А повинен бути сповіщений про це для скидання відповідних розрядів ISR.

Це потрібно для того, щоб стежити за рівнями перери­вань, що обслуговуються, і співвідношенням їх пріоритетів. Користувачу доступні три різні формати команди кінця переривання ЕОІ:

звичайна команда ЕОІ;

спеціальна команда ЕОІ;

автоматичний режим ЕОІ (АЕОІ).

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

Звичайна команда ЕОІ

Звичайна команда ЕОІ в програмі оброблювача переривань сповіщає І8259А, що завершилось обслуго­вування даної програми. Контролер автоматично визначає рівень самого пріоритетного переривання, що знаходиться в обслуговуванні, та скидає відповідний розряд в ISR.

Щоб використовувати звичайні команди ЕОІ, І8259А повинен працювати в такому режимі, коли він може визначити рівень пріоритету програми оброблювача. Тому цю команду слід застосовувати тільки тоді, коли останній запит, підтверджений та обслужений на переривання, буде мати вищий пріоритет. Коли І8259А отримує звичайну команду ЕОІ, він просто скидає молодший (із встановлених) розряд ISR, підтверджуючи цим, що з усіх обслуговуваних програм завершено виконання програми з найвищим пріоритетом.

Основна перевага використання звичайних команд ЕОІ полягає в тому, що на відміну від спеціальних команд тут не вимагається вказувати рівень IRQ.

Спеціальна команда ЕОІ

Спеціальна команда ЕОІ, відправлена мікропроцесо­ром, сповіщає І8259А про те, що завершилось виконання сервісної програми по перериванню даного рівня. На відміну від звичайної команди ЕОІ, що автоматично скидає в ISR молодший розряд, спеціальна команда ЕОІ конкретно вказує, який розряд повинен бути скинутий в ISR. У цій команді може бути вказаний один з восьми рівнів IRQ І8259А.

Спеціальна команда ЕОІ потрібна для того, щоб скидати в ISR розряд виконаної програми оброблювача переривань, коли І8259А не може автоматично його визначити. Ситуація такого типу виникає, наприклад, коли пріоритети рівнів переривань були змінені в ході виконання програми. Такі ситуації виникають при побудові розділеної системи переривань, коли кілька джерел переривань підключаються до однієї лінії запиту. Якщо в цей самий час виконувались інші програми оброблювача переривань, то звичайна команда ЕОІ може невірно скидати розряд в ISR. У такій ситуації слід використовувати спеціальну команду ЕОІ, як і в усіх інших випадках, коли можлива плутанина в пріоритетах переривань.

Автоматичний режим ЕОІ (АЕОІ)

Якщо в І8259А запрограмований автоматичний режим ЕОІ, мікропроцесору вже не треба видавати команду для сповіщення І8259А про завершення виконання програ­ми оброблювача переривань. Контролер автоматично вико­нує звичайну команду ЕОІ по задньому фронту другого імпульсу INTA. Очевидна перевага автоматичного режиму ЕОІ полягає в непотрібності спеціальних команд. У прин­ципі, за рахунок цього спрощується програмування та знижуються вимоги до сервісних програм. Але рішення про використання автоматичного режиму ЕОІ вимагає особливого розгляду, оскільки при цьому порушується режим повного вкладення. В автоматичному режимі ЕОІ розряд поточної програми оброблювача переривань в ISR скидається відразу після підтвердження, в результаті чого в ISR не залишається ніякої вказівки на те, що виконується програма оброблювача. Якщо в цей час виникає який-небудь запит переривання (і переривання дозволені), то він буде обслужений незалежно від пріоритету. У такій ситуації може також виникнути проблема «надвкладення», коли який-небудь вхід IRQ постійно перериває виконання власної програми оброблювача переривань, що призводить до непотрібних циклів запам'ятовування в стек, який у гіршому випадку може бути переповнений.

У такому випадку, що ж доброго в автоматичному режимі ЕОІ, якщо виникають подібні проблеми? Все залежить від конкретного його застосування. Якщо пере­ривання керуються із заздалегідь визначеною швидкістю так, що не виникає вищевказаних проблем, автоматичний режим ЕОІ можна застосовувати без обмежень. Але якщо перери­вання виникають періодично з невизначеною частотою, використовувати автоматичний режим ЕОІ слід, керуючись зокрема ось чим: коли автоматичний режим ЕОІ використо­вується при невизначеній частоті переривань, мікропроцесор повинен забороняти хід запитів переривань на час виконання програм оброблювачів переривань. У цьому випадку переривання більш високого пріоритету будуть обслугову­ватись тільки по завершенні виконання поточної програми оброблювача переривань. Тим самим відновлюється режим повного вкладення у відношенні IRR, але виконання програми оброблювача переривань не може бути перервано.

Маскування переривань

Заборону або дозвіл переривань можна забезпечити не тільки маскуванням виходу INTR мікропроцесора командою CLI. У І8259А є регістр IMR (регістр маски переривання), який розширює можливості керування перериваннями. На відміну від тимчасової заборони або дозволу всіх переривань IMR дає можливість індивідуального маскування IRQ. IMR являє собою 8-розрядний регістр, в якому розряди 0-7 безпосередньо відповідають IRQ0-IRQ7. Будь-який вхід IRQ може бути замаскований шляхом встановлення на 1 відповідного розряду IMR. Аналогічно будь-який вхід IRQ може бути дозволений при встановленні на 0 відповідного розряду IMR.

Коли виникає запит на переривання, замаскований розрядом в IMR, він не губиться, а зберігається в IRR. Отже, при дозволі IMR переривання буде виконано. Це справедливо за умови, що враховані інші фактори пріоритету, та запит IRQ залишається активним. Якщо запит IRQ знімається перед встановленням IMR, то підтвердження переривання не буде.

Спеціальний режим маскування (SMM)

У деяких випадках необхідно дозволити переривання більш низького пріоритету порівняно з виконуваною програмою оброблювача або, іншими словами, дозволити пристроям з більш низьким пріоритетом генерувати переривання. Але в режимі повного вкладення заборонені всі рівні IRQ більш низького пріоритету порівняно з викону­ваною програмою. Щоб їх дозволити, можна використовувати команду ЕОІ до завершення виконання програми. Але слід мати на увазі, що при цьому може виникнути проблема «надвкладення» подібно до випадку, розгляненого для автоматичного режиму ЕОІ. Крім того, скидання ISR не зворотне засобами програмного керування, тому заборонити після цього IRQ більш низького пріоритету можна тільки скиданням відповідного розряду IMR.

Кращим розв'язанням є використання спеціального маскування. У сполученні зі встановленням відповідного розряду IMR режим спеціального маскування дозволяє переривання всіх рівнів, крім рівня поточного обслуговування. Це досягається маскуванням рівня поточного обслуговування з наступним видаванням режиму спеціального маскування. Режим спеціального маскування залишається в силі аж до його відміни. На рис. 2.13. наведено, як за допомогою режиму спеціального маскування (SMM) досягається дозвіл пере­ривань з більш низьким пріоритетом.

Припустимо, що IRQ0 має вищий пріоритет, коли основна програма переривається по IRQ3. В програмі оброблювача переривань по IRQ3 виконується команда STI. Це дозволяє тільки перериванням пріоритету IRQ0 - IRQ2 переривати програму оброблювача по IRQ3 у звичайному режимі повного вкладення. При подальшому виконанні програми по IRQ3 встановлюється розряд 4 в IMR (тобто маскується переривання по IRQ3) та вводиться режим спеціального маскування. Тепер система пріоритетів не підпорядковується режиму повного вкладення. Дозволені переривання всіх рівнів, крім IRQ3. Щоб вийти з режиму спеціального маскування, описана послідовність виконується в оберненому порядку.

При виході з програми оброблювача переривання, в якій застосовувався режим спеціального маскування, потрібні особливі перестороги. В режимі спеціального маскування не можна використовувати звичайну команду ЕОІ. Справа в тому, що вона не скидає в ISR розряд обслуженого переривання, так як в цьому режимі він фактично « невидимий ».

Якщо режим спеціального маскування відмінений до виконання команди ЕОІ, можна використовувати і звичай­ну команду ЕОІ. Але щоб запобігти непорозумінь, краще використовувати спеціальну команду ЕОІ щоразу при використанні режиму спеціального маскування.

Слід пам'ятати, що при встановленні режиму спеці­ального маскування він поширюється на всі масковані рівні.

У базовій конфігурації PC AT режим спеціального маскування не використовується.

Спеціальний режим повного вкладення (SFNM)

У деяких випадках необхідна зміна вкладень структури в каскадному режимі. Це пов'язано з тим, що вкладена структура підпорядкованого І8952А відрізняється від структури звичайного режиму повного вкладення. В кас­кадному режимі, якщо підпорядкований контролер отримує запит переривання з більш високим пріоритетом порівняно з виконуваним (на цьому контролері), це не буде розпізнано MASTER. Справа в тому, що встановлено розряд ISR

MASTER, відповідний лінії запиту, по якому приходить запит від SLAVE, та при цьому ігноруються всі запити з тим самим або більш низьким пріоритетом. Отже, в цьому випадку переривання з більш високим пріоритетом від підпорядкованого контролера не буде обслуговуватись до тих пір, поки розряд ISR MASTER не буде скинено командою ЕОІ. А це відбудеться, скоріш за все, після завершення роботи сервісної програми з більш низьким пріоритетом.

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

Для забезпечення належної обробки переривань у спе­ціальному режимі повного вкладення програма (перед тим як видати команду ЕОІ MASTER) повинна визначити, чи обробляються в даний момент інші переривання від SLAVE. Це виконується завдяки скиданню відповідного ISR підпорядкованого контролера по ЕОІ та наступного читання ISR. Якщо ISR містить тільки нулі, це означає, що не обслуговуються ніякі інші переривання від SLAVE і що можна надсилати команду ЕОІ MASTER. Якщо ж не всі розряди ISR нульові, команда ЕОІ не повинна бути видана MASTER. Скидання розряду в ISR MASTER по команді ЕОІ під час обслуговування переривань від SLAVE призвів би до того, що MASTER реагував би на запити переривань нижчих пріоритетів.

Режим розпізнавання запиту на переривання

Для контролера І8259А існує два способи розпізнаван­ня активного запиту на переривання: розпізнавання запиту по рівню та розпізнавання по фронту. Вибір способу здійснюється при ініціації І8259А. В архітектурі PC AT використовується розпізнавання запиту на перери­вання по фронту, а в архітектурі PS/2 по рівню.

При розпізнаванні запиту по рівню І8259А розпізнає будь-який активний (високий) рівень на вході IRQ як запит переривання. Якщо вхід IRQ залишається активним після виконання команди ЕОІ, буде згенеровано ще одне перери­вання. Якщо не вимагається повторного генерування перери­вання, перед видаванням команди ЕОІ в програмі оброблю­вача переривання відповідний вхід IRQ повинен стати неактивним (низьким). Але зняття активного рівня IRQ не повинно відбуватися достатньо швидко, щоб не порушувались необхідні вимоги до синхронізації.

Зазначимо, що запит на вході IRQ повинен продов­жуватись до заднього фронту першого імпульсу INTA. Якщо на будь-якому із входів IRQ запит буде відмінений до першого імпульсу INTA, І8259А буде діяти так, ніби був активним IRQ7. В усіх системах, де подібне може трапитись, встанов­лення IRQ7 за замовчанням можна використовувати в якості заходу безпеки. Це досягається використанням програми оброблювача по IRQ7 в якості програми «підчищення», яка може перепровірити стан І8259А або просто повернути виконання програми із переривання.

При розпізнаванні запиту по фронту І8259А буде розпізнавати переривання тільки тоді, коли вони генеро­вані шляхом переходу входу IRQ від низького до високого рівня. Режим запуску по фронту включає в себе метод блокування фронту. Це значить, що після переднього фронту запиту переривання та після підтвердження переривання додатний рівень входу IRQ не буде генерувати наступних переривань. Користувачу не треба хвилюватись про те, щоб швидко зняти запит після підтвердження переривання, побоюючись генерування наступних переривань, як у режимі запуску по рівню.

Як і в режимі розпізнавання по рівню, в режимі розпізнавання по фронту запит на вході IRQ повинен залишатись активним аж до заднього фронту першого імпульсу INTA для даного переривання. Але на відміну від режиму розпізнавання по рівню після підтвердження запиту на переривання його запис в IRR блокується.

Тільки після того, як вхід IRQ стане низьким, защіпка IRR знову буде готов до приймання нового запиту на переривання (в режимі розпізнавання за рівнем защіпка IRR завжди підготовлена). Виходячи з особливостей функціо­нування режиму розпізнавання по фронту, доцільно для запуску запитів використовувати додатний рівень IRQ з від'ємним імпульсом. При вході такого типу задній фронт імпульсу збуджує переривання, а додатній рівень, що залишився, задовольняє синхронізацію (тобто залишається високим аж до підтвердження переривання). Зазначимо, що особливість, зв'язана з встановленням IRQ7 за замовчанням, залишається в силі і для режиму розпізнавання по фронту.

Режим читання стану контролера І8259А

Шляхом програмного керування користувач може робити запит стану І8259А. Це дозволяє читати внутрішні регістри переривань, що може бути корисним для керування перериваннями під час виконання сервісних програм.

Вміст кожного 8-розрядного регістра контролера IRR, ISR та IMR може бути прочитаний для коректування програми користувача за поточним станом І8259А. Цей універсальний засіб дає користувачу більше можливостей для керування перериваннями. Нагадаємо, що IRR (регістр запитів переривань) вказує всі рівні переривань, що запитують обслуговування; ISR (регістр поточного обслуговування) всі рівні переривань, що обслуговуються на даний момент; IMR (регістр маски переривань) усі рівні переривань, що замасковані.

Щоб прочитати вміст IRR або ISR, користувач повинен спочатку видати І8259А команду QCW3 для вибору відпо­відного регістра (читати IRR, або читати ISR). Для читання IRR необхідно спочатку виконати команду запису в порт 20h (AOh) константи OAh, а для читання ISR константи OBh. Далі вміст потрібного регістра можна отримати, подавши на І8259А сигнал RD (команда IN). При цьому немає необхідності видавати команду 0CW3 щоразу, коли потрібно прочитати IRR або ISR.

Отримавши команду вибору регістра, І8259А «запам'я­товує», який регістр був вибраний. Значить, для повторного читання того самого регістра достатньо команди IN та відповідної адреси порту (20h або AOh). При ініціалізації за замовчанням призначається режим читання регістра IRR. Слід обережно використовувати команду читання регістра в системі, що підтримує кілька рівнів переривань. Якщо програма-оброблювач більш високого пріоритету викликає переривання між командою 0CW3 для відповідного регістра і читанням вмісту регістра, немає гарантії, що після повернення з сервісної програми буде вибрано той самий регістр. У таких випадках найкраще забороняти перери­вання на час виконання операції. Читання вмісту регістра IMR відрізняється від читання вмісту регістрів IRR та ISR. Для читання з IMR не потрібно попередньо виконувати команду вибору регістра. Це зв'язано з тим, що до IMR можна звернутись безпосередньо як для читання, так і для запису. Тому все, що треба І8259А для читання IMR, це сигнал RD та правильна адресація (адреса 21h або Alh), тобто при читанні з порту IN AL, 21h (Alh), при запису в порт OUT 21h (Alh), AL.

Режим опитування джерел переривань (POLL) Режим опитування потрібний, коли пристрої мають спільну програму оброблювача переривання, а також при кількості запитів більшій за 64. Ініціатором опитування є програма, що надсилає в контролер команду 0CW3, за якою мікропроцесор блокує свій вхід INTR та підготовлює ланцюги в І8259А, необхідні для опитування. Далі в кон­тролер подається команда читання (OUT 20h для MASTER або OUT AOh для SLAVE), за якою відпрацьовується функція, аналогічна послідовності INTA (по пріоритетному запиту встановлюється відповідний розряд ISR та ски­дається однойменний розряд IRR), і на шину X видається слово опитування переривань, структура якого наведена на рис. 2.14.

За отриманою інформацією програма або перейде на програму оброблювача пріоритетного переривання або ліквідує сліди переривання, що обслуговується в контро­лері (скидання відповідного розряду ISR за командою ЕОІ). При необхідності операція опитування може виконуватися до тих пір, поки розряд І (D7) не буде дорівнювати нулю.

Вправа

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

Практикум

Вправа

За допомогою програми Checkit у середовищі DOS або емуляції DOS визначіть розподілення входів IRQ0-IRQ15 ПКП між пристроями Вашої ПЕОМ, визначіть кількість та номери рівнів, що не використовуються.

Порядок виконання завдання

Запустіть на виконання програму Checkit у середовищі DOS або емуляції DOS.

  1. Увійдіть у вікно Sys Info.

  2. Виберіть опцію Interrapts та увійдіть до неї.

  3. У вікні цієї опції Ви побачите розподілення входів IRQ0-IRQ15 ПКП між пристроями Вашої ПЕОМ, порівняйте з розподіленням, вказаним у таблиці 2.1.

  4. Перепишіть пристрої в порядку зменшення рівняпріоритету.

  5. Вийдіть з програми Checkit.

Лабораторна робота 1

Тема роботи

Дослідження методів програмного доступу до регістрів ПКП та режиму маскування переривань.

Мета роботи

Вивчити методи програмного доступу до регістрів ПКП.

Навчитись розробляти програми, що аналізують стан регістрів IRR, ISR, IMR контролера переривань.

Навчитись ідентифікувати коди станів регістрів ПКП.

Навчитись використовувати режим маскування в прикладних програмах.

З'ясувати, яку роль відіграє режим маскування при керуванні системою переривань.

Вимоги

Для виконання роботи необхідні знання та навички програмування мовами СІ та Ассемблера, ґрунтовні знання архітектури та принципів функціонування програмованого контролера переривань, а також знання та навички про­грамного доступу до регістрів ПКП.

На вінчестері комп'ютера необхідно встановити се­редовище програмування Borland C++ V3.01 в каталозі ВС.

Вправа

1. Дослідіть програму mask.c, яка дозволяє визначити вміст програмно доступних регістрів ведучого ПКП та замаскувати (розмаскувати) апаратні переривання.

//mask c — програма читання стану регістрів ПКП та

//маскування апаратних переривань ведучого

//контролера

#include <stdio.h>

#include <conio.h>