- •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.2. Регистры регионов (rr)
Каждый из восьми виртуальных регионов, ассоциирован с привилегированным регистром региона (RR–RegionRegister). Каждый регистр содержит идентификатор региона (RID–RegionIdentifier) и несколько других атрибутов региона (см. рис. 4.7). Значения, помещенные операционной системой в регистр региона, могут рассматриваться как совокупность идентификаторов адресного пространства процесса.
63 |
|
|
|
|
|
|
32 |
31 |
|
|
|
8 |
7 |
|
2 |
1 |
0 |
rv |
rid |
ps |
rv |
ve | |||||||||||||
32 |
24 |
6 |
1 |
1 |
Рис.4.7. Формат регистра региона
Регионы поддерживают операционные системы со множественным адресным пространством, за счет ухода от необходимости смывания TLBпри переключении контекста. Разделение между процессами организовано путем отображения общих глобальных или разделяемых идентификаторов регионов в рабочий набор регистров региона множества процессов. Все обращения к памятиIA-32 осуществляются через регистр региона 0.
Табл. 4.5 описывает поля регистра региона. Биты идентификатора региона (rid) от 0 до 17 должны быть реализованы во всех моделях процессоров. В некоторых моделях процессоров реализованы дополнительные биты. Дополнительные биты должны быть непрерывны, и начинаться с бита 18. Не реализованные биты должны быть зарезервированы. Для дальнейшей информации относительно размера идентификатора региона, реализованного в конкретной модели процессораItanium, посмотрите документацию, специфицирующую процессор.
Табл. 4.5. Поля регистра региона
Поле |
Биты |
Описание |
rv |
1,63:32 |
Зарезервировано |
ve |
0 |
VHPTWalkerEnable– разрешение обходчикаVHPT. Если – 1, то для региона разрешен обходчикVHPT, если – 0, то запрещен. |
ps |
7:2 |
PreferredPageSize– предпочтительный размер страницы. Выбирает биты виртуального адреса, используемые в хэш-функциях для наборно-ассоциативных таблицTLBилиVHPT. Кодируется как 2psбайтов. Процессор может делать существенную оптимизацию эффективности для регионов имеющих предпочтительный размер страницы.A |
rid |
31:8 |
Region Identifier – идентификатор региона. В течение вставокTLB, идентификатор региона для выбранного регистра региона используется для отметки трансляций к определенному адресному пространству. В течение просмотраTLB/VHPT, идентификатор региона используется для соответствующих трансляций и для распределения хэш-индексов среди наборовVHPTиTLB. |
О более детальном использовании этого поля см. раздел 4.1.6 «Хэширование VHPT».
Программа должна запустить операцию сериализации инструкций, чтобы гарантировать, что записи в регистры регионов являются наблюдаемыми для выборок зависимых инструкций и запустить операцию сериализации данных для обращений к зависимым данным памяти.