1.3.3 Механізм трансляції сторінок


32-разрядные процесори підтримують механізм трансляції сторінок. Даний механізм здійснює перетворення лінійної адреси в фізичну шляхом таблиць сторінок. Вперше трансляція сторінок почала підтримуватися в процесорі 80386. Наступні ґенерації процесорів додашли в цей механізм нові можливості.

Керування сторінковим перетворенням здійснюється з допомогою трьох бітів в регістрах керування (таблиця 1.4).

PG - біт 31 регістру CR0. Дозволяє механізм сторінкового перетворення (80386+);

PSE - біт 4 регістру CR4. Дозволяє сторінки розміром 4Мб (або розміром 2 Мб, коли встановлений прапор PAE) (Pentium+);

PAE біт 5 регістру CR4. Дозволяє 36-разрядный фізична адреса. Розширена фізична адреса може бути використана тільки з дозволеним сторінковим перетворенням (Pentium Pro+).


Таблиця 1.4. Розміри сторінок і фізичної адреси.


CR0. PG

CR4. PAE

CR4. PSE

PDE. PS

Розмір сторінки Розмір фізичної адреси
0

x

x

x

- Сторінкове перетворення отключено
1

0

0

x

4Кб 32 б
1

0

1

0

4Кб 32 б
1

0

1

1

4Мб 32 б
1

1

x

0

4Кб 36 б
1

1

x

1

2Мб 36 б

Інформація, яку використає процесор для перетворення лінійної адреси в фізичний, знаходиться в наступних таблицях:

Каталог сторінок;

Таблиця сторінок;

Таблиця покажчиків на каталог сторінок.

Коли використовується 32-разрядный фізична адреса, таблиці забезпечують доступ до сторінок розміром 4 Кб або 4 Мб. При використанні розширеної 36-разрядного фізичної адреси таблиці забезпечують доступ до сторінок розміром 4 Кб або 2 Мб.

Перетворення лінійної адреси для 4 Кб сторінок.

Дане перетворення виконується в усіх 32-разрядных процесорах. На рисунку 1.18. Уявлений механізм трансляції лінійної адреси на сторінки розміром 4Кб. Покажчик на каталог сторінок знаходиться в регістрі CR3. Елементи каталогу сторінок вказують на таблиць сторінок, елементи таблиці сторінок - на сторінки фізичної пам'яті. Цей засіб може бути використаний для адресації до 220 сторінок, що покриває лінійний адресний простір розміром 4 Гб.



Для вибору різноманітних елементів таблиць лінійна адреса ділиться на 3 секції:

Елемент каталогу сторінок - біти з 22 по 31 містять індекс для входу в каталог сторінок. Вибраний елемент містить базова фізична адреса таблиці сторінок;

Елементи таблиці сторінок - біти з 12 по 21 містять індекс для входу в вибрану таблицю сторінок. Цей елемент містить базова фізична адреса сторінки в фізичній пам'яті;

Зміщення - біти з 0 по 11 містять зміщення фізичної адреси всередині сторінки.

Перетворення лінійної адреси для 4 Мб сторінок.

На рисунку 1.19 показане, як каталог сторінок може бути використаний для відображення лінійної адреси на 4 Мб сторінки. Елементи каталогу сторінок вказують на сторінки фізичної пам'яті. Цей засіб сторінкового перетворення може бути використаний для відображення до 1024 сторінок на лінійний адресний простір розміром 4 Гб. Даний засіб доступний в процесорах Pentium+.




Сторінки розміром 4 Мб вибираються, коли встановлений прапор PSE в регістрі керування CR4 і коли встановлений прапор PS в елементі каталогу сторінок. Коли ці прапори встановлені, лінійна адреса ділиться на дві секції:

Елемент каталогу сторінок - біти з 22 по 31 містять індекс для входу в каталог сторінок. Вибраний елемент містить базова фізична адреса 4Мб сторінки;

Зміщення - біти з 0 по 21 містять зміщення фізичної адреси всередині сторінки.

Елементи таблиць сторінкового перетворення.

На рисунках 1.20 і 1.21 показаний формат елемента каталогу сторінок і таблиці сторінок відповідно, коли використовуються 4Кб сторінки і 32-разрядный фізична адреса. На малюнку 1.22 показаний формат елемента каталогу сторінок, коли використовуються 4МБ сторінки і 32-разрядный фізична адреса.






Функції полів в елементах наступні:

Базова адреса сторінки, біти з 12 по 31. Для елемента таблиці 4Кб сторінок: містить фізична адреса першого байта 4Кб сторінки. Б даного поля інтерпретуються як 20 старших біта фізичної адреси. Для елемента каталогу 4Кб сторінок: містить фізична адреса першого елемента таблиці сторінок. Біти даного поля інтерпретуються як 20 старших бітів фізичної адреси. Для елемента каталогу 4Мб сторінок: містить фізична адреса першого байта 4Мб сторінки. Використовуються тільки б з 22 по 31 цього поля. Ці б інтерпретуються як 11 старших розрядів фізичної адреси сторінки;

Біт присутності Р. Показує, знаходиться чи сторінка або таблиця сторінок в фізичній пам'яті. Коли Р=1, сторінка знаходиться в пам'яті і у разі звертання до ній відбувається перетворення лінійної адреси в фізичний. Коли Р=0, сторінки в пам'яті немає, інша частина елемента доступна для операційної системи. Якщо процесор спробує звернутися до сторінки, у якої Р=0, те відбудеться виключення 14;

Біт R/W. Біт читання/запис. І біт U/S. Біт користувач/супервизор. Ці біти застосовуються для захисту по привілей на рівні сторінок;

Біт А. Біт звертання. Показує, було чи звертання до сторінки або таблиці сторінок. Процесор встановлює цей біт у разі звертання до сторінки. Скид біта здійснюється тільки програмним шляхом;

Біт D. Біт “брудний”. Показує, було чи звертання до сторінки для запису. Процесор встановлює цей біт при записі в сторінку. Скид біта здійснюється тільки програмним шляхом. Даний біт спільно з бітом А використовується операційною системою для керування пам'яттю;

Біт PS. Розмір сторінки. Визначає Розмір сторінки. Даний б використовується тільки в елементах каталогу сторінок. Коли цей біт не встановлений, розмір сторінки 4Кб і елемент каталогу сторінок вказує на таблицю сторінок. Коли цей біт встановлений, розмір сторінки рівний 4Мб при використанні 32-разрядного адреси (і 2Мб при використанні розширеної адреси) і елемент каталогу сторінок вказує на сторінку;

Біт G. Глобальна сторінка. Коли даний біт встановлений, це означає, що сторінка є глобальною. Коли сторінка позначена як глобальна і глобальні сторінки розв'язані (біт PGE в регістрі CR4), при перезагрузке регістру CR3 елемент таблиці сторінок або елемент каталогу сторінок не оголошується невірогідним в TLB. Цей біт служить для того, щоб відвернути вилучення часто сторінок ,що використаються з TLB. Даний біт підтримується тільки в процесорах Pentium Pro+.


Якщо біт PSE в регістрі CR4 встановлений, те обидва засобу перетворення можуть використовуватися з одного і того же каталогу сторінок.

Розширення фізичної адреси.

Біт PAE в регістрі CR4 дозволяє розширення фізичної адреси в процесорі Pentium Pro+ з 32 до 36 розрядів. Ця можливість може бути використана тільки при включеному сторінковому перетворенні. Коли розширення фізичної адреси розв'язане, процесор підтримує сторінки двох розмірів: 4Кб і 2Мб. Як і при 32-разрядном адресі, обидва розміру сторінок можуть використовуватися водночас, т. є. Елемент каталогу сторінок може посилатися на 2Мб сторінку або каталог сторінок, що містить покажчики на 4Кб сторінки.

Для підтримки 36-разрядного фізичної адреси в таблицях для сторінкового перетворення зроблені наступні зміни:

Елементи таблиць стали 64-разрядными для розміщення 36-разрядного адреси. Таким Чином, кожний каталог сторінок і кожна таблиця сторінок може містити 512 елементів;

В ієрархію сторінкового перетворення додана нова таблиця - таблиця покажчиків на каталог сторінок. Ця таблиця містить чотири 64-разрядных елемента і знаходиться вище каталогу сторінок в ієрархії;

Базова 20-разрядный адреса каталогу сторінок в регістрі CR3 замінена на 27-разрядный адресу таблиці покажчиків на каталог сторінок. Це 27 старших розрядів фізичної адреси першого елемента таблиці каталогу;

32-разрядный лінійна адреса відображається на 36-разрядное простір фізичних адрес.



Перетворення лінійної адреси з розширеною адресацією для 4Кб сторінок.

На рисунку 1.23 показаний механізм перетворення лінійної адреси з використанням 4Кб сторінок, коли розв'язане розширення фізичної адреси. Цей засіб перетворення може бути використаний для адресації 220 сторінок, що покриває лінійний адресний простір розміром 4Гб.

Для вибору різноманітних елементів таблиць лінійна адреса ділиться на 4 секції:

Елемент таблиці каталогу сторінок - біти 30 і 31 містять індекс для входу в таблицю каталогу. Вибраний елемент містить базова фізична адреса каталогу сторінок;

Елемент каталогу сторінок - біти з 21 по 29 містять індекс для входу в каталог сторінок. Вибраний елемент містить базова фізична адреса таблиці сторінок;

Елементи таблиці сторінок - біти з 12 по 20 містять індекс для входу в вибрану таблицю сторінок. Цей елемент містить базова фізична адреса сторінки в фізичній пам'яті;

Зміщення - біти з 0 по 11 містять зміщення фізичної адреси всередині сторінки.



Перетворення лінійної адреси з розширеною адресацією для 2Мб сторінок.

На рисунку 1.24 показане, як таблиця каталогу сторінок і каталог сторінок можуть бути використані для відображення лінійної адреси на 2Мб сторінки. Цей засіб сторінкового перетворення може бути використаний для відображення до 2048 сторінок на лінійний адресний простір розміром 4Гб.

Розмір сторінки 2Мб вибирається, коли встановлений біт PSE в регістрі CR4 і встановлений біт PS в елементі каталогу сторінок. Коли ці біти встановлені, лінійна адреса ділиться на три секції:

Елемент таблиці каталогу сторінок - біти 30 і 31 містять індекс для входу в таблицю каталогу. Вибраний елемент містить базова фізична адреса каталогу сторінок;

Елемент каталогу сторінок - біти з 21 по 29 містять індекс для входу в каталог сторінок. Вибраний елемент містить базова фізична адреса сторінки розміром 2Мб;

Зміщення - біти з 0 по 20 містять зміщення фізичної адреси всередині сторінки.


1.3.4 Віртуальні переривання


В процесорах Pentium+ в механізм обробки переривань були додані деякі нові можливості. Розглянемо зміни, що стосуються режиму V86. Коли процесор знаходиться в цьому режимі, засіб обробки переривань залежить від стану різноманітних прапорів і полів:

VME-прапор (біт 0 в регістрі CR4) - коли він в одиниці, дозволяються розширені можливості по обробці переривань і виключень в режимі V86, а також дозволяється апаратна підтримка прапора VIF;

IOPL-прапор (біт 12 і 13 в регістрі EFLAGS) - управляє тим, як будуть оброблятися переривання;

БКПП - бітова карта перенаправлення переривань (32 байта в TSS) - містить 256 прапорів, що показують, як програмні переривання (переривання, що генеруються командою INT n) будуть оброблятися в режимі V86. Програмні переривання можуть спрямовуватися на обробку в поточну програму 8086 або оброблятися в захищеному режимі. Апаратні переривання і виключення завжди спрямовуються в захищений режим.

В таблиці 1.5. Показане, як процесор обробляє переривання і виключення в режимі V86 в залежності від стану описаних вище прапорів і полів.


Таблиця 1.5. Обробка переривань і виключень в режимі V86.


Засіб

VME

IOPL

Б в БКПП Дії процесора
1 0

3

x

Програмні переривання (INT n), виключення і переривання ,що маскуються спрямовуються в захищений режим (через IDT)

2 0

Информация о работе «Керiвництво программиста»
Раздел: Информатика, программирование
Количество знаков с пробелами: 97603
Количество таблиц: 5
Количество изображений: 0

0 комментариев


Наверх