Канал вводу-виводу

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Канал вводу-виводу як структурний елемент ЕОМ (ПВВ — пристрій вводу виводу)

Канал вводу-виводу (англ. 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. Байт-мультиплексний канал — для обслуговування повільних периферійних пристроїв (наприклад, пристроїв друку) з поперемінним підключенням до декількох пристроїв для передачі невеликих блоків даних (для окремих пристроїв — від 1-го байту).
  2. Селекторний канал — для обслуговування швидких периферійних пристроїв з вбудованим буфером (наприклад, накопичувачів на твердих дисках) з підключенням до окремого пристрою для передачі відносно великих блоків даних (в залежності від типу пристроїв — до декількох кілобайт).
  3. Блок-мультиплексорний канал — аналогічний селекторному каналу, але забезпечує одночасне обслуговування декількох пристроїв шляхом поперемінного підключення як байт-мультиплексний канал.

Програмування каналів[ред. | ред. код]

Командне Слово Каналу[ред. | ред. код]

Командне Слово Каналу (англ. 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) в результаті переривання вводу-виводу. Містить адресу пристрою, від якого надійшло переривання та іншу інформацію.

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]

  1. IBM Archives: 709 Data Processing System (англ.). IBM. Архів оригіналу за 13 квітня 2018. Процитовано 22 січня 2014. 
  2. IBM Archives: 7090 Data Processing System (англ.). IBM. 30 грудня 1958. Архів оригіналу за 20 серпня 2018. Процитовано 22 січня 2014. 
Помилка цитування: Тег <ref> з назвою "райков", визначений у <references>, не використовується в попередньому тексті.

Посилання[ред. | ред. код]

Джерела[ред. | ред. код]

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