- •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.4.2. Атрибуты памяти физической адресации
Выбор атрибутов памяти для физической адресации осуществляется с помощью бита 63 адреса, содержащегося в регистре базового адреса, как это показано на рис. 4.20 и табл. 4.11.
|
Рис. 4.20. Физическая адресация памяти
Табл. 4.11. Коды атрибутов памяти физической адресации
Бит{63} |
Мнемоника |
Кэшируемость |
Политика записи |
Спекулятивность |
КогерентностьA по отношению |
0 |
WLB |
Да |
WB |
Не последовательная и ограниченная спекулятивность |
WLB,WB |
1 |
UC |
Нет |
Объединение |
Последовательная и не спекулятивна |
UC, UCE |
Здесь, когерентность относится к мультипроцессорной когерентности в нормальной, свободной от побочных эффектов памяти.
Для описания физической адресации ограничивающей спекулятивность см. раздел 4.4.6 «Спекулятивные атрибуты». Бит {63} отвергается при формировании физического адреса, в сущности, создавая пространство с обратной записью (WBL) и не кэшируемое пространство (UC), как это показано на рис. 4.21.
Программа должна использовать корректное имя пространства при использовании физической адресации, в противном случае, могут быть спекулятивные обращения к устройствам ввода/вывода с побочными эффектами. При физической адресации, обращения упорядочиваются, только если используются упорядоченные загрузки или упорядоченные сохранения. В других случаях обращения к физической памяти не упорядочиваются.
|
Рис. 4.21. Атрибуты адресуемой памяти.
4.4.3. Атрибуты кэшируемости и когерентности
Страница может быть либо кэшируемая (cacheable), либо не кэшируемая (uncacheable). Если страница помечена как кэшируемая, то процессор разрешает разместить локальную копию соответствующей физической памяти во всех уровнях иерархии процессорной памяти и кэша. Размещение может быть изменено путем указания в инструкциях обращающихся к памяти, подсказок управления кэшем.
Страница, которую кэшировали, является когерентной с памятью, т.е. процессор и система памяти гарантируют, что для каждого процессора здесь есть непротиворечивый образ памяти. Процессоры, поддерживающие когерентность мультипроцессорного кэша, основываются на физических адресах между всеми процессорами в когерентном домене (сильно связанные (tightlycoupled) микропроцессоры). Когерентность поддерживается в присутствии виртуальных псевдонимов, хотя, чтобы избежать любой возможной деградации эффективности, программе рекомендуется использовать псевдонимы обособленно, на расстоянии кратном 1М.
Для кода типа Itanium, процессоры не требуются для обслуживания когерентности между кэшами данных и инструкций локального процессора; т.е. локально инициируемые сохранения типаItanium, не могут наблюдаться с помощью локального кэша инструкций. Но, процессоры требуются в случае кода типаIA-32, для обслуживания когерентности между кэшами данных и инструкций локального процессора. Также, не требуются кэши инструкций для когерентности мультипроцессорного набора инструкций типаItanium, порожденного обращениями к памяти. Но, кэши инструкций требуются для когерентности мультипроцессорного набора инструкций типаIA-32, порожденного обращениями к памяти. Процессор должен гарантировать, что транзакции от других агентов ввода/вывода (таких какDMA), являются физически когерентными с кэшем инструкций и данных.
Для не кэшируемых обращений, процессор обеспечивает не когерентные механизмы; система памяти должна убедиться, что содержимое образа памяти видимо каждому процессору. См. раздел 4.4.5 «Атрибут объединения» для описания когерентности для атрибута объединенной памяти.