Управление памятью в микропроцессорах семейства Х86, страница 12

Заметим, что в процессорах шестого поколения семейства Х86, т.е. начиная с процессора Pentium Pro, шина адреса используется 36 разрядная и, следовательно, адресное пространство у них составляет 64 Гбайт. Поэтому в процессорах шестого поколения, при организации страничной переадресации, имеется четыре каталога страниц, и старшие 4 бита линейного адреса используются для выбора одного из них.

       Формат элементов каталога и таблицы страниц.

Элементы каталога страниц – PDE и элементы таблиц страниц – PTE имеют одинаковый формат, представленный на рисунке III.21. Отличие между ними заключается только в способах интерпретации битов 6 и 7 элемента.

              31                                                                     12   11                          9   8    7   6   5   4     3    2    1     0

        Базовый адрес таблицы страниц

Биты системного программиста

G

P

S

0

A

P

C

D

PWT

U/

S

R/W

P

              31                                                                     12   11                          9   8    7   6   5   4     3    2    1     0

             Базовый адрес страницы

Биты системного программиста

G

0

D

A

P

C

D

PWT

U/

S

R/W

P

          Рис. III.21. Формат элементов каталога и таблиц страниц

Адрес страничного кадра. В элементе PDE адрес страничного кадра представляет старшие 20 разрядов адреса таблицы страниц (младшие 12 разрядов равны 0). В элементе PTE адрес страничного кадра представляет старшие 20 разрядов начального адреса страницы, содержащей данные или команды, которые впоследствии конкатенируются с 12 младшими разрядами линейного адреса.

Биты системного программиста. Процессор их не использует. Разработчики ОС могут привлекать эти биты для хранения информации о «старении» таблиц страниц, т.е. о том, как часто они используются.

P (Present)бит присутствия. Этот бит показывает, присутствует ли данная страница в физической памяти (P=1) или нет (P=0). Если P=0 остальная часть элемента таблицы страниц доступна для ОС, например для хранения информации о местонахождении отсутствующей страницы. Если бит P сброшен в нуль, в каком либо элементе (PDE или PTE), то при попытке использовать этот элемент возникает особый случай (исключение) страничного нарушения. При этом реализуется такая последовательность событий.

·  ОС копирует страницу с магнитного диска в физическую память.

·  ОС загружает адрес страничного кадра в элемент таблицы страниц и устанавливает бит P. Могут быть также установлены и другие биты, например, бит R/W.

·  Так как в буфере TLB  может оставаться копия старого элемента таблицы страниц, она очищает его.

·  Осуществляется рестарт команды, вызвавшей этот особый случай.

Эти действия могут дополняться операцией выбора одного из страничных кадров и пересылку его на магнитный диск (винчестер). Биты обращения A (Accessed) и «грязный» бит D (Dirty) – содержат информацию об использовании страницы. Бит A сообщает об обращении, для считывания или записи, к странице или таблице страниц, а бит D сообщает об обращении к таблице для записи.

Периодически проверяя и сбрасывая биты A во всех элементах таблиц страниц, операционная система может следить за наиболее часто используемыми страницами памяти.

Бит D операционная система привлекает при возвращении страницы на магнитный диск. Состояние D=0 показывает, что содержимое страничного кадра не изменялось и, при выборе его для передачи на диск, в процессе свопинга физическую передачу производить не нужно. Когда же бит D=1, при выборе страничного кадра на удаление из физической памяти его содержимое необходимо записывать на диск.

Биты:R/W (Read/Write - бит считывания/записи, и U/S (User/Supervisor - пользователь/супервизор), используются в механизме защиты на страничном уровне. При этом контроль достоверности обращения осуществляется одновременно с преобразованием адреса. Если запрос страницы осуществляется программой пользователя (уровень привилегий PL=3), то при значении бита U/S = 0, этот запрос выполнен не будет, а процессор уйдет на прерывание. Если U/S = 1, то при значении R/W = 0 разрешено только чтение каталога или страницы, а при R/W = 1 возможны и чтение и запись.

Биты управления кэшированием PCD (Page Cache Disable – запрещение кэширования страницы) и PWT (Page Write Through – бит сквозной записи) применяются для управления кэшированием отдельных страниц. Бит PWT определяет политику записи при кэшировании (при PWT = 0 реализуется метод обратной записи для сохранения целостности данных памяти, а при PWT = 1 –реализуется метод сквозной записи). Бит PCD запрещает кэширование памяти для обслуживаемых страниц или таблиц. Отметим, что эти биты впервые введены в процессорах i486 и затем используются во всех дальнейших моделях процессоров семейства Х86.

G – бит глобальности. Он программно устанавливается в состояние 1, чтобы отметить каталоги страниц или страницы, часто используемые при решении данной задачи. Базовые адреса этих каталогов или страниц, загруженные во внутреннюю буферную кэш-память TLB (Translation Look-aside Buffer – буфер ассоциативной трансляции), блока страничной переадресации, сохраняются при ее очистке.