Виртуально адресуемый кэш состоит из определенного количества строк (lines) кэширования, каждая из которых отображает определенное количество байтов памяти. Например, машина Sun-3 [20] имеет 64-килобайтовый кэш, состоящий из 16-байтовых строк.
Также вам может показаться, что такая тема как http://www.art-copy.ru/produkcija/futbolki_s_izobrazheniem/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт art-copy.ru. Тема футболки с логотипом там представлена весьма широко. На том сайте можно узнать много интересного на тему футболки с логотипом. Что означает вообще тема футболки с логотипом, где найти футболки с логотипом - про это написано на сайте art-copy.ru. Это очень важная для многих людей тема - футболки с логотипом. Спасибо сайту art-copy.ru за информацию на тему футболки с логотипом.
Кэш индексируется по виртуальному адресу, либо по комбинации виртуального адреса с идентификатором процесса или идентификатором контекста. В одну строку обычно отображается сразу несколько виртуальных адресов (относящихся к одному и тому же или различным адресным пространствам), поэтому строка должна содержать тег, идентифицирующий процесс и виртуальный адрес.
Применение виртуальных адресов для индексирования имеет одно важное последствие: для кэша может быть определен фактор выравнивания (alignment factor), например, если два виртуальных адреса отличаются на величину этого фактора, то они отображаются в одной строке кэша. Величина фактора выравнивания, как правило, равна длине кэша (или кратному значению). Для обозначения адресов, отображаемых в одной строке кэша, применяется термин выравненные адреса (aligned addresses).
Несмотря на то, что физически адресуемые кэши работают совершенно независимо от операционной системы, аппаратная часть машины не в состоянии гарантировать непротиворечивость виртуально адресуемых кэшей. Определенный физический адрес может быть отображен по нескольким виртуальным адресам и, следовательно, такое отображение может находиться в отличающихся друг от друга строках кэша, что является причиной внутренней проблемы корректности данных. Так как кэширование является отложенным, информация, размещаемая в основной памяти, может оказаться устаревшей по сравнению с данными кэша. Существуют три типа проблем достоверности данных виртуально адресуемых кэшей: изменение отображения (омонимы), псевдонимы адресов (синонимы) и операции прямого доступа к памяти (DMA).
Изменения отображений
Изменения отображения имеют место тогда, когда виртуальный адрес переназначается на другой физический адрес .
Это может произойти в нескольких ситуациях.
♦ Переключение контекста. При переключении контекста происходит замена предыдущего адресного пространства на пространство нового процесса. В большинстве архитектур тег строки кэша идентифицирует процесс, к которому относится эта строка. В результате переключение контекста не приводит к объявлению недействительной всей кэшируемой информации. Однако в большинстве систем область и размещается в адресном пространстве ядра. При переключении контекста ядро переназначает адреса области и в физические страницы области и другого процесса. Так как ядро является разделяемым, его вхождения в кэше имеют специальный тег, корректный для всех процессов. Таким образом, переключение контекста аннулирует все вхождения старой области и в кэше.
♦ Выгрузка страницы. Если демон pagedaemon выгружает страницу из памяти, то он также производит и сброс корректности всех вхождений кэша для этой страницы.
♦ Изменение атрибутов защиты. При изменении атрибута защиты страницы соответствующие вхождения кэша становятся некорректны. Изменение защиты может произойти после вызова функции mprotect, либо в результате имитации бита ссылки или вследствие применения копирования при записи ядром. Если защита страницы понижается (например, атрибут «только для чтения» замещается на «чтение-запись»), такое изменение является безопасным и не требует обновления информации в кэше. Если процесс попытается обратиться к странице, произойдет исключение, при обработке которого в кэш будет загружена корректная информация. При упрочении защиты (например, если страница, доступная для записи, получает атрибут «только для чтения») произведенное изменение должно быть распространено и на все вхождения кэша для такой страницы.
♦ Копирование при записи. Если процесс осуществляет попытку записи страницы, разделяемой в режиме копирования при записи, ядро создаст для него новую копию страницы, сделает ее доступной для чтения и изменит отображения процесса для получения ссылки на созданную только что копию. Эти действия приводят к некорректности всех вхождений кэша, ссылающихся на изначальную страницу.
Псевдонимы адресов
Псевдонимы адресов (address aliases) или синонимы (synonyms) представляют собой набор виртуальных адресов одной и той же физической страницы.
Когда процесс изменяет отображение, используя один из таких адресов, такое изменение не будет автоматически спроецировано на остальные строки кэша. Если другой процесс начнет чтение данных, основываясь на других адресах, то результатом станет обращение к устаревшим данным. Более того, если два процесса запишут местонахождение страницы по двум разным адресам, порядок, в котором эти записи будут помещены в память, не определен. Синонимы могут возникать вследствие нескольких причин.
Опубликовал katy
June 23 2015 06:32:29 ·
0 Комментариев ·
3280 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.