Для чего процессору нужна кэш память

В нашем обзоре мы разберем что такое кеш процессора, почему он так важен и как он может иметь огромное значение, если вы играете.

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

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

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

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

AMD Ryzen 7 5800X3D chip.

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

Кэш был решением. Хотя объем кэш-памяти невелик по сравнению с оперативной памятью, его высокая скорость компенсирует это в большинстве случаев. Однако кэш не идеален. Его главная слабость — размер; кеш физически велик для того, как мало он может хранить. Кэш также устойчив к уменьшению узлов, поэтому, хотя ядра и другие компоненты ЦП могут довольно легко уменьшаться от одного поколения к другому, кеш уменьшается гораздо меньше. Это делает кеш очень дорогим компонентом ЦП, что является одной из основных причин, по которой кеш обычно имеет такой небольшой объем памяти.

Как работает кеш?

Массовое внедрение кеша привело к более тонким реализациям кеша и ОЗУ, пока мы не пришли к иерархии памяти, с кешем наверху, ОЗУ посередине и хранилищем внизу. Этот многоуровневый подход позволяет физически размещать важные данные для ЦП ближе к процессору, уменьшая задержку и помогая вашему ПК работать быстро.

The modern memory hierarchy.

Современная иерархия памяти.

Кэш имеет свою собственную иерархию или уровни кэша, которые разделены на кэш L1, L2 и L3. Это все виды кеша, но они выполняют немного разные функции.

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

Тип данных, хранящихся в кеше L1, — это то, что ЦП только что использовал или ожидает использовать в ближайшее время. Если процессору нужны данные, которых нет в кеше L1, он переходит на следующий уровень: L2.

Как и кеш L1, кеш L2 часто предназначен только для одного ядра ЦП, но в некоторых ЦП он распределяется между несколькими ядрами. Это также намного, намного больше; например, каждое P-ядро в Core i9-12900K имеет 80 килобайт кэш-памяти L1, а также 1,25 мегабайта кэш-памяти L2, что почти в 16 раз больше.

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

Кэш L3 имеет большое значение: он распределяется между некоторыми или всеми ядрами процессора, и он большой. Например, 12900K имеет 30 МБ кэш-памяти L3, что в 24 раза превышает объем кэш-памяти L2. Задержка кеша L3 даже хуже, чем L2, но наличие большого кеша L3 действительно важно, чтобы процессору не приходилось запрашивать необходимые данные в ОЗУ.

За исключением хранилища, ОЗУ имеет наихудшую скорость и задержку в иерархии памяти, и всякий раз, когда ЦП требуется доступ к ОЗУ для необходимых данных, все останавливается. В идеале все важное должно храниться как минимум в кеше L3, чтобы предотвратить серьезное замедление.

Некоторые ЦП даже имеют кэш-память L4, но обычно она работает как ОЗУ, находящееся в пакете ЦП. Некоторые из первых 14-нм процессоров Intel, основанных на архитектуре Broadwell, включали 128 МБ встроенной DRAM, а будущие серверные процессоры Sapphire Rapids компании могут поставляться с HBM2, который используется как дополнительный уровень кэш-памяти.

Кэш процессора имеет значение для игр?

Кэш ЦП имеет большое значение для игр. Хотя однопоточная производительность, количество инструкций за такт (IPC) и тактовая частота традиционно считаются наиболее важными факторами игровой производительности, стало совершенно ясно, что кэш, вероятно, является наиболее важным фактором в соперничестве между AMD и AMD. Интел.

Кэш так важен для игр из-за того, как игры разрабатываются сегодня. В современных играх много случайности, а это значит, что центральному процессору постоянно нужно выполнять простые инструкции. Без достаточного количества кеша ваша видеокарта вынуждена ждать вашего процессора, поскольку инструкции накапливаются и создают узкое место. Вы можете увидеть пример того, насколько велика разница с технологией AMD 3D V-Cache в Far Cry 6 ниже.

В последние годы мы наблюдаем тенденцию к увеличению объема кеша для игр. Процессоры AMD Ryzen 3000 имели в два раза больше кэш-памяти L3, чем предыдущее поколение, и были намного быстрее в играх, почти догоняя Intel.

Когда Ryzen 5000 был запущен, AMD не добавила больше кеша, но объединила два блока кеша L3 внутри ЦП, что значительно уменьшило задержку и вывело AMD в лидеры по производительности в играх. AMD удвоила свою технологию 3D V-Cache на Ryzen 7 5800X3D, в которой 64-мегабайтная микросхема кэш-памяти L3 размещается поверх ЦП, что в сумме составляет 96 МБ, что больше, чем даже у флагмана Ryzen 9 5950X.

Intel догоняет AMD, и ее процессоры Alder Lake текущего поколения имеют до 30 МБ кэш-памяти L3, что значительно меньше, чем у большинства процессоров Ryzen, но они также имеют намного больше кэш-памяти L1 и L2. Однако недостаток емкости L3 у Intel не означает, что процессоры Ryzen 5000 намного быстрее для игр.

Гонка за кеш почти наверняка продолжится с грядущими процессорами Ryzen 7000 и Raptor Lake. Подтверждено, что у Ryzen 7000 в два раза больше кэша L2, чем у Ryzen 5000, и мы, вероятно, увидим больше процессоров, использующих V-Cache. Между тем, у Intel нет собственной версии V-Cache, но, по слухам, у Raptor Lake намного больше кэша L3, чем у Alder Lake, только в самом процессоре.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *