Канал – это специализированный процессор, осуществляющий всю работу по управлению контроллерами внешних устройств и обмену данными между основной памятью и внешними устройствами.
Устройства группируются по характерной скорости и подключаются к соответствующим каналам.
Каналы:
§ селекторные - «быстрые» устройства (напр., накопители на магнитных дисках). Устройство получает канал в монопольное использование на все время выполнения операции обмена данными;
§ мультиплексные - «медленные» устройства. Канал разделяется (мультиплексируется) между несколькими устройствам, при этом возможен одновременный обмен данными с несколькими устройствами.
Доступ к оперативной памяти может получить и ЦП, и один из каналов. Для управления очередностью доступа имеется контроллер оперативной памяти, который определяет приоритетную дисциплину доступа при одновременном обращении нескольких устройств к памяти. Приоритет обратно пропорционален частоте обращения устройств к памяти (наименьший приоритет – ЦП, среди каналов больший приоритет имеют медленные каналы).
|
|
За счет существенного усложнения организации ЭВМ, упрощается архитектура ввода-вывода. Связь между отдельными узлами осуществляется по схеме, напоминающей треугольник. Операции обмена данными становятся более простыми. Канал, по сути, представляет собой специализированный «интеллектуальный» контроллер прямого доступа к памяти. Для ускорения обмена данными реализованы несколько трактов обмена данными (процессор — основная память, каналы — основная память). О своем состоянии канал может информировать процессор с помощью прерываний. Все контроллеры внешних устройств подключаются к «своим» каналам с помощью стандартного интерфейса. Свобода подключения внешних устройств сохраняется благодаря стандартному протоколу интерфейса, при этом появляется возможность группировать устройства по характеристикам.
Канал выполняет свою канальную программу:
- состоит из канальных команд;
- длина программы произвольна;
- последняя команда содержит признак конца;
- подготовку программы и загрузку ее в оперативную память осуществляет ОС.
- после подготовки канальная программы, адрес ее начала размещается в фиксированной ячейке памяти, называемой С ловом адреса канала CAW (Chanel Adress Word).
Команды процессора для управления каналами:
§ НАЧАТЬ ВВОД-ВЫВОД - SIO M,N (Start Input-Output)- инициирование операции обмена данными:
- М - номер канала;
- N - номер устройства в канале.
§ ОПРОСИТЬ ВВОД-ВЫВОД — TIO (Test Input-Output) – проверка процессором состояния канала
Команда SIO M,N передается во все каналы, но воспринимает ее только канал М. Если канал занят, то он устанавливает соответствующее состояние своих регистров, и процессор по команде TIO может выяснить, что запуск канальной программы не состоялся. Если канал свободен, он выполняет следующие действия.
|
|
1. выбирает из оперативной памяти CAW в свой регистр;
2. передает подключенным к нему устройствам команду SIO.
Команда SIO M,N передается всем устройствам, но воспринимает ее только устройство N. Если устройство занято или не готово, в регистрах канала устанавливается соответствующее состояние и процессор по команде TIO может узнать о том, что операция обмена данными не состоялась. Если же устройство свободно и готово к обмену данными, оно устанавливает в интерфейсе сигнал ожидания. Вся дальнейшая обменная операция протекает по инициативе внешнего устройства.
Получив сигнал ожидания, канал выбирает по адресу CAW адрес канальной команды и передает ее в контроллер внешнего устройства, где она выполняется.
Канальные команды:
- подготовительные команды - устанавливают режимы работы внешних устройств, осуществляют операции поиска и т.д.
- команды обмена данными - содержат коды операций и адреса оперативной памяти. Обмен происходит по асинхронной схеме по инициативе внешнего устройства. Данные извлекаются из памяти и помещаются в нее напрямую, без посредников.
После выполнения команды канал проверяет в выполненной команде признак конца. Если это не последняя команда, меняется адрес CAW и выбирается следующая команда. Если команда последняя, канал «привлекает к себе внимание» процессора с помощью сигнала прерывания. По сигналу прерывания запускается обработчик, являющийся частью ОС. Обработчик прерывания выполняет операции, завершающие обмен.
Канал может сгенерировать сигнал прерывания до окончания канальной программы при возникновении исключительной ситуации. В этом случае операционная система запрашивает состояние регистров канала и выясняет, что именно произошло, и определяет, какие действия необходимо предпринять в возникшей ситуации.
Одной из первых машин с каналами была ЭВМ второго поколения IBM-704. Ярким примером ЭВМ с каналами являются машины семейства IBM-360/370.