Кэш — память процессора.

18.09.2014 0 Автор GodKnowses

Что такое кэш процессора?

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

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

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

Зачем же нужен кэш процессору?

А теперь представьте, что библиотекарю надоело постоянно носиться туда-сюда с книгами, которые постоянно у неё требуют из года в год, изо дня в день. Он обзавёлся большой тумбой, где хранит наиболее часто запрашиваемые книги и учебники. Остальные, что положены, конечно, так и продолжают храниться на прежних полках. Но эти – всегда под рукой. Сколько же времени он сэкономил этой тумбой и себе, и остальным. Это и есть кэш.как_работает_кэш

Значит, кэш умеет сохранять только самые требуемые данные?

Да. Но он может большее. Например, уже сохраняя в себе часто требуемые данные, он способен оценить (с помощью процессора) ситуацию и затребовать информацию, которая вот-вот понадобиться. Так, клиент видео проката, затребовавший фильм «Крепкий орешек» с первой частью, скорее всего, попросит вторую.  А вот она! Также и с кэшем процессора. Обращаясь к ОЗУ и сохраняя определённые данные, он извлекает и данные из соседних ячеек памяти. Такие куски данных получили название строка кэша.

Что такое двухуровневый кэш?

Современный процессор имеет два уровня. Соответственно, первый и второй. Обозначаются литерой L от английского Level. Первый – L1 – более быстрый, но по объёму невелик. Второй – L2 – чуть больше, но медленнее, но быстрее, нежели оперативная память. Кэш первого уровня делится на кэш инструкций и кэш данных. Кэш инструкций хранит в себе тех их набор, которые необходимы процессору для расчётов. Тогда как в кэше данных сохраняются величины или значения, необходимые для текущего вычисления. А кэш второго уровня используется для подгрузки данных из оперативной памяти компьютера. Принцип работы уровней кэша также можно объяснить с помощью примера школьной библиотеки. Так, заполнив купленную тумбу, библиотекарь понимает, что её уже не хватает на книги, ради которых постоянно приходится бегать по залу. Но список таких книг окончательно оформлен, и нужно купить такую же тумбу. Первую он выбрасывать не стал – жалко —  и просто докупил вторую. И теперь, по мере заполняемости первой, библиотекарь начинает заполнять вторую, которая вступает в дело, когда первая заполнена, но нужные книги в неё не поместились. С уровнями кэша то же самое. И по мере развития микропроцессорной техники уровни кэша процессора растут в своих объёмах.

кэш процессора

Кэш будет продолжать расти?

Вряд ли. Погоня за частотой процессора тоже продолжалась недолго, и производители нашли другие пути увеличения мощности. Также и с кэшем. Говоря конкретно, объём и количество уровней бесконечно раздувать нельзя. Кэш не должен превращаться в ещё одну планку оперативной памяти с медленной скоростью доступа к ней или превращать размеры процессора до уровня в половину материнской платы. Ведь скорость доступа к данным – это, прежде всего, энергопотребление  и затрата производительности самого процессора. Также стали учащаться промахи кэша (в противоположность к попаданию кэша), когда процессор обращается к кэшированной памяти за данными, которых там не оказывается. Данные в кэше постоянно обновляются, используя различные алгоритмы, чтобы вероятность попадания кэша усилить.

Успехов