Организация виртуальной памяти Pentium4, страница 2


      Базовый  адрес страницы     Резерв         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  разрядов   базового адреса  каталога  считаются  нулевыми, т.е.  каталог   выровнен  по границе  страницы. Предполагается,  что  страница  с  каталогом  разделов  постоянно  находится   в  основной  памяти  процессора  и  не  участвует  в  свопинге.