3

Обновлена ​​ли таблица страниц при выводе из TLB записи? и если да, то почему? какая информация обновляется в таблице страниц? Я думаю, обновление страницы страницы не требуется, когда выведенная страница чиста.Распаковка таблицы страниц при выводе из TLB

Аналогично, обновляется ли таблица страниц, когда страница кэшируется (вводится) в TLB?

+1

1.) нет 2.) флаги/адреса 3.) TLB - это кэш для сопоставлений, хранящихся в таблицах страниц. Так VA <-> Зависимость PA от таблиц страниц может быть кэширована в TLB –

+2

Как правило, индикатор доступа в записи таблицы страниц обновляется (в таблице страниц), когда PTE загружается в TLB (если он еще не был установлен). Грязный индикатор будет обновляться при записи даже при ударе TLB. (I.e., большинство TLB являются сквозными.) Можно было бы поддерживать TLB с обратной записью, и такое может быть желательно для TLB с более чем одним PTE, связанным с каждым тегом виртуального адреса. –

+0

@ PaulA.Clayton, спасибо за ответ. Вопрос только для того, чтобы понять это лучше. Зачем нужно обновлять поле индикатора доступа в PTE таблицы страниц во время загрузки TLB? Другими словами, в каких ситуациях может помочь поле индикатора доступа? – aminfar

ответ

3

Ходок для аппаратных страниц (например, определенный для x86) может изменять доступные и измененные индикаторы как часть загрузки записи таблицы страниц (PTE). Поскольку PTE может быть загружен во время пропусков без записи, можно изменить измененный индикатор после того, как PTE загрузится в TLB. (Также возможно, чтобы PTE были предварительно запрограммированы в TLB, и в этом случае даже индикатор доступа мог бы быть установлен после того, как PTE был вставлен в TLB. Традиционные кластерные записи TLB, в которых хранится более одного PTE для каждой записи, единый тег, такой как субблокинг для обычного кеша памяти, может, естественно, извлечь выгоду из предварительной выборки других страниц, связанных с тегом, поскольку он не требует дополнительного хранения (т. е. никакого эффекта загрязнения кэша от такой предварительной выборки) и соседних ПТЭ хранятся в пределах (для типичных многоуровневых таблиц страниц), которые уже будут извлечены из памяти.)

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

Некоторые аппаратные архитектуры управления TLB не поддерживают аппаратную настройку доступных и грязных индикаторов. Вместо этого генерируется исключение, и программное обеспечение обрабатывает эти особые случаи. Поскольку установка этих показателей не так редка, как изменение трансляции адресов или разрешений, может быть какое-то преимущество для этого, не требуя участия ОС.

(Грязные индикаторы используются, чтобы позволить ОС избегать (без необходимости) записи страницы, которая не загрязняется, когда страница удалена из памяти. Доступные индикаторы используются для поддержки (обычно на основе ретентата) page replacement algorithm в OS.)

+0

Отлично! Очень полезно. Поэтому доступные индикаторы используются ОС для управления заменой страниц. Теперь я понимаю, почему доступные индикаторы PTE обновляются, когда PTE кэшируется в TLB. То, что я не понимаю, - это обновление доступных индикаторов, когда PTE выносится из TLB. Кажется, это немного лишнее. – aminfar

+2

@aminfar Обычно TLB являются сквозными, поэтому память не обновляется, когда PTE вызывается из TLB. Теоретически возможно TLB с обратной записью, и в этом случае обновление PTE в памяти при выселении из TLB произойдет, если PTE будет изменен. –

 Смежные вопросы

  • Нет связанных вопросов^_^