Головна

РОБОТА МІКРОПРОЦЕСОРА З ЗОВНІШНІМИ ПРИСТРОЯМИ

  1. II. Робота з каналами
  2. III. Робота з функціями Бази даних
  3. IV. Основні принципи взаємодії із зовнішніми пристроями ПК
  4. Автоматичні мости з регулюючими пристроями. Двокоординатні автоматичні самописці
  5. Автомобілі, що працюють на стиснутому природному газі
  6. Автомобілі, що працюють на СНД
  7. Алгоритм розрахунку потоку з критичними роботами, виявленими з урахуванням ресурсних і фронтальних зв'язків

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

1) пристрої введення-виведення включаються в загальний адресний простір;

2) пристрої введення-виведення мають власний адресний простір.

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

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

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

В одному і тому ж комп'ютері можуть зустрічатися обоє способу адресації пристроїв введення-виведення одночасно. Так, в ПЕОМ «Ямаха» накопичувач на магнітних дисках включений в загальний адресний простір пам'яті, а друкувальний пристрій оформлено у вигляді декількох портів. Деякі порти цього комп'ютера служать для підключення до невеликого 64-кілобайтні адресного простору 128 кбайт ОЗУ і численних ПЗУ. При цьому всі ресурси пам'яті розбиваються на окремі сторінки по 16 кбайт кожна, і «активними» в кожен момент часу можуть бути тільки чотири з них.

Розповідь про роботу з периферійними пристроями була б неповною без опису того діалогу, який веде з ними МП. Розглянемо цей діалог на прикладі найпростіших пристроїв введення-виведення - наприклад, друкувального пристрою.

Обмін з підключеним до ЕОМ друкуючим пристроєм проводиться через два основні порти - порт стану і порт даних. У першому зберігається інформація про стан пристрою в даний момент часу, а в другій МП поміщає дані для виведення на папір. Кожен біт псування стану зберігає відповідь на цілком певний питання: заправлена ??чи папір, чи готовий принтер прийняти дані від комп'ютера і т.д. Все це для МП - вхідні сигнали. Але є і вихідні, які через порт передаються від МП до друкувального пристрою. Найбільш важливим з них є біт, який свідчить про готовність інформації в порту даних до передачі. Цей керуючий сигнал часто називають стробом.

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

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

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

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

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

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

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

Останнім часом необхідність розуміння механізму роботи переривань сильно зросла в зв'язку з виникненням ідеології програмування по подіях. Вона пов'язана з поширенням середовища «Windows» і лежить в основі систем типу «Visual Basic» або «Delphi». Наведемо приклади декількох подій, на які програма може реагувати: зрушена миша, натиснута (або відпущена) клавіша миші, натиснута кнопка «введення», вибраний той чи інший пункт меню, відкрито нове вікно на екрані і багато-багато інших. Повний перелік подій займає в описі кілька сторінок. Цікаво, що програма на такій мові вже не є єдиним цілим: на кожну подію пишеться своя власна програма, хоча всі вони і можуть бути пов'язані між собою.

Отже, ми розглянули найбільш загальні принципи роботи мікропроцесорів незалежно від їх моделі. Тепер познайомимося з конкретними процесорами.




ЩО ПОПЕРЕДУ? | АРХІТЕКТУРА ЕОМ | КЛАСИЧНА АРХІТЕКТУРА ЕОМ II ПРИНЦИПИ фон Неймана | ВДОСКОНАЛЕННЯ І РОЗВИТОК ВНУТРІШНЬОЇ СТРУКТУРИ ЕОМ | ОСНОВНИЙ ЦИКЛ РОБОТИ ЕОМ | СИСТЕМА КОМАНД ЕОМ І СПОСОБИ ЗВЕРНЕННЯ ДО ДАНИХ | ІСТОРІЯ РОЗВИТКУ МІКРОПРОЦЕСОРІВ | ВНУТРІШНЯ ОРГАНІЗАЦІЯ МІКРОПРОЦЕСОРА | РОБОТА МІКРОПРОЦЕСОРА З ПАМ'ЯТТЮ. МЕТОДИ аДРЕСАЦІЇ | ФОРМАТИ ДАНИХ |

© 2016-2022  um.co.ua - учбові матеріали та реферати