Кэширование памяти
Основная память компьютеров реализуется на относительно неторопливой ди-намической памяти (DRAM), обращение к ее приводить к простоя процессора - являются такты ожидания (wait states). Статичная память (SRAM), построенная, как и процессор, на триггерных глазках, по своей природе способная догнать совре-менные процессоры по быстродействию и сделать ненужными такты ожидания (или хотя бы сократить их количество). Разумным компромиссам для построения эконо-мичных и производительных систем явился иерархический способ организации оперативной памяти. Идея складывается в сочетания основной памяти большого объема на DRAM с относительно невеликий кэш-памятью на быстродействующих микросхемах SRAM.
В переводе слова кэш (cache) означает “таинственный состав”, “тайник” (”занач-ка”). Тайна этого склада складывается в его “прозрачности” - для программы он ни представляет собой дополнительной адресованной области памяти. Кэш является дополнительным быстродействующим хранилищем копий блоков информации с основной памяти, вероятность обращения к которых в ближайшее время большая. Кэш ни может сохранять копию всей основной памяти, поскольку его объем в много раз меньше основной памяти. Он сохраняет только ограниченное количество блоков данных и каталог (cache directory) - список их текущего соответствия областям основной памяти. Помимо того, кэшироваться может ни всей памяти, доступная про-цессору.
При каждом обращении к памяти контроллер кэш-памяти по каталогу прове-ряет, есть ли настоящая копия затребованных данных в кэши. Когда она там есть, то это случай кэш-попадания (cache hit), и данные берутся с кэш-памяти. Ес-настоящей копии ли там нет, это случай кэш-промашки (cache miss), и данные берутся с основной памяти. В соответствия с алгоритмом кэширования блок данный-ных, считанный с основной памяти, при определенных условиях заместит один с блоков кэша. От интеллектуальности алгоритма замещения зависит процент попа-даний и, таким образом, эффективность кэширования. Поиск блока в списке долл-жен изготавливаться достаточно скоро, чтобы “задумчивостью” в принятия реше-ния ни свести на нет выигрыша от употребления быстродействующей памяти. Обра-щение к основной памяти может начинаться одновременно с поиском в каталоге, а в случая попадания - прерываться (архитектура Look aside). Это экономить время, но лишние обращения к основной памяти ведут к увеличения энергопотребления. Другой вариант: обращение к внешней памяти начинается только после фиксаций промашки (архитектура Look Through), при этом утрачивается по крайней мере один такт процессора, зато экономиться энергия.