Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Элементы каталогов и таблиц страницСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Напомню, что при страничной организации линейный адрес (база из дескриптора + offset) не соответствует физическому (т.е. адресу, который проц выставляет на адресную шину). Прежде, чем попасть на адресную шину он проходит ряд преобразований. Итак, линейный адрес делится на три части в случае 4Кб страниц, и на две в случае 4Мб страниц. Рассмотрим случай с 4Кб страницами. Биты 22-31 линейного адреса – это НОМЕР элемента (записи) в КАТАЛОГЕ СТРАНИЦ. Адрес начала каталога страниц в памяти содержит регистр CR3 (см. предыдущий выпуск). Каждый элемент в каталоге страниц «весит» 32 бита. Рассмотрим его под микроскопом: Поле «Адрес базы таблицы страниц» содержит адрес базы таблицы страниц…:). Т.е. не адрес элемента из таблицы страниц, а только адрес НАЧАЛА ТАБЛИЦЫ ЭТИХ ЭЛЕМЕНТИКОВ… Сам элемент (его номер в таблице страниц) определяют биты 12-21 линейного адреса. Вот его структура: Очень похож на элемент каталога страниц, но все же есть отличия… И заключительный штрих – структура элемента каталога 4Мб старниц. P-флаг, бит 0: указывает, находится ли страница (или таблица страниц) в физической памяти. Если он равен 1 – то все в порядке, страница в памяти и можно продолжать формирование физического адреса, если же он сброшен – процессор вызывает исключение #PF (Page Fault), обработчик которого должен загрузить ее в память. Вообще то процессор никогда не меняет этот флаг сам – этим должна заниматься ОС. R/W-флаг, бит 1: определяет привилегии чтения/записи для страницы или группы страниц (в случае, когда элемент каталога страниц указывает на таблицу страниц). Если флаг сброшен – страница доступна ТОЛЬКО ДЛЯ ЧТЕНИЯ. Если установлен – для чтения и записи. Данный флаг тесно связан с флагами U/S и WP из CR0. Об этом в выпуске о защите страниц. U/S-флаг, бит 2: определяет привилегии пользователя/супервизора для страницы или группы страниц. Если флаг сброшен – страница доступна только для супервизорского уровня привилегий, если установлен – для пользователя и супервизора. Данный флаг связан с флагами U/S и WP. PWT-флаг, бит 3: контролирует кэширование страницы (write- through и write-back). Если установлен – write-through кэширование разрешено, если сброшен – тогда разрешено write-back кэширование. Проц игнорирует этот флаг, если установлен CD (cache disabled) флаг в CR0. PCD-флаг, бит 4: контролирует кэширование страницы. Если установлен – кэширование страницы отключено, если сброшен – разрешено. Нужен для страниц, которые не «делают погоды» и по сути могут только засорить кэш. Также, как и с PWT-флагом, значение PCD-флага игнорируется, если установлен CD-флаг в CR0. A-флаг, бит 5: (аналог флага А в дескрипторе) показывает, было ли произведено обращение к странице с момента загрузки ее в память. По идее, ОС при загрузке страницы в память в первый раз должна сбросить этот бит в ноль. Затем, после ее загрузки в память, проц отлавливает момент, когда к ней в первый раз произойдет обращение и САМ устанавливает этот флаг в единицу. Все. Больше он его не трогает. Флаг А (также как и D) нужны для управления и контроля за страницами и таблицами страниц. D-флаг, бит 6: показывает была ли произведена запись в страницу. Этот флажок игнорируется в элементах каталога страниц, которые указывают на таблицы страниц, т.е. при 4Кб-страничной организации. ОС должна обнулить данный флаг как только страница загружена в память, затем проц уже САМ установит его, как только в страницу будет произведена первая запись и больше его трогать не будет. Т.е. он будет торчать до тех пор, пока его не скинет ОС. Вообще данный флаг по сути схож с флагом A. PS-флаг, бит 7 (для 4Кб страниц): определяет размер страницы. Если сброшен – страница 4Кб и элемент каталога страниц указывает на таблицу страниц. Если установлен – страница 4Мб (при 32-х битной адресации) или 2Мб (если используется EPA) и элемент каталога страниц указывает на САМУ СТРАНИЦУ. Если элемент каталога страниц указывает на таблицу страниц, то все страницы, на которые ссылаются элементы таблицы страниц также являются 4Кб-ными. PAT-флаг, бит 7 в элементе таблицы страниц (для 4Кб страниц) или бит 12 в элементе каталога страниц (для 4Мб страниц): появился только в III-пнях (также есть в Xeon-ах и четвертых пнях). PAT – это таблица, расширение IA-32 архитектуры, вообще это все к MTRR-регистрам и к нам не относится. На процах, не поддерживающих данную фичу этот флаг зарезервирован и должен равняться нулю. G-флаг, бит 8: появился в Pentium Pro процессорах. Указывает, что описываемая страница является ГЛОБАЛЬНОЙ, если установлен. Теперь смотри, для чего все это нужно. Если данный флаг установлен, а также установлен PGE-флаг в CR4, то соотв. элементы каталога и таблицы страниц никогда не будут выкинуты из TLB-кэша. Страницы, содержащие код ядра ОС и т.п. святые мощи желательно помечать глобальными, тогда их никто не посмеет выкинуть из TLB. Флаг G можно установить/сбросить ТОЛЬКО ПРОГРАММНО. Для элементов каталога, которые указывают на таблицу страниц, этот бит игнорируется, зато точно такой же битик есть и в соотв. элементе таблицы страниц, вот там проц на него уже смотрит. Зарезервированные и доступные для программ биты: существуют во всех IA-32 процах. Биты 9,10 и 11 доступны для использования программно. Если бит P (бит присутствия сегмента) сброшен, то доступны все 32 бита:). Для элемента каталога страниц, который указывает на таблицу страниц, бит 6 должен всегда равняться нулю! Если PSE и PAE флаги в CR4 – установлены, то проц будет ругаться #PF, если зарезервированные биты не сброшены в нули. Для вторых пней и более ранних: бит 7 в элементе таблицы страниц зарезервирован и должен равняться нулю. В элементах каталогов страниц для 4Мб страниц биты 12-21 должны быть равны нулю. Для третьих и более поздних пней: В элементах каталогов страниц для 4Мб страниц биты 13-21 должны быть равны нулю.
|
||||
Последнее изменение этой страницы: 2016-06-22; просмотров: 528; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.92.98 (0.01 с.) |