Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПиП МПС(Ассемблер Левицкий экт 4) / MProc / M9 / Системная архитектура часть 4..doc
Скачиваний:
57
Добавлен:
16.04.2013
Размер:
751.1 Кб
Скачать

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

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

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

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

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

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

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

  • Таблица виртуальных хэш страниц (VHPT–VirtualHashPageTable), разработана для увеличения эффективности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 байтов на регион

от 4Kto256Mстраниц

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

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

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

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

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

Если требуемая трансляция не является резидентной в 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

hash

24

search

search

search

region ID

key

VRN

virtual page num (VPN)

rights

physical page num (PPN)

Translation Lookaside Buffer (TLB)

24

search

pkr0

key

rights

protection

key registers

pkr1

pkr2

62

0

Physical page number (PPN)

offset

physical address

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