Принципы работы системы IBM/370

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

Рубрика Программирование, компьютеры и кибернетика
Вид книга
Язык русский
Дата добавления 12.06.2014
Размер файла 658,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Глава 13. Операции ввода-вывода

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

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

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

13.1 Подключение внешних устройств

Внешние устройства

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

Многие внешние устройства, например, печатающие устройства, перфокарточные устройства и накопители на магнитных лентах, работают непосредственно с внешним носителем. Эти устройства физически отличны друг от друга, и каждое из них может быть соответствующим образом идентифицировано. Устройства другого типа состоят только из электронного оборудования и не работают непосредственно с физическим носителем информации. Так, например, адаптер “канал-канал” обеспечивает обмен информацией между двумя каналами и передаваемые данные никогда не записываются на физический носитель информации вне основной памяти. Аналогично мультиплексор передачи данных IBM 2702 обеспечивает обмен информацией между системой обработки данных и абонентским пунктом Абонентский пункт - это, как правило, удаленный терминал (дисплей или пишущая машинка), обычно подключаемый к мультиплексору через модем.; его входными и выходными данными являются сигналы, передаваемые по каналам связи. Кроме того, устройство 2702 может одновременно работать с несколькими абонентскими пунктами и рассматриваться как отдельное внешнее устройство только в период времени, связанный с обслуживанием отдельного абонентского пункта.

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

Контроллеры

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

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

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

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

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

Каналы

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

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

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

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

Режимы работы

Операция ввода-вывода может выполняться в одном из двух режимов: монопольном или мультиплексном.

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

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

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

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

Обычно быстродействующие устройства работают с каналом в монопольном режиме, а медленные устройства - в мультиплексном. Некоторые контроллеры имеют ручные переключатели для установки режима работы.

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

Типы каналов

В системе могут быть каналы трех типов: селекторный, байт-мультиплексный и блок-мультиплексный. Каналы классифицируются в соответствии с их способностью к мультиплексированию и в зависимости от режимов работы, которые они могут обеспечить. Байт-мультиплексный канал может работать в мультиплексном или монопольном режиме в зависимости от подключенного к нему устройства. Селекторный канал работает только в монопольном режиме и не обеспечивает мультиплексирование. Блок-мультиплексный канал работает только в монопольном режиме и позволяет мультиплексировать блоки данных.

Средства канала, необходимые для выполнения одной операции ввода-вывода, называются подканалом. Подканал образуется из памяти канала, используемой для хранения адресов, счетчика, различной информации о состоянии и управляющей информации, относящихся к данной операции ввода-вывода. Способность канала к мультиплексированию определяется числом имеющихся в нем подканалов.

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

Байт-мультиплексный канал имеет несколько подканалов и может работать как в мультиплексном, так и в монопольном режимах. В мультиплексном режиме канал одновременно способен обслуживать несколько устройств, каждое по своему подканалу. В монопольном режиме только одно устройство может передавать данные через канал. Режим работы определяется устройством и в любой момент может быть изменен. Операция передачи данных может быть частично выполнена в мультиплексном режиме, а частично - в монопольном.

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

Способность к мультиплексированию в блок-мультиплексном канале определяется значением бита управления мультиплексированием (бит 0 управляющего регистра 0). Если этот бит установлен в нуль, мультиплексирование запрещено, а если в единицу - разрешено.

В момент запуска операции в устройстве по команде НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ блок-мультиплексный канал по состоянию бита управления мультиплексированием определяет, как будет выполняться данная операция - с запретом мультиплексирования или с разрешением, причем этот режим сохраняется на все время выполнения данной операции, пока не будет освобожден соответствующий подканал.

Байт-мультиплексный и блок-мультиплексный каналы могут иметь различное число подканалов. И тот и другой канал во время мультиплексирования способен одновременно обеспечить выполнение по одной операции ввода-вывода в каждом подканале при условии, что общая нагрузка на канал не превышает его пропускной способности. Если не учитывать тех аспектов связи, которые относятся к физическому каналу (например, отдельные подканалы мультиплексного канала не различаются по команде ПРОВЕРИТЬ КАНАЛ или по маске, управляющей прерываниями от канала), то можно сказать, что программа воспринимает каждый подканал как независимый селекторный канал. Если мультиплексный канал не занят обслуживанием какого-либо внешнего устройства, он просматривает устройства на предмет выявления запросов на передачу данных или условий прерывания.

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

Подканалы в мультиплексном канале могут быть разделенными и неразделенными.

Подканал считается неразделенным, если он может использоваться только одним устройством. Неразделенный подканал используется с внешними устройствами, не имеющими никаких ограничений на одновременность выполнения операций программы канала. К числу таких внешних устройство относятся печатающее устройство IBM 3211 модели 1 или один механизм доступа накопителя на магнитных дисках 3330.

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

Замечания по программированию

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

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

Работа системы

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

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

Программа процессора начинает операции ввода-вывода командой НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ. Эти команды указывают канал и устройство и заставляют канал выбрать адресное слово канала (CAW) из фиксированной ячейки основной памяти. Адресное слово канала содержит ключ защиты и указывает ячейку основной памяти, из которой канал затем выбирает первую команду канала (CCW). Команда канала определяет операцию, которую требуется выполнить, и, если нужно, область основной памяти, которую необходимо использовать.

После выборки адресного слова канала некоторые каналы завершают выполнение команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ. Результаты выполнения команды до этого момента указываются установкой признака результата в слове состояния программы (PSW) и в некоторых случаях запись соответствующей информации в слово состояния канала (CSW).

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

На этом выполнение команд НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ заканчивается, если они не были завершены ранее. Результаты попытки начать выполнение команды канала указываются установкой признака результата в слове состояния программы и в некоторых случаях записью соответствующей информации в CSW.

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

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

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

Обычно завершение операции ввода-вывода указывается двумя условиями: КОНЕЦ РАБОТЫ КАНАЛА и КОНЕЦ РАБОТЫ УСТРОЙСТВА Эти условия часто называются также “Канал кончил” и “ВУ кончило”.. Условие КОНЕЦ РАБОТЫ КАНАЛА показывает, что устройство получило или выдало всю информацию, связанную с данной операцией, и больше не требует использования средств канала. Условие КОНЕЦ РАБОТЫ УСТРОЙСТВА показывает, что устройство закончило выполнение операции. Это условие может появиться одновременно с условием КОНЕЦ РАБОТЫ КАНАЛА или позже него.

При выполнении операций, в которых контроллер остается занятым после освобождения канала, в некоторых случаях может возникать условие еще одного типа. Это условие, называемое КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА Другое название - “УУ кончило” или “УВУ кончило”., может появиться одновременно с условием КОНЕЦ РАБОТЫ КАНАЛА или позже него. Оно показывает, что контроллер свободен для выполнения следующей операции.

Условия, характеризующие завершение операции ввода-вывода, могут быть учтены программой с помощью прерываний ввода-вывода либо, если процессор замаскирован от прерываний ввода-вывода от данного канала, программным опросом устройства. В любом случае эти условия вызывают запись слова состояния канала (CSW), которое содержит дополнительную информацию о выполняемой операции. При появлении условия КОНЕЦ РАБОТЫ КАНАЛА канал определяет в программе последнюю использованную команду канала и обеспечивает остаточный счет байтов для этой команды, показывая тем самым, какая область памяти была использована. Как канал, так и устройство могут сигнализировать одновременно с сигналом КОНЕЦ РАБОТЫ КАНАЛА о возникших в них необычных условиях. Условия КОНЕЦ РАБОТЫ УСТРОЙСТВА и КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА могут сопровождаться индикацией ошибок устройства.

Программа имеет возможность начать выполнение цепочки операций ввода-вывода по одной команде НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ. Если соответствующие флажки в текущей команде задают цепочку команд и никаких необычных условий в данной операции не было обнаружено, получение сигнала КОНЕЦ РАБОТЫ УСТРОЙСТВА заставляет канал выбрать новую команду и начать новую операцию в устройстве. Выполнение команды цепочки начинается с помощью той же последовательности сигналов через интерфейс, что и для первой команды канала, указанной командой НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ. Сигналы окончания отдельной операции цепочки недоступны программе, если начинается выполнение следующей команды цепочки; канал продолжает выполнение программы канала. Однако если было обнаружено какое-либо необычное условие, сигналы окончания текущей операции вызовут подавление цепочки команд и прекращение программы канала.

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

Таким образом, при выполнении операции ввода-вывода или цепочки операций можно выделить четыре уровня:

1. Если не рассматривать эффектов, связанных с использованием общего оборудования процессором и каналом, то можно считать, что процессор занят в течение всего времени выполнения команды НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, которая длится самое большее до тех пор, пока адресуемое внешнее устройство не ответит на первую команду канала.

2. Подканал занят с момента начала операции во внешнем устройстве до получения процессором условия КОНЕЦ РАБОТЫ КАНАЛА последней операции цепочки.

3. Контроллер может оставаться занятым и после того, как подканал освободится, и может, когда освободится, вырабатывать условие КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА.

4. Внешнее устройство занято с момента, когда в нем начинается первая операция, и до тех пор, пока не будет принято процессором условие КОНЕЦ РАБОТЫ УСТРОЙСТВА, соответствующее последней операции.

Наличие необработанного условия КОНЕЦ РАБОТЫ УСТРОЙСТВА приводит к тому, что соответствующее устройство оказывается занятым, хотя отсрочка обработки этого условия обычно не отражается на состоянии каких-либо других частей системы. Наличие необработанного условия КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА обычно блокирует связи через этот контроллер со всеми подключенными к нему внешними устройствами. Наличие же необработанного условия КОНЕЦ РАБОТЫ КАНАЛА обычно блокирует все связи через подканал.

Совместимость

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

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

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

13.2 Управление внешними устройствами

Процессор управляет выполнением операций ввода-вывода с помощью семи команд ввода-вывода: НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ УСТРОЙСТВО, ПРОВЕРИТЬ КАНАЛ.

Команда ПРОВЕРИТЬ КАНАЛ адресует только канал, а не устройство. В остальных командах указывается адрес канала и адрес устройства на этом канале.

Адресация внешних устройств

Выбор внешнего устройства и соответствующего пути доступа к нему определяется адресом ввода-вывода. Адрес ввода-вывода представляет собой 16-разрядное число и состоит из двух частей: адреса канала, занимающего 8 старших разрядов, и адреса устройства, занимающего 8 младших разрядов.

Поле адреса канала позволяет адресовать до 256 каналов. Канал с адресом 0 является байт-мультиплексным каналом, каналы с адресами в диапазоне от 1 до 255 могут быть мультиплексными или селекторными.

Число и тип каналов, а также распределение адресов для них зависят от модели и от особенностей конкретной вычислительной установки.

Адрес устройства указывает конкретное внешнее устройство и его контроллер на данном канале. Например, адрес указывает конкретный накопитель на магнитной ленте или магнитном диске или канал связи. В качестве адреса устройства может быть использовано любое число от 0 до 255, что позволяет адресовать в одном канале 256 устройств. Исключением являются некоторые байт-мультиплексные каналы, не рассчитанные на максимальную конфигурацию подканалов и, следовательно, имеющие ограничения на распределение адресов устройств в данном канале.

Устройствам, имеющим свой собственный неразделенный контроллер, может быть присвоен любой адрес в диапазоне от 0 до 255 при условии, что этот адрес не распознается никаким другим контроллером на этом канале. Логически подобные устройства составляют единое целое со своими контроллерами; один и тот же адрес указывает и внешнее устройство, и контроллер.

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

Для контроллеров, предназначенных для подсоединения более чем 16 устройство (например, типа IBM 3272), могут быть назначены непоследовательные группы адресов, причем число адресов в каждой группе должно быть равно максимальному числу устройств, которые можно подключить к контроллеру, но не более 16. Средства адресации добавляются группами таким образом, чтобы число адресов устройств, приписанных контроллеру, не превышало числа устройств, подключенных к контроллеру, более чем на 15.

Контроллер не должен отвечать на адрес вне групп присвоенных ему адресов. Так, например, если контроллер предназначен для управления устройствами с адресами, имеющими в младших битах комбинации 0000-1001, то он не будет распознавать адреса устройств с младшими битами 1010-1111. В то же время контроллер отвечает на все адреса в присвоенной ему группе независимо от того, подключено ли физически устройство с таким адресом или нет. Например, контроллер внешнего запоминающего устройства IBM 3830 модели 2, к которому подключены только четыре дисковых механизма доступа, отвечает на все 16 адресов в присвоенной ему группе адресов. Если ни один из контроллеров не отвечает на адрес, то устройство с таким адресом считается выключенным. Если контроллер отвечает на адрес, но внешнее устройство с таким адресом физически не подключено к контроллеру, то считается, что данное устройство находится в состоянии “не готово”.

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

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

Состояния системы ввода-вывода

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

Таблица 13.1Состояния системы ввода-вывода

Название

Обозначение

Определение

Канал

Доступен

A

Отсутствие всех последующих состояний

Хранит прерывание

I

Непосредственно в канале имеется информация для прерывания ввода-вывода

Работает

W

Канал работает в монопольном режиме

Выключен

N

Канал отсутствует, неисправен или выключен

Подканал

Доступен

A

Отсутствие всех последующих состояний

Хранит прерывание

I

В подканале имеется информация для CSW

Работает

W

Подканал выполняет операцию

Выключен

N

Подканал отсутствует или неисправен

Устройство

Доступно

A

Отсутствие всех последующих состояний

Хранит прерывание

I

Устройство хранит сигнал прерывания

Работает

W

Устройство выполняет операцию

Выключено

N

Устройство отсутствует или выключено

Говорят, что отдельные компоненты системы ввода-вывода работоспособны, если они находятся в одном из состояний: “доступен”, “хранит прерывание”, “работает”. Считается, что часть системы ввода-вывода недоступна, если она находится в одном из следующих состояний: “хранит прерывание”, “работает” или “выключено”.

В мультиплексном канале канал и подканал легко различимы и, если канал находится в рабочем состоянии, возможна любая комбинация состояний канала и подканала. Поскольку селекторный канал имеет один подканал, канал и подканал функционально связаны, и некоторые состояния канала оказываются зависящими от состояния подканала. В частности, состояние “работает” может иметь место только одновременно в канале и подканале. Если подканал хранит прерывание, канал находится в аналогичном состоянии. Однако канал и подканал не являются синонимами. Так, сигнал прерывания, не связанный с передачей данных (например, сигнал ВНИМАНИЕ), не влияет на состояние подканала. Таким образом, подканал может быть доступен, когда канал хранит прерывание. Проведение четкого различия между каналом и подканалом позволяет дать единое описание для селекторного и мультиплексного каналов.

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

Если на команду ввода-вывода формируется ответ, исходя из состояний канала и подканала, то состояния остальных компонентов системы не опрашиваются. По отношению к выполняемой команде ввода-вывода система может находиться в одном из десяти возможных состояний.

В дальнейшем состояние системы будет обозначаться тремя символами, из который первый определяет состояние канала, второй - подканала, третий - устройства. В качестве символов используются буквы A, I, W или N, обозначающие состояние отдельного компонента. Буква X означает. Что состояние соответствующего компонента несущественно для выполнения команды.

Доступен (AAA). Адресуемые канал, подканал, контроллер и устройство находятся в рабочем состоянии и при этом не заняты выполнением ранее начатых операций и не хранят сигналов прерывания.

ВУ хранит прерывание (AAI) или работает (AAW). Адресуемые канал и подканал доступны. Адресуемый контроллер или устройство выполняет ранее начатую операцию или хранит прерывание. Возможны следующие ситуации:

1. После выдачи сигнала КОНЕЦ РАБОТЫ КАНАЛА устройство продолжает выполнять операцию, например, такую, как перемотка ленты или установка механизма доступа на магнитном диске.

2. После выдачи сигнала КОНЕЦ РАБОТЫ КАНАЛА контроллер, связанный с данным устройством, продолжает выполнять операцию, такую, как возврат на зону на магнитной ленте.

3. Устройство или контроллер выполняют операцию в другом канале или подканале.

4. Устройство или контроллер хранят условия КОНЕЦ РАБОТЫ УСТРОЙСТВА, КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА, или ВНИМАНИЕ, или условие КОНЕЦ РАБОТЫ КАНАЛА, связанное с остановленной операцией ввода-вывода.

ВУ выключено (AAN). Адресуемые канал и подканал доступны. Адресуемое устройство выключено. Считается, что устройство выключено, если ни один из контроллеров не опознает его адреса. Такая ситуация может иметь место, если в системе отсутствует данный контроллер, или выключено питание контроллера, или контроллер логически отключен от интерфейса ввода-вывода. Состояние “выключено” указывается также в том случае, если контроллер в системе имеется и предназначен для подключения данного устройства, но само устройство не установлено и данный адрес контроллеру не присвоен (это относится, например, ко второй группе каналов связи мультиплексора передачи данных IBM 2702). См. также предыдущий подраздел “Адресация внешних устройств”.

Если адресуемое устройство не установлено или логически отключено от контроллера, но соответствующий контроллер находится в рабочем состоянии и данный адрес устройства контроллеру присвоен (например, механизм доступа 7 для контроллера внешнего запоминающего устройства IBM 3830, на котором установлены только механизмы доступа 0-3), то считается, что устройство находится в состоянии “не готово”. Если в устройство, находящееся в состоянии “не готово”, выдается команда, то контроллер отвечает на выборку устройства состоянием СБОЙ В УСТРОЙСТВЕ в том случае, когда состояние “не готово” мешает успешному выполнению операции. См. подраздел “Сбой в устройстве” раздела 13.4.

Подканал хранит прерывание (AIX). Адресуемый канал доступен. Адресуемый подканал хранит сигнал прерывания, связанный с завершением той части операции, в которой используются средства канала. Подканал находится в состоянии, когда он может дать информацию для полного CSW. Сигнал прерывания может указывать на завершение операции в адресуемом устройстве или в другом устройстве данного подканала. Состояние адресуемого устройства несущественно, за исключением того случая, когда в устройство, связанное с завершенной операцией, выдается команда ПРОВЕРИТЬ ВВОД-ВЫВОД; при этом CSW содержит информацию состояния, обеспечиваемую устройством. Состояние AIX не имеет места в селекторном канале. Наличие сигнала прерывания в подканале заставляет селекторный канал присваивать этому сигналу наивысший приоритет для прерываний ввода-вывода. В этом случае возникает состояние IIX.

Подканал работает (AWX). Адресуемый канал доступен. Адресуемый подканал выполняет ранее начатую операцию или цепочку операций и еще не получил сигнал КОНЕЦ РАБОТЫ КАНАЛА для последней операции цепочки. Состояние адресуемого устройства несущественно, за исключением того случая, когда выдается команда ОСТАНОВИТЬ ВВОД-ВЫВОД или команда ОСТАНОВИТЬ УСТРОЙСТВО. При этом, если опрашивается устройство, его состояние может быть указано либо в CSW, либо признаком результата.

При работе с селекторным каналом состояние AWX отсутствует, так как все операции выполняются в монопольном режиме, т.е. в этом случае канал находится в состоянии работает (WWX).

Подканал выключен (ANX). Адресуемый канал доступен. Адресуемый подканал мультиплексного канала выключен. Считается, что подканал выключен, если он отсутствует в системе. Подобное состояние не имеет места в селекторном канале.

Канал хранит прерывание (IXX). Адресуемый канал не находится в состоянии “работает” и устанавливает, какое внешнее устройство вызовет следующее прерывание ввода-вывода от данного канала. Факт хранения каналом сигнала прерывания может быть обнаружен только по команде ПРОВЕРИТЬ КАНАЛ. При выполнении этой команды не опрашиваются состояния подканала и внешнего устройства. При выполнении других команд, за исключением команды ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА, считается, что канал доступен, если он хранит прерывание. В случае выполнения команды ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА канал, если он хранит прерывание, может оказаться занятым. Когда канал устанавливает приоритет прерываний среди внешних устройств, сигнал прерывания сохраняется в ВУ или подканале (см. подраздел “Сигналы прерывания” раздела 13.4).

Канал работает (WXX). Адресуемый канал работает в монопольном режиме. В случае мультиплексного канала в данный момент группа байтов обрабатывается в монопольном режиме. В случае селекторного канала в данный момент выполняется операция или цепочка операций и еще не получен сигнал КОНЕЦ РАБОТЫ КАНАЛА для последней операции. Состояние адресуемого устройства, а в случае мультиплексного канала и состояние подканала несущественны. В зависимости от типа канала и модели системы канал может считаться доступным при выполнении команд ПРОВЕРИТЬ ВВОД-ВЫВОД и ОСТАНОВИТЬ УСТРОЙСТВО, если он работает с неадресуемым устройством.

Канал выключен (NXX). Адресуемый канал выключен. Считается, что канал выключен, если он отсутствует в системе или питание канала выключено, а также в случае, если адресуемый канал не присоединен к данному процессору. Состояния адресуемого ВУ и подканала несущественны.

Сброс системы ввода-вывода

В системе ввода-вывода могут иметь место два типа сбросов: сброс системы ввода-вывода и селективный сброс ввода-вывода. Реакция устройства на тот или иной тип сброса описывается в публикациях SL и SRL для конкретного устройства.

Сброс системы ввода-вывода

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

При выполнении сброса системы ввода-вывода канал завершает операции во всех подканалах. Информация состояния и все условия прерывания в подканалах сбрасываются, и все работоспособные подканалы переводятся в состояние “доступен”. Канал посылает сигнал сброса системы во все подключенные к нему внешние устройства.

Селективный сброс ввода-вывода

При обнаружении сбоя оборудования в некоторых каналах выполняется последовательность селективного сброса ввода-вывода. При выполнении селективного сброса ввода-вывода канал посылает сигнал селективного сброса в устройство, логически подключенное к нему в момент обнаружения сбоя. Состояние подканалов не меняется.

Влияние сброса на работающее устройство

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

Сброс при сбое

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

Если такое прерывание ввода-вывода не происходит, CSW в память не записывается и внешнее устройство, при работе которого произошел сбой, не опознается. Способ идентификации сбоя зависит от модели.

Признак результата

При выполнении команд ввода-вывода вырабатывается один из четырех возможных признаков результата, определяемых проверками, которые выполняются каналом и устройством, а также исходным состоянием адресуемой части системы ввода-вывода. Признак результата устанавливается после завершения команды ввода-вывода, т.е. в момент, когда процессор освобождается для выполнения следующей команды. Признак результата обычно показывает, выполнил или нет канал то, что ему было указано в команде, и если нет, то по какой причине. В случае команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, выполняемой независимо от устройства, может быть установлен признак результата 0, который позднее уточняется отложенным признаком результата, записанным в CSW. При выполнении последующих операций условного перехода признак результата может быть использован для выборка пути выполнения программы.

В таблице 13.2 перечислены условия, определяющие установку того или иного признака результата, и приведены значения соответствующего признака результата для каждой команды ввода-вывода. Состояния системы ввода-вывода и их сокращенные обозначения были описаны в подразделе “Состояния системы ввода-вывода”. Цифры в таблице представляют десятичное значение признака результата. В зависимости от типа запрошенной операции по командам НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ может быть установлен признак результата, равный 0 или 1 для состояния AAA. Сбой оборудования и ошибки программирования обычно приводят к установке признака результата, равного 1, и записи в память CSW.

Таблица 13.2Признаки результата для состояний и команд ввода-вывода

Условия

Состояния системы ввода-вывода

Значения признака результата

SIO
SIOF

TIO

CLRIO 1

HIO

HDV

TCH

STIDC

Доступно

AAA

0, 12,3

0

0

12

12

0

0

ВУ хранит прерывание

AAI

12,3

12,4

0

12

12

0

0

ВУ работает

AAW

12,3

12


Подобные документы

  • Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.

    курсовая работа [266,9 K], добавлен 24.12.2013

  • Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.

    курсовая работа [719,3 K], добавлен 12.09.2015

  • Сущность и роль бухгалтерской отчетности. Характеристика хозяйственных операции и системы обработки данных в первичные учетные документы. Особенности логической структуры реляционной базы данных. Описание методов работы с информационной системой.

    курсовая работа [1,1 M], добавлен 26.04.2015

  • Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.

    реферат [35,2 K], добавлен 13.11.2009

  • Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.

    курсовая работа [78,9 K], добавлен 09.09.2014

  • Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.

    курсовая работа [125,2 K], добавлен 24.09.2010

  • Периоды применения средств вычислительной техники. Переход к новому поколению электронно-вычислительных машин. Системы, основанные на знаниях. Экспертные системы и искусственный интеллект. Этапы обработки данных на ЭВМ. Иерархическая структура знания.

    презентация [170,6 K], добавлен 14.08.2013

  • Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.

    реферат [1,1 M], добавлен 06.01.2011

  • Понятие машинной команды как закодированного по определенным правилам указания микропроцессору на выполнение некоторой операции или действия. Элементы машинных команд (код операции, операнд) и их виды (передачи данных, управления, арифметико-логические).

    презентация [120,6 K], добавлен 14.10.2013

  • Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.

    контрольная работа [18,0 K], добавлен 05.07.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.