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