- •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.5.3. Короткий формат базирования региона vhpt
Короткий формат базирования региона VHPTпоказанный на рис. 4.10, использует 8-байтовые элементыVHPTдля поддержки конфигурации по-регионной таблицы линейных страниц. Для использования короткого форматаPTA.vfдолжно быть равно 0.
63 |
|
|
|
|
53 |
52 |
51 |
50 |
49 |
|
|
|
|
|
|
|
|
12 |
11 |
|
9 |
8 |
7 |
6 |
5 |
4 |
|
2 |
1 |
0 |
ig |
ed |
rv |
ppn |
ar |
pl |
d |
a |
ma |
rv |
p | ||||||||||||||||||||
11 |
1 |
2 |
38 |
3 |
2 |
1 |
1 |
3 |
1 |
1 |
Рис. 4.10. Короткий формат VHPT
Описание всех полей см. в разделе 4.1.1.5 «Формат вставки трансляции». Обходчик VHPTобеспечивает по умолчанию следующие значения, при установке элементов вTLB.
Номер виртуальной страницы (VirtualPageNumber) подразумевается позицией элемента вVHPT. Хэшированый элемент короткого формата рассматривается как соответствующая трансляция.
Идентификаторы регионов (RegionIdentifiers) не задаются в коротком формате. Для гарантии уникальности, программное обеспечение должно обеспечить уникальное отображениеVHPTдля каждого региона. Идентификаторы региона, полученные при обращении к регистрам региона, отмечаются трансляцией при вставке вTLB.
Размер страницы (PageSize) задается обращением к предпочтительному размеру страницы региона (RR[VA{63:61}].ps).
Ключ защиты (ProtectionKey) задается обращением к значению идентификатора региона (RR[VA{63:61}].rid). В результате, все реализации должны убедиться, что количество реализованных битов ключа не меньше, чем количество реализованных битов идентификатора региона.
Если трансляция отмечена как несуществующая, то игнорируемые поля пригодны для использования так, как отмечено на рис. 4.11.
63 |
1 |
0 |
ig |
0 | |
63 |
1 |
Рис. 4.11. Короткий формат несуществующего VHPT
4.1.5.4. Длинный формат vhpt
Длинный формат VHPTиспользует 32-байтовые элементыVHPTдля поддержки единой большой таблицы виртуальных хэш страниц. Для использования длинного форматаVHPT,PTA.vfдолжно быть установлено в 1. Длинный формат является охватывающим множеством формата вставкиTLB, как отмечено на рис. 4.12, и задает полную информацию трансляции (включая ключи защиты и размеры страниц). Дополнительные поля определены в табл. 4.8. Длинный формат обычно используется для построения конфигурации таблицы хэш страниц.
смещ. |
63 |
|
|
|
53 |
52 |
51 |
50 |
49 |
|
|
|
32 |
31 |
|
|
|
12 |
11 |
|
9 |
8 |
7 |
6 |
5 |
4 |
|
2 |
1 |
0 |
+0 |
ig |
ed |
rv |
ppn |
ar |
pl |
d |
a |
ma |
rv |
p | |||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+8 |
rv |
key |
ps |
rv | ||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+16 |
ti |
tag | ||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+24 |
ig | |||||||||||||||||||||||||||||
|
64 |
Рис. 4.12. Длинный формат VHPT
Табл. 4.8. Поля длинного формата VHPT
Поле |
Смещение |
Описание |
tag |
+16 |
Тег трансляции (TranslationTag), в конъюнкции с хэш индексомVHPTиспользуется для уникальной идентификации трансляции. Теги вычислены с помощью хэширования номера виртуальной страницы и идентификатора региона. Детальнее о генерации тегов и индексов хэширования см. раздел 4.1.6 «ХэшированиеVHPT». |
it |
+16 |
Бит недействительного тега (InvalidTag). Если он 1, то этот тег является недействительным. |
ig |
+24 |
Это поле доступно для программного использования и игнорируется процессором. Операционные системы могут сохранять любые значения, такие как, связи адресов для расширения цепочек коллизий в хэш коллизиях. |
Если трансляция отмечена как несуществующая, то игнорируемые поля пригодны для использования так, как отмечено на рис. 4.13.
смещ. |
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
7 |
|
|
|
|
2 |
1 |
0 |
+0 |
ig |
0 | ||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+8 |
ig |
ps |
rv | |||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+16 |
ti |
tag | ||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+24 |
ig | |||||||||||||||||||||||||||||
|
64 |
Рис. 4.13. Длинный формат не существующего VHPT
Для мультипроцессорных систем, элементарные обновления элементов VHPTдлинного формата, могут быть проверены программно следующим образом:
Перед выполнением множества не элементарных изменений в памяти для VHPTэлемента, программе требуется установить соответствующий битti в единицу.
После выполнения множества не элементарных изменений в памяти для VHPTэлемента, программа может очистить соответствующий битtiв ноль, чтобы снова разрешить совпадение тегов.
Изменения в памяти для VHPTэлемента должны быть ограничены для того, чтобы быть видимыми только после того, как станет видимым сохранение, которое установитtiбит в единицу. Это может быть выполнено инструкциейmf, либо путем выполнения обновления элементаVHPTпри запуске сохранений. Аналогично, должна быть ограничена очисткаtiбита, чтобы быть наблюдаемой только после того, как будут наблюдаемы все обновления элементаVHPT. Это может быть выполнено инструкциейmf, либо путем выполнения очисткиtiбита при запуске сохранений.