Процессор хранит использованные последними элементы страничных таблиц во входящем в состав микросхемы кеше, который называется буфером ассоциативной трансляции, или TLB. Большая часть подкачки страниц выполняется на базе содержимого TLB. Циклы шины для обращения к страничным таблицам затрачиваются только при использовании новых страниц.
TLB невидим для прикладных программ, но видим для операционной системы. Системные программисты должны очищать TLB (освобождая его содержимое от элементов страничных таблиц) при изменении элементов страничных таблиц. Если этого не сделать, то старые данные, не получившие изменений, могут быть ошибочно использованы для адресной трансляции. Изменение элемента для страницы, которая не находится в оперативной памяти, не требует очистки TLB, поскольку элементы для отсутствующих в памяти страниц не кешируются.
TLB очищается при загрузке регистра CR3. Регистр CR3 может быть загружен одним из следующих способов:
- Явной загрузкой при помощи команды MOV, например MOV CR3,EAX
- Неявной загрузкой при помощи переключателя задач, который изменяет содержимое регистра CR3. (Более подробную информацию о переключении задач см. в Главе 7).
Неверный элемент в TBL может быть очищен при помощи команды INVLPG. Эта команда бывает полезна при изменении образа конкретной страницы.