Россия |
Архитектура zSeries
Префиксация
Механизм префиксации поясняется на рис. 2.10. При обращении в реальную память в область префиксации с адресами 0 8191 осуществляется преобразование реального адреса в абсолютный путем замены старших разрядов 0
50 на префикс, находящийся в регистре префикса каждого процессора. При обращении в реальную память в область с номером, равным префиксу, старшие разряды 0
50 реального адреса заменяются в абсолютном адресе на 0. Остальные реальные адреса соответствуют абсолютным адресам без преобразования. Содержимое регистра префикса может быть загружено или прочитано командами процессора. Загрузка нулевого префикса означает идентичность реальных и абсолютных адресов.
Защита памяти
Защита содержимого основной памяти необходима для исключения разрушения информации или неправильного использования программами, которые содержат ошибки или не имеют санкций доступа. В z/Architecture предусмотрены следующие виды защиты памяти:
- защита по ключу;
- защита с использованием таблицы доступа;
- страничная защита;
- защита по младшим адресам.
Все виды защиты применяются независимо, и доступ к памяти разрешается при отсутствии запрета от любой из защит.
Защита по ключу
Каждому блоку памяти емкостью 4 KB, используемому в конфигурации, соответствует семиразрядный ключ в формате, представленном на табл. 2.12а.
б) Таблица управления защитой по ключу | |||
---|---|---|---|
Совпадение ключа доступа и АСС | F | Разрешение доступа | |
чтение | запись | ||
Да | 0 | Да | Да |
Нет | 0 | Да | Нет |
Да | 1 | Да | Да |
Нет | 1 | Нет | Нет |
ACC - поле контроля доступа; сравнивается с ключом доступа, формируемым при обращении в ОП.
F - бит защиты от чтения; при F=0 контролируется только запись, а при F=1 - и запись, и чтение.
R - бит обращения; устанавливается в единицу при каждом обращении в блок для чтения или записи (бит активности).
C - бит изменения блока; устанавливается в 1 при выполнении записи в блок (бит модификации).
Биты R и C могут применяться для учета свободных и модифицированных блоков памяти.
Принцип защиты по ключу иллюстрируется таблицей на табл. 2.12б. При каждом обращении в память с включенной защитой номер блока, в который осуществляется обращение, используется для чтения ключа из памяти ключей. Поле контроля доступа ACC из считанного ключа сравнивается с ключом доступа, находящимся в PSW, управляющем регистре или в канальной системе. При совпадении ключей или нулевом ключе доступа разрешается обращение любого типа, а при несовпадении - запрещается либо только запись (при F=0), либо и запись, и чтение (при F=1). При запрете обращения реализуется прерывание.
Для обеспечения обращения одной программы со своим ключом в область памяти другой программы предусмотрена возможность отключения защиты для отдельных блоков памяти. Такой способ разрешается битом управления отключением защиты в CR0. При его установке и ACC=9 защита не используется. Помимо этого предусмотрена возможность отключения защиты обращения для чтения по эффективным адресам 0 2047. Такая отмена разрешается другим управляющим битом в CR0. Исключение составляет ситуация, когда эффективный адрес является виртуальным, и установлен бит запрета отключения защиты от чтения в ASCE.
Защита адресных пространств с использованием таблицы доступа
Данный тип защиты реализуется в режиме AR-specified Virtual Address и относится к адресному пространству, задаваемому в регистре доступа. С этой целью в строке таблицы доступа Access List (см. рис. 2.8), используемой в процессе трансляции кода ALET из регистра доступа, указывается бит запрета записи FO, нулевое значение которого разрешает и запись, и чтение, а единичное - только чтение.
Страничная защита
Страничная защита предназначена для исключения несанкционированной записи в страницах виртуальной памяти. С этой целью в строках сегментных и страничных таблиц, используемых в процессе динамического преобразования адреса, задаются биты страничной защиты от записи. При нулевом значении этого бита в строке страничной таблицы разрешается и запись, и чтение, а при единичном - только чтение из соответствующей страницы. Бит страничной защиты в строке сегментной таблицы относится ко всем страницам, входящим в сегмент, и используется совместно с битами в строках страничной таблицы путем объединения по "ИЛИ". Таким образом, при единичном значении этого бита защищены от записи все страницы сегмента, а при нулевом - защита определяется битами в строках страничной таблицы.
Защита зоны начальных адресов памяти
Такая защита применяется для запрета записи в области памяти с адресами 0 511 и 4096
4607, то есть в начальные 512 байт первой и второй страниц, используемых в процессах прерываний. Защита осуществляется по эффективным адресам, формируемым командами процессоров, до их преобразований при использовании DAT и префиксации. Разрешение защиты задается специальным битом в управляющем регистре CR0. Если эффективный адрес преобразуется с применением DAT, защита может быть отключена управляющим битом в коде ASCE, который используется в процессе преобразования.