December 17 2017 17:33:05
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Формат указателей каталога
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

Буфер TLB для трансляции адресов команд состоит из двух блоков, которые обеспечивают формирование физических адресов при использовании страниц объемом 4 Кбайт и 4 Мбайт. Буфер для страниц 4 Кбайт содержит 8 наборов по 4 строки, в которых хранятся физические адреса 32 ранее выбранных страниц. Буфер для страниц 4 Мбайт хранит базовые адреса двух страниц, к которым производились последние обращения при выборке команд.

img029

Буфер TLB для трансляции адресов операндов содержит два блока, в которых хранятся физические адреса 64 ранее выбранных страниц размером 4 Кбайт (16 наборов по 4 строки) и 8 адресов страниц размером 4 Мбайт (2 набора по 4 строки).

Таким образом, в TLB команд имеются готовые физические адреса для 32 страниц объемом 4 Кбайт или 2 страниц объемом 4 Мбайт. В TLB данных содержатся физические адреса 64 страниц объемом 4 Кбайт и 8 адресов страниц объемом 4 Мбайт. При обращении к этим страницам (кэш-попадание) процедура трансляции не выполняется, что позволяет существенно сократить время выполнения команд при использовании страничной организации памяти. Как показывает имеющийся опыт применения процессоров семейства Р6 в различных системах, при данной структуре TLB вероятность выборки адреса команд и данных из буфера (без выполнения страничной трансляции адреса с обращением к катологам разделов и таблицам страниц) составляет около 98%. При этом формирование физического адреса не требует дополнительных машинных циклов.

а)
63                   36 35 12 11      9 8 5 4 3 2 1 0
Резервировано Базовый адрес каталога страницы AVL Резерв. PCD PWT Резерв. 1
б)
63                   36 31                        12 11      9 8 7 6 5 4 3 2        1 0
Резервировано Базовый адрес таблицы страниц AVL О О О А PCD PWT V/S R/W Р
в)
63                   36 31                        12 11      9 8 7 6 5 4 3 2        1 0
Резервировано Базовый адрес страницы AVL G О D А PCD PWT V/S р
г)
63                   36 31         22 21     12 11      9 8 7 6 5 4 3 2        1 0
Резервировано Базовый адрес страницы Резерв. AVL G 1 D А PCD PWT V/S р

Рис. 2.47. Формат указателей каталога (а), указателя раздела и страницы для страниц 4Кбайт (б, в) и указателя страницы для страниц 4Мбайт (г) при 36-разрядном адресе

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

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

Можно предохранить от аннулирования в TLB базовые адреса страниц, задав для них в указателе страницы (см. рис. 2.45, б, в, 2.47, в, г) значение бита глобальности G = 1. Если в регистре CR4 (см. рис. 2.7) установлен бит разрешения глобальности PGE = 1, то базовые адреса этих страниц в TLB не будут аннулироваться при переключении задач или перезагрузке содержимого CR3. Таким образом, можно избежать потерь времени на трансляцию базового адреса для страниц, используемых в процессе выполнения различных задач (например, для страниц, содержащих ядро операционной системы).

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.06 секунд 2,299,284 уникальных посетителей