Что такое кэш память процессора

Что такое кэш память процессора

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

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

Содержание статьи

Что такое кэш-память процессора

Решая любую задачу, процессор компьютера получает из оперативной памяти необходимые блоки информации. Обработав их, он записывает в память результаты вычислений и получает для обработки следующие блоки. Это продолжается, пока задача не будет выполнена.

Все упомянутые операции производятся на очень высокой скорости. Однако, даже самая быстрая оперативная память работает медленнее любого "неторопливого" процессора. Каждое считывание из нее информации и обратная ее запись отнимают много времени. В среднем, скорость работы оперативной памяти в 16 – 17 раз ниже скорости процессора.

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

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

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

Устройство кэш-памяти процессора

Система кэш-памяти процессора состоит из двух блоков — контроллера кэш-памяти и собственно самой кэш-памяти.

Контроллер кэш памяти

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

Когда ядро процессора обращается к контроллеру за какими-то данными, тот проверяет, есть ли эти данные в кэш-памяти. Если это так, ядру моментально отдается информация из кэша (происходит так называемое кэш-попадание).

В противном случае ядру приходится ожидать поступления данных из медленной оперативной памяти. Ситуация, когда в кэше не оказывается нужных данных, называется кэш-промахом.

Задача контроллера – сделать так, чтобы кэш-промахи происходили как можно реже, а в идеале – чтобы их не было вообще.

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

• размером и структурой кэш-памяти (чем больше ресурсов имеет в своем распоряжении контроллер, тем ниже вероятность кэш-промаха);

• эффективностью алгоритмов, по которым контроллер определяет, какая именно информация понадобится процессору в следующий момент времени;

• сложностью и количеством задач, одновременно решаемых процессором. Чем сложнее задачи и чем их больше, тем чаще "ошибается" контроллер.

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

Кэш-память процессора изготавливают в виде микросхем статической памяти (англ. Static Random Access Memory, сокращенно — SRAM). По сравнению с другими типами памяти, статическая память обладает очень высокой скоростью работы.

Однако, эта скорость зависит также от объема конкретной микросхемы. Чем значительней объем микросхемы, тем сложнее обеспечить высокую скорость ее работы.

Учитывая указанную особенность, кэш-память процессора изготовляют в виде нескольких небольших блоков, называемых уровнями. В большинстве процессоров используется трехуровневая система кэша:

Кэш-память первого уровня или L1 (от англ. Level — уровень) – очень маленькая, но самая быстрая и наиболее важная микросхема памяти. Ни в одном процессоре ее объем не превышает нескольких десятков килобайт. Работает она без каких-либо задержек. В ней содержатся данные, которые чаще всего используются процессором.

Количество микросхем памяти L1 в процессоре, как правило, равно количеству его ядер. Каждое ядро имеет доступ только к своей микросхеме L1.

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

Кэш-память третьего уровня (L3) – еще более объемная, но и более медленная схема памяти. Тем не менее, она значительно быстрее оперативной памяти. Ее размер может достигать нескольких десятков мегабайт. В отличие от L1 и L2, она является общей для всех ядер процессора.

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

Встречаются также процессоры с двухуровневой кэш-памятью. В них L2 совмещает в себе функции L2 и L3.

Влияние кэш-памяти процессора на быстродействие компьютера

При выполнении запроса на предоставление данных ядру, контроллер памяти ищет их сначала в кэше первого уровня, затем — в кэше второго и третьего уровней.

По статистике, кэш-память первого уровня любого современного процессора обеспечивает до 90 % кэш-попаданий. Второй и третий уровни — еще 90% от того, что осталось. И только около 1 % всех запросов процессора заканчиваются кэш-промахами.

Указанные показатели касаются простых задач. С повышением нагрузки на процессор число кэш-промахов увеличивается.

Эффективность кэш-памяти процессора сводит к минимуму влияние скорости оперативной памяти на быстродействие компьютера. Например, компьютер одинаково хорошо будет работать с оперативной памятью 1066 МГц и 2400 МГц. При прочих равных условиях разница производительности в большинстве приложений не превысит 5%.

Читайте также:  Браузер с поддержкой activex

Пытаясь оценить эффективность кэш-памяти, пользователи чаще всего ищут ответы на следующие вопросы:

Какая структура кэш-памяти лучше: двух- или трехуровневая?

Трехуровневая кэш-память более эффективна.

Чтобы определить, как сильно L3 влияет на работу процессора, сайтом Tom’s Hardware был проведен эксперимент. Заключался он в замере производительности процессоров Athlon II X4 и Phenom II X4. Оба процессора оснащены одинаковыми ядрами. Первый отличается от второго лишь отсутствием кэш-памяти L3 и более низкой тактовой частотой.

Приведя частоты обеих процессоров к одинаковому показателю, было установлено, что наличие кэш-памяти L3 повышает производительность процессора Phenom на 5,8 %. Но это средний показатель. В одних приложениях он был почти равен нулю (офисные программы), в других – достигал 8% и даже больше (компьютерные 3D игры, архиваторы и др.).

Как влияет размер кэша на производительность процессора?

Оценивая размер кэш-памяти, нужно учитывать характеристики процессора и круг решаемых им задач.

Кэш-память двуядерного процессора редко превышает 3 MB. Тем более, если его тактовая частота ниже 3 Ггц. Производители прекрасно понимают, что дальнейшее увеличение размера кэша такого процессора не принесет прироста производительности, зато существенно повысит его стоимость.

Другое дело высокочастотные 4-, 6- или даже 8-миядерные процессоры. Некоторые из них (например, Intel Core i7) поддерживают технологию Hyper Threading, обеспечивающую одновременное выполнение каждым ядром двух задач. Естественно, что потенциал таких процессоров не может быть раскрыт с маленьким кэшем. Поэтому его увеличение до 15 или даже 20 MB вполне оправдано.

В процессорах Intel алгоритм наполнения кэш-памяти построен по так называемой инклюзивной схеме, когда содержимое кэшей верхнего уровня (L1, L2) полностью или частично дублируется в кэше нижнего уровня (L3). Это в определенной степени уменьшает полезный объем его пространства. С другой стороны, инклюзивная схема позитивно сказывается на взаимодействии ядер процессора между собой.

В целом же, эксперименты свидетельствуют, что в среднестатистическом "домашнем" процессоре влияние размера кэша на производительность находится в пределах 10 %, и его вполне можно компенсировать, например, высокой частотой.

Эффект от большого кэша наиболее ощутим при использовании архиваторов, в 3D играх, во время кодирования видео. В "не тяжелых" же приложениях разница стремится к нулю (офисные программы, интернет-серфинг, работа с фотографиями, прослушивание музыки и др.).

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

Особенно актуально это для серверов с высокой посещаемостью. В некоторых высоконагружаемых серверах и суперкомпьютерах предусмотрена даже установка кэш-памяти четвертого уровня (L4). Изготавливается она в виде отдельных микросхем, подключаемых к материнской плате.

Как узнать размер кэш-памяти процессора?

Существуют специальные программы, предоставляющие подробную информацию о процессоре компьютера, в том числе и о его кэш-памяти. Одной из них является программа CPU-Z.

Программа не требует установки. После ее запуска нужно перейти на вкладку "Caches" (см. изображение).

На примере видно, что проверяемый процессор оснащен трехуровневой кэш-памятью. Размер кэша L3 у него составляет 3 MB, L2 – 512 KB (256×2), L1 – 128 KB (32×2+32×2).

Можно ли как-то увеличить кэш-память процессора?

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

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

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

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

Точно так же из оперативки можно отобрать именно те данные, которые нужны ЦП для решения приоритетных задач. Именно их стоит разместить в непосредственной близости к процессору, и для этого в его микросхеме выделено специальное место – SRAM­­, обеспечивающее максимально высокую скорость считывания. Это и есть кэш память процессора.

Собственная память процессора

Только что мы отследили иерархию носителей информации с разным уровнем приоритетности: от HDD к ОЗУ, и далее к SRAM. Но внутри cash процессора существует свое разделение, выполненное по аналогичному принципу: более востребованные данные располагаются в секторе меньшего объема, но с большей скоростью считывания.

В самом теле процессора встроен кэш первого (начального уровня), обозначаемый L1 и имеющий объем несколько Кбайт. Обычно он состоит из нескольких блоков, каждый из которых обслуживает отдельное ядро процессора. Далее идет более вместительный кэш второго уровня L2 с меньшей скоростью записи-считывания, который может состоять из одного или нескольких блоков. В современных процессорах имеется и кэш уровня L3 и даже L4.

Последний используется в специальных моделях, предназначенных для работы в мощных серверах. В процессоре вашего ПК так же имеется кэш память. И я подскажу, где посмотреть размер L1, L2 или L3 (если таковая присутствует).

Первый способ – в интернете, по точному названию вашего процессора, которое отображается в свойствах «Моего компьютера».

Второй вариант – загрузить одну из полезных программ CPU-Z или AIDA64 и там среди прочей информации о ЦП вы найдете сведения об уровнях и размерах cash.

Читайте также:  Телефон начал выключаться сам по себе

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

  • для обработки машинного кода – кэш инструкций;
  • для считывания и записи информации – кэш данных;
  • буфер ассоциативной трансляции (TLB) – для перевода логических адресов в физические (при работе с кодом и данными).

Схемы записи информации в кэш

Многоуровневая структура памяти процессора обуславливает принцип работы работы с кэшем. Но все-таки первым, к кому обращается ЦП, является реестр. Если нужной информации там не обнаружено, то в зону поиска включается L1.

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

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

  • при отсутствии нужных тегов в L1 поиск продолжается в L2, далее, при неудачной попытке, в L3;
  • если и там не обнаружено данных с нужным тегом, то ЦПУ уже обращается к RAM. Последней «инстанцией», где можно найти всю используемую информацию, является жесткий диск.

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

Политика записи

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

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

Алгоритмы замещения

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

  • Least Recently Used (LRU) – убирают то, что дольше всего было невостребованным;
  • Least Frequently Used (LFU) – замещают, информацию которую использовали реже остальной;
  • Most Recently Used (MRU) – вытесняют буфер, используемый последним;
  • Adaptive Replacement Cache (ARC) – совмещение LRU и LFU алгоритмов;

Польза от кэша процессора

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

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

Всем доброго времени суток. Сегодня мы постараемся растолковать вам такое понятие как кэш. Кэш память процессора – это сверхбыстрый массив обработки данных, скорость которого превышает показатели стандартной ОЗУ раз так в 16–17, если речь идет о DDR4.

p, blockquote 1,0,0,0,0 —>

Именно объем кэш-памяти позволяет ЦП работать на предельных скоростях, не дожидаясь, пока оперативная память обработает какие-либо данные и не отправит результаты готовых вычислений чипу для дальнейшей их обработки. Аналогичный принцип прослеживается в HDD, только там используется буфер на 8–128 МБ. Другое дело, что скорости гораздо ниже, но процесс работы аналогичен.

p, blockquote 2,0,0,0,0 —>

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

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

p, blockquote 3,0,0,0,0 —>

Результаты вычислений снова отправляются в ОЗУ, но уже в гораздо меньшем количестве (вместо тысячи значений на выходе получаем куда меньше), а на обработку берется новый массив. И так до тех пор, пока работа не будет сделана.

p, blockquote 4,0,0,0,0 —>

Скорость работы определяется эффективностью оперативной памяти. Но ни один современный модуль DDR4, включая оверклокерские решения с частотами под 4000 МГц, и рядом не стоял с возможностями самого чахлого процессора с его «медленным» КЭШем.

Все потому, что скорость работы ЦП превышает показатели работы ОЗУ в среднем раз в 15, а то и выше. И не смотрите только на параметры частоты, помимо них отличий хватает.В теории получается, что даже сверхмощные Intel Xeon и AMD Epyc вынуждены простаивать, но по факту оба серверных чипа работают на пределе возможностей. А все потому, что они набирают необходимое количество данных по величине кэша (вплоть до 60 и более МБ) и моментально обрабатывают данные. ОЗУ служит в качестве некоего склада, откуда черпаются массивы для вычислений. Эффективность вычислений компьютера возрастает и все довольны.

Читайте также:  102000 Почтовое отделение где находится

p, blockquote 6,0,0,0,0 —>

Краткий экскурс в историю

Первые упоминания о кэш-памяти датированы концом 80‑х годов. До этого времени скорость работы процессора и памяти были приблизительно одинаковой. Стремительное развитие чипов требовало придумать какой-нибудь «костыль», чтобы повысить уровень быстродействия ОЗУ, однако использовать сверхбыстрые чипы было очень затратно, а потому решились обойтись более экономичным вариантом – внедрением скоростного массива памяти в ЦП.

p, blockquote 7,0,0,0,0 —>

Впервые модуль кэш-памяти появился в Intel 80386. В то время задержки при работе DRAM колебались в пределах 120 наносекунд, в то время как более современный модуль SRAM сокращал время задержек до внушительных по тем временам 10 наносекунд. Примерная картина более наглядно продемонстрирована в противостоянии HDD против SSD.

p, blockquote 8,0,0,0,0 —>

Изначально кэш-память распаивалась прямиком на материнских платах, ввиду уровня техпроцесса того времени. Начиная с Intel 80486 8 кб памяти было внедрено непосредственно в кристалл процессора, что дополнительно увеличивало производительность и снижало площадь кристалла.

p, blockquote 9,0,0,0,0 —>

Данная технология расположения оставалась актуальной лишь до выхода Pentium MMX, после чего SRAM-память была заменена более прогрессивной SDRAM. Да и процессоры стали гораздо меньше, а потому надобность во внешних схемах отпала.

p, blockquote 10,1,0,0,0 —>

Уровни кэш-памяти

На маркировке современных ЦП, помимо тактовой частоты и количества потоков, можно встретить такое понятие как размер кэша 1,2 и 3 уровней. Как он определяется и на что влияет? Давайте разбираться простым языком.

p, blockquote 11,0,0,0,0 —>

  • Кэш первого уровня (L1) – самая важная и быстрая микросхема в архитектуре ЦП. Один процессор может вместить количество модулей, равных числу ядер. Примечательно, что микросхема может хранить в памяти самые востребованные и важные данные только со своего ядра. Объем массива зачастую ограничен показателем в 32–64 КБ.
  • Кэш второго уровня (L2) – падение скорости компенсируется увеличением объема буфера, который доходит до 256, а то и 512 КБ. Принцип действия такой же, как и у L1, а вот частота запроса к памяти ниже, ввиду хранения в ней менее приоритетных данных.
  • Кэш третьего уровня (L3) – самый медленный и объемный раздел среди всех перечисленных. И все равно этот массив гораздо быстрее оперативной памяти. Размер может достигать 20, и даже 60 МБ, если речь касается серверных чипов. Польза от массива огромна: он является ключевым звеном обмена данными между всеми ядрами системы. Без L3 все элементы чипа были бы разрознены.

В продаже можно встретить как двух- так и трехуровневую структуру памяти. Какая из них лучше? Если вы используете процессор лишь для офисных программ и казуальных игр, то никакой разницы не почувствуете. Если же система собирается с прицелом под сложные 3D-игры, архивацию, рендеринг и работу с графикой, то прирост в некоторых случаях будет колебаться от 5 до 10%.Кэш третьего уровня оправдан лишь в том случае, если вы намерены регулярно работать с многопоточными приложениями, требующими регулярные сложные расчеты. По этой причине в серверных моделях нередко используют кэш L3 больших объемов. Хотя бывают случаи, что и этого не хватает, а потому приходится дополнительно ставить так называемые модули L4, которые выглядят как отдельная микросхема, подключаемая к материнской плате.

p, blockquote 12,0,0,0,0 —>

Как узнать количество уровней и размер кэша на своем процессоре?

Начнем с того, что сделать это можно 3 способами:

p, blockquote 13,0,0,0,0 —>

  • через командную строку (только кэш L2 и L3);
  • путем поиска спецификаций в интернете;
  • с помощью сторонних утилит.

Если взять за основу тот факт, что у большинства процессоров L1 составляет 32 КБ, а L2 и L3 могут колебаться в широких пределах, последние 2 значения нам и нужны. Для их поиска открываем командную строку через «Пуск» (вводим значение «cmd» через строку поиска).

p, blockquote 14,0,0,0,0 —>

Далее необходимо прописать значение «wmic cpu get L2CacheSize, L3CacheSize».

p, blockquote 15,0,0,1,0 —>

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

p, blockquote 16,0,0,0,0 —>

Если вы собрались искать данные в сети, то для начала узнайте точное имя ЦП. Нажмите правой кнопкой по иконке «Мой компьютер» и выберите пункт «Свойства». В графе «Система» будет пункт «Процессор», который нам, собственно, нужен. Переписываете его название в тот же Google или Yandex и смотрите значение на сайтах. Для достоверной информации лучше выбирать официальные порталы производителя (Intel или AMD).Третий способ также не вызывает проблем, но требует установки дополнительного софта вроде GPU‑Z, AIDA64 и прочих утилит для изучения спецификаций камня. Вариант для любителей разгона и копошения в деталях.

p, blockquote 17,0,0,0,0 —>

Итоги

Теперь вы понимаете, что такое кэш-память, от чего зависит ее объем, и для каких целей используется сверхбыстрый массив данных. На данный момент наиболее интересными решениями на рынке в плане большого объема кэш-памяти, можно назвать устройства AMD Ryzen 5 и 7 с их 16 МБ L3.

p, blockquote 18,0,0,0,0 —>

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

p, blockquote 19,0,0,0,0 —>

p, blockquote 20,0,0,0,0 —> p, blockquote 21,0,0,0,1 —>

Ссылка на основную публикацию
Что такое видеопамять компьютера
Всё о Интернете, сетях, компьютерах, Windows, iOS и Android Видеопамять компьютера и объём памяти видеокарты VRAM Если открыть форум какой-нибудь...
Что значит else в паскале
Следует быть внимательными при использовании вложенных операторов if. Предпочтительнее пользоваться схемой else-if (т.е. вкладывать во внешнюю ветку else), а не...
Что значит в магазинах айфон как новый
Нас часто спрашивают, как определить состояние iPhone. Особенно актуально это при покупке смартфона на вторичном рынке, где чуть ли не...
Что такое вулкан рт на ноутбуке
Vulkan Run Time Libraries — кроссплатформенный API для работы с 2D и 3D графикой и повышения производительности графического процессора. Разработана...
Adblock detector