Московский государственный университет путей сообщения
Опубликован: 11.04.2006 | Доступ: свободный | Студентов: 1311 / 300 | Оценка: 4.39 / 4.00 | Длительность: 17:21:00
ISBN: 978-5-9556-0036-1
Специальности: Разработчик аппаратуры
Лекция 2:

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

Авторизация адресных пространств

Под авторизацией понимается процесс проверки разрешения на открытие конкретного адресного пространства программой с текущим индексом авторизации. Авторизация или санкционирование адресных пространств выполняется после трансляции задающего его кода ASN или ALET с целью проверки допустимости открытия адресного пространства программой, запустившей трансляцию. Для этого используется специальная таблица авторизации (Authority Table), каждая строка которой содержит два бита разрешения открытия главного (бит P) или вторичного (бит S) адресных пространств. Выбор строки определяется индексом авторизации (Authorization Index - AX) или индексом расширенной авторизации (Extended Authorization Index - EAX), находящимися при исполнении текущей программы в управляющих регистрах CR4 и CR8 соответственно. Общая схема процесса авторизации показана на рис. 2.8.

Схема авторизации адресных пространств

Рис. 2.8. Схема авторизации адресных пространств

ASN - авторизация выполняется после трансляции кода адресного пространства ASN. На завершающем этапе трансляции после выборки строки таблицы ASN-second-table, содержащей код управления адресным пространством ASCE, из нее одновременно считываются два поля, определяющие местоположение таблицы авторизации в памяти:

  • поле базового адреса таблицы авторизации (Authority Table Origin - ATO);
  • поле длины таблицы (Authority Table Length - ATL).

Индекс AX из управляющего регистра CR4 суммируется с базовым адресом ATO для формирования адреса строки таблицы авторизации с контролем границы таблицы по полю ее длины ATL. При единичном значении бита разрешения открытия, считанного из адресуемой строки, допускается открытие соответствующего типа адресного пространства.

Расширенная ASN - авторизация выполняется в режиме Access-register mode, использующем регистры доступа для задания адресных пространств. В этом случае базовый адрес и длина таблицы авторизации берется из строки таблицы доступа (Access List), в которой задается также адрес строки таблицы ASN-second-table с используемым кодом управления адресным пространством ASCE. Авторизация при этом выполняется в несколько этапов. Вначале в выбранной строке таблицы Access List проверяется бит защиты памяти FO, единичное значение которого разрешает только чтение из памяти. Затем проверяется бит P, управляющий процессом авторизации. При P=0 адресное пространство считается авторизированным независимо от индекса авторизации. При P=1 авторизация выполняется путем сравнения индекса расширенной авторизации EAX из управляющего регистра CR8 и поля индекса ALEAX из строки таблицы доступа. При совпадении использование адресного пространства допустимо, в противном случае выполняется дополнительное обращение в таблицу авторизации с использованием базового адреса и длины этой таблицы из строки таблицы доступа и индекса EAX из CR8. Авторизация завершается успешно при разрешающем значении бита S, считанного из таблицы авторизации.

Динамическое преобразование адреса (DAT)

Полученный в результате трансляции кодов ASN или ALET код ASCE используется для динамического преобразования DAT виртуального адреса в реальный (см. рис. 2.4). Формат виртуального адреса z/Architecture приведен на табл. 2.9. Разрядность адреса равна 64, а при реализации архитектур с 24- или 31-разрядным адресом старшие биты соответственно 0 \div 39 или 0 \div 32 обнуляются. Формат в общем случае включает четыре типа индексов, используемых при обращении в таблицы DAT. Индексы сегмента SX, страницы PX и байта BX находятся в младших 24 или 31 разрядах виртуального адреса и соответствуют сегментно-страничной организации памяти. Эти индексы задают, соответственно, номера строк в сегментной и страничной таблицах, а также адрес байта внутри страницы. Расширенный 64-разрядный формат адреса помимо страниц и сегментов предполагает использование дополнительных уровней представления адресного пространства - регионов памяти. Емкости регионов, сегментов и страниц кратны соответственно 2 GB, 1 MB, 4 KB. Максимально возможное число регионов - 8 GB. Номер региона, занимающий старшие 33 бита адреса 0 \div 32, в свою очередь состоит из трех полей - первого (RFX), второго (RSX) и третьего (RTX) индексов региона. Использование всех трех индексов допускает объем памяти до 16 EB (Exa Byte = 260 байт), без RFX - до 8 PB (Peta Byte = 250 байт), а без RFX и RSX - до 4 TB (Tera Byte = 240 байт).

Таблица 2.9. Формат виртуального адреса
0 11 22 33 44
52   63
RFX RSX RTX SX PX BX

Процесс динамического преобразования адреса определяется управляющими битами 5, 16, 17 PSW (таблица 2.10). Бит 5 определяет тип адресного пространства - реальное или виртуальное. DAT выполняется в режиме виртуального пространства, причем источник кода ASCE определяется управляющими битами 16, 17 PSW.

Общая схема DAT представлена на рис. 2.9. В соответствии с таблицей 2.10 определяется источник ASCE, задающий базовый адрес первой из таблиц, используемых в преобразовании. При реализации DAT может быть использовано до пяти уровней преобразования, каждый из которых определяется отдельной таблицей:

  • первая региональная таблица (Region First Table);
  • вторая региональная таблица (Region Second Table);
  • третья региональная таблица (Region Third Table);
  • сегментная таблица (Segment Table);
  • страничная таблица (Page Table).

Строка каждой из таблиц содержит идентификатор своего типа (TT) и базовый адрес таблицы следующего уровня (RSTO - для второго уровня регионов, RTTO- для третьего уровня регионов, STO - для сегментной таблицы, PTO - для страничной таблицы) и после суммирования с соответствующим индексом из виртуального адреса определяет строку этой таблицы. Длина следующей таблицы (число блоков по 4KB) указывается в поле TL. Кроме того, в поле TF указывается смещение начала следующей таблицы относительно конца текущей в тех же единицах измерения. Бит I определяет доступность регионов сегментов и страниц, охватываемых строкой.

Динамическое преобразование адреса

Рис. 2.9. Динамическое преобразование адреса
Таблица 2.10. Управление выбором ASCE для DAT
Биты PSW DAT Режим адресации Источник ASCE
5 16 17     Адреса команд Адреса операндов
0 0 0 Откл. Real Mode Real Real
0 0 1 Откл. Real Mode Real Real
0 1 0 Откл. Real Mode Real Real
0 1 1 Откл. Real Mode 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 AST
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 или строка таблицы AST.

Таблица 2.11. Управление числом уровней DAT
DT Первая таблица DAT Тип TO в ASCE
11 Первая региональная таблица (Region First Table) RSTO
10 Вторая региональная таблица (Region Second Table) RTTO
01 Третья региональная таблица (Region Third Table) STO
00 Сегментная таблица (Segment Table) PTO

Поле DT из выбранного ASCE в соответствии с таблицей 2.11 определяет число уровней преобразования и таблицу, в которую осуществляется первое обращение. Для этого базовый адрес таблицы из ASCE суммируется с соответствующим индексом из виртуального адреса. При обращении в первую региональную таблицу используется индекс RFX, во вторую региональную таблицу - индекс RSX, в третью региональную таблицу - индекс RTX и в сегментную таблицу - индекс SX. При DT=11 последовательно выполняются обращения в первую, вторую и третью региональные таблицы и в сегментную таблицу, при DT=10 - во вторую и третью региональные таблицы и в сегментную таблицу, при DT=01 - в третью региональную таблицу и в сегментную таблицу, а при DT=00 обращение осуществляется сразу в сегментную таблицу с пропуском всех региональных таблиц. Все старшие неиспользуемые индексы, соответствующие пропущенным таблицам, должны быть нулевыми, в противном случае преобразование прерывается. Контроль обращений осуществляется с учетом длины таблиц и пропусков между ними, заданных кодом ASCE и в строках таблиц, для исключения обращений за их пределы.

По базовому адресу из считанной строки сегментной таблицы и индексу PX осуществляется обращение в страничную таблицу, откуда считывается реальный адрес страницы (Page-Frame Real Address - PFRA). Этот адрес конкатенируется с индексом байта BX внутри страницы, который передается из виртуального адреса в реальный без изменений, в результате чего формируется реальный адрес обращения в ОП, являющийся выходной функцией DAT.

Поскольку все таблицы находятся в реальной памяти, и в процессе DAT может потребоваться до пяти обращений в таблицы, время преобразования может быть недопустимо большим. Для его уменьшения в состав устройства DAT вводится буфер быстрой переадресации TLB (Translation-Lookaside Buffer). В литературе такой буфер иногда называют кэш-памятью адресов. В мультипроцессорных реализациях каждый процессор имеет собственный буфер TLB. Процессор обращается в таблицы DAT только при первом преобразовании виртуального адреса. Полученные из таблиц строки вместе с исходными атрибутами преобразования (базовые адреса, индексы, параметры) запоминаются в строках TLB. При последующих обращениях с теми же атрибутами выполняется обращение в TLB без обращений в память.

Поскольку строки таблиц DAT, размещенных в памяти, и соответствующие им строки TLB должны в процессе трансляции формировать одни и те же ссылки, содержимое этих строк должно выравниваться. С этой целью для строк таблиц DAT, хранящихся в памяти, вводятся два типа состояний: присоединенное (attached) и доступное (valid). Строка считается присоединенной к конкретному процессору, если он может использовать ее для DAT. Одновременно строка может быть присоединенной для нескольких процессоров. Строка является доступной, если регион, сегмент или страница, связанные с этой строкой, имеются в памяти (установлен бит доступности этих блоков в соответствующих строках).

Каждая строка TLB состоит из двух частей: поле атрибутов для поиска строки, соответствующей текущим атрибутам DAT (ассоциативное поле) и поле результата преобразования (информационное поле).

В TLB предусмотрено использование трех типов строк:

  • Комбинированные регионально-сегментные строки в ассоциативном поле содержат базовые адреса региональных (если регионы используются) и сегментной таблиц, использовавшихся при выполнении DAT; цепочка таких адресов называется трассой трансляции. Начало трассы задается в ASCE. Трасса может быть размещена в строке TLB, если все строки таблиц DAT, содержащие элементы трассы, присоединены и доступны. Помимо трассы, ассоциативное поле включает индексы регионов (RFX, RSX, RTX) и сегмента (SX) виртуального адреса. Информационное поле строки содержит базовый адрес страничной таблицы, полученный в результате преобразования.
  • Страничные строки в ассоциативном поле содержат базовый адрес страничной таблицы, который получен из присоединенной и доступной строки таблицы DAT, и индекс страницы (PX) из виртуального адреса. В информационном поле строки содержится реальный адрес страницы PFRA, который и является конечным результатом динамического преобразования адреса.
  • Строки реальных адресных пространств включают ассоциативное поле, состоящее из указателя реального адресного пространства Real-space Token Origin (входит в соответствующее ASCE при установленном бите R, задающем реальное адресное пространство), и индексы RFX, RSX, RTX, SX, PX, входящие в виртуальный адрес. Такие строки используются не для DAT, а для контроля допустимости обращения в реальное адресное пространство.

Динамическое преобразование адреса начинается с обращения в регионально-сегментные строки TLB по базовому адресу из ASCE и индексам регионов и сегмента. При наличии совпадения из найденной строки считывается базовый адрес страничной таблицы, в противном случае осуществляется обращение в одну из региональных или сегментную таблицу в зависимости от числа совпавших элементов трассы трансляции. По считанному из строки этой таблицы базовому адресу и соответствующим индексам виртуального адреса выполняется повторное обращение в регионально-сегментные строки TLB. Такие обращения выполняются до получения базового адреса страничной таблицы, который вместе с индексом страницы из виртуального адреса используется для обращения в страничную строку TLB. При наличии совпадения из информационного поля страничной строки считывается реальный адрес страницы (PFRA).

Если в ASCE указан режим реальной адресации, то виртуальный адрес используется как реальный. При этом по указателю реального адресного пространства из ASCE и виртуальному адресу страницы (индексы RFX, RSX, RTX, SX, PX) осуществляется обращение в строки реальных адресных пространств TLB, используемые для контроля допустимости обращения в реальное адресное пространство.