Принципы работы системы IBM/370
Описание логической структуры вычислительных машин Системы 370. Особенности мультипроцессирования. Команды общего назначения и управления системой, обработки десятичных данных и команды с плавающей точкой. Средства обработки машинных ошибок (коррекция).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | русский |
Дата добавления | 12.06.2014 |
Размер файла | 658,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
0
12
12
0
0
ВУ выключено
AAN
33
3
0
3
3
0
0
Подканал хранит прерывание:
AIX
- для адресуемого ВУ
2
12
12
0
0
0
0
- для другого ВУ
2
2
0
0
0
0
0
Подканал работает:
AWX
- с адресуемым ВУ
2
2
12
12,4
12,4
0
0
- с другим ВУ
2
2
0
12,4
0
0
0
Подканал выключен
ANX
3
3
3
3
3
0
0
Канал хранит прерывание
IXX
См. примечание
1
5
Канал работает:
WXX
- с адресуемым ВУ
2
2
-6
2
-7
2
5
- с другим ВУ
2
28
-9
2
-10
2
5
Канал выключен
NXX
3
3
3
3
3
3
3
1 В колонке указывается признак результата, соответствующий функции CLRIO.
2 Всякий раз, когда при выполнении команды ввода-вывода устанавливается признак результата, равный 1, в ячейку 64 основной памяти записывается все CSW либо его байты состояния.
3 При выполнении команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ может быть установлен такой же признак результата, как и для команды НАЧАТЬ ВВОД-ВЫВОД, либо признак результата, равный 0.
4 Если при выборке устройства получен ответ “ВУ выключено”, устанавливается признак результата 3.
5 Если канал не может записать идентификатор канала из-за того, что он находится в состоянии “работает” или “хранит прерывание”, то устанавливается признак результата, равный 2. Если в состоянии “работает” или “хранит прерывание” канал способен записать идентификатор канала, то устанавливается признак результата, равный 0.
6 В зависимости от типа канала может быть установлен признак результата 1 (и записано CSW) или 2.
7 Значение признака результата зависит от последовательности сигналов в интерфейсе ввода-вывода, типа канала и модели системы. Если канал определил, что устройство получило сигнал прекращения операции, то устанавливается признак результата 1 и записывается CSW. В противном случае устанавливается признак результата, равный 2.
8 Если подканал хранит прерывание для адресуемого устройства, то в зависимости от типа канала может быть установлен признак результата, равный 1.
9 При выполнении команды ОСВОБОДИТЬ ВВОД-ВЫВОД в состоянии WXX либо устанавливается признак результата 2, либо канал считается доступным и признак результата устанавливается в зависимости от состояния подканала. Если канал считается доступным, то значение признака результата для состояний WXX является таким же, как и для состояний AXX.
10 Признак результата зависит от состояния подканала, типа канала и модели системы. Если подканал выключен, устанавливается признак результата 2 или 3. Если подканал доступен или работает с адресуемым устройством, устанавливается признак результата 2. Во всех других случаях устанавливается признак результата 0 или 2.
Примечание. По отношению к командам НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ УСТРОЙСТВО и ОСТАНОВИТЬ ВВОД-ВЫВОД канал, хранящий прерывание, рассматривается как доступный, и значение признака результата устанавливается в зависимости от состояния подканала и внешнего устройства. Другими словами, значение признака результата для состояний IXX будет таким же, как и для состояний AXX, где буквами X обозначены состояние подканала и устройства. Например, значение признака результата для состояния IAW будет таким же, как и для состояния AAW.
Состояние “доступен” указывается только тогда, когда во время выполнения команды не будут обнаружены ошибки.
Если подканал мультиплексного канала хранит прерывание (состояние AIX), то устройство, в котором завершилась операция, также находится в состоянии “хранит прерывание”. Если при выполнении команды ПРОВЕРИТЬ ВВОД-ВЫВОД канал обнаружил, что устройство выключено, устанавливается признак результата, равный 3. Признак результата, равный 3, устанавливается также в том случае, когда команда ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО выдается в работающий подканал (состояние AWX), а соответствующее устройство оказывается выключенным.
Обнаружение сбоя оборудования или ошибок программирования каналом или внешним устройством при выполнении команды обычно приводит к записи CSW в память. Однако в некоторых моделях сбой оборудования в канале может вызывать прерывание от схем контроля машины, а не прерывание ввода-вывода. В этом случае запись CSW в память не производится. В системе могут иметь место три типа ошибок, описанные ниже.
Сбой оборудования канала. Во время выполнения команд НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ ВВОД-ВЫВОД и ОСТАНОВИТЬ УСТРОЙСТВО канал может обнаружить следующие сбои оборудования:
1. Адрес внешнего устройства, который канал получает через интерфейс ввода-вывода в процессе начальной выборки, либо имеет ошибку четности, либо отличается от того адреса, который послал канал. Причиной неправильной работы может быть не только адресуемое устройство, но и другие ВУ.
2. Байт состояния устройства, получаемый каналом через интерфейс ввода-вывода во время начальной выборки, имеет ошибку четности.
3. Сигнал поступил от устройства не в нужный момент или имеет неправильную длительность.
4. Канал обнаруживает сбой в собственном управляющем оборудовании. Эта ошибка относится также к командам ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА и ПРОВЕРИТЬ КАНАЛ.
В зависимости от типа ошибки и модели канал может произвести селективный сброс ввода-вывода, сброс системы ввода-вывода или выдать сигнал “стоп”. Если CSW запоминается, то в зависимости от типа ошибки в CSW указывается сбой в управлении канала или сбой в управлении интерфейса ввода-вывода.
Ошибка в программе канала. Во время выполнения команд НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ канал может обнаружить следующие ошибки в программе. Все ошибки, возникающие во время выполнения команд НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ (если последняя выполняется как команда НАЧАТЬ ВВОД-ВЫВОД), указываются соответствующей установкой признака результата и записью CSW. При выполнении команды НАЧАТЬ ВВОД ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ две первые ошибки указываются, как и при выполнении команды НАЧАТЬ ВВОД ВЫВОД, а все остальные ошибки указываются при последующем прерывании.
1. Неправильная спецификация адреса CCW в CAW.
2. Неправильный формат CAW.
3. Недоступный адрес CCW в CAW.
4. Ячейка первого CCW защищена от выборки.
5. Первое CCW задает переход в канале.
6. Неправильный код команды в первого CCW.
7. Неправильный счет в первого CCW.
8. Неправильный формат первого CCW.
9. Неправильная спецификация адреса данных в первом CCW при указании косвенной адресации данных в канале (CIDA).
10. Недоступный адрес данных в первом CCW при указании CIDA.
11. При указании CIDA ячейки первого IDAW защищены от выборки НАЧАТЬ ВВОД ВЫВОД.
12. При указании CIDA неправильный формат первого IDAW.
В CSW указывается ошибка в программе, за исключением случаев 4 и 11, для которых указывается нарушение защиты.
Ошибки во внешнем устройстве. Ошибки программирования и сбои оборудования, обнаруженные устройством при выполнении команд НАЧАТЬ ВВОД-ВЫВОД или НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, указываются в CSW либо как сбой в устройстве, либо как особый случай в устройстве. Условия, которые рассматриваются как сбой в устройстве или особый случай в устройстве, для каждого ВУ подробно описываются в публикациях SL или SRL.
Форматы команд
Все команды ввода-вывода используют формат S:
+--------------------------------+
¦ ??? ???????? ¦ B2 ¦ D2 ¦
+--------------------------------+
0 15 16 19 20 31
За исключением команды ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА, биты 8-14 кода команды игнорируются. Бит 15 игнорируется в команде ПРОВЕРИТЬ КАНАЛ, но является частью кода операции для команд НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ УСТРОЙСТВО и ОСТАНОВИТЬ ВВОД-ВЫВОД.
Адрес второго операнда, указанный полями B2 и D2, не используется для определения данных, а используется для указания канала и внешнего устройства. Адрес вычисляется согласно правилам адресной арифметики и имеет следующий формат:
+----------------------------------------+
¦ //////////// ¦ ????? ?????? ¦ ????? ?? ¦
+----------------------------------------+
0 15 16 23 24 31
Биты 0-7 не являются частью адреса. Биты 8-15, содержащие старшую часть 24-разрядного адреса, игнорируются. Биты 16-23 суммы определяют адрес канала, а биты 24-31 указывают внешнее устройство на этом канале, а в случае мультиплексного канала - и номер подканала.
Все команды ввода-вывода вызывают временную отмену совмещений. Выполнение команды в процессоре задерживается, пока не будут удовлетворены все предыдущие запросы от процессора к основной памяти по отношению к каналам и другим процессорам, а затем выбирается адресуемый канал. Никакие обращения к следующим командам и их операндам не производятся, пока не закончится выполнение команды ввода-вывода.
Примечание. В подробных описаниях команд для каждой команды показаны мнемоника и символическое обозначение операндов на языке Ассемблера Системы 370. Например, команда НАЧАТЬ ВВОД-ВЫВОД имеет мнемонику SIO и обозначение операндов D2(B2).
Команды ввода-вывода
В таблице 13.3 даны мнемонические обозначения, форматы и коды операций команд ввода-вывода. Из таблицы видно, что все команды ввода-вывода вызывают программное прерывание, если они встречаются в состоянии “задача”, и что в результате выполнения всех команд устанавливается признак результата.
Таблица 13.3Команды ввода-вывода
Название |
Мнемоническое обозначение |
Характеристики |
Код |
|||
ОСВОБОДИТЬ ВВОД-ВЫВОД |
CLRIO |
S |
C |
M |
9D011 |
|
ОСТАНОВИТЬ УСТРОЙСТВО |
HDV |
S |
C |
M |
9E011 |
|
ОСТАНОВИТЬ ВВОД-ВЫВОД |
HIO |
S |
C |
M |
9E00 |
|
НАЧАТЬ ВВОД-ВЫВОД |
SIO |
S |
C |
M |
9C001 |
|
НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ |
SIOF |
S |
C |
M |
9C011 |
|
ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА |
STIDC |
S |
C |
M |
B203 |
|
ПРОВЕРИТЬ КАНАЛ |
TCH |
S |
C |
M |
9F002 |
|
ПРОВЕРИТЬ ВВОД-ВЫВОД |
TIO |
S |
C |
M |
9D001 |
|
1 Биты 8-14 кода операции игнорируются.2 Биты 8-15 кода операции игнорируются.Обозначения.C - устанавливается признак результата;M - особый случай привилегированной операции;S - формат S. |
Замечания по программированию
При выполнении команд НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ УСТРОЙСТВО, ОСТАНОВИТЬ ВВОД-ВЫВОД и ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА может быть записано CSW. Чтобы избежать стирания CSW, которое было занесено в память при выполнении команды, при последующем прерывании ввода-вывода, процессор должен быть замаскирован для прерываний ввода-вывода перед выдачей этих команд. Маска прерываний ввода-вывода должна сниматься только после того, как информация из CSW, записанного по команде, будет обработана или передана в другую область для дальнейшей обработки.
ОСВОБОДИТЬ ВВОД-ВЫВОД
CLRIO D2(B2) [S]
+--------------------------+
¦ 9D01 ¦ B2 ¦ D2 ¦
+--------------------------+
0 15 16 19 20 31
В зависимости от типа канала и бита управления мультиплексированием (бит 0 управляющего регистра 0) выполняется либо функция TIO, либо функция CLRIO. Функция TIO выполняется в том случае, когда функция CLRIO не реализована в канале или когда бит управления мультиплексированием установлен в нуль. Функция TIO рассматривается при описании команды TIO. Команда ОСВОБОДИТЬ ВВОД-ВЫВОД выполняется только в том случае, если процессор находится в состоянии “супервизор”.
Биты 8-14 кода команды игнорируются. Биты 16-31 адреса второго операнда определяют канал, подканала и внешнее устройство, в которые выдается команда.
При выполнении функции CLRIO текущая операция в адресуемом устройстве прекращается и состояние операции на момент окончания отражается в запомненном CSW.
Если соответствующий подканал доступен, хранит прерывание для другого устройства или работает с другим устройством, никаких действий в канале не выполняется и устанавливается признак результата, равный 0. Если подканал не может определить состояние подканалов, когда он находится в состоянии “работает”, то устанавливается признак результата 2.
Если подканал работает с адресуемым устройством или хранит прерывание для адресуемого устройства, канал, выполняя функцию CLRIO, прекращает операцию в адресуемом устройстве. При этом состояние операции записывается в CSW, а подканал переводится в состояние “доступен”. Если канал работает с адресуемым устройством, в устройство посылается сигнал прекращения текущей операции. Однако в некоторых каналах никаких действий в этом случае не предпринимается и указывается, что канал занят.
Если имеет место одно из приводимых ниже условий, то при выполнении функции CLRIO производится запись CSW в ячейку 64. Содержимое всего CSW относится к адресуемому в команде устройству. Вот эти условия:
1. Канал доступен или хранит прерывание, а подканал хранит прерывание для адресуемого устройства или работает с адресуемым устройством. Поля ключа защиты, адреса команды и счета в CSW описывают состояние операции в момент выполнения команды.
2. Канал работает с адресуемым устройством. Поля ключа защиты, адреса команды и счета в CSW описывают состояние операции в момент выполнения команды (некоторые каналы в этой ситуации считаются занятыми).
3. Канал работает с другим устройством, а подканал хранит прерывание для адресуемого устройства или работает с ним. Поля ключа защиты, адреса команды и счета в CSW описывают состояние операции в момент выполнения команды CLRIO (в некоторых каналах в этой ситуации указывается состояние ЗАНЯТО).
4. Канал обнаружил сбой оборудования во время выполнения команды. CSW описывает эту сбойную ситуацию. Состояние канала и ход операций ввода-вывода в канале непредсказуемы. Если выполняется ограниченная регистрация в канале, то указывается код последовательности 000.
Если команда ОСВОБОДИТЬ ВВОД-ВЫВОД не может быть выполнена из-за того, что в канале не произведена регистрация по сбою, которая влияет на работоспособность канал, то в память записывается полное CSW. Все поля в CSW равны нулю, за исключением битов НЕ ВЫПОЛНЕНА РЕГИСТРАЦИЯ и СБОЙ УПРАВЛЕНИЯ КАНАЛА, которые устанавливаются в единицу. Это состояние не вызывает регистрации в канале.
Признак результата:
0 - в адресуемом устройстве не выполняется никаких операций;
1 - записано CSW;
2 - канал занят;
3 - выключен.
Программные прерывания:
привилегированная операция.
В таблице 13.4 приведены значения признака результата, который устанавливается при выполнении функции CLRIO для всех возможных состояний системы ввода-вывода. Значения признака результата, устанавливаемые тогда, когда по команде CLRIO выполняется функция TIO, приведены в описании команды ПРОВЕРИТЬ ВВОД-ВЫВОД.
Таблица 13.4Значения признака результата для функции CLRIO
Канал |
A |
I |
Wа |
Wб |
N |
||||||||||||||||
Подканал |
A |
Iа |
Iб |
Wа |
Wб |
N |
A |
Iа |
Iб |
Wа |
Wб |
N |
A |
Iа |
Iб |
Wа |
Wб |
N |
д |
3 |
|
0 |
0 |
1в |
0 |
1в |
3 |
0 |
0 |
1в |
0 |
1в |
3 |
г |
г |
д |
г |
д |
е |
||||
Обозначения: A - доступен; I - хранит прерывание; Iа - хранит прерывание для неадресуемого устройства; Iб - хранит прерывание для адресуемого устройства; W - работает; Wа - работает с неадресуемым устройством; Wб - работает с адресуемым устройством; N - выключен. в) Записано CSW. г) В состояниях WаAX, WаIаX и WаWаX может быть установлен признак результата, равный 0 или 2 в зависимости от типа канала. д) В состояниях WаIбX, WаWбX и WбXX может быть установлен признак результата, равный 1 (и записано CSW) или 2 в зависимости от типа канала. е) В состоянии WаNX может быть установлен признак результата, равный 3 или 2 в зависимости от типа канала. Примечание. Подчеркнутые значения признака результата относятся к ситуациям, которые могут иметь место только в мультиплексном канале. |
Замечания по программированию
Поскольку в некоторых каналах устанавливается признак результата, равный 2, если команда принимается каналом в состоянии “работает”, то бывает полезно сначала выдавать одну из команд останова, а затем команду ОСВОБОДИТЬ ВВОД-ВЫВОД для адресуемого устройства. Использование команды ОСТАНОВИТЬ УСТРОЙСТВО гарантирует, что признак результата, равный 2, можно получить в ответ на команду ОСВОБОДИТЬ ВВОД-ВЫВОД только для ситуации, когда канал работает с неадресуемым устройством. При использовании команды ОСТАНОВИТЬ ВВОД-ВЫВОД гарантируется, что текущая операция в канале, если она имеет место, прекращается независимо от адреса, указанного в команде.
Так как в некоторых каналах по команде ОСВОБОДИТЬ ВВОД-ВЫВОД операция не прекращается, если канал находится в состоянии “работает”, то команда ОСВОБОДИТЬ ВВОД-ВЫВОД не может использоваться вместо команд ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО.
Для освобождения канала может быть использована комбинация команд. Состоящая из команды ОСТАНОВИТЬ УСТРОЙСТВО и команды ОСВОБОДИТЬ ВВОД-ВЫВОД и выполняемая для всех устройств в канале.
ОСТАНОВИТЬ УСТРОЙСТВО
HDV D2(B2) [S]
+--------------------------+
¦ 9E01 ¦ B2 ¦ D2 ¦
+--------------------------+
0 15 16 19 20 31
Текущая операция в адресуемом устройстве прекращается. Последующее состояние подканала зависит от типа канала. Команда ОСТАНОВИТЬ УСТРОЙСТВО выполняется только в том случае, если процессор находится в состоянии “супервизор”.
Биты 8-14 кода команды игнорируются. Биты 16-31 адреса второго операнда идентифицируют канал, подканал и внешнее устройство, для которых выдается эта команда.
Если канал доступен или хранит прерывание, а подканал доступен или работает с адресуемым устройством, то по команде ОСТАНОВИТЬ УСТРОЙСТВО выбирается адресуемое устройство и в него посылается сигнал прекращения текущей операции, если она имеет место. Если подканал работает с адресуемым устройством, то по команде ОСТАНОВИТЬ УСТРОЙСТВО подканал также настраивается на выдачу устройству сигналу прекращения операции в следующий раз, когда оно запросит или предложит байт данных. Если в подканале определена цепочка, то она подавляется. Если подканал доступен, то его состояние не изменяется.
Если канал доступен или хранит прерывание, а подканал работает с неадресуемым устройством или хранит прерывание, то никаких действий не производится.
Если канал работает в монопольном режиме с адресуемым устройством, передача данных через интерфейс ввода-вывода немедленно прекращается и устройство сразу же отключается от канала. Цепочка, если она определена в подканале, подавляется.
Если канал работает в монопольном режиме с неадресуемым устройством и подканал доступен, хранит прерывание или работает с неадресуемым устройством, то никаких действий не производится. Если подканал работает с адресуемым устройством, то он настраивается на выдачу сигнала прекращения операции в следующий раз, когда устройство запросит или предложит байт данных. Цепочка, если она определена в подканале, подавляется.
Если канал работает в монопольном режиме с неадресуемым устройством, а подканал выключен, хранит прерывание или работает с неадресуемым устройством, признак результата в некоторых каналах определяется состоянием подканала.
Прекращение монопольной операции по команде ОСТАНОВИТЬ УСТРОЙСТВО в селекторном канале переводит канал и подканал в состояние “хранит прерывание”. Формирование условия прерывания не связано с получением байта состояния от устройства. Если команда ОСТАНОВИТЬ УСТРОЙСТВО прекращает монопольную операцию в байт-мультиплексном канале, подканал, связанный с монопольной операцией, остается в состоянии “работает” до тех пор, пока устройство не выдаст конечное состояние, после чего подканал переходит в состояние “хранит прерывание”. Прекращение монопольной операции по команде ОСТАНОВИТЬ УСТРОЙСТВО в блок-мультиплексном канале может в зависимости от модели и типа подканала выполняться, как в селекторном канале, или может позволить подканалу оставаться в состоянии “работает” до получения от устройства конечного состояния.
Если выполняется одно из трех условий, описанных ниже, команда ОСТАНОВИТЬ УСТРОЙСТВО вызывает запись в память байтов состояния CSW. Содержимое остальных полей CSW остается без изменения. Записанное по команде ОСТАНОВИТЬ УСТРОЙСТВО CSW относится только к выполнению команды ОСТАНОВИТЬ УСТРОЙСТВО и не описывает, при каких условиях была прекращена операция ввода-вывода в адресуемом подканале. Количество переданных байтов данных и условия прекращения операции в подканале указываются в CSW, которые связано с прерыванием, вызванным прекращением операции. Эти три условия формулируются следующим образом:
1. Адресуемое устройство выбирается, и в него посылается сигнал прекращения текущей операции, если она имеет место. В поле состояния CSW записываются нули, если только в это время не был зафиксирован сбой в канале.
2. Контроллер занят, и в устройство не может быть выдан сигнал прекращения операции. Байт состояния устройства в CSW содержит индикаторы ЗАНЯТО и МОДИФИКАТОР СОСТОЯНИЯ. Если не было сбоя в канале, то байт состояния канала содержит нули.
3. Канал при выполнении команды ОСТАНОВИТЬ УСТРОЙСТВО обнаружил сбой в канале. Поле состояния CSW описывает сбой. Состояние канала и ход выполнения операций ввода-вывода непредсказуемы.
Если команда ОСТАНОВИТЬ УСТРОЙСТВО не может быть выполнена из-за необработанного условия регистрации и это влияет на работоспособность канала или подканала, то в память записывается полное CSW. Все поля CSW устанавливаются в нуль, за исключением разрядов НЕ ВЫПОЛНЕНА РЕГИСТРАЦИЯ и СБОЙ УПРАВЛЕНИЯ КАНАЛА. Никакая регистрация по сбою с этим состоянием не связана.
Если команда ОСТАНОВИТЬ УСТРОЙСТВО прекращает передачу данных через интерфейс ввода-вывода, то контроллер, занятый в операции, остается недоступным до прекращения части операции, связанной с обработкой данных в контроллере. О прекращении этой части операции сообщается условием КОНЕЦ РАБОТЫ КАНАЛА. Этот сигнал может появиться в обычное для операции время, раньше или позже в зависимости от операции и типа устройства. Если контроллер разделенный, то все устройства, подключенные к нему, остаются занятыми до тех пор, пока процессором не будет принят байт состояния с индикатором КОНЕЦ РАБОТЫ КАНАЛА. Устройство, выполняющее прекращаемую операцию, остается занятым до завершения внутреннего цикла операции, после которого вырабатывается сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА. Если в устройстве определены блоки данных, как, например, в операциях чтения с магнитной ленты, то носитель продвигается к началу следующего блока.
Если команда ОСТАНОВИТЬ УСТРОЙСТВО выдается в доступный подканал и не выполняется никакой монопольной операции, действие сигнала “Остановить устройство” частично зависит от типа устройства и его состояния. Во всех случаях сигнал “Остановить устройство” не оказывает влияния на незанятые устройства или устройства, выполняющие механические действия, не связанные с передачей данных, такие, например, как перемотка ленты или установка механизма доступа на магнитных дисках. Если устройство выполняет операцию непредсказуемой длительности или операцию, в которой через интерфейс ввода-вывода передаются данные, устройство интерпретирует сигнал “Остановить устройство” как приказ прекратить операцию. Необработанные сигналы ВНИМАНИЕ и КОНЕЦ РАБОТЫ УСТРОЙСТВА во внешнем устройстве не сбрасываются.
Признак результата:
0 - подканал работает с другим устройством или хранит прерывание;
1 - записано CSW;
2 - канал работает;
3 - выключен.
Программные прерывания:
привилегированная операция.
В таблице 13.5 приведены значения признака результата, устанавливаемые командой ОСТАНОВИТЬ УСТРОЙСТВО для всех возможных состояний системы ввода-вывода. Состояния A, I, W и N описаны в подразделе “Состояния системы ввода-вывода”.
Таблица 13.5 Значения признака результата для команды ОСТАНОВИТЬ УСТРОЙСТВО
Канал |
A |
I |
Wа |
Wб |
N |
|||||||||||||||||||||||||
Подканал |
A |
I |
Wа |
Wб |
N |
A |
I |
Wа |
Wб |
N |
A |
I |
Wа |
Wб |
N |
г |
3 |
|||||||||||||
Контроллер - ВУ |
A |
I |
W |
N |
A |
I |
W |
N |
A |
I |
W |
N |
A |
I |
W |
N |
2 |
д |
д |
2 |
е |
|||||||||
1в |
1в |
1в |
3 |
0 |
0 |
1в |
1в |
1в |
3 |
3 |
1в |
1в |
1в |
3 |
0 |
0 |
1в |
1в |
1в |
3 |
3 |
|||||||||
Обозначения: A - доступен; I - хранит прерывание; W - работает; Wа - работает с неадресуемым устройством; Wб - работает с адресуемым устройством; N - выключен. в) Записано CSW. г) В зависимости от канала и условий в канале при наличии состояния WбXX может быть или установлен признак результата, равный 1, и записано CSW, или установлен признак результата, равный 2. Установка признака результата 1 и запись CSW могут произойти только в том случае, если контроллер получил сигнал прекратить операцию. д) В зависимости от канала и условий в канале при наличии состояния WаIX или Wа WаX может быть установлен признак результата, равный 0 или 2. е) В состоянии WаNX в зависимости от типа канала и модели системы может быть установлен признак результата, равный 2 или 3. Примечание. Подчеркнутые значения признака результата относятся к ситуациям, которые могут иметь место только в мультиплексном канале. |
Замечания по программированию
Селекторные и байт-мультиплексные каналы, разработанные до введения команды ОСТАНОВИТЬ УСТРОЙСТВО (например, 2860), будут выполнять команду ОСТАНОВИТЬ УСТРОЙСТВО как команду ОСТАНОВИТЬ ВВОД-ВЫВОД. Для таких каналов можно гарантировать программную совместимость между командами ОСТАНОВИТЬ УСТРОЙСТВО и ОСТАНОВИТЬ ВВОД-ВЫВОД при соблюдении следующий соглашений:
1. В байт-мультиплексном канале не следует выдавать команду ОСТАНОВИТЬ УСТРОЙСТВО во внешнее устройство, работающее в мультиплексном режиме, если в этот момент в канале выполняется монопольная операция.
2. В байт-мультиплексном канале не следует выдавать команду ОСТАНОВИТЬ УСТРОЙСТВО во внешнее устройство, подключенное к разделенному подканалу, если подканал работает с неадресуемым устройством.
3. В занятом селекторном канале не следует выдавать команду ОСТАНОВИТЬ УСТРОЙСТВО во внешнее устройство, отличное от того, с которым работает канал.
Выполнение команды ОСТАНОВИТЬ УСТРОЙСТВО всегда прекращает передачу данных через интерфейс ввода-вывода для адресуемого устройства. Признак результата и CSW (если оно записано) указывают, был ли при выполнении команды выдан в контроллер сигнал прекращения операции. Если такой сигнал не был выдан, то признак результата и CSW (если оно записано) индицируют условия, при которых для устройства с тем же адресом по команде ОСТАНОВИТЬ УСТРОЙСТВО в контроллер будет выдан сигнал прекращения операции.
Признак результата 0 указывает, что до сброса условия прерывания в том же подканале команда ОСТАНОВИТЬ УСТРОЙСТВО не может сигнализировать контроллеру о прекращении операции.
Признак результата 1 с индикацией в CSW занятости контроллера указывает, что команда ОСТАНОВИТЬ УСТРОЙСТВО не может выдать сигнал прекращения операции в контроллер до получения от него сигнала КОНЕЦ РАБОТЫ КОНТРОЛЛЕРА.
Признак результата 1 с нулями в поле состояния CSW указывает, что адресуемое устройство выбрано и в него послан сигнал прекращения текущей операции, если последняя имеет место.
Признак результата 2 указывает, что до тех пор, пока канал не освободится, в контроллер не будет выдан сигнал прекращения операции. Момент освобождения канала может быть зафиксирован при анализе прерывания от канала или с помощью многократно повторяемой команды ОСТАНОВИТЬ УСТРОЙСТВО с проверкой ее результатов.
Признак результата 3 указывает, что необходимо вмешательство оператора, чтобы команда ОСТАНОВИТЬ УСТРОЙСТВО могла вызвать посылку в контроллер сигнала прекращения операции.
ОСТАНОВИТЬ ВВОД-ВЫВОД
HIO D2(B2) [S]
+--------------------------+
¦ 9E00 ¦ B2 ¦ D2 ¦
+--------------------------+
0 15 16 19 20 31
Прекращается выполнение текущей операции в адресуемом устройстве, подканале и канале. Последующее состояние подканала зависит от типа канала. Команда ОСТАНОВИТЬ ВВОД-ВЫВОД может выполняться только тогда, когда процессор находится в состоянии “супервизор”.
Биты 8-14 кода команды игнорируются. Биты 16-31 адреса второго операнда идентифицируют канал, подканал и внешнее устройство, для которых выдается эта команда.
Если канал доступен или хранит прерывание и при этом подканал доступен или работает, то по команде ОСТАНОВИТЬ ВВОД-ВЫВОД выбирается адресуемое устройство и в него посылается сигнал прекращения текущей операции, если последняя имеет место. Если подканал доступен, его состояние не изменяется. Если в байт-мультиплексном канале подканал работает, передача данных немедленно прекращается, но подканал остается в состоянии “работает” до получения от устройства байта состояния, после чего подканал переходит в состояние “хранит прерывание”.
Если команда ОСТАНОВИТЬ ВВОД-ВЫВОД выдается в канал, работающий в монопольном режиме, монопольная операция передачи данных прекращается, а устройство, выполняющее монопольную операцию, немедленно отключается от канала. В этом случае адреса подканала и внешнего устройства в команде игнорируются.
Если по команде ОСТАНОВИТЬ ВВОД-ВЫВОД прекращается монопольная операция в селекторном канале, то канал и подканал переводятся в состояние “хранит прерывание”. Формирование условия прерывания не связано с получением байта состояния от устройства. Если по команде ОСТАНОВИТЬ ВВОД-ВЫВОД прекращается монопольная операция в байт-мультиплексном канале, то соответствующий подканал остается в состоянии “работает” до получения от устройства сигнала КОНЕЦ РАБОТЫ КАНАЛА, после чего подканал переходит в состояние “хранит прерывание”. Прекращение монопольной операции по команде ОСТАНОВИТЬ ВВОД-ВЫВОД в блок-мультиплексном канале может в зависимости от модели и типа подканала выполняться, как в селекторном канале, или же подканал может оставаться в состоянии “работает” до получения от внешнего устройства конечного состояния.
В байт-мультиплексном канале, работающем в мультиплексном режиме, выбор устройства и выполнение команды производятся только после того, как канал обслужит все неудовлетворенные запросы на передачу данных для ранее начатых операций, включая и ту, которую необходимо остановить. Если контроллер не может принять сигнал прекращения операции из-за того, что он выключен или занят, то подканал, если он находится в состоянии “работает”, настраивается на выдачу сигнала прекращения операции в устройство в следующий раз, когда оно запросит или предложит байт данных. Если в подканале определена цепочка команд, а устройство предоставляет свое состояние, то цепочка подавляется.
Если адресуемый подканал хранит прерывание, а канал доступен или хранит прерывание, то по команде HIO никаких действий в канале не выполняется.
При выполнении команды HIO байты состояния CSW (биты 32-47) записываются в том случае, если будет иметь место одно из приводимых ниже условий. Содержимое других полей CSW не изменяется. Занесенное при выполнении команды ОСТАНОВИТЬ ВВОД-ВЫВОД CSW относится только к выполнению команды HIO и не описывает, при каких условиях завершилась операция ввода-вывода в адресуемом подканале. Количество переданных данных и условия прекращения операции в подканале описываются в CSW, связанном с прерыванием, вызываемым прекращением операции. Упомянутые выше условия формулируются следующим образом:
1. Адресуемое устройство выбрано, и в него выдан сигнал прекращения текущей операции. Байты состояния CSW содержат нули, если только не был обнаружен сбой оборудования.
2. Канал пытался выбрать адресуемое устройство, но контроллер не мог принять сигнал “Остановить ввод-вывод” из-за того, что он выполнял ранее начатую операцию или хранил прерывание для неадресуемого устройства. Сигнал прекращения операции не был передан во внешнее устройство, а подканал, если он находился во состоянии “работает”, настроился на выдачу сигнала прекращения операции в следующий раз, когда устройство заявит о себе. В байте состояния устройства в CSW установлены биты ЗАНЯТО и МОДИФИКАТОР СОСТОЯНИЯ. Байт состояния канала имеет нулевое значение при условии, что не был обнаружен сбой оборудования.
3. Во время выполнения команды ОСТАНОВИТЬ ВВОД-ВЫВОД канал обнаружил сбой оборудования. Биты состояния в CSW описывают эту ошибку. Состояние канала и ход операций ввода-вывода непредсказуемы.
Если команда ОСТАНОВИТЬ ВВОД-ВЫВОД не может быть выполнена из-за необработанного условия регистрации и это влияет на работоспособность канала или подканала, то в память записывается полное CSW. Все поля CSW устанавливаются в нуль, за исключением разрядов НЕ ВЫПОЛНЕНА РЕГИСТРАЦИЯ и СБОЙ УПРАВЛЕНИЯ КАНАЛА. Никакая регистрация по сбою с этим состоянием не связана.
Если по команде ОСТАНОВИТЬ ВВОД-ВЫВОД прекращается передача данных, то контроллер, занятый в операции, остается недоступным до прекращения части операции, связанной с обработкой данных в контроллере. О прекращении этой части операции сообщается условием КОНЕЦ РАБОТЫ КАНАЛА. Этот сигнал может появиться в обычное для операции время, раньше или позже в зависимости от операции и типа устройства. Если контроллер разделенный, то все устройства, подключенные к нему, остаются занятыми до тех пор, пока процессором не будет принят байт состояния с индикатором КОНЕЦ РАБОТЫ КАНАЛА. Устройство, выполняющее прекращаемую операцию, остается занятым до завершения внутреннего цикла операции, после которого вырабатывается сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА. Если в устройстве определены блоки данных, как, например, в операциях чтения с магнитной ленты, то носитель продвигается к началу следующего блока.
Когда команда ОСТАНОВИТЬ ВВОД-ВЫВОД выдается в доступный подканал и в канале не выполняется никакой монопольной операции, влияние сигнала “Остановить ввод-вывод” зависит от типа устройства и его состояния, что для каждого конкретного устройства описывается в публикациях SL и SRL. Сигнал “Остановить ввод-вывод” не оказывает никакого влияния на незанятые устройства или устройства, выполняющие операцию фиксированной длительности, как, например, перемотку ленты или установку механизма доступа на магнитном диске. Если устройство выполняет операцию переменной длительности, устройство интерпретирует этот сигнал как приказ остановить операцию. Необработанные сигналы ВНИМАНИЕ и КОНЕЦ РАБОТЫ УСТРОЙСТВА в устройстве не сбрасываются.
Признак результата:
0 - подканал хранит прерывание;
1 - CSW записано в память;
2 - прекращена монопольная операция;
3 - выключен.
Программные прерывания:
привилегированная операция.
В таблице 13.6 приведены значения признака результата, устанавливаемые командой ОСТАНОВИТЬ ВВОД-ВЫВОД для всех возможных состояний системы ввода-вывода. Состояния A, I, W и N описаны в подразделе “Состояния системы ввода-вывода”.
Таблица 13.6Значения признака результата для команды ОСТАНОВИТЬ ВВОД-ВЫВОД
Канал |
A |
I |
W |
N |
|||||||||||||
Подканал |
A |
I |
W |
N |
A |
I |
W |
N |
|||||||||
Контроллер - ВУ |
A |
I |
W |
N |
A |
I |
W |
N |
|||||||||
1а |
1а |
1а |
3 |
0 |
1а,б |
3 |
1а |
1а |
1а |
3 |
0 |
1а,б |
3 |
2 |
3 |
||
Обозначения: A - доступен; I - хранит прерывание; W - работает; N - выключен. а) Записано CSW. б) Если при выборке адресуемого устройства получен ответ “Устройство выключено”, то устанавливается признак результата, равный 3. Примечание. Подчеркнутые значения признака результата относятся к ситуациям, которые могут иметь место только в мультиплексном канале. |
Замечания по программированию
Команда ОСТАНОВИТЬ ВВОД-ВЫВОД предоставляет программе средства для прекращения операции ввода-вывода прежде, чем все данные, указанные в операции, будут переданы, или прежде, чем выполнение операции в устройстве достигнет своего обычного конца. Эта команда позволяет программе немедленно освободить селекторный канал для запуска операции высшего приоритета. В байт-мультиплексном канале команда HIO позволяет управлять выполнением операций в реальном масштабе времени и дает программе возможность прекращать передачу данных в канале связи.
НАЧАТЬ ВВОД-ВЫВОД НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ
SIO D2(B2) [S]
+--------------------------+
¦ 9C00 ¦ B2 ¦ D2 ¦
+--------------------------+
0 15 16 19 20 31
SIOF D2(B2) [S]
+--------------------------+
¦ 9C01 ¦ B2 ¦ D2 ¦
+--------------------------+
0 15 16 19 20 31
В адресуемом внешнем устройстве и подканале запускается операция записи, чтения, чтения в обратном направлении, управления или уточнения состояния. Команда выполняется только тогда, когда процессор находится в состоянии “супервизор”. Разряды 8-14 кода команды игнорируются.
В зависимости от команды, канала и бита управления мультиплексированием (бит 0 управляющего регистра 0) канал выполняет функцию SIO или SIOF. При выполнении функции SIO операция начинается только после выборки устройства. При выполнении функции SIOF операция начинается независимо от устройства. По команде НАЧАТЬ ВВОД-ВЫВОД всегда выполняется функция SIO; она также выполняется по команде НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, если не задано мультиплексирование блоков. Если же мультиплексирование блоков указано, то в зависимости от канала по команде НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ может быть выполнена функция SIO или SIOF.
Разряды 16-31 адреса второго операнда идентифицируют канал, подканал и внешнее устройство, к которым адресована команда. Адресное слово канала (CAW) в ячейке 72 содержит ключ защиты для подканала и адрес первого командного слова канала (CCW). Это CCW указывает, какая операция должна быть выполнена, какую область памяти при этом использовать и что делать после завершения операции.
При выполнении функции SIO операция ввода-вывода начинается в том случае, если адресуемое внешнее устройство и подканал доступны, канал доступен или хранит прерывание и никаких ошибок или особых случаев не обнаружено. Операция ввода-вывода не может быть начата, если адресуемая часть системы ввода-вывода находится в любом другом состоянии либо если канал или устройство обнаруживает при выполнении команды какую-либо ошибку или особый случай.
При выполнении функции SIOF операция ввода-вывода может быть начата, если адресуемый подканал доступен, канал доступен или хранит прерывание, а также отсутствуют ошибки и особые случаи. Если подканал и канал находятся в состоянии, отличном от вышеуказанного, или же если во время выполнения команды канал обнаруживает ошибку или особый случай, то операция ввода-вывода не может быть начата. Если состояние устройства, проверяемое после завершения функции SIOF, препятствует началу операции ввода-вывода, либо при обнаружении каналом или устройством ошибки это состояние или ошибка не связывается с выполнением команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, а указывается в CSW, которое запоминается во время последующего прерывания.
При наличии перечисленных ниже условий, а также при дополнительном условии, что канал доступен или хранит прерывание, а подканал доступен перед выполнением команды, производится запись CSW, причем момент его записи и содержимое зависят от выполняемой функции SIO или SIOF. При выполнении функции SIO производится запись только байтов состояния CSW, а остальные поля не изменяются. При выполнении функции SIOF в первом случае выполняются те же действия, что и для функции SIO; все остальные ситуации будут указываться при последующем прерывании, во время которого CSW будет записано в память полностью. Упомянутые выше условия формулируются следующим образом:
1. Канал обнаружил ошибку программирования в содержимом CAW или зафиксировал сбой оборудования при выполнении команды. CSW описывает ошибку. Биты ЗАНЯТО и КОНЕЦ РАБОТЫ КАНАЛА в CSW сброшены, если только при выполнении функции SIO ошибка не была обнаружена уже после того, как внешнее устройство выбрано, причем оказалось, что оно занято; в этом случае будет установлен бит ЗАНЯТО и любые другие биты, описывающие необработанные условия прерывания. Условия прерывания, указанные в CSW, сбрасываются. Операция ввода-вывода не начинается. Никаких условий прерывания в устройстве и подканале не вырабатывается. Состояние бита PCI в CSW непредсказуемо.
2. Канал обнаружил ошибку программирования, относящуюся к первой CCW или, если задана косвенная адресация данных в канале (CIDA), к первому IDAW, либо в случае функции SIOF канал обнаружил сбой оборудования после завершения команды. CSW описывает ошибку. Биты КОНЕЦ РАБОТЫ КАНАЛА и ЗАНЯТО в CSW не устанавливаются, если только ошибка не была обнаружена после того, как устройство было выбрано, причем оказалось, что оно занято; при этом устанавливается бит ЗАНЯТО и любые другие биты, указывающие на необработанные условия прерывания. После записи CSW условия прерывания в устройстве сбрасываются. Операция ввода-вывода не начинается. Никаких условий прерывания в устройстве и подканале не вырабатывается. Состояние бита PCI в CSW непредсказуемо.
3. Была выполнена немедленная операция Немедленной операцией называется такая операция, при получении кода которой в процессе начальной выборки внешнее устройство сразу выдает указатель КОНЕЦ РАБОТЫ КАНАЛА, т.е. для выполнения которой нужен только ее код и не требуется обмена данными между памятью и внешним устройством. Операции, не относящиеся к немедленным, отвечают на получение кода операции во время начальной выборки байтом состояния, содержащим только нулевые биты, после чего начинается обмен данными. и либо не указана цепочка команд и не производится повторения команды, либо цепочка подавляется из-за необычных условий, обнаруженных при выполнении операции. CSW содержит бит КОНЕЦ РАБОТЫ КАНАЛА и другие указатели, обеспечиваемые каналом и устройством. Бит ЗАНЯТО устанавливается в нуль. Операция ввода-вывода началась, но информация не передается в область памяти или из области памяти, указанной в CCW. Никаких условий прерывания в подканале не вырабатывается, и подканал доступен для начала новой операции ввода-вывода. Если сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА еще не выдан, устройство остается занятым, и после освобождения вырабатывает сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА. CSW содержит бит PCI, если он был указан в первом CCW.
4. Устройство хранит условие прерывания или контроллер хранит сигнал прерывания для адресуемого устройства. В поле состояния устройства в CSW указывается бит ЗАНЯТО, описывается условие прерывания и могут содержаться другие биты, обеспечиваемые устройством или контроллером. Условие прерывания сбрасывается. В поле состояния канала в CSW указываются ошибки, обнаруженные каналом, и содержится бит PCI, если он был задан в первом CCW.
5. Внешнее устройство или контроллер выполняет ранее начатую операцию или контроллер хранит прерывание для неадресуемого устройства. В поле состояния устройства в CSW содержится бит ЗАНЯТО, а в случае занятости контроллера - биты ЗАНЯТО и МОДИФИКАТОР СОСТОЯНИЯ. В поле состояния канала указываются ошибки, обнаруженные каналом, и содержится бит PCI, если он был задан в первом CCW.
6. При запуске операции внешнее устройство или контроллер обнаружили сбой или же ошибку программирования либо адресуемое устройство находилось в состоянии “не готово”. CSW описывает ошибку. Биты КОНЕЦ РАБОТЫ КАНАЛА и ЗАНЯТО сброшены, если только устройство не оказалось занятым; в этом случае устанавливается бит ЗАНЯТО, а также любые другие биты, описывающие необработанные условия прерывания. Условия прерывания, хранящиеся в устройстве и указанные в CSW, сбрасываются. Операция ввода-вывода не начинается. Никаких условий прерывания в устройство и подканале не вырабатывается. CSW содержит бит PCI, если он задан в первом CCW.
Если функция SIO или SIOF не может быть выполнена из-за необработанного условия регистрации и это влияет на работоспособность канала или подканала, то в память записывается полное CSW. Все поля CSW устанавливаются в нуль, за исключением разрядов НЕ ВЫПОЛНЕНА РЕГИСТРАЦИЯ и СБОЙ УПРАВЛЕНИЯ КАНАЛА. Никакая регистрация по сбою с этим состоянием не связана.
Если при выполнении функции SIOF устанавливается признак результата, равный 0, а затем возникает ситуация, в которой при выполнении функции SIO был бы установлен признак результата, равный 1, то формируется условие прерывания с отложенным признаком результата, равным 1. Если при выполнении функции SIOF устанавливается признак результата, равный 0, а затем при выборке устройства обнаруживается, что устройство выключено, то вырабатывается условие прерывания с отложенным признаком результата, равным 3. При последующем прерывании ввода-вывода записывается полное CSW и в нем указывается отложенный признак результата.
В байт-мультиплексном канале при выполнении функций SIO и SIOF выбирается адресуемое устройство и операция ввода-вывода начинается только после того, как канал обслужил все неудовлетворенные запросы на передачу данных для ранее начатых операций.
Признак результата:
0 - операция ввода-вывода начата и канал продолжает ее выполнение;
1 - записано CSW;
2 - канал или подканал занят;
3 - выключен.
Программные прерывания:
привилегированная операция.
В таблице 13.7 приведены значения признака результата, устанавливаемые командами НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ для всех возможных состояний системы ввода-вывода. Состояния A, I, W и N описаны в подразделе “Состояния системы ввода-вывода”.
Таблица 13.7Значения признака результата для команд НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ
Канал |
A |
I |
W |
N |
|||||||||||||
Подканал |
A |
I |
W |
N |
A |
I |
W |
N |
|||||||||
Контроллер - ВУ |
A |
I |
W |
N |
A |
I |
W |
N |
|||||||||
б |
1а,в |
1а,в |
3в |
2 |
2 |
3 |
б |
1а,в |
1а,в |
3в |
2 |
2 |
3 |
2 |
3 |
||
Обозначения: A - доступен; I - хранит прерывание; W - работает; N - выключен. а) Записано CSW. б) Если выполняется операция ввода-вывода, не относящаяся к числу немедленных, и канал продолжает ее выполнение, то устанавливается признак результата, равный 0. Если выполняется немедленная операция и при этом либо не задана цепочка команд и не выполняется повторение команды, либо устройство не готово к работе, либо же устройство или контроллер обнаружили ошибку, то для функции SIO устанавливается признак результата, равный 1, и записывается CSW. Для функции SIOF устанавливается признак результата, равный 0, и вырабатывается сигнал прерывания с отложенным признаком результата 1. в) Если выполняется функция SIOF, то устанавливается признак результата, равный 0. Указанный признак результата будет передан как отложенный признак результата. Примечание. Подчеркнутые значения признака результата относятся к ситуациям, которые могут иметь место только в мультиплексном канале. |
Замечания по программированию
Команда НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ имеет преимущество перед командой НАЧАТЬ ВВОД-ВЫВОД в том отношении, что процессор освобождается сразу после выборки CAW, а не после завершения процедуры выборки устройства. Таким образом, в этом случае процессор раньше освобождается для другой работы. Однако недостаток команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ состоит в том, что если выдается отложенный признак результата, то время выполнения операции процессором увеличивается по сравнению с тем, которое затрачивается при выполнении команды НАЧАТЬ ВВОД-ВЫВОД, а также усложняется логика программы.
Если канал обнаружил ошибку программирования при выполнении функции SIO и при этом адресуемое устройство хранит прерывание, а канал и подканал доступны, то сброс условия прерывания в устройстве производится в зависимости от типа ошибки и используемой модели. Если при этом устройство было опрошено, на что указывает наличие бита ЗАНЯТО в CSW, то условие прерывания в устройстве сбрасывается и CSW содержит биты ОШИБКА В ПРОГРАММЕ или НАРУШЕНИЕ ЗАЩИТЫ, а также биты состояния, выдаваемые устройством.
Подобные документы
Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-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