Опубликован: 11.04.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 2:

Архитектура zSeries

Префиксация

Механизм префиксации поясняется на рис. 2.10. При обращении в реальную память в область префиксации с адресами 0 \div 8191 осуществляется преобразование реального адреса в абсолютный путем замены старших разрядов 0 \div 50 на префикс, находящийся в регистре префикса каждого процессора. При обращении в реальную память в область с номером, равным префиксу, старшие разряды 0 \div 50 реального адреса заменяются в абсолютном адресе на 0. Остальные реальные адреса соответствуют абсолютным адресам без преобразования. Содержимое регистра префикса может быть загружено или прочитано командами процессора. Загрузка нулевого префикса означает идентичность реальных и абсолютных адресов.

Механизм префиксации

Рис. 2.10. Механизм префиксации

Защита памяти

Защита содержимого основной памяти необходима для исключения разрушения информации или неправильного использования программами, которые содержат ошибки или не имеют санкций доступа. В z/Architecture предусмотрены следующие виды защиты памяти:

  • защита по ключу;
  • защита с использованием таблицы доступа;
  • страничная защита;
  • защита по младшим адресам.

Все виды защиты применяются независимо, и доступ к памяти разрешается при отсутствии запрета от любой из защит.

Защита по ключу

Каждому блоку памяти емкостью 4 KB, используемому в конфигурации, соответствует семиразрядный ключ в формате, представленном на табл. 2.12а.

Таблица 2.12. Защита по ключу
а) Формат ключа памяти
ACC F R C
0 4 6

б) Таблица управления защитой по ключу
Совпадение ключа доступа и АСС 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 \div 2047. Такая отмена разрешается другим управляющим битом в CR0. Исключение составляет ситуация, когда эффективный адрес является виртуальным, и установлен бит запрета отключения защиты от чтения в ASCE.

Защита адресных пространств с использованием таблицы доступа

Данный тип защиты реализуется в режиме AR-specified Virtual Address и относится к адресному пространству, задаваемому в регистре доступа. С этой целью в строке таблицы доступа Access List (см. рис. 2.8), используемой в процессе трансляции кода ALET из регистра доступа, указывается бит запрета записи FO, нулевое значение которого разрешает и запись, и чтение, а единичное - только чтение.

Страничная защита

Страничная защита предназначена для исключения несанкционированной записи в страницах виртуальной памяти. С этой целью в строках сегментных и страничных таблиц, используемых в процессе динамического преобразования адреса, задаются биты страничной защиты от записи. При нулевом значении этого бита в строке страничной таблицы разрешается и запись, и чтение, а при единичном - только чтение из соответствующей страницы. Бит страничной защиты в строке сегментной таблицы относится ко всем страницам, входящим в сегмент, и используется совместно с битами в строках страничной таблицы путем объединения по "ИЛИ". Таким образом, при единичном значении этого бита защищены от записи все страницы сегмента, а при нулевом - защита определяется битами в строках страничной таблицы.

Защита зоны начальных адресов памяти

Такая защита применяется для запрета записи в области памяти с адресами 0 \div 511 и 4096 \div 4607, то есть в начальные 512 байт первой и второй страниц, используемых в процессах прерываний. Защита осуществляется по эффективным адресам, формируемым командами процессоров, до их преобразований при использовании DAT и префиксации. Разрешение защиты задается специальным битом в управляющем регистре CR0. Если эффективный адрес преобразуется с применением DAT, защита может быть отключена управляющим битом в коде ASCE, который используется в процессе преобразования.

Сергей Мосолов
Сергей Мосолов
Россия
Иван Панченко
Иван Панченко
Казахстан, Астана, сш.№16, 2009