Принципы действия КЭШ памяти
Содержимое КЭШ – памяти представляет собой совокупность записей обо всех загруженных в нее данных из основной памяти. Разработано много способов выбора данных из основой памяти, в том числе и алгоритм случайного отображения. При использовании алгоритма «случайного отображения» структура КЭШ – памяти имеет следующий вид
Адрес данных в основной памяти | данные | Управляющая информация |
…… | …….. | …….. |
Управляющая информация используется алгоритмами замещения данных и включает признак модификации.
Признак модификации равен 0, если данные в КЭШ – памяти не изменялись
1, если данные в КЭШ – памяти изменялись
При каждом обращении к основной памяти по физическому адресу просматривается КЭШ – память с целью определения есть ли там искомые данные. КЭШ – память не является адресуемой, поиск информации осуществляется по значению поля адреса в основной памяти, взятому из запроса. Далее возможно два варианта:
1. Данные находятся в КЕШ – памяти, произошло КЭШ – попадание, данные считываются из КЕШ – памяти и передаются источнику запроса;
2. Данные отсутствуют в КЕШ – памяти, произошел КЭШ - промах, данные считываются из основной памяти, передаются источнику запроса и одновременно копируются в КЕШ – память.
Вероятность обнаружения данных зависит от многих факторов, таких как объем КЕШ –памяти, объем кэшируемой памяти, время работы процесса и т.д. В современных системах вероятность обнаружения данных в КЕШ – памяти достигает 90 %, такая высокая вероятность нахождения данных основана на двух принципах:
1. Временная локальность – если произошло обращение по некоторому адресу, то следующее обращение по этому адресу произойдет в ближайшее время;
2. Пространственная локальность – если произошло обращение по некоторому адресу, то с высокой степенью вероятности произойдет обращение в ближайшее время по соседним адресам.
В начале работы, когда КЕШ – память еще пуста, почти каждый запрос выполняется «по полной программе», то есть происходит КЭШ – промах, но по мере заполнения КЭШа вероятность нахождения данных в КЭШе возрастает.
Одним из свойств КЕШ – памяти является ее прозрачность для приложений и пользователей. Ни пользователи, ни приложения не принимают никакого участия в перемещении данных из одного ЗУ в другое, все это выполняется автоматически средствами операционной системы.
В процессе работы содержимое КЕШ – памяти постоянно обновляется, то есть происходит вытеснение данных. Вытеснение данных означает:
1. Если данные не изменялись, то данная область КЕШ – памяти объявляется свободной;
2. Если данные изменялись, то данные копируются в основную память и данная область КЕШ – памяти объявляется свободной. Для определения изменения данных в КЕШ - памяти проверяется бит модификации.
Наличие двух копий данных - в КЕШ – памяти и в основной памяти порождает проблему согласования данных.Для решения которой используется два способа:
Сквозная запись – при каждом запросе к основной памяти просматривается КЕШ.
- если данные в КЕШ – памяти отсутствуют, то запись проводится только в основную память,
- если данные есть в КЕШ – памяти, то запись проводится и в КЕШ – память и в основную память;
Обратная запись - при каждом запросе к основной памяти просматривается КЕШ.
- если данные в КЕШ – памяти отсутствуют, то запись проводится только в основную память,
- если данные есть в КЕШ – памяти, то запись проводится и в КЕШ – память и устанавливается признак модификации = 1. Признак модификации показывает, что данные обновлялись и при вытеснении данных из КЕШ – памяти, они будут переписаны в основную память.
Существует два класса КЕШ – памяти:
- КЭШ 1- го уровня (внутренний КЭШ) – размещается на кристалле микропроцессора, имеет объем 16 / 32 кбайта.
- КЭШ 2 – го уровня (внешний КЕШ) – устанавливается в виде отдельной микросхемы, имеет объем 256 / 512 кбайт
КЭШ 1- го уровня имеет более высокое быстродействие, чем КЭШ 2 – го уровня.
Общая схема выполнения запроса к ОП в системах с Кэш – памятью
(выполнение системного вызова)
Запрос к
основной памяти
просмотр
кэш – памяти
кэш нет
да попадание
чтение какая запись запись какая чтение
операция операция
запись в чтение из
считывание основную основной
данных из кэш память памяти
алгоритм
согласования
есть да
нет свободное
место
передача
данных запись запись в кэш выбор
источнику в кэш и основ. установка бита данных на
запроса память модификации выгрузку
данные нет
да изменялись
копирование в
основ. память
копирование из
основн. памяти
передача данных
источнику
запроса
выполнение запроса
Схема выполнения запроса «чтение» в системах с двухуровневым кэшированием памяти
Запрос
на чтение данных
просмотр
кэш 1-го уровня
кэш нет
да промах
просмотр чтение из
кэш 2-го уровня кэш 1-го уровня
да кэш нет
промах
чтение чтение из
из ОП кэш 2-го уровня
запись в копирование в
кэш 2-го уровня кэш 1-го уровня
запрос выполнен
Схема выполнения запроса «запись» в системах с двухуровневым кэшированием памяти
Запрос
на запись данных
поиск в
кэш 1-го уровня
кэш нет
да промах
поиск в запись в
кэш 2-го уровня кэш 1-го уровня
кэш нет
промах
да
запись в
кэш 2-го уровня
установка бита
модификации
запись в ОП
запрос выполнен
Дата добавления: 2015-08-11; просмотров: 1033;