Основными компонентами z/Architecture [2.1, 2.2] серверов zSeries на уровне программистской модели являются (рис. 2.1):
Различные генерации моделей z/Architecture отличаются качественными и количественными характеристиками перечисленных компонентов. Основными направлениями развития архитектуры являлись: увеличение производительности, распараллеливание вычислительного процесса, расширение адресного пространства памяти, увеличение пропускной способности подсистемы ввода-вывода, повышение надежности и др. При этом на всем протяжении развития z/Architecture сохранялась полная
Процессоры разных генераций отличаются физической реализацией, быстродействием и другими параметрами, но имеют единую программистскую модель, являющуюся базовой платформой программной совместимости всех моделей. Основу такой модели составляет универсальная регистровая модель и единая система команд процессоров. По мере развития регистровая модель расширялась путем введения новых и расширения разрядности использовавшихся ранее регистров. Пополнялся и список команд, реализуемых процессором, с сохранением программной совместимости "снизу-вверх". В зависимости от моделей процессор дополнялся криптографическими и другими возможностями, встроенными как на уровне команд, так и в виде внешнего сопроцессора.
Каждый из процессоров z/Architecture взаимодействует с основной памятью, где хранятся команды и данные исполняемых программ. Подключение процессоров к памяти выполняется по симметричной схеме, соответствующей SMP-архитектуре. Расширенная память также программно доступна для процессоров и используется для буферизации страниц при обмене с дисковой памятью. Ко всем процессорам может быть подключен внешний таймер для согласованного отсчета времени.
(рис 2.1) Базовая модель систем zSeriesВзаимодействие процессоров и памяти с периферийными устройствами осуществляется через канальную подсистему ввода-вывода, включающую канальные пути разного типа. Основными типами канальных путей являются различные последовательные каналы, параллельный канал, аналогичный использовавшимся в системах S/360, S/370, а также
Регистровая модель процессора z/Architecture на современном этапе развития [2.1] включает следующие группы регистров (рис. 2.2):
Регистры GR предназначены для хранения операндов и адресов основных арифметических, логических и других операций. Каждый из регистров имеет разрядность 64 бита и адресуется в командах 4-разрядным полем R. В зависимости от реализуемой модели используются 32 (биты 32-63) или 64 разряда регистров. На рис. 2.2 показан пример использования модели для архитектуры System/370. Два регистра GR с соседними адресами могут служить для хранения операндов удвоенной длины 64 или 128 бит (см. дуги на рис. 2.2). В первом случае объединяются биты 32 $$\div$$ 63, а во втором - биты 0 $$\div$$ 63 соседних регистров. Удвоенный операнд начинается с четного адреса, по которому размещается старшая половина операнда. Часть команд со сложными способами адресации используют регистры GR в качестве базовых и индексных регистров. Четырехразрядные поля B и Х в командах определяют, соответственно, один из 15 базовых или индексных регистров (при В=0 базирование, а при Х=0 индексация не используются). В некоторых командах применение регистров GR подразумевается без явного указания их адресов в полях команды.
Регистры
(рис 2.2) Регистровая модель z/ArchitectureШестнадцать регистров доступа AR применяются в механизме динамического преобразования адресов для хранения косвенной ссылки на используемое адресное пространство. В режиме адресации с использованием AR (
Управляющие регистры CR адресуются как полем R, так и по умолчанию в различных командах, и используются при исполнении команд и функций процессора. Управляющие поля и отдельные биты регистров закреплены за конкретными средствами, такими как динамическое преобразование адресов, регистрация программных событий и др. и содержат информацию, необходимую для функционирования таких средств. С помощью команд загрузки и чтения можно обратиться как к отдельному регистру, так и к группе регистров.
Регистр слова состояния программы
Регистр префикса используется для хранения кода префикса, применяемого в механизме префиксации на этапе преобразования реального адреса в абсолютный.
Регистры таймера и компаратора времени, а также программируемый регистр часов используются в процедурах, связанных с отсчетом времени в таймере и компараторе часов CP, а также во внешних часах.
Команда, исполняемая процессором, в общем случае включает код операции (code of operation -
Разрядности операндов, используемых в командах z/Architecture, определяются кодом операции и дополнительными управляющими кодами в регистрах процессора. Для использования в одной команде операндов разной разрядности в список команд z/Architecture включены дополнительные команды. Биты и байты в операндах нумеруются слева направо от 0. Бит 0 соответствует старшему разряду.
Непосредственные операнды являются 8-, 16- или 32-разрядными константами, задаваемыми полем I в адресной части команды.
Регистровые операнды могут находиться в одном из программно доступных регистров процессора и либо прямо адресуются четырехразрядным адресом в команде (поле R), либо подразумеваются неявно кодом операции. Форматы регистровых операндов определяются типом операции и разрядностью используемых регистров.
Операнды в памяти могут включать один или более байт, адресуемых целыми неотрицательными числами 0, 1, 2... Байты из группы соседних ячеек образуют многобайтные поля или операнды, адресуемые младшим из адресов. В архитектуре zSeries используются операнды фиксированной и переменной длины. Для представления операндов фиксированной длины используются форматы байта, полуслова (2 байта), слова (4 байта), двойного слова (8 байт) и учетверенного слова (16 байт), которые целесообразно с точки зрения производительности размещать в полях ОП, имеющих определенные граничные адреса, кратные степени 2 (табл. 2.1). Операнды переменной длины адресуются младшим из группы занимаемых адресов с указанием длины (числа байт) в команде либо непосредственно (4- или 8-разрядное поле L), либо в виде ссылки на регистр GR, содержащий код длины.
| Операнды | Адреса памяти $$\to$$ | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Байт | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| Полуслово (2 байта) | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | |||||||||
| Слово (4 байта) | 0 | 4 | 8 | 12 | 16 | |||||||||||||
| Двойное слово (8 байт) | 0 | 8 | 16 | |||||||||||||||
| Учетверенное слово (16 байт) | 0 | 16 | ||||||||||||||||
В командах z/Architecture допускается использование 24-, 31-разрядных адресов, размещаемых в формате слова, и 24-, 31-, 64-разрядных адресов - в формате двойного слова (табл. 2.2). Разрядность адреса определяется битами 31,32 в слове состояния программы
| а) архитектура с 24-, 31-разрядными адресами | ||||
0 |
8 31 |
|||
| 24-разрядный адрес | ||||
|---|---|---|---|---|
| 31-разрядный адрес | ||||
| б) z/Architecture | ||
0 |
33 |
41 63 |
| 24-разрядный адрес | ||
|---|---|---|
| 31-разрядный адрес | ||
| 64-разрядный адрес | ||
Форматы команд z/Architecture приведены на рис 2.3. Назначение используемых в командах полей пояснено в таблице 2.3. Команды имеют длину 1, 2 или 3 полуслова и относятся к одному из 21 форматов: E, I, RR, RRE, RRF, RX, RXE, RXF, RXY, RS, RSY,
| Старшие биты |
Длина команды (число полуслов) |
|---|---|
| 00 | 1 |
| 01 | 2 |
| 10 | 2 |
| 11 | 3 |
z/Architectuire включает форматы всех команд предшествующих архитектур с одним или двумя байтами
(рис 2.3) Форматы команд Z900| Код операции команды, определяющий тип операции | |
|---|---|
| 1, 2, 3, 4 | Индексы, указывающие на 1, 2, 3 и 4 операнды команды |
| R1, R2, R3 | Номера регистров |
| B1, B2, B4 | Номера базовых регистров |
| X2 | Номера индексных регистров |
| D1, D2, D4, DL1, DH1, DL2, DH2 | Поля смещения (L - младшая часть смещения, H - старшая часть смещения) |
| M1, M3, M4 | Поля маски |
| I, I2 | Поля непосредственных операндов |
| L, L1, L2 | Поля длины операндов |
Генерация адресов операндов (АО), размещенных в памяти, основана на косвенно-регистровой адресации, когда адрес берется из регистра, заданного полем R команды, либо на вычислении путем сложения содержимого базового (B), индексного (X) регистров и смещения D:
АО = (B) + (X) + D
Разрядность базового и индексного регистров определяется типом команд и способом адресации. Разрядность смещения равна 12 либо 20 (расширенный формат). В последнем случае используются два поля смещения: DL - младшие 12 бит, DH - старшие 8 бит. При суммировании база и индекс рассматриваются как целые двоичные числа, 12-разрядное смещение является целым без знака, а 20-разрядное смещение расширенного формата задано как целое со знаком. Нулевые значения номеров базового B и индексного X регистров означают отсутствие соответствующих им компонентов при формировании адреса. Если один и тот же регистр используется в команде для формирования адреса и в качестве приемника операнда, первым выполняется формирование адреса. При формировании адреса с использованием 64-разрядного формата коды базы, индекса и смещения меньшей разрядности дополняются в старших разрядах нулями, либо значениями знакового разряда. При формировании адресов с разрядностью 32, 24 старшие биты используемых регистров сохраняются без изменения.
Список команд z/Architecture, сгруппированных по классам, приведен в Приложении 2. Для большинства команд дано краткое описание выполняемой операции и ее характеристики. Подробное описание команд можно найти в [2.1].
В системе команд z/Architecture предусмотрено пять классов операций:
Класс основных команд включает команды z/Architecture с операциями над числами с фиксированной точкой. Предусмотрено использование операций над целыми числами со знаком и без знака, логическими данными. Для представления чисел применяются, в основном, дополнительные, а также
Операции над десятичными числами выделены в особый класс. Десятичные команды выполняют операции десятичной арифметики и преобразований над десятичными операндами. Десятичные операнды размещаются всегда в основной памяти и поэтому большинство десятичных команд имеют формат SS (память-память). Длина операндов определяется полем L в командах. Используются две формы представления десятичных чисел: зонный и упакованный форматы (табл. 2.4). В зонном формате старшие четыре бита каждого байта операнда содержат код зоны, а младшие четыре бита содержат двоично-десятичную цифру.
| а) Зонный формат: | ||||||||
| зона | цифра | зона | цифра | ... | зона | цифра | зона/знак | цифра |
| б) Упакованный формат: | ||||||||
| цифра | цифра | цифра | цифра | ... | цифра | цифра | цифра | знак |
| с) Кодирование: | ||||||||
| коды | значения | |||||||
|---|---|---|---|---|---|---|---|---|
| 0000 $$\div$$ 1001 | цифры | |||||||
| 1010, 1100, 1110 | знак "плюс" | |||||||
| 1011, 1101 | знак "минус" | |||||||
| 1111 | зона, знак "плюс" |
Знак числа задается вместо зоны в крайнем правом байте операнда. Зонный формат может быть частью буквенно-цифровой строки с длиной до 256 байт, он используется для ввода-вывода и редактирования десятичной информации. В упакованном формате каждый байт содержит две цифры, а знак задается вместо крайней правой цифры. Упакованный формат имеет длину до 16 байт и используется для выполнения операций десятичной арифметики.
Команды с плавающей точкой используют два типа представления операндов в зависимости от применяемого основания характеристики:
| Форматы HFP | 0 |
7 |
31 |
63 |
64 |
70 |
128 |
|||
| S | Порядок | Мантисса (6 цифр) | ||||||||
| S | Порядок | Мантисса (14 цифр) | ||||||||
| S | Порядок | Мантисса (старшие 14 цифр) | S | Порядок | Мантисса (младшие 14 цифр) | |||||
| Не использ. | ||||||||||
| Форматы |
0 |
8 |
11 |
15 |
31 |
63 |
128 |
|||
| S | Порядок | Мантисса (23 бита) | ||||||||
| S | Порядок | Мантисса (52 бита) | ||||||||
| S | Порядок | Мантисса (112 бит) | ||||||||
Формат операндов может быть коротким (32 бита), длинным (64 бита) и расширенным (128 бит). Форматы чисел с плавающей точкой двух типов представлены на табл. 2.5. Числа состоят из трех компонентов: знака числа, порядка со знаком и мантиссы. Знак числа определяется битом S (S=0 - число положительное, S=1 - число отрицательное). Порядок определяет степень, в которую возводится основание, равное 16 для HFP чисел и 2 для
Параметры и диапазоны представления чисел в форматах
| Параметры и диапазоны | Короткий формат (32 бита) | Длинный формат (64 бита) | Расширенный формат (128 бит) |
|---|---|---|---|
| Разрядность порядка | 8 | 11 | 15 |
| Разрядность мантиссы | 23 | 52 | 112 |
| Максимальный порядок | 127 | 1023 | 16383 |
| Минимальный порядок | -126 | -1022 | -16382 |
| Смещение порядка | 127 | 1023 | 16383 |
| Модуль максимального числа | (1-2-24)x2128 $$\approx$$ 3.4x1038 | (1-2-53)x21024 $$\approx$$ 1.8x10308 | (1-2-113)x216384 $$\approx$$ 1.2x104932 |
| Модуль минимального числа (нормализованного) | 1.0x2-126 $$\approx$$ 1.2x10-38 | 1.0x2-1022 $$\approx$$ 2.2x10-308 | 1.0x2-16382 $$\approx$$ 3.4x10-4932 |
| Наименьшее представляемое число (ненормализованное) | 1.0x2-149 $$\approx$$ 1.4x10-45 | 1.0x2-1074 $$\approx$$ 4.9x10-324 | 1.0x2-16494 $$\approx$$ 6.5x10-4966 |
| Тип FP | Короткий формат | Длинный формат | Расширенный формат | |
|---|---|---|---|---|
| Максимальные значения | $$\pm$$ 3.4x10+38 | $$\pm$$ 1.81x0+308 | $$\pm$$ 1.8x10+4932 | |
| HFP | $$\pm$$ 7.2x10+75 | $$\pm$$ 7.2x10+75 | $$\pm$$ 7.2x10+75 | |
| Минимальные значения | $$\pm$$ 1.2x10-38 | $$\pm$$ 2.2x10-308 | $$\pm$$ 3.4x10-4932 | |
| HFP | $$\pm$$ 5.5x10-79 | $$\pm$$ 5.5x10-79 | $$\pm$$ 5.5x10-79 | |
| Минимальные ненормализованные значения | $$\pm$$ 1.4x10-45 | $$\pm$$ 4.9x10-324 | $$\pm$$ 6.5x10-4966 | |
| HFP | $$\pm$$ 5.2x10-85 | $$\pm$$ 1.2x10-94 | $$\pm$$ 1.7x10-111 |
В командах с плавающей точкой используются операнды, размещенные в памяти и регистрах. Предусмотрено 16 64-разрядных регистров, в которых операнды короткого формата занимают левую старшую половину (без изменения младшей), а для расширенного формата используются пары регистров, как показано на рис. 2.2. Регистры 0, 2, 4, 6 использовались в предшествующих архитектурах, остальные 12 регистров добавлены и могут применяться при установке соответствующего бита в управляющем регистре 0.
Для управления операциями с плавающей точкой при возникновении особых ситуаций по данным (переполнение, потеря значимости и др.) используется дополнительный
0 байт 0 7 |
8 байт 1 15 |
16 байт 2 23 |
24 байт 3 31 |
||||
I I I I I M M M M M 0 0 0 i z o u x |
S S S S S F F F F F 0 0 0 i z o u x |
i z o u x |
0 0 0 0 0 0 RM |
||||
| Masks | резерв | Flags | резерв | DXC | резерв | ||
Обозначения: IMi, SFi - маска и флаг недопустимой операции; IMz, SFz - маска и флаг деления на 0; IMz, SFz - маска и флаг переполнения; IMz, SFz - маска и флаг потери значимости: IMz, SFz - маска и флаг неточности; DXC - код флагов прерываний; RM - биты управления округлением. |
|||||||
Команды управления и ввода-вывода относятся к классам привилегированных или частично привилегированных команд. Привилегированные команды (все команды ввода-вывода и часть команд управления) могут исполняться только в режиме работы процессора СУПЕРВИЗОР. Частично привилегированные команды (часть команд управления) могут исполняться в режиме работы процессора ЗАДАЧА при наличии разрешающих условий.
Внутренняя или процессорная память имеет многоуровневую структуру, включающую до трех уровней буферной памяти, называемой КЭШ-памятью (Cache), основную память MS и дополнительный уровень расширенной памяти ES. Уровни КЭШ-памяти предназначены для увеличения быстродействия основной памяти и "прозрачны" для процессора, то есть программно недоступны. Расширенная память программно доступна и допускает операции чтения-записи страниц с использованием специальных процессорных команд управления PAGE IN, PAGE OUT. Расширенная память размещается в физическом адресном пространстве за границей 231 байт и в последних моделях z/Architecture может не использоваться. Основная память является многоабонентной и допускает одновременные обращения как всех центральных процессоров, так и процессоров канальной подсистемы. При этом очередность доступа определяется системой в зависимости от приоритетов абонентов.
Адреса формируются в CP, канальной подсистеме и в общем случае проходят до трех стадий преобразования в процессе обращения к памяти (рис. 2.4). Различают три базовых типа адресных пространств (
(рис 2.4) Типы адресов и их преобразованиеАбсолютный (absolute) адрес непосредственно без каких-либо преобразований определяет ячейку физической памяти. Каждой ячейке физической памяти соответствует не более чем один абсолютный адрес.
Реальный (real) адрес используется в
Виртуальные (virtual) адреса формируются процессором при исполнении программ и транслируются в реальные посредством динамического преобразования адресов (Dynamic
Тип виртуального адреса определяется режимом виртуальной адресации, используемым в процессоре. Процессор может находиться в одном из четырех режимов адресации, соответствующих перечисленным типам виртуальных адресов:
В режимах главного или базового AS процессору доступны, соответственно, только главное или базовое виртуальные адресные пространства. В режиме вторичного AS процессор может транслировать адреса и главного, и вторичного AS. В режиме с AR-определяемым AS процессор оперирует в главном и пятнадцати пространствах, определяемых регистрами доступа AR1 $$\div$$ AR15.
Адрес, формируемый процессором до выполнения процессов DAT или префиксации, принято называть эффективным. Эффективный адрес либо задается ссылкой на регистр, в котором он был сформирован ранее, либо вычисляется с использованием
(рис 2.5) Виртуальные адресные пространства в различных режимах адресацииВ z/Architecture применяется два варианта задания адресных пространств. Первый вариант предусматривает использование до 216 адресных пространств, задаваемых уникальным 16-разрядным номером адресного пространства (
Смена адресных пространств в процессоре выполняется путем загрузки
(рис 2.6) Трансляция номера адресного пространства и ALET из регистров доступаЗапуск трансляции
Преобразование
Первым выполняется обращение в строку таблицы
Трансляция кодов ALET из регистров доступа AR в коды ASCE выполняется разными способами в зависимости от значений полей ALET. Номер регистра доступа, из которого берется ALET, определяется кодом B или R в командах, исполняемых в режиме адресации с AR-определяемым AS (рис. 2.7). Если в команде задан нулевой номер AR, это соответствует не AR0, а нулевому содержимому AR, то есть трансляция не выполняется, и ASCE находится по умолчанию в CR1 (Primary
(рис 2.7) Использование регистров доступа в режиме с AR-определяемым AS AR-specified Virtual AddressЕсли в AR 1 $$\div$$ 15 задан код, равный 0 или 1, трансляция не выполняется и ASCE по умолчанию находится, соответственно, в CR1 (Primary
Формат ALET включает следующие поля (см. рис. 2.5):
При Р=1 преобразование выполняется с использованием таблицы доступа Primary-space
При Р=0 преобразование выполняется с использованием таблицы доступа Dispatchable-unit-
Поскольку в режиме адресации с AR-определяемым AS трансляция ALET выполняется при каждом обращении за операндом, для ускорения этого процесса используется буфер
Под авторизацией понимается процесс проверки разрешения на открытие конкретного адресного пространства программой с текущим индексом авторизации. Авторизация или санкционирование адресных пространств выполняется после трансляции задающего его кода
(рис 2.8) Схема авторизации адресных пространствИндекс AX из управляющего регистра CR4 суммируется с базовым адресом
Расширенная
Полученный в результате трансляции кодов
0 |
11 |
22 |
33 |
44 |
52 63 |
| RFX | RTX | SX | PX | BX |
Процесс динамического преобразования адреса определяется управляющими битами 5, 16, 17
Общая схема DAT представлена на рис. 2.9. В соответствии с таблицей 2.10 определяется источник ASCE, задающий базовый адрес первой из таблиц, используемых в преобразовании. При реализации DAT может быть использовано до пяти уровней преобразования, каждый из которых определяется отдельной таблицей:
Строка каждой из таблиц содержит идентификатор своего типа (TT) и базовый адрес таблицы следующего уровня (RSTO - для второго уровня регионов, RTTO- для третьего уровня регионов, STO - для сегментной таблицы,
(рис 2.9) Динамическое преобразование адреса| Биты |
DAT | Источник ASCE | ||||
|---|---|---|---|---|---|---|
| 5 | 16 | 17 | Адреса команд | Адреса операндов | ||
| 0 | 0 | 0 | Откл. | Real | Real | |
| 0 | 0 | 1 | Откл. | Real | Real | |
| 0 | 1 | 0 | Откл. | Real | Real | |
| 0 | 1 | 1 | Откл. | Real | Real | |
| 1 | 0 | 0 | Вкл. | Primary Virtual Mode | CR1 | CR1 |
| 1 | 0 | 1 | Вкл. | Secondary Virtual Mode | CR1 | CR7 |
| 1 | 1 | 0 | Вкл. | AR-specified Virtual Mode | CR1 | |
| 1 | 1 | 1 | Вкл. | Home Virtual Mode | CR13 | CR13 |
Формат ASCE включает базовый адрес первой таблицы (TO), используемой в преобразовании. Тип этой таблицы, а, следовательно, и число уровней преобразования, определяется полем DT (таблица 2.11). При DT=11 используются все пять уровней преобразования, и TO в ASCE задает базовый адрес первой региональной таблицы. При DT=00 региональные таблицы не используются, и ASCE задает базовый адрес сегментной таблицы. Кроме того, формат ASCE включает бит R, определяющий тип адресного пространства (реальное или виртуальное), и двухразрядное поле TL, указывающее длину таблицы (в блоках по 4 KB).
Преобразование DAT выполняется следующим образом. В соответствии с таблицей 2.4 выбирается источник ASCE. Это один из управляющих регистров CR1, CR7, CR13 или строка таблицы
| DT | Первая таблица DAT | Тип TO в ASCE |
|---|---|---|
| 11 | Первая региональная таблица (Region First Table) | RSTO |
| 10 | Вторая региональная таблица (Region Second Table) | RTTO |
| 01 | Третья региональная таблица (Region Third Table) | STO |
| 00 | Сегментная таблица ( |
Поле DT из выбранного ASCE в соответствии с таблицей 2.11 определяет число уровней преобразования и таблицу, в которую осуществляется первое обращение. Для этого базовый адрес таблицы из ASCE суммируется с соответствующим индексом из виртуального адреса. При обращении в первую региональную таблицу используется индекс RFX, во вторую региональную таблицу - индекс
По базовому адресу из считанной строки сегментной таблицы и индексу PX осуществляется обращение в страничную таблицу, откуда считывается реальный адрес страницы (Page-Frame
Поскольку все таблицы находятся в реальной памяти, и в процессе DAT может потребоваться до пяти обращений в таблицы, время преобразования может быть недопустимо большим. Для его уменьшения в состав устройства DAT вводится буфер быстрой переадресации TLB (Translation-Lookaside Buffer). В литературе такой буфер иногда называют кэш-памятью адресов. В мультипроцессорных реализациях каждый процессор имеет собственный буфер TLB. Процессор обращается в таблицы DAT только при первом преобразовании виртуального адреса. Полученные из таблиц строки вместе с исходными атрибутами преобразования (базовые адреса, индексы, параметры) запоминаются в строках TLB. При последующих обращениях с теми же атрибутами выполняется обращение в TLB без обращений в память.
Поскольку строки таблиц DAT, размещенных в памяти, и соответствующие им строки TLB должны в процессе трансляции формировать одни и те же ссылки, содержимое этих строк должно выравниваться. С этой целью для строк таблиц DAT, хранящихся в памяти, вводятся два типа состояний: присоединенное (attached) и доступное (valid). Строка считается присоединенной к конкретному процессору, если он может использовать ее для DAT. Одновременно строка может быть присоединенной для нескольких процессоров. Строка является доступной, если регион, сегмент или страница, связанные с этой строкой, имеются в памяти (установлен бит доступности этих блоков в соответствующих строках).
Каждая строка TLB состоит из двух частей: поле атрибутов для поиска строки, соответствующей текущим атрибутам DAT (ассоциативное поле) и поле результата преобразования (информационное поле).
В TLB предусмотрено использование трех типов строк:
Динамическое преобразование адреса начинается с обращения в регионально-сегментные строки TLB по базовому адресу из ASCE и индексам регионов и сегмента. При наличии совпадения из найденной строки считывается базовый адрес страничной таблицы, в противном случае осуществляется обращение в одну из региональных или сегментную таблицу в зависимости от числа совпавших элементов трассы трансляции. По считанному из строки этой таблицы базовому адресу и соответствующим индексам виртуального адреса выполняется повторное обращение в регионально-сегментные строки TLB. Такие обращения выполняются до получения базового адреса страничной таблицы, который вместе с индексом страницы из виртуального адреса используется для обращения в страничную строку TLB. При наличии совпадения из информационного поля страничной строки считывается реальный адрес страницы (PFRA).
Если в ASCE указан режим реальной адресации, то виртуальный адрес используется как реальный. При этом по указателю реального адресного пространства из ASCE и виртуальному адресу страницы (индексы RFX,
Механизм префиксации поясняется на рис. 2.10. При обращении в реальную память в область префиксации с адресами 0 $$\div$$ 8191 осуществляется преобразование реального адреса в абсолютный путем замены старших разрядов 0 $$\div$$ 50 на префикс, находящийся в регистре префикса каждого процессора. При обращении в реальную память в область с номером, равным префиксу, старшие разряды 0 $$\div$$ 50 реального адреса заменяются в абсолютном адресе на 0. Остальные реальные адреса соответствуют абсолютным адресам без преобразования. Содержимое регистра префикса может быть загружено или прочитано командами процессора. Загрузка нулевого префикса означает идентичность реальных и абсолютных адресов.
(рис 2.10) Механизм префиксации
Защита содержимого основной памяти необходима для исключения разрушения информации или неправильного использования программами, которые содержат ошибки или не имеют санкций доступа. В z/Architecture предусмотрены следующие виды защиты памяти:
Все виды защиты применяются независимо, и доступ к памяти разрешается при отсутствии запрета от любой из защит.
Каждому блоку памяти емкостью 4 KB, используемому в конфигурации, соответствует семиразрядный ключ в формате, представленном на табл. 2.12а.
| а) Формат ключа памяти | |||
|---|---|---|---|
| F | R | C | |
| 0 | 4 | 6 | |
| б) Таблица управления защитой по ключу | |||
|---|---|---|---|
| Совпадение ключа доступа и АСС | F | Разрешение доступа | |
| чтение | запись | ||
| Да | 0 | Да | Да |
| Нет | 0 | Да | Нет |
| Да | 1 | Да | Да |
| Нет | 1 | Нет | Нет |
F - бит защиты от чтения; при F=0 контролируется только запись, а при F=1 - и запись, и чтение.
R - бит обращения; устанавливается в единицу при каждом обращении в блок для чтения или записи (бит активности).
C - бит изменения блока; устанавливается в 1 при выполнении записи в блок (
Биты R и C могут применяться для учета свободных и модифицированных блоков памяти.
Принцип защиты по ключу иллюстрируется таблицей на табл. 2.12б. При каждом обращении в память с включенной защитой номер блока, в который осуществляется обращение, используется для чтения ключа из памяти ключей. Поле контроля доступа
Для обеспечения обращения одной программы со своим ключом в область памяти другой программы предусмотрена возможность отключения защиты для отдельных блоков памяти. Такой способ разрешается битом управления отключением защиты в CR0. При его установке и
Данный тип защиты реализуется в режиме AR-specified
Страничная защита предназначена для исключения несанкционированной записи в страницах виртуальной памяти. С этой целью в строках сегментных и страничных таблиц, используемых в процессе динамического преобразования адреса, задаются биты страничной защиты от записи. При нулевом значении этого бита в строке страничной таблицы разрешается и запись, и чтение, а при единичном - только чтение из соответствующей страницы. Бит страничной защиты в строке сегментной таблицы относится ко всем страницам, входящим в сегмент, и используется совместно с битами в строках страничной таблицы путем объединения по "ИЛИ". Таким образом, при единичном значении этого бита защищены от записи все страницы сегмента, а при нулевом - защита определяется битами в строках страничной таблицы.
Такая защита применяется для запрета записи в области памяти с адресами 0 $$\div$$ 511 и 4096 $$\div$$ 4607, то есть в начальные 512 байт первой и второй страниц, используемых в процессах прерываний. Защита осуществляется по
Процессор z/Architecture может находиться в одном из четырех взаимоисключающих состояний:
Таймер процессора функционирует в состояниях РАБОТА и ЗАГРУЗКА, а работа часов
Текущее слово состояния программы
Основными полями
| Следующее состояние | ЗАГРУЗКА | СТОП | РАБОТА | СБОЙ | |
|---|---|---|---|---|---|
| Исходное состояние | |||||
| ЗАГРУЗКА | Пошаговый режим | Непрерывный режим | Сбой оборудования | ||
| СТОП | Переключатели загрузки | Переключатель |
|||
| РАБОТА | Переключатели сброса процессора, приказ "Стоп" в команде SYGNAL PROCESSOR, завершение шага в пошаговом режиме работы, останов по совпадению адресов | ||||
| СБОЙ | - | Сброс | - |
Предусмотрено пять инициируемых извне функций процессора (таблица 2.15):
Сброс процессора обеспечивает очистку указателей сбоев оборудования и устраняет неопределенность состояния процессора, возникающую в результате таких сбоев, в том числе путем сохранения состояния для последующего анализа и восстановления. Сброс процессора обеспечивает:
| а) z/Architecture | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | R | 0 | 0 | 0 | T | IO | EX | Key | 0 | M | W | P | AS | CC | Program mask | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EA | ||||||||
| 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| BA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
| Адрес команды | |||||||||||||||||||||||||||||||
| 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |
| Адрес команды (продолжение) | |||||||||||||||||||||||||||||||
| б) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | R | 0 | 0 | 0 | T | IO | EX | Key | 1 | M | W | P | AS | CC | Program mask | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EA | ||||||||
| 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| BA | Адрес команды | ||||||||||||||||||||||||||||||
R - бит разрешения прерывания для записи программных событий. T - бит управления динамическим преобразованием адреса (DAT). При Т=0 преобразование не выполняется и адреса команд и операндов трактуются как реальные. IO - бит разрешения прерываний по вводу-выводу. ЕХ - бит разрешения внешних прерываний. Key - ключ защиты памяти, используемой процессором при обращении в ОП. М - бит разрешения прерываний по сбоям. W - бит включения режима ожидания, при котором команды не выполняются, но прерыванияя обрабатываются. Р - бит задания режима супервизор/задача, при Р=0 задан режим супервизора, в котором допустимо исполнение всех команд, при Р=1 в режиме задачи допустимо исполнение непривилегированных команд, а также полупривилегированных команд при наличии особых условий. AS - код управления режимом адресации, используется совместно с битом Т. СС - код условия, устанавливаемый по результатам выполнения команд, служит признаком для команд условных переходов. Program mask - маска программы для запрета/разрешения прерываний в особых случаях, возникающих в процессе исполнения программы: бит 20 - переполнение в операциях с фиксированной точкой, бит 21 - переполнение в операциях с десятичными числами, бит 22 - потеря значимости порядка в операциях с плавающей точкой в формате HFP, бит 23 - потеря значимости в операциях с HFP-числами. ЕВ, ВА - биты управления разрядностью Адрес команды - поле адреса очередной исполняемой в процессоре команды, используемое число разрядов определяется битами ЕА, ВА. |
|||||||||||||||||||||||||||||||
| Активируемые переключатели | Уровни воздействия | ||
|---|---|---|---|
| Процессор, к которому относится переключатель | Другие процессоры в конфигурации | Остальная часть конфигурации | |
| Системный сброс - нормальный | сброс процессора | сброс процессора | сброс подсистемы |
| Системный сброс - с очисткой | сброс с очисткой | сброс с очисткой | сброс с очисткой |
| Загрузка - нормальная | начальный сброс процессора с последующей |
сброс процессора | сброс подсистемы |
| Загрузка - с очисткой | сброс с очисткой с последующей |
сброс с очисткой | сброс с очисткой |
После выполнения перечисленных действий процессор переходит в состояние СТОП. Если после сброса следует процедура начальной загрузки
Начальный сброс процессора включает операции сброса процессора с последующими дополнительными операциями очистки и инициализации:
Сброс подсистемы предназначен для тех элементов конфигурации, которые не являются процессорами, путем выполнения следующих действий:
Сброс с очисткой объединяет операции начального сброса процессора со следующими операциями инициализации:
Сброс по питанию выполняется при включении питания. Сброс CP включает сброс регистров GR,
Для отсчета времени и взаимной синхронизации процессоров в z/Architecture предусмотрены три возможности:
Часы TOD представляют собой 104-разрядный
0 |
51 |
103 |
| 1 микросекунда |
В зависимости от модели инкремент
Часы могут находиться в одном из следующих состояний: выставлены, не выставлены, остановлены, неисправны или отключены. Переходы из одного состояния в другое задаются специальными командами или процедурами. Часы могут быть отключены при отсутствии питания или для технического обслуживания. После подачи питания часы обнуляются и переходят в невыставленное состояние. Переход в выставленное состояние осуществляется только из остановленного состояния. Часы останавливаются по команде SET CLOCK, загружающей новое значение показаний, если включено ручное управление
Установка показаний в часах выполняется командой SET CLOCK при наличии разрешающих условий. При этом в счетчик часов в инкрементируемые разряды загружается операнд команды, а остальные биты обнуляются. В
0 |
8 |
112 128 |
| 00000000 | Programmable Field |
Каждый процессор системы содержит 32-разрядный программируемый регистр
Компаратор времени предназначен для сравнения показаний часов
Загрузка уставки в регистр компаратора выполняется командой SET CLOCK COMPARATOR, а чтение - командой STORE CLOCK COMPARATOR. Загрузка компаратора или установка часов, приводящие к превышению уставки по отношению к показаниям часов, сбрасывают ранее установленный запрос прерывания.
Процессорный таймер является
Мультипроцессорная организация используется для распараллеливания вычислительных процессов с разделением данных и ресурсов и обеспечения высокой готовности системы. Мультипроцессирование включает механизмы и процессы управления мультипроцессорной организацией путем обеспечения взаимодействия процессоров через общую память и средства
Основу мультипроцессирования составляют:
Дополнительными средствами являются внешние прерывания. Канальная подсистема, включая все подканалы, в мультипроцессорной конфигурации может быть доступна всем процессорам. Прерывания по вводу-выводу являются плавающими, то есть могут быть обработаны любым процессором.
Для организации межпроцессорного взаимодействия введен адрес процессора в системе, присваиваемый каждому процессору при инсталляции системы и не изменяемый при ее реконфигурациях. Адрес процессора используется в команде Signal Processor для указания процессора, которому предназначен приказ, заданный в команде, а также идентифицирует процессор, сформировавший условия прерывания, его адресом, записанным в код прерывания.
Команда Signal Processor является основным средством взаимодействия процессоров путем сигнализации и получения ответа. Такая команда адресует один процессор (в одном из вариантов команды адресуются все процессоры) и передает ему один из приказов, перечисленных в таблице 2.18. В каждом процессоре предусмотрены средства для передачи, получения и выполнения приказов, а также формирования ответа для процессора, исполняющего команду Signal Processor.
При определенных условиях адресуемый процессор формирует для процессора, исполняющего команду Signal Processor, код состояния. Состояние включает условия, приведенные в таблице 2.19, причем каждому приказу, исполняемому в адресуемом процессоре, может соответствовать несколько передаваемых условий.
Прерывания процессора позволяют обеспечить быструю реакцию процессора при возникновении особых условий в самом процессоре, в подсистеме ввода-вывода, в других процессорах и вне системы. Прерывания допускаются только в режиме РАБОТА, за исключением прерывания для
| Приказ | Действия в адресуемом процессоре |
|---|---|
| Опрос состояния (Sense) | Передача в адресующий процессор кода своего состояния |
| Внешний вызов (External Call) | Формирование условия внешнего прерывания с указанием в коде прерывания адреса процессора, передавшего приказ |
| Экстренный сигнал ( |
Формирование условия внешнего прерывания экстренного сигнала с указанием в коде прерывания адреса процессора, передавшего приказ |
| Пуск (Start) | Переход в режим РАБОТА |
| Стоп (Stop) | Переход в режим СТОП |
| Повторный пуск (Restart) | Выполнение повторного пуска |
| Стоп с сохранением состояния (Stop and Store Status) | Сохранение состояния и переход в режим СТОП |
| Первоначальный сброс процессора (Initial CP Reset) | Выполнение первоначального сброса процессора без изменения архитектурного режима и сброса других процессоров и ввода-вывода |
| Сброс процессора (CP Reset) | Сброс процессора без изменения архитектурного режима и сброса других процессоров и ввода-вывода |
| Установка префикса (Set Prefix) | Загрузка префикса, указанного в команде, в регистр префикса процессора |
| Запись состояния по адресу (Store Status at Address) | Запись состояния процессора в область абсолютной памяти, адрес которой указан в команде. Состояние объемом 512 байт включает значения всех программно доступных регистров процессора |
| Установка архитектуры (Set Architecture) | Адрес процессора игнорируется, и все процессоры конфигурации выполняют установку архитектурного режима, заданного в команде: архитектура |
Все прерывания разбиты на шесть классов:
| Условие | Причины выработки условия в адресуемом процессоре |
|---|---|
| Сбой оборудования ( |
При выполнении команды обнаружен сбой оборудования |
| Некорректное состояние ( |
Приказы "Стоп с сохранением состояния", "Установка префикса" или "Установка архитектуры" не могут быть выполнены вследствие особых состояний процессора |
| Недействительный параметр (Invalid parameter) | Параметр, принятый с приказом, является недействительным, например, указана область памяти недоступная в данной конфигурации |
| Отложенное внешнее прерывание (External-call |
Реализация внешнего прерывания, инициализируемого командой, откладывается, так как в процессоре исполняется приказ из предыдущей команды Signal Processor |
| Остановлен (Stopped) | Процессор находится в состоянии СТОП |
| Вмешательство оператора (Operator intervening) | Процессор выполняет некоторые операции, инициированные местными или удаленными операторными возможностями |
| Стоп при сбое (Check stop) | Процессор находится в состоянии СТОП при сбое |
| Не функционирует (Inoperative) | Выполнение операции, определенной приказом, требует использования сервисного процессора, который не функционирует |
| Недействительный приказ (Invalid order) | Принят неопределенный или не используемый код приказа |
| Контроль приема (Receiver check) | В процессе передачи при исполнении команды Signal Processor обнаружены сбои |
Причина прерывания внутри класса уточняется кодом прерывания этого класса, который в процессе прерывания заносится в отдельную область памяти, закрепленную за данным
Каждому классу прерываний выделены две фиксированные области памяти, в одной из которых сохраняется текущее (старое)
В таблице 2.20 приведены адреса размещения
Большинство команд допускают прерывания после полного окончания их исполнения. В процессе исполнения могут быть прерваны команды, называемые прерываемыми (interruptible). К ним относятся такие команды, как MOVE LONG, COMPARE LOGICAL LONG и др. Процесс исполнения этих команд состоит из последовательно исполняемых этапов (unit of operation). Прерывания допускаются после завершения текущего этапа, и прерванная команда считается частично выполненной.
| Классы прерываний | Адреса памяти для размещения |
Маска прерываний | Адреса памяти для кода прерывания | ||
|---|---|---|---|---|---|
| Старое | Новое | в |
в управляющих регистрах | ||
| Внешние | 304 | 432 | 7 | CR0[48-50, 52-54, 57, 59] | 134-135 |
| Ввода-вывода | 368 | 496 | 6 | CR6[32-39] | 184-191 |
| От схем контроля | 352 | 480 | 13 | CR14[35-39] | 232-239 |
| Программные | 336 | 464 | 1, 20 $$\div$$ 23 | CR0[33], CR1[57], CR8[32-47], CR9[32-36], FPC? | 142-143 |
| 288 | 416 | - | - | - | |
| Вызов супервизора | 320 | 448 | - | - | 138-139 |
Процесс прерывания включает следующие действия:
Возврат к прерванной программе выполняется путем восстановления в процессоре старого
Прерывания, которые могут быть обработаны любым из процессоров конфигурации, называются плавающими прерываниями (floating interruption). Запрос на такое прерывание подается в первый из процессоров, в котором это прерывание не замаскировано, после чего сбрасывается для исключения повторных прерываний в других процессорах. К плавающим прерываниям относятся прерывания ввода-вывода, некоторые из внешних прерываний и от схем контроля.
Разрешение и запрет прерываний в процессоре реализуются с использованием маскирования. Маски прерываний размещаются в зависимости от класса в текущем
При одновременном поступлении нескольких запросов на прерывания для их обслуживания в определенном порядке используется механизм
Внутри класса все прерывания также ранжируются путем присвоения соответствующих приоритетов.
Обработка одновременно поступивших запросов осуществляется путем последовательной записи старых
Основной функцией процессора является выборка и исполнение команд, включая выборку и сохранение операндов. Биты 31, 32 текущего
Исполнение команд программы должно осуществляться в их концептуальной последовательности, то есть в порядке, определяемом логикой программы. При этом очередная команда может быть выбрана и исполнена после завершения действий, связанных со всеми предшествующими командами.
На практике действительная последовательность выборки команд и операндов может не совпадать с концептуальной. Это связано, в первую очередь, с необходимостью распараллеливания процессов выборки и исполнения команд в каждом процессоре, а также с взаимным влиянием процессоров, работающих с общей памятью.
В режимах реального, главного и вторичного адресных пространств команды выполняются в концептуальной последовательности, когда очередная команда может быть выбрана после завершения текущей и до начала операций, связанных с очередной командой. В этом случае текущая команда может модифицировать очередную команду. В режиме с регистрами доступа и базового адресного пространства последовательность выборки также концептуальная, за одним исключением. Команда с операндом, формируемым предшествующей командой, может быть выбрана до записи этого операнда в память, то есть модификация очередной команды текущей командой недопустима.
Для сохранения концептуальной последовательности исполнения команд в процессорах используется система блокировок. Выполнение команды осуществляется обычно фрагментами, что может привести к наличию в памяти промежуточных значений операндов, доступных другим абонентам. Это также требует блокировок обращений.
Механизм блокировок основан на сравнении
Выполнение прерывания, сброса процессора или выполнение определенных команд может вызвать исполнение процесса, называемого сериализацией (Serialization). Под сериализацией понимается завершение всех обращений в память, концептуально предшествующих точке сериализации.
Выборка команд из памяти включает чтение 1 $$\div$$ 3 полуслов по адресу из текущего
Исполнение команды может завершиться одним из следующих вариантов:
Для большинства команд варианты завершения относятся к команде в целом, так как они состоят из одного этапа (unit of operation). Завершение многоэтапных прерываемых команд может выполняться одним из рассмотренных выше способов после каждого из выделенных этапов исполнения.
Трассировка (tracing) - процесс непрерывной записи в таблицу трассировки информации о наиболее существенных событиях в процессоре. Такие записи позволяют определять причины различных проблемных состояний процессора. Трассировка включает реализацию четырех функций, каждая из которых завершается записью строки таблицы трассировки.
Трассировка переходов реализуется после исполнения определенных команд перехода. В строку таблицы при этом записывается адрес перехода с учетом режима адресации, устанавливаемого после перехода (24-, 31-, 64-разрядный адрес). Примерами команд, вызывающих трассировку ветвлений, являются команды BALR при R2 $$\ne$$ 0, BASR при R2 $$\ne$$ 0 и др.
Трассировка ASN предназначена для фиксации событий, связанных со сменой адресных пространств и трансляцией
Трассировка режимов используется для записи информации о переключениях режимов адресации из базового (24- или 31-разрядного) в расширенный (64-разрядный) или обратно. После исполнения команд SAM, BASSM,
Представленные выше три типа трассировки относятся к неявной трассировке в отличие от прямой трассировки, выполняемой по специальной команде.
Прямая трассировка производится принудительно при исполнении команд TRACE, TRACG путем занесения в таблицу текущего времени из
Общий формат строки представлен в табл. 2.21.
| 1 $$\div$$ 12 бит | 2 $$\div$$ 142 байт |
| Идентификатор типа трассировки | Поля сохраняемых параметров |
Для адресации таблицы трассировки используется реальный адрес текущей строки, находящийся в управляющем регистре CR12. В этом же регистре указываются четыре управляющих бита разрешения перечисленных выше функций трассировки. Трассировка выполняется в процессе реализации соответствующих команд и при наличии разрешения. В текущую адресуемую строку таблицы записываются предписанные параметры трассировки с идентификатором типа трассировки, и адрес строки в CR12 увеличивается на длину записанной строки. Некоторые команды могут вызвать запись более одной строки с разными типами трассировки.
Применяется для регистрации информации о программных событиях, которая может использоваться в процессах отладки программ. Выделяют следующие типы запоминаемых программных событий:
Типы регистрируемых событий и область памяти для их записи указываются в управляющих регистрах CR9, 10, 11 (табл. 2.22). Опция учета адресных пространств, управляемая битом S, может быть задействована только при включенном механизме динамического преобразования адреса и при задании в коде управления адресным пространством ASCE значения бита S, разрешающего регистрацию программных событий записи в определенную область памяти этого пространства.
| CR9 | EM | B | S | ||||
| CR10 | Начальный адрес области памяти PER | ||||||
| CR11 | Конечный адрес области памяти PER | ||||||
EM - четырехразрядная маска разрешения регистрации разных типов программных событий. В - бит разрешения опции попадания адреса перехода в заданную область памяти. S - бит разрешения опции задания адресных пространств, в которых находится выделенная область памяти с регистрацией записи. Начальный и конечный адреса ограничивают область памяти, обращения в которую могут вызвать PER-событие. |
|||||||
Процесс регистрации программных событий включается битом R в
| Адреса ячеек ОП | ||||
|---|---|---|---|---|
0 15 |
||||
| 150 $$\div$$ 151 | PERC | 000 | ATMID | AI |
0 63 |
||||
| 152 $$\div$$ 159 | PER Address | |||
0 8 |
||||
| 161 | 0000 | PAID | ||
Помимо этого, в старом
Использование регистрации программных событий может снизить производительность системы, для отключения этого механизма в программе следует сбросить бит R в
Сервер zSeries обеспечивает три уровня конфигурирования и может функционировать с использованием одного, двух или трех уровней управления. Такими уровнями являются [2.1]:
В серверах z990, z890 базовый режим возможен только в сочетании с режимом логических разделов и отдельно не используется. Информация об уровне, в котором исполняется программа, и о компонентах, на которых реализуется уровень, может быть получена командой STORE SYSTEM INFORMATION (STSI). Исполнение такой команды допускается только в том случае, если запрашиваемый уровень равен или меньше уровня текущей программы.
Максимальное количество разделов LPAR определяется моделью сервера и может достигать 30 для z990, z890 (в перспективе - 60) и 15 - для предшествующих генераций моделей [2.4, 2.5]. Логический раздел LPAR определен как совокупность логических ресурсов, реализуемых выделенными для него
Каждый логический раздел сервера характеризуется рядом параметров, которые задаются в процессе его открытия:
Данные параметры и информация о выделенных для раздела ресурсах формируются через консоль управления HMC и сохраняются в дисковой памяти элемента поддержки SE в виде профиля раздела (
В логический раздел могут быть выделены процессоры разных типов: CP, ICF, IFL или zAAP. Каждый из процессоров может быть постоянно закреплен (
Распределение основной и расширенной памяти между разделами выполняется в процессе создания LPAR и предусматривает выделение каждому из разделов части адресного пространства памяти. Максимальный объем памяти, выделяемой для одного раздела, ограничен объемом используемой в сервере памяти (для z/Architecture - 256 GB, в режиме
В процессе функционирования сервера резервная память может быть динамически перераспределена между LPAR посредством системы динамической реконфигурации памяти
| Объем инсталлированной памяти (GB) | Размер блока для LPAR (MB) |
|---|---|
| 5 $$\div$$ 8 | 16 |
| 8 $$\div$$ 16 | 32 |
| 16 $$\div$$ 32 | 64 |
| 32 $$\div$$ 64 | 128 |
Выделение каналов ввода-вывода для логических разделов выполняется следующими способами:
Совместное использование периферийных устройств в разных LPAR достигается путем их подключения через несколько закрепленных или реконфигурируемых каналов, а также через один совмещенный или объединенный канал.
Управление совместным функционированием всех LPAR осуществляется системным менеджером Processor Resource/Systems Manager (PR/SM) [2.6], реализованным на уровне милликодов системного гипервизора. Одной из основных функций PR/SM является распределение всех инсталлированных в сервер ресурсов между логическими разделами с учетом их весовых коэффициентов. Впервые системный менеджер был внедрен в 1988 году для управления четырьмя разделами и сейчас он расширен как по числу управляемых разделов (до 30 и более), так и по функциям, обеспечивающим оптимизацию управления ресурсами сервера. С этой целью логические разделы одного сервера могут быть объединены в LPAR-кластер (LPAR cluster) для оптимального управления и распределения ресурсов сервера между разделами кластера через PR/SM.
Новым дополнительным средством оптимизации использования ресурсов серверов zSeries является интеллектуальная система распределения ресурсов Intelligent Resource Director (IRD) [2.6]. Эта система объединяет функции менеджера PR/SM, реализующего приоритетное управление на уровне логических разделов, и менеджера рабочей нагрузки WLM (
Основными компонентами z/Architecture [2.1, 2.2] серверов zSeries на уровне программистской модели являются (рис. 2.1):
Различные генерации моделей z/Architecture отличаются качественными и количественными характеристиками перечисленных компонентов. Основными направлениями развития архитектуры являлись: увеличение производительности, распараллеливание вычислительного процесса, расширение адресного пространства памяти, увеличение пропускной способности подсистемы ввода-вывода, повышение надежности и др. При этом на всем протяжении развития z/Architecture сохранялась полная
Процессоры разных генераций отличаются физической реализацией, быстродействием и другими параметрами, но имеют единую программистскую модель, являющуюся базовой платформой программной совместимости всех моделей. Основу такой модели составляет универсальная регистровая модель и единая система команд процессоров. По мере развития регистровая модель расширялась путем введения новых и расширения разрядности использовавшихся ранее регистров. Пополнялся и список команд, реализуемых процессором, с сохранением программной совместимости "снизу-вверх". В зависимости от моделей процессор дополнялся криптографическими и другими возможностями, встроенными как на уровне команд, так и в виде внешнего сопроцессора.
Каждый из процессоров z/Architecture взаимодействует с основной памятью, где хранятся команды и данные исполняемых программ. Подключение процессоров к памяти выполняется по симметричной схеме, соответствующей SMP-архитектуре. Расширенная память также программно доступна для процессоров и используется для буферизации страниц при обмене с дисковой памятью. Ко всем процессорам может быть подключен внешний таймер для согласованного отсчета времени.
(рис 2.1) Базовая модель систем zSeriesВзаимодействие процессоров и памяти с периферийными устройствами осуществляется через канальную подсистему ввода-вывода, включающую канальные пути разного типа. Основными типами канальных путей являются различные последовательные каналы, параллельный канал, аналогичный использовавшимся в системах S/360, S/370, а также
Регистровая модель процессора z/Architecture на современном этапе развития [2.1] включает следующие группы регистров (рис. 2.2):
Регистры GR предназначены для хранения операндов и адресов основных арифметических, логических и других операций. Каждый из регистров имеет разрядность 64 бита и адресуется в командах 4-разрядным полем R. В зависимости от реализуемой модели используются 32 (биты 32-63) или 64 разряда регистров. На рис. 2.2 показан пример использования модели для архитектуры System/370. Два регистра GR с соседними адресами могут служить для хранения операндов удвоенной длины 64 или 128 бит (см. дуги на рис. 2.2). В первом случае объединяются биты 32 $$\div$$ 63, а во втором - биты 0 $$\div$$ 63 соседних регистров. Удвоенный операнд начинается с четного адреса, по которому размещается старшая половина операнда. Часть команд со сложными способами адресации используют регистры GR в качестве базовых и индексных регистров. Четырехразрядные поля B и Х в командах определяют, соответственно, один из 15 базовых или индексных регистров (при В=0 базирование, а при Х=0 индексация не используются). В некоторых командах применение регистров GR подразумевается без явного указания их адресов в полях команды.
Регистры
(рис 2.2) Регистровая модель z/ArchitectureШестнадцать регистров доступа AR применяются в механизме динамического преобразования адресов для хранения косвенной ссылки на используемое адресное пространство. В режиме адресации с использованием AR (
Управляющие регистры CR адресуются как полем R, так и по умолчанию в различных командах, и используются при исполнении команд и функций процессора. Управляющие поля и отдельные биты регистров закреплены за конкретными средствами, такими как динамическое преобразование адресов, регистрация программных событий и др. и содержат информацию, необходимую для функционирования таких средств. С помощью команд загрузки и чтения можно обратиться как к отдельному регистру, так и к группе регистров.
Регистр слова состояния программы
Регистр префикса используется для хранения кода префикса, применяемого в механизме префиксации на этапе преобразования реального адреса в абсолютный.
Регистры таймера и компаратора времени, а также программируемый регистр часов используются в процедурах, связанных с отсчетом времени в таймере и компараторе часов CP, а также во внешних часах.
Команда, исполняемая процессором, в общем случае включает код операции (code of operation -
Разрядности операндов, используемых в командах z/Architecture, определяются кодом операции и дополнительными управляющими кодами в регистрах процессора. Для использования в одной команде операндов разной разрядности в список команд z/Architecture включены дополнительные команды. Биты и байты в операндах нумеруются слева направо от 0. Бит 0 соответствует старшему разряду.
Непосредственные операнды являются 8-, 16- или 32-разрядными константами, задаваемыми полем I в адресной части команды.
Регистровые операнды могут находиться в одном из программно доступных регистров процессора и либо прямо адресуются четырехразрядным адресом в команде (поле R), либо подразумеваются неявно кодом операции. Форматы регистровых операндов определяются типом операции и разрядностью используемых регистров.
Операнды в памяти могут включать один или более байт, адресуемых целыми неотрицательными числами 0, 1, 2... Байты из группы соседних ячеек образуют многобайтные поля или операнды, адресуемые младшим из адресов. В архитектуре zSeries используются операнды фиксированной и переменной длины. Для представления операндов фиксированной длины используются форматы байта, полуслова (2 байта), слова (4 байта), двойного слова (8 байт) и учетверенного слова (16 байт), которые целесообразно с точки зрения производительности размещать в полях ОП, имеющих определенные граничные адреса, кратные степени 2 (табл. 2.1). Операнды переменной длины адресуются младшим из группы занимаемых адресов с указанием длины (числа байт) в команде либо непосредственно (4- или 8-разрядное поле L), либо в виде ссылки на регистр GR, содержащий код длины.
| Операнды | Адреса памяти $$\to$$ | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Байт | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| Полуслово (2 байта) | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | |||||||||
| Слово (4 байта) | 0 | 4 | 8 | 12 | 16 | |||||||||||||
| Двойное слово (8 байт) | 0 | 8 | 16 | |||||||||||||||
| Учетверенное слово (16 байт) | 0 | 16 | ||||||||||||||||
В командах z/Architecture допускается использование 24-, 31-разрядных адресов, размещаемых в формате слова, и 24-, 31-, 64-разрядных адресов - в формате двойного слова (табл. 2.2). Разрядность адреса определяется битами 31,32 в слове состояния программы
| а) архитектура с 24-, 31-разрядными адресами | ||||
0 |
8 31 |
|||
| 24-разрядный адрес | ||||
|---|---|---|---|---|
| 31-разрядный адрес | ||||
| б) z/Architecture | ||
0 |
33 |
41 63 |
| 24-разрядный адрес | ||
|---|---|---|
| 31-разрядный адрес | ||
| 64-разрядный адрес | ||
Форматы команд z/Architecture приведены на рис 2.3. Назначение используемых в командах полей пояснено в таблице 2.3. Команды имеют длину 1, 2 или 3 полуслова и относятся к одному из 21 форматов: E, I, RR, RRE, RRF, RX, RXE, RXF, RXY, RS, RSY,
| Старшие биты |
Длина команды (число полуслов) |
|---|---|
| 00 | 1 |
| 01 | 2 |
| 10 | 2 |
| 11 | 3 |
z/Architectuire включает форматы всех команд предшествующих архитектур с одним или двумя байтами
(рис 2.3) Форматы команд Z900| Код операции команды, определяющий тип операции | |
|---|---|
| 1, 2, 3, 4 | Индексы, указывающие на 1, 2, 3 и 4 операнды команды |
| R1, R2, R3 | Номера регистров |
| B1, B2, B4 | Номера базовых регистров |
| X2 | Номера индексных регистров |
| D1, D2, D4, DL1, DH1, DL2, DH2 | Поля смещения (L - младшая часть смещения, H - старшая часть смещения) |
| M1, M3, M4 | Поля маски |
| I, I2 | Поля непосредственных операндов |
| L, L1, L2 | Поля длины операндов |
Генерация адресов операндов (АО), размещенных в памяти, основана на косвенно-регистровой адресации, когда адрес берется из регистра, заданного полем R команды, либо на вычислении путем сложения содержимого базового (B), индексного (X) регистров и смещения D:
АО = (B) + (X) + D
Разрядность базового и индексного регистров определяется типом команд и способом адресации. Разрядность смещения равна 12 либо 20 (расширенный формат). В последнем случае используются два поля смещения: DL - младшие 12 бит, DH - старшие 8 бит. При суммировании база и индекс рассматриваются как целые двоичные числа, 12-разрядное смещение является целым без знака, а 20-разрядное смещение расширенного формата задано как целое со знаком. Нулевые значения номеров базового B и индексного X регистров означают отсутствие соответствующих им компонентов при формировании адреса. Если один и тот же регистр используется в команде для формирования адреса и в качестве приемника операнда, первым выполняется формирование адреса. При формировании адреса с использованием 64-разрядного формата коды базы, индекса и смещения меньшей разрядности дополняются в старших разрядах нулями, либо значениями знакового разряда. При формировании адресов с разрядностью 32, 24 старшие биты используемых регистров сохраняются без изменения.
Список команд z/Architecture, сгруппированных по классам, приведен в Приложении 2. Для большинства команд дано краткое описание выполняемой операции и ее характеристики. Подробное описание команд можно найти в [2.1].
В системе команд z/Architecture предусмотрено пять классов операций:
Класс основных команд включает команды z/Architecture с операциями над числами с фиксированной точкой. Предусмотрено использование операций над целыми числами со знаком и без знака, логическими данными. Для представления чисел применяются, в основном, дополнительные, а также
Операции над десятичными числами выделены в особый класс. Десятичные команды выполняют операции десятичной арифметики и преобразований над десятичными операндами. Десятичные операнды размещаются всегда в основной памяти и поэтому большинство десятичных команд имеют формат SS (память-память). Длина операндов определяется полем L в командах. Используются две формы представления десятичных чисел: зонный и упакованный форматы (табл. 2.4). В зонном формате старшие четыре бита каждого байта операнда содержат код зоны, а младшие четыре бита содержат двоично-десятичную цифру.
| а) Зонный формат: | ||||||||
| зона | цифра | зона | цифра | ... | зона | цифра | зона/знак | цифра |
| б) Упакованный формат: | ||||||||
| цифра | цифра | цифра | цифра | ... | цифра | цифра | цифра | знак |
| с) Кодирование: | ||||||||
| коды | значения | |||||||
|---|---|---|---|---|---|---|---|---|
| 0000 $$\div$$ 1001 | цифры | |||||||
| 1010, 1100, 1110 | знак "плюс" | |||||||
| 1011, 1101 | знак "минус" | |||||||
| 1111 | зона, знак "плюс" |
Знак числа задается вместо зоны в крайнем правом байте операнда. Зонный формат может быть частью буквенно-цифровой строки с длиной до 256 байт, он используется для ввода-вывода и редактирования десятичной информации. В упакованном формате каждый байт содержит две цифры, а знак задается вместо крайней правой цифры. Упакованный формат имеет длину до 16 байт и используется для выполнения операций десятичной арифметики.
Команды с плавающей точкой используют два типа представления операндов в зависимости от применяемого основания характеристики:
| Форматы HFP | 0 |
7 |
31 |
63 |
64 |
70 |
128 |
|||
| S | Порядок | Мантисса (6 цифр) | ||||||||
| S | Порядок | Мантисса (14 цифр) | ||||||||
| S | Порядок | Мантисса (старшие 14 цифр) | S | Порядок | Мантисса (младшие 14 цифр) | |||||
| Не использ. | ||||||||||
| Форматы |
0 |
8 |
11 |
15 |
31 |
63 |
128 |
|||
| S | Порядок | Мантисса (23 бита) | ||||||||
| S | Порядок | Мантисса (52 бита) | ||||||||
| S | Порядок | Мантисса (112 бит) | ||||||||
Формат операндов может быть коротким (32 бита), длинным (64 бита) и расширенным (128 бит). Форматы чисел с плавающей точкой двух типов представлены на табл. 2.5. Числа состоят из трех компонентов: знака числа, порядка со знаком и мантиссы. Знак числа определяется битом S (S=0 - число положительное, S=1 - число отрицательное). Порядок определяет степень, в которую возводится основание, равное 16 для HFP чисел и 2 для
Параметры и диапазоны представления чисел в форматах
| Параметры и диапазоны | Короткий формат (32 бита) | Длинный формат (64 бита) | Расширенный формат (128 бит) |
|---|---|---|---|
| Разрядность порядка | 8 | 11 | 15 |
| Разрядность мантиссы | 23 | 52 | 112 |
| Максимальный порядок | 127 | 1023 | 16383 |
| Минимальный порядок | -126 | -1022 | -16382 |
| Смещение порядка | 127 | 1023 | 16383 |
| Модуль максимального числа | (1-2-24)x2128 $$\approx$$ 3.4x1038 | (1-2-53)x21024 $$\approx$$ 1.8x10308 | (1-2-113)x216384 $$\approx$$ 1.2x104932 |
| Модуль минимального числа (нормализованного) | 1.0x2-126 $$\approx$$ 1.2x10-38 | 1.0x2-1022 $$\approx$$ 2.2x10-308 | 1.0x2-16382 $$\approx$$ 3.4x10-4932 |
| Наименьшее представляемое число (ненормализованное) | 1.0x2-149 $$\approx$$ 1.4x10-45 | 1.0x2-1074 $$\approx$$ 4.9x10-324 | 1.0x2-16494 $$\approx$$ 6.5x10-4966 |
| Тип FP | Короткий формат | Длинный формат | Расширенный формат | |
|---|---|---|---|---|
| Максимальные значения | $$\pm$$ 3.4x10+38 | $$\pm$$ 1.81x0+308 | $$\pm$$ 1.8x10+4932 | |
| HFP | $$\pm$$ 7.2x10+75 | $$\pm$$ 7.2x10+75 | $$\pm$$ 7.2x10+75 | |
| Минимальные значения | $$\pm$$ 1.2x10-38 | $$\pm$$ 2.2x10-308 | $$\pm$$ 3.4x10-4932 | |
| HFP | $$\pm$$ 5.5x10-79 | $$\pm$$ 5.5x10-79 | $$\pm$$ 5.5x10-79 | |
| Минимальные ненормализованные значения | $$\pm$$ 1.4x10-45 | $$\pm$$ 4.9x10-324 | $$\pm$$ 6.5x10-4966 | |
| HFP | $$\pm$$ 5.2x10-85 | $$\pm$$ 1.2x10-94 | $$\pm$$ 1.7x10-111 |
В командах с плавающей точкой используются операнды, размещенные в памяти и регистрах. Предусмотрено 16 64-разрядных регистров, в которых операнды короткого формата занимают левую старшую половину (без изменения младшей), а для расширенного формата используются пары регистров, как показано на рис. 2.2. Регистры 0, 2, 4, 6 использовались в предшествующих архитектурах, остальные 12 регистров добавлены и могут применяться при установке соответствующего бита в управляющем регистре 0.
Для управления операциями с плавающей точкой при возникновении особых ситуаций по данным (переполнение, потеря значимости и др.) используется дополнительный
0 байт 0 7 |
8 байт 1 15 |
16 байт 2 23 |
24 байт 3 31 |
||||
I I I I I M M M M M 0 0 0 i z o u x |
S S S S S F F F F F 0 0 0 i z o u x |
i z o u x |
0 0 0 0 0 0 RM |
||||
| Masks | резерв | Flags | резерв | DXC | резерв | ||
Обозначения: IMi, SFi - маска и флаг недопустимой операции; IMz, SFz - маска и флаг деления на 0; IMz, SFz - маска и флаг переполнения; IMz, SFz - маска и флаг потери значимости: IMz, SFz - маска и флаг неточности; DXC - код флагов прерываний; RM - биты управления округлением. |
|||||||
Команды управления и ввода-вывода относятся к классам привилегированных или частично привилегированных команд. Привилегированные команды (все команды ввода-вывода и часть команд управления) могут исполняться только в режиме работы процессора СУПЕРВИЗОР. Частично привилегированные команды (часть команд управления) могут исполняться в режиме работы процессора ЗАДАЧА при наличии разрешающих условий.
Внутренняя или процессорная память имеет многоуровневую структуру, включающую до трех уровней буферной памяти, называемой КЭШ-памятью (Cache), основную память MS и дополнительный уровень расширенной памяти ES. Уровни КЭШ-памяти предназначены для увеличения быстродействия основной памяти и "прозрачны" для процессора, то есть программно недоступны. Расширенная память программно доступна и допускает операции чтения-записи страниц с использованием специальных процессорных команд управления PAGE IN, PAGE OUT. Расширенная память размещается в физическом адресном пространстве за границей 231 байт и в последних моделях z/Architecture может не использоваться. Основная память является многоабонентной и допускает одновременные обращения как всех центральных процессоров, так и процессоров канальной подсистемы. При этом очередность доступа определяется системой в зависимости от приоритетов абонентов.
Адреса формируются в CP, канальной подсистеме и в общем случае проходят до трех стадий преобразования в процессе обращения к памяти (рис. 2.4). Различают три базовых типа адресных пространств (
(рис 2.4) Типы адресов и их преобразованиеАбсолютный (absolute) адрес непосредственно без каких-либо преобразований определяет ячейку физической памяти. Каждой ячейке физической памяти соответствует не более чем один абсолютный адрес.
Реальный (real) адрес используется в
Виртуальные (virtual) адреса формируются процессором при исполнении программ и транслируются в реальные посредством динамического преобразования адресов (Dynamic
Тип виртуального адреса определяется режимом виртуальной адресации, используемым в процессоре. Процессор может находиться в одном из четырех режимов адресации, соответствующих перечисленным типам виртуальных адресов:
В режимах главного или базового AS процессору доступны, соответственно, только главное или базовое виртуальные адресные пространства. В режиме вторичного AS процессор может транслировать адреса и главного, и вторичного AS. В режиме с AR-определяемым AS процессор оперирует в главном и пятнадцати пространствах, определяемых регистрами доступа AR1 $$\div$$ AR15.
Адрес, формируемый процессором до выполнения процессов DAT или префиксации, принято называть эффективным. Эффективный адрес либо задается ссылкой на регистр, в котором он был сформирован ранее, либо вычисляется с использованием
(рис 2.5) Виртуальные адресные пространства в различных режимах адресацииВ z/Architecture применяется два варианта задания адресных пространств. Первый вариант предусматривает использование до 216 адресных пространств, задаваемых уникальным 16-разрядным номером адресного пространства (
Смена адресных пространств в процессоре выполняется путем загрузки
(рис 2.6) Трансляция номера адресного пространства и ALET из регистров доступаЗапуск трансляции
Преобразование
Первым выполняется обращение в строку таблицы
Трансляция кодов ALET из регистров доступа AR в коды ASCE выполняется разными способами в зависимости от значений полей ALET. Номер регистра доступа, из которого берется ALET, определяется кодом B или R в командах, исполняемых в режиме адресации с AR-определяемым AS (рис. 2.7). Если в команде задан нулевой номер AR, это соответствует не AR0, а нулевому содержимому AR, то есть трансляция не выполняется, и ASCE находится по умолчанию в CR1 (Primary
(рис 2.7) Использование регистров доступа в режиме с AR-определяемым AS AR-specified Virtual AddressЕсли в AR 1 $$\div$$ 15 задан код, равный 0 или 1, трансляция не выполняется и ASCE по умолчанию находится, соответственно, в CR1 (Primary
Формат ALET включает следующие поля (см. рис. 2.5):
При Р=1 преобразование выполняется с использованием таблицы доступа Primary-space
При Р=0 преобразование выполняется с использованием таблицы доступа Dispatchable-unit-
Поскольку в режиме адресации с AR-определяемым AS трансляция ALET выполняется при каждом обращении за операндом, для ускорения этого процесса используется буфер
Под авторизацией понимается процесс проверки разрешения на открытие конкретного адресного пространства программой с текущим индексом авторизации. Авторизация или санкционирование адресных пространств выполняется после трансляции задающего его кода
(рис 2.8) Схема авторизации адресных пространствИндекс AX из управляющего регистра CR4 суммируется с базовым адресом
Расширенная
Полученный в результате трансляции кодов
0 |
11 |
22 |
33 |
44 |
52 63 |
| RFX | RTX | SX | PX | BX |
Процесс динамического преобразования адреса определяется управляющими битами 5, 16, 17
Общая схема DAT представлена на рис. 2.9. В соответствии с таблицей 2.10 определяется источник ASCE, задающий базовый адрес первой из таблиц, используемых в преобразовании. При реализации DAT может быть использовано до пяти уровней преобразования, каждый из которых определяется отдельной таблицей:
Строка каждой из таблиц содержит идентификатор своего типа (TT) и базовый адрес таблицы следующего уровня (RSTO - для второго уровня регионов, RTTO- для третьего уровня регионов, STO - для сегментной таблицы,
(рис 2.9) Динамическое преобразование адреса| Биты |
DAT | Источник ASCE | ||||
|---|---|---|---|---|---|---|
| 5 | 16 | 17 | Адреса команд | Адреса операндов | ||
| 0 | 0 | 0 | Откл. | Real | Real | |
| 0 | 0 | 1 | Откл. | Real | Real | |
| 0 | 1 | 0 | Откл. | Real | Real | |
| 0 | 1 | 1 | Откл. | Real | Real | |
| 1 | 0 | 0 | Вкл. | Primary Virtual Mode | CR1 | CR1 |
| 1 | 0 | 1 | Вкл. | Secondary Virtual Mode | CR1 | CR7 |
| 1 | 1 | 0 | Вкл. | AR-specified Virtual Mode | CR1 | |
| 1 | 1 | 1 | Вкл. | Home Virtual Mode | CR13 | CR13 |
Формат ASCE включает базовый адрес первой таблицы (TO), используемой в преобразовании. Тип этой таблицы, а, следовательно, и число уровней преобразования, определяется полем DT (таблица 2.11). При DT=11 используются все пять уровней преобразования, и TO в ASCE задает базовый адрес первой региональной таблицы. При DT=00 региональные таблицы не используются, и ASCE задает базовый адрес сегментной таблицы. Кроме того, формат ASCE включает бит R, определяющий тип адресного пространства (реальное или виртуальное), и двухразрядное поле TL, указывающее длину таблицы (в блоках по 4 KB).
Преобразование DAT выполняется следующим образом. В соответствии с таблицей 2.4 выбирается источник ASCE. Это один из управляющих регистров CR1, CR7, CR13 или строка таблицы
| DT | Первая таблица DAT | Тип TO в ASCE |
|---|---|---|
| 11 | Первая региональная таблица (Region First Table) | RSTO |
| 10 | Вторая региональная таблица (Region Second Table) | RTTO |
| 01 | Третья региональная таблица (Region Third Table) | STO |
| 00 | Сегментная таблица ( |
Поле DT из выбранного ASCE в соответствии с таблицей 2.11 определяет число уровней преобразования и таблицу, в которую осуществляется первое обращение. Для этого базовый адрес таблицы из ASCE суммируется с соответствующим индексом из виртуального адреса. При обращении в первую региональную таблицу используется индекс RFX, во вторую региональную таблицу - индекс
По базовому адресу из считанной строки сегментной таблицы и индексу PX осуществляется обращение в страничную таблицу, откуда считывается реальный адрес страницы (Page-Frame
Поскольку все таблицы находятся в реальной памяти, и в процессе DAT может потребоваться до пяти обращений в таблицы, время преобразования может быть недопустимо большим. Для его уменьшения в состав устройства DAT вводится буфер быстрой переадресации TLB (Translation-Lookaside Buffer). В литературе такой буфер иногда называют кэш-памятью адресов. В мультипроцессорных реализациях каждый процессор имеет собственный буфер TLB. Процессор обращается в таблицы DAT только при первом преобразовании виртуального адреса. Полученные из таблиц строки вместе с исходными атрибутами преобразования (базовые адреса, индексы, параметры) запоминаются в строках TLB. При последующих обращениях с теми же атрибутами выполняется обращение в TLB без обращений в память.
Поскольку строки таблиц DAT, размещенных в памяти, и соответствующие им строки TLB должны в процессе трансляции формировать одни и те же ссылки, содержимое этих строк должно выравниваться. С этой целью для строк таблиц DAT, хранящихся в памяти, вводятся два типа состояний: присоединенное (attached) и доступное (valid). Строка считается присоединенной к конкретному процессору, если он может использовать ее для DAT. Одновременно строка может быть присоединенной для нескольких процессоров. Строка является доступной, если регион, сегмент или страница, связанные с этой строкой, имеются в памяти (установлен бит доступности этих блоков в соответствующих строках).
Каждая строка TLB состоит из двух частей: поле атрибутов для поиска строки, соответствующей текущим атрибутам DAT (ассоциативное поле) и поле результата преобразования (информационное поле).
В TLB предусмотрено использование трех типов строк:
Динамическое преобразование адреса начинается с обращения в регионально-сегментные строки TLB по базовому адресу из ASCE и индексам регионов и сегмента. При наличии совпадения из найденной строки считывается базовый адрес страничной таблицы, в противном случае осуществляется обращение в одну из региональных или сегментную таблицу в зависимости от числа совпавших элементов трассы трансляции. По считанному из строки этой таблицы базовому адресу и соответствующим индексам виртуального адреса выполняется повторное обращение в регионально-сегментные строки TLB. Такие обращения выполняются до получения базового адреса страничной таблицы, который вместе с индексом страницы из виртуального адреса используется для обращения в страничную строку TLB. При наличии совпадения из информационного поля страничной строки считывается реальный адрес страницы (PFRA).
Если в ASCE указан режим реальной адресации, то виртуальный адрес используется как реальный. При этом по указателю реального адресного пространства из ASCE и виртуальному адресу страницы (индексы RFX,
Механизм префиксации поясняется на рис. 2.10. При обращении в реальную память в область префиксации с адресами 0 $$\div$$ 8191 осуществляется преобразование реального адреса в абсолютный путем замены старших разрядов 0 $$\div$$ 50 на префикс, находящийся в регистре префикса каждого процессора. При обращении в реальную память в область с номером, равным префиксу, старшие разряды 0 $$\div$$ 50 реального адреса заменяются в абсолютном адресе на 0. Остальные реальные адреса соответствуют абсолютным адресам без преобразования. Содержимое регистра префикса может быть загружено или прочитано командами процессора. Загрузка нулевого префикса означает идентичность реальных и абсолютных адресов.
(рис 2.10) Механизм префиксации
Защита содержимого основной памяти необходима для исключения разрушения информации или неправильного использования программами, которые содержат ошибки или не имеют санкций доступа. В z/Architecture предусмотрены следующие виды защиты памяти:
Все виды защиты применяются независимо, и доступ к памяти разрешается при отсутствии запрета от любой из защит.
Каждому блоку памяти емкостью 4 KB, используемому в конфигурации, соответствует семиразрядный ключ в формате, представленном на табл. 2.12а.
| а) Формат ключа памяти | |||
|---|---|---|---|
| F | R | C | |
| 0 | 4 | 6 | |
| б) Таблица управления защитой по ключу | |||
|---|---|---|---|
| Совпадение ключа доступа и АСС | F | Разрешение доступа | |
| чтение | запись | ||
| Да | 0 | Да | Да |
| Нет | 0 | Да | Нет |
| Да | 1 | Да | Да |
| Нет | 1 | Нет | Нет |
F - бит защиты от чтения; при F=0 контролируется только запись, а при F=1 - и запись, и чтение.
R - бит обращения; устанавливается в единицу при каждом обращении в блок для чтения или записи (бит активности).
C - бит изменения блока; устанавливается в 1 при выполнении записи в блок (
Биты R и C могут применяться для учета свободных и модифицированных блоков памяти.
Принцип защиты по ключу иллюстрируется таблицей на табл. 2.12б. При каждом обращении в память с включенной защитой номер блока, в который осуществляется обращение, используется для чтения ключа из памяти ключей. Поле контроля доступа
Для обеспечения обращения одной программы со своим ключом в область памяти другой программы предусмотрена возможность отключения защиты для отдельных блоков памяти. Такой способ разрешается битом управления отключением защиты в CR0. При его установке и
Данный тип защиты реализуется в режиме AR-specified
Страничная защита предназначена для исключения несанкционированной записи в страницах виртуальной памяти. С этой целью в строках сегментных и страничных таблиц, используемых в процессе динамического преобразования адреса, задаются биты страничной защиты от записи. При нулевом значении этого бита в строке страничной таблицы разрешается и запись, и чтение, а при единичном - только чтение из соответствующей страницы. Бит страничной защиты в строке сегментной таблицы относится ко всем страницам, входящим в сегмент, и используется совместно с битами в строках страничной таблицы путем объединения по "ИЛИ". Таким образом, при единичном значении этого бита защищены от записи все страницы сегмента, а при нулевом - защита определяется битами в строках страничной таблицы.
Такая защита применяется для запрета записи в области памяти с адресами 0 $$\div$$ 511 и 4096 $$\div$$ 4607, то есть в начальные 512 байт первой и второй страниц, используемых в процессах прерываний. Защита осуществляется по
Процессор z/Architecture может находиться в одном из четырех взаимоисключающих состояний:
Таймер процессора функционирует в состояниях РАБОТА и ЗАГРУЗКА, а работа часов
Текущее слово состояния программы
Основными полями
| Следующее состояние | ЗАГРУЗКА | СТОП | РАБОТА | СБОЙ | |
|---|---|---|---|---|---|
| Исходное состояние | |||||
| ЗАГРУЗКА | Пошаговый режим | Непрерывный режим | Сбой оборудования | ||
| СТОП | Переключатели загрузки | Переключатель |
|||
| РАБОТА | Переключатели сброса процессора, приказ "Стоп" в команде SYGNAL PROCESSOR, завершение шага в пошаговом режиме работы, останов по совпадению адресов | ||||
| СБОЙ | - | Сброс | - |
Предусмотрено пять инициируемых извне функций процессора (таблица 2.15):
Сброс процессора обеспечивает очистку указателей сбоев оборудования и устраняет неопределенность состояния процессора, возникающую в результате таких сбоев, в том числе путем сохранения состояния для последующего анализа и восстановления. Сброс процессора обеспечивает:
| а) z/Architecture | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | R | 0 | 0 | 0 | T | IO | EX | Key | 0 | M | W | P | AS | CC | Program mask | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EA | ||||||||
| 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| BA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
| Адрес команды | |||||||||||||||||||||||||||||||
| 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |
| Адрес команды (продолжение) | |||||||||||||||||||||||||||||||
| б) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | R | 0 | 0 | 0 | T | IO | EX | Key | 1 | M | W | P | AS | CC | Program mask | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EA | ||||||||
| 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| BA | Адрес команды | ||||||||||||||||||||||||||||||
R - бит разрешения прерывания для записи программных событий. T - бит управления динамическим преобразованием адреса (DAT). При Т=0 преобразование не выполняется и адреса команд и операндов трактуются как реальные. IO - бит разрешения прерываний по вводу-выводу. ЕХ - бит разрешения внешних прерываний. Key - ключ защиты памяти, используемой процессором при обращении в ОП. М - бит разрешения прерываний по сбоям. W - бит включения режима ожидания, при котором команды не выполняются, но прерыванияя обрабатываются. Р - бит задания режима супервизор/задача, при Р=0 задан режим супервизора, в котором допустимо исполнение всех команд, при Р=1 в режиме задачи допустимо исполнение непривилегированных команд, а также полупривилегированных команд при наличии особых условий. AS - код управления режимом адресации, используется совместно с битом Т. СС - код условия, устанавливаемый по результатам выполнения команд, служит признаком для команд условных переходов. Program mask - маска программы для запрета/разрешения прерываний в особых случаях, возникающих в процессе исполнения программы: бит 20 - переполнение в операциях с фиксированной точкой, бит 21 - переполнение в операциях с десятичными числами, бит 22 - потеря значимости порядка в операциях с плавающей точкой в формате HFP, бит 23 - потеря значимости в операциях с HFP-числами. ЕВ, ВА - биты управления разрядностью Адрес команды - поле адреса очередной исполняемой в процессоре команды, используемое число разрядов определяется битами ЕА, ВА. |
|||||||||||||||||||||||||||||||
| Активируемые переключатели | Уровни воздействия | ||
|---|---|---|---|
| Процессор, к которому относится переключатель | Другие процессоры в конфигурации | Остальная часть конфигурации | |
| Системный сброс - нормальный | сброс процессора | сброс процессора | сброс подсистемы |
| Системный сброс - с очисткой | сброс с очисткой | сброс с очисткой | сброс с очисткой |
| Загрузка - нормальная | начальный сброс процессора с последующей |
сброс процессора | сброс подсистемы |
| Загрузка - с очисткой | сброс с очисткой с последующей |
сброс с очисткой | сброс с очисткой |
После выполнения перечисленных действий процессор переходит в состояние СТОП. Если после сброса следует процедура начальной загрузки
Начальный сброс процессора включает операции сброса процессора с последующими дополнительными операциями очистки и инициализации:
Сброс подсистемы предназначен для тех элементов конфигурации, которые не являются процессорами, путем выполнения следующих действий:
Сброс с очисткой объединяет операции начального сброса процессора со следующими операциями инициализации:
Сброс по питанию выполняется при включении питания. Сброс CP включает сброс регистров GR,
Для отсчета времени и взаимной синхронизации процессоров в z/Architecture предусмотрены три возможности:
Часы TOD представляют собой 104-разрядный
0 |
51 |
103 |
| 1 микросекунда |
В зависимости от модели инкремент
Часы могут находиться в одном из следующих состояний: выставлены, не выставлены, остановлены, неисправны или отключены. Переходы из одного состояния в другое задаются специальными командами или процедурами. Часы могут быть отключены при отсутствии питания или для технического обслуживания. После подачи питания часы обнуляются и переходят в невыставленное состояние. Переход в выставленное состояние осуществляется только из остановленного состояния. Часы останавливаются по команде SET CLOCK, загружающей новое значение показаний, если включено ручное управление
Установка показаний в часах выполняется командой SET CLOCK при наличии разрешающих условий. При этом в счетчик часов в инкрементируемые разряды загружается операнд команды, а остальные биты обнуляются. В
0 |
8 |
112 128 |
| 00000000 | Programmable Field |
Каждый процессор системы содержит 32-разрядный программируемый регистр
Компаратор времени предназначен для сравнения показаний часов
Загрузка уставки в регистр компаратора выполняется командой SET CLOCK COMPARATOR, а чтение - командой STORE CLOCK COMPARATOR. Загрузка компаратора или установка часов, приводящие к превышению уставки по отношению к показаниям часов, сбрасывают ранее установленный запрос прерывания.
Процессорный таймер является
Мультипроцессорная организация используется для распараллеливания вычислительных процессов с разделением данных и ресурсов и обеспечения высокой готовности системы. Мультипроцессирование включает механизмы и процессы управления мультипроцессорной организацией путем обеспечения взаимодействия процессоров через общую память и средства
Основу мультипроцессирования составляют:
Дополнительными средствами являются внешние прерывания. Канальная подсистема, включая все подканалы, в мультипроцессорной конфигурации может быть доступна всем процессорам. Прерывания по вводу-выводу являются плавающими, то есть могут быть обработаны любым процессором.
Для организации межпроцессорного взаимодействия введен адрес процессора в системе, присваиваемый каждому процессору при инсталляции системы и не изменяемый при ее реконфигурациях. Адрес процессора используется в команде Signal Processor для указания процессора, которому предназначен приказ, заданный в команде, а также идентифицирует процессор, сформировавший условия прерывания, его адресом, записанным в код прерывания.
Команда Signal Processor является основным средством взаимодействия процессоров путем сигнализации и получения ответа. Такая команда адресует один процессор (в одном из вариантов команды адресуются все процессоры) и передает ему один из приказов, перечисленных в таблице 2.18. В каждом процессоре предусмотрены средства для передачи, получения и выполнения приказов, а также формирования ответа для процессора, исполняющего команду Signal Processor.
При определенных условиях адресуемый процессор формирует для процессора, исполняющего команду Signal Processor, код состояния. Состояние включает условия, приведенные в таблице 2.19, причем каждому приказу, исполняемому в адресуемом процессоре, может соответствовать несколько передаваемых условий.
Прерывания процессора позволяют обеспечить быструю реакцию процессора при возникновении особых условий в самом процессоре, в подсистеме ввода-вывода, в других процессорах и вне системы. Прерывания допускаются только в режиме РАБОТА, за исключением прерывания для
| Приказ | Действия в адресуемом процессоре |
|---|---|
| Опрос состояния (Sense) | Передача в адресующий процессор кода своего состояния |
| Внешний вызов (External Call) | Формирование условия внешнего прерывания с указанием в коде прерывания адреса процессора, передавшего приказ |
| Экстренный сигнал ( |
Формирование условия внешнего прерывания экстренного сигнала с указанием в коде прерывания адреса процессора, передавшего приказ |
| Пуск (Start) | Переход в режим РАБОТА |
| Стоп (Stop) | Переход в режим СТОП |
| Повторный пуск (Restart) | Выполнение повторного пуска |
| Стоп с сохранением состояния (Stop and Store Status) | Сохранение состояния и переход в режим СТОП |
| Первоначальный сброс процессора (Initial CP Reset) | Выполнение первоначального сброса процессора без изменения архитектурного режима и сброса других процессоров и ввода-вывода |
| Сброс процессора (CP Reset) | Сброс процессора без изменения архитектурного режима и сброса других процессоров и ввода-вывода |
| Установка префикса (Set Prefix) | Загрузка префикса, указанного в команде, в регистр префикса процессора |
| Запись состояния по адресу (Store Status at Address) | Запись состояния процессора в область абсолютной памяти, адрес которой указан в команде. Состояние объемом 512 байт включает значения всех программно доступных регистров процессора |
| Установка архитектуры (Set Architecture) | Адрес процессора игнорируется, и все процессоры конфигурации выполняют установку архитектурного режима, заданного в команде: архитектура |
Все прерывания разбиты на шесть классов:
| Условие | Причины выработки условия в адресуемом процессоре |
|---|---|
| Сбой оборудования ( |
При выполнении команды обнаружен сбой оборудования |
| Некорректное состояние ( |
Приказы "Стоп с сохранением состояния", "Установка префикса" или "Установка архитектуры" не могут быть выполнены вследствие особых состояний процессора |
| Недействительный параметр (Invalid parameter) | Параметр, принятый с приказом, является недействительным, например, указана область памяти недоступная в данной конфигурации |
| Отложенное внешнее прерывание (External-call |
Реализация внешнего прерывания, инициализируемого командой, откладывается, так как в процессоре исполняется приказ из предыдущей команды Signal Processor |
| Остановлен (Stopped) | Процессор находится в состоянии СТОП |
| Вмешательство оператора (Operator intervening) | Процессор выполняет некоторые операции, инициированные местными или удаленными операторными возможностями |
| Стоп при сбое (Check stop) | Процессор находится в состоянии СТОП при сбое |
| Не функционирует (Inoperative) | Выполнение операции, определенной приказом, требует использования сервисного процессора, который не функционирует |
| Недействительный приказ (Invalid order) | Принят неопределенный или не используемый код приказа |
| Контроль приема (Receiver check) | В процессе передачи при исполнении команды Signal Processor обнаружены сбои |
Причина прерывания внутри класса уточняется кодом прерывания этого класса, который в процессе прерывания заносится в отдельную область памяти, закрепленную за данным
Каждому классу прерываний выделены две фиксированные области памяти, в одной из которых сохраняется текущее (старое)
В таблице 2.20 приведены адреса размещения
Большинство команд допускают прерывания после полного окончания их исполнения. В процессе исполнения могут быть прерваны команды, называемые прерываемыми (interruptible). К ним относятся такие команды, как MOVE LONG, COMPARE LOGICAL LONG и др. Процесс исполнения этих команд состоит из последовательно исполняемых этапов (unit of operation). Прерывания допускаются после завершения текущего этапа, и прерванная команда считается частично выполненной.
| Классы прерываний | Адреса памяти для размещения |
Маска прерываний | Адреса памяти для кода прерывания | ||
|---|---|---|---|---|---|
| Старое | Новое | в |
в управляющих регистрах | ||
| Внешние | 304 | 432 | 7 | CR0[48-50, 52-54, 57, 59] | 134-135 |
| Ввода-вывода | 368 | 496 | 6 | CR6[32-39] | 184-191 |
| От схем контроля | 352 | 480 | 13 | CR14[35-39] | 232-239 |
| Программные | 336 | 464 | 1, 20 $$\div$$ 23 | CR0[33], CR1[57], CR8[32-47], CR9[32-36], FPC? | 142-143 |
| 288 | 416 | - | - | - | |
| Вызов супервизора | 320 | 448 | - | - | 138-139 |
Процесс прерывания включает следующие действия:
Возврат к прерванной программе выполняется путем восстановления в процессоре старого
Прерывания, которые могут быть обработаны любым из процессоров конфигурации, называются плавающими прерываниями (floating interruption). Запрос на такое прерывание подается в первый из процессоров, в котором это прерывание не замаскировано, после чего сбрасывается для исключения повторных прерываний в других процессорах. К плавающим прерываниям относятся прерывания ввода-вывода, некоторые из внешних прерываний и от схем контроля.
Разрешение и запрет прерываний в процессоре реализуются с использованием маскирования. Маски прерываний размещаются в зависимости от класса в текущем
При одновременном поступлении нескольких запросов на прерывания для их обслуживания в определенном порядке используется механизм
Внутри класса все прерывания также ранжируются путем присвоения соответствующих приоритетов.
Обработка одновременно поступивших запросов осуществляется путем последовательной записи старых
Основной функцией процессора является выборка и исполнение команд, включая выборку и сохранение операндов. Биты 31, 32 текущего
Исполнение команд программы должно осуществляться в их концептуальной последовательности, то есть в порядке, определяемом логикой программы. При этом очередная команда может быть выбрана и исполнена после завершения действий, связанных со всеми предшествующими командами.
На практике действительная последовательность выборки команд и операндов может не совпадать с концептуальной. Это связано, в первую очередь, с необходимостью распараллеливания процессов выборки и исполнения команд в каждом процессоре, а также с взаимным влиянием процессоров, работающих с общей памятью.
В режимах реального, главного и вторичного адресных пространств команды выполняются в концептуальной последовательности, когда очередная команда может быть выбрана после завершения текущей и до начала операций, связанных с очередной командой. В этом случае текущая команда может модифицировать очередную команду. В режиме с регистрами доступа и базового адресного пространства последовательность выборки также концептуальная, за одним исключением. Команда с операндом, формируемым предшествующей командой, может быть выбрана до записи этого операнда в память, то есть модификация очередной команды текущей командой недопустима.
Для сохранения концептуальной последовательности исполнения команд в процессорах используется система блокировок. Выполнение команды осуществляется обычно фрагментами, что может привести к наличию в памяти промежуточных значений операндов, доступных другим абонентам. Это также требует блокировок обращений.
Механизм блокировок основан на сравнении
Выполнение прерывания, сброса процессора или выполнение определенных команд может вызвать исполнение процесса, называемого сериализацией (Serialization). Под сериализацией понимается завершение всех обращений в память, концептуально предшествующих точке сериализации.
Выборка команд из памяти включает чтение 1 $$\div$$ 3 полуслов по адресу из текущего
Исполнение команды может завершиться одним из следующих вариантов:
Для большинства команд варианты завершения относятся к команде в целом, так как они состоят из одного этапа (unit of operation). Завершение многоэтапных прерываемых команд может выполняться одним из рассмотренных выше способов после каждого из выделенных этапов исполнения.
Трассировка (tracing) - процесс непрерывной записи в таблицу трассировки информации о наиболее существенных событиях в процессоре. Такие записи позволяют определять причины различных проблемных состояний процессора. Трассировка включает реализацию четырех функций, каждая из которых завершается записью строки таблицы трассировки.
Трассировка переходов реализуется после исполнения определенных команд перехода. В строку таблицы при этом записывается адрес перехода с учетом режима адресации, устанавливаемого после перехода (24-, 31-, 64-разрядный адрес). Примерами команд, вызывающих трассировку ветвлений, являются команды BALR при R2 $$\ne$$ 0, BASR при R2 $$\ne$$ 0 и др.
Трассировка ASN предназначена для фиксации событий, связанных со сменой адресных пространств и трансляцией
Трассировка режимов используется для записи информации о переключениях режимов адресации из базового (24- или 31-разрядного) в расширенный (64-разрядный) или обратно. После исполнения команд SAM, BASSM,
Представленные выше три типа трассировки относятся к неявной трассировке в отличие от прямой трассировки, выполняемой по специальной команде.
Прямая трассировка производится принудительно при исполнении команд TRACE, TRACG путем занесения в таблицу текущего времени из
Общий формат строки представлен в табл. 2.21.
| 1 $$\div$$ 12 бит | 2 $$\div$$ 142 байт |
| Идентификатор типа трассировки | Поля сохраняемых параметров |
Для адресации таблицы трассировки используется реальный адрес текущей строки, находящийся в управляющем регистре CR12. В этом же регистре указываются четыре управляющих бита разрешения перечисленных выше функций трассировки. Трассировка выполняется в процессе реализации соответствующих команд и при наличии разрешения. В текущую адресуемую строку таблицы записываются предписанные параметры трассировки с идентификатором типа трассировки, и адрес строки в CR12 увеличивается на длину записанной строки. Некоторые команды могут вызвать запись более одной строки с разными типами трассировки.
Применяется для регистрации информации о программных событиях, которая может использоваться в процессах отладки программ. Выделяют следующие типы запоминаемых программных событий:
Типы регистрируемых событий и область памяти для их записи указываются в управляющих регистрах CR9, 10, 11 (табл. 2.22). Опция учета адресных пространств, управляемая битом S, может быть задействована только при включенном механизме динамического преобразования адреса и при задании в коде управления адресным пространством ASCE значения бита S, разрешающего регистрацию программных событий записи в определенную область памяти этого пространства.
| CR9 | EM | B | S | ||||
| CR10 | Начальный адрес области памяти PER | ||||||
| CR11 | Конечный адрес области памяти PER | ||||||
EM - четырехразрядная маска разрешения регистрации разных типов программных событий. В - бит разрешения опции попадания адреса перехода в заданную область памяти. S - бит разрешения опции задания адресных пространств, в которых находится выделенная область памяти с регистрацией записи. Начальный и конечный адреса ограничивают область памяти, обращения в которую могут вызвать PER-событие. |
|||||||
Процесс регистрации программных событий включается битом R в
| Адреса ячеек ОП | ||||
|---|---|---|---|---|
0 15 |
||||
| 150 $$\div$$ 151 | PERC | 000 | ATMID | AI |
0 63 |
||||
| 152 $$\div$$ 159 | PER Address | |||
0 8 |
||||
| 161 | 0000 | PAID | ||
Помимо этого, в старом
Использование регистрации программных событий может снизить производительность системы, для отключения этого механизма в программе следует сбросить бит R в
Сервер zSeries обеспечивает три уровня конфигурирования и может функционировать с использованием одного, двух или трех уровней управления. Такими уровнями являются [2.1]:
В серверах z990, z890 базовый режим возможен только в сочетании с режимом логических разделов и отдельно не используется. Информация об уровне, в котором исполняется программа, и о компонентах, на которых реализуется уровень, может быть получена командой STORE SYSTEM INFORMATION (STSI). Исполнение такой команды допускается только в том случае, если запрашиваемый уровень равен или меньше уровня текущей программы.
Максимальное количество разделов LPAR определяется моделью сервера и может достигать 30 для z990, z890 (в перспективе - 60) и 15 - для предшествующих генераций моделей [2.4, 2.5]. Логический раздел LPAR определен как совокупность логических ресурсов, реализуемых выделенными для него
Каждый логический раздел сервера характеризуется рядом параметров, которые задаются в процессе его открытия:
Данные параметры и информация о выделенных для раздела ресурсах формируются через консоль управления HMC и сохраняются в дисковой памяти элемента поддержки SE в виде профиля раздела (
В логический раздел могут быть выделены процессоры разных типов: CP, ICF, IFL или zAAP. Каждый из процессоров может быть постоянно закреплен (
Распределение основной и расширенной памяти между разделами выполняется в процессе создания LPAR и предусматривает выделение каждому из разделов части адресного пространства памяти. Максимальный объем памяти, выделяемой для одного раздела, ограничен объемом используемой в сервере памяти (для z/Architecture - 256 GB, в режиме
В процессе функционирования сервера резервная память может быть динамически перераспределена между LPAR посредством системы динамической реконфигурации памяти
| Объем инсталлированной памяти (GB) | Размер блока для LPAR (MB) |
|---|---|
| 5 $$\div$$ 8 | 16 |
| 8 $$\div$$ 16 | 32 |
| 16 $$\div$$ 32 | 64 |
| 32 $$\div$$ 64 | 128 |
Выделение каналов ввода-вывода для логических разделов выполняется следующими способами:
Совместное использование периферийных устройств в разных LPAR достигается путем их подключения через несколько закрепленных или реконфигурируемых каналов, а также через один совмещенный или объединенный канал.
Управление совместным функционированием всех LPAR осуществляется системным менеджером Processor Resource/Systems Manager (PR/SM) [2.6], реализованным на уровне милликодов системного гипервизора. Одной из основных функций PR/SM является распределение всех инсталлированных в сервер ресурсов между логическими разделами с учетом их весовых коэффициентов. Впервые системный менеджер был внедрен в 1988 году для управления четырьмя разделами и сейчас он расширен как по числу управляемых разделов (до 30 и более), так и по функциям, обеспечивающим оптимизацию управления ресурсами сервера. С этой целью логические разделы одного сервера могут быть объединены в LPAR-кластер (LPAR cluster) для оптимального управления и распределения ресурсов сервера между разделами кластера через PR/SM.
Новым дополнительным средством оптимизации использования ресурсов серверов zSeries является интеллектуальная система распределения ресурсов Intelligent Resource Director (IRD) [2.6]. Эта система объединяет функции менеджера PR/SM, реализующего приоритетное управление на уровне логических разделов, и менеджера рабочей нагрузки WLM (
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.