Функционирование ЭВМ с канальной организацией

В основе канальной организации ЭВМ лежит множественность каналов связи между устройствами и функциональная специализация узлов. Упрощенная схема организации ЭВМ с каналами приведена на рисунке 15. Сравним схему ЭВМ с каналами и описанную выше схему ЭВМ с шинной организацией.

Рис. 15. Упрощенная схема ЭВМ с канальной организацией:

ЦП – центральный процессор, ВУ— внешние устройства

Все фон-неймановские ЭВМ очень похожи друг, на друга и алгоритм функционирования центрального процессора, по сути, ничем не отличается от описанного выше.

Помимо уже знакомого набора устройств (центральный процессор, память, устройства ввода-вывода), в состав ЭВМ с канальной организацией входят устройства, называемые каналами. Канал – это специализированный процессор, осуществляющий всю работу по управлению контроллерами внешних устройств и обмену данными между основной памятью и внешними устройствами. Устройства группируются по характерной скорости и подключаются к соответствующим каналам. “Быстрые” устройства (например, накопители на магнитных дисках) подсоединяются к селекторным каналам. Такое устройство получает селекторный канал в монопольное использование на все время выполнения операции обмена данными. “Медленные” устройства подключаются к мультиплексным каналам. Мультиплексный канал разделяется (мультиплексируется) между несколькими устройствам, при этом возможен одновременный обмен данными с несколькими устройствами. Доступ к оперативной памяти может получить и центральный процессор, и один из каналов. Для управления очередностью доступа имеется контроллер оперативной памяти. Он определяет приоритетную дисциплину доступа при одновременном обращении нескольких устройств к памяти. Наименьший приоритет имеет центральный процессор. Среди каналов больший приоритет имеют медленные каналы. Таким образом, приоритет обратно пропорционален частоте обращения устройств к памяти.

За счет существенного усложнения организации ЭВМ упрощается архитектура ввода-вывода. Связь между отдельными узлами осуществляется по схеме, напоминающей треугольник. Операции обмена данными становятся более простыми. Канал, по сути, представляет собой специализированный “интеллектуальный” контроллер прямого доступа к памяти. Для ускорения обмена данными реализованы несколько трактов обмена данными (процессор – основная память и каналы – основная память). О своем состоянии канал может информировать процессор с помощью прерываний, о которых будет сказано ниже. Все контроллеры внешних устройств подключаются к “своим” каналам с помощью стандартного интерфейса. Свобода подключения внешних устройств сохраняется благодаря стандартному протоколу интерфейса, при этом появляется возможность группировать устройства по характеристикам.

Результатом введения каналов (специализированных процессоров ввода-вывода) является, с одной стороны, большая стандартизация и упрощение процессов обмена. С другой стороны, вводятся некоторые ограничения. Например, сохраняется только одна схема, напоминающая схему прямого доступа, с обменом информации между процессором и каналом по прерываниям.

Канал, являясь специализированным процессором, выполняет свою канальную программу. Она состоит из канальных команд и хранится в оперативной памяти. Длина канальной программы произвольна, последняя команда канальной программы содержит признак конца. Подготовку канальной программы и загрузку ее в оперативную память осуществляет операционная система.

Отметим некоторые особенности канальных машин. Несколько подряд идущих канальных команд могут образовывать цепочку данных. В этом случае имеется одна команда обмена, например чтения физической записи из нескольких адресов оперативной памяти со счетчиков. Одна физическая запись распределяется в несколько адресов оперативной памяти.

В ЭВМ с канальной организацией процессор практически полностью освобождается от рутинной работы по организации ввода-вывода. Управление контроллерами внешних устройств и обмен данными берет на себя канал. Наличие нескольких трактов передачи данных снимает трудности, связанные с блокировкой единственного тракта передачи данных (системной шины), что повышает скорость обмена. Все это дает возможность производить обмен данными с внешними устройствами параллельно с основной вычислительной работой центрального процессора. В результате общая производительность системы существенно возрастает. Удорожание схемы окупается.

Одной из первых машин с каналами была ЭВМ второго поколения IBM-704. Ярким примером ЭВМ с каналами являются машины семейства IBM-360/370. Появление этих ЭВМ произвело переворот в вычислительной технике, и на долгие годы они стали образцом для подражания у создателей ЭВМ. Хотя в настоящее время эти машины ушли в прошлое, они оставили богатое наследие в виде интересных архитектурных решений, программных и алгоритмических разработок. В настоящее время схемы со специализированными процессорами ввода-вывода часто встречаются в ЭВМ различных типов. Несомненно, к идее схемы с каналами еще неоднократно будут возвращаться.

Обработка прерываний

Важную роль в работе современной ЭВМ играют прерывания. Они всегда нарушают естественный ход выполнения программы для осуществления неотложных действий, связанных, например, с реакцией на щелчок мыши или сбой в цепи электропитания.

События, вызывающие прерывания, можно разделить на две группы: фатальные и нефатальные. На фатальные (неотвратимо наступающие) процессор может реагировать единственным способом: прекратить исполнение программы, проанализировать событие и принять соответствующие меры (чаще всего – сообщить причину прерывания пользователю и ждать его реакции). Однако часто можно с остановкой программы повременить: запомнить, что прерывание было, и продолжать исполнять программу. Например, сложение с переполнением разрядной сетки – фатальное событие, после которого остановка неизбежна; попытка вывода на принтер, не готовый к приему информации, может быть отложена (с сохранением этой информации).

Основные виды прерываний – внутрипроцессорные прерывания и прерывания от внешних устройств. Первые связаны с возникновением непреодолимого препятствия при выполнении программы. Причин может быть много: из памяти выбрана команда с несуществующим кодом или адресом, в ходе исполнения команды возникло переполнение разрядной сетки ЭВМ или произошла попытка записи в оперативную память, отведенную другой задаче. В большинстве подобных случаев дальнейшее выполнение программы становится невозможным и управление передается системе, обеспечивающей прохождение задач (чаще всего это – операционная система), которая и принимает меры по обработке внешней нештатной ситуации.

Гораздо реже, но возможны, нефатальные внутрипроцессорные прерывания, например, специальные отладочные прерывания. Такие прерывания обеспечивают возможность пошагового исполнения тестируемой программы под контролем специальных программных средств.

Прерывания второй группы возникают по требованиям какого-либо из многочисленных внешних устройств. Такое событие обычно не приводит к фатальному завершению задачи, напротив, это вполне нормальная ситуация. Поэтому при таком прерывании процессор принимает меры для того, чтобы обеспечить дальнейшее выполнение программы: запоминает в стеке текущее значение счетчика команд и содержимое регистра состояния. Затем происходит переход на подпрограмму обработки данного прерывания. После ее выполнения процессор восстанавливает из стека значения своих регистров и продолжает выполнение прерванной программы.

Термин “прерывание” часто используется еще в одном значении. Речь идет о так называемых программных прерываниях. Например, для IBM-совместимых компьютеров существуют многочисленные команды прерывания INT с самыми разнообразными номерами. Следует понимать, что INT – это одна из инструкций процессора; чтобы она заработала, ее код должен содержаться в программе. В противоположность этому “настоящие” прерывания возникают аппаратно и не требуют наличия каких-то специальных команд в тексте прерываемой программы. Более того, аппаратное прерывание может произойти между двумя любыми командами программы.

Запрет нефатального прерывания называется маскировкой; маскировка задается программистом или системной программой. Делается это либо с помощью установления вида битового поля в специальном регистре маски прерываний, в котором значения разрядов (0 или 1) связаны соответственно с отсутствием или наличием маскировки закрепленного за этим разрядом прерывания, либо с аналогичным использованием разрядов регистра состояния процессора.

После получения сигнала о незамаскированном прерывании процессор делает следующее:

запоминает состояние прерванной программы;

распознает источник прерывания;

вызывает и выполняет специальную системную программу обработки прерываний;

восстанавливает состояние прерванной программы и при возможности продолжает ее исполнение.

Для распознавания источника прерывания анализируются некоторые биты регистра состояния процессора, состояние внешних устройств и т.д. Для запоминания состояния прерванной программы чаще всего используется стек. Кроме того, стек используется процессором как для организации механизма прерываний, так и для обработки обращения к подпрограммам, передачи параметров и временного хранения данных.

Наши рекомендации