Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M9 / Системная архитектура часть 4..doc
Скачиваний:
45
Добавлен:
16.04.2013
Размер:
751 Кб
Скачать

4. Адресация и защита

Эта глава описывает ресурсы операционной системы для трансляции 64-битных виртуальных адресов в физические адреса, 32-битную виртуальную адресацию, виртуальное совмещение имен (aliasing), физическую адресацию, упорядочивание памяти и свойства физической памяти. Состав регистров необходимых для поддержки управления виртуальной памятью описан в главе 3, а глава 5 обеспечивает полную информацию об ошибках виртуальной памяти.

Примечание. Если не отмечено иное, то в этой главе, термин «прерывание» относится к прерыванию типа IVA (см. раздел 5.1 «Описание прерываний»).

Следующие ключевые свойства поддерживаются моделью виртуальной памяти.

  • Виртуальные регионы (Virtual Regions) определены для поддержки моделей современных операционных систем типа MAS (Multiple Address Space – множество адресных пространств), которые размещают каждый процесс в пределах уникального адресного пространства. Идентификаторы регионов, уникально отмечают отображения виртуального адреса для данного процесса.

  • Механизмы защиты доменов (Protection Domain) поддерживают модель единого адресного пространства (SAS – Single Address Space), где процессы выполняются одновременно в одном и том же адресном пространстве.

  • Структуры буфера трансляции адресов (TLB – Translation Lookaside Buffer) определены для поддержания высокопроизводительных систем страничного обмена виртуальной памяти. Программное обеспечение заполняет TLB, а обработчики защиты применяются для политик задержки трансляции и алгоритмов защиты для операционной системы.

  • Таблица виртуальных хэш страниц (VHPT – Virtual Hash Page Table), разработана для увеличения эффективности TLB. Таблица VHPT является расширением таблицы TLB, которая постоянно находится в памяти и может автоматически просматриваться процессором. Формат таблицы страниц операционной системы не диктуется жестко. Однако VHPT была разработана для того, чтобы собрать в единый узел две общие структуры трансляции: таблицу линейных виртуальных страниц и таблицу хэшированных страниц. Доступность VHPT и размер VHPT полностью находятся под программным управлением.

  • Разряженная (Sparse) 64-битная виртуальная адресация поддерживается для обеспечения больших массивов трансляции (включая множественность уровней иерархии, подобно иерархии кэшей), эффективной трансляции без поддержки обработки, множественности размеров страниц, закрепленных трансляций, а также для обеспечения механизмов совместного использования ресурсов таблиц страниц и TLB.

4.1. Виртуальная адресация

Очевидно, что для прикладных программ типа Itanium, виртуальная модель адресации основана на 64-битном плоском линейном виртуальном адресном пространстве. 64-битные общие регистры используются как указатели в этом адресном пространстве. 32-битные виртуальные линейные адреса IA-32 расширяются нулями в 64-битном виртуальном адресном пространстве.

Как показано на рис. 4.1, 64-битное виртуальное адресное пространство разделено на восемь виртуальных регионов по 261 байт каждый. Регион выбирается верхними тремя битами виртуального адреса. Каждый виртуальный регион связан с регистром региона, который задает 24-битный идентификатор региона (уникальный номер адресного пространства). Восемь из 224 виртуальных адресных пространств, являются параллельно доступными через 8 регистров регионов. Идентификатор региона может рассматриваться в качестве старших адресных битов 85-битного глобального адресного пространства для модели единого адресного пространства, либо как уникальный идентификатор для модели множественного адресного пространства.

Виртуальный адрес

63

0

3

8 виртуальных регионов

1

0

261 байтов на регион

от 4K to 256M страниц

224 виртуальных адресных пространств

Рис. 4.1. Виртуальные адресные пространства.

С помощью назначения последовательных идентификаторов регионов, регионы могут быть объединены в большие 62-х, 63-х или 64-х битные пространства. Например, операционная система может создать 62-битный регион для данных личного процесса, 62-битный регион для ввода/вывода, а также 63-битный регион для глобальных общих данных. Заданные по умолчанию размеры страниц и политики трансляции, могут назначаться для каждого виртуального региона.

На рис. 4.2 показан процесс отображения виртуального адреса в физический адрес. Каждый виртуальный адрес состоит из трех полей: номера виртуального региона, номера виртуальной страницы и смещения в странице. Из старших трех битов выбирается номер виртуального региона (VRN – Virtual Region Number). Младшие значащие биты формируют смещение в странице. Остальные биты содержат номер виртуальной страницы (VPN – Virtual Page Number). Биты VRN не включены в поле VPN. Биты смещения проходят через процесс трансляции без изменения. Точное количество битов занимаемых смещением и VPN изменяется в зависимости от размера страницы используемого в виртуальном отображении.

При обращении к памяти (любом обращении, кроме вставки или сброса), биты VRN выбирают один из восьми регистров региона, который содержит идентификатор региона (RID – Region Identifier), далее в TLB ищется элемент трансляции с соответствующими значениями VPN и RID. Значение VRN может дополнительно использоваться для поиска соответствующей трансляции при обращении к памяти (любом обращении, кроме вставки или сброса – см. разделе 4.1.1.4). Если соответствующий элемент трансляции найден, то физический номер страницы (PPN – Physical Page Number) элемента, соединенный с битами смещения в странице, формирует физический адрес. Соответствующие трансляции квалифицируются, постранично гранулированными проверками прав доступа уровня привилегий и необязательными проверками защиты домена, путем верификации ключа трансляции, содержащегося в наборе ключей защиты и предоставляющего разрешения чтения, записи и выполнения.

Если требуемая трансляция не является резидентной в TLB, то процессор может произвольно искать VHPT структуру в памяти для требуемой трансляции и устанавливать элемент в TLB. Если требуемый вход не обнаружен в TLB и/или VHPT, то процессор вызывает ошибку «Промах TLB» для запроса того, чтобы операционная система поддержала трансляцию. После того, как операционная система установила трансляцию в TLB и/или VHPT, инструкция, на которой была вызвана ошибка, может быть перезапущена и выполнение продолжено.

Виртуальная адресация допускается для обращений инструкций при PSR.it=1, для обращений данных при PSR.dt=1, а для доступа к стеку регистров при PSR.rt=1.

region

virtual address

registers

63 61

60

0

rr0

rr1

rr2

region ID

3

virtual region number (VRN)

virtual page number (VPN)

offset

rr7

h ash

24

search

search

search

region ID

key

VRN

virtual page num (VPN)

rights

physical page num (PPN)

Translation Lookaside Buffer (TLB)

2 4

search

pkr0

key

rights

protection

key registers

pkr1

pkr2

62

0

Physical page number (PPN)

offset

physical address

Рис. 4.2. Схема трансляции виртуальных адресов при обращениях.