Найти в Дзене
Mizhgunit

Зачем процессорам AMD так много кэша?

Гейтс говорил, что 640 килобайт хватит всем. Такого объема было достаточно, чтобы отправить человека в космос (даже сейчас у космических аппаратов, точнее, их бортовых компьютеров, довольно скромный объем оперативной памяти). Третьи "Герои" требуют 32 мегабайта ОЗУ для запуска, а в минимальных требованиях Windows Xp стоит цифра в 64 мегабайта. Все вышеперечисленное, с хорошим запасом, помещается в объем кэша современного процессора от AMD с припиской X3D, но вопрос - а нужно ли процессорам столько кэша? И вообще, что это за "кэш" такой, что на него можно купить и кому он нужен? Давайте с базы. Процессор - штука, которая получает какие-то вводные (например, перемещение мыши), обрабатывает их, после чего выдает результат и компьютер перемещает указатель мыши на определенное значение. Всех, кто любит придираться к супер-простым объяснениям, приветствую в комментариях. Но вот откуда процессору взять вводные? Очевидно, из памяти, которая оперативная. Раньше, пока скорости процессоров были н
Оглавление

Гейтс говорил, что 640 килобайт хватит всем. Такого объема было достаточно, чтобы отправить человека в космос (даже сейчас у космических аппаратов, точнее, их бортовых компьютеров, довольно скромный объем оперативной памяти). Третьи "Герои" требуют 32 мегабайта ОЗУ для запуска, а в минимальных требованиях Windows Xp стоит цифра в 64 мегабайта.

Все вышеперечисленное, с хорошим запасом, помещается в объем кэша современного процессора от AMD с припиской X3D, но вопрос - а нужно ли процессорам столько кэша? И вообще, что это за "кэш" такой, что на него можно купить и кому он нужен?

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

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

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

Для чего он нужен?

Для чего нужна память? Для хранения данных, конечно! Но кэш-память нужна не только для хранения, но и для обеспечения очень быстрого доступа к этим данным. Условно говоря, если бы у современных процессоров не было кэша, какой-нибудь новый i9 или Ryzen 9, был бы сопоставим по производительности с Pentium 4, просто потому что бОльшую часть времени, он бы ждал подгрузки данных из медленной оперативной памяти.

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

А почему уровней кэша всего три? Как я уже говорил, данные помещаются в кэш, в зависимости от того, как скоро они понадобятся процессору для продолжения выполнения кода. Раньше уровней было два, и этого было мало, потом придумали третий уровень, самый объемный - и стало хорошо. Intel в 2015 году попробовала сделать L4, но смысла от него практически не было, так что производители так и продолжили делать трехуровневый кэш.
-2

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

Поучается, больше = лучше?

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

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

-3

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

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

Так зачем AMD так много кэша?

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

-4

Дело в том, что в процессорах серии X3D, часть кэша представляет собой отдельный кристалл - в основном просто не было столько места, чтобы его туда поместить, но вот кристалл этот буквально лежит на кристалле с ядрами, которые греются. Чтобы они грелись меньше, нужно снижать им напряжение, следовательно, падает и частота. Теперь вспомним, что у AMD очень толстая крышка, из-за которой кристалл и так перегревается...

Ладно, давайте подведем итог. Кэш-память процессора - параметр важный, но уж точно не первостепенный, причем выбирать процессор по объему кэша - это то же самое, что выбирать между HDD и SSD, исходя только из их объема. AMD пытаются таким образом сделать самый быстрый игровой процессор, и пока что, у них это получается, но у всего есть предел, и кэш 4-го уровня на процессорах Intel 5000-й серии это показал.

А сколько кэша в вашем процессоре?