- •ОБразования российской федерации
- •Цель работы
- •Теоретическая часть
- •Типы адресов
- •Механизмы страничной переадресации
- •Базовый механизм страничной переадресации
- •Режимы psEиPse-36
- •РежимPae
- •Буфер ассоциативной трансляции тlb
- •TlBс полностью ассоциативным распределением строк.
- •TlBс наборно-ассоциативным распределением строк
- •Порядок выполнения работы
- •Вопросы для самопроверки (защиты л/р)
- •TlBс полностью ассоциативным распределением строк.
- •TlBс наборно-ассоциативным распределением строк
- •Список литературы
Механизмы страничной переадресации
Страничное управление памятью является средством организаций виртуальной памяти с механизмом подкачки отсутствующих в ОП страниц с внешней памяти. В отличие от сегментации, которая организует программы и данные в модули различного размера, страничная организация оперирует с памятью как с набором страниц одинакового размера.
В момент обращения страница может присутствовать в физической оперативной памяти, а может быть выгруженной во внешнюю (дисковую) память. При обращении к выгруженной странице задачи:
процессор вырабатывает исключение #PF- отказ страницы,
линейный адрес, по которому был получен последний отказ страницы, заносится в системный регистр CR2,
программный обработчик исключения (часть ОС) получает необходимую информацию для подкачки отсутствующей страницы с диска.
Многие процессоры шестого поколения имеют разрядность шины адреса 36 бит, что позволяет адресовать до 64 Гбайт физической памяти. Поскольку архитектура 32-разрядных процессоров предполагает разрядность линейного адреса только 32 бит, старшие 4 бита могут появиться только в результате работы блока страничной переадресации. Без использования дополнительных возможностей переадресации (РАЕ или РSE-36) биты внешней шины адреса ША[35÷32] принудительно обнуляются.
Таблица 1. Режимы страничной переадресации
|
CR0.PG |
CR4.PAE |
CR4.PSE |
PDE.PS |
Размер страницы |
Разрядность физического адреса, бит |
Механизм страничной переадресации |
|
0 |
X |
Х |
Х |
Линейный адрес равен физическому |
32 |
Трансляция не осуществляется |
|
1 |
0 |
0 |
X |
4Кб |
32 |
базовый |
|
1 |
0 |
1 |
0 |
4Мб |
32 |
PSE |
|
1 |
0 |
1 |
1 |
4Мб |
36 |
PSE-36 |
|
1 |
1 |
X |
0 |
4Кб |
36 |
PAE |
|
1 |
1 |
X |
1 |
2Мб |
36 |
PAE |
В первых 32-разрядных процессорах размер страницы составлял 4 Кбайт (базовый механизм). Начиная с Pentium, появилась возможность увеличения размера страницы до 4 Мбайт, одновременно с использованием страниц размером 4 Кбайт (режимPSE). В процессорахi686 был введен режим расширения физического адреса до 36 бит, при котором допустимы страницы размером 4 Кбайт и 2 Мбайт (режим РАЕ). ВPentiumIIIпоявилась возможность использования страниц размером 4 Мбайт с 36-битной физической адресацией (режимPSE-36). Режимом страничной переадресации управляют битыCR0.PG, флагиCR4.PAEиCR4.PSEи бит размера страницыPDE.PSв строке каталога страниц (табл. 1).
Страничное управление памятью выполняет блок страничной переадресации (БСП). Входной информацией для БСП является линейный адрес, который выбирается из SDC[64:95]. Каждый механизм страничного управления памятью использует несколько уровней таблиц трансляции линейного адреса в физический, напримерPD–PageDirectory(каталог страниц),PT–PageTable(таблица страниц), см.рис. 16, 20, 25 и т.д. Бит Р в каждой анализируемой строке каждой таблицы должен быть равен 1 (таблица следующего уровня, на которую ссылается данная строка, присутствует в памяти).
Если на этих этапах встречается Р=0, вырабатывается исключение #PF, обработчик которого должен принять меры по загрузке затребованной страницы в оперативную память. После обработки исключения (успешной) повторяется доступ к затребованной ячейке памяти.
Обработчик исключения #PF, поддерживающий подкачку страниц по запросу, должен скопировать страницу с внешней (дисковой) памяти в оперативную, загрузить адрес страницы в строку таблицы и установить бит присутствия Р. Поскольку в буфере TLB могла оставаться старая некорректная копия строки, необходимо объявить содержимое TLB недействительным (в строке, содержащей некорректные данные битvalid=0).
Таблица 2. Назначение разрядов строк PDE каталога страниц и PTE таблицы страниц
|
Бит |
Действие |
|
P |
Бит присутствия вхождений в таблицы. Р=1 означает возможность использования данной строки таблицы для окончательной трансляции адреса страницы (страница присутствует в ОП). Р=0 означает, что данная строка таблицы может использоваться для получения информации о таблице трансляции следующего уровня. |
|
A |
Признак доступа, устанавливается перед любым чтением или записью по адресу, в преобразовании которого участвует данная строка таблицы. |
|
D |
Признак «грязной» страницы, устанавливается перед операцией записи по адресу, в преобразовании которого участвует данная строка. Таким образом помечается использованная страница, которую в случае замещения необходимо выгрузить на диск. |
|
PS |
Задает размер страницы (только в PDE). При PS=0 страница имеет размер 4 Кбайт, PS=1 используется в расширениях РАЕ и PSE |
После этого процесс, породивший исключение, может быть продолжен. Из каждой таблицы считывается определённая строка, при этом её бит А устанавливается в 1, что означает, что по этому адресу был произведён доступ к памяти (см. табл.6). Если же по адресу памяти, в формировании которого участвовала данная строка таблицы, была произведена запись, то её бит Dустанавливается в 1. Далее процессор вычисляет физический адрес таблицы следующего уровня и производит обращение по этому адресу.
