СРАВНЕНИЕ И ЗАМЕНА ПОЗИЦИИ ТАБЛИЦЫ ДИНАМИЧЕСКОЙ ТРАНСЛЯЦИИ АДРЕСА
COMPARING AND REPLACING DYNAMIC ADDRESS TRANSLATION TABLE ENTRY

1. Область изобретения
Настоящее изобретение в целом касается обработки в вычислительной среде, в частности, одного или нескольких действий по сравнению и замене позиций таблицы адресов, очистки буферных позиций и команды для этих действий.
2. Уровень техники
Как описывается в Патенте США 7284100, «ДЕНОНСИРОВАНИЕ ХРАНЕНИЯ, ОЧИСТКА БУФЕРНЫХ ПОЗИЦИЙ И КОМАНДА ДЛЯ ЭТИХ ДЕЙСТВИЙ», зарегистрированном 12 мая 2003 года, который включен путем ссылки, выбранные единицы хранения, такие как сегменты хранения или области хранения, денонсируются. Денонсирование обеспечивается путем установки индикаторов денонсирования, расположенных в позициях структуры данных, соответствующих единицам хранения, подлежащим денонсированию. Кроме того, буферные позиции, связанные с денонсированными единицами хранения или другими выбранными
единицами хранения, очищаются. Предусматривается команда на выполнение денонсирования и/или очистки. Более того, очищаются буферные позиции, связанные с конкретным адресным пространством, без всякого денонсирования. Это также выполнятся по команде. Команда может быть реализована в программном обеспечении, в аппаратных средствах, встроенных программах или комбинации этих компонентов, или может быть эмулирована.
Краткое описание изобретения
1
2
2
1
1
1
Изобретение может быть реализовано в виде компьютерного программного продукта для выборочной очистки локального буфера динамической трансляции адреса (TLB) процессора или нескольких буферов динамической трансляции адреса нескольких процессоров. Компьютерный программный продукт включает: машиночитаемый носитель данных, в котором реализован программный код, причем программный код считывается процессором компьютера для выполнения способа. Способ включает определение при помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции таблицы динамической трансляции адреса (DAT); команда включает поле R и поле R; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R) четно-нечетной регистровой пары, назначенной полем R команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (TLB), соответствующих позициям, сформированным из DAT, с использованием позиций таблицы трансляций на основе источника таблицы трансляций, обозначенного значением первоначального второго операнда.
Одним объектом изобретения является система для выполнения команды на сравнение и замену позиции таблицы динамической трансляции адреса (DAT). Система включает: запоминающее устройство; и процессор, сконфигурированный для сообщения с запоминающим устройством, причем компьютерная система сконфигурирована для выполнения способа. Способ включает определение при
1
2
2
1
1
1
помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции DAT; команда включает поле R и поле R; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R) четно-нечетной регистровой пары, назначенной полем R команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (TLB), соответствующих позициям, сформированным из DAT, с использованием позиций таблицы трансляций на основе источника таблицы трансляций, обозначенного значением первоначального второго операнда.
1
2
2
1
1
1
Другим объектом изобретения является компьютерно-реализуемый способ сравнения первого операнда и второй позиции таблицы трансляций адресов. Способ включает определение при помощи процессора, по коду операции выполняемой машиной команды, которая подлежит выполнению, что команда является командой на сравнение и замену позиции таблицы динамической трансляции адреса (DAT); команда включает поле R и поле R; и выполнение команды процессором. Выполнение включает: получение первоначального второго операнда из ячейки памяти, указанной регистрами четно-нечетной регистровой пары, назначенной полем R команды; сравнение первого операнда и полученного первоначального второго операнда, причем первый операнд содержится в регистре с четным числом (четном R) четно-нечетной регистровой пары, назначенной полем R команды; на основе первого операнда, который равняется первоначальному второму операнду, хранение содержимого четного регистра R в позиции второго операнда в качестве нового второго операнда; и выборочную очистку всех позиций локального буфера динамической трансляции адреса (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. Такое промежуточное значение может быть введено, если изменение производится путем повторно выполняемой операции ввода-вывода, или если промежуточное значение вводится во время выполнения единичной команды.
В качестве еще одного примера, если позиция таблицы сегментов изменяется для обозначения другой таблицы страниц и используется без очистки TLB, новые позиции таблиц страниц могут быть выбраны и ассоциированы со старым источником таблицы страниц. В таком случае выполнение ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, обозначающей новый источник таблицы страниц, не обязательно удаляет позиции таблиц страниц, выбранные из новой таблицы страниц.
4. Для облегчения манипуляций с таблицами страниц предусмотрена команда ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ. Эта команда устанавливает I бит в позиции таблицы страниц на единицу и очищает один или несколько TLB в конфигурации позиций, сформированных из этих позиций таблицы, следующим образом:
a. Все TLB в конфигурации очищаются, если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и команда указывает на очистку всех TLB (то есть, контроль локальной очистки в команде равняется нулю).
b. Очищается только TLB в ЦП, который выполняет команду ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, если средство очистки локального TLB инсталлировано, и команда указывает на очистку только локального TLB (то есть, контроль локальной очистки в команде равняется единице).
Должны рассматриваться следующие аспекты работы TLB при использовании ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ. (См. также программные заметки для ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ).
a. ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ должно выполняться перед осуществлением любых изменений в позиции таблицы страниц, кроме изменения крайнего правого байта; иначе, компонент выборочной очистки ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ не сможет удалить из TLB копии позиции.
b. Денонсирование всех позиций таблицы страниц в пределах таблицы страниц путем ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ не обязательно очищает TLB от любой позиции таблицы сегментов, обозначающей таблицу страниц. В случае необходимости денонсирования и очистки TLB от позиции региональной таблицы или таблицы сегментов, нужно следовать описанному ниже правилу 5.
Подобным образом денонсирование всех позиций таблицы нижнего уровня в пределах региональной таблицы или таблицы сегментов путем ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT не обязательно очищает TLB от любой позиции таблицы более высокого уровня, обозначающей таблицу более низкого уровня. В случае необходимости денонсирования и очистки TLB от позиции таблицы более высокого уровня, нужно следовать описанному ниже правилу 5.
c. При большом количестве позиций таблиц страниц, подлежащих одновременному денонсированию заголовок, задействованный в использовании СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКИ (которая очищает TLB), ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT или ОЧИСТКИ TLB и при следовании правилам в представленном ниже примечании 5, может быть меньшим, чем при выдаче команды на ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ для каждой позиции таблицы страниц.
5. Манипуляции с позициями таблицы должны производиться согласно следующим правилам. Если эти правила соблюдаются, трансляция выполняется так, как выполнялась бы, если бы позиции таблицы из реальной или абсолютной памяти всегда использовались в процессе трансляции.
a. Действительная позиция таблицы не должна изменяться, пока она привязана к любому ЦП и может использоваться для трансляции этим ЦП, за исключением использования для (1) денонсирования позиции путем использования ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ или ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT, (2) изменения битов 56-63 позиции таблицы страниц, (3) осуществления изменения при помощи команд СРАВНЕНИЕ И ПЕРЕКАЧКА И ОЧИСТКА, которые очищают TLB, или (4) замены позиции путем использования СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT.
b. При осуществлении любого изменения в привязанной и действительной или непривязанной позиции таблицы, кроме изменения в битах 56-63 позиции таблицы страниц, каждый ЦП, в котором позиция TLB может быть сформирована из этой позиции, обязательно должен очистить свой TLB после выполнения изменения и до использования этой позиции для неявной трансляции этим ЦП (следует заметить, что в отдельной очистке нет необходимости, если изменение было выполнено с использованием команд СРАВНЕНИЕ И ЗАМЕНА ПОЗИЦИИ ТАБЛИЦЫ DAT, ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ DAT, ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ или СРАВНЕНИЕ И ПЕРЕКАЧКА И ОЧИСТКА, которые очищают TLB). В случае, если позиция таблицы является привязанной и действительной, это правило действует, если известно, что не выполняется программа, которая может требовать трансляции позиции.
c. При осуществлении любого изменения в недействительной позиции таблицы таким образом, чтобы могли появиться промежуточные действительные значения в позиции, каждый ЦП, к которому привязывается позиция обязательно должен очистить свой TLB после выполнения изменения и до использования этой позиции для неявной трансляции адресов этим ЦП.
d. При осуществлении любого изменения смещения или длины, указанных для таблицы, каждый ЦП, в котором позиция TLB может быть сформирована из позиции таблицы, которая уже не находится в пределах этой таблицы, обязательно должен очистить свой TLB после выполнения изменения и до использования таблицы для неявной трансляции этим ЦП.
Следует заметить, что в случае, когда недействительная позиция таблицы страниц становится действительной без введения промежуточных действительных значений, TLB не требует очистки в ЦП, в котором нет позиций TLB, сформированных из этой позиции. Подобным образом, если недействительная позиция региональной таблицы или таблицы сегментов становится действительной без введения промежуточных действительных значений, TLB не требует очистки в ЦП, в котором нет позиций TLB, сформированных из этой подтвержденной позиции, и в котором нет позиций TLB, сформированных из позиций в таблице страниц, привязанной при помощи этой подтвержденной позиции.
Выполнение ОЧИСТКИ TLB, СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКИ или УСТАНОВКА ПРЕФИКСА может отрицательно повлиять на функционирование некоторых моделей. Таким образом, применение этих команд должно быть сведено к минимуму в соответствии с вышеуказанными правилами.
6. При применении EDAT-1 действуют следующие положения:
а. Если контроль формата STE и контроль действительности ACCF равняются единице, невозможно спрогнозировать, проверяет ли ЦП биты управления доступом и бит защиты от выборки в позиции таблицы сегментов или в ключе памяти соответствующего 4К-байтного блока при любой защитной проверке с контролем по ключу. Таким образом, программа должна гарантировать, чтобы биты управления доступом и бит защиты от выборки в позиции таблицы сегментов были идентичны соответствующим полям во всех 256 ключах памяти для составляющих 4К-байтных блоков сегмента перед установкой недействительного бита в STE на нуль.
Перед изменением контроля действительности ACCF биты управления доступом или бит защиты от выборки в позиции таблицы сегментов и перед изменением битов управления доступом или бита защиты от выборки в любом из 256 ключей памяти сегмента программа должна сначала установить недействительный бит на единицу в позиции таблицы сегментов и очистить все TLB от всех позиций в конфигурации, как было описано выше в этом разделе.
b. Перед установкой отмены записи об изменении на нуль в позиции таблицы сегментов программа должна установить недействительный бит на единицу в позиции таблицы сегментов и очистить все TLB от всех позиций в конфигурации (например, путем использования ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT). Денонсирование позиции таблицы не требуется, если изменение выполнено с использованием СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT или формы СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКА, которая очищает TLB.
c. Перед установкой отмены записи об изменении на нуль в позиции таблицы страниц программа должна установить недействительный бит на единицу в позиции таблицы страниц и очистить все TLB от всех позиций в конфигурации (например, путем использования ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ). Денонсирование позиция таблицы не требуется, если изменение выполнено с использованием СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT или формы СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКА, которая очищает TLB.
При применении EDAT-2 действуют следующие дополнительные положения:
a. Если контроль формата RTTE и контроль действительности ACCF равняются единице, невозможно спрогнозировать, проверяет ли ЦП биты управления доступом и бит защиты от выборки в третьей позиция региональной таблицы или в ключе памяти соответствующего 4К-байтного блока при любой защитной проверке с контролем по ключу. Таким образом, программа должна гарантировать, что биты управления доступом и бит защиты от выборки в третьей позиции региональной таблицы идентичны соответствующим полям во всех 524 288 ключах памяти для составляющих 4К-байтных блоков региона перед установкой недействительного бита в RTTE на нуль.
Перед изменением контроля действительности ACCF биты управления доступом или бит защиты от выборки в третьей позиция региональной таблицы, и перед изменением битов управления доступом или бита защиты от выборки в любом из 524 288 ключей памяти региона программа сначала должна установить недействительный бит на единицу в третьей позиции региональной таблицы и очистить все TLB от всех позиций в конфигурации, как было описано выше в этом разделе.
b. Перед установкой отмены записи об изменении на нуль в третьей позиции региональной таблицы программа должна установить недействительный бит на единицу в третьей позиции региональной таблицы и очистить все TLB от всех позиций в конфигурации (например, путем использования ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT). Денонсирование позиции таблицы не требуется, если изменение выполнено с использованием СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT или формы СРАВНЕНИЯ И ПЕРЕКАЧКИ И ОЧИСТКА, которая очищает TLB.
Несоблюдение этих процедур может приводить к непредсказуемым результатам, включая автоматическую проверку исключения задержанного доступа или невозможность записи изменения.
Средство Enhanced-DAT-1
Средство Enhanced-DAT-1 может быть доступно на моделях, в которых реализуется архитектура z/Architecture. Если средство установлено и активировано, трансляция DAT может создавать реальный адрес страницы памяти или абсолютный адрес кадра сегмента, определяемый контролем STE-формата в позиции таблицы сегментов. Если средство установлено в конфигурации, новый бит в управляющем регистре 0 активирует средство.
Примечание: Термин "применяется EDAT-1" используется по всему документу для описания состояния, когда средство Enhanced-DAT-1 установлено в конфигурации и активировано управляющим регистром 0.
Если применяется EDAT-1, в процессе DAT доступна следующая дополнительная функция:
- Бит защиты DAT добавляется к позициям региональных таблиц, обеспечивая функцию, подобную битам защиты DAT в позициях таблицы сегментов и таблицы страниц.
- Контроль STE-формата добавляется к позиции таблицы сегментов. Если контроль STE-формата равняется нулю, DAT осуществляется согласно текущему определению, за исключением того, что отмена записи об изменении в позиции таблицы страниц указывает, может ли установка бита изменений быть обойдена для данной страницы.
- Если контроль STE-формата равняется единице, позиция таблицы сегментов также содержит следующие компоненты:
- Абсолютный адрес кадра сегмента (вместо источника таблицы страниц), указывающий абсолютное местонахождение в памяти 1 М-байтного блока.
- Биты управления доступом и бит защиты от выборки, который необязательно может использоваться вместо соответствующих битов в отдельных ключах памяти сегмента.
- Бит, определяющий действительность битов управления доступом, и бит защиты от выборки в позиции таблицы сегментов.
- Отмена записи об изменении, которая указывает, может ли установка бита изменений быть обойдена в отдельных ключах памяти сегмента. Средство добавляет управляющую команду ВЫПОЛНЕНИЕ ФУНКЦИИ УПРАВЛЕНИЯ КАДРОМ. Средство включает расширения или изменения в следующих управляющих командах: -ЗАГРУЗКА АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ-ПЕРЕМЕЩЕНИЕ СТРАНИЦЫ-УСТАНОВКА РАСШИРЕННОГО КЛЮЧА ПАМЯТИ-ТЕСТОВАЯ ЗАЩИТА.
Средство Enhanced-DAT-2
Средство Enhanced-DAT-2 может быть доступно на моделях, в которых реализуется архитектура z/Architecture. Если средство установлено и активировано, трансляция DAT может создавать реальный адрес страницы памяти, абсолютный адрес кадра сегмента или абсолютный адрес кадра региона, определяемый управлением форматом в третьей позиции региональной таблицы (при наличии) и позиции таблицы сегментов (при наличии).
Примечание: Термин "применяется EDAT-2" используется по всему документу для описания состояния, когда средство Enhanced-DAT-2 установлено в конфигурации и активировано управляющим регистром 0.
При применении EDAT-2, доступна следующая дополнительная функция в процессе DAT:
- Применяется EDAT-1.
- Управление форматом добавляется к третьей позиции региональной таблицы (RTTE). Если контроль формата RTTE равняется нулю, DAT осуществляется как в случае, когда применяется EDAT-1.
- Если контроль формата RTTE равняется единице, третья позиция региональной таблицы также содержит следующие компоненты:
- Абсолютный адрес кадра региона (вместо источника таблицы сегментов), указывающий абсолютное местонахождение в памяти 2 G-байтного блока.
- Биты управления доступом и бит защиты от выборки, который необязательно могут использоваться вместо соответствующих битов в отдельных ключах памяти региона.
- Бит, определяющий действительность битов управления доступом и бит защиты от выборки в третьей позиции региональной таблицы - отмена записи об изменении, которая указывает, может ли установка бита изменений быть обойдена в отдельных ключах памяти региона. Средство Enhanced-DAT-2 добавляет команду на сравнение и замену позиции таблицы DAT, обеспечивая динамическую замену действительных, привязанных позиций таблицы DAT и выборочную очистку TLB от любых позиций, созданных из замененной позиции. Средство Enhanced-DAT-2 также включает расширения или изменения в следующих управляющих командах: -ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ DAT-ЗАГРУЗКА АДРЕСА ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ-ПЕРЕМЕЩЕНИЕ СТРАНИЦЫ-ВЫПОЛНЕНИЕ ФУНКЦИИ УПРАВЛЕНИЯ КАДРОМ-ТЕСТОВАЯ ЗАЩИТА. Если средство Enhanced-DAT-2 инсталлировано, средство Enhanced-DAT-l также инсталлировано.
ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ DAT (IDTE) выполняет операцию денонсирования и очистки путем выборочной очистки TLB комбинированных позиций региональной таблицы и таблицы сегментов, если позиция или позиции таблицы сегментов денонсированы. IDTE также выполняет операцию очистки по ASCE.
Во время выполнения команды IDTE определенная часть памяти (например, виртуальная память) денонсируется. Например, сегмент хранения, включающий множество страниц памяти, или область хранения, включающая множество сегментов хранения, выбирается как подлежащая денонсированию. Денонсирование обеспечивается путем установки индикаторов денонсирования, расположенных в позициях структуры данных, соответствующих единицам хранения, подлежащим денонсированию. В другом аспекте буферные позиции (например, позиции буфера динамической трансляции), связанные с памятью, подвергаемой денонсированию, или другой памятью, удаляются. Кроме того, в еще одном аспекте буферные позиции, связанные с выбранными адресными пространствами, удаляются из буферов без воздействия на буферные позиции невыбранных адресных пространств и без выполнения денонсирования. В одном примере команда, называемая в данном описании командой на денонсирование позиции таблицы динамической трансляции адресов (DAT) (IDTE), из архитектуры z/Architecture от IBM, используется для выполнения одной или нескольких из вышеуказанных операций.
ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ DAT
1
3
2
4
IDTE R,R,R[,M]
Примечание: Термин "указанные один или несколько ЦП" имеет следующее значение для области TLB, которых касается эта команда:
- Если средство очистки локального TLB не инсталлировано, или если средство инсталлировано и бит контроля локальной очистки (LC) в поле М4 равняется нулю, термин "указанные один или несколько ЦП" означает все ЦП в конфигурации.
- Если средство очистки локального TLB инсталлировано, и бит LC в поле М4 равняется единице, термин "указанные один или несколько ЦП" означает только ЦП, выполняющий команду IDTE (местный ЦП). TLB во всех других ЦП в конфигурации могут быть не затронуты.
2
Если бит опции очистки по ASCE, бит 52 общего регистра R, равняется нулю, операция, называемая операцией денонсирования и очистки, выполняется следующим образом. Обозначенная позиция региональной таблицы или позиция таблицы сегментов в памяти, или ряд позиций, начинающийся с обозначенной позиции, денонсируется, и буферы динамической трансляции (TLB) в указанных одном или нескольких ЦП в конфигурации очищаются от (1) всех позиций таблицы TLB обозначенного типа, сформированных путем использования денонсированной позиции, или позиций в памяти, и (2) всех позиций таблицы TLB более низкого уровня, сформированных путем использования удаленных позиций таблицы TLB более высокого уровня. Удаляемые позиции TLB необязательно могут ограничиваться позициями, сформированными для трансляции адресов в указанном адресном пространстве.
Если бит опции очистки по ASCE равняется единице, выполняется операция, называемая операцией очистки по ASCE, следующим образом. Операция не выполняет денонсирования позиций таблицы DAT в памяти, но она удаляет из всех TLB во всех ЦП в конфигурации все позиции первой региональной таблицы, позиции второй региональной таблицы, позиции третьей региональной таблицы, позиции таблицы сегментов и позиции таблицы страниц, сформированные для трансляции адресов в указанном адресном пространстве.
Биты поля М4 определяются следующим образом:
- Резервирование: Биты 0-1 поля М4 игнорируются, но должны содержать нули; в противном случае программа в будущем может быть неспособна к совместимой работе.
- Протокол управления форматом (FS): При применении EDAT-2 бит 2 поля М4 является протоколом управления форматом (FS) для операции денонсирования и очистки. Бит 2 поля М4 игнорируется при операции очистки по ASCE и в случаях, когда EDAT-2 не применяется.
1
1
Протокол управления форматом применяется, если тип обозначения (DT), биты 60-61 общего регистра R, представляет 00 или 01 двоичный; если DT в общем регистре R представляет 10 или 11 двоичный, протокол управления форматом игнорируется.
- Контроль локальной очистки (LC): Если средство очистки локального TLB инсталлировано, бит LC, бит 3 поля М4, контролирует, очищается ли только TLB в локальном ЦП, или же очищаются TLB во всех ЦП конфигурации. Если средство очистки локального TLB не инсталлировано, бит 3 поля М4 игнорируется.
Операция денонсирования и очистки
2
Если бит 52 общего регистра R, бит опции очистки по ASCE, равняется нулю, указывается операция денонсирования и очистки.
1
Содержимое общего регистра R имеет формат элемента управления адресного пространства с использованием только источника таблицы, биты 0-51, и контроля типа обозначения (DT), биты 60 и 61. Источник таблицы обозначает таблицу DAT, в которой одна или несколько позиций подлежат денонсированию, и DT указывает тип этой таблицы.
1
Биты 52-59, 62 и 63 общего регистра R игнорируются.
2
1
Биты 0-43 общего регистра R имеют формат показателя региона и показателя сегмента виртуального адреса. Часть битов 0-43 обычно используемых DAT для выбора позиции в типе таблицы, обозначенной общим регистром R, называется эффективным индексом денонсирования.
1
Биты 60 и 61 общего регистра R указывают тип таблицы и эффективный индекс денонсирования следующим образом:
2
Часть битов 0-43 общего регистра R справа от эффективного индекса денонсирования игнорируется.
1
Источник таблицы в общем регистре R и эффективный индекс денонсирования обозначают Позицию DAT-таблицы, подлежащую денонсированию. Биты 53-63 общего регистра R.2 являются беззнаковыми двоичными числами, указывающими количество дополнительных позиций таблицы, подлежащих денонсированию. Таким образом, количество позиций, подлежащих денонсированию составляет 1-2048, что соответствует значению битов 53-63.
Биты 44-51 общего регистра R.2 должны равняться нулю; в противном случае распознается исключение по спецификации.
3
3
3
Если R.3 является отличным от нуля, содержимое общего регистра R имеет формат элемента управления адресного пространства с использованием только источника таблицы, биты 0-51, и контроля типа обозначения (DT), биты 60 и 61. Это содержимое используется для выбора подлежащих удалению позиций TLB. Биты 52-59, 62 и 63 общего регистра R игнорируются. Если R равняется нулю, все содержимое общего регистра 0 игнорируются, и позиции TLB удаляются независимо от ASCE, используемого для их формирования.
1
2
Источник таблицы в общем регистре R и эффективный индекс денонсирования в общем регистре R обозначают позицию таблицы в соответствии с правилами, изложенными в публикации "Lookup in a Table Designated by an Address-Space-Control Element" in the "z/Architecture Principles of Operation," IBM Publication No. SA22-7832-08, август 2010 г, которая включается в данное описание путем ссылки в полном объеме, за исключением того, перенос из позиции бита 0 сформированного адреса всегда игнорируется, и показатель не проверяется по полю длины таблицы. Источник таблицы рассматривается как 64-битный адрес, и добавление выполняется путем применения правил для вычисления 64-битного адреса, независимо от текущего режима адресации, указываемого битами 31 и 32 текущего слова состояния программы. Адрес, сформированный из этих двух компонентов является реальным или абсолютным адресом. Недействительный бит, бит 58 этой позиции региональной таблицы или таблицы сегментов устанавливается на единицу. Во время этой процедуры позиция не проверяется на наличие ошибки формата или возможность исключения адресации из-за источника в позиции следующей таблицы более низкого уровня. Поле типа таблицы в позиции игнорируется. Если позиция является позицией таблицы сегментов, бит общего сегмента в позиции игнорируется. Если применяется EDAT-2, и позиция является третьей позицией региональной таблицы, бит общего региона в позиции игнорируется.
Одновременно из памяти выбирается полная позиция таблицы. Затем сохраняется байт, содержащий недействительный бит.Доступ к позиции для выборки подлежит защите с контролем по ключу, и доступ к памяти подлежит защите с контролем по ключу и защите нижнего адреса.
2
Если биты 53-63 общего регистра R.2 не все равняются нулю, установка недействительного бита на единицу в позиции региональной таблицы или таблицы сегментов повторяется путем прибавления единицы к ранее использовавшемуся значению эффективного индекса денонсирования, и эту операцию проделывают столько раз, сколько указывается битами 53-63. Реализация крайней левой позиции бита эффективного индекса денонсирования игнорируется, и в этом случае происходит циклическая адресация в таблице. Содержимое общего регистра R остается неизменным.
Функция сериализации выполняется до начала операции и еще раз после завершения операции. Как и для всех операций сериализации, эта сериализация применяется только к этому ЦП; в сериализации других ЦП нет необходимости.
После установки недействительного бита на единицу этот ЦП очищает TLB от выбранных позиций. В этом случае, если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и бит LC в поле М4 равняется нулю, этот ЦП дает сигнал всем ЦП в конфигурации на очистку их TLB от выбранных позиций. Каждый соответствующий TLB очищается как минимум от позиций, в отношении которых выполняются все из следующих условий:
2
1
2
2
- Эффективный индекс денонсирования в общем регистре Rотвечает соответствующему индексу в позиции таблицы TLB, относящейся к типу, обозначенному полем DT в битах 60-61 общего регистра R. Если в модели реализуется составная позиция TLB, включающая индекс, обозначенный полем DT, биты слева от эффективного индекса в общем регистре R также отвечают соответствующим битам, предусмотренным в обозначенной позиции таблицы TLB. Следует заметить, что если множество позиций таблицы денонсируется из-за битов 53-63 общего регистра R, эффективный индекс денонсирования инкрементируется, реализация крайней левой позиции бита индекса теряется, и позиции региональной таблицы или таблицы сегментов TLB удаляются для каждого значения полученного таким образом индекса.
3
3
- Поле R равняется нулю, или поля источника таблицы и типа обозначения в общем регистре R соответствуют полям источника таблицы и типа обозначения в элементе управления адресного пространства (ASCE), используемым для формирования позиции таблицы TLB.
- Если поле R.3 равняется нулю, условие, описанное на этом этапе, не действует.
- Если позиция, денонсированная в памяти, обозначает таблицу трансляций более низкого уровня, источник таблицы более низкого уровня в денонсированной позиции соответствует полю источника таблицы в позиции таблицы TLB.
Каждый соответствующий TLB также очищается как минимум от любых позиций таблицы TLB более низкого уровня, в отношении которых выполняются все из следующих условий:
- Позиция таблицы TLB более низкого уровня была сформирована путем использования позиции, денонсированной в памяти, или путем использования позиции таблицы TLB более высокого уровня, сформированной путем использования позиции, денонсированной в памяти, или позиции TLB, удаленной в этом процессе.
3
3
3
- Поле R равняется нулю или поля источника таблицы и типа обозначения в общем регистре R соответствуют полям источника таблицы и типа обозначения в элементе управления адресного пространства (ASCE), используемом для формирования позиции таблицы TLB более низкого уровня. Этот ASCE может быть элементом, привязывавшим маршрут трансляции, содержащий позицию таблицы более высокого уровня, привязывавшую позицию таблицы более низкого уровня в памяти, из которой была сформирована позиция таблицы TLB более низкого уровня, или может быть элементом, обеспечившим применимость позиции таблицы TLB более высокого уровня, привязывавшей позицию таблицы более низкого уровня в памяти, из которой была сформирована позиция таблицы TLB более низкого уровня. Если поле R равняется нулю, условие, описанное на этом этапе, не действует.
- Если позиция, денонсированная в памяти, обозначает таблицу трансляций более низкого уровня, источник таблицы более низкого уровня в денонсированной позиции соответствует полю источника таблицы в позиции таблицы TLB.
Программные заметки:
1. Установка протокола управления форматом на единицу может обеспечить улучшенную функциональность на некоторых моделях.
1
1
2. Если тип обозначения (DT), биты 60-61 общего регистра R, является 00 двоичным, протокол управления форматом применяется к денонсируемым позициям таблицы сегментов. Если DT в общем регистре R является 01 двоичным, протокол управления форматом применяется к денонсируемым позициям третьей региональной таблицы.
3. Программа должна устанавливать протокол управления форматом на единицу только в случае, если она может гарантировать, что управление форматом (бит 53 позиции таблицы) равняется единице во всех денонсируемых позициях таблицы. Если протокол управления форматом устанавливается на единицу, но управление форматом не равняется единице во всех денонсируемых позициях таблицы, возможна неполная очистка TLB, которая может привести к непредсказуемым результатам от DAT.
4. Поле М4 команды считается необязательным, на что указывает заключение поля в скобки [] в синтаксисе ассемблера. Если поле М4 не указано, ассемблер ставит нули в этом поле команды.
Хранение в позиции региональной таблицы или таблицы сегментов и удаление позиций TLB необязательно может происходить, если недействительный бит уже является битом в позиции региональной таблицы или таблицы сегментов.
Когда денонсируется множество позиций, удаление позиций TLB может откладываться до денонсирования всех позиций.
Операция очистки по ASCE
2
Если бит 52 общего регистра R, бит опции очистки по ASCE, равняется единице, указывается операция очистки по ASCE.
3
3
3
Содержимое общего регистра R имеет формат элемента управления адресного пространства с использованием только источника таблицы, биты 0-51, и контроля типа обозначения (DT), биты 60 и 61. Это содержимое используется для выбора подлежащих удалению позиций TLB. Биты 52-59, 62, и 63 общего регистра R игнорируются. R может равняться нулю или быть отличным от нуля, то есть, может быть обозначен любой общий регистр, включая регистр 0.
2
Биты 44-51 общего регистра R должны равняться нулю; в противном случае распознается исключение по спецификации.
1
2
Содержимое общего регистра R и позиций битов 0-43 и 53-63 общего регистра R игнорируются.
3
TLB указанных одного или нескольких ЦП в конфигурации очищаются на всех уровнях по крайней мере от позиций, для которых поля источника таблицы и типа обозначения в общем регистре R соответствуют полям источника таблицы и типа обозначения в элементе управления адресного пространства (ASCE), используемом для создания позиции. Этот ASCE является элементом, используемым при трансляции, во время которой формируется позиция.
2
Если бит опции очистки по ASCE (бит 52 общего регистра R равняется единице), поле М4 игнорируется.
Общая операция
Выполнение ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT не завершается на выполняющем его ЦП, пока не произойдет следующее:
1. Все позиции, отвечающие вышеуказанным критериям, были удалены из TLB этого ЦП. Если средство очистки локального TLB инсталлировано, и бит LC в поле М4 равняется единице, выполнение ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT в этот момент завершается, и следующий этап не выполняется.
2. Если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и бит LC в поле М4 равняется нулю, все другие ЦП в конфигурации выполнили любой доступ к памяти, включая обновление битов изменения и обращения, путем использования позиций TLB, соответствующих указанным параметрам.
Операции не обязательно имеют какое-либо влияние на позиции реального пространства TLB.
Специальные условия:
2
Биты 44-51 общего регистра R должны равняться нулю; в противном случае распознается исключение по спецификации.
Операция подавляется по всем исключениям адресации и защиты (только операция денонсирования и очистки).
Код результирующего условия: Код непредсказуем.
Исключения программы:
- Адресация (денонсированная позиция региональной таблицы или таблицы сегментов, только операция денонсирования и очистки).
- Операция (если средство расширения DAT не инсталлировано)
- Привилегированная операция
- Защита (выборка и хранение, позиция региональной таблицы или таблицы сегментов, защита с контролем по ключу и защита нижнего адреса; только операция денонсирования и очистки).
- Спецификация
Программные заметки:
3
1. Выборочная очистка позиций TLB может быть реализована различными способами, в зависимости от модели, и в целом может быть удалено большее количество позиций, чем требуемое минимальное количество. Когда выполняется операция денонсирования и очистки, некоторые модели могут очищать TLB от всех позиций, когда эффективный индекс денонсирования не является показателем сегмента, или могут удалять позицию независимо от источника таблицы страниц в позиции. Когда выполняется эта операция или операция очистки по ASCE, некоторые модели могут очищать TLB от позиций независимо от поля типа обозначения в общем регистре R. Когда выполняется любая из операций, другие модели могут точно удалять требуемое минимальное количество позиций. Таким образом, для того, чтобы программа функционировала на всех моделях, программа не должна пользоваться преимуществами каких бы то ни было свойств, полученных путем менее выборочной очистки на конкретной модели.
2. При использовании операции очистки по ASCE для очистки TLB от позиций, связанных с общими сегментами, следует заметить, что эти позиции могли быть сформированы путем использования элементов управления адресного пространства, содержащих много разных источников таблицы.
Следующее примечание применимо к ситуациям, когда указывается операция денонсирования и очистки.
3. При удалении позиций TLB может использоваться источник таблицы страниц в позиции таблицы сегментов. Таким образом, если позиция таблицы сегментов, пребывая в привязанном состоянии, когда-либо содержала источник таблицы страниц, отличный от текущего значения, копии позиций, содержащих предыдущие значения, могут оставаться в TLB.
4. ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ DAT не может безопасно применяться для обновления общего месторасположения в основной памяти, если существует вероятность того, что другой ЦП или а канальная программа также может обновлять месторасположение.
2
5. Адрес позиции DAT-таблицы для ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT является 64-битным адресом, и вычисление адреса выполняется путем следования нормальным правилам для вычисления 64-битного адреса, с циклической адресацией в 264- 1. Кроме того, поля смещения и длины не используются. Противоположное происходит при неявной трансляции и трансляциях для ЗАГРУЗКИ РЕАЛЬНОГО АДРЕСА и ХРАНЕНИЯ РЕАЛЬНОГО АДРЕСА, которые могут приводить либо к циклической адресации, либо к исключению адресации, когда происходит перенос с позиции бита 0, и которые указывают на состояние исключения, когда обозначенная позиция находится вне таблицы. Соответственно, таблицы DAT не должны указываться как охватывающие от максимальных ячеек памяти до ячейки 0, и первая обозначенная позиция и все дополнительные позиции, указанные битами 53-63 общего регистра R, должны находиться в пределах обозначенной таблицы.
6. Если средство очистки локального TLB инсталлировано, контроль локальной очистки должен указываться как единица, если ASCE, используемый для формирования удаляемой позиции TLB, был привязан только к ЦП, на котором выполняется команда IDTE (например, если программа выполняется на монопроцессор). В противном случае возможны непредсказуемые результаты, включая представление автоматической проверки исключения отложенного доступа.
На некоторых моделях использование ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ DAT с указанием очистки только локального TLB для вышеперечисленных случаев может обеспечивать значительные улучшения функциональности.
7. Поле М4 команды считается необязательным, на что указывает заключение поля в скобки [] в синтаксисе ассемблера. Если поле М4 не указано, ассемблер ставит нули в этом поле команды.
ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ
1
2
3
4
IPTE RR[,R[,M]]
Примечание: Термин "указанные один или несколько ЦП" имеет следующее значение для областей TLB, которых касается эта команда:
- Если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и бит контроля локальной очистки (LC) в поле М4 равняется нулю, термин "указанные один или несколько ЦП" означает все ЦП в конфигурации.
- Если средство очистки локального TLB инсталлировано, и бит LC в поле М4 равняется единице, термин "указанные один или несколько ЦП" означает лишь ЦП, выполняющий команду IPTE (локальный ЦП). TLB во всех других ЦП в конфигурации могут быть не затронуты.
Обозначенные позиции таблиц страниц денонсируются, и буферы динамической трансляции (TLB) в указанных одном или нескольких ЦП в конфигурации очищаются от соответствующих позиций.
Содержимое общего регистра R\ имеют формат позиции таблицы сегментов, с использованием только источника таблицы страниц. Содержимое общего регистра R.2 имеет формат виртуального адреса, с использованием только указателя страниц. Содержимое полей, не являющихся источником таблицы страниц или указателя страниц, игнорируется.
3
Если средство диапазона IPTE не инсталлировано, или если поле R равняется нулю, отдельная позиция таблицы страниц, обозначенная первым и вторым операндами, денонсируется.
3
3
Если средство диапазона IPTE инсталлировано, и поле R является отличным от нуля, биты 56-63 общего регистра R содержат беззнаковое двоичное число, указывающее число дополнительных позиций таблицы страниц, подлежащих денонсированию. Таким образом, число позиций таблицы страниц, подлежащих денонсированию, составляет 1-256, что соответствует значению 0-255 в битах 56-63 регистра.
3
Если средство диапазона IPTE не инсталлировано, поле R игнорируется, однако должно содержать нули; в противном случае программа в будущем может быть неспособна к совместимой работе.
Биты поля М4 определяются следующим образом:
- Резервирование: Биты 0-2 резервируются. Зарезервированные позиции битов поля М4 игнорируются, но должны содержать нули; в противном случае программа в будущем может быть неспособна к совместимой работе.
- Контроль локальной очистки (LC): Если средство очистки локального TLB инсталлировано, бит LC, бит 3 поля М4, контролирует, очищается ли только TLB в локальном ЦП, или же очищаются TLB во всех ЦП конфигурации. Если средство очистки локального TLB не инсталлировано, бит 3 поля М4 резервируется.
Источник таблицы страниц и указатель страниц обозначают позицию таблицы страниц, согласно правилам динамической трансляции адресов для поиска таблицы страниц. Источник таблицы страниц рассматривается как 64-битный адрес, и добавление выполняется путем применения правил для вычисления 64-битного адреса, независимо от текущего режима адресации, который указывается битами 31 и 32 текущего слова состояния программы. Реализация позиции бита 0 в результате добавления указателя страниц и источника таблицы страниц не может осуществляться. Адрес, сформированный из этих двух компонентов является реальным или абсолютным адресом. Бит недействительности страницы этой позиции таблицы страниц устанавливается на единицу. Во время этой процедуры позиция таблицы страниц не проверяется на наличие ситуации, когда бит недействительности страницы уже равняется единице, или на наличие ошибок формата. Кроме того, реальный адрес страницы памяти, содержащийся в позиции, не проверяется на исключение адресации.
3
Если средство диапазона IPTE инсталлировано, и поле R является отличным от нуля, команда прерывается, и обработка производится следующим образом:
3
1. Описанный выше процесс денонсирования повторяется для каждой последующей позиции в таблице страниц, пока не будет денонсировано количество дополнительных позиций, указанных в битах 56-63 общего регистра R, или пока не произойдет прерывание.
2
2
2. Показатель страниц в битах 44-51 общего регистра R увеличивается на число денонсированных позиций таблицы страниц; реализация позиции бита 44 общего регистра R игнорируется.
3
3. Число дополнительных позиций в битах 56-63 общего регистра R уменьшается на число денонсированных позиций таблицы страниц.
3
2
3
Таким образом, если средство диапазона IPTE инсталлировано, поле R является отличным от нуля, и происходит прерывание (не вызывающее завершения), общие регистры R и R обновлены, и, таким образом, команда, при ее повторном выполнении, возвращается к моменту прерывания.
3
2
3
Если средство диапазона IPTE не инсталлировано, или если поле R равняется нулю, содержимое регистров R и R остается неизменным.
Для каждой денонсированной позиции таблицы страниц из памяти параллельно выбирается полная позиция таблицы страниц, согласно наблюдению со стороны других ЦП. Затем сохраняется байт, содержащий бит недействительности страницы. Доступ для выборки к каждой позиции таблицы страниц подлежит защите с контролем по ключу, и доступ к памяти подлежит защите с контролем по ключу и защите нижнего адреса.
Функция сериализации выполняется до начала операции и еще раз после завершения операции. Как и для всех операций сериализации, эта сериализация применяется только к этому ЦП; в сериализации других ЦП нет необходимости.
Если не распознано исключений, этот ЦП очищает TLB от выбранных позиций. В этом случае, если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и бит LC в поле М4 равняется нулю, этот ЦП сигнализирует всем ЦП в конфигурации об удалении выбранных позиций из их TLB. Для каждой денонсированной позиции таблицы страниц каждый соответствующий TLB очищается как минимум от позиций, сформированных с использованием всех из следующих компонентов:
1
- Источник таблицы страниц, указанный общим регистром R
2
- Указатель страниц, указанный общим регистром R
- Реальный адрес страницы памяти, содержащийся в обозначенной позиции таблицы страниц
Выполнение ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ не завершается на выполняющем его ЦП, пока не произойдет следующее:
1. Все позиции таблиц страниц, соответствующие указанным параметрам, были денонсированы.
2. Все позиции, соответствующие указанным параметрам, были удалены из TLB этого ЦП. Если средство очистки локального TLB инсталлировано, и бит LC в поле М4 равняется единице, выполнение ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ в этот момент завершается, и следующий этап не выполняется.
3. Если средство очистки локального TLB не инсталлировано, или если средство инсталлировано, и бит LC в поле М4 равняется нулю, все другие ЦП в конфигурации выполнили любой доступ к памяти, включая обновление битов изменения и обращения, путем использования позиций TLB, соответствующих указанным параметрам.
Специальные условия
3
2
3
Если средство диапазона IPTE инсталлировано, поле R является отличным от нуля, и указатель страниц в общем регистре R плюс число дополнительных позиций в общем регистре R превышает 255, распознается исключение по спецификации.
Операция подавляется по всем исключениям адресации и защиты.
Код условия: Код остается неизменным.
Исключения программы:
- Адресация (позиция таблицы страниц)
- Привилегированная операция
- Защита (выборка и хранение, позиция таблицы страниц, защита с контролем по ключу, и защита нижнего адреса)
- Спецификация
Программные заметки:
1. Выборочная очистка от позиций может быть реализована различными способами, в зависимости от модели, и в целом может быть удалено большее количество позиций, чем требуемое минимальное количество. Некоторые модели могут удалять все позиции, содержащие реальные адреса страниц памяти, полученные из позиций таблицы страниц в памяти. Другие могут удалять все позиции, содержащие обозначенный указатель (или указатели) страниц, и в некоторых случаях реализации может удаляться точно требуемое минимальное количество позиций. Таким образом, для того, чтобы программа функционировала на всех моделях, программа не должна пользоваться преимуществами каких бы то ни было свойств, полученных путем менее выборочной очистки на конкретной модели.
2. При удалении позиций TLB может использоваться реальные адреса страниц памяти в позициях таблицы страниц. Таким образом, если позиции таблиц страниц, пребывая в привязанном состоянии, когда-либо содержали реальные адреса страниц памяти, отличные от текущих значений, копии позиций, содержащих предыдущие значения, могут оставаться в TLB.
3. ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ не может безопасно применяться для обновления общего месторасположения в основной памяти, если существует вероятность того, что другой ЦП или а канальная программа также может обновлять месторасположение.
3
4. Если средство диапазона IPTE инсталлировано, и поле R является отличным от нуля, действуют следующие положения:
1
3
а. Все позиции таблиц страниц, подлежащие денонсированию, должны находиться в одной таблице страниц. Распознается исключение по спецификации, если указатель страниц в общем регистре R плюс число дополнительных позиций в общем регистре R превышает максимальное значение указателя страниц 255.
b. Количество позиций таблиц страниц, денонсируемых путем ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ, может быть разным в разных вариантах выполнения.
c. Команда не может применяться для ситуаций, в которых программа должна полагаться на непрерывное выполнение команды. Подобным образом программа обычно не должна использовать ДЕНОНСИРОВАНИЕ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ для денонсирования позиции таблицы страниц, реальный адрес страницы памяти которой обозначает 4К-байтный блок, содержащий команду или команду типа выполнения, которая выполняет IPTE.
5. Если средство очистки локального TLB инсталлировано, контроль локальной очистки должен указываться как единица, если ASCE, используемый для формирования удаляемой позиции TLB, был привязан только к ЦП, на котором выполняется команда IPTE (например, если программа выполняется на монопроцессоре). В противном случае возможны непредсказуемые результаты, включая представление автоматической проверки исключения отложенного доступа.
На некоторых моделях использование ДЕНОНСИРОВАНИЯ ПОЗИЦИИ ТАБЛИЦЫ СТРАНИЦ с указанием очистки только локального TLB для вышеперечисленных случаев может обеспечивать значительные улучшения функциональности.
3
4
3
6. Поля R и М команды считаются необязательными, на что указывает заключение полей в скобки [] в синтаксисе ассемблера. Если ни одно поле не указано, ассемблер ставит нули в соответствующее поле команды. Если поле М4 кодируется, но поле R не требуется, кодируется нуль для обозначения места третьего операнда.
Один вариант осуществления вычислительной среды 100, включающий и использующий один или несколько аспектов, описывается со ссылкой на ФИГ.1. Вычислительная среда 100 базируется, например, на архитектуре z/Architecture, предложенной корпорацией IBM, Armonk, New York. Архитектура z/Architecture описывается в публикации IBM под названием " z/Architecture Principles of Operation," IBM Publication No. SA22-7832-08, август 2010 г.(IBM является зарегистрированной торговой маркой корпорации IBM, Armonk, New York, США. Другие использованные в этом описании названия могут быть зарегистрированными торговыми марками, торговыми марками или названиями продуктов корпорации IBM или других компаний.) В одном примере вычислительная среда на основе архитектуры z/Architecture включает бренд eServer zSeries, предложенный корпорацией IBM, Armonk, New York.
Например, вычислительная среда 100 включает комплекс центрального процессора (СРС) 102, соединенный с контроллером 120. Комплекс центрального процессора 102 включает, например, один или несколько разделов 104 (например, логические разделы LPl-LPn), один или несколько центральных процессоров 106 (например, CPl-CPm) и гипервизор 108 (например, менеджер логического раздела), каждый из которых описывается ниже.
Каждый логический раздел 104 способен функционировать как отдельная система. То есть, каждый логический раздел может быть автономно переустановлен, первоначально снабжен операционной системой в случае необходимости и может работать с различными программами. Операционная система или прикладная программа, функционирующая в логическом разделе, по идее имеет доступ к полной системе, однако в реальности доступна лишь ее часть. Комбинация аппаратных средств и лицензионного внутреннего кода (обычно называемого микрокодом) защищает программу в логическом разделе от помех программы в другом логическом разделе. Это позволяет нескольким различным логическим разделам работать на одном или нескольких физических процессорах с квантованием по времени. В данном конкретном примере каждый логический раздел располагает резидентной операционной системой ПО, которая может отличаться для одного или нескольких логических разделов. В одном варианте осуществления операционная система НО является операционной системой z/OS от корпорации IBM, Armonk, New York.
Центральные процессоры 106 являются физическими процессорными ресурсами, распределяемыми по логическим разделам. Например, логический раздел 104 включает один или несколько логических процессоров, каждый из которых представляет все или часть физических процессорных ресурсов 106, предназначенных для раздела. Логические процессоры конкретного раздела 104 могут быть предназначены для раздела, таким образом, чтобы базовый процессорный ресурс резервировался для этого раздела; или общими для нескольких разделов, таким образом, чтобы базовый процессорный ресурс был потенциально доступен для другого раздела.
Логические разделы 104 управляются гипервизором 108, реализуемым через микрокод, действующий на процессорах 106. Логические разделы 104 и гипервизор 108 включают одну или несколько программ, находящихся в соответствующих частях центрального запоминающего устройства, связанного с центральными процессорами. Одним из примеров гипервизора 108 является процессорный ресурс / системный менеджер (PR/SM) от корпорации IBM, Armonk, New York.
Контроллер 120, соединенный с комплексом центрального процессора, включает централизованную логику, отвечающую за посредничество между разными процессорами, отправляющими запросы. Например, если контроллер 120 получает запрос, он определяет, что запросчик является главным процессором для этого запроса, и что другие процессоры являются подчиненными процессорами; он передает сообщения; в других случаях обрабатывает запросы. Один из примеров контроллера описывается в Патенте США №6,199,219 под названием "System Serialization With Early Release Of Individual Processor" Webb et al., 12 сентября 2000 г., который включается в данное описание путем ссылки в полном объеме. Дополнительные детали также описываются со ссылкой на ФИГ. 2.
ФИГ. 2 показывает один пример контроллера 200, соединенного с множеством центральных процессоров (ЦП) 201. В этом примере показаны два центральных процессора. Однако следует понимать, что с контроллером 200 могут быть соединены более двух процессоров.
Контроллер 200 включает различные средства контроля, включая, например, средства контроля 202 системы сериализации. Средства контроля системы сериализации применяются, чтобы гарантировать, сериализацию операций, подлежащих сериализации, таких, как команды на денонсирование, таким образом, чтобы за раз выполнялась только одна такая команда в вычислительной среде. Он также контролирует последовательность событий для этой операции.
Контроллер 200 соединен с каждым центральным процессором через различные интерфейсы. Например, интерфейс 204 используется лицензионным внутренним кодом в центральном процессоре для отправки "контрольных" команд на контроллер, которые указывают действие, которое должно быть выполнено, и для отправки "смысловых" команд, возвращающих информацию от контроллера. Другим интерфейсом является шина ответа 206, которая используется для возврата информация от контроллера для "смысловых" команд. Шина ответа также используется для сообщения состояния команды для "контрольных" команд и может быть установлен из множества источников в пределах контроллера, включая средства контроля системы сериализации. Центральный процессор может использовать этот интерфейс для считывания состояния средств контроля системы сериализации в контроллере 200.
Еще одним интерфейсом является интерфейс 208, который используется контроллером для отправки команд на каждый ЦП. Он также может регулироваться из множества источников в пределах контроллера, включая средства контроля системы сериализации 202. Еще одним интерфейсом является интерфейс 210, обеспечивающий сигналы на контроллер кэш-памяти 212 центрального процессора 201. Контроллеры кэш-памяти 212 обрабатывают команды в ответ на сигналы. В одном примере контроллеры кэш-памяти 212 обрабатывают команды, влияющие на один или несколько буферов, таких, как буферы динамической трансляции адресов (TLB) 213, как описывается более детально ниже.
Помимо контроллеров кэш-памяти 212, центральный процессор 201 включает различные другие контроллеры, включая, например, контроллеры прерываний 220 и контроллеры выполнения 222. В ответ на конкретные события контроллеры прерываний 220 вызывают внутреннее прерывание, находящееся в режиме ожидания в ЦП, которое, в свою очередь, заставляют контроллеры выполнения 222 приостанавливать обработку команды программы, в следующий прерываемый момент. В ответ на прерывание контроллеры выполнения 222 запускают подпрограмму лицензионного внутреннего кода для установки разблокируемой операцией передачи защелки 224, что позволяет контроллерам кэш-памяти 212 обрабатывать ожидающие команды.
Центральный процессор 201 также включает защелку 226 приостановки центрального процессорного модуля (ЦП), которая указывает, является ли центральный процессор приостановленным. Термины "ЦП" и "процессор" могут использоваться в описании взаимозаменяемо.
Вышеописанная вычислительная среда представляет только один пример. Возможны многие варианты. Например, один или несколько разделов могут функционировать в различных режимах архитектуры. Кроме того, в еще одном примере, среда не обязательно должна быть на основе архитектуры z/Architecture, а может базироваться на других архитектурах, например, от Intel, Sun Microsystems и т.п.Более того, среда может включать эмулятор (например, программу или другие механизмы эмуляции), в котором эмулируется архитектура или их подмножество. В такой среде одна или несколько функций эмуляции эмулятора могут реализовать один или несколько аспектов, даже если компьютер, реализующий эмулятор, может иметь другую архитектуру относительно эмулируемых возможностей. Например, в режиме эмуляции эмулируемая конкретная команда или операция декодируется, и создается соответствующая функция эмуляции для реализации отдельной команды или операции.
Дополнительные детали среды эмуляции описываются со ссылкой на ФИГ. 3. Например, хост-компьютер 300 способен эмулировать другую архитектуру, компьютер и/или возможности обработки другого компьютера. Например, хост-компьютер 300 базируется на архитектуре Intel; архитектуре RISC, такой, как PowerPC; архитектуре SPARC от Sun Microsystems или другой архитектуре и способен эмулировать архитектуру z/Architecture от IBM или другую архитектуру от IBM или другого производителя.
Хост-компьютер 300 включает, например, запоминающее устройство 302 для хранения команд и данных; устройство выборки команды 304 для выборки команд из запоминающего устройства 302 и, необязательно, для обеспечения локального буферирования для выбранных команд; устройство декодирования команд 306 для получения команд от устройства выборки команды 304 и для определения типа выбранных команд; и устройство выполнения команды 308 для выполнения команд. Выполнение может включать загрузку данных в регистр из запоминающего устройства 302; возвращение данных для хранения в запоминающее устройство из регистра; или выполнение определенного типа арифметической или логической операции, как определяется декодирующим устройством.
В одном примере каждое описанное выше устройство реализуется в программе. Например, операции, выполняемые устройствами, реализуются как одна или несколько подпрограмм в пределах эмулирующей программы. В другом примере одна или несколько операций реализуются во встроенных программах, аппаратных средствах, программном обеспечении или их комбинации.
Кроме того, хотя ФИГ. 3 описывается со ссылкой на эмуляцию, среда с ФИГ. 3 не обязательно должна быть эмуляционной средой. В другом примере, команды выполняются в собственной среде, и операции реализуются в аппаратных средствах, встроенных программах, программном обеспечении или их комбинации.
Вычислительная среда может включать виртуальную память, а также основное запоминающее устройство. Виртуальная память может значительно превышать размер основного запоминающего устройства, доступного в конфигурации, и обычно поддерживается во вспомогательном запоминающем устройстве. Виртуальная память состоит из блоков адресов, называемых страницами. Страницы виртуальной памяти, к которым выполнялось наиболее позднее обращение, распределяются по блокам физического основного запоминающего устройства. Когда пользователь обращается к страницам виртуальной памяти, которые отсутствуют в основном запоминающем устройстве, вносятся виртуальные страницы на замену страниц в основном запоминающем устройстве, которые будут использоваться с меньшей вероятностью. Перекачивание страниц в памяти может выполняться операционной системой без ведома пользователя.
Адреса, используемые для обозначения месторасположения в виртуальной памяти, называются виртуальными адресами. Блок из последовательных виртуальных адресов, охватывающий, например, до 4 килобайт, называется страницей. Подобным образом блок из последовательных виртуальных страниц, охватывающий, например, до 1 Мб, называется сегментом; и блок из последовательных виртуальных сегментов, охватывающий, например, до 2 Гб, называется регионом. Кроме того, последовательность виртуальных адресов, связанных с виртуальной памятью, обозначенной элементом управления адресного пространства (ASCE), называется адресным пространством. Адресные пространства могут использоваться для обеспечения степени изоляции между пользователями. Адресное пространство может включать один или несколько регионов, один или несколько сегментов, одну или несколько страниц, или их определенную комбинацию.
Связанными с различными типами единиц хранения (например, регионами, сегментами, страницами) являются структуры данных, используемые при обработке, связанной с единицами хранения. Например, с регионами связаны региональные таблицы; с сегментами связаны таблицы сегментов; и со страницами связаны таблицы страниц. Эти таблицы используются, например, во время трансляции (например, динамической трансляции адреса) виртуального адреса в реальный адрес, который используется для доступа к основному запоминающему устройству. Таблицы, используемые при трансляции, называются таблицами трансляций, обозначаются элементом управления адресного пространства (ASCE). Единица виртуальной памяти, которая в данный момент не приписана основному запоминающему устройству, называется недействительной. Недействительное состояние единицы виртуальной памяти указывается индикатором недействительности в структуре данных, связанной с этой единицей.
Механизм динамической трансляции адреса в одном варианте осуществления реализуется таким образом, что информация, взятая из таблицы трансляций (например, региональных таблиц, таблиц сегментов и/или таблиц страниц) через процесс DAT, поддерживается в одном или нескольких буферов, расположенных в пределах процессоров, которые в этом описании называются буферами динамической трансляции адресов, с целью повышения эффективности трансляции адресов. То есть, во время трансляции буферов буферы проверяются на наличие нужной информации, а затем, если информация отсутствует в буферах, производится оценка одной или нескольких из таблиц трансляций.
В режиме эмуляции конкретная эмулируемая команда декодируется, и создается подпрограмма для реализации отдельной команды, как в подпрограмме С или драйвере, или используется какая-либо другая технология для обеспечения драйвера для конкретного аппаратного средства, как станет понятно специалисту в данной области по ознакомлении с описанием осуществления изобретения. Различные патенты, касающиеся эмуляции программ и аппаратных средств, включая, помимо прочих, Патент США №5,551,013 под названием "Multiprocessor for Hardware Emulation", Beausoleil et al.; Патент США №6,009,261 под названием "Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor", Scalzi et al.; Патент США №5,574,873 под названием "Decoding Guest Instruction to Directly Access Emulation Routines That Emulate the Guest Instructions", Davidian et al.; Патент США №6,308,255 под названием "Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System", Gorishek et al.; Патент США №6,463,582 под названием "Dynamic Optimizing Object Code Translator For Architecture Emulation and Dynamic Optimizing Object Code Translation Method", Lethin et al.; и Патент США №5,790,825 под названием "Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions", Eric Traut; каждый из которых включается в данное описание путем ссылки в полном объеме, и многие другие, иллюстрируют различные известные способы достижения эмуляции формата команд, разработанного для машины, отличной от целевой машины, доступные специалистам в данной области, а также применяемые ими коммерческие программные технологии.
СРАВНЕНИЕ И ЗАМЕНА ПОЗИЦИИ ТАБЛИЦЫ DAT (CRDTE)
Описывается команда ЦП (СРАВНЕНИЕ И ЗАМЕНА ПОЗИЦИИ ТАБЛИЦЫ DAT), которая может заменять действительную позицию таблицы DAT на новую позицию, и очищать TLB от любых копий (как минимум) одной позиции на всех ЦП в конфигурации. Эта команда не требует приостановки каких-либо активных задач и она не может удалять большее количество позиций, чем необходимо.
Когда выполняется команда CRDTE, выборочная очистка от позиций может быть реализована различными способами, в зависимости от модели, и в целом может быть удалено большее количество позиций, чем требуемое минимальное количество. Некоторые модели могут удалять все позиции, содержащие реальные адреса страниц памяти, полученные из позиций таблицы страниц в памяти.
Если управляющая программа требует замены действительной позиции в таблице DAT (то есть, позиции таблицы, которая потенциально может использоваться другими ЦП), она может выполнять одну из следующих операций:
- Приостановка выполнения всех задач, которые могут использовать эту позицию DAT-таблицы, на всех ЦП в конфигурации, денонсирование и удаление позиции на всех ЦП (например, с использованием IPTE), замена денонсированной позиции на новую позицию и редиспетчеризацию приостановленных задач.
- Замена позиции таблицы DAT и очистка всего TLB на всех ЦП в конфигурации (например, с использованием CSPG).
Первая опция сложна тем, что требует дедиспетчеризации и редиспетчеризации задач. Вторая опция является субоптимальной, поскольку требует очистки всего TLB, даже если изменяется только одна позиция.
<mrow />
В одном варианте осуществления процессор компьютера получает команду на обработку. На основе кода операции машина обрабатывает команду на сравнение и замену позиции таблицы DAT (CRDTE). Команда CRDTE имеет следующий формат:
код операции R<sub>3</sub> М<sub>4</sub> R<sub>1</sub> R<sub>2</sub>
1
2
1
1
Каждое из полей R и R обозначает четно-нечетную пару общих регистров и должна обозначать регистр с четным числом; в противном случае распознается исключение по спецификации. Общий регистр R (четный регистр пары) содержит первый операнд. Первый операнд может называться сравнительным значением. Общий регистр R+1 (нечетный регистр пары) может называться значением замены.
2
2
2
2
При выполнении команды сравнивают первый и второй операнд. Первый операнд расположен в общем регистре R1. Второй операнд обозначен общими регистрами R и R+1. R и R+1 содержат информацию об адресации, такую, как тип обозначенной таблицы (DTT) и эффективный индекс в таблице для локализации второго операнда.
1
Сразу после получения первого и второго операндов их сравнивают, и если они равны, содержимое общего регистра R+1 хранится в месторасположении второго операнда, и указанные один или несколько ЦП в конфигурации очищаются от (1) всех позиций таблицы TLB обозначенного типа, сформированных путем использования замененной позиции в памяти и (2) всех позиций таблицы TLB более низкого уровня, сформированных путем использования удаленных позиций таблицы TLB более высокого уровня. Удаляемые позиции TLB необязательно могут ограничиваться позициями, сформированными для трансляции адресов в указанном адресном пространстве. Код результирующего условия устанавливается на 0.
Если первый и второй операнды не равны, второй операнд загружается в месте первого операнда, и код результирующего условия устанавливается на 1.
Поле М4 может определять, подлежат ли очистке TLB всех ЦП в конфигурации или только TLB в ЦП, выполняющем команду.
Фигура 4 показывает диаграмму осуществления изобретения.
В одном варианте осуществления процессор компьютера получает команду CRDTE 0401 на обработку. На основе кода операции машина обрабатывает команду сравнения и замены позиции таблицы DAT.
1
2
1
1
Каждое из полей R и R обозначает четно-нечетную пару общих регистров 0405 и должно обозначать регистр с четным числом; в противном случае распознается исключение по спецификации. Общий регистр R (четный регистр пары) 0410 содержит первый операнд в позициях битов 0-63. Первый операнд может называться сравнительным значением. Позиции битов 0-63 общего регистра R+1 (нечетный регистр пары) 0411 могут называться значением замены.
1
2
2
2
2
2
При выполнении команды первый и второй операнды сравниваются. Первый операнд находится в общем регистре R 0410. Второй операнд является двойным словом в памяти, обозначенным общими регистрами R 0420 и R+1 0421. Биты 59-61 общего регистра R представляют тип обозначенной таблицы (DTT), указывая биты в общем регистре R, образующие источник таблицы 0430 в памяти 0440; DTT также указывает биты в общем регистре R+1, которые используются как эффективный индекс в таблице для локализации второго операнда 0435.
1
Сразу после сравнения первого и второго операндов 0436, если они равны, содержимое общего регистра R+1 хранится в месторасположении второго операнда 0445, и, как показано в 0450, указанные один или несколько ЦП в конфигурации очищаются от (1) всех позиций таблицы TLB обозначенного типа, сформированных путем использования замененной позиции в памяти, и (2) всех позиций таблицы TLB более низкого уровня, сформированных путем использования удаленных позиций таблицы TLB более высокого уровня. Удаляемые позиции TLB необязательно могут ограничиваться позициями, сформированными для трансляции адресов в указанном адресном пространстве. Код результирующего условия устанавливается на 0, как показано в 0455.
Если первый и второй операнды не равны, второй операнд загружается в месте первого операнда 0460. Код результирующего условия устанавливается на 1, как показано в 0465.
Команда 0401 может использовать поле М4 0402 чтобы определить, подлежат ли выборочной очистке TLB всех ЦП в конфигурации 1570, или только TLB в ЦП, выполняющем команду 1575. Поле М4 содержит контроль локальной очистки (LC). Если контроль LC в поле М4 равняется нулю, это затрагивает TLB во всех ЦП в конфигурации. Если поле контроля LC в поле М4 равняется единице, может быть затронут только TLB, связанный с ЦП, выполняющим команду сравнения и замены позиции таблицы DAT. TLB во всех других ЦП в конфигурации могут быть не затронуты.
Примечание: Термин "указанные один или несколько ЦП" имеет следующее значение для областей TLB, которых касается эта команда:
Если контроль локальной очистки (LC) в поле М4 равняется нулю, термин "указанные один или несколько ЦП" означает все ЦП в конфигурации.
Если контроль LC в поле М4 равняется единице, термин "указанные один или несколько ЦП" означает только ЦП, выполняющие команду СРАВНЕНИЕ И ЗАМЕНА ПОЗИЦИИ ТАБЛИЦЫ DAT (локальный ЦП). TLB во всех других ЦП в конфигурации могут быть не затронуты.
1
- Первый и второй операнды сравниваются. Если они равны, содержимое общего регистра R+1 хранится в месторасположении второго операнда, и указанные один или несколько ЦП в конфигурации очищаются от (1) всех позиций таблицы TLB обозначенного типа, сформированных путем использования замененной позиции в памяти, и (2) всех позиций таблицы TLB более низкого уровня, сформированных путем использования удаленных позиций таблицы TLB более высокого уровня. Удаляемые позиции TLB необязательно могут ограничиваться позициями, сформированными для трансляции адресов в указанном адресном пространстве.
- Если первый и второй операнды не равны, второй операнд загружается в месте первого операнда. Однако на некоторых моделях второй операнд может быть выбран, а затем возвращен неизменным для хранения в месторасположении второго операнда. Это обновление представляет собой обращение к блок-конкурентному взаимоблокированному обновлению, согласно наблюдению со стороны других ЦП. Результат сравнения указывается кодом условия.
1
2
1
1
Каждое из полей R и R обозначает четно-нечетную пару общих регистров и должно обозначать регистр с четным числом; в противном случае распознается исключение по спецификации. Как показано на Фиг.5, первый операнд называется сравнительным значением 0501 и содержится в позициях битов 0-63 общего регистра R. Позиции битов 0-63 общего регистра R+1 называются значением замены 0510.
2
2
2
2
2
Второй операнд является двойным словом в памяти, обозначенной общими регистрами R и R+1 0540. Биты 59-61 общего регистра R представляют тип обозначенной таблицы (DTT), указывающий биты в общем регистре R, формирующие источник таблицы в памяти; DTT также указывает биты в общем регистре R+1 0540, используемые как эффективный индекс в таблице для локализации второго операнда, следующим образом:
DTT (биты 59-61 регистра R<sub>2</sub>)
Тип таблицы
Биты источника таблицы в регистре R<sub>2</sub>
Биты эффективного индекса в регистре R<sub>2</sub>+l
000
Страница
0-52
44-51
001-011
-
-
-
100
Сегмент
0-51
33-43
101
Третий регион
0-51
22-32
110
Второй регион
0-51
11-21
111
Первый регион
0-51
0-10
2
2
Если DTT является 000 двоичным, как показано в 0520, содержание позиций битов 0-52 общего регистра R, с добавлением справа одиннадцати нулей, 0521, формирует источник таблицы, и биты 53-58 в 0522, 62 в 0523 и 63 в 0524 регистра игнорируются. Если DTT является 100-111 двоичным, как показано в 0530, содержание позиций битов 0-51 общего регистра R, с добавлением справа двенадцати нулей, 0531, формирует источник таблицы, и биты 52-58 в 0532, 62 в 0533, и 63 в 0534 регистра игнорируются. Значения DTT 001, 010 и 011 двоичные являются недействительными; распознается исключение по спецификации, если DTT является недействительным.
2
2
2
Биты 0-51 общего регистра R+1 0540 имеют формат показателя региона, показатель сегмента и указатель страниц виртуального адреса. Часть битов 0-51 в 0541, обычно используемая DAT для выбора позиции в типе таблицы, обозначенной DTT, называется эффективным индексом. Часть битов 0-51 общего регистра R+1 справа от эффективного индекса игнорируется. Позиции битов 52-63 общего регистра R+1, 0542, резервируются и должны содержать нули; в противном случае распознается исключение по спецификации.
3
3
3
3
Если R 0550 является отличным от нуля, содержимое общего регистра R имеет формат элемента управления адресного пространства с использованием только источника таблицы, биты 0-51 в 0551, и контроля типа обозначения (DT), биты 60 и 61 в 0553. Они используются для выбора подлежащих удалению позиций TLB. Биты 52-59 в 0552, 62 в 0554, и 63 в 0555 общего регистра R игнорируются. Если R равняется нулю, все содержимое общего регистра 0 игнорируется, и позиции TLB удаляются независимо от ASCE, используемого для их формирования.
Поле М4 показано на Фиг.6.
Биты поля М4 определяются следующим образом:
Резервирование: Биты 0-2 как показано в 0601 резервируются. Зарезервированные позиции битов поля М4 игнорируются, но должны содержать нули; в противном случае программа в будущем может быть неспособна к совместимой работе.
Контроль локальной очистки (LC):
Бит LC, бит 3 поля М4 0602, контролирует, очищается ли только TLB в локальном ЦП, или же очищаются TLB во всех ЦП конфигурации.
1
Если первый и второй операнды равны, содержимое общего регистра R+1 хранится в месторасположении второго операнда, и буферы динамической трансляции (TLB) в указанных ЦП в конфигурации очищаются от (1) всех позиций таблицы TLB обозначенного типа, сформированных путем использования первоначального содержимого второго операнда в памяти (то есть, содержимого второго операнда до его замены замещающим значением), и (2) всех позиций таблицы TLB более низкого уровня, сформированных путем использования удаленных позиций таблицы TLB более высокого уровня. Удаляемые позиции TLB необязательно могут ограничиваться позициями, сформированными для трансляции адресов в указанном адресном пространстве.
2
2
В зависимости от типа таблицы, источник таблицы в общем регистре R и эффективный индекс в общем регистре R+1 обозначают позицию таблицы в соответствии с правилами, изложенными в "Lookup in a Table Designated by an Address-Space-Control Element" или "Page-Table Lookup" в "Принципах функционирования архитектуры zlArchitecture", публикация IBM №SA22-7832-08, август 2010 г., за исключением того, перенос из позиции бита 0 сформированного адреса всегда игнорируется, и показатель не проверяется по полю длины таблицы. Источник таблицы рассматривается как 64-битный адрес, и добавление выполняется путем применения правил для вычисления 64-битного адреса, независимо от текущего режима адресации, указываемого битами 31 и 32 текущего слова состояния программы. Адрес, сформированный из этих двух компонентов является реальным или абсолютным адресом. Содержимое позиции таблицы не проверяется на действительность, и состояния исключения не распознаются из-за содержимого позиции таблицы.
Выборка и хранение позиции таблицы выполняются как блок-конкурентное взаимоблокированное обновление. Доступ к позиции для выборки подлежит защите с контролем по ключу, и доступ к памяти подлежит защите с контролем по ключу и защите нижнего адреса.
Функция сериализации выполняется до начала операции и еще раз после завершения операции. Как и для всех операций сериализации, эта сериализация применяется только к этому ЦП; в сериализации других ЦП нет необходимости.
Если первый и второй операнды равны, этот ЦП очищает TLB от выбранных позиций. Помимо очистки локального ЦП, если бит LC в поле М4 равняется нулю, все другие ЦП в конфигурации получают сигнал об удалении выбранных позиций из их TLB. Каждый TLB очищается по крайней мере от позиций, в отношении которых выполняются все из следующих условий:
2
2
2
- Эффективный индекс в общем регистре R+1 отвечает соответствующему индексу в позиции таблицы TLB типа, обозначенного полем DTT в битах 59-61 общего регистра R. Если в модели реализуется составная позиция TLB, которая включает индекс, обозначенный полем DTT, биты слева от эффективного индекса в общем регистре R+1 также отвечают соответствующим битам, предусмотренным в обозначенной позиции таблицы TLB.
3
3
- Либо поле R равняется нулю, либо поля источника таблицы и типа обозначения в общем регистре R соответствуют полям источника таблицы и типа обозначения в элементе управления адресного пространства (ASCE), используемым для формирования позиции таблицы TLB.
3
- Если поле R равняется нулю, условие, описанное на этом этапе, не действует.
- Если применяется EDAT-1, и позиция, замененная в памяти, является позицией таблицы сегментов, или если применяется EDAT-2 и позиция, замененная в памяти, является третьей позицией региональной таблицы, управление форматом в замененной позиции соответствует управлению позиции TLB.
- Если замененная позиция в памяти обозначает таблицу трансляций более низкого уровня, источник таблицы более низкого уровня в позиции соответствует полю источника таблицы в позиции таблицы TLB.
- Если применяется EDAT-1 и позиция, замененная в памяти, является позицией таблицы сегментов, в которой управление форматом равняется единице, или если применяется EDAT-2 и позиция, замененная в памяти, является третьей позицией региональной таблицы, в которой управление форматом равняется единице, абсолютный адрес кадра сегмента или абсолютный адрес кадра региона, соответственно, в замененной позиции соответствует адресу позиции TLB.
Каждый соответствующий TLB также очищается как минимум от любых позиций таблицы TLB более низкого уровня, в отношении которых выполняются все из следующих условий:
- Позиция таблицы TLB более низкого уровня была сформирована путем использования замененной позиции в памяти или путем использования позиции таблицы TLB более высокого уровня, сформированной путем использования любой замененной позиции в памяти или позиция TLB, удаленной в этом процессе.
3
3
- Либо поле R равняется нулю, либо поля источника таблицы и типа обозначения в общем регистре R соответствуют полям источника таблицы и типа обозначения в элементе управления адресного пространства (ASCE), используемом для формирования позиции таблицы TLB более низкого уровня. Этот ASCE может быть элементом, привязывавшим маршрут трансляции, содержащий позицию таблицы более высокого уровня, привязывавшую позицию таблицы более низкого уровня в памяти, из которой была сформирована позиция таблицы TLB более низкого уровня, или может быть элементом, обеспечившим применимость позиции таблицы TLB более высокого уровня, привязывавшей позицию таблицы более низкого уровня в памяти, из которой была сформирована позиция таблицы TLB более низкого уровня.
Если поле R.3 равняется нулю, условие, описанное на этом этапе, не действует.
- Если применяется EDAT-1 и позиция, замененная в памяти, является позицией таблицы сегментов, или если применяется EDAT-2 и позиция, замененная в памяти, является третьей позицией региональной таблицы, управление форматом в замененной позиции соответствует управлению позиции TLB.
Если позиция в памяти обозначает таблицу трансляций более низкого уровня, источник таблицы более низкого уровня в позиции соответствует полю источника таблицы в позиции таблицы TLB.
Если первый и второй операнды равны, выполнение СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT не завершается на выполняющем его ЦП, пока не произойдет следующее:
1. Все позиции, отвечающие вышеуказанным критериям, были удалены из TLB этого ЦП. Если контроль LC в поле М4 равняется единице, выполнение СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT завершено, и следующий этап не выполняется.
2. Если контроль LC в поле М4 равняется нулю, все другие ЦП в конфигурации выполнили любой доступ к памяти, включая обновление битов изменения и обращения.
Операция не обязательно имеет какое-либо влияние на позиции реального пространства TLB.
Специальные условия
Распознается исключение по спецификации, и операция подавляется, если имеет место любое из следующих условий:
1
2
Поле R или поле R является нечетным.
2
Поля DTT, позиции битов 59-61 общего регистра R, содержат 001, 010 или 011 двоичные.
2
Позиции битов 52-63 общего регистра R+1 содержат ненулевые значения.
Операция подавляется по всем исключениям адресации и защиты. Код результирующего условия:
0 - Первый и второй операнды равны, второй операнд заменен на содержимое общего регистра
R1+1
1 - Первый и второй операнды не равны, первый операнд заменен на второй операнд
2--
3--
Исключения программы:
- Адресация
- Операция (если средство Enhanced-DAT-2 не инсталлировано)
- Привилегированная операция
- Защита (выборка и хранение, позиция региональной таблицы, таблицы сегментов или таблицы страниц, защита с контролем по ключу и защита нижнего адреса)
- Спецификация
Программные заметки:
1. Выборочная очистка позиций TLB может быть реализована различными способами, в зависимости от модели, и в целом может быть удалено большее количество позиций, чем требуемое минимальное количество.
2. При очистке TLB от позиций, связанных с общими сегментами, следует заметить, что эти позиции могли быть сформированы путем использования элементов управления адресного пространства, содержащих много разных источников таблицы.
3. Поле М4 команды считается необязательным, на что указывает заключение поля в скобки [] в синтаксисе ассемблера. Если поле М4 не указано, ассемблер ставит нули в этом поле команды.
4. Контроль локальной очистки должен указываться как единица только если имеет место любое из следующих условий; в противном случае возможны непредсказуемые результаты, включая представление автоматической проверки исключения отложенного доступа.
- Программа работает в однопроцессорной конфигурации.
- Программа предназначена для работы на одном ЦП, и поддерживается привязка между программой и этим ЦП.
На некоторых моделях использование СРАВНЕНИЯ И ЗАМЕНЫ ПОЗИЦИИ ТАБЛИЦЫ DAT с указанием очистки только локального TLB для вышеперечисленных случаев может обеспечивать значительные улучшения функциональности.
Возможны многие варианты вышеупомянутой среды. Например, один или несколько аспектов в равной степени применимы, например, к эмуляции виртуальной машины, в которой один или несколько элементов со страничной организацией (например, гостей) выполняются на одном или нескольких процессорах. Например, гости со страничной организацией определяются архитектурой Start Interpretive Execution (SIE), один пример которой описывается в публикации 1 ВМП под названием "IBM System/370 Extended Architecture", публикация IBM №SA22-7095 (1985), которая включается в данное описание путем ссылки в полном объеме.
Хотя SIE и архитектура z/Architecture упоминаются выше, один или несколько аспектов в равной степени применимы к другим архитектурам и/или средам, в которых задействуются элементы со страничной организацией или подобные конструкции.
Более того, описанные выше различные варианты осуществления являются лишь примерами. Например, хотя авторами описывается логически разделенная среда, она представляет только один пример. Аспекты могут выгодно применяться к многим типам сред, включая другие среды, имеющие множество зон, и неразделенные среды. Кроме того, может быть не предусмотрено комплексов центрального процессора, но несколько процессоров могут быть связаны. В других вариантах один или несколько аспектов применимы к однопроцессорным средам.
Хотя описываются конкретные среды, может быть реализовано много вариантов этих сред. Например, если среда логически разделена, эта среда может включать больше или меньше логических разделов. Кроме того, возможно множество центральных процессорных комплексов, соединенных воедино. Это только некоторые из возможных вариантов. Кроме того, возможны другие варианты. Кроме того, среда может включать несколько контроллеров. В других вариантах несколько нерабочих запросов (от одного или нескольких контроллеров) могут одновременно находиться в режиме ожидания в системе. Возможны также дополнительные варианты.
В оптимальном варианте для одного или нескольких аспектов благоприятными может быть улучшения характеристик, описываемые в одном или нескольких из следующих Патентов США: Патент США 7530067 под названием "Filtering Processor Requests Based On Identifiers", Slegel et al.; Патент США 7020761 под названием "Blocking Processing Restrictions Based On Page Indices", Slegel et al.; и Патент США 6996698 под названием "Blocking Processing Restrictions Based On Addresses", Slegel et al., каждый из которых включается в данное описание путем ссылки в полном объеме.
В контексте данного описания термин "блок обработки" включает элементы со страничной организацией, такие, как гости; процессоры; эмуляторы; и/или другие подобные компоненты. Более того, термин "блоком обработки" также охватывает выполнение за блок обработки. Термин "буфер" включает область хранения, а также различные типы структур данных, включая, помимо прочих, множества; и термин "таблица" может охватывать отличные от табличного типа структуры данных. Кроме того, команда для обозначения информации может включать не только регистры. Более того, страница, сегмент и/или регион могут иметь размеры, отличные от описываемых авторами.
В программном обеспечении, встроенных программах, аппаратных средствах или их определенной комбинации могут быть реализованы одна или несколько возможностей. Кроме того, одна или несколько возможностей могут быть эмулированы.
Готовый продукт (например, один или несколько компьютерных программных продуктов), имеющий, например, электронные носители, может включать один или несколько аспектов. В носителях воплощаются, например, машиночитаемый программный код или логика (например, инструкции, код, команды и т.п.) для обеспечения и содействия возможностям. Готовый продукт может быть включен как часть компьютерной системы или может продаваться отдельно.
Кроме того, может обеспечиваться как минимум одно машиночитаемое запоминающее устройство для хранения программ, в котором реализуется как минимум одна программа команд, выполняемых машиной для реализации возможностей.
Описываемые авторами технологические схемы представлены лишь для примера. Возможны многие варианты этих описываемых авторами схем или этапов (или операций). Например, этапы могут выполняться в разном порядке, или же этапы могут добавляться, удаляться или изменяться.
Хотя авторами подробно описываются оптимальные варианты осуществления, специалистам в данной области станет понятной возможность различных модификаций, добавлений, замен и других подобных изменений, и, таким образом, они охватываются объемом, определяемым прилагаемой формулой изобретения.
В еще одном варианте осуществления применяется система обработки данных, приемлемая для хранения и/или выполнения программного кода, включающая как минимум один процессор, прямо или опосредованно соединенный с элементами запоминающего устройства через системную шину. К элементам запоминающего устройства относятся, например, местное запоминающее устройство, задействованное во время фактического выполнения программного кода, запоминающее устройство большого объема, и кэш-память, которые обеспечивают временное хранение как минимум некоторых программных кодов, с целью уменьшения количества раз отыскивания кода в запоминающем устройстве большого объема во время выполнения.
Устройства ввода/вывода (включая, помимо прочих, клавиатуру, дисплеи, манипуляторы, ЗУ с прямым доступом, лента, CD, DVD, флеш-накопители и другие запоминающие устройства) могут быть соединены с системой прямо или через промежуточные контроллеры ввода/вывода. Сетевые адаптеры также могут быть соединены с системой для обеспечения соединения системы обработки данных с другими системами обработки данных или удаленными принтерами или устройствами памяти через промежуточные частные или государственные сети. Модемы, кабельные модемы и Ethernet-платы являются примерами доступных типов сетевых адаптеров.
Изделие может включать один или несколько аспектов (например, один или несколько компьютерных программных продуктов), имеющих, например, компьютерные носители. Носители включают, например, машиночитаемые программные коды или логику (например, команды, код, инструкции и т.п.) для обеспечения и облегчения возможностей. Изделие может быть включено как часть системы (например, компьютерной системы) или может продаваться отдельно.
Один пример изделия или компьютерного программного продукта, включающего один или несколько аспектов, описывается со ссылкой на ФИГ. 7. Компьютерный программный продукт 0700 включает, например, один или несколько используемые компьютером носители 0702 для хранения на них машиночитаемых программных кодов или логики 0704 для обеспечения и облегчения одного или нескольких аспектов. Носитель может быть электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой (или аппаратом или устройством) или средой для распространения. Примерами машиночитаемого носителя могут быть полупроводниковые или твердотельные запоминающие устройства, магнитная лента, съемная компьютерная дискета, запоминающее устройство с произвольной выборкой (RAM), постоянное запоминающее устройство (ROM), жесткий магнитный диск и оптический диск. Примерами оптических дисков являются постоянное запоминающее устройство на компакт-диске (CD-ROM), компакт-диск с возможностью считывания / записи (CD-R/W) и DVD. Последовательность команд программ или логический узел одного или нескольких взаимосвязанных модулей, определяемых одним или несколькими машиночитаемыми программными кодами или логика управляют функциями одного или нескольких аспектов.