Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOS_otvety_1.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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

Чем быстрее память, тем она дороже. Но нам хотелось бы быструю и недорогую память. Для этого есть компромиссное решение – кэширование.

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

При этом КЭШем называют не только способ организации памяти, но и само быстрое ЗУ, куда производится копирование информации. Более медленное ЗУ называют основной памятью.

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

- оперативной памяти – роль КЭШа выполняет быстрая память

- к данным, хранящимся на диске – роль КЭШа выполняют буферы в оперативной памяти

- к другим видам ЗУ.

Виртуальная память по сути – тоже разновидность кэширования, где оперативная память выступает в роли КЭШа по отношению к диску. Правда здесь цель – не ускорение доступа, а увеличение объема и подмена оперативной памяти.

Принципы работы кэш - памяти.

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

В кэш памяти содержатся ЗАПИСИ обо всех загруженных в нее элементах.

Каждая запись включает:

  1. Данные

  2. Адрес этих данных в основной памяти

  3. Дополнительная инфа (признак модификации, признак действительности данных)

Процесс обращается к основной памяти:

  1. ОС просматривает содержимое КЭШа, нет ли нужных данных там.

  2. КЭШ-память не адресуема, поиск идет по адресу данных в оперативной памяти

  1. Если данные есть – кэш попадание, данные считываются из КЭШа и передаются запросившему.

  2. Если данных нет – кэш-промах, ОС идет в основную память и добывает данные оттуда.

При оценке эффективности кэш-памяти обычно использу­ют следующие характеристики:

•   коэффициент попаданий (hit rate) — отношение числа обращений к памяти, при которых произошло попадание, к общему числу обращений к ЗУ данного уровня иерархии;

•  коэффициент промахов (miss rate) — отношение числа обращений к памяти, при

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

•  время обращения при попадании (hit time) — время, необходимое для поиска

нужной информации в памяти верхнего уровня (включая выяснение, является ли обращение попаданием), плюс время на фактическое считывание данных;

•   потери на промах (miss penalty) — время, требуемое для замены блока в памяти более высокого уровня на блок с нужными данными, расположенный в ЗУ сле­дующего (более низкого) уровня. Потери на промах включают в себя: 

    1. время доступа (access time) — время обращения к первому слову блока при промахе

    2. время пересылки (transfer time) — дополнительное время для пересылки остав­шихся слов блока.

Время доступа обусловлено задержкой памяти более низко­го уровня, в то время как время пересылки связано с полосой пропускания ка­нала между ЗУ двух смежных уровней.

От чего зависит эффективность кэширования? От вероятности попаданий в кэш.

Использование кэш-памяти имеет смысл только при высокой вероятности кэш-попаданий, т.к. иначе это только дополнительные расходы времени на поиск в КЭШе.

Вероятность кэш-попаданий зависит от:

- объема КЭШа

- объема кэшируемой памяти

- алгоритма замещения данных в КЭШе

- особенностей выполняемой программы

- времени ее работы

- и тд

Но в большинстве реализаций процент кэш-попаданий высокий, более 90%. Круть.

Это достигается за счет того, что данные обладают свойствами пространственной и временной локальности.

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

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

В соответствии с принципом временной локальности, в Кэше сохраняют недавно просмотренные данные, а в соответствии с принципом пространственной локальности, в кэш считывается не один элемент информации, а целый блок данных или целый массив, если идет обработка массива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]