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

Історія

Вперше канальний ввід-вивід було застосовано в 1957 році в ламповому комп'ютері IBM 709, а саме у пристрої «Синхронізатор даних IBM 766», що був першим контролером каналу. Транзисторний аналог цієї машини, а саме IBM 7090, мав два або більше канали (пристрій IBM 7607), а також канальний мультиплексор (IBM 7606), який міг забезпечувати роботу до восьми каналів.

У мейнфреймах серії IBM System/360 і ранніх System/370 селекторні і мультиплексні канали являли собою громіздкі і дорогі процесорні блоки. Прикладами є IBM 2860 (від одного до трьох селекторних каналів на блок), IBM 2870 (один байт-мультиплексний канал і опційно один селекторний підканал), і IBM 2880 (один або два блок-мультиплексних канали).

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

Призначення каналів Канал вводу-виводу — самостійний в логічному відношенні пристрій і, фактично, може розглядатись як спеціалізований і вбудований в ЕОМ процесор. У сучасних машинах канали називають периферійними процесорами або процесорами вводу-виводу.

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

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

Програмування каналів

Командне Слово Каналу Командне Слово Каналу () — інструкція керування каналу вводу-виводу. Логічно пов'язана послідовність CCW складала канальну програму, яку канал починав виконувати для зовнішнього пристрою з метою здійснення операцій читання/запису даних або керування пристроєм.

Виконання канальної програми розпочиналось в результаті виконання процесором привілейованої інструкції SIO (; Розпочати Ввід-Вивід), яка містила номер каналу та пристрою для вводу-виводу. Після отримання SIO канал розпочинав виконання власної канальної програми, адреса якої визначалась спеціальною змінною CAW (; Адресне Слово Каналу), що містилась в ОП за фіксованою адресою.

В IBM System/360, IBM System/370 Командне Слово Каналу мало довжину 64 біти і включало 8 біт з кодом інструкції, 24 біти з адресою блоку даних, 16 біт довжини блоку даних. В окремих моделях каналів підтримувалась спеціальна інструкція переходу в канальній програмі.

Адресне Слово Каналу Адресне Слово Каналу () міститься в ОП за фіксованою адресою (на ранніх платформах — 0х48), визначає адресу канальної програми і встановлюється перед виконанням операції SIO (). Слово Стану Каналу Слово Стану Каналу () записується в ОП за фіксованою адресою (на ранніх платформах — 0х40) в результаті переривання вводу-виводу. Містить адресу пристрою, від якого надійшло переривання та іншу інформацію.

Див. також Program status word, PSW (Слово Стану Програми)

Джерела

Посилання Channel Command Word Systems Reference Library // IBM System/360 Principles Of Operation

Джерела Райков Л. Д. Принципы работы системы ИБМ/370 — М:. Мир, 1975, 576 с.