38 КАНАЛИ ТА ПРОЦЕСОРИ ВВОДУ-ВИВОДУ
38 КАНАЛИ ТА ПРОЦЕСОРИ ВВОДУ-ВИВОДУ
Основна ціль системи вводу/виводу – максимальне звільнення ЦП від управління процесами вводу/виводу. Деякі шляхи розв'язання цієї задачі вже були розглянуті. Наступними кроками в подоланні проблеми можуть бути:
1. Розширення можливостей модуля вводу/виводу (МВВ) та надання йому прав процесора зі спеціалізованим набором команд, які орієнтовані на операції вводу/виводу. ЦП надає такому МВВ вказівку виконувати програму вводу/виводу, яка зберігається в пам'яті ЕОМ. МВВ витягує і виконує команди цієї програми без участі центрального процесора і перериває ЦП тільки після завершення всієї програми вводу/виводу.
2. МВВ, який розглянуто вище, надається власна локальна пам'ять, при цьому можливе управління багатьма пристроями вводу/виводу з мінімальним використанням ЦП.
У першому випадку МВВ називають каналом вводу/виводу (КВВ), а в другому – процесором вводу/виводу (ПВВ). У принципі різниця між каналом і процесором вводу/виводу достатньо умовна, тому надалі будемо застосовувати термін «канал».
В ЕОМ з каналами вводу/виводу центральний процесор практично не бере участі в управлінні зовнішніми пристроями. Усі функції ЦП зводяться до запуску і зупинки операцій в КВВ, а також перевірки стану каналу і ПП, що підключені до нього. Для цих цілей ЦП використовує тільки декілька (від 4 до 7) команд. Наприклад, в IBM 360 таких команд чотири:
Почати ввід/вивід;
Зупинити ввід/вивід;
Перевірити ввід/вивід;
Перевірити канал.
Обмін інформацією між КВВ і основною пам'яттю здійснюється через системну шину ОМ. ПП підключається до каналу не безпосередньо, а через блоки управління периферійними пристроями (БУПП). БУПП приймає від каналу команди по управлінню периферійним пристроєм (читання, запис, переміщення носія або магнітної головки та ін.), і перетворює їх в сигнали управління, які властиві даному типу ПП. Звичайно один БУПП може обслуговувати декілька однотипних ПП, але для підключення швидкодіючих периферійних пристроїв часто використовують індивідуальні блоки управління. В свою чергу, деякі ПП можуть підключатись одночасно до кількох БУПП. Це дозволяє використовувати вільний тракт іншого БУПП при зайнятості даного БУПП, що обслуговує інший підключений до нього ПП.
З введенням СВВ на центральний процесор ЕОМ, головним чином, покладається тільки ініціювання операції вводу/виводу (ВВ). Процесор видає в канал команду ВВ, після чого звільняється і може продовжувати виконання основної програми. Управління операцією ВВ бере на себе канал. Він повинен визначити вид операції, вибрати ПП, визначити напрямок обміну, можливість обміну з указаним ПП та запустити його у роботу. Під запуском розуміють повідомлення ПП коду режиму роботи та переведення його в режим автома-тичного управління. Для розв'язання усіх цих задач канал повинен одержати від процесора інформацію про операцію вводу/виводу, про номер каналу, про адресу ПП, з якими повинен бути проведений обмін даними, та про першу команду канальної програми, яка буде управляти виконанням заданої операції.
КВВ реалізує операції вводу/виводу шляхом виконання так званої канальної програми. Канальні програми для кожного ПП, з яким буде вестись обмін інформацією, описують потрібну послідовність операцій вводу/виводу та зберігаються в основній пам'яті ОМ. Роль команд у канальних програмах виконують управляючі слова каналу (УСК). Адреса першого УСК може знаходитись у форматі команди ВВ або знаходитись у фіксованій комірці оперативної пам'яті. Схема командної взаємодії для випадку, коли адреса першого УСК міститься у форматі команди ВВ, показана на рис. 38.1.
Рисунок 38.1 – Схема командної взаємодії СВВ
Після запуску вибраного ПП та передачі першого УСК в канал відбувається паралельна робота процесора з реалізації основної програми та каналу разом з ПП з організації обміну даними між ПП та ОЗП. У разі готовності ПП до обміну він посилає сигнал запиту на одержання або видачу чергового слова інформації.
З цього моменту починається інформаційна взаємодія процесора та каналу, в основі якого лежить безпосередній обмін інформацією у режимі затримок процесора. Робота процесора призупиняється, наприклад, після кожного такту виконання команди відбувається обмін інформацією та її компоновка в масиві пам'яті під взаємодією команд, ознак та адрес, закодованих в управляючих словах каналів.
Після обміну проходить модифікація УСК з метою формування адрес наступних управляючих слів та даних, а також визначення кінця обміну інформацією.
Спосіб організації взаємодії ПП з каналом визначається співвідношенням швидкодії ОЗП та ПП. За цією ознакою всі ПП прийнято ділити на два класи: швидкодіючі (накопичувачі на магнітних дисках та стрічках) зі швидкістю приймання і видачі інформації вище 1 Мбайт/с і повільнодіючі (монітори, друкувальні пристрої та ін.) зі швидкістю близько 1 Кбайт/с. Швидкодія основної пам'яті зазвичай вища. З урахуванням продуктивності ПП в КВВ реалізуються два режими роботи: мультиплексний (режим розділення часу) та монопольний.
У мультиплексному режимі декілька периферійних пристроїв розділяють канал у часі, при цьому кожний з паралельно працюючих з каналом ПП зв'язується з КВВ на короткі проміжки часу тільки після того, як ПП буде готовий до прийому або видачі чергової порції інформації (байта, групи байтів і т. д). Така схема прийнята у мультиплексному каналі вводу/виводу. Якщо протягом сеансу зв'язку пересилається один байт або декілька байтів, що утворюють одне машинне слово, канал називається байт-мультиплексним. Канал, у якому в межах сеансу зв'язку пересилка даних відбувається поблочно, має назву блок мультиплексний.
У монопольному режимі після встановлення зв'язку між каналом і ПП останній монополізує канал на весь час до завершення ініційованої процесором канальної програми та всіх передбачених цією програмою пересилок даних між ПП і ОЗП. На весь час виконання канальної програми канал стає недоступним для інших ПП. Дану процедуру забезпечує селекторний канал вводу/виводу. Відмітимо, що в блок-мультиплексному каналі в рамках сеансу зв'язку пересилка блока даних відбувається у монопольному режимі.
Функції каналів вводу/виводу залежать від типу комп’ютера. В великих комп’ютерних системах канал — самостійний в логічному відношенні пристрій, який працює за відповідною програмою. Він звільняє процесор від багатьох допоміжних операцій вводу/виводу. Функції каналів у форматі керуючого слова (КС) каналу наведені на рис. 38.2.
Рисунок 38.2 – Формат керуючого слова каналу вводу/виводу
До функцій каналів вводу/виводу належать наступні:
1. Визначення типу операції вводу/виводу, який задається кодом операції (КОП);
2. Організація ланцюга операцій, який задається послідовністю КС, кожне з яких описує нову операцію вводу/виводу над новим масивом інформації. Для організації ланцюга операцій до складу КС вводять розряд вказівника ланцюга операцій (ВЛО). Якщо ВЛО = «1», то після виконання КС вибирається нове КС, якщо ВЛО = «0», то дане КС є останнім в ланцюгу.
3. Визначення області пам’яті. Область пам’яті задається початковою адресою ПА і розміром області N, тобто кількістю слів, починаючи від початкового слова.
4. Організація ланцюга даних, який організується при роботі з масивами даних і представляє собою послідовність з декількох КС. Для керування ланцюгом даних використовується двійковий розряд – вказівник ланцюга даних (ВЛД), який приймає одне з двох значень – «0» або «1». Якщо вказівник ланцюга рівний «1», то канал вибирає з пам’яті наступне КС, якщо вказівник ланцюга рівний «0», то операція закінчується.
5. Забезпечення пропуску інформації. Записуються/зчитуються окремі частини масиву та пропускаються дані, які не є потрібними в конкретному випадку. Для реалізації пропуску інформації в керуюче слово каналу вводиться розряд вказівника пропуску інформації (ВПІ). Якщо ВПІ = «0», то виконується КС, якщо ВП1 = «1», то запис/зчитування не проводиться, лише підраховуються дані.
Утворення ланцюгів даних і операцій можна комбінувати. В загальному випадку ланцюг КС – це програма каналу.
6. Організація переривання вводу/виводу. Канал інформує центральний процесор про хід вводу/виводу, посилаючи запити переривання. Два основних види переривань - програмно-кероване переривання і переривання, яке викликане закінченням вводу/виводу. На наявність програмно-керованого переривання вказує відповідний розряд в КС, який називають вказівником програмно-керованого переривання (ВПКП). Якщо ВПКП = «1», то апаратура каналу формує запит переривання, виконуючи одночасно поточну операцію введення-виведення. Переривання, зв’язані з закінченням вводу/виводу, формуються, якщо виконані всі операції в ланцюгу КС.
Існує чотири види керуючої інформації каналу вводу/виводу:
1. Команди центрального процесора;
2. Керуюче слово каналу;
3. Накази периферійним пристроям;
4. Коди стану периферійних пристроїв і каналів. На рис. 38.3 наведено закріплення керуючої інформації каналу за пристроями комп’ютера.
Рисунок 38.3 – Обмін керуючою інформацією каналу
Команди вводу/виводу керують роботою центрального процесора. Послідовність команд вводу/виводу -це програма центрального процесора по вводу/виводу інформації. Формат команди вводу/виводу центрального процесора наведено на рис. 38.4.
Рисунок 38. 4 – Формат команди введення-виведення центрального процесора, де:
КОП – поле коду операції, яке задає операції запуску вводу/виводу, припинення вводу/виводу, опитування стану каналу, опитування стану пристрою вводу/виводу;
НК – поле номера каналу;
НПВВ – поле номера пристрою вводу/виводу;
АКС – поле адреси керуючого слова каналу.
Код операції керуючого слова каналу, який наведено на рис. 38.2, задає операцію вводу інформації в основну пам’ять; операцію зчитування інформації з основної пам’яті в периферійний пристрій, опитування стану периферійного пристрою, операцію видачі в периферійний пристрій наказу типу «перехід в каналі».
Наказ – це частина КС (або код, який адресується КС) – код, який приймається з каналу і виконується периферійним пристроєм. Наказ містить інформацію, специфічну для даного периферійного пристрою. Коди стану інформують центральний процесор про стан каналу та периферійного пристрою.
В сімействах універсальних ОМ, що прийшли на зміну IBM 360 (сімейства IBM 370 і особливо IBM 390), концепція системи вводу/ виводу на базі каналів отримала подальший розвиток і вилилася в так звану канальну підсистему вводу/виводу (КПВВ). Головна ідея полягає в інтеграції окремих КВВ в єдиний спеціалізований процесор вводу/ виводу з великим числом канальних трактів і підканалів. Блоки управління зовнішніми пристроями зазвичай підключаються до декількох канальних трактів, що дозволяє динамічно міняти шлях пересилки інформації з урахуванням поточної їх завантаженості.
Крім того, різні канальні тракти можуть володіти різною пропускною спроможністю, і під час вибору трактів для підключення певних ПП може бути врахована їх швидкодія.
Одну з найбільш досконалих канальних підсистем мають ОМ сімейства IBM 390. У ній передбачено використання до 65536 підканалів і до 256 канальних трактів. Реалізовано два типи канальних трактів: паралельний і послідовний.
Паралельні канальні тракти за своїми можливостями і принципом дії аналогічні розглянутим раніше мультиплексному і селекторному каналах, але на відміну від них є універсальними, тобто можуть працювати в байт-мультиплексному, блок-мультиплексному і селекторному режимах. Такі канальні тракти в КПВВ називають паралельними, оскільки вони забезпечують пересилку інформації паралельним кодом.
Для роботи з ПП, зв'язаними з КПВВ волоконно-оптичними лініями, використовуються послідовні канальні тракти, що реалізовують протокол ESCON (Enterprise Systems Connection Architecture). Послідовний канальний тракт розрахований на передачу інформації тільки в послідовному коді і лише в селекторному режимі. Для підключення блоків управління зовнішніми пристроями (БУЗП) до ESCON-тракту служать спеціальні пристрої, що називаються ESCON-директорами. Кожний такий пристрій може забезпечити одночасне підключення до 60 БУЗП і одночасну передачу інформації від 30 з них з швидкістю до 10 Мбайт/с.
Крім того, в КПВВ передбачені спеціальні комунікаційні канальні тракти для підключення до мереж ОМ, модемів, інших систем.
В принципі, основна перевага КПВВ – динамічний перерозподіл канальних трактів – у якійсь мірі може бути реалізовано і в рамках кожного окремого каналу. Проте об'єднання всіх канальних ресурсів у єдину канальну підсистему дозволяє застосувати оптимальну стратегію динамічного розподілу та використання цих ресурсів і завдяки цьому досягти якісно нового рівня ефективності системи вводу/виводу.