Сравнение и замена позиции таблицы динамической трансляции адреса

Иллюстрации

Показать все

Изобретение относится к области обработки данных в вычислительной среде. Техническим результатом является обеспечение замены позиции таблицы динамической трансляции адреса (DAT). Компьютерно-реализуемый способ сравнения первой и второй позиций таблицы трансляций адресов включает: определение при помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции таблицы DAT, причем команда включает поле R1 и поле R2; и выполнение команды процессором, причем выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R2 команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R1) четно-нечетной регистровой пары, назначенной полем R1 команды; хранение содержимого четного регистра R1 в позиции второго операнда в качестве нового второго операнда на основе первого операнда, который равняется первоначальному второму операнду. 2 н. и 12 з.п. ф-лы, 7 ил.

Реферат

1. Область изобретения

Настоящее изобретение в целом касается обработки в вычислительной среде, в частности, одного или нескольких действий по сравнению и замене позиций таблицы адресов, очистки буферных позиций и команды для этих действий.

2. Уровень техники

Как описывается в Патенте США 7284100, «ДЕНОНСИРОВАНИЕ ХРАНЕНИЯ, ОЧИСТКА БУФЕРНЫХ ПОЗИЦИЙ И КОМАНДА ДЛЯ ЭТИХ ДЕЙСТВИЙ», зарегистрированном 12 мая 2003 года, который включен путем ссылки, выбранные единицы хранения, такие как сегменты хранения или области хранения, денонсируются. Денонсирование обеспечивается путем установки индикаторов денонсирования, расположенных в позициях структуры данных, соответствующих единицам хранения, подлежащим денонсированию. Кроме того, буферные позиции, связанные с денонсированными единицами хранения или другими выбранными

единицами хранения, очищаются. Предусматривается команда на выполнение денонсирования и/или очистки. Более того, очищаются буферные позиции, связанные с конкретным адресным пространством, без всякого денонсирования. Это также выполнятся по команде. Команда может быть реализована в программном обеспечении, в аппаратных средствах, встроенных программах или комбинации этих компонентов, или может быть эмулирована.

Краткое описание изобретения

Изобретение может быть реализовано в виде компьютерного программного продукта для выборочной очистки локального буфера динамической трансляции адреса (TLB) процессора или нескольких буферов динамической трансляции адреса нескольких процессоров. Компьютерный программный продукт включает: машиночитаемый носитель данных, в котором реализован программный код, причем программный код считывается процессором компьютера для выполнения способа. Способ включает определение при помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции таблицы динамической трансляции адреса (DAT); команда включает поле R1 и поле R2; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R2 команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R1) четно-нечетной регистровой пары, назначенной полем R1 команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R1 в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (TLB), соответствующих позициям, сформированным из DAT, с использованием позиций таблицы трансляций на основе источника таблицы трансляций, обозначенного значением первоначального второго операнда.

Одним объектом изобретения является система для выполнения команды на сравнение и замену позиции таблицы динамической трансляции адреса (DAT). Система включает: запоминающее устройство; и процессор, сконфигурированный для сообщения с запоминающим устройством, причем компьютерная система сконфигурирована для выполнения способа. Способ включает определение при

помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции DAT; команда включает поле R1 и поле R2; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R2 команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R1) четно-нечетной регистровой пары, назначенной полем R1 команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R1 в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (TLB), соответствующих позициям, сформированным из DAT, с использованием позиций таблицы трансляций на основе источника таблицы трансляций, обозначенного значением первоначального второго операнда.

Другим объектом изобретения является компьютерно-реализуемый способ сравнения первого операнда и второй позиции таблицы трансляций адресов. Способ включает определение при помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции таблицы динамической трансляции адреса (DAT); команда включает поле R1 и поле R2; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R2 команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R1) четно-нечетной регистровой пары, назначенной полем R1 команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R1 в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (TLB), соответствующих позициям, сформированным из DAT, с использованием позиций таблицы трансляций на основе источника таблицы трансляций, обозначенного значением первоначального второго операнда.

Дополнительные особенности и преимущества реализуются при помощи описанных технологий. Другие варианты осуществления и аспекты подробно описываются авторами и рассматриваются как включенные.

Краткое описание фигур

Дополнительные цели, особенности и преимущества станут понятны по ознакомлении с представленным ниже подробным описанием в сочетании с сопроводительными фигурами, среди которых:

ФИГ.1 показывает один вариант осуществления вычислительной среды с включением и использованием одного или нескольких аспектов;

ФИГ.2 показывает один вариант осуществления других деталей, связанных с контроллером с ФИГ.1;

ФИГ.3 показывает один вариант осуществления хост-компьютера который может эмулировать другой компьютер;

ФИГ.4 показывает изображение команды на СРАВНЕНИЕ И ЗАМЕНУ ПОЗИЦИИ ТАБЛИЦЫ DAT и ее функционирование;

ФИГ.5 показывает регистровые операнды команды на СРАВНЕНИЕ И ЗАМЕНУ ПОЗИЦИИ ТАБЛИЦЫ DAT;

ФИГ.6 показывает поле М4; и

ФИГ.7 показывает машиночитаемый носитель.

Подробное описание предпочтительных вариантов осуществления

Вычислительные среды могут использовать виртуальную память, которая обычно хранится во вспомогательном запоминающем устройстве, для увеличения размера доступной памяти. При обращении к странице виртуальной памяти виртуальный адрес, используемый при обращении к странице, транслируется путем динамической трансляции адреса в реальный хранящийся в памяти адрес. Если трансляция успешна, виртуальная память является действительной; в противном случае она недействительна. Страница виртуальной памяти обозначается как действительная или недействительная через недействительный бит в позиции таблицы страниц, и эта позиция включает реальный хранящийся в памяти адрес, если страница действительна.

Страницы памяти могут денонсироваться по странице за раз. Например, в вычислительной среде на основе архитектуры z/Architecture, предложенной корпорацией IBM, команда, указанная как команда недействительной позиции таблицы страниц (IPTE), используется для денонсирования одной или нескольких страниц виртуальной памяти. Денонсирование включает установку индикатора недействительности в управляющей структуре, связанной с виртуальной памятью и расположенной в физическом основном запоминающем устройстве, для указания на то, что виртуальный адрес местоположения в виртуальной памяти не может быть транслирован путем динамической трансляции адреса в адрес физического основного запоминающего устройства, также называемый реальным адресом. Кроме того, команда применяется для очистки внутренних машинных буферных позиций, связанных со страницей, которые могут использоваться во время динамической трансляции адреса для избежания доступа управляющих структур в физическое основное запоминающее устройство. Например, в архитектуре z/Architecture существуют буферы динамической трансляции адреса, используемые во время динамической трансляции виртуальных адресов в реальные адреса. Когда страница памяти денонсируется, соответствующие буферы также очищаются от позиций, связанных с этой страницей.

Также существуют команды, позволяющие полностью очищать буферы динамической трансляции адресов. Например, в архитектуре z/Architecture команда, называемая командой Compare and Swap and Purge (CSP), стирает все позиции буферов динамической трансляции адресов во всех ЦП в конфигурации; ОЧИСТКА TLB очищает все позиции TLB на ЦП, выполняющем команду.

Буфер динамической трансляции

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

Позиции в TLB не поддаются явной адресации программой.

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

Структура TLB

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

Любые применимые позиции региональных таблиц TLB, позиция таблиц сегментов TLB и позиция таблицы страниц TLB могут сливаться в единую позицию, называемую составной позицией таблицы TLB. Подобным образом при реализации может комбинироваться любое непрерывное подмножество уровней таблицы. В этом случае источники промежуточных таблиц, значения смещения и длины не требуют буферирования.

Может быть образован эквивалент комбинированной позиции региональной таблицы и таблицы сегментов (CRSTE) TLB, описанный в предыдущих версиях архитектуры, который отображает источник таблицы, показатель региона, показатель сегмента и бит общего сегмента в абсолютном адресе кадра сегмента или источнике таблицы страниц (и других назначенных полях).

Источник маркера в позиции реального пространства TLB неотличим от источника таблицы в составной позиции региональной таблицы или таблицы сегментов TLB.

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

Создание позиций TLB

Создание позиций региональных таблиц TLB, позиций таблиц сегментов TLB и позиций таблиц страниц TLB из позиций таблиц в реальной или абсолютной памяти и влияние любой манипуляции с содержанием позиций таблиц в памяти со стороны программы зависят от того, привязаны ли позиции в памяти к конкретному ЦП, и от того, действительны ли позиции.

Привязанное состояние позиции таблицы означает, что ЦП, к которому она привязана, может пытаться использовать позицию таблицы для неявной трансляции адресов, за исключением случаев, когда позиция таблицы для пространства первичных или внутренних адресов может быть привязана даже тогда, когда ЦП не производит выборку ни из одного из этих пространств. Позиция таблицы может быть привязана одновременно к нескольким ЦП.

Действительное состояние позиции таблицы показывает наличие регионального набора, региона, сегмента или страницы, связанных с позицией таблицы. Позиция действительна, когда бит недействительности региона, недействительности сегмента или недействительности страницы в позиции является нулевым.

Позиция региональной таблицы, позиция таблицы сегментов или позиция таблицы страниц может быть помещена в TLB в любое время, когда позиция привязана и действительна, и не должна вызывать исключений спецификации трансляции при использовании для трансляции.

Позиции региональных таблиц, при их наличии, и позиция таблицы сегментов, при ее наличии, которые используются для трансляции виртуального адреса, называются маршрутом трансляции. Позиция таблицы наивысшего уровня в маршруте трансляции привязывается в случае, когда она находится в пределах таблицы, указанной привязывающим элементом управления адресного пространства (ASCE). "В пределах таблицы" означает размещение согласно определению полей источника и длины в ASCE. ASCE является привязывающим ASCE, если выполняются все нижеуказанные условия:

1. Текущее слово состояния программы (PSW) указывает на активность DAT.

2. Текущее слово состояния программы не содержит ошибок, которые вызвали бы распознание раннего исключения по спецификации.

3. ASCE соответствует требованиям, изложенным ниже в пп. а, b, с или d.

a. ASCE является первичным ASCE в управляющем регистре 1.

b. ASCE является вторичным ASCE в управляющем регистре 7, и выполняется любое из следующих требований:

- ЦП пребывает в режиме вторичного пространства или режиме регистров доступа.

- ЦП пребывает в режиме первичного пространства, и контроль вторичного пространства, бит 37 управляющего регистра 0, равняется единице.

Операнд М, ЗАГРУЗКИ АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ прямо обеспечивает доступ к вторичному пространству или прямо обеспечивает трансляцию регистра доступа.

- Любой контроль доступа операнда (ОАС) ПЕРЕМЕЩЕНИЯ С НЕОБЯЗАТЕЛЬНЫМИ СПЕЦИФИКАЦИЯМИ прямо обеспечивает доступ к вторичному пространству или прямо обеспечивает трансляцию регистра доступа.

Дополнительное пояснение термина "прямо обеспечивает", применяемого в вышеизложенных двух пунктах, см. ниже в программной заметке.

c. ASCE находится в привязанной и действительной второй позиции таблицы ASN (ASTE) или используемой ALB ASTE, и выполняется любое из следующих требований:

- ЦП находится в режиме регистров доступа.

- Поле М4 ЗАГРУЗКИ АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ прямо обеспечивает возможность выполнения трансляции регистра доступа.

- ОАС ПЕРЕМЕЩЕНИЯ С НЕОБЯЗАТЕЛЬНЫМИ СПЕЦИФИКАЦИЯМИ любого операнда прямо обеспечивает возможность выполнения трансляции регистра доступа.

d. ASCE является внутренним ASCE в управляющем регистре 13.

Независимо от активности или неактивности DAT, ASCE также является привязывающим ASCE, если текущее слово состояния программы не содержит ошибок, которые вызвали бы распознание раннего исключения по спецификации, и выполняется любое из следующих условий:

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

Каждая из оставшихся позиций таблицы в маршруте трансляции привязывается, если она находится в пределах таблицы, обозначенной привязанной и действительной позицией следующего более высокого уровня, которая не должна вызывать исключений спецификации трансляции при использовании для трансляции, или используемой позицией TLB следующего более высокого уровня. "В пределах таблицы" означает определяемую полями источника, смещения и длины в позиции следующего более высокого уровня. Используемая позиция TLB объясняется в следующем разделе.

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

Позиция региональной таблицы или позиция таблицы сегментов вызывает исключение спецификации трансляции, если биты типов таблицы, биты 60 и 61, в позиции несовместимы с уровнем, на котором позиция встречается при использовании маршрута трансляции в процессе трансляции. Позиция таблицы сегментов также вызывает исключение спецификации трансляции, если бит управления собственного пространства находится в элементе управления адресного пространства, используемом для его выбора, и бит общего сегмента находится в позиции. Когда применяется EDAT-2, третья позиция региональной таблицы также вызывает исключение спецификации трансляции, если бит управления собственного пространства находится в элементе управления адресного пространства, используемом для его выбора, и бит общего региона находится в позиции. Позиция таблицы страниц вызывает исключение спецификации трансляции, если бит 52 в позиции равняется единице. Если EDAT-1 не применяется, позиция таблицы страниц также вызывает исключение спецификации трансляции, если бит 55 в позиции равняется единице.

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

- Внутренний ASCE считается привязывающим ASCE при осуществлении операции подсчета событий монитора.

Каждая из оставшихся позиций таблицы в маршруте трансляции является привязанной, если она находится в пределах таблицы, обозначенной привязанной и действительной позицией следующего более высокого уровня, которая не должна вызывать исключений спецификации трансляции при использовании для трансляции или используемой позицией TLB следующего более высокого уровня. "В пределах таблицы" означает определяемую полями источника, смещения и длины в позиции следующего более высокого уровня. Используемая позиция TLB объясняется в следующем разделе.

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

Позиция региональной таблицы или позиция таблицы сегментов вызывает исключение спецификации трансляции, если биты типов таблицы, биты 60 и 61, в позиции несовместимы с уровнем, на котором позиция встречается при использовании маршрута трансляции в процессе трансляции. А позиция таблицы сегментов также вызывает исключение спецификации трансляции, если бит управления собственного пространства находится в элементе управления адресного пространства, используемом для его выбора, и бит общего сегмента находится в позиции. При применении EDAT-2 третья позиция региональной таблицы также вызывает исключение спецификации трансляции, если бит управления собственного пространства находится в элементе управления адресного пространства, используемом для его выбора, и бит общего региона находится в позиции. Позиция таблицы страниц вызывает исключение спецификации трансляции, если бит 52 в позиции равняется единице. Если EDAT-1 не применяется, позиция таблицы страниц также вызывает исключение спецификации трансляции, если бит 55 в позиции равняется единице.

В связи с определенными выше привязанными и действительными ограничениями ЦП может формировать позиции TLB в ожидании будущих обращений к памяти или в результате предполагаемого выполнения команд.

Программная заметка: в представленном выше списке условий для привязывания ASCE в пунктах 3.b и 3.с термин "прямо обеспечивает..." применяется, как объясняется ниже:

- LPTEA прямо обеспечивает доступ к вторичному пространству, если поле М4 является 0010 двоичным.

- LPTEA прямо обеспечивает выполнение ART, если поле М4 является 0001 двоичным.

- Любой операнд MVCOS прямо обеспечивает доступ к вторичному пространству, если биты 8-9 ОАС операнда являются 10 двоичными, бит 15 О АС равняется единице, и контроль вторичного пространства, бит 37 управляющего регистра 0, равняется единице.

- Любой операнд MVCOS прямо обеспечивает выполнение ART, если биты 8-9 ОАС операнда являются 01 двоичными, и бит 15 ОАС равняется единице.

Использование позиций TLB

Применимое состояние позиции TLB означает, что ЦП может пытаться использовать позицию TLB для неявной трансляции адресов. Используемая позиция TLB привязывает следующую таблицу более низкого уровня, при ее наличии, и может применяться для конкретного случая неявной трансляции адресов.

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

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

1. Текущее слово состояния программы указывает на активность DAT.

2. Текущее слово состояния программы не содержит ошибок, которые вызвали бы распознание раннего исключения по спецификации.

3. Позиция TLB соответствует как минимум одному из следующих требований:

а. Бит общего региона является битом в третьей позиции региональной таблицы TLB.

b. Бит общего сегмента является битом в позиции таблицы сегментов TLB.

c. Поле источника таблицы ASCE (ASCETO) в позиции TLB соответствует полю источника таблицы или маркера в привязывающем элементе управления адресного пространства.

d. Позиция TLB является позицией второй региональной таблицы, третьей региональной таблицы или таблицы сегментов TLB, и поле источника таблицы текущего уровня в позиции TLB соответствует одному из следующих условий:

- Поле источника таблицы в привязывающем ASCE, прямо указывающее текущий уровень таблицы (как указано битами R и DT)

- Поле источника таблицы в привязанной позиции региональной таблицы следующего более высокого уровня

- Поле источника таблицы того же уровня в применимой позиции региональной таблицы TLB следующего более высокого уровня

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

1. Поле источника таблицы ASCE (ASCETO) в позиции TLB соответствует полю источника таблицы или маркера в элементе управления адресного пространства, применяемом при трансляции, и часть транслируемого виртуального адреса слева от показателя текущего уровня отвечает соответствующим полям показателей в позиции TLB.

2. Элемент управления адресного пространства применяем при трансляции обозначает таблицу текущего уровня, и поле источника таблицы текущего уровня в позиции TLB соответствует источнику таблицы в этом элементе управления адресного пространства.

3. Поле источника таблицы текущего уровня в позиции TLB соответствует источнику таблицы того же уровня в следующей позиции таблицы более высокого уровня или позиции TLB, применяемой при трансляции.

4. Для третьей позиции региональной таблицы TLB бит общего региона является битом в позиции TLB, и поля первого показателя региона и второго показателя региона в позиции TLB соответствуют полям транслируемого виртуального адреса.

Однако при применении EDAT-2, третья позиция региональной таблицы TLB не используется, если бит общего региона находится в позиции, и либо бит управления собственного пространства находится в элементе управления адресного пространства, применяемом при трансляции, либо этот элемент управления адресного пространства является обозначением реального пространства. В обоих этих случаях позиция TLB не используется, даже если поле источника таблицы ASCE (ASCETO) в позиции и поле источника таблицы или маркера в элементе управления адресного пространства совпадают.

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

1. Поле источника таблицы ASCE (ASCETO) в позиции TLB соответствует полю источника таблицы или маркера в элементе управления адресного пространства, применяемом при трансляции, и поле показателя региона в позиции TLB соответствует полю транслируемого виртуального адреса.

2. Поле источника таблицы сегментов в позиции TLB соответствует полю источника таблицы в элементе управления адресного пространства, применяемом при трансляции, и этот элемент управления адресного пространства является обозначением таблицы сегментов.

3. Поле источника таблицы сегментов в позиции TLB соответствует полю источника таблицы сегментов в третьей позиции региональной таблицы или третьей позиции региональной таблицы TLB, применяемой при трансляции.

4. Бит общего сегмента является битом в позиции TLB, и поле показателя региона в позиции TLB соответствует полю транслируемого виртуального адреса.

Однако позиция таблиц сегментов TLB не используется, если бит общего сегмента находится в позиции, и либо бит управления собственного пространства находится в элементе управления адресного пространства, применяемом при трансляции, либо этот элемент управления адресного пространства является обозначением реального пространства. В обоих этих случаях позиция TLB не используется, даже если поле источника таблицы ASCE (ASCETO) в позиции и поле источника таблицы или маркера в элементе управления адресного пространства совпадают.

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

Позиция реального пространства TLB может использоваться для неявной трансляции адресов только в случае, если поле источника маркера в позиции TLB соответствует полю источника таблицы или маркера в элементе управления адресного пространства, применяемом при трансляции и поля показателя региона, показателя сегмента и показателя страницы в позиции TLB соответствуют полям транслируемого виртуального адреса.

Адреса операндов ЗАГРУЗКИ АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, ЗАГРУЗКИ РЕАЛЬНОГО АДРЕСА и ХРАНЕНИЯ РЕАЛЬНОГО АДРЕСА, и доступы к массиву расширенного подсчета монитора могут транслироваться при помощи содержимого TLB, независимо от активности или неактивности DAT. Однако для ЗАГРУЗКИ АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, ЗАГРУЗКИ РЕАЛЬНОГО АДРЕСА и ХРАНЕНИЯ РЕАЛЬНОГО АДРЕСА позиции TLB формируются только при активном DAT.

Программные заметки:

1. Хотя содержимое позиции таблицы может быть скопировано в TLB только в случае, если позиция таблицы является привязанной и действительной, копия может оставаться в TLB даже если сама позиция таблицы перестает быть привязанной и действительной.

2. За исключением случаев, когда трансляции выполняются в результате операций расширенного подсчета монитора, содержимое не копируется в TLB, если DAT не активен, поскольку позиции таблицы в это время не привязываются. В частности, трансляция адреса операнда ЗАГРУЗКИ АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, ЗАГРУЗКИ РЕАЛЬНОГО АДРЕСА и ХРАНЕНИЯ РЕАЛЬНОГО АДРЕСА при неактивном DAT не вызывает размещения позиций в TLB.

И наоборот, при активном DAT информация может копироваться в TLB со всех позиций таблицы трансляции, которые могут использоваться для трансляции адресов, при текущих параметрах трансляции, установках битов управления адресного пространства и содержимом регистров доступа. Загрузка TLB не зависит от того, используется ли позиция для трансляции в рамках выполнения текущей команды, и такая загрузка может осуществляться при ЦП, пребывающем в режиме ожидания.

3. В TLB может существовать более одной копии содержимого позиции таблицы. Например, в некоторых вариантах реализации копия содержимого действительной позиции таблицы может располагаться в TLB для источника таблицы в каждом элементе управления адресного пространства, при помощи которого привязывается позиция.

Модификация таблиц трансляций

Когда привязанная и недействительная позиция таблицы становится действительной, и в TLB нет позиций, применимых для трансляции ассоциированного виртуального адреса, изменение вступает в силу не позднее, чем по окончании текущей единицы действия. Подобным образом, если непривязанная и действительная позиция таблицы становится привязанной, и в TLB нет применимой позиции для привязанного виртуального адреса, изменение вступает в силу не позднее, чем по окончании текущей единицы действия.

Когда действительная и привязанная позиция таблицы изменяется, и если до очистки TLB от позиций, приемлемых для замещения этой позиции, предпринимается попытка обращения к памяти путем использования виртуального адреса, требующего трансляции этой позиции, могут возникнуть непредсказуемые результаты, состоящие в следующем. Использование нового значения может начаться между командами или во время выполнения команды, включая команду, вызвавшую изменение. Более того, пока TLB не очистится от позиций, приемлемых для замещения этой позиции, TLB может содержать как старые, так и новые значения, и невозможно спрогнозировать, будет ли выбрано старое или новое значение для конкретного доступа. Если в TLB присутствуют и старое, и новое значения позиции таблицы более высокого уровня, позиция таблицы более низкого уровня может быть выбрана путем использования одного значения и размещена в TLB, привязанном к другому значению. Если новое значение позиции является значением, которое вызывает исключение, исключение может вызвать или не вызвать прерывание. Если прерывание происходит, поля результата команды могут быть изменены, даже если исключение в обычных условиях вызвало бы подавление или аннулирование.

TLB очищается от позиций согласно следующим правилам:

1. TLB полностью очищается от позиций путем выполнения ОЧИСТКИ TLB или УСТАНОВКИ ПРЕФИКСА и путем перезагрузки ЦП.

2. Все TLB очищаются от всех позиций в конфигурации путем выполнения СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКИ любым из ЦП в конфигурации, в зависимости от бита в общем регистре, используемом командой.

3. Все TLB очищаются от выбранных позиций в конфигурация путем выполнения ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT или ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ любым из ЦП в конфигурации.

4. Некоторые или все позиции TLB могут быть стерты в другое время, отличное от предписываемого предыдущими правилами.

Программные заметки:

1. Использование позиций в TLB может продолжаться для трансляции после прекращения привязывания или денонсирования позиций таблицы, из которых они были сформированы. Эти позиции TLB не обязательно удаляются если прямо не стираются из TLB.

Изменение, осуществленное в отношении привязанной и действительной позиции, или изменение, осуществленное в отношении позиции таблицы, в результате которого позиция становится привязанной и действительной, отражается в процессе трансляции для следующей команды или раньше следующей команды, если позиция TLB не является приемлемой для замещения этой позиции таблицы. Однако изменение, осуществленное в отношении позиции таблицы, в результате которого позиция становится непривязанной или недействительной, не обязательно отражается в процессе трансляции, пока TLB не очистится от позиций, приемлемых для замещения этой позиции таблицы.

2. Исключения, связанные с динамической трансляцией адреса, могут быть установлены путем предварительной проверки доступности операнда, которая выполняется в рамках запуска выполнения команды. И наоборот, исключение трансляции первого региона, трансляции второго региона, трансляции третьего региона, трансляции сегмента или трансляции страницы могут указываться в случае, если позиция таблицы является недействительной в начале выполнения, даже если команда должна была бы подтвердить действительность позиции таблицы, которую она использует, и позиция таблицы должна была бы стать действительной, если бы рассматривалась команда на обработку операндов по одному биту за раз.

3. Изменение, осуществляемое в отношении привязанной позиции таблицы, за исключением установки I бита на нуль, установки СО бита позиция таблицы сегментов или страниц на единицу или изменения крайнего правого байта позиции таблицы страниц, может вызвать непредсказуемые результаты, если эта позиция используется для трансляция до очистки TLB от всех копий содержимого этой позиции. Использование нового значения может начинаться между командами или во время выполнения команды, включая команду, вызвавшую изменение. Когда команда, такая, как MOVE (MVC), производит изменение в привязанной позиции таблицы, включая изменение, делающее позицию недействительной, и впоследствии использует позицию для трансляции, измененная позиция используется без предварительного удаления позиции из TLB, и возникает связанная с этим непредсказуемость результата и применяется распознавание исключения.

Манипуляции с привязанными позициями таблицы могут вызывать запись ложных значений позиций таблицы в TLB. Например, если изменения производятся поэтапно, модификация действительного привязанного значения может вызвать запись частично обновленной позиции или, если промежуточное значение вводится в процесс изменения, предполагаемая недействительная позиция может временно стать действительной и может быть записана в TLB. Такое промежуточное значение может быть введено, если измене