Архитектура IBM System / 360 является независимой от модели архитектурой для всей линейки мэйнфреймов S / 360 , включая, помимо прочего, архитектуру набора команд . Элементы архитектуры задокументированы в руководствах IBM System / 360 Principles of Operation [1] [2] и « Канал интерфейса ввода-вывода IBM System / 360 к информации производителей оригинального оборудования» . [3]
В документации IBM биты нумеруются от старшего к младшему; самый старший (крайний левый) бит обозначается как бит номер 0.
Архитектура System / 360 предоставляет следующие возможности:
16 32-битных регистров общего назначения
4 64-битных чисел с плавающей точкой регистров
64-битный регистр состояния процессора (PSW), который включает 24-битный адрес инструкции
24-битное (16 МБ) пространство памяти с байтовой адресацией
Тупоконечник байты / порядок слов
Стандартный набор команд , в том числе с фиксированной точкой двоичной арифметики и логических команд, присутствуют на всех моделях система / 360 (кроме модели 20, смотри ниже).
Коммерческий набор команд , добавляя десятичные арифметические инструкции, не является обязательным на некоторых моделях, так как это научный набор команд , который добавляет инструкцию с плавающей точкой. Универсальный набор команд включает в себя все вышеперечисленные плюс хранения инструкций по охране и является стандартным для некоторых моделей.
Модель 44 предоставляет несколько уникальных инструкций для сбора данных и обработки в реальном времени и не имеет инструкций по хранению данных. Однако IBM предложила функцию « Коммерческий набор инструкций», которая работает в резервном хранилище и имитирует отсутствующие инструкции.
Модель 20 предлагает урезанную версию стандартного набора инструкций, ограниченную восемью регистрами общего назначения только с полусловными (16-битными) инструкциями, плюс коммерческий набор инструкций и уникальные инструкции для ввода / вывода.
Модель 67 включает в себя некоторые инструкции для обработки 32-битных адресов и «динамической трансляции адресов» с дополнительными привилегированными инструкциями для обеспечения виртуальной памяти. [7]
объем памяти
Память ( хранилище ) в System / 360 указывается в 8-битных байтах. Различные команды действуют на более крупных единицах , называемых полуслова (2 байта), fullword (4 байта), двойного слова (8 байт), четверное слово (16 байт) и 2048 блока хранения байт, указав крайний левый (младший адрес) блока. В пределах полуслова, полного слова, двойного слова или четверного слова байты с меньшим номером более значимы, чем байты с высоким номером; это иногда называют прямым порядком байтов . Многие варианты использования этих единиц требуют их выравнивания по соответствующим границам. В этой статье термин слово без уточнения относится к полному слову .
Исходная архитектура System / 360 предусматривала до 2 24 = 16 777 216 байт памяти. Более поздняя модель 67 расширила архитектуру, чтобы обеспечить до 2 32 = 4 294 967 296 [NB 1] байт виртуальной памяти.
Обращение
В System / 360 используется усеченная адресация, аналогичная UNIVAC III . [8] Это означает, что инструкции не содержат полных адресов, а скорее определяют базовый регистр и положительное смещение от адресов в базовых регистрах. В случае System / 360 базовый адрес содержится в одном из 15 [NB 2] общих регистров. В некоторых инструкциях, например в сдвигах, одни и те же вычисления выполняются для 32-битных величин, которые не являются адресами.
Форматы данных
Архитектура S / 360 определяет форматы символов, целых чисел, десятичных целых чисел и шестнадцатеричных чисел с плавающей запятой. Символьные и целочисленные инструкции являются обязательными, но десятичные инструкции и инструкции с плавающей запятой являются частью функций десятичной арифметики и арифметики с плавающей запятой.
Символы хранятся в виде 8-битных байтов.
Целые числа хранятся как двоичные значения полуслова или полного слова с дополнением до двух.
Упакованные десятичные числа хранятся в виде от 1 до 16 8-битных байтов, содержащих нечетное количество десятичных цифр, за которыми следует 4-битный знак. Значения знаков шестнадцатеричных A, C, E и F являются положительными, а значения знаков шестнадцатеричных B и D - отрицательными. Значения цифр шестнадцатеричного AF и значений знаков 0–9 недопустимы, но инструкции PACK и UNPK не проверяют правильность.
Зонированные десятичные числа хранятся в виде от 1 до 16 8-битных байтов, каждый из которых содержит зону в битах 0–3 и цифру в битах 4–7. Зона крайнего правого байта интерпретируется как знак.
Числа с плавающей запятой хранятся только как значения полного или двойного слова в старых моделях. На 360/85 [9] и 360/195 [10] есть также числа с плавающей запятой повышенной точности, сохраненные как четверные слова. Для всех трех форматов бит 0 является знаком, а биты 0-7 - характеристикой (показатель степени, смещенный на 64). Биты 8-31 (8-63) представляют собой шестнадцатеричную дробь. Для повышенной точности двойное слово младшего разряда имеет свой собственный знак и характеристику, которые игнорируются при вводе и генерируются при выводе.
Форматы инструкций
Инструкции в S / 360 имеют длину два, четыре или шесть байтов, а код операции - байт 0. Инструкции имеют один из следующих форматов:
RR (два байта). Обычно байт 1 определяет два 4-битных номера регистра, но в некоторых случаях, например, в SVC, байт 1 является одним 8-битным непосредственным полем.
RS (четыре байта). Байт 1 определяет два номера регистра; байты 2-3 определяют основание и смещение.
RX (четыре байта). Биты 0–3 байта 1 определяют либо номер регистра, либо модификатор; биты 4-7 байта 1 определяют номер общего регистра, который будет использоваться в качестве индекса; байты 2-3 определяют основание и смещение.
SI (четыре байта). Байт 1 определяет непосредственное поле; байты 2-3 определяют основание и смещение.
SS (шесть байт). Байт 1 определяет два поля длиной 4 бита или одно поле длиной 8 бит; байты 2-3 и 4-5 каждый определяют основание и смещение. Кодирование полей длины - длина-1.
Инструкции должны быть на двухбайтовой границе памяти; следовательно, младший бит адреса инструкции всегда равен 0.
Слово состояния программы (PSW)
Основная статья: Слово состояния программы
Программа Слово состояния ( PSW ) [2] : 71-72 содержит различные элементы управления для текущей операционной программы. 64-битный PSW описывает (среди прочего) адрес текущей выполняемой инструкции, код условия и маски прерывания.
Ключ защиты ЦП для сравнения с ключами защиты хранилища
12
Режим ASCII
включить режим ASCII для упакованных десятичных инструкций, никогда не используется программным обеспечением IBM [NB 4]
13
Машинные проверки
включить прерывания проверки машины
14
Состояние ожидания
Процессор остановлен, прерывание, если оно разрешено, заставит процессор возобновить выполнение инструкций
15
Состояние проблемы
включить, чтобы предотвратить использование инструкций, зарезервированных для состояния супервизора
16–31
Код прерывания
код для обозначения типа прерывания, вставляемого при сохранении PSW во время IPLoad, это адрес устройства, с которого была загружена программа PoOps : 77
адрес следующей инструкции, кроме программных прерываний с ILC 0
Загрузить слово состояния программы ( LPSW ) - это привилегированная инструкция, которая загружает слово состояния программы (PSW), включая программный режим, ключ защиты и адрес следующей инструкции, которая должна быть выполнена. LPSW чаще всего используется для «возврата» из прерывания путем загрузки «старого» PSW, связанного с классом прерывания. Другие привилегированные инструкции (например, SSM, STNSM, STOSM, SPKA и т. Д.) Доступны для управления подмножествами PSW без прерывания или загрузки PSW; и одна непривилегированная инструкция (SPM) доступна для управления маской программы.
Система прерывания
Архитектура [2] : 77–83 определяет 5 классов прерывания . Прерывание - это механизм автоматического изменения состояния программы; он используется как для синхронных [NB 5], так и для асинхронных событий.
Класс прерывания
Старый шестнадцатеричный разряд PSW
Новый шестнадцатеричный декабрь PSW
Приоритет
PoOps ввода / вывода : 78–79
38 56
78 120
4
Программные PoOps : 79–80,1
28 40
68 104
2
PoOps вызова супервизора : 80.1–81
20 32
60 96
2
Внешние PoOps : 81–82
18 24
58 88
3
PoOps для проверки машины : 82–83
30 48
70 112
1
Каждому классу прерывания на S / 360 присвоены два поля хранения; старое двойное слово PSW и новое двойное слово PSW. Процессор сохраняет PSW со вставленным кодом прерывания в старом местоположении PSW, а затем загружает PSW из нового местоположения PSW. Обычно это заменяет адрес инструкции, тем самым выполняя переход, и (необязательно) устанавливает и / или сбрасывает другие поля в PSW, тем самым влияя на изменение режима.
Архитектура S / 360 определяет приоритет для каждого класса прерывания, но он имеет значение только тогда, когда два прерывания происходят одновременно; подпрограмма прерывания может быть прервана любым другим разрешенным прерыванием, включая другое возникновение начального прерывания. По этой причине обычной практикой является указывать все биты маски, за исключением бита маски машинной проверки, как 0 для обработчиков прерываний «первого уровня». Обработчики прерываний «второго уровня» обычно предназначены для прерываний с накоплением (множественные прерывания одного и того же класса).
Прерывание ввода / вывода
Прерывание ввода-вывода PoOps : 78–79 происходит при завершении программы канала после выборки CCW с установленным битом PCI, а также для асинхронных событий, обнаруженных устройством, блоком управления или каналом, например, завершение механического движения. . Система сохраняет адрес устройства в коде прерывания и сохраняет статус канала в CSW в ячейке 64 ('40'X).
Прерывание программы
Прерывание программы [2] : 16, 79–80.1 происходит, когда инструкция встречает одно [NB 6] из 15 [NB 7] исключений; однако, если бит программной маски, соответствующий исключению, равен 0, то для этого исключения нет прерывания. На 360/65, [13] : 12 360/67 [11] : 46 и 360/85 [9] : 12 прерывания исключения защиты и исключения адресации могут быть неточными, и в этом случае они сохраняют код длины инструкции 0. Код прерывания может быть любым из
Коды прерывания для программных прерываний старые биты PSW 26-31
биты шестигранные 26-31
Декабрь
Исключение
0
0
Неточное прерывание [NB 6] на 360/91, [12] : 15 360/95 или 360/195 [10] : 14
Старые биты PSW для нескольких неточных кодов прерывания
немного
Исключение
16
Защита
17
Обращение
18
Спецификация [NB 8]
19
Данные
20
Переполнение фиксированной точки
21 год
Разделение с фиксированной точкой
22
Переполнение экспоненты
23
Экспонента недостаточного заполнения
24
Значение
25
Деление с плавающей запятой
26 год
Переполнение десятичной дроби [NB 9]
27
Десятичное деление [NB 9]
1
1
Операция PoOps : 79
2
2
PoOps для привилегированных операций : 79
3
3
Выполнить PoOps : 79
4
4
PoOps защиты : 79
5
5
Обращение к PoOps : 79–80
6
6
Спецификация PoOps : 80
7
7
PoOps данных : 80
8
8
PoOps с фиксированной точкой : 80
9
9
PoOps с разделением с фиксированной точкой : 80
А
10
Десятичный переполнение PoOps : 80
B
11
Десятичное деление PoOps : 80
C
12
Показатель переполнения PoOps : 80
D
13
Показатель потери значимости PoOps : 80
E
14
Значимость PoOps : 80
F
15
PoOps с плавающей запятой : 80,1
10
16
Перевод сегмента [11] : 17 [NB 7]
11
17
Перевод страницы [11] : 17 [NB 7]
12
18
Исключение SSM [13] [NB 7]
An операция исключения PoOps : 79 признается , когда программа пытается выполнить команду с кодом операции , что компьютер не реализует. В частности, исключение операции распознается, когда программа написана для необязательной функции, например, с плавающей запятой, которая не установлена.
А привилегированные операции исключения PoOps : 79 признается , когда программа пытается выполнить привилегированную команду , когда проблема состояния бита в PSW 1.
Выполнить исключения PoOps : 79 признается , когда операнд EXECUTE инструкции (EX) является еще одной ВЫПОЛНИТЬ инструкции.
А исключение защиты PoOps : 79 признаются , когда программа пытается сохранить в место , чьи хранения ключа защиты не соответствует [NB 10] ключ PSW, или для извлечения из выборки защищенного места , чьи хранения ключа защиты не соответствует ключу PSW .
An адресации исключений PoOps : 79-80 признается , когда программа пытается получить доступ место хранения, которое в настоящее время не имеется. Обычно это происходит с адресом, выходящим за пределы возможностей машины, но это также может происходить на машинах, которые позволяют переводить блоки памяти в автономный режим.
A Спецификация исключений PoOps : 80 признается , когда команда имеет длину или зарегистрировать поле со значениями не разрешены операции, или когда он имеет адрес операнда , который не удовлетворяет требованиям к выравниванию опкода, например, инструкции LH с нечетный адрес операнда на машине без функции выравнивания байтов.
А исключение данных PoOps : 80 признается , когда инструкция десятичной указывает неправильные операнды, например, недостоверные данные, недопустимое перекрытие.
А с фиксированной точкой переполнения исключения PoOps : 80 признается , когда значащие биты теряются в фиксированной точке или арифметический сдвиг инструкции, кроме разрыва.
А с фиксированной точкой разделяй исключение PoOps : 80 признается , когда значащие биты теряются в точке разрыва фиксированной или Преобразовать в инструкции Binary.
А десятичное переполнение исключения PoOps : 80 признается , когда значащие цифры теряются в десятичной арифметической команде, кроме разрыва.
А десятичное деление исключение PoOps : 80 признается , когда значащие биты теряются в инструкции десятичного деления. Пункт назначения не изменился.
An переполнение показатель исключение PoOps : 80 признается , когда характеристика в плавающей точкой арифметической операции превышает 127 и фракцию , не равна нулю.
Показатель сгущенного исключения PoOps : 80 признается , когда характеристика в плавающей точкой арифметической операции является отрицательным , и фракция не равна нулю.
А значение исключения PoOps : 80 признается , когда доля в плавающей запятой добавить или вычесть операции равен нулю.
А с плавающей точкой деления исключений PoOps : 80.1 признается , когда доля в делителю операции с плавающей точкой деления равна нулю.
Прерывание вызова супервизора
PoOps прерывания вызова супервизора : 80.1–81 возникает в результате инструкции вызова супервизора ; система хранит биты 8-15 инструкции SVC как код прерывания.
Внешнее прерывание
Внешний PoOps : 81 [NB 11] прерывание происходит в результате определенных асинхронных событий. Биты 16-24 внешнего старого PSW установлены в 0, а один или несколько битов 24-31 установлены в 1.
Коды прерывания для внешних прерываний
Бит PSW
Тип внешнего прерывания
24
Таймер
25
Клавиша прерывания
26 год
Внешний сигнал 2 Предупреждение о неисправности на 360/65 [13] в мультисистемном режиме
27
Внешний сигнал 3 Системный вызов на 360/65 [13] в мультисистемном режиме
28 год
Внешний сигнал 4
29
Внешний сигнал 5
30
Внешний сигнал 6
31 год
Внешний сигнал 7
Прерывание проверки машины
PoOps : 82–83 прерывания проверки компьютера возникает для сообщения о необычных условиях, связанных с каналом или ЦП, о которых не может сообщить другой класс прерывания. Наиболее важным классом условий, вызывающих машинную проверку, является аппаратная ошибка, такая как ошибка четности, обнаруженная в регистрах или хранилище, но некоторые модели могут использовать ее для сообщения о менее серьезных условиях. Как код прерывания, так и данные, хранящиеся в области сканирования на уровне '80'x (128 десятичных знаков), зависят от модели.
Ввод, вывод
В этой статье ввод-вывод описывается с точки зрения ЦП. В нем не обсуждается канальный кабель или разъемы, но есть резюме в другом месте, а подробности можно найти в литературе IBM. [3]
Ввод / вывод осуществляется концептуально отдельным процессором, называемым каналом. Каналы имеют собственный набор инструкций и обращаются к памяти независимо от программы, запущенной на ЦП. На моделях меньшего размера (до 360/50 ) один механизм микрокода выполняет как программу ЦП, так и программу канала. На более крупных моделях каналы находятся в отдельных шкафах и имеют собственные интерфейсы для памяти. Канал может содержать несколько подканалов , каждый из которых содержит статус отдельной канальной программы. Подканал, связанный с несколькими устройствами, которые не могут одновременно иметь канальные программы, называется совместно используемым ; подканал, представляющий одно устройство, называется неразделенным .
В S / 360 есть три типа каналов:
Канал байтового мультиплексора может выполнять несколько CCW одновременно; обычно он используется для подключения медленных устройств, таких как считыватели карт и телекоммуникационные линии. Канал байтового мультиплексора может иметь несколько селекторных подканалов, каждый с единственным подканалом, которые ведут себя как низкоскоростные селекторные каналы.
Канал селектор имеет только один подканал, и , следовательно , способен только выполнение команды один канал одновременно. Обычно он используется для подключения быстрых устройств, которые не могут использовать канал блочного мультиплексора для приостановки соединения, например, накопителей на магнитной ленте.
Канал блочного мультиплексора может одновременно запускать несколько программ каналов, но одновременно может быть активна только одна. Блок управления может запросить приостановку в конце команды канала и может позже запросить возобновление. Это предназначено для устройств, в которых есть механическая задержка после завершения передачи данных, например, для поиска на DASD с подвижной головкой. Канал блочного мультиплексора был поздним дополнением к архитектуре System / 360; ранние машины имели только каналы байтового мультиплексора и селекторные каналы. Канал блочного мультиплексора был дополнительной функцией только на моделях 85 и 195. Канал блочного мультиплексора был также доступен на более поздних компьютерах System / 370 .
Концептуально периферийное оборудование подключается к S / 360 через блоки управления , которые, в свою очередь, подключаются через каналы. Однако архитектура не требует, чтобы блоки управления были физически разными, и на практике они иногда интегрируются с устройствами, которыми они управляют. Точно так же архитектура не требует, чтобы каналы были физически отделены от процессора, а меньшие модели S / 360 (через 360/50) имеют интегрированные каналы, которые отбирают циклы у процессора.
Периферийные устройства рассматриваются с 16-бит [12] NB адреса,. [2] : 89 упоминается как CuA или Cuu ; в этой статье будет использоваться термин cuu . Старшие 8 бит идентифицируют канал, пронумерованный от 0 до 6, [NB 3], а младшие 8 битов идентифицируют устройство на этом канале. У устройства может быть несколько адресов cuu .
Блокам управления назначается адресный диапазон «захвата». Например, CU может быть назначен диапазон 20-2F или 40-7F. Цель этого - помочь с подключением и установлением приоритетов для нескольких блоков управления к каналу. Например, канал может иметь три блока управления дисками на 20-2F, 50-5F и 80-8F. Не всем захваченным адресам необходимо назначить физическое устройство. Каждый блок управления также помечается как высокий или низкий приоритет на канале.
Выбор устройства осуществляется от канала к каждому блоку управления в том порядке, в котором они физически подключены к своему каналу. В конце цепочки процесс выбора продолжается в обратном направлении по направлению к каналу. Если выбор возвращается к каналу, то ни один блок управления не принял команду, и SIO возвращает код состояния 3. Блоки управления, отмеченные как High Priority, проверяют, что исходящий CUU находится в пределах их диапазона. Если да, значит, ввод-вывод был обработан. В противном случае выбор был передан следующему исходящему CU. Блоки управления, помеченные как Low Priority, проверяют входящие (возвращаемые) CUU в пределах их диапазона. Если да, то ввод / вывод обрабатывается. Если нет, то выбор передается следующему входящему CU (или каналу). Подключение трех блоков управления к каналу может быть физически -ABC и,если все отмечены как High, приоритет будет ABC. Если все отмечены как низкие, приоритет будет CBA. Если B был отмечен как High, а AC - низкий, то заказ был бы BCA. Продолжая эту цепочку рассуждений, первый из N контроллеров будет иметь приоритет 1 (высокий) или 2N-1 (низкий), второй приоритет 2 или 2N-2, третий приоритет 3 или 2N-3 и т. Д. Последний физически подключенный всегда будет приоритетом N.
Для ввода-вывода зарезервированы три поля хранения; двойное слово ввода / вывода старого PSW, двойное слово ввода / вывода нового PSW и полное слово адреса канала ( CAW ). Для выполнения операций ввода-вывода обычно требуется следующее:
инициализация CAW с помощью ключа хранения и адреса первой CCW
выдача инструкции Start I / O ( SIO ), которая указывает cuu для операции
ожидание [NB 13] прерывания ввода / вывода
обработка любых необычных условий, указанных в слове состояния канала ( CSW )
Канальная программа состоит из последовательности контрольных слов канала ( CCW ), связанных вместе (см. Ниже). Обычно канал выбирает CCW из последовательных двойных слов, но блок управления может указать каналу пропустить CCW и переход в канал ( TIC ) CCW может указать каналу начать выборку CCW из нового местоположения.
Существует несколько определенных способов выполнения команды канала. Некоторые из них позволяют каналу продолжать выборку CCW, в то время как другие завершают программу канала. В общем, если CCW не имеет установленного бита команды цепочки и не является TIC, то канал завершит операцию ввода-вывода и вызовет прерывание ввода-вывода, когда команда завершится. Определенные биты состояния блока управления подавляют сцепление.
Наиболее распространенные способы завершения команды - это исчерпание счетчика, когда данные цепочки не установлены, а блок управления сигнализирует о том, что больше не следует передавать данные. Если Suppress-Length-Indication (SLI) не установлен и одно из них происходит без другого, цепочка не разрешена. Наиболее распространенные ситуации, при которых цепочка подавляется, - это исключение модуля и проверка модуля. Однако комбинация unit-check и status-modifier не подавляет цепочку; скорее, он заставляет канал повторить попытку выполнения команды, повторно обрабатывая ту же CCW.
В дополнение к сигналу прерывания, отправляемому в ЦП, когда операция ввода-вывода завершена, канал также может отправлять ЦП прерывание, управляемое программой (PCI), во время выполнения программы канала, не прерывая операцию, и задержку. прерывание на стороне устройства после прерывания завершения ввода / вывода.
Статус канала
Эти условия обнаруживаются каналом и указываются в CSW . PoOps : 116–118
PoOps для прерывания с программным управлением : 116–117 указывает, что канал выбрал CCW с установленным битом PCI. Канал продолжает обработку; это прерывание просто информирует ЦП о прогрессе канала. Примером использования прерывания, управляемого программой, является функция «Выборка программы» контроля содержимого, посредством которой управляющая программа уведомляется о том, что запись управления / перемещения была прочитана. Чтобы гарантировать, что эта запись была полностью прочитана в оперативную память, инициируется «отключение битового вращения», одно из немногих, которое остается в управляющей программе. Удовлетворение вращения указывает на то, что запись управления / перемещения полностью находится в оперативной памяти и непосредственно предшествующая текстовая запись может быть перемещена. После перемещения NOP CCW изменяется на TIC, и программа канала продолжается. В этом случае,весь загрузочный модуль может быть прочитан и перемещен при использовании только одногоEXCP , и возможно только один оборот дисковода. PCI также имеет приложения для управления буфером метода доступа удаленной обработки.
Неправильная длина PoOps : 117 указывает, что передача данных для команды завершилась до того, как счетчик был исчерпан. Эта индикация подавляется, если установленбит Suppress-Length-Indication в CCW.
PoOps проверки программы : 117 указывает на одну из следующих ошибок
Ненулевые биты, где требуются нули
Недействительные данные или адрес CCW
CAW или TIC относится к TIC
PoOps проверки защиты : 117–118 указывает, что ключ защиты в CAW не равен нулю и не соответствует ключу защиты хранилища.
PoOps проверки данных канала : 118 указывает на ошибку четности во время передачи данных.
Проверка управления каналом PoOps : 118 указывает на неисправность канала, отличную от проверки данных канала или проверки управления интерфейсом .
PoOps проверки управления интерфейсом : 118 указывает на недопустимый сигнал в канале интерфейса блока управления.
PoOps проверки цепочки : 118 указывает на потерю данных во время цепочки данных.
Статус объекта
Эти условия представляются каналу блоком управления или устройством. PoOps : 113–116 В некоторых случаях они обрабатываются каналом, а в других случаях они указываются в CSW . Нет различия между состояниями, обнаруженными блоком управления, и состояниями, обнаруженными устройством.
Attention PoOps : 113 указывает на необычное состояние, не связанное с текущей канальной программой. Он часто указывает на какое-то действие оператора, такое как запрос ввода, и в этом случае ЦП будет отвечать, выдав команду типа чтения, чаще всего команду определения (04h), из которой можно вывести дополнительную информацию. Внимание - это особое состояние, которое требует поддержки конкретной операционной системы и для которого в операционной системе есть специальная таблица внимания [NB 14] с обязательно ограниченным количеством записей.
PoOps модификатора статуса : 113–114 (SM) указывает на одно из трех необычных условий.
Инструкция Test I / O была отправлена устройству, которое ее не поддерживает.
Состояние « Занято» относится к блоку управления, а не к устройству.
Устройство обнаружило условие, требующее пропуска против часовой стрелки. CCW с командой, для которой возможен модификатор состояния, обычно определяет цепочку команд, и в этом случае SM обрабатывается каналом и не вызывает прерывания.
Типичная программа канала, в которой встречается SM, выглядит следующим образом:
... Идентификатор поиска равен ТИЦ * -8 Прочитать данные
где TIC заставляет канал обновлять поиск до тех пор, пока устройство не укажет на успешный поиск, подняв SM.
PoOps конца блока управления : 114 указывает, что предыдущий статус занятости блока управления был сброшен.
Busy PoOps : 114–115 указывает, что устройство ( SM = 0) или блок управления ( SM = 1) заняты.
PoOps на конце канала : 115 указывает, что устройство завершило передачу данных для команды канала. Также может быть указание неправильной длины, если поле счетчика CCW исчерпано, в зависимости от значениябита Suppress-Length-Indication .
PoOps конца устройства : 115 указывает, что устройство завершило операцию и готово принять другую. DE может сигнализироваться одновременно с CE или может задерживаться.
PoOps проверки устройства : 115–116 указывает, что устройство или блок управления обнаружили необычные условия и что подробности можно получить, выполнив команду Sense.
Исключение модуля PoOps : 116 указывает, что устройство обнаружило необычное состояние, например конец файла.
Слово адреса канала
Полное слово адреса канала [2] : 99 (CAW) содержит 4-битный ключ защиты памяти и 24-битный адрес запускаемой канальной программы.
Командное слово канала
Channel Командное слово является двойным , содержащим следующее:
8-битный канал Command Code PoOps : 100
24-битный адрес PoOps : 100–101
5-битное поле флага PoOps : 99–100, 101–105
поле подсчета половинного слова без знака PoOps : 100–101
Коды команд CCW
2 или 4 бита младшего разряда определяют шесть типов операций, которые выполняет канал. [2] : 100, 105 Кодировка
Коды команд CCW
биты
Командование
**** 0000
Недопустимый в CCW, моделируется инструкцией процессора Test I / O (TIO).
ММММ 0100
Sense PoOps : 106–107
**** 1000
PoOps передачи в канале (TIC) : 107–108
ММММ 1100
Прочтите обратные предложения : 105–106
ММММ ММ01
Написать PoOps : 105
ММММ ММ10
Прочитать PoOps : 105
ММММ ММ11
Контрольные точки : 106–107
Значение старших шести или четырех битов, битов модификатора, M в таблице выше, зависит от типа подключенного устройства ввода-вывода, см., Например, DASD CKD CCW . Все восемь битов отправляются и интерпретируются в соответствующем блоке управления (или его функциональном эквиваленте).
Управление используется, чтобы вызвать изменение состояния устройства или блока управления, часто связанное с механическим движением, например перемоткой назад, поиском.
Sense используется для чтения данных, описывающих состояние устройства. Самым важным случаем является то, что когда команда завершается проверкой модуля, конкретную причину можно определить только путем выполнения Sense и изучения возвращенных данных. Команда Sense с нулевыми битами модификатора всегда действительна.
Примечательным отклонением от архитектуры является то, что DASD использует коды команд Sense для Reserve и Release вместо Control.
Флаги CCW
Флаги в CCW влияют на то, как он выполняется и завершается.
Флаги CCW
немного
флаг
эффект
32
CD
Цепь-данные
Продолжите работу, используя область хранения, определенную следующей CCW. PoOps : 101–103
33
CC
Цепная команда
Продолжайте использовать команду в следующей CCW. PoOps : 101, 103
34
SLI [NB 15]
Подавить индикацию длины
Продолжить программу канала после несоответствия подсчета. PoOps : 99–100
35 год
ПРОПУСКАТЬ
Пропускать
Не считывайте и не записывайте в хранилище. PoOps : 103–104
36
PCI
Программно-управляемое прерывание
Запросить прерывание при получении CCW. PoOps : 104–105
Слово состояния канала
Канал Слово состояния (РКС) [2] : 113-121 предоставляет данные , связанные с I / O прерывание.
Формат CSW
биты
поле
0-3
Ключевые PoOps : 119
4-7
0000
8-31
Командный адрес PoOps : 119
32-47
Статусные всплывающие сообщения : 113–118
32–39
Состояние объекта Условия PoOps : 113–116
Обнаруживается устройством или блоком управления
32
Внимание PoOps : 113
33
PoOps модификатора статуса : 113–114
34
Концевые PoOps блока управления : 114
35 год
Занятые люди : 114–115
36
PoOps на конце канала : 115
37
PoOps на конце устройства : 115
38
PoOps проверки объекта : 115–116
39
PoOps для исключения объекта : 116
40–47
Условия состояния канала PoOps : 116–118
Обнаружен каналом.
40
PoOps для прерывания с программным управлением : 116–117
41 год
PoOps неправильной длины : 117
42
PoOps проверки программы : 117
43 год
Проверка защиты PoOps : 117–118
44 год
PoOps проверки данных канала : 118
45
Проверка управления каналом PoOps : 118
46
Проверка управления интерфейсом PoOps : 118
47
PoOps проверки цепочки : 118
48-63
Подсчитать PoOps : 120
Поле Ключ защиты содержит ключ защиты от CAW в то время, когда операция ввода-вывода была инициирована для завершения ввода-вывода или прерываний PCI. PoOps : 119
Поле Command Address содержит адрес + 8 последней CCW, выбранной для завершения ввода-вывода или прерывания PCI. Однако есть 9 исключений PoOps . : 119
Статус поле содержит один байт состояния канала битов, указывающих условия , обнаруживаемое посредством канала PoOps , : 116-118 и один байт состояния устройства бит, указывающий условия , обнаруженной блоком ввода / вывода PoOps . : 113–116 Нет различий между состояниями, обнаруженными блоком управления, и состояниями, обнаруженными устройством.
Остаточный граф является половиной слово , которое дает число байтов в области , описываемой КОО, которые не были переданы или из канала PoOps . : 120 Разница между счетом в CCW и остаточным счетом дает количество переданных байтов.
Органы управления оператора
операторское управление
В архитектуре System / 360 указано наличие нескольких общих функций, но не указаны средства их реализации. Это позволило IBM использовать различные физические средства, например циферблат, клавиатуру, кнопку, ролик, изображение или текст на ЭЛТ, для выбора функций и значений на разных процессорах. Любая ссылка на клавишу или переключатель должна рассматриваться как относящаяся, например, к выбору светового пера, эквивалентной последовательности клавиатуры.
Сброс системы отправляет сигнал сброса на каждый канал ввода / вывода и очищает состояние процессора; все ожидающие прерывания отменяются. Сброс системы не гарантирует исправления ошибок четности в регистрах общего назначения, регистрах с плавающей запятой или хранилище. Сброс системы не сбрасывает состояние общих устройств ввода-вывода.
PoOps начальной загрузки программы (IPL) : 123 - это процесс загрузки программы, когда в хранилище нет загрузчика, обычно из-за того, что машина только что была включена или для загрузки альтернативной операционной системы. [2] : 123 Этот процесс иногда называют загрузкой .
В рамках IPL оператор имеет возможность указать 12-битный [NB 3] адрес устройства, обычно с тремя дисками, как показано на чертеже органов управления оператора. Когда оператор [NB 16] выбирает функцию загрузки , система выполняет сброс системы , отправляет команду канала Read IPL [NB 17] на выбранное устройство, чтобы считать 24 байта в ячейки 0-23, и запускает канал. получение CCWs в точке 8; эффект такой, как если бы канал получил CCW длиной 24, адресом 0 и флагами, содержащими Command Chaining + Suppress Length Indication. По завершении операции система сохраняет адрес ввода / вывода в полуслове в ячейке 2 и загружает PSW из ячейки 0.
Первоначальная загрузка программы обычно выполняется с магнитной ленты, устройства чтения карт или дискового накопителя. Обычно операционная система загружалась с диска; IPL с ленты или карт использовалась только для диагностики или для установки операционной системы на новый компьютер.
Аварийный выключатель PoOps : 124 (аварийное отключение питания, EPO) посылает сигнал EPO на каждый канал ввода / вывода, затем отключает питание процессора. Поскольку EPO обходит обычную последовательность отключения питания, это может привести к повреждению, и в элементе управления EPO есть механическая защелка, гарантирующая, что инженер заказчика проверит оборудование, прежде чем пытаться снова включить его.
Power on PoOps : 124 включает все компоненты процессорного комплекса и выполняет сброс системы.
Power off PoOps : 124 инициирует упорядоченную последовательность отключения питания. Хотя содержимое хранилища сохраняется, связанные ключи хранилища могут быть потеряны.
В Прерывании ключевой PoOps : 124 вызывает внешнее прерывание с 25 бит в наборе внешнего Старого PSW.
Подождите света PoOps : 124 указывает на то, что ЗУ имеет бит 14 (ожидание) набор; процессор временно останавливается, но возобновляет работу при возникновении условия прерывания.
Индикатор ручного режима PoOps : 124 указывает на то, что ЦП находится в остановленном состоянии.
Система света PoOps : 124 указывает на то, что счетчик работает, либо из - за активности процессора или из - за I / O активности канала.
Тестовые свет PoOps : 124 указывает на то, что некоторые элементы управления оператора активны, когда определенные объекты, например, ИНСТРУКЦИЯ ПО ШАГ, были использованы в Diagnose инструкции или когда существуют аномальные температурные условия. Детали зависят от модели.
Индикатор нагрузки PoOps : 124 включается при IPL и внешнем запуске. Он выключается загрузкой PSW из местоположения 0 по завершении процесса загрузки.
В блок нагрузки PoOps : 124-125 управления обеспечивают крайний правый 11 [18] NB битов устройства , с которого выполнить IPL.
Команда Load Key PoOps : 125 запускает последовательность IPL .
В Приставка Select Key Switch PoOps : 125 выбирает ли IPL будет использовавшие первичный префикс или альтернативный префикс.
System-Reset Key PoOps : 125 Инициирует Сброс системы .
В Stop Key PoOps : 125 переводит процессор в остановленном состоянии; канальные программы продолжают работать, а условия прерывания остаются отложенными.
В Частота переключения PoOps : 125 определяет режим , в котором процессор выбирает команды. Архитектура определяет два режима:
ПРОЦЕСС
ИНСТРУКЦИЯ ШАГ
В Start Key PoOps : 125 инициированной инструкция выборка в соответствии с настройкой на переключателе скорости .
В Storage-переключатель выбора PoOps : 126 определяет тип ресурса , доступ к магазину Key и Display Key . Архитектура определяет три варианта выбора:
Основное хранилище
Общие регистры
Регистры с плавающей запятой
Переключатели адреса PoOps : 126 указать адрес или номер регистра для магазина Key , отображение ключа , а на некоторых моделях Set IC Key ..
Данные коммутаторы PoOps : 126 задающие данные для магазина Key и, на некоторых моделях Set IC Key .
Магазин Key PoOps : 126 сохраняет значение в данных переключатели , как указано в Storage-переключатель выбора и Переключатели адреса .
В Display Key PoOps : 126 отображает значение , заданное для хранения-переключатель выбора и переключатели адресов .
Набор IC = PoOps : 126 комплектов инструкция адресная часть PSW из данных переключателей или Переключатели адреса , в зависимости от модели.
В Адресном Сравните Переключатели PoOps : 126 выбрать режим сравнения и что сравнивается. Остановка при сравнении адресов инструкций присутствует на всех моделях, но остановка при сравнении адресов данных присутствует только на некоторых моделях.
Alternate-Приставка Light PoOps : 126 включен , когда триггер префикс в альтернативном состоянии.
Дополнительные особенности
Выровненные по байтам операнды
На некоторых моделях были ослаблены требования к согласованию для некоторых инструкций состояния проблемы. Механизма для отключения этой функции нет, и программы, зависящие от получения программы проверки типа 6 (выравнивание) по этим инструкциям, должны быть изменены.
Десятичная арифметика
Функция десятичной арифметики предоставляет инструкции, которые работают с упакованными десятичными данными. Упакованное десятичное число состоит из 1-31 десятичных цифр, за которыми следует 4-битный знак. Все десятичные арифметические инструкции, кроме PACK и UNPACK, генерируют исключение данных, если цифра не находится в диапазоне 0-9 или знак не находится в диапазоне AF.
Прямое управление
Функция Direct Control PoOps : 17.1 обеспечивает шесть внешних сигнальных линий и 8-битный путь передачи данных в / из хранилища. [14]
Арифметика с плавающей точкой
Функция арифметики с плавающей запятой предоставляет 4 64-битных регистра с плавающей запятой и инструкции для работы с 32- и 64-битными шестнадцатеричными числами с плавающей запятой. 360/85 и 360/195 также поддерживают 128-битные числа с плавающей запятой повышенной точности.
Интервальный таймер
Если установлена функция интервального таймера [2] : 17.1 , процессор уменьшает слово в позиции 80 ('50'X) через равные промежутки времени; архитектура не определяет интервал, но требует, чтобы вычитаемое значение выглядело так, как если бы 1 была вычтена из бита 23 300 раз в секунду. Меньшие модели уменьшались с той же частотой (50 Гц или 60 Гц), что и источник переменного тока, но большие модели имели функцию таймера с высоким разрешением. Процессор вызывает внешнее прерывание, когда таймер обнуляется.
Многосистемная работа
Многосистемная работа PoOps : 17.1–18 - это набор функций для поддержки многопроцессорных систем, например, прямое управление , прямое перемещение адреса (префикс).
Защита хранения
Если установлена функция защиты хранилища [2] : 17-17.1 , то есть 4-битный ключ хранилища, связанный с каждым 2048-байтовым блоком хранилища, и этот ключ проверяется при сохранении в любой адрес в этом блоке любым ЦП. или канал ввода / вывода. Ключ ЦП или канала, равный 0, отключает проверку; ненулевой ключ ЦП или канала позволяет хранить данные только в блоке с совпадающим ключом.
Защита хранилища использовалась для предотвращения записи дефектным приложением в хранилище, принадлежащее операционной системе или другому приложению. Это позволило проводить испытания одновременно с производством. Поскольку длина ключа составляла всего четыре бита, максимальное количество различных приложений, которые можно было запускать одновременно, составляло 15.
Дополнительной опцией, доступной на некоторых моделях, была защита от извлечения. Это позволило операционной системе указать, что блоки были защищены как от извлечения, так и от сохранения.
Отклонения и дополнения
System / 360 Model 20 радикально отличается и не должны рассматриваться как S / 360.
В System / 360 Model 44 отсутствуют определенные инструкции, но функция позволяет моделировать отсутствующие инструкции в скрытой памяти, что позволяет использовать стандартные операционные системы и приложения S / 360.
Некоторые модели имеют функции, расширяющие архитектуру, например, инструкции эмуляции, разбиение на страницы, а некоторые модели имеют незначительные отклонения от архитектуры. Примеры включают:
Мультисистемная функция S / 360-65, которая изменяет поведение функции прямого управления и инструкции Set System Mask (SSM). [13]
В System / 360 Model 67-2 были аналогичные, но несовместимые изменения. [11]
Некоторые отклонения послужили прототипами для особенностей архитектуры S / 370 .
Смотрите также
Ключ защиты памяти
Примечания
^ В два раза больше, чем у более поздней системы / 370
^ Спецификация общего регистра 0 дает нулевой базовый адрес, а не содержимое регистра.
^ a b c На процессоре, который соответствует архитектуре S / 360, наивысший номер канала равен 6. Одиннадцати битов достаточно для идентификации cuu, а семи битов достаточно для обеспечения маскировки прерываний ввода-вывода. Однако на 360 / 67-2 с двумя контроллерами каналов 2846 каналы пронумерованы 0-6 и 8-14; [11] : 15 аналогично, 360/195 имел функцию расширенного канала [10] : 21, но пронумеровал каналы от 0 до 13. [10] : 25 прерываний ввода / вывода для Channel Controller 1 на 360 / 67-2 были маскируется с помощью регистров управления, а 360/195 использует бит 7 (канал 6) системной маски в качестве бита суммарной маски для каналов 6 и выше.Прерывания из более чем семи каналов PoOps : 121.4 описывает суммарное маскирование для дополнительных каналов, но другой текст в Принципах работы по-прежнему ссылается на ограничение в 7 каналов. Стандартное программное обеспечение поддерживает каналы 0-F.
^ Поскольку разработка S / 360 произошла одновременно с разработкой ASCII, поддержка ASCII IBM не соответствовала стандарту, который в конечном итоге был принят.
^ В литературе по S / 360 не используются термины неисправность или ловушка.
^ a b На 360/91, [12] : 15 360/95 и 360/195 [10] : 14 a Программа может прерываться из-за нескольких неточных исключений. ILC в программном старом PSW равен 0, биты 26-31 равны 0, а биты 16-27 представляют собой маску, указывающую, какие исключения произошли; нет положения о том, чтобы сообщать о нескольких случаях одного и того же исключения. Сообщение о множественных неточных исключениях не является частью архитектуры S / 360.
^ a b c d Существует 17 возможных исключений на 360/67, [11] : 17, но исключение страницы и исключение сегмента не являются частью архитектуры S / 360; аналогично код прерывания 18 ('0012'X) на мультипроцессоре 360/65 не является частью архитектуры S / 360.
^ Бит спецификации не используется для неточных прерываний на 360/195.
^ a b Не используется на 360/91
^ Ключ PSW, равный 0, соответствует любому ключу хранилища.
^ Несмотря на то, что истечение таймера является внутренним событием, оно вызывает внешнее прерывание, и по этой причине это прерывание обычно называется таймером / внешним прерыванием.
^ Из-за ограничений на количество каналов программное обеспечение S / 360 и ранние версии S / 370 использовали только 12 бит для хранения адресов устройств.
^ Но продолжая работу, не имеющую отношения к делу.
^ ОС использует индекс внимания в блоке управления блоком (UCB) в качестве индекса в таблице внимания.
^ Также известен как подавление индикации неправильной длины (SILI)
^ Или эквивалентное автоматизированное средство.
^ Читать со всеми нулевыми битами модификатора
^ Существует несоответствие в том, что прерывания из более чем семи каналов PoOps : 121.4 позволяет использовать больше каналов.
использованная литература
S360
Принципы работы IBM System / 360 . Системная справочная библиотека (восьмое изд.). IBM. Сентябрь 1968 г. A22-6821-7.
^ IBM (1964), Принципы работы IBM System / 360 (PDF) , Первое издание, A22-6821-0
^ a b c d e f g h i j k IBM (сентябрь 1968 г.), Принципы работы IBM System / 360 (PDF) , восьмое издание, A22-6821-7 В редакции IBM (12 мая 1970 г.), там же. , GN22-0354и IBM (8 июня 1970 г.), там же. , GN22-0361
^ a b IBM, IBM System / 360 I / O Interface Channel to Control Unit Original Equipment Manufacturers 'Information (PDF) , Fifth Edition, A22-6843-3.
^ S360 , стр. 15, Слово состояния программы .
^ S360 , с 15 -. & # 32, 16, прерывание .
^ S360 , стр. 77, прерывания .
^ Корпорация IBM (1974). Обзор системы IBM System / 360 (PDF) . п. 3-3 . Проверено 16 июля 2017 года .
^ Справочное руководство UNIVAC III Data Processing System (PDF) , Sperry Rand Corporation, 1962, UT-2488
^ a b IBM (июнь 1968 г.), Функциональные характеристики IBM System / 360 Model 85 (PDF) , ВТОРОЕ ИЗДАНИЕ, A22-6916-1
^ a b c d e IBM (август 1970 г.), Функциональные характеристики IBM System / 360 Model 195 (PDF) , второе издание, GA22-6943-1
^ Б с д е е IBM (февраль 1972 г.), IBM System / 360 Model 67 Функциональные характеристики (PDF) , третье издание, GA27-2719-2
^ a b IBM (1968-03-18), Функциональные характеристики IBM System / 360 Model 91 (PDF) , третье издание, A22-6907-2
^ a b c d e IBM (сентябрь 1968 г.), «Приложение A. Многопроцессорная система», Функциональные характеристики IBM System / 360 Model 65 (PDF) , четвертое издание, стр. 30–34, A22-6884-3
^ IBM, IBM System / 360 Функции прямого управления и внешних прерываний Информация производителей оригинального оборудования , третье издание, A22-6845-2
дальнейшее чтение
Прасад, Н.С. (1989). Мэйнфреймы IBM . Макгроу-Хилл. ISBN 0070506868. - Глава 3 (стр. 41–110) описывает архитектуру System / 360.
внешние ссылки
Введение в архитектуру IBM System / 360 (текст для учащихся)