В защищенном режиме все адресное пространство разбивается на 1Mb 4Kb-ых страниц. Физическая память также разбивается на 4Kb-ые страничные кадры. Любой страничный кадр можно загрузить в любую виртуальную страницу. Страничное преобразование необходимо для получения из линейного адреса – страничный, при этом линейный адрес разделяется на 2-е части: номер виртуальной страницы (20 бит) и адрес смещения.
Номер виртуальной страницы | Смещение |
|
Номер физической страницы | смещение |
В процессе страничного преобразования адреса активное участие принимает CR3, который содержит в 20-и старших разрядах базовый адрес каталога страниц (таблица страниц 1-го уровня). Каталог страниц содержит 1024 32-х разрядных дескриптора, называемых элементами каталога страниц PDE. Каталог страниц наз. таблицей страниц 1 уровня
Каждый из PDE адресует таблицу страниц 2 уровня, каждая из которых содержит 1024 32-х разрядных дескриптора, называемых элементами таблицы страниц PTE. Каждый из элементов PTE адресует страничный адрес физической памяти.
|
|
1024 дескриптора = 1 страница, 4кб
Табличное преобразование линейного адреса в физический производится следующим образом:
1) Линейны адрес разбивается на 3 части
2) Старшие 10 бит линейного адреса (с 21 по 31), добавленные 2-мя младшими «0» индексируют 1-ин из элементов PDE каталога страниц.
3) Следующие 10 бит линейного адреса (с 12 по 21), дополненные 2-мя младшими нулями индексируют один из элементов таблицу страниц 2-го уровня. (PTE)
4) Младшие 12 бит линейного адреса остаются неизменными, а старшие 20 бит заменяются найденным адресом страничного кадра.
Не смотря на сложность выполняемых процессов преобразование выполняется быстро, т.к. для элементов таблиц страниц предусмотрена спец. Кэш-память наз. ассоциативным буфером преобразования
Формат элемента таблиц страниц (каталога страниц)
АСК | USER | 0 | 0 | D | A | PCD | PWT | U/S | R/W | P |
АСК – адрес страничного кадра – определен 20 битами, в случае, если элемент PDE, то это адрес страничного кадра.
P – бит присутствия, при P = 0 страница отсутствует в оперативной памяти, попытка обращения к ней вызывает прерывание 14 - “страничный сбой”;
R/W – бит позволяющий установит режим доступа
RW=0 возможно считывание и запись страницы, RW=1 только считывание
U/S – определяет уровень привилегированности страницы: 1)пользовател. страница 2)супервизора(системная) страница,
при U/S = 0 блокируется запрос с уровнем привилегий 3; при запросе с уровнями привилегий 0,1,2 значение битов R/W, U/S игнорируется;
PWT – бит сквозной записи. Запрещает циклы недостоверности кэш-памяти и несквозную запись страниц;
|
|
PCD – запрещение кэширования страниц;
A – бит доступа, устанавливается процессором при любом обращении к странице; Использ. для подсчета кол-ва обращений к странице. Устанавливается аппаратно, сбрасывается программой
D – признак записи на страницу. Устанавливается аппаратно в 1 при модификации страницы, т.е. при обращении для записи. Использ. для выяснения необходимости перезаписи страничного кадра на диске. Сбрасывается системой программы
User- использ. системой для своих нужд
Таким образом, страничное преобразование адреса позволяет организовать работу с виртуальной памятью, выполнять автоматическую обработку ошибок программных, связ. С неверными указателями разделов, а также использ. механизм защиты по привилегиям