- •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.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.
Номер виртуальной страницы (Virtual Page Number) подразумевается позицией элемента в VHPT. Хэшированый элемент короткого формата рассматривается как соответствующая трансляция.
Идентификаторы регионов (Region Identifiers) не задаются в коротком формате. Для гарантии уникальности, программное обеспечение должно обеспечить уникальное отображение VHPT для каждого региона. Идентификаторы региона, полученные при обращении к регистрам региона, отмечаются трансляцией при вставке в TLB.
Размер страницы (Page Size) задается обращением к предпочтительному размеру страницы региона (RR[VA{63:61}].ps).
Ключ защиты (Protection Key) задается обращением к значению идентификатора региона (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 |
Тег трансляции (Translation Tag), в конъюнкции с хэш индексом VHPT используется для уникальной идентификации трансляции. Теги вычислены с помощью хэширования номера виртуальной страницы и идентификатора региона. Детальнее о генерации тегов и индексов хэширования см. раздел 4.1.6 «Хэширование VHPT». |
it |
+16 |
Бит недействительного тега (Invalid Tag). Если он 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 бита при запуске сохранений.
