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

IBM370

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

ки, обнаруженные в таком заранее выбранном 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

 

 

S

 

P

I

 

MM01

D

C

LI

 

CI

DA

ЧИТАТЬ

MMMM

 

 

S

S

P

I

 

MM10

D

C

LI

KIP

CI

DA

ЧИТАТЬ В ОБРАТНОМ

MMMM

 

 

S

S

P

I

НАПРАВЛЕНИИ

1100

D

C

LI

KIP

CI

DA

УПРАВЛЕНИЕ

MMMM

 

 

S

 

P

I

 

MM11

D

C

LI

 

CI

DA

 

 

 

 

 

 

 

 

391

Название

Код

Флажки

 

 

 

 

 

 

 

 

 

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

MMMM

S

S

P

I

 

0100

D C LI

KIP

CI

DA

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

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 являются битами модификатора.

392

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

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

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

ляется исключительно значением счетчика в 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 являются битами модификатора.

393

 

УПРАВЛЕНИЕ

 

 

 

 

 

 

 

+

--------------------------------------------------------------

 

 

 

 

 

 

 

+

¦

 

¦

 

¦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 для того, чтобы указать, что данные в устройство не передаются. Любая операция прекращенная до того, как закончится передача данных, вызывает сообщение о неправильной

394

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

довательности начальной выборки выдается отказ принять команду. Флажок 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

 

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

 

нах10

3

 

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

4

 

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

5

 

Перегрузка

 

 

 

 

 

 

 

 

Команда отвергнута. 1) Устройство обнаружило ошибку в программе. Получена команда, для выполнения которой данное устройство не предназначено. Например,

команда ЧИТАТЬ выдана на печатающее устройство или команда ЧИТАТЬ В ОБРАТНОМ НАПРАВЛЕНИИ выдана на устройство с прямым доступом.

2) Устройство находится в таком состоянии, что не мо-

жет выполнить команду. Например, команда ЗАПИСАТЬ не может быть выполнена накопителем на магнитной лен-

те, если запись на ленту запрещена.

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

395

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

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

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

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

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

соединено к контроллеру11.

Ошибка на выходных шинах. Внешнее устройство или контроллер получили через интер-

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

правильная информация, однако этот факт не вызывает преждевременного прекращения опе-

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

медленное прекращение операции, при этом анализ условий КОМАНДА ОТВЕРГНУТА и ТРЕБУЕТСЯ ВМЕШАТЕЛЬСТВО не производится.

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

Ошибка в данных. Внешнее устройство или контроллер обнаружили ошибку в данных, кото-

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

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

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

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

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

ленным или невозможным продолжение операции.

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

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

396

Перегрузка. Канал не удовлетворил вовремя запрос от внешнего устройства на обслужива-

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

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

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

лучает новую команду слишком поздно.

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

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

В основной команде УТОЧНИТЬ СОСТОЯНИЕ биты модификатора равны нулю. Эта коман-

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

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

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

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

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

397

 

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

 

 

 

 

+

--------------------------------------------------------------

 

 

 

 

 

+

¦ 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.

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

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

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

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

398

РАБОТЫ УСТРОЙСТВА задерживается. Если канал не способен выполнить повторение коман-

ды или выданы какие-либо другие индикаторы состояния, отличные от конца работы устрой-

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

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

дикаторы, относящиеся к данной ситуации.

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

нения команды SIO устанавливается признак результата 0, а не признак результата 1. По окон-

чании операции формируется условие прерывания.

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

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

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

2. Если программа канала состоит из одного CCW, определяющего немедленную опера-

цию, то может быть установлен признак результата 0, а не признак результата 1. Такая ситуа-

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

зывает прерывание;

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

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

держит адрес команды, превышающий на 8 адрес повторяемой команды.

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

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

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

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

Если операция или последовательность операций, вызванных командой НАЧАТЬ ВВОД-

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

граммой при прерывании ввода-вывода, по команде ПРОВЕРИТЬ ВВОД-ВЫВОД или ОСВОБОДИТЬ ВВОД-ВЫВОД и в некоторых случаях по команде НАЧАТЬ ВВОД-ВЫВОД или

399

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

де слова состояния канала (CSW).

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

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

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

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

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

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

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

котором может быть выполнена команда НАЧАТЬ ВВОД-ВЫВОД или команда НАЧАТЬ ВВОД-

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

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

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

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

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

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

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

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

ступным, пока этот сигнал не будет сброшен. Программе о таких ситуациях сообщается с по-

мощью битов состояния в CSW. Если во время начала операции по цепочке команд будет об-

400

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