
- •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.1.7. Размеры страниц
Диапазон размеров страниц поддерживается для того, чтобы помочь программному обеспечению в отображении системных ресурсов и улучшении использования TLB/VHPT. Как правило, операционные системы выбирают маленький диапазон установленных размеров страниц для алгоритмов, реализующих виртуальную память. Большие страницы могут выделяться статически. Например, большие области виртуального адресного пространства могут быть зарезервированы для ядер операционной системы, буферов окон или для отображений в памяти регионов ввода/вывода. Программное обеспечение может также отметить эти трансляции, путем помещения их в регистры трансляции.
В табл. 4.4 перечислены размеры страниц, доступные для вставки и сброса, которые поддерживаются всеми моделями процессоров. Доступные для вставки размеры страниц могут быть указаны в кэше трансляции, регистрах трансляции, регистрах регионов и VHPT. Доступные для вставки размеры страниц могут быть также использованы как параметры для инструкций сбросаTLB(ptc.l, ptc.g, ptc.ga, ptr). Размеры страниц, которые доступны только для сброса, могут использоваться только как параметры инструкций сбросаTLB.
Процессоры могут также поддерживать дополнительные размеры страниц, доступные для вставки и сброса. Для уточнения информации о том, какие размеры страниц поддерживает конкретный Itaniumпроцессор, следует посмотреть документацию, специфицирующую процессор.
Табл. 4.4. Размеры страниц заданные архитектурно
|
Размеры страниц | ||||||||||
4K |
8K |
16K |
64K |
256K |
1M |
4M |
16M |
64M |
256M |
4G | |
Доступен для вставки |
да |
да |
да |
да |
да |
да |
да |
да |
да |
да |
--- |
Доступен для сброса |
да |
да |
да |
да |
да |
да |
да |
да |
да |
да |
да |
Размеры страниц кодируются в элементах трансляции и регистрах регионов как 6-битное поле кода размера страницы. Каждое поле задает отображаемый размер в виде 2Nбайтов, таким образом, значение 12 соответствует 4К-байтной странице. Если не реализованные размеры страниц заданы для инструкцийitc, itrилиmovв регистр региона, то вызывается ошибка «Зарезервированный регистр/поле». Если не реализованные размеры страниц заданы для инструкций сбросаTLB, то реализация может вызвать аварийный выход «Машинная проверка», может быть, что трансляции подвергшиеся сбросу проигнорируют запрос, либо может произойти расширение сброса (over-purge), которое удалит все элементы в кэше трансляций. Если не реализованные размеры страниц заданы путем посылки инструкцийptc.g, ptc.gaот других процессоров, то реализация может сузить сброс (under-purge) трансляций, вплоть до игнорирования запроса, либо может расширить сброс трансляций, вплоть до удаления всех элементов из кэша трансляции. Однако это не должно вызвать аварийный выход «Машинная проверка».
Виртуальные и физические страницы выровнены по естественным границам страниц. Например, 4К-байтные страницы выравниваются по 4К-байтным границам, а 4М-байтные страницы – по 4М-байтным границам.