Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IBM370

.pdf
Скачиваний:
58
Добавлен:
02.06.2015
Размер:
5.21 Mб
Скачать

наружено состояние “выключено”, которое привело бы к установке признака результата, равно-

го 3, во время выполнения команды НАЧАТЬ ВВОД-ВЫВОД и иногда команды НАЧАТЬ ВВОД-

ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, то в CSW устанавливается бит СБОЙ УПРАВЛЕНИЯ ИНТЕРФЕЙСА. Новая операция во внешнем устройстве не начинается.

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

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

ния команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ. Некоторые ситуации, ко-

торые привели бы к установке признака результата, равного 1 или 3, если бы была выдана ко-

манда НАЧАТЬ ВВОД-ВЫВОД, вызывают формирование условия прерывания. CSW, записан-

ное для этой ситуации, указывает, что условие прерывания определяется отложенным призна-

ком результата, равным 1 или 3.

Немедленные операции

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

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

вывода, при которой этот указатель выдается во время последовательности начальной выбор-

ки устройства, называется немедленной операцией. Условие прерывания не вырабатывается,

если во время выполнения команды НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ (когда последняя выполняется как команда НАЧАТЬ ВВОД-

ВЫВОД) в первом CCW, указанном CAW, задана немедленная операция и цепочка команд не указана, а также не имеет места повторение команды. Если отсутствует цепочка команд, указа-

тель КОНЕЦ РАБОТЫ КАНАЛА сообщается программе при записи байтов состояния CSW по команде НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ.

Подканал при этом сразу становится доступным программе. Тем не менее операция ввода-

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

ния.

Если немедленная операция, заданная первым CCW, указанным CAW, выполняется по ко-

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

ние условия прерывания.

Если за немедленной операцией следует цепочка команд и во время выполнения этой опе-

рации не обнаружено необычных условий или если выполняется повторение команды для не-

медленной операции, то команда НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С

401

БЫСТРЫМ ОТКЛЮЧЕНИЕМ не вызывает записи CSW в память. Последующие команды цепоч-

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

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

мально, если она была задана.

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

Операции управления, которые полностью определяются кодом команды, могут выполнять-

ся как немедленные операции. Выполняется ли управляющая функция как немедленная опе-

рация, зависит от операции и типа устройства и указывается в описании устройства в соответ-

ствующих публикациях SL и SRL.

Окончание передачи данных

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

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

щение операции в подканале и формирование условия прерывания. В битах состояния соот-

ветствующего CSW отмечаются конец работы канала и необычные условия, если они обнару-

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

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

Если не рассматривать ошибки оборудования и использование команд ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ ВВОД-ВЫВОД и ОСТАНОВИТЬ УСТРОЙСТВО, то канал посы-

лает во внешнее устройство сигнал прекращения передачи данных всякий раз, когда имеется одно из следующих условий:

-области памяти, определенные для операции, исчерпаны или заполнены;

-обнаружена ошибка в программе;

-обнаружено нарушение защиты;

402

- обнаружен сбой цепочки.

Первое из этих условий возникает в том случае, когда канал обнаружил, что счетчик для по-

следнего CCW, связанного с операцией, дошел до нуля. Счетчик, равный нулю, показывает,

что канал передал или принял всю информацию, указанную программой.

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

живание от внешнего устройства и вызывает прекращение передачи данных.

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

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

чило это устройство сигнал прекратить передачу данных ранее или нет13.

Проверка доступности адреса данных выполняется только во время передачи данных в ос-

новную память или из нее. Если начальный адрес данных в CCW недоступен, данные не пере-

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

прашивают первый байт данных до начала каких-либо механических действий и, если началь-

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

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

них устройствах, если не производится передача данных, зависит от типа устройства и опре-

деляется соответствующей публикацией SL и SRL для данного устройства.

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

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

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

403

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

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

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

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

этом случае об индикации КОНЕЦ РАБОТЫ КАНАЛА программе не сообщается.

Прекращение операции по команде ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО

Команды ОСТАНОВИТЬ ВВОД-ВЫВОД и ОСТАНОВИТЬ УСТРОЙСТВО вызывают немед-

ленное прекращение текущей операции в адресуемом канале или подканале. Способ прекра-

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

манде ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО не обязательно привя-

зано к получению запроса на обслуживание от внешнего устройства.

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

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

Если команда ОСТАНОВИТЬ УСТРОЙСТВО выдается в канал, работающий в монопольном режиме, сигнал останова посылается в устройство, занятое в монопольной операции, только в том случае, если это устройство является устройством, адресуемым по команде. Если для та-

кой операции команда ОСТАНОВИТЬ УСТРОЙСТВО выдается во время передачи данных, то последняя немедленно прекращается и устройство отключается от канала. Если операция пре-

кращается по команде ОСТАНОВИТЬ УСТРОЙСТВО в селекторном канале, выполняющем це-

почку операций, и устройство уже выдало сигнал КОНЕЦ РАБОТЫ КАНАЛА для текущей опе-

рации, то это устройство отключается от канала, а цепочка команд подавляется. Если в селек-

торном канале устройство, занятое в монопольной операции, не является устройством, адре-

суемым по команде, то никаких действий не предпринимается. Если в мультиплексном канале

404

работающее в данный момент устройство не является устройством, адресуемым по команде,

то по команде ОСТАНОВИТЬ УСТРОЙСТВО прекращается любая операция в адресуемом под-

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

почка команд для этого устройства подавляются.

Если команда ОСТАНОВИТЬ ВВОД-ВЫВОД или команда ОСТАНОВИТЬ УСТРОЙСТВО вы-

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

В селекторном канале прекращение операции командой ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО приводит к возникновению до четырех отдельных условий пре-

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

чению состояния от устройства. Адрес команды и счет в соответствующем CSW показывают,

сколько было передано данных, а байт состояния канала отражает необычные условия, если они были обнаружены во время выполнения операции. Если команда ОСТАНОВИТЬ ВВОД-

ВЫВОД или команда ОСТАНОВИТЬ УСТРОЙСТВО выдается до того, как все данные по опе-

рации были переданы, то указывается неправильная длина при условии, что флажок SLI в те-

кущем CCW отсутствует. Выполнение самой команды ОСТАНОВИТЬ ВВОД-ВЫВОД или ко-

манды ОСТАНОВИТЬ УСТРОЙСТВО не отражается в байтах состояния CSW, и все биты со-

стояния в CSW по этой причине прерывания могут быть нулевыми. Канал доступен для начала новой операции, как только будет сброшено условие прерывания.

Второе условие прерывания в селекторном канале возникает в том случае, когда контрол-

лер вырабатывает условие КОНЕЦ РАБОТЫ КАНАЛА. Селекторный канал обрабатывает этот сигнала как любые другие сигналы от устройства, которые поступают после того, как устрой-

ство отключилось от канала, и записывает нули в поля ключа защиты, адреса команды, счета и состояния канала соответствующего CSW. Сигнал КОНЕЦ РАБОТЫ КАНАЛА не доступен про-

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

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

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

которой операции, то подканал остается в состоянии “работает” до получения от устройства условия КОНЕЦ РАБОТЫ КАНАЛА, после чего подканал переводится в состояние “хранит пре-

рывание”. Если команда ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО вы-

405

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

яние “хранит прерывание”.

CSW, связанное с сигналом прерывания в подканале, содержит байт состояния, обеспечи-

ваемый каналом и устройством, и показывает, где была окончена передача данных, Если ко-

манда ОСТАНОВИТЬ ВВОД-ВЫВОД или команда ОСТАНОВИТЬ УСТРОЙСТВО была выдана до того, как все области данных для текущей операции были исчерпаны или заполнены, то ука-

зывается неправильная длина при условии, что флажок SLI в текущем CCW отсутствует. Усло-

вие прерывания обрабатывается, как при любом другом типе окончания операции.

В зависимости от модели и типа подканала прекращение монопольной операции командой ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО в блок-мультиплексном канале может выполняться, как в селекторном канале, или же подканал может оставаться в состоянии

“работает” до получения от внешнего устройства конечного состояния.

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

Поле счета в CSW, связанном с некоторой операцией, прекращенной по команде ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО, имеет непредсказуемое зна-

чение.

Прекращение операции по команде ОСВОБОДИТЬ ВВОД-ВЫВОД

Если операция прекращается по команде ОСВОБОДИТЬ ВВОД-ВЫВОД, то информация подканала, относящаяся к текущей операции в адресуемом устройстве, если она имеет место,

записывается в CSW, а подканал устанавливается в состояние “доступен”. Если не была обна-

ружена ошибка в канале до выполнения команды ОСВОБОДИТЬ ВВОД-ВЫВОД или же во вре-

мя ее выполнения, содержимое CSW показывает место, где была прекращена программа ка-

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

Если команда ОСВОБОДИТЬ ВВОД-ВЫВОД прекращает операцию в подканале, хранящем прерывание, то может возникнуть до трех условий прерывания, связанных с этой операцией.

Так как после выполнения команды ОСВОБОДИТЬ ВВОД-ВЫВОД подканал становится доступ-

ным, эти условия прерывания вызывают запись только байтов состояния устройства, а не пол-

ного CSW.

Первое условие прерывания возникает в селекторном канале, когда в канал передается со-

стояние КОНЕЦ РАБОТЫ КАНАЛА. Такая ситуация возникает. если в момент выполнения ко-

манды ОСВОБОДИТЬ ВВОД-ВЫВОД канал и подканал хранят прерывание, обусловленное ра-

нее выполненной командой ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО.

Второе и третье условия прерывания возникают в тех случаях, когда в канал выдаются сиг-

налы КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА (если он вообще выдается) и КОНЕ РАБОТЫ УСТРОЙСТВА.

406

Если операция прекращается командой ОСВОБОДИТЬ ВВОД-ВЫВОД, а подканал в этот момент находится в состоянии “работает”, то для данной операции может возникнуть до четы-

рех последующих условий прерывания. Для всех этих условия прерывания в CSW будут запи-

сываться только байты состояния.

Первое условие прерывания возникает в некоторых каналах тогда, когда операция прекра-

щается между двумя циклами передачи данных. Так как во время выполнения команды ОСВОБОДИТЬ ВВОД-ВЫВОД сигнал прекращения операции во внешнее устройство не выда-

ется (если только канал не работает с адресуемым устройством в момент получения команды),

то устройство может после завершения команды ОСВОБОДИТЬ ВВОД-ВЫВОД попытаться продолжить передачу данных. Канал в этом случае посылает в устройство сигнал прекращения передачи данных. В зависимости от канала требование выдачи сигнала прекращения операции в устройство может игнорироваться или может рассматриваться как сбой управления интер-

фейса, что будет приводить к формированию условия прерывания. В CSW для этой ситуации записывается только состояние канала.

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

ства.

Прекращение операции из-за сбоя оборудования

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

вывода или же может выдать сигнал останова.

Прерывания ввода-вывода

Прерывания ввода-вывода дают возможность процессору изменять свое состояние в соот-

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

Условия прерывания

Условия, которые вызывают выдачу запросов на прерывание, называются условиями пре-

рывания. Эти условия учитываются программой только один раз. После ого, как прошло соот-

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

жет быть сброшено командой ПРОВЕРИТЬ ВВОД-ВЫВОД или ОСВОБОДИТЬ ВВОД-ВЫВОД, а

407

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

Устройство пытается выдать запрос на прерывание в канал всякий раз, когда оно обнару-

живает одно из следующих условий:

-КОНЕЦ РАБОТЫ КАНАЛА;

-КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА;

-КОНЕЦ РАБОТЫ УСТРОЙСТВА;

-ВНИМАНИЕ.

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

-СБОЙ В УСТРОЙСТВЕ;

-ОСОБЫЙ СЛУЧАЙ В УСТРОЙСТВЕ;

-ЗАНЯТО (от устройства);

-ОШИБКА В ПРОГРАММЕ;

-НАРУШЕНИЕ ЗАЩИТЫ.

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

руженных в начале операции, условие прерывания может сохраняться в канале или канал мо-

жет сформировать условие прерывания в устройстве. Условие прерывания возникает в устрой-

стве в ответ на выдачу состояния устройства в канал и заставляет устройство предоставлять это же самое состояние для прерывания ввода-вывода. Условие прерывания в устройстве не обязательно связано с состоянием устройства. Если необычное условие обнаружено устрой-

ством (СБОЙ В УСТРОЙСТВЕ или ОСОБЫЙ СЛУЧАЙ В УСТРОЙСТВЕ), то это условие указы-

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

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

Условие прерывания, выработанное устройством, может сопровождаться другими указате-

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

новременно.

408

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

ствующая информация о состоянии устройства сохраняются в подканале. Любая последующая информация о состоянии, сформированная внешним устройством, не объединяется с состоя-

нием в подканале, даже если это состояние еще не принято процессором.

Способ обработки запроса на прерывание по причине сбоя оборудования зависит от моде-

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

лом, может вызвать прерывание от схем контроля.

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

щих ситуаций:

-флажок PCI в CCW;

-выполнение команды ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО в селекторном канале;

-прерывание “канал доступен” (CAI);

-программные ошибки, связанные с CCW или первым IDAW, обнаруженные после завер-

шения выполнения команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ.

Условия прерывания от канала, за исключением CAI, могут сопровождаться другими указа-

телями состояния канала, но не состояния устройства.

Условие прерывания “канал доступен” (CAI) выдается во всех блок-мультиплексных каналах и приводит к записи полного CSW. Все поля CSW устанавливаются в нуль. Адрес ввода-

вывода записывается в старое PSW в режиме BC или в область связи ввода-вывода в режиме

EC. Адрес ввода-вывода состоит из нулевого адреса устройства и адреса канала, вызвавшего прерывание.

Канал вырабатывает сигнал CAI только том случае, если он ранее отвечал признаком ре-

зультата, равным 2, на команду, отличную от команды ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО, при условии, что этот состояние занятости больше не существу-

ет. Если состояние “занято”, которое привело к установке признака результата, равного 2, обу-

словлено тем, что подканал занят работой с неадресуемым устройством, то после освобожде-

ния канала сигнал CAI не формируется. Так как все остальные условия прерывания (за исклю-

чением PCI) выполняют ту же функцию, что и CAI, то необработанное условие CAI сбрасывает-

ся, если в этом канале формируется другой сигнал прерывания, отличный от PCI. В некоторых каналах условие CAI также сбрасывается, когда какое-либо другое условие прерывания, кроме

PCI, сбрасывается командой ПРОВЕРИТЬ ВВОД-ВЫВОД в том же канале. Если до прерывания по CAI канал окажется занятым, то условие CAI задерживается до освобождения канала.

409

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

Через прерывание CAI программе сообщается, что ранее занятый канал освободился. Хра-

нящееся в канале условие CAI не влияет на выполнение последующих команд НАЧАТЬ ВВОД-

ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫ ОТКЛЮЧЕНИЕМ, но приводит к установке при-

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

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

вечает признаком результата, равным 0, на команду ПРОВЕРИТЬ КАНАЛ, если предваритель-

но не будет сброшено условие прерывания.

Приоритет прерываний

Все запросы на прерывания ввода-вывода асинхронных по отношению к действиям, выпол-

няемым в процессоре. В одно и то же время могут существовать условия прерывания, связан-

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

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

Присвоение приоритета запросам на прерывание, связанным с устройствами, присоединен-

ными к одному каналу, зависит от типа канала, типа условия прерывания и положения устрой-

ства на интерфейсе ввода-вывода. Положение внешнего устройства на интерфейсе не связано с его адресом.

Селекторный канал присваивает высший приоритет условиям, связанным с выполнением той части операции, в которой участвует канал. К таким условиям относятся конец работы ка-

нала, программно-управляемое прерывание, выполнение команды ОСТАНОВИТЬ ВВОД-

ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО в этом канале и ошибки, которые привели к прекра-

щению цепочки операций. Во время выполнения операции селекторный канала не может обра-

батывать никакие условия прерывания, кроме определяемого флажком PCI.

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

словлены сигналами ВНИМАНИЕ, КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА, КОНЕЦ РАБОТЫ УСТРОЙСТВА, а также условием КОНЕЦ РАБОТЫ КАНАЛА, относящимся к операциям, пре-

кращенным по команде ОСТАНОВИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ УСТРОЙСТВО или ОСВОБОДИТЬ ВВОД-ВЫВОД. Высший приоритет присваивается устройству, которое первым заявит о себе на интерфейсе.

410

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]