Буфер TLB поддерживает две основные операции для вхождений: инициализацию (load) или сброс (invalidate или purge). Вхождение TLB инициализируется в случае его отсутствия в кэше (кэш-промах). В большинстве архитектур такая операция производится на аппаратном уровне. Машина обладает знаниями о местонахождении и формате карт вторичного преобразования адресов (таких как таблицы страниц большинства систем или инвертированные таблицы страниц, поддерживаемые IBM RS6000).
Также вам может показаться, что такая тема как http://vivlana.ru/services/curtains-in-the-kitchen.html никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт vivlana.ru. Тема шторы для кухни там представлена весьма широко. На том сайте можно узнать много интересного на тему шторы для кухни. Что означает вообще тема шторы для кухни, где найти шторы для кухни - про это написано на сайте vivlana.ru. Это очень важная для многих людей тема - шторы для кухни. Спасибо сайту vivlana.ru за информацию на тему шторы для кухни.
Диспетчер ММU находит вхождение для страницы в таблице страниц и загружает его во вхождение TLB перед завершением преобразования адреса. Ядро системы не принимает никакого участия в этих действиях и даже не знает о самом факте их проведения.
В некоторых архитектурах, например в MIPS R3000 [9], поддерживается программный перезапуск (software reload). В таких системах MMU знает о присутствии только TLB. Если блок не находит необходимое вхождение в TLB, генерируется исключение. Картами преобразования адресов управляет ядро, а аппаратная часть не знает об их существовании и не определяет их структуру.
Ядро, как правило, использует для этой цели обычные таблицы страниц, но это не является обязательным требованием. После генерации диспетчером MMU ошибки об отсутствии необходимого вхождения TLB ядро находит преобразование и принудительно загружает вхождение TLB, содержащее корректную информацию.
Все блоки MMU поддерживают возможность программного сброса корректности вхождений TLB.
Ядро может вносить изменения в элемент TLB сразу по нескольким причинам, например, при потребности установить другие атрибуты защиты или сбросить атрибут корректности страницы после ее выгрузки в область свопинга. Такие действия ядра способны привести к недействительности информации, содержащейся во вхождении TLB. Это вхождение должно быть удалено из кэша (либо объявлено недействительным). Ядро может сделать это тремя различными способами:
♦ сбросить корректность одного вхождения TLB, идентифицируемого по виртуальному адресу. Если буфер не имеет соответствующего вхождения, то ядро не выполняет никаких действий. Примером такой методики управления буфером является инструкция TBIS (Translation Buffer Invalidate Single, сброс корректности одного вхождения буфера преобразований) VAX-11;
♦ объявить недействительным все содержимое кэша. Например, архитектура Intel 80x86 поддерживает сброс содержимого в любой момент времени путем записи в регистр PDBR (Page Directory Base Register, базовый регистр каталога страниц). Такая запись может быть выполнена принудительно командой move или косвенно при переключении контекста. Архитектура VAX-11 поддерживает аналогичную инструкцию TBIA (Translation Buffer Invalidate All, сброс корректности всех вхождений буфера преобразований), осуществляющую те же действия;
♦ загрузить новое вхождение TLB, перезаписав при этом предыдущую информацию для данного адреса, если таковая находилась в буфере ранее. Этот метод используется в таких архитектурах, как MIPS R3000, позволяющих программно перезагружать вхождения TLB.
Опубликовал katy
June 22 2015 19:28:59 ·
0 Комментариев ·
3032 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.