- •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.9. 32-Битная виртуальная адресация
- •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 |
нет | |
4.1.5. Таблица виртуальных хэш страниц (vhpt)
Таблица VHPTявляется расширением иерархииTLB, разработанным для расширения эффективности трансляции виртуальной адресации. Процессорный обходчикVHPTможет произвольно конфигурироваться для поиска вVHPT, трансляции после неудачного поиска вTLBданных или инструкций. ОбходчикVHPTобеспечивает существенное расширение эффективности, путем сокращения доли смывания конвейеров процессора из-заTLB. Ошибки промаха и заполнения для обеспечения спекулятивных трансляций выполняются параллельно с другими операциями процессора.
Таблица VHPTрасположена в пространстве виртуальной памяти и доступна для конфигурации либо как таблица первичных страниц операционной системы, либо как большой единый кэш трансляции в памяти (см. рис.4.9). Поскольку, таблицаVHPTрасположена в пространстве виртуальной памяти, то при обращении кVHPT, может быть вызван дополнительный промахTLB. Это свойство позволяет использоватьVHPT, также в качестве линейной таблицы страниц.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Рис. 4.9. Таблица виртуальных хэш страниц (VHPT)
Процессор не управляет VHPTи не выполняет никаких записей в таблицу. Программное обеспечение отвечает за вставку элементов вVHPT(включая алгоритмы замены), обновление битов мусора/доступа, аннулирование из-за чисток и когерентности в мультипроцессорных системах. Процессор не гарантирует, чтоTLBтаблицы являются когерентными с образами памятиVHPT.
Если программному обеспечению необходимо более явное управление вставкой элементов в TLBили программированиеVHPTс различными отображениями одного и того же диапазона виртуальных адресов, то может быть, необходимо сделать дополнительные действия, чтобы убедиться в продвижении вперед. См. раздел 4.1.5.2 «ПоискVHPT».


PTA.size
егионов







ункция
эширования

