Архитектура IBM System / 360


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Архитектура IBM System / 360 является независимой от модели архитектурой для всей линейки мэйнфреймов S / 360 , включая, помимо прочего, архитектуру набора команд . Элементы архитектуры задокументированы в руководствах IBM System / 360 Principles of Operation [1] [2] и « Канал интерфейса ввода-вывода IBM System / 360 к информации производителей оригинального оборудования» . [3]

Функции

Архитектура 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 описывает (среди прочего) адрес текущей выполняемой инструкции, код условия и маски прерывания.

Загрузить слово состояния программы ( LPSW ) - это привилегированная инструкция, которая загружает слово состояния программы (PSW), включая программный режим, ключ защиты и адрес следующей инструкции, которая должна быть выполнена. LPSW чаще всего используется для «возврата» из прерывания путем загрузки «старого» PSW, связанного с классом прерывания. Другие привилегированные инструкции (например, SSM, STNSM, STOSM, SPKA и т. Д.) Доступны для управления подмножествами PSW без прерывания или загрузки PSW; и одна непривилегированная инструкция (SPM) доступна для управления маской программы.

Система прерывания

Архитектура [2] : 77–83  определяет 5 классов прерывания . Прерывание - это механизм автоматического изменения состояния программы; он используется как для синхронных [NB 5], так и для асинхронных событий.

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

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

Прерывание проверки машины

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  Кодировка

Значение старших шести или четырех битов, битов модификатора, M в таблице выше, зависит от типа подключенного устройства ввода-вывода, см., Например, DASD CKD CCW . Все восемь битов отправляются и интерпретируются в соответствующем блоке управления (или его функциональном эквиваленте).

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

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

Примечательным отклонением от архитектуры является то, что DASD использует коды команд Sense для Reserve и Release вместо Control.

Флаги CCW

Флаги в CCW влияют на то, как он выполняется и завершается.

Слово состояния канала

Канал Слово состояния (РКС) [2] : 113-121  предоставляет данные , связанные с I / O прерывание.

  • Поле Ключ защиты содержит ключ защиты от 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 .

Смотрите также

  • Ключ защиты памяти

Примечания

  1. ^ В два раза больше, чем у более поздней системы / 370
  2. ^ Спецификация общего регистра 0 дает нулевой базовый адрес, а не содержимое регистра.
  3. ^ 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.
  4. ^ Поскольку разработка S / 360 произошла одновременно с разработкой ASCII, поддержка ASCII IBM не соответствовала стандарту, который в конечном итоге был принят.
  5. ^ В литературе по S / 360 не используются термины неисправность или ловушка.
  6. ^ a b На 360/91, [12] : 15  360/95 и 360/195 [10] : 14  a Программа может прерываться из-за нескольких неточных исключений. ILC в программном старом PSW равен 0, биты 26-31 равны 0, а биты 16-27 представляют собой маску, указывающую, какие исключения произошли; нет положения о том, чтобы сообщать о нескольких случаях одного и того же исключения. Сообщение о множественных неточных исключениях не является частью архитектуры S / 360.
  7. ^ a b c d Существует 17 возможных исключений на 360/67, [11] : 17,  но исключение страницы и исключение сегмента не являются частью архитектуры S / 360; аналогично код прерывания 18 ('0012'X) на мультипроцессоре 360/65 не является частью архитектуры S / 360.
  8. ^ Бит спецификации не используется для неточных прерываний на 360/195.
  9. ^ a b Не используется на 360/91
  10. ^ Ключ PSW, равный 0, соответствует любому ключу хранилища.
  11. ^ Несмотря на то, что истечение таймера является внутренним событием, оно вызывает внешнее прерывание, и по этой причине это прерывание обычно называется таймером / внешним прерыванием.
  12. ^ Из-за ограничений на количество каналов программное обеспечение S / 360 и ранние версии S / 370 использовали только 12 бит для хранения адресов устройств.
  13. ^ Но продолжая работу, не имеющую отношения к делу.
  14. ^ ОС использует индекс внимания в блоке управления блоком (UCB) в качестве индекса в таблице внимания.
  15. ^ Также известен как подавление индикации неправильной длины (SILI)
  16. ^ Или эквивалентное автоматизированное средство.
  17. ^ Читать со всеми нулевыми битами модификатора
  18. ^ Существует несоответствие в том, что прерывания из более чем семи каналов PoOps :  121.4 позволяет использовать больше каналов.

использованная литература

S360
Принципы работы IBM System / 360 . Системная справочная библиотека (восьмое изд.). IBM. Сентябрь 1968 г. A22-6821-7.
  1. ^ IBM (1964), Принципы работы IBM System / 360 (PDF) , Первое издание, A22-6821-0
  2. ^ 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
  3. ^ a b IBM, IBM System / 360 I / O Interface Channel to Control Unit Original Equipment Manufacturers 'Information (PDF) , Fifth Edition, A22-6843-3.
  4. ^ S360 , стр. 15, Слово состояния программы .
  5. ^ S360 , с 15 -. & # 32, 16, прерывание .
  6. ^ S360 , стр. 77, прерывания .
  7. ^ Корпорация IBM (1974). Обзор системы IBM System / 360 (PDF) . п. 3-3 . Проверено 16 июля 2017 года .
  8. ^ Справочное руководство UNIVAC III Data Processing System (PDF) , Sperry Rand Corporation, 1962, UT-2488
  9. ^ a b IBM (июнь 1968 г.), Функциональные характеристики IBM System / 360 Model 85 (PDF) , ВТОРОЕ ИЗДАНИЕ, A22-6916-1
  10. ^ a b c d e IBM (август 1970 г.), Функциональные характеристики IBM System / 360 Model 195 (PDF) , второе издание, GA22-6943-1
  11. ^ Б с д е е IBM (февраль 1972 г.), IBM System / 360 Model 67 Функциональные характеристики (PDF) , третье издание, GA27-2719-2
  12. ^ a b IBM (1968-03-18), Функциональные характеристики IBM System / 360 Model 91 (PDF) , третье издание, A22-6907-2
  13. ^ a b c d e IBM (сентябрь 1968 г.), «Приложение A. Многопроцессорная система», Функциональные характеристики IBM System / 360 Model 65 (PDF) , четвертое издание, стр. 30–34, A22-6884-3
  14. ^ IBM, IBM System / 360 Функции прямого управления и внешних прерываний Информация производителей оригинального оборудования , третье издание, A22-6845-2

дальнейшее чтение

  • Прасад, Н.С. (1989). Мэйнфреймы IBM . Макгроу-Хилл. ISBN 0070506868. - Глава 3 (стр. 41–110) описывает архитектуру System / 360.

внешние ссылки

  • Введение в архитектуру IBM System / 360 (текст для учащихся)
Источник « https://en.wikipedia.org/w/index.php?title=IBM_System/360_architecture&oldid=1038410318#LPSW »