Dynamic Address Translation (в архтектуре Z)


Dynamic Address Translation (в архтектуре Z)

В архитектуре Z динамическим преобразованием адреса (Dynamic Address Translation или DAT) называется преобразование виртуального адреса в реальный.

Задание адресных пространств

В архитектуре Z может существовать до 216 адресных пространств, задаваемых уникальным 16-битным номером (Adress Space Number или ASN). Смена адресных пространств в процессоре выполняется путём загрузки ASN в соответствующие управляющие регистры процессора привилегированными и полупривилегированными командами. Далее код ASN транслируется в код управления адресным пространством ASCE(Address Space Control Element), определяющий параметры процесса динамического преобразования адреса в данном адресном пространстве.

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

После того как идентификатор ASN транслирован в код ASCE начинается непосредственно процесс преобразования.

Виртуальный адрес имеет следующий формат :

Идентификатор RFX RSX RTX SX PX BX
Длина в битах 11 11 11 11 8 11

Формат в общем случае включает четыре типа индексов, используемых при обращении в таблицы DAT : индекс байта(BX), индекс страницы(PX), индекс сегмента(SX) и первого, втрого и третьего индекса региона. Использование всех трёх индексов допускает объём памяти до 16 EB (Exa Byte = 260 байт), без RFX — до 8 PB (Peta Byte = 250 байт), а без RFX и RSX — до 4 TB (Tera Byte = 240 байт). Индексы регионов используются только при 64-битной адресации, при 32-битной адресации старшие 32 бита обнуляются.

При реализации DAT может быть использовано до пяти уровней преобразования, каждый из которых определяется отдельной таблицей:

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

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

Формат ACSE :

TO R DT TL

TO — адрес первой таблицы : первой, второй или третьей региональной или сегментной таблицы, в зависимости от значения поля DT, а также длину той таблицы TL. Например при DT = 11 в TO будет находиться адрес первой региональной таблицы и при реализации DAT будут задействованы все 5 уровней преобразования. Бит R определяет тип адресного пространства (реальное или виртуальное).

Управление числом уровней DAT:

DT Первая таблица DAT
00 Первая региональная таблица
01 Вторая региональная таблица
10 Третья региональная таблица
11 Сегментная таблица

Когда тип поля TO в таблице ASCE определён начинается непосредственно процесс преобразования. А именно базовый адрес таблицы из ASCE суммируется с соответствующим индексом из виртуального адреса. При обращении в первую региональную таблицу используется индекс RFX, во вторую региональную таблицу — индекс RSX, в третью региональную таблицу — индекс RTX и в сегментную таблицу — индекс SX. Отсюда мы получаем адрес таблицы следующего уровня и суммируем его соответствующим индексом из виртуального адреса. По базовому адресу из сегментной таблицы и индекса PX из виртуального адреса мы получает адрес страничной таблицы, откуда по индексу BX находим искомый реальный адрес.

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

Ссылки

  • * Архитектура платформ IBM eServer zSeries. В.А. Варфоломеев, Э.К. Лецкий, М.И. Шамров, В.В. Яковлев. ISBN: 978-5-9556-0036-1. Глава "Архитектура zSeries"

Wikimedia Foundation. 2010.