36 ПРИЗНАЧЕННЯ ТА СТРУКТУРА СИСТЕМИ ВВОДУ/ВИВОДУ

36.1 Призначення  системи  вводу / виводу

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

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

Технічні або апаратні засоби СВВ, крім безпосереднього перетворення форми даних, здійснюють функції зі зміни форматів та управління передачею даних.

Основна задача СВВ – це звільнення процесора від участі в операціях обміну між ОЗП та ПП. Для розв'язання цієї задачі СВВ повинна забезпечувати:

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

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

36.2 Структура системи вводу/виводу

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

Існують три основних способи підключення СВВ до ядра процесора (рис. 36.1).

У варіанті з роздільними шинами пам'яті і вводу/виводу (рис. 36.1, а) обмін інформацією між ЦП та пам'яттю фізично відділений від вводу/виводу, оскільки забезпечується повністю незалежними шинами. 

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

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

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

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

Рисунок 36.1 –  Місце системи вводу/виводу в архітектурі ОМ: а) – з роздільними шинами пам'яті і вводу/виводу; б) – з сумісно використовуваними лініями даних і адреси; в) – підключення на загальних правах з процесором і пам'яттю


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

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

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

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

Рисунок 36.2  Структура периферійного пристрою


Інтерфейс з МВВ реалізується у виді сигналів управління, стану і даних. Дані представлені сукупністю бітів, які повинні бути переданими в модуль вводу/виводу або отриманими з нього. Сигнали управління визначають функцію, яка повинна бути виконана периферійним пристроєм. Сигнали стану характеризують поточний стан пристрою, зокрема чи включений ПП та чи готовий він до передачі даних.

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

Модулі вводу/виводу. Модуль вводу/виводу у складі ОМ відповідає за управління одним або декількома ПП та за обмін даними між цими пристроями з одного боку, і основною пам'яттю або регістрами ЦП – з іншого. Основні функції МВВ можна сформулювати таким чином:

Локалізація даних – це можливість звертання до одного з ПП, а також адресація даних на ньому. Адреса ПП звичайно міститься в адресній частині команди вводу/виводу. Як було відмічено раніше, у складі СВВ може бути декілька модулів вводу/виводу. Кожному модулю призначається певний діапазон адрес. 

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

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

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

Обмін інформацією. Основною функцією МВВ є забезпечення обміну інформацією. З боку «великого» інтерфейсу – це обмін з ЦП, а з боку «малого» інтерфейсу – обмін з ПП. У цьому випадку під час вводу/виводу процесор виконує такі операції:

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

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

36.3 Структура модуля вводу/виводу 

Структура МВВ у значній мірі залежить від числа та складності периферійних пристроїв, але в загальному виді він має форму, яка показана на рис. 36.3.

Рисунок 36.3 – Структура модуля вводу/виводу


Зв'язок МВВ з ядром ОМ здійснюється за допомогою системної або спеціалізованої шини. З цього боку в МВВ реалізується так званий «великий» інтерфейс. 

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

Крім регістру даних у складі МВВ є також регістр управління і регістр стану (або суміщений регістр управління-стану).

У регістрі управління (РУ) фіксуються команди управління модулем або підключеними до нього ПП. Ці команди надходять з ЦП. У складних МВВ присутні декілька регістрів управління.

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

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

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

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

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

Модуль вводу/виводу, який бере на себе детальне управління ПП і спілкується з ЦП тільки за допомогою команд високого рівня, часто називають каналом вводу/виводу (КВВ). Найбільш простий МВВ, який потребує детального управління з боку ЦП, називають контролером вводу/виводу або контролером пристрою. Як правило, контролери вводу/виводу типові для мікро-ЕОМ, а канали вводу/виводу – для універсальних ОМ.