Лекции по Вычислительным машинам, системам и сетям   

3. Тридцатидвухразрядные процессоры фирмы Intel

3.9. Особенности страничного механизма в Pentium и Р6

В Pentium реализовано два варианта страничного механизма.

1. При PSE = 0 все страницы в системе 4-Кбайтов и механизм работы с ними ничем не отличается от рассмотренного выше.

2. При PSE = 1 одновременно могут использоваться 4-Кбайтовые и 4-Мбайтовые страницы. Обращение к 4 Мбайтовым страницам пояснено на рис. 3.14.

Рис. 3.14

Как видно из рис. 3.14, содержимое регистра cr3 задает (как и ранее) начальный адрес каталога, поле DIR адресует элемент PDE в каталоге. Если в этом элементе PDE бит PS = 1, то из PDE берется начальный адрес страницы, а поле OFFSET задает смещение в странице.

В Р6 реализовано три варианта страничного механизма:

1. PAE = PSE = 0 – только 4-Кбайтовые страницы.

2. PAE = 0, PSE = 1 – и 4-Кбайтовые, и 4-Мбайтовые одновременно.

3. PAE = 1, PSE = безразлично – и 4-Кбайтовые, и 2-Мбайтовые одновременно.

Первые два варианта ничем не отличаются от рассмотренных выше. Рассмотрим третий вариант.

Бит PAE – расширение физического адреса. Если этот бит установлен в единицу, то к процессору добавляются четыре адресные линии А35-32 и он начинает адресовать 64 Гбайта оперативной памяти. Сегментный механизм продолжает вырабатывать 32-разрядный адрес, т.е. реально процессор адресует все те же 4 Гбайта ОП. Однако страничный механизм дает возможность транслировать эти 4 Гбайта в любое место 64-Гбайтового пространства.

Поскольку формат физического адреса увеличивается до 36 бит, то четырех байт, отводимых под элементы PTE и PDE, оказывается недостаточно, и эти элементы стано-вятся восьмибайтными (рис. 3.15). Размер каталога и таблиц страниц при этом не меняется (остается равным 4 Кбайта), следовательно количество элементов (соответ-ственно, PDE и PTE) в каждой из этих структур уменьшается в два раза.

63  36

35  12

11  9

8

7

6

5

4

3

2

1

0

Рез-т

Нач. адр.

avl

g

ps

d

a

pcd

pwt

u/s

r/w

p

 

Рис. 3.15

Иначе говоря, получается, что процессор может адресовать только 218 страниц. Для того чтобы он мог адресовать, как и положено, 220 страниц, в систему вводится не один, а четыре каталога. Для их адресации вводится еще одна структура, называемая таблицей указателей на каталог, включающая в себя четыре восьмибайтов указателя DPE (directory pointer entry). Формат DPE представлен на рис. 3.16.

63  36

35            12

11   9

8  5

4

3

2    1

0

Рез-т

Нач. адр. катал.

AVL

Рез-т

PCD

PWT

Рез-т

1

Рис. 3.16

Регистр cr3 задает начальный адрес таблицы указателей, при этом этот адрес занимает разряды 31‑5 данного регистра. Можно сделать вывод, что таблица указателей на каталог всегда занимает в памяти 32 байта (четыре элемента по восемь байт каждый) и всегда должна быть выровнена по 32-байтовой границе (пять младших разря-дов начального адреса таблицы указателей равны нулю).

Рис. 3.17 и 3.18 поясняют работу страничного механизма при РАЕ = 1, соответственно, для 4-Кбайтовых и 2-Мбайтовых страниц. Как видно из рис. 3.17, 3.18, разряды 31‑30 линейного адреса теперь задают один из четырех элементов DPE в таблице указателей на каталог.

Рис. 3.17

Работа с 4-Кбайтовыми и 2-Мбайтовыми страницами требует, как видно из рис. 3.17 и 3.18, трехуровневой структуры таблиц и расширения форматов PTE и PDE до 8 байтов. Эти отличия от исходного алгоритма работы страничного механизма на практике приводят к трудностям в реализации операционных систем.

 

Рис. 3.18

Для того чтобы исключить этот недостаток и в то же время сохранить возможность адресации 64 Гбайт памяти, начиная со старших моделей Р6 введен еще один вариант страничного механизма, который фирма назвала PSE-36. Этот вариант позволяет использовать 36-разрядную адресную шину и адресовать 64 Гбайт памяти. В то же время в этом варианте используется двухуровневая структура таблиц, а элементы этих таблиц имеют формат 4 байта.

Для того чтобы установить, поддерживает ли данный процессор механизм PSE-36, надо выполнить команду cpuid приeax = 1. Если после выполнения этой команды в бите 17 регистра edx вернулась единица, значит рассматриваемый механизм поддерживается. Подробней см. разд. 3.29.

Необходимо отметить, что механизм PSE-36 отменяет вариант, когда 4-Кбайтовые и 4-Мбайтовые страницы адресуют 4 Гбайта памяти (вариант 2 для Р6, см. выше в этом же разделе), вернее этот вариант просто вырождается в частный случай PSE-36. В механизме PSE-36 используются 4-Кбайтовые и 4-Мбайтовые страницы, при этом 4-Кбайтовые страницы позволяют обратиться только к 4-Гбайтовому адресному пространству, а страницы 4-Мбайтовые – к 64-Гбайтовому адресному пространству. В табл. 3.9 приведены варианты страничной трансляции для процессоров, поддерживающих PSE-36.

Таблица 3.9

бит

PG (cr0)

бит

PAE (cr4)

бит

PSE (cr4)

бит

PS (PDE)

размер страницы

Шина адреса

0

*

*

*

нет

32 бита (страничный механизм выключен)

1

0

0

*

4 Кб

32 бита

1

0

1

0

4 Кб

32 бита

1

0

1

1

4 Мб

36 бит

1

1

*

0

4 Кб

36 бит

1

1

*

1

2 Мб

36 бит

Вариант PSE-36 выделен в табл. 3.9 жирной строкой. Рассмотрим этот вариант. Для адресации 64 Гбайт памяти адрес должен быть 36-разрядным. Двадцать два младших разряда начального адреса любой 4-Мбайтовой страницы всегда равны нулю. Следовательно, в поле начального адреса страницы в элементе PDE (при PS = 1) должны быть записаны 14 старших разрядов этого адреса. В то же время это поле начального адреса имеет формат 20 бит (биты 31 ‑ 12), так как столько разрядов необходимо для задания адреса 4-Кбайтовой страницы. Для 4-Мбайтовых страниц биты 21 ‑ 12 поля начального адреса являются резервными. Этот факт и использован в PSE-36, поскольку появляется возможность (за счет резервных битов) не увеличивать формат элемента PDE, что определяет двухуровневую структуру таблиц. Старшие разряды адреса (А35-32) располагаются в резервных битах 16 ‑ 13 поля начального адресаа. Для 4-Мбайтовых страниц есть два формата поля начального адреса в PDE:

PSE-36 не поддеррживается, разряды 31 ‑ 22 – начальный адрес (А31-22), разряды 21 ‑ 12 – резерв.

PSE-36 поддерживается, разряды 31 ‑‑22 – адрес (А31 ‑ 22), разряды 21 ‑ 17 – резерв, разряды 16 ‑ 13 – адрес (А35 ‑ 32) и бит 12 используется для специальных целей, связанных со стратегией кэширования (можно считать его резервным).

За исключением использования бит 16 ‑ 13 PDE работа механизма PSE-36 совпадает с работой механизма, показанного на рис. 3.14. Эти механизмы полностью идентичны, если при использовании PSE-36 в биты 16 ‑‑13 PDE записать нули. Страницы 4 Кбайт невозможно использовать аналогичным образом, поскольку у них нет в поле начального адреса резервных битов и, следовательно негде располагать разряды А35-32.



*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.