Получать новые статьи на свою почту
Популярные статьи
  • Что такое жёсткий диск и в чём его сходство с подробнее
  • Процессор — все точки над i подробнее
  • В чём прикол твёрдотельных накопителей? подробнее
  • Видеокарта — функции и суть данной железки подробнее
Поддержать проект
05.06.2018
Блог Дмитрия Вассиярова.
Автор: Рубрика:

Кэш (cache) — зачем его придумали?

Лого

 

Здравствуйте мои уважаемые читатели, сегодня я в общих чертах отвечу на вопрос что такое кэш память? Это позволит вам получить общее представление, и даст возможность самим определить какие детали этой тематики для вас представляют наибольший интерес. И это уже будут отдельные темы для других статей.

Сам термин «кэш» происходит от слов cacher, cachе и означает, нечто спрятанное про запас. Впервые это слово в компьютерной среде прозвучало в 1968 году со страниц журнала «IBM Systems Journal», где по желанию редактора им был заменен термин «высокоскоростной буфер». Сейчас термин «кэш» получил широкое распространение и о его существовании знают даже те, кто не до конца разобрался в возможностях своей цифровой техники.

 


Где применяется буферизация информации?

Изначально кэш использовался в компьютерных устройствах. Его самым главным преимуществом была доступность информации и возможность ее считывания на высокой скорости. В ПК кэш предстал в нескольких аппаратных и программных вариациях:

  • Информация, записанная на жестком диске, хранится в виде блоков размещенных в разных местах. Ее считывание занимает гораздо больше времени, чем требуется процессору ее же обработки. Поэтому гораздо выгоднее сначала извлечь данные, соединить их вместе в кэше и быстро передать ЦПУ готовый для обработки блок. Раньше винчестеры для этой цели оснащались собственной энергозависимой памятью на 8 или 16 Мб. Сейчас используются HDD с 32 и 64 МБ, а в современных серверных жестких дисках размер кэша достигает 128 и 256 Мб;

  • Специалисты, занимающиеся архитектурой чипов знали, что существует ряд команд которые выполняются ЦПУ с регулярной периодичностью и используют одну и ту же информацию. И для того чтобы не обращаться постоянно к более медленным хранилищам данных (ОЗУ, HDD) в самом процессоре предусмотрели несколько уровней небольшого кэша – SRAM. Начальный L1 наиболее быстрый, но мене вместительный. L2 побольше, по медленнее. Старший уровень кэша L3 еще теряет в скорости, но прибавляет в объеме.

  • Кроме того программный кэш стал широко использоваться различными приложениями (особенно играми и браузерами). Нужные или наиболее часто используемые файлы (история запросов и веб-страницы, промежуточные результаты работы) подгружались в более доступное место, что обеспечивало высокое быстродействие системы.

Сейчас, в силу повсеместного распространения смартфонов на Андроид (активно использующих кэширование) многие столкнулись с проблемой нехватки места на своих устройствах. Это происходит в недорогих гаджетах с плохо оптимизированной операционной системой. Пользователям приходится периодически запускать программы-клинеры или самим очищать кэш браузера. Иногда к таким действиям прибегают и владельцы персональных компьютеров, обнаружившие непомерно разросшийся объем папок с cache-файлами.

 

Способы работы с кэш-памятью

И если за порядком с программным кэшем приходится следить самим пользователям, то аппаратная буферизация данных в силу ограниченного объема сверхоперативной памяти происходит по определенным алгоритмам.

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

Когда мы имеем с многоуровневым кэшем, то информация может перемещаться по нему двумя способами:

  • сквозным (она дублируется в подуровнях, например в L3 – L2 – L1);
  • отложенным, при котором размещается только в начальном уровне L1.

Практически во всех случаях запись новой информации связана с освобождением для нее соответствующего места. Но для этого процессору необходимо определить, какие данные, ранее находящиеся в кэше, можно стереть или переместить в другое место (например, на уровень выше). Для этого существует несколько алгоритмов замещения:

  • для удаления выбирают блок, который дольше остальных оставался невостребованным (LRU);
  • вытесняется буфер, использованный последним (MRU);
  • замена происходит вместо буфера с наименьшей частотой использования (LFU);
  • комбинационный алгоритм, совмещающий LFU и LRU;

 

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

На этом наша беседа о кэш-памяти подошла к завершению. Я рад, если в ней вы узнали что-то новое или прояснили для себя отдельные моменты. До скорых встреч, мои дорогие читатели!

 

 

Этой статьей стоит поделиться
Получать новые статьи на свою почту

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

:|:x:shock::oops::mrgreen::lol::idea::evil::cry::cool::arrow::???::?::!: