Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
      1. Методи обміну інформацією в мікропроцесорній системі

При пересиланні інформації між пристроями виникають проблеми:

  • інформація подається в різних формах;

  • різниця в логічних рівнях поданої інформації;

  • різниця у швидкостях роботи різних пристроїв

Класифікація методів обміну інформацією в МПС показана на рисунку 1.14.

За опитуванням

За перериванням

ПДП – прямий доступ до пам'яті

Рисунок 1.14 – Класифікація методів обміну інформацією в МПС

У МПС застосовуються три методи уведення/виводу: програмно- керований ВВ (називаний також програмним або за опитуванням або нефорсованим ВВ), ВВ за перериванням (форсований ВВ) і прямий доступ до пам'яті. Перший з них характеризується тим, що ініціювання й керування ВВ здійснюється програмою, виконуваною процесором, а зовнішні пристрої грають порівняно пасивну роль і сигналізують тільки про свій стан, зокрема, про готовність до операцій уведення/виводу. У другому режимі ВВ ініціюється не процесором, а зовнішнім пристроєм, що генерує спеціальний сигнал переривання. Реагуючи на цей сигнал готовності пристрою до передачі даних, процесор передає керування підпрограмі обслуговування пристрою, що викликав переривання. Дії, виконувані цією підпрограмою, визначаються користувачем, а безпосередніми операціями ВВ керує процесор. Нарешті, у режимі прямого доступу до пам'яті, що використовується, коли пропускної здатності процесора недостатньо, дії процесора припиняються, він відключається від системної шини й не бере участь у передачах даних між основною пам'яттю й швидкодіючим ВУ. Помітимо, що у всіх указаних вище випадках основні дії, виконувані на системній магістралі МПС, підкоряються двом основним принципам:

  1. У процесі взаємодії будь-яких двох пристроїв МПС один з них обов'язково виконує активну, керуючу роль і є задатчиком, другий виявляється керованим, виконавцем. Найчастіше задатчиком є процесор.

  2. Іншим важливим принципом, закладеним у структуру інтерфейсу, є принцип квитування (запиту – відповіді): кожний керуючий сигнал, посланий задатчиком, підтверджується сигналом виконавця. При відсутності відповідного сигналу виконавця протягом заданого проміжку часу формується так званий тайм-аут, задатчик фіксує помилку обміну й припиняє дану операцію.

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

Однак для більшості ЗП до виконання операцій ВВ треба переконатися в їхній готовності до обміну, тобто ВВ є асинхронним. Загальний стан пристрою характеризується прапором готовності READY, називаним також прапором готовності/зайнятості (READY/BUSY). Іноді стан готовності й зайнятості ідентифікуються окремими прапорами READY і BUSY, що входять до слова стану пристрою.

Процесор перевіряє прапор готовності за допомогою однієї або декількох команд. Якщо прапор установлений, то ініціюються саме уведення або вивід одного або декількох слів даних. Коли ж прапор скинутий, процесор виконує цикл із 2…3 команд із повторною перевіркою прапора READY доти, поки пристрій не буде готовий до операцій ВВ

(рис. 1.15). Даний цикл називається циклом очікування готовності ЗП й реалізується в різних процесорах по-різному.

Рисунок 1.15 – Цикл програмного очікування готовності зовнішнього пристрою

Основний недолік програмного ВВ пов'язаний з непродуктивними втратами часу процесора в циклах очікування. До достоїнств варто віднести простоту його реалізації, що не вимагає додаткових апаратних засобів.

Організація переривань у МПС. Обмін з перериванням програми відрізняється від асинхронного програмно-керованого обміну тим, що перехід до виконання команд, що фізично реалізують обмін даними, здійснюється за допомогою спеціальних апаратних засобів. Команди обміну даними в цьому випадку виділяють в окремий програмний модуль – підпрограму обробки переривання. Завданням апаратних засобів обробки переривання в МПС саме і є припинення виконання однієї програми (її ще називають основною програмою) і передача керування підпрограмі обробки переривання. Дії, виконувані при цьому процесором, як правило, ті самі, що й при звертанні до підпрограми. Тільки при звертанні до підпрограми вони ініціюються командою, а при обробці переривання – керуючим сигналом від ЗП, який називають «Запит на переривання» або

«Вимога переривання».

Ця важлива особливість обміну з перериванням програми дозволяє організувати обмін даними з ЗП в довільні моменти часу, що не залежать від програми, виконуваної в МПС. Таким чином, з'являється можливість обміну даними з ЗП в реальному масштабі часу, обумовленому зовнішнім стосовно МПС середовищем. Обмін з перериванням програми істотно

заощаджує час процесора, затрачуваний на обмін. Це відбувається за рахунок того, що зникає необхідність в організації програмних циклів очікування готовності ЗП, на виконання яких витрачається значний час, особливо при обміні з повільними ЗП.

Переривання програми на вимогу ВУ не повинне робити на перервану програму ніякого впливу крім збільшення часу її виконання за рахунок припинення на час виконання підпрограми обробки переривання. Оскільки для виконання підпрограми обробки переривання використовуються різні регістри процесора (лічильник команд, регістр стану й т.д.), то інформацію, що втримується в них у момент переривання, необхідно зберегти для наступного повернення в перервану програму.

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

Основними функціями системи переривання є:

  • запам'ятовування стану перериваної програми і здійснення переходу до перериваючої програми;

  • відновлення стану перерваної програми й повернення до неї.

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

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

Оцінка ефективності системи переривання визначається наступними характеристиками:

  • загальна кількість запитів переривання, тобто кількість входів до системи переривання;

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

  • витрати часу на перемикання програм:

tпер = tз + tв ,

де tз – час запам'ятовування; tв – час відновлення.

Спрощена часова діаграма процесу переривання показана на рисунку 1.16.

Програма, що переривається

t

t

t

Рисунок 1.16 – Спрощена часова діаграма процесу переривання

Якщо після переходу до перериваючої програми і аж до її закінчення прийом інших запитів забороняється, то говорять, що система має глибину переривання, яка дорівнює 1. Глибина переривання дорівнює n, якщо допускається послідовне переривання до n програм. Таким чином, глибина переривання характеризується максимальною кількістю програм, які можуть перервати один одного. Глибина переривання звичайно еквівалентна кількості рівнів пріоритету в системі переривання. Системи з більшим значенням глибини переривання забезпечують більш швидку реакцію на екстрені запити.

Якщо запит не обслуговують до моменту надходження нового запиту від того ж джерела, то виникає насичення системи переривання. У такому випадку попередній запит переривання від зазначеного джерела буде загублений, що неприпустимо. Тому при конструюванні МПС швидкодія, характеристики системи переривання, кількість джерел переривання й частота виникнення запитів мають бути взаємоузгоджені таким чином, що б насичення системи було неможливе.

Формування сигналів переривань – запитів ЗП на обслуговування відбувається в контролерах відповідних ЗП. У найпростіших випадках як сигнал переривання може використовуватися сигнал «Готовність ЗП», що

надходить із контролера ЗП у системний інтерфейс МПС. Однак таке просте рішення має істотний недолік – процесор не має можливості керувати перериваннями, тобто дозволяти або забороняти їх для окремих ЗП. У результаті організація обміну даними в режимі переривання з декількома ЗП істотно ускладнюється.

Для рішення цієї проблеми регістр стану й управління контролера ЗП доповнюють ще одним розрядом – «Дозвіл переривання». Запис 1 або 0 у розряд «Дозвіл переривання» виробляється програмним шляхом за однією з ліній шини даних системного інтерфейсу. Керуючий сигнал системного інтерфейсу «Запит на переривання» формується за допомогою схеми збігу тільки при наявності одиниць у розрядах «Готовність ЗП» і «Дозвіл переривання» регістра стану й управління контролера.

Аналогічним шляхом вирішується проблема керування перериваннями в МПС у цілому. Для цього в регістрі стану процесора виділяється розряд, уміст якого визначає дозволені або заборонені переривання від зовнішніх пристроїв. Значення цього розряду може встановлюватися програмним шляхом.

У МПС звичайно використовується однорівнева система переривань, тобто сигнал «Запит на переривання» від всіх ЗП надходить на один вхід процесора. Тому виникає проблема ідентифікації ЗП, що запросили обслуговування, і реалізації заданої черговості (пріоритету) обслуговування ЗП при одночасному надходженні декількох сигналів переривання. Існують два основних способи ідентифікації ЗП, що запросили обслуговування:

  • програмне опитування регістрів стану (розряд "Готовність ЗП") контролерів усіх ЗП;

- використання векторів переривання.

Організація переривань із програмним опитуванням готовності припускає наявність у пам'яті МПС єдиної підпрограми обслуговування переривань від всіх зовнішніх пристроїв. Структура такої підпрограми наведена на рисунку 1.17.

Обслуговування ЗП за допомогою єдиної підпрограми обробки переривань здійснюється в такий спосіб. Наприкінці останнього машинного циклу виконання чергової команди основної програми процесор перевіряє наявність вимоги переривання від ЗП. Якщо сигнал переривання є й у процесорі переривання дозволений, то процесор перемикається на виконання підпрограми обробки переривань.

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

Пріоритет ЗП в МПС із програмним опитуванням готовності зовнішнього пристрою однозначно визначається порядком їхнього опитування в підпрограмі обробки переривань. Чим раніше в підпрограмі опитується готовність ЗП, тим менше час реакції на його запит і вище пріоритет. Необхідність перевірки готовності всіх зовнішніх пристроїв істотно збільшує час обслуговування тих ЗП, які опитуються останніми. Це є основним недоліком розглянутого способу організації переривань. Тому обслуговування переривань із опитуванням готовності ЗП використовується тільки в тих випадках, коли відсутні тверді вимоги на час обробки сигналів переривання зовнішніх пристроїв.

Рисунок 1.17 – Структура єдиної підпрограми обробки переривань

і її зв'язок з основною програмою

Організація системи переривань у МПС із використанням векторів переривань дозволяє усунути зазначений недолік. При такій організації системи переривань ЗП, що запросив обслуговування, сам ідентифікує себе за допомогою вектора переривання – адреси комірки основної пам'яті

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

Розрізняють векторні системи з інтерфейсним і позаінтерфейсним вектором. У першому випадку вектор переривання формує контролер ЗП, що запросив обслуговування, у другому – контролер переривань, загальний для всіх пристроїв, що працюють у режимі переривань (IBM-сумісні персональні комп'ютери).

Розглянемо організацію векторної системи з інтерфейсним вектором. Вектор переривання видається контролером не одночасно із запитом на переривання, а тільки з дозволу процесора, як це реалізовано в схемі на рисунку 1.18. Це робиться для того, щоб виключити одночасну видачу векторів переривання від декількох ЗП. У відповідь на сигнал контролера ЗП «Запит на переривання» процесор формує керуючий сигнал «Надання переривання», що дозволяє контролеру ЗП, який запросив обслуговування, видачу вектора переривання на шину адреси системного інтерфейсу. Для цього в контролері використовуються регістр вектора переривання й схема збігу. Регістр вектора переривання звичайно реалізується за допомогою перемичок або перемикачів, що дозволяє користувачеві встановлювати для конкретних ВУ необхідні значення векторів переривання.

Рисунок 1.18 – Реалізація пріоритетів ЗП в МПС із векторною системою переривань, з інтерфейсним вектором

Процесор при надходженні в нього загальною лінією системного інтерфейсу «Запит переривання» формує керуючий сигнал «Надання переривання», що надходить спочатку в контролер ЗП з найвищим пріоритетом. Якщо цей пристрій не вимагав обслуговування, то його

контролер пропускає сигнал «Надання переривання» на наступний контролер, інакше подальше поширення сигналу припиняється й контролер видає вектор переривання на адресоінформаційну шину.

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

Розглянута векторна система переривань практично повністю відповідає системі переривань, реалізованої в мікроЕОМ «Електроніка-60». Векторна система із позаінтерфейсним вектором переривання використовується в IBM-сумісних персональних комп'ютерах. У цих комп'ютерах контролери зовнішніх пристроїв не мають регістрів для зберігання векторів переривання, а для ідентифікації пристроїв, що запросили обслуговування, використовується загальний для всіх ЗП контролер переривань. БІС програмувального контролера переривань (ПКП) являє собою пристрій, що реалізує до восьми рівнів запитів на переривання з можливістю програмного маскування й зміни порядку

обслуговування переривань.

За рахунок каскадного включення БІС ПКП кількість рівнів переривання може бути поширена до 64. Структурна схема ПКП наведена на рисунку 1.19.

Рисунок 1.19 – Структура контролера переривань

Програмувальний контролер переривань дозволяє організувати більш гнучку й ефективну підсистему переривань у МПС, він генерує код

команди CALL, тому область векторів переривань може розташовуватися за довільними адресами пам'яті.

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

Склад керуючих ліній контролера включає стандартні лінії підключення до системної шини: D[7:0], A0, WR\, RD\, CS\; лінії, що передають запит на переривання процесору й відповідь МП INT і INTA\ відповідно.

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

Прямий доступ до пам'яті. Одним зі способів обміну даними з ЗП є обмін у режимі прямого доступу до пам'яті (ПДП). У цьому режимі обмін даними між ЗП й основною пам'яттю МПС відбувається без участі процесора. Обміном у режимі ПДП керує не програма, виконувана процесором, а електронні схеми, зовнішні стосовно процесора. Звичайно схеми, що керують обміном у режимі ПДП, розміщаються в спеціальному контролері, що називається контролером прямого доступу до пам'яті.

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

Для реалізації режиму прямого доступу до пам'яті необхідно забезпечити безпосередній зв'язок контролера ПДП і пам'яті МПС. Для цієї мети можна було б використати спеціально виділені шини адреси й даних, що зв'язують контролер ПДП із основною пам'яттю. Але таке рішення не можна визнати оптимальним, тому що це призведе до значного ускладнення МПС у цілому, особливо при підключенні декількох ЗП. З метою скорочення кількості ліній у шинах МПС контролер ПДП підключається до пам'яті за допомогою шин адреси й даних системного інтерфейсу (рис. 1.20). При цьому виникає проблема спільного використання шин системного інтерфейсу процесором і контролером ПДП. Можна виділити два основних способи її рішення: реалізація обміну в режимі ПДП із "захопленням циклу" і режим ПДП із блокуванням процесора.

Існують два різновиди прямого доступу до пам'яті з «захопленням циклу». Найбільш простий спосіб організації ПДП полягає в тому, що для обміну використовуються ті машинні цикли процесора, у яких він не обмінюється даними з пам'яттю. У такі цикли контролер ПДП може обмінюватися даними з пам'яттю, не заважаючи роботі процесора. Однак

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

Пам’ять

Контролер ПДП

ВПДП

Рисунок 1.20 – Підключення контролера ПДП до системних шин

Більш розповсюдженим є ПДП із «захопленням циклу» і примусовим відключенням процесора від шин системного інтерфейсу. Для реалізації такого режиму ПДП системний інтерфейс микроЕВМ доповнюється двома лініями для передачі керуючих сигналів: «Вимогою прямого доступу до пам'яті» (ВПДП) і «Наданням прямого доступу до пам'яті» (НПДП).

Керуючий сигнал ВПДП формується контролером прямого доступу до пам'яті. Процесор, одержавши цей сигнал, припиняє виконання чергової команди, не чекаючи її завершення, видає на системний інтерфейс керуючий сигнал НПДП і відключається від шин системного інтерфейсу. Від цього моменту всі шини системного інтерфейсу керуються контролером ПДП. Контролер ПДП, використовуючи шини системного інтерфейсу, здійснює обмін одним байтом або словом даних з пам'яттю МПС і потім, знявши сигнал ВПДП, повертає керування системним інтерфейсом процесору. Як тільки контролер ПДП буде готовий до обміну наступним байтом, він знову «захоплює» цикл процесора й т.д. У проміжках між сигналами ВПДП процесор продовжує виконувати команди програми. Тим самим виконання програми вповільнюється, але в меншому ступені, ніж при обміні в режимі переривань.

Застосування в МПС обміну даними з ЗП у режимі ПДП завжди вимагає попередньої підготовки, а саме: для кожного ЗП необхідно виділити область пам'яті, використовувану при обміні, і вказати її розмір, тобто кількість записуваних у пам'ять або зчитуваних із пам'яті байт інформації. Отже, контролер ПДП повинен обов'язково мати у своєму складі регістр адреси й лічильник байт (слів). Перед початком обміну з ЗП в режимі ПДП процесор повинен виконати програму завантаження. Ця програма забезпечує запис у зазначені регістри контролера ПДП початкової адреси виділеної ЗП пам'яті і її розміру в байтах або словах залежно від того, якими порціями інформації ведеться обмін. Сказане не ставиться до початкового завантаження у пам'ять програм у режимі ПДП. У цьому випадку вміст регістра адреси й лічильника байт слів установлюється перемикачами або перемичками безпосередньо на платі контролера.

Блок-схема простого контролера ПДП, що забезпечує уведення даних у пам'ять МПС із ініціативи ЗП у режимі ПДП «Захоплення циклу», наведена на рисунку 1.21.

Системний інтерфейс

Рисунок 1.21 – Контролер ПДП для уведення даних з ЗП в режимі

«Захоплення циклу» і відключенням процесора від шин системного інтерфейсу

Перед початком чергового сеансу уведення даних з ЗП процесор завантажує в регістри його контролера наступну інформацію: у лічильник байтів – кількість прийнятих байтів даних, а в регістр адреси – початкову

адресу області пам'яті для даних, що вводяться. Тим самим контролер підготовляється до виконання операції уведення даних з ЗП в пам’ять МПС у режимі ПДП.

Байти даних з ЗП надходять у регістр даних контролера в постійному темпі. При цьому кожний байт супроводжується керуючим сигналом з ЗП

«Уведення даних», що забезпечує запис байта даних у регістр даних контролера. За цим сигналом й при ненульовому стані лічильника байт контролер формує сигнал ВПДП. За відповідним сигналом процесора НПДП контролер виставляє на шини адреси й даних системного інтерфейсу вміст своїх регістрів адреси й даних відповідно. Формуючи керуючий сигнал «Вивід», контролер ПДП забезпечує запис байта даних зі свого регістра даних у пам’ять МПС. Сигнал НПДП використовується в контролері й для модифікації лічильника байтів і регістра адреси. За кожним сигналом НПДП із умісту лічильника байтів віднімається одиниця, і як тільки вміст лічильника стане дорівнюватись нулю, контролер припинить формування сигналу «Вимога прямого доступу до пам'яті».

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

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

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

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

У МПС можна використовувати декілька ЗП, що працюють у режимі ПДП. Надання таким ЗП шин системного інтерфейсу для обміну даними відбувається на пріоритетній основі. Пріоритети ЗП реалізуються так само, як і при обміні даними в режимі переривання, але замість керуючих

сигналів «Вимога переривання» і «Надання переривання» використовуються сигнали «Вимога прямого доступу» і «Надання прямого доступу», відповідно.