- •4. Адресация и защита
- •4.1. Виртуальная адресация
- •4.1.1. Буфер трансляции адресов (tlb)
- •4.1.1.1. Регистры трансляции (tr)
- •4.1.1.2. Кэш трансляции (tc)
- •4.1.1.3. Объединенные буфера трансляции адресов
- •4.1.1.4. Сбрасывающее поведение вставок и сбросов tlb
- •4.1.1.5. Формат вставки трансляции
- •4.1.1.6. Права доступа к странице
- •4.1.1.7. Размеры страниц
- •4.1.2. Регистры регионов (rr)
- •4.1.3. Ключи защиты
- •4.1.4. Инструкции трансляции
- •4.1.5. Таблица виртуальных хэш страниц (vhpt)
- •4.1.5.1. Конфигурация vhpt
- •4.1.5.2. Поиск vhpt
- •4.1.5.3. Короткий формат базирования региона vhpt
- •4.1.5.4. Длинный формат vhpt
- •4.1.6. Хэширование vhpt
- •4.1.6.1 Индекс короткого формата vhpt базирования региона
- •4.1.6.2. Длинно форматный vhpt хэш
- •4.1.7. Среда vhpt
- •4.1.8. Поиск трансляции
- •4.1.10. Виртуальное совмещение (aliasing)
- •4.2. Физическая адресация
- •4.3. Не реализованные адресные биты
- •4.3.1. Не реализованные физические адресные биты
- •4.3.2. Не реализованные виртуальные адресные биты
- •4.3.3 Поведение инструкций с не реализованными адресами
- •4.4. Атрибуты памяти
- •4.4.1. Атрибуты памяти виртуальной адресации
- •4.4.2. Атрибуты памяти физической адресации
- •4.4.3. Атрибуты кэшируемости и когерентности
- •4.4.4. Атрибут политики записи кэша.
- •4.4.5. Атрибут объединения
- •4.4.6. Атрибуты спекулятивности
- •4.4.7. Атрибуты последовательности и упорядочивание
- •4.4.8. Атрибут «не вещь» (NaTPage)
- •4.4.9. Эффекты атрибутов памяти в инструкциях обращения к памяти
- •4.4.10. Эффекты атрибутов памяти в предварительных и проверяемых загрузках
- •4.4.11. Передача атрибутов памяти
- •4.4.11.1. Передача атрибутов памяти виртуальной адресации
- •4.4.11.2. Передача атрибутов физической адресации – отключение предвыборок/спекуляций и удаление кэшируемости
- •4.5. Выравнивание элементов памяти и атомистичность
4.1.4. Инструкции трансляции
В табл. 4.7 приводится список инструкций трансляции используемых для управления трансляциями. Регистры регионов, регистры ключей защиты и таблицы TLB доступны косвенно – номер регистра определяется содержимым общего регистра.
Процессор не проверяет, что модификация ресурсов трансляции является наблюдаемой последующими выборками инструкций или обращениями к памяти данных. Программа должна запустить операцию сериализации инструкций перед выборкой зависимой инструкции и операцию сериализации данных перед обращением к памяти зависимых данных.
Табл. 4.7. Инструкции трансляции
Мнемоника |
Описание |
Операция |
Тип инст. |
Требуется сериал-ия |
mov rr[r3]=r2 |
Записать в регистр региона |
RR[GR[r3]] = GR[r2] |
M |
по данным / инструкц. |
mov r1=rr[r3] |
Прочитать из регистра региона |
GR[r1] = RR[GR[r3]] |
M |
нет |
mov pkr[r3]=r2 |
Записать в регистр ключа защиты |
PKR[GR[r3]]= GR[r2] |
M |
по данным / инструкц. |
mov r1=pkr[r3] |
Прочитать из регистра ключа защиты |
GR[r1]= PKR[GR[r3]] |
M |
нет |
itc.i r3 |
Вставить в кэш трансляции инструкций |
ITC = GR[r3], IFA, ITIR |
M |
по инструкциям |
itc.d r3 |
Вставить в кэш трансляции данных |
DTC = GR[r3], IFA, ITIR |
M |
по данным |
itc.i itr[r2]=r3 |
Вставить в регистр трансляции инструкций |
ITR[GR[r2]] = GR[r3], IFA, ITIR |
M |
по инструкциям |
itc.d dtr[r2]=r3 |
Вставить в регистр трансляции данных |
DTR[GR[r2]] =GR[r3], IFA, ITIR |
M |
по данным |
probe r1=r3,r2 |
Проверит данные TLB для трансляции |
M |
нет |
|
ptc.l r3,r2 |
Сбросить трансляцию для кэша трансляций инструкций и данных локального процессора |
M |
по данным / инструкц. |
|
ptc.g r3,r2 |
Глобальный сброс трансляции, для кэша трансляций инструкций и данных множества процессоров |
M |
по данным / инструкц. |
|
ptc.ga r3,r2 |
Глобальный сброс трансляции, для кэша трансляций инструкций и данных множества процессоров, а также удаление соответствующих элементов таблиц ALAT множества процессоров |
M |
по данным / инструкц. |
|
ptc.e r3 |
Сброс всех элементов локального кэша трансляций инструкций и данных |
M |
по данным / инструкц. |
|
ptr.i r3,r2 |
Сброс регистров трансляции инструкций |
M |
по инстр. |
|
ptr.d r3,r2 |
Сброс регистров трансляции данных |
M |
по данным |
|
tak r1= r3 |
Получить ключ защиты элемента TLB данных |
M |
нет |
|
thash r1= r3 |
Генерация хэш-адреса трансляции VHPT |
M |
нет |
|
ttag r1= r3 |
Генерация тега трансляции для VHPT |
M |
нет |
|
tpa r1= r3 |
Трансляция виртуального адреса в физический адрес |
M |
нет |
|
