Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС колоквиум.docx
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
70.55 Кб
Скачать

11) Кэширование данных

· Память вычислительной машины, представленная совокупностью запоминающих

устройств (ЗУ) различных видов, может быть иерархизирована по следующим основ-

ным признакам:

· время доступа к данным;

· объем;

· стоимость хранения данных в расчете на один бит.

Конкретные значения этих характеристик изменяются очень быстро, поэтому в

данном случае важны не столько их абсолютные значения, сколько соотношение для

разных типов запоминающих устройств. Иерархия ЗУ приведена на рис. 3.9.

Закономерность такова: чем больше быстродействие, тем больше стоимость хра-

нения данных в расчете на один бит и меньше объем устройства. Кэш-память пред-

ставляет некоторое компромиссное решение этой проблемы.

· Кэш-память (cache) – это способ организации совместного функционирования

двух типов запоминающих устройств, отличающихся временем доступа и стоимос-

тью хранения данных, который позволяет уменьшить среднее время доступа к дан-

ным за счет динамического копирования в “быстрое” ЗУ наиболее часто используе-

мой информации из “медленного” ЗУ.

Механизм кэш-памяти прозрачен для пользователя: все перемещения данных де-

лаются автоматически системными средствами.

Кэш-памятью часто называют не только способ организации работы двух типов

запоминающих устройств, но и одно из устройств – “быстрое” ЗУ. Оно стоит дороже

и, как правило, имеет сравнительно небольшой объем. Медленное ЗУ из этой пары

назовем основной памятью, быстрое представлено кэш-памятью.

· Кэширование – универсальный метод, пригодный для ускорения доступа к опе-

ративной памяти, к диску и другим видам ЗУ. Так, в качестве составляющих пары

«основная память – кэш-память» могут выступать: оперативная память – быстро-

действующая статическая память; система ввода-вывода – буферы в оперативной

памяти (или специальная кэш-память).

Функционирование кэш-памяти

Рассмотрим одну из возможных схем кэширования.

Содержимое кэш-памяти представляет собой совокупность записей обо всех заг-

руженных в нее элементах данных из основной памяти. Каждая запись об элемен-

те данных включает в себя:

- значение элемента данных;

- адрес, который этот элемент данных имеет в основной памяти;

- управляющую информацию для реализации алгоритма замещения, обычно – признак

модификации и признак обращения к данным за некоторый последний период времени.

При каждом обращении к основной памяти по физическому адресу просматрива-

ется содержимое кэш-памяти с целью определения, не находятся ли там нужные дан-

ные. Поиск нужных данных осуществляется по содержимому – взятому из запроса

значению поля адреса в оперативной памяти. Далее возможно одно из двух:

· произошло кэш-попадание – данные обнаружены в кэш-памяти; они считываются

из кэш-памяти и результат передается источнику запроса;

· произошел кэш-промах (cache-miss) – нужных данных нет; они считываются из ос-

новной памяти, передаются источнику запроса и одновременно копируются в кэш-память.

Покажем, что среднее время доступа к данным зависит от вероятности попада-

ния в кэш.

Пусть имеется основное запоминающие устройство со средним временем доступа

к данным t1 и кэш-память, имеющая время доступа t2 (t2<t1). Обозначим через t сред-

нее время доступа к данным в системе с кэш-памятью, а через p -вероятность попа-

дания в кэш. По формуле полной вероятности имеем:

t = t1((1 – p) + t2p.

Видно, что среднее время доступа изменяется от среднего времени доступа в основ-

ное ЗУ (при р=0) до среднего времени доступа непосредственно в кэш-память (при р=1).

Таким образом, использование кэш-памяти имеет смысл только при высокой веро-

ятности кэш-попадания. Эта вероятность, в свою очередь, зависит от многих раз-

личных факторов. Тем не менее в реальных системах вероятность попадания в кэш

очень высока и составляет более 0.9. Такое высокое значение вероятности нахож-

дения данных в кэш-памяти связано с наличием у данных объективных свойств: про-

странственной и временной локальности.

Пространственная локальность. Если произошло обращение по некоторому ад-

ресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к

соседним адресам.

Временная локальность. Если произошло обращение по некоторому адресу, то сле-

дующее обращение по этому же адресу с большой вероятностью произойдет в бли-

жайшее время.

На практике в кэш-память считывается не один элемент данных, к которому про-

изошло обращение, а целый блок данных, что увеличивает вероятность попадания в

кэш при последующих обращениях.

Проблемы кэширования

· Вытеснение данных их кэша в основную память

В процессе работы содержимое кэш-памяти постоянно обновляется, а значит, пе-

риодически данные должны из нее вытесняться. Вытеснение предполагает объявле-

ние соответствующей области кэша свободной (сброс бита действительности) и, если

вытесняемые данные за время нахождения в кэше были изменены, копирование дан-

ных в основную память.

Методы выбора данных для вытеснения зависят от способа отображения основной

памяти на кэш и базируются на предположениях о свойствах данных. Реально как пра-

вило учитывается интенсивность обращения к данным. В некоторых алгоритмах заме-

щения предусматривается первоочередная выгрузка модифицированных данных.

Из-за непредсказуемости вычислительного процесса ни один алгоритм замещения

данных не может быть максимально быстрым и одновременно гарантировать макси-

мально возможную вероятность кэш-попаданий. Поэтому разработчики ограничивают-

ся рациональными решениями, по крайней мере, не сильно замедляющими работу кэша.

· Согласование данных кэша и основной памяти при записи в последнюю Проблема заключается в том, что при записи данных в основную память их копия в

КЭШе (если она там есть) становится недостоверной. Для решения этой проблемы типич-

ны два подхода.

Сквозная запись (write through). Если данные по запрашиваемому адресу отсут-

ствуют в кэше, то запись выполняется только в основную память, в противном слу-

чае – одновременно в кэш и основную память.

Обратная запись (write back). Если данные по запрашиваемому адресу отсут-

ствуют в кэше, то запись выполняется только в основную память, в противном слу-

чае – только в кэш-память. Во втором случае устанавливается признак модифика-

ции, указывающий на необходимость записи данных в основную память при вытес-

нении их из кэша.