Базовый адрес страницы Резерв 0 0 D A PCD PWT U/ R/ P
( раздела ) ОС (AVL)
Рис. Формат дескриптора таблицы страниц
Назначение отдельных полей дескриптора следующее:
- поле базового адреса (биты 12 - 31) содержит старшие 20 разрядов базового адреса страницы раздела или страницы с адресуемым операндом;
- поле AVL (Available fild for user or OS) является резервным полем операционной системы. Процессор никогда не использует и не изменяет биты AVL. Разработчики ОС могут использовать эти биты по своему усмотрению, например для хранения информации о том, как часто используется страница;
- бит присутствия P (Present), бит обращения A (Accessed) и бит модификации D (Dirty) используются операционной системой для организации страничной виртуальной памяти.
Бит P указывает на наличие искомой страницы в оперативной памяти. При обращении к странице со сброшенным битом P (P = 0) возникает особый случай страничного нарушения, реагируя на который, ОС загружает отсутствующую страницу в оперативную память, устанавливает бит P в дескрипторе, определяющем эту страницу, и повторяет команду обращения.
бит PWT (Page Write Through) кодирует метод обновления содержимого текущей страницы кэш-памяти. При PWT = 1 обновление содержимого текущей страницы осуществляется методом сквозной записи, при PWT = 0 - методом обратной записи.
При включенном блоке трансляции страниц процессор преобразует логический адрес в физический в два этапа. Сначала он с помощью блока управления сегментами выполняет преобразование логического адреса операнда в сегменте в 32‑разрядный линейный адрес, затем с помощью блока управления страницами линейный адрес преобразуется в физический. Схема преобразования логического адреса операнда в физический представлена на рис.
В модели сегментированной памяти без разбиения на страницы (выключенном блоке трансляции страниц) второй этап не используется, и сформированный на выходе блока сегментации линейный адрес является физическим адресом искомого операнда.
Выбор элементов каталога, раздела или страницы осуществляется с помощью индекса, указываемого в соответствующем битовом поле линейного адреса.
Линейный адрес при страничной организации памяти рассматривается как совокупность трех полей: Table, Page и Byte. Разрядность полей Table и Page составляет 10 бит, а поля Byte - 12 бит. Поле Table указывает относительный адрес (индекс) дескриптора с базовым адресом раздела в каталоге разделов. Поле Page задает относительный адрес дескриптора с базовым адресом страницы в выбранном разделе. 12-разрядное поле Byte содержит относительный адрес искомого операнда в странице.
Основой страничного преобразования выступает регистр управления CR3, в который при инициализации заносится 20-битный адрес каталога разделов текущего сегмента. Младшие 12 разрядов базового адреса каталога считаются нулевыми, т.е. каталог выровнен по границе страницы. Предполагается, что страница с каталогом разделов постоянно находится в основной памяти процессора и не участвует в свопинге.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.