Канальная организация подсистем ввода-вывода Эта форма организации ввода-вывода широко используется в мэйнфреймах, начиная с больших универсальных ЭВМ 3-го поколения. Данный способ обеспечивает мультипрограммный режим работы ВС, когда одновременно с обработкой данных выполняются процедуры ввода и вывода данных. Логически такая подсистема ввода-вывода представляет собой совокупность подканалов обмена между внешними устройствами и ОП; каждому внешнему устройству выделяется логический подканал. Реальные подканалы могут быть двух видов: неразделенные и разделенные. Неразделенный подканал представляетсобой средство выполнения процедуры обмена с определенным ВУ. Разделенный подканал представляет собой средство, которое может использоваться попеременно различными логическими подканалами для организации обмена с многими ВУ. Разделенный подканал может иметь собственное оборудование и отдельное сопряжение с ВУ. Управление передачей данных между ОП и ВУ осуществляет канал ввода-вывода (или просто канал). Канал может работать в двух режимах: монопольном и мультиплексном. При монопольном режиме в процессе ввода-вывода обслуживается только одно устройство, работа остальных ВУ блокируется. В мультиплексном режиме каждое из присоединенных ВУ попеременно взаимодействует с каналом в интервалы времени, устанавливаемые автоматически. Мультиплексный (иногда называют байт-мультиплексный) канал имеет определенное число неразделенных подканалов, т.е. способен одновременно обеспечить выполнение операций ввода-вывода в каждом подканале, при этом общая нагрузка не должна превышать его пропускную способность. Для обмена с быстрымиВЗУ в монопольном режиме используют селекторный канал (иногда называют блоковый или блок-мультиплексный канал). Функционально подсистема ввода-вывода включает в свой состав процессоры ввода-вывода (канальные процессоры), устройства управления внешними устройствами (контроллеры) и собственно ВУ. Канальный процессор, являющийся по сути специализированной ЭВМ, инициализирует работу канала с помощью команд ввода-вывода, в которых указывается вид операции, адрес канала и внешнего устройства, с которым будет происходить обмен. Обычно таких команд в системе команд ЭВМ несколько. Например, для мэйнфреймов фирмы IBM(S/370, S/390 и др.) имеется не менее 8 команд ввода-вывода: 1. SIO – Начать ввод-вывод. 2. SIOF – Начать ввод-вывод с быстрым отключением. 3. TCH – Проверить (опросить) канал. 4. TIO – Проверить (опросить) ввод-вывод. 5. CLRIO – Освободить ввод-вывод. 6. HIO – Остановить ввод-вывод. 7. HDV – Остановить устройство. 8. STIDC – Записать идентификатор канала. Ниже приведен формат команд ввода-вывода для указанных выше семейств ЭВМ. Рис. 4.3. Формат команды ввода-вывода Как следует из рис. 4.3 в поле адресов (байты 2 и 3) можно указывать до 256 каналов и до 256 устройств. Ниже приведены примеры записи команд ввода-вывода. SIO WWOD ; адрес канала и устройства задан символическим именем. SIO X’00C’ ; адресован канал с номером 0, а адрес УВВ равен 0С. Для того чтобы задать устройству ВВ необходимую команду, указать откуда брать данные для ввода-вывода и сколько данных необходимо вводить (выводить), необходимо указать в программе на языке ассемблера команду CCW, имеющую формат: имя | CCW | Четыре операнда, разделенные запятыми | Операнд 1 – абсолютное выражение, определяющее код команды. Операнд 2 – абсолютное или перемещаемое выражение, определяющее адрес данных. Операнд 3 – абсолютное выражение, определяющее признаки (флажки). Операнд 4 – абсолютное выражение, определяющее количество информации в байтах, участвующих в операции. Например, команда READ CCW X’02’, X’800’, X’00’, X’50’ осуществляет считывание (код 02), 80 байтов (5016), в память с адреса 80016. На рис. 4.4 приведен вариант организации подсистемы ввода-вывода с 6-ю каналами (1 мультиплексный и 5 селекторных). Для управления работой внешних устройств в ОС входит супервизор ввода-вывода и набор стандартных методов доступа, обеспечивающих обработку запросов пользователя, подготовку программ канала и обработку наборов данных. Управление операциями ввода-вывода осуществляется на физическом уровне. В большинстве ЭВМ интерфейсы между ЦП и каналами идентичны с точки зрения состава передаваемой информации и логики ее обработки. В канальных подсистемах ввода-вывода используют для подключения ВУ как радиальные (магистральные), так и шинные интерфейсы. Возможно использование и комбинированных интерфейсов. Главным достоинством канальной архитектуры является ее масштабируемость, позволяющая практически неограниченно наращивать производительность подсистемы ввода-вывода. К недостаткам следует отнести высокую стоимость, сложность и громоздкость системы. Рис. 4.4. Структурная схема канальной подсистемы ввода-вывода |