Принципы кэширования
Основная память компьютеров реализуется на относительно медленной динамической памяти (DRAM), и при обращении к ней процессор простаивает в ожидании данных — появляются такты ожидания (wait states). Статическая память (SRAM), построенная, как и процессор, на триггерных ячейках, по своей природе способна догнать современные процессоры по быстродействию и сделать ненужными такты ожидания, но она относительно дорогая. Разумным компромиссом, для построения экономичных и производительных систем, явился иерархический способ организации оперативной памяти. Идея заключается в сочетании основной памяти большого объема на DRAM с относительно небольшой буферной памятью на быстродействующих микросхемах SRAM.
В переводе слово кэш (cache) означает «тайный склад», «тайник» («заначка»). Тайна этого склада заключается в его невидимости и в том, что он не доступен командам процессора. Кэш является дополнительной быстродействующей памятью копий некоторых блоков информации из основной памяти, вероятность обращения к которым в ближайшее время велика. Он хранит каталог (cache directory) — список их текущего соответствия областям основной памяти. Кроме того, кэшироваться может не вся память, доступная процессору.
При каждом обращении к памяти контроллер кэш-памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше. Если она там есть, то это случай кэш-попадания (cache hit), и данные берутся из кэш-памяти.
Если действительной копии там нет, это случай кэш-промаха (cache miss), и данные берутся из основной памяти. В соответствии с алгоритмом кэширования блок данных, считанный из основной памяти, при определенных условиях заместит один из блоков кэша. От интеллектуальности алгоритма замещения зависит процент попаданий и, следовательно, эффективность кэширования. Поиск блока в списке должен производиться достаточно быстро, чтобы не свести на нет выигрыш от применения быстродействующей памяти.
Обращение к основной памяти может начинаться одновременно с поиском в каталоге, а в случае попадания — прерываться (архитектура Look aside). Это экономит время, но лишние обращения к основной памяти ведут к увеличению энергопотребления.
Другой вариант: обращение к внешней памяти начинается только после фиксации промаха (архитектура Look Through), при этом теряется, по крайней мере, один такт процессора, зато экономится энергия.
В современных компьютерах кэш обычно строится по двухуровневой схеме.
Первичный кэш (LI Cache) встроен во все процессоры класса 486 и выше; это внутренний кэш. Объем этого кэша невелик (8 - 32 Кбайт). Чтобы повысить производительность, для данных и команд часто используется раздельный кэш.
Вторичный кэш (L2 Cache) для процессоров Pentium является внешним (устанавливается на системной плате), а у Р6 располагается в одной упаковке с ядром и подключается к специальной внутренней шине процессора, емкость вторичного КЭШа достигает 2 Мбайт.
Дата добавления: 2016-02-24; просмотров: 1023;