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