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

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

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

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

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

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

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

Формат IDAW имеет следующий вид:

+-------------------------------+

¦ 00000000 ¦ ????? ?????? ¦

+-------------------------------+

0 7 8 31

Разряды 0-7 зарезервированы для будущего использования и должны содержать нули. Если это не так, формируется сигнал ошибки в программе и операция прекращается.

Разряды 9-31 определяют адрес первого байта данных, используемого в операции ввода-вывода. Для первого IDAW может быть указан любой адрес памяти. Для последующих IDAW в зависимости от команды должен быть указан адрес первого или последнего байта блока, расположенного на границе 2048 байтов. Для команд чтения, записи, управления и уточнения состояния должно быть указано начало блока, а биты 21-31 в IDAW должны быть нулевыми. Для команды чтения в обратном направлении должен быть указан конец блока, а биты 21-31 в IDAW должны содержать единицы. Неправильная спецификация адреса данных приводит к индикации ошибки в программе и к прекращению операции.

Команды

В таблице 13.13 приведены коды команд и указано, какие флажки имеют смысл для каждой команды. Не указанные в этой таблице флажки игнорируются.

Все флажки имеют самостоятельное значение. Исключение составляют флажки CC и SLI, которые игнорируются при наличии флажка CD. Флажок SLI игнорируется также при немедленных операциях, так как в этом случае индикация неправильной длины подавляется независимо от установки этого флажка. Во время начальной загрузки программы игнорируется флажок PCI.

Таблица 13.13Команды канала

Название

Код

Флажки

ПИСАТЬ

MMMM MM01

CD

CC

SLI

PCI

IDA

ЧИТАТЬ

MMMM MM10

CD

CC

SLI

SKIP

PCI

IDA

ЧИТАТЬ В ОБРАТНОМ НАПРАВЛЕНИИ

MMMM 1100

CD

CC

SLI

SKIP

PCI

IDA

УПРАВЛЕНИЕ

MMMM MM11

CD

CC

SLI

PCI

IDA

УТОЧНИТЬ СОСТОЯНИЕ

MMMM 0100

CD

CC

SLI

SKIP

PCI

IDA

ПЕРЕХОД В КАНАЛЕ

XXXX 1000

Обозначения:

CD - цепочка данных;

CC - цепочка команд;

SLI - подавление индикации неправильной длины;

SKIP - блокировка записи в память;

PCI - программно-управляемое прерывание;

IDA - косвенная адресация данных;

M - разряд модификатора;

X - разряд игнорируется.

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

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

ПИСАТЬ

+--------------------------------------------------------------+

¦ ¦ ¦C¦C¦S¦ ¦P¦I¦ ¦ ¦ ¦

¦ MMMM MM01 ¦ ????? ?????? ¦D¦C¦L¦/¦C¦D¦00¦ //////// ¦ ??????? ¦

¦ ¦ ¦ ¦ ¦I¦ ¦I¦A¦ ¦ ¦ ¦

+--------------------------------------------------------------+

0 7 8 31 32 39 40 47 48 63

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

При записи канал реагирует на флажки CD, CC, SLI, PCI и IDA, задаваемые в CCW. Флажок SKIP игнорируется. Разряды 0-5 CCW являются битами модификатора.

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

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

ЧИТАТЬ

+--------------------------------------------------------------+

¦ ¦ ¦C¦C¦S¦S¦P¦I¦ ¦ ¦ ¦

¦ MMMM MM10 ¦ ????? ?????? ¦D¦C¦L¦K¦C¦D¦00¦ //////// ¦ ??????? ¦

¦ ¦ ¦ ¦ ¦I¦I¦I¦A¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦ ¦P¦ ¦ ¦ ¦ ¦ ¦

+--------------------------------------------------------------+

0 7 8 31 32 39 40 47 48 63

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

При чтении канал реагирует на все шесть флажков: CD, CC, SLI, SKIP, PCI и IDA. Разряды 0-5 CCW являются битами модификатора.

ЧИТАТЬ В ОБРАТНОМ НАПРАВЛЕНИИ

+--------------------------------------------------------------+

¦ ¦ ¦C¦C¦S¦S¦P¦I¦ ¦ ¦ ¦

¦ MMMM 1100 ¦ ????? ?????? ¦D¦C¦L¦K¦C¦D¦00¦ //////// ¦ ??????? ¦

¦ ¦ ¦ ¦ ¦I¦I¦I¦A¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦ ¦P¦ ¦ ¦ ¦ ¦ ¦

+--------------------------------------------------------------+

0 7 8 31 32 39 40 47 48 63

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

При чтении в обратном направлении канал реагирует на все шесть флажков: CD, CC, SLI, SKIP, PCI и IDA. Разряды 0-3 CCW являются битами модификатора.

УПРАВЛЕНИЕ

+--------------------------------------------------------------+

¦ ¦ ¦C¦C¦S¦ ¦P¦I¦ ¦ ¦ ¦

¦ MMMM MM11 ¦ ????? ?????? ¦D¦C¦L¦/¦C¦D¦00¦ //////// ¦ ??????? ¦

¦ ¦ ¦ ¦ ¦I¦ ¦I¦A¦ ¦ ¦ ¦

+--------------------------------------------------------------+

0 7 8 31 32 39 40 47 48 63

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

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

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

При выполнении управляющих операций канал реагирует на флажки CD, CC, SLI, PCI и IDA, задаваемые в CCW. Флажок SKIP игнорируется. Разряды 0-5 CCW являются битами модификатора.

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

Так как нельзя задавать счетчик, равный нулю, программа не может использовать поле счета в CCW для того, чтобы указать, что данные в устройство не передаются. Любая операция прекращенная до того, как закончится передача данных, вызывает сообщение о неправильной длине. Исключение представляют немедленные операции и случаи, в которых во время последовательности начальной выборки выдается отказ принять команду. Флажок SLI, равный единице, подавляет сообщение о неправильной длине, если оно имеет место.

УТОЧНИТЬ СОСТОЯНИЕ

+--------------------------------------------------------------+

¦ ¦ ¦C¦C¦S¦S¦P¦I¦ ¦ ¦ ¦

¦ MMMM 0100 ¦ ????? ?????? ¦D¦C¦L¦K¦C¦D¦00¦ //////// ¦ ??????? ¦

¦ ¦ ¦ ¦ ¦I¦I¦I¦A¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦ ¦P¦ ¦ ¦ ¦ ¦ ¦

+--------------------------------------------------------------+

0 7 8 31 32 39 40 47 48 63

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

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

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

Таблица 13.14

Бит

Назначение

0

Команда отвергнута

1

Требуется вмешательство

2

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

3

Сбой в оборудовании

4

Ошибка в данных

5

Перегрузка

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

2) Устройство находится в таком состоянии, что не может выполнить команду. Например, команда ЗАПИСАТЬ не может быть выполнена накопителем на магнитной ленте, если запись на ленту запрещена.

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

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

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

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

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

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

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

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

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

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

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

При уточнении состояния канал реагирует на все шесть флажков: CD, CC, SLI, SKIP, PCI и IDA. Разряды 0-5 CCW являются битами модификатора.

ПЕРЕХОД В КАНАЛЕ

+--------------------------------------------------------------+

¦ XXXX 1000 ¦ ????? CCW ¦ ///////////////////////////////// ¦

+--------------------------------------------------------------+

0 7 8 31 32 63

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

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

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

Содержимое второй половины CCW, т.е. разрядов 32-63, игнорируется. Точно так же игнорируется и содержимое битов 0-3.

Повторение команды

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

Во время повторения команды действия в канале аналогичны действиям, выполняемым для цепочки команд. Если выполняется повторение команды для немедленной операции, начатой по команде НАЧАТЬ ВВОД-ВЫВОД, и не определена цепочка команд, то в результате выполнения команды SIO устанавливается признак результата 0, а не признак результата 1. По окончании операции формируется условие прерывания.

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

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

1. Если повторяется CCW, содержащее флажок PCI, то может произойти несколько программно-управляемых прерываний;

2. Если программа канала состоит из одного CCW, определяющего немедленную операцию, то может быть установлен признак результата 0, а не признак результата 1. Такая ситуация возникает, когда контроллер запрашивает повторение команды в момент предоставления начального состояния для этой команды. По завершении операции канальная программа вызывает прерывание;

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

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

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

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

13.4 Окончание операций ввода-вывода

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

Способы окончания операций

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

Окончание операций в начальной стадии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- ВНИМАНИЕ.

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

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

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

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

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

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

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

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

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

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

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

- флажок PCI в CCW;

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

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

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

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

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


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

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