Каталог содержит 1024 32-битовых дескриптора (указателей разделов) и является системной таблицей страниц первого уровня. Адрес дескриптора каталога образуется путем присоединения (конкатенации) к старшим 20 разрядам базового адреса из регистра CR3 10-разрядного поля Table линейного адреса, дополненного двумя нулевыми младшими разрядами.
Выбранный дескриптор каталога содержит старшие 20 разрядов базового адреса раздела (таблицы страниц второго уровня). Разделы, как и каталоги, считаются выровненными по границам страниц. Далее, используя базовый адрес раздела, с помощью 10-разрядного поля линейного адреса Page выбирается дескриптор, содержащий базовый адрес страницы с физическим операндом.
Каждый раздел занимает одну страницу и содержит 1024 дескриптора. Так как в каталоге размещаются 1024 раздела, общее число адресуемых страниц с физическими операндами может составлять 1М. С их помощью покрывается полное пространство памяти процессора в 4 Гбайта.
32-разрядный адрес искомого операнда образуется путем конкатенации старших 20 разрядов базового адреса страницы из выбранного дескриптора раздела (таблицы страниц) и 12-разрядного поля Byte линейного адреса.
При установленном бите PG регистра CR0 страничное управление разрешено, и блок управления страницами получает 32-битный линейный адрес от блока сегментации.
Для вычисления физического адреса искомого операнда производится чтение строки из страничного каталога, из нее выбирается строка с базовым адресом страницы раздела и затем определяется базовый адрес страницы с физическим операндом. Если на этом пути встречается строка со сброшенным битом Р (присутствия) вырабатывается исключение 14, обработчик которого должен принять меры по загрузке затребованной страницы. Для идентификации причины отказа в стек помещается 16-битный код ошибки (Рис.).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.