Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800330

.pdf
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
1.64 Mб
Скачать

Рис. 23. Трансляция адреса в режиме 32-битных виртуальных и физических адресов с использованием 4-мегобайтных страниц

91

Как видно на рис. 23, для поддержки больших страниц просто не используется таблица страниц (PT), а базовый адрес страницы берется непосредственно из PDE таблицы каталога страниц. Смещение при этом 22-битное.

Чтобы отличать PDE, адресующие 4-мегабайтные страницы, от PDE, адресующих таблицы страниц,

используется

флаг

PS. Если

 

 

 

,

то PDE

адресует

непосредственно большую

страницу,

а

если

 

 

– то

 

 

 

= 1

 

 

 

 

= 0

 

 

 

таблицу страниц.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кроме

того, если

 

 

 

,

меняется

трактовка

некоторых битов в PDE, как

показано на рис. 24.

 

 

 

 

 

 

 

 

= 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

8

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес стр.

 

 

Адрес стр.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

AVL

G

 

D

A

 

 

 

 

P

 

 

(Биты 31...22)

 

(Биты 39...32)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Старшие 18 бит 40-битного базового

 

PS=1 в режиме

 

 

4 МБ страниц

адреса страницы (выравнивание на 4 МБ)

 

 

 

Рис. 24. Формат PDE в 32-битном режиме для 4-мегобайтных страниц

Дополнительные флаги G, D и PAT трактуются аналогично флагам PTE. Кроме того, в режиме больших страниц физическая адресация расширена до 40 бит, что позволяет использовать ОЗУ объемом более 4 ГБ.

92

4.2.3. 32-битный режим с расширенной физической адресацией (режим PAE – Physical Address Extension)

При включенной поддержке 4-мегабайтных страниц процессор может адресовать более 4 ГБ ОЗУ (40-битная адресация обеспечивает 1 ТБ адресного пространства), но диапазон адресов старше 4 ГБ может использоваться только для размещения данных 4-мегабайтных страниц. Такие страницы используются только для отображения некоторой части ВАП ядра, объем размещенных там данных ограничен и мало зависит от числа запущенных процессов. При этом большая часть ВАП процессов, в том числе вся пользовательская часть ВАП, отображается с использованием 4-килобайтных страниц, и объем размещенных там данных растет с ростом числа запущенных процессов. Следовательно, нужно обеспечить расширение адресного пространства ОЗУ для страниц любого размера.

Упрощенная структурная схема подсистемы трансляции адресов в режиме расширения физического адресного пространства до 2 Байт показана на рис. 25.

В режиме PAE виртуальный адрес делится на 4 части. Младшие 12 бит по-прежнему задают смещение внутри 4- килобайтной страницы. Номер страницы и номер каталога страниц теперь 9-битные, т.е. таблица страниц (PT) и таблица каталога страниц (PDT) теперь содержат по 512 записей вместо 1024, но сами записи теперь 64-битные вместо 32-битных. Следовательно, размеры таблиц не изменились – одна таблица занимает 4 КБ (ровно один страничный кадр).

93

 

32-х битный виртуальный адрес

2 бита

номер каталога (9 бит)

номер страницы (9 бит)

смещение в странице (12 бит)

CR3

PDPT – Page Directory Pointer Table

 

адрес

 

 

 

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

PDT – Page Directory Table

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

адрес

 

 

 

 

PT – Page Table

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

tag

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

физический

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

адрес (52 бита)

 

 

 

 

адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TLB – Translation

Lookaside Buffer

Физический адрес, флаги режимов кэширования и контроля доступа

Рис. 25. Трансляция адреса в режиме 32-битного ВАП с использованием PAE и 4-килобайтных страниц

94

Дополнительно вводится таблица указателей на каталог страниц (PDPT), содержащая 4 элемента. Формат записи таблицы указателей на каталог страниц (PDPE) показан на рис. 26.

Рис. 26. Формат PDPE в 32-битном режиме PAE

Поле AVL и флаги PCD, PWT и P в записи PDPE имеют то же назначение, что и ранее.

Формат записи таблицы каталога страниц (PDE) в режиме PAE для 4-килобайтных страниц показан на рис. 27.

 

32

 

 

 

20

3

 

 

 

Адрес PT

AVL

A

P

0

(Биты 31...12)

0

Адрес PT

32

(Биты 51...32)

1220

Рис. 27. Формат PDE в 32-битном режиме PAE

95

Поле AVL и флаги PS, A, PCD, PWT, U/S, R/W и P в

записи PDE имеют то же назначение, что и ранее. В режиме 4-килобайтных страниц = 0.

Формат записи таблицы страниц (PTE) в режиме PAE показан на рис. 28.

Рис. 28. Формат PTE в 32-битном режиме PAE

Поле AVL и флаги G, PAT, D, A, PCD, PWT, U/S, R/W и P в записи PTE имеют то же назначение, что и ранее.

В режиме PAE также возможна поддержка больших страниц размером 2 МБ, при этом не используется таблица страниц (PT), а базовый адрес страницы берется непосредственно из PDE таблицы каталога страниц. Смещение при этом 21-битное.

Чтобы отличать PDE, адресующие 2-мегабайтные страницы, от PDE, адресующих таблицы страниц, как и

ранее, используется флаг PS. Если

, то PDE адресует

непосредственно большую

страницу,

=а 1если

= 0

– то

таблицу страниц.

 

 

 

Кроме того, если

,

меняется

трактовка

некоторых битов в PDE, как

показано на рис. 29.

 

 

= 1

 

 

 

96

Рис. 29. Формат PDE в 32-битном режиме с поддержкой

PAE для 2-мегобайтных страниц

Поле AVL и флаги PAT, G, PS, D, A, PCD, PWT, U/S, R/W и P в записи PDE имеют то же назначение, что и ранее. В режиме 2-мегабайтных страниц = 1. Новый флаг NX (No Execute) запрещает исполнение кода из данной страницы.

4.2.4. 64-битный режим

Упрощенная структурная

схема

подсистемы

трансляции адресов в 64-битном

режиме

показана на

рис. 30.

 

 

97

Рис. 30. Трансляция адреса в режиме 64-битном режиме с использованием 4-килобайтных страниц

98

Отметим, что хотя архитектура x86-64 считается 64битной, в виртуальном адресе используется только 48 бит, таким образом, размерность ВАП составляет 2 , что позволяет адресовать до 256 ТБ. Физические адреса 52битные, что позволяет адресовать до 4 ПБ (петабайт) оперативной памяти.

Виртуальный адрес разделяется на 5 частей. Младшие 12 бит определяют смещение в 4-килобайтной странице. Оставшиеся 36 используемых бит виртуального адреса разделяются на 4 поля по 9 бит. Каждое поле трактуется как индекс в таблице трансляции соответствующего уровня.

В регистр CR3 заносится адрес таблицы трансляции верхнего уровня (PML4T). Формат записи таблицы PML4T показан на рис. 31. Аналогичный формат имеет и запись в таблице указателей на каталоги страниц (таблице PDPT).

Рис. 31. Формат PML4E и PDPE в 64-битном режиме

Поле AVL и флаги NX, A, PCD, PWT, U/S, R/W и P в

записи PML4E имеют то же назначение, что и ранее. Новое 11-битное поле AVL2 не используется процессором и может произвольно использоваться операционной системой, как и поле AVL.

99

Формат записи таблицы каталогов страниц в 64битном режиме показан на рис. 32.

Рис. 32. Формат PDE в 64-битном режиме

Назначение всех полей и флагов уже было описано. В режиме 4-килобайтных страниц = 0.

Формат записи таблицы страниц в 64-битном режиме показан на рис. 33.

Рис. 33. Формат PTE в 64-битном режиме

Назначение всех полей и флагов уже было описано. В 64-битном режиме возможна поддержка больших

страниц размером 2 МБ, при этом не используется таблица страниц (PT), а базовый адрес страницы берется

100