
- •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.3. Не реализованные адресные биты
Основываясь на модели процессора, некоторые биты физического и/или виртуального адреса не могут быть реализованы. Не зависимо от количества реализованных адресных битов, во всех процессорах, все регистры общего назначения, регистры переходов, управления, а также прикладные регистры, реализуют все 64 бита регистра. Аналогично, не зависимо от количества реализованных адресных битов, во всех процессорах, регистры контрольных точек инструкций и данных должны реализовывать все 64 адресных бита и все 54 бита маски.
4.3.1. Не реализованные физические адресные биты
Как показано на рис. 4.18, 64-битный физический адрес состоит из трех полей: атрибута физической памяти (PMA–PhysicalMemoryAttribute), не реализованных и реализованных битов.
63 |
62 |
IMPL_PA_MSB |
0 |
PMA |
не реализовано |
реализовано | |
1 |
62 - IMPL_PA_MSB |
IMPL_PA_MSB + 1 |
Рис. 4.18. Битовые поля физического адреса
Все модели реализации процессоров имеют, как минимум, 32 бита физического адреса (от 0 до 31), плюс бит атрибута физической памяти. Дополнительные реализованные физические биты должны быть непрерывны, и начинаться с бита 32. IMPL_PA_MSB– это позиция наиболее значимого реализованного бита физического адреса, которая определяется реализацией. В процессоре, который реализует все биты физического адресаIMPL_PA_MSBравно 62. Для дальнейшей информации о количестве битов физического адреса реализованных вItaniumпроцессоре, посмотрите документацию, специфицирующую процессор.
Если не реализованные физические биты устанавливаются программным обеспечением, то в процессе инструкций вставки TLB(itc, itr) вызывается ошибка «Не реализованный адрес данных». Вставки, выполненные обходчикомVHPT, как отмечено в разделе 4.1.6. «ХэшированиеVHPT», аварийно завершают поискVHPT, если используются не реализованные или зарезервированные поля. Для трансляций отмеченных как не представленные (TLB.p=0), процессор не проверяет допустимостьPPNи некоторых зарезервированных битов, как это отмечено на рис. 4.6.
Когда модель процессора реализует не все биты физического адреса, пропущенные биты считаются нулевыми. Физические адреса, в которых биты PA{62:min(IMPL_PA_MSB+1,62)} не являются нулевыми, рассматриваются как «нереализованные» физические адреса в данной модели процессора. Физические адреса проверяются на корректность использования путем контроля того, что битыPA{62:min(IMPL_PA_MSB+1,62)} являются нулевыми.
4.3.2. Не реализованные виртуальные адресные биты
Как показано на рис. 4.19, 64-битный виртуальный адрес состоит из трех полей: номера виртуального региона (VRN–VirtualRegionNumber), не реализованных и реализованных битов.
63 |
61 |
60 |
IMPL_VA_MSB |
0 |
VRN |
не реализовано |
реализовано | ||
3 |
60 - IMPL_VA_MSB |
IMPL_VA_MSB + 1 |
Рис. 4.19. Битовые поля виртуального адреса
Все модели процессоров обеспечивают три VRN-бита вVA{63:61}.IMPL_VA_MSB– это позиция наиболее значимого реализованного бита виртуального адреса, которая определяется реализацией. В дополнение к тремVRNбитам, все модели процессоров реализуют, как минимум, 51 бит виртуального адреса, т.е. наименьшее значениеIMPL_VA_MSBравно 50. В процессоре, который реализует все 64 бита виртуального адреса,IMPL_VA_MSBравно 60. Для дальнейшей информации о количестве битов виртуального адреса реализованных вItaniumпроцессоре, посмотрите документацию, специфицирующую процессор.
Если модель процессора реализует не все биты виртуального адреса, то пропущенные биты заполняются с помощью знакового расширения бита VA{IMPL_VA_MSB}. Виртуальные адреса, в которых битыVA{60:min(IMPL_VA_MSB+1,60)} не соответствуют битуVA{IMPL_VA_MSB}, рассматриваются как «не реализованные адреса» в данной модели процессора. Виртуальные адреса проверяются на корректность использования путем контроля того, что битыVA{60:min(IMPL_VA_MSB+1,60)} являются идентичными битуVA{IMPL_VA_MSB}.