Канал вводу-виводу — Вікіпедія
Канал вводу-виводу (англ. IOC - input-output channel) — один з базових пристроїв обчислювальної системи (разом з процесором та оперативною пам'яттю), що забезпечує керування периферійними пристроями та інформаційний обмін між ними та пам'яттю комп'ютера. Застосовуються в мейнфреймах. Керування каналом здійснюється за допомогою окремих інструкцій процесора, а керування пристроями здійснює канал — через власні канальні програми, які складаються з послідовності спеціальних командних слів каналу (англ. Channel Command Word, CCW).
Вперше канальний ввід-вивід було застосовано 1957-го року у ламповому комп'ютері IBM 709[1], а саме у пристрої «Синхронізатор даних IBM 766», що був першим контролером каналу. Транзисторний аналог цієї машини, а саме IBM 7090,[2], мав два або більше канали (пристрій IBM 7607), а також канальний мультиплексор (IBM 7606), який міг забезпечувати роботу до восьми каналів.
У мейнфреймах серії IBM System/360 і ранніх System/370 селекторні і мультиплексні канали являли собою громіздкі і дорогі процесорні блоки. Прикладами є IBM 2860 (від одного до трьох селекторних каналів на блок), IBM 2870 (один байт-мультиплексний канал і опційно один селекторний підканал), і IBM 2880 (один або два блок-мультиплексних канали).
У комп'ютерах NeXT також використовувалися контролери каналів, виконані у вигляді інтегральної схеми.
Канал вводу-виводу — самостійний в логічному відношенні пристрій і, фактично, може розглядатись як спеціалізований і вбудований в ЕОМ процесор. В сучасних машинах канали називають периферійними процесорами або процесорами вводу-виводу.
Окрім передачі даних канали забезпечують буферизацію даних, збереження окремих значень стану периферійних пристроїв, виправлення окремих помилок передачі даних, що виникають в периферійних пристроях, інформують центральний процесор (через механізм переривань вводу-виводу) про зміну станів пристроїв вводу-виводу.
За способом буферизації даних канали поділяються на:
- Байт-мультиплексний канал — для обслуговування повільних периферійних пристроїв (наприклад, пристроїв друку) з поперемінним підключенням до декількох пристроїв для передачі невеликих блоків даних (для окремих пристроїв — від 1-го байту).
- Селекторний канал — для обслуговування швидких периферійних пристроїв з вбудованим буфером (наприклад, накопичувачів на твердих дисках) з підключенням до окремого пристрою для передачі відносно великих блоків даних (в залежності від типу пристроїв — до декількох кілобайт).
- Блок-мультиплексорний канал — аналогічний селекторному каналу, але забезпечує одночасне обслуговування декількох пристроїв шляхом поперемінного підключення як байт-мультиплексний канал.
Командне Слово Каналу (англ. Channel Command Word, CCW) — інструкція керування каналу вводу-виводу. Логічно пов'язана послідовність CCW складала канальну програму, яку канал починав виконувати для зовнішнього пристрою з метою здійснення операцій читання/запису даних або керування пристроєм.
Виконання канальної програми розпочиналось в результаті виконання процесором привілейованої інструкції SIO (англ. Start Input-Output; Розпочати Ввід-Вивід), яка містила номер каналу та пристрою для вводу-виводу. Після отримання SIO канал розпочинав виконання власної канальної програми, адреса якої визначалась спеціальною змінною CAW (англ. Channel Address Word; Адресне Слово Каналу), що містилась в ОП за фіксованою адресою.
В IBM System/360, IBM System/370 Командне Слово Каналу мало довжину 64 біти і включало 8 біт з кодом інструкції, 24 біти з адресою блоку даних, 16 біт довжини блоку даних. В окремих моделях каналів підтримувалась спеціальна інструкція переходу в канальній програмі.
Адресне Слово Каналу (англ. Channel address word, CAW) міститься в ОП за фіксованою адресою (на ранніх платформах — 0х48), визначає адресу канальної програми і встановлюється перед виконанням операції SIO (англ. Start Input-Output).
Слово Стану Каналу (англ. Channel status word, CSW) записується в ОП за фіксованою адресою (на ранніх платформах — 0х40) в результаті переривання вводу-виводу. Містить адресу пристрою, від якого надійшло переривання та іншу інформацію.
- Program status word, PSW (Слово Стану Програми)
- ↑ IBM Archives: 709 Data Processing System (англ.). IBM. Архів оригіналу за 13 квітня 2018. Процитовано 22 січня 2014.
- ↑ IBM Archives: 7090 Data Processing System (англ.). IBM. 30 грудня 1958. Архів оригіналу за 20 серпня 2018. Процитовано 22 січня 2014.
- Channel Command Word [Архівовано 2 лютого 2014 у Wayback Machine.] (англ.)
- Systems Reference Library // IBM System/360 Principles Of Operation [Архівовано 2 квітня 2013 у Wayback Machine.] (англ.)
- Райков Л.Д. Принципы работы системы ИБМ/370 — М:. Мир, 1975, 576 с.