Далеко не все владельцы компьютеров знают, что такое кэш-память, хотя она активно используется абсолютно всеми производителями, как процессоров, так и программ. Некоторые пользователи, лишь недавно начавшие осваивать персональный компьютер, иногда на тематических форумах в глобальной Сети жалуются на низкое быстродействие своих электронных помощников. Например, если между запуском ярлыка офисной программы и появлением ее окна проходит 5 секунд, то это считается колоссальным временем. Или утверждается, что те 10-15 секунд, которые необходимы для загрузки операционной системы с жесткого диска на магнитных пластинах – напрасная потеря времени. Удивительно: всего десяток лет назад запуск программы мог занимать почти половину минуты, и это считалось быстро. Очевидно одно – производительность компьютеров существенно возросла и в этом далеко не последнюю роль сыграла кэш-память процессора.
Видео: как очистить кэш память в браузере
Используемые в компьютерной технике модули оперативной памяти основываются на технологии DRAM (динамическая память с произвольным доступом). Особенности этой технологии в низкой стоимости, высокой надежности и…относительно низком быстродействии. DRAM применялась уже десять лет назад, правда, еще более медленные ее модификации. Если в то время доступ к ячейкам памяти осуществлялся с задержками около 200 наносекунд, то сейчас это значение преодолело рубеж в 20 нс. Казалось бы – скорость должна быть просто фантастичной! Однако параллельно с совершенствованием DRAM также увеличивалась пропускная способность шин процессора, поэтому общее соотношение изменилось не так, как могло бы. Вот мы и подошли к вопросу о том, что такое кэш-память. Как можно увеличить производительность подсистемы памяти компьютера? Ответ очевиден – можно заменить морально устаревшую DRAM чем-то более прогрессивным. Но печально известный опыт Intel с дорогостоящими планками Rambus подсказал, что замена не должна существенно увеличивать итоговую стоимость.
Не будь этого ограничения, никто никогда бы и не задумывался, что такое кэш-память, потому что в подобном механизме не было бы особого смысла. Достаточно заменить DRAM более совершенной SRAM (память с произвольным статическим доступом) и проблема была бы решена. Но это повлекло бы значительное увеличение стоимости. Поэтому был предложен компромиссный вариант, оказавшийся настолько удачным, что применяется еще со времен первых 80286. Для увеличения производительности системы между относительно медленными модулями оперативной памяти и быстродействующим процессором размещаются блоки скоростной памяти. Относительно количества ячеек DRAM их объем крайне незначителен, составляя от 8 кб (первый уровень L1) до десятков мегабайт (уровень L3). Специальный контроллер пропускает через себя двунаправленный поток данных и копирует их часть в быструю память. При следующих запросах процессора к DRAM контроллер проверяет, нет ли «в запасе» нужных данны, и если они найдены, то передача процессору идет именно с кэша. Как видно, принцип работы довольно прост. Сложности возникают в способах реализации: разработчикам приходится решать, какие именно данные дублировать, как их обновлять, как повысить эффективность работы и др. Но это очень объемная тема, поэтому подробнее о ней можно прочесть в специализированных источниках.
Видео: 3 Cпособа перенести кэш игр на карту памяти
Таким образом, ответ на вопрос о том, что такое кэш-память, может быть сформулирован следующим образом: кэш-память является своеобразным буфером, в который контроллером записываются/считываются данные, увеличивая производительность подсистемы памяти.
А в отношении сетевых приложений что такое кеш? Браузер пользователя при просмотре страничек в Интернете использует такое же решение. При первом открывании любой странички многие ее элементы (изображения, данные) сохраняются в папке на диске, а при последующих обращениях эти данные не загружаются из медленной Сети, а подставляются из папки, увеличивая скорость серфинга. Ускорение особенно заметно при низких скоростях Интернета.