Что такое кеш и зачем он нужен процессорам, графическим процессорам и другим типам процессоров? Вот все, что вам нужно знать.
Быстрые ссылки
- Кэш: Небольшой объем высокоскоростной памяти
- Уровни кэша и иерархия памяти
- Кэш необходим, но сам по себе не повышает производительность.
Хотя о кэше говорят не так много, как о ядрах, БАРАН (Оперативная память) или видеопамять, вы, наверное, слышали об этом раньше, особенно недавно. AMD с гордостью рекламирует игровую производительность Процессоры Ryzen с 3D V-Cache в результате использования кеша, и одним из самых больших улучшений Intel с процессорами Raptor Lake 13-го поколения стало добавление большего объема кеша.
Но как кэш может повысить производительность, если он измеряется мегабайтами? Даже самые дешевые комплекты оперативной памяти в наши дни поставляются с 16 ГБ, так как же добавление всего нескольких дополнительных мегабайт кэш-памяти может так сильно повлиять на производительность? Ну, кеш - это не ваш обычный тип памяти.
Кэш: Небольшой объем высокоскоростной памяти
Источник: AMD
Кэш на самом деле является довольно недавней разработкой процессоров, относящейся к 1990-м годам, и он был изобретен из-за оперативной памяти. Оперативная память является ключевым компонентом компьютеров, в котором хранится значительный объем данных, которые, как ожидается, довольно часто требуются процессорам (таким как центральные и графические процессоры). Долгое время повышение производительности ОЗУ шло в ногу с повышением производительности ЦП, но к 1990-м годам оно стало очевидно, что оперативная память не сможет идти в ногу с последними процессорами. Оперативной памяти было много, но скорость передачи была слишком медленный.
Здесь на помощь приходит кеш. Он не так велик, как ОЗУ, ни физически, ни по объему, но он находится внутри самого процессора и может передавать данные очень быстро и с очень низкой задержкой. Пока кеш хранит данные, которые действительно нужны процессору, это может сэкономить время, потому что запрос ОЗУ для тех же данных во много раз медленнее. Это было отличным решением проблемы с оперативной памятью и позволило разработчикам ЦП продолжать создавать более быстрые ЦП и Разработчики оперативной памяти, чтобы продолжать увеличивать объемы оперативной памяти, не беспокоясь о производительность. Сегодня кеш есть практически во всех типах процессоров.
Вы можете задаться вопросом, почему кеш такой маленький. Ну, это в основном связано с пространством и деньгами. Даже 32 МБ кэш-памяти могут занимать довольно много места на процессоре, а общая площадь современных чипов ограничена примерно 600 мм2, что необходимо использовать с умом. Это означает, что выделение большей площади для кэширования может обойтись довольно дорого. эта ситуация на самом деле ухудшается, а не улучшается. Последние производственные процессы приводят к все меньшим и меньшим улучшениям плотности кэш-памяти, а TSMC вообще не удалось уменьшить размер кэш-памяти в первой итерации своего 3-нм процесса.
Уровни кэша и иерархия памяти
Источник: Карлос Карвалью
Изобретение кэша означало, что для всех устройств хранения данных в компьютере появился новый слой. Эти слои образуют так называемую иерархию памяти, которую вы можете видеть на изображении выше, и в ней подробно какая память и где находится в типичной системе внутри ЦП (хотя другие типы процессоров будут выглядеть очень похожий). Сегодня современная иерархия памяти включает не только кеш, ОЗУ и устройства постоянного хранения, но и иерархию памяти внутри самого кеша.
Большинство процессоров имеют разные уровни кэш-памяти для различных целей. Первый и наименьший уровень кэш-памяти — это L1, которому выделяются отдельные ядра для обработки данных, которые необходимы немедленно. Кэш L1 часто измеряется в килобайтах: последние процессоры Ryzen 7000 имеют 64 КБ кэша L1 на ядро. Кроме того, современный кэш L1 часто делится на L1I (для инструкций) и L1D (для данных).
Далее идет L2, который предназначен для группы ядер, а не для отдельных. Естественно, кэш-память L2 больше, чем кэш-память L1, часто на порядок, но из-за того, что он намного больше и должен обслуживать больше ядер, он работает медленнее и имеет более высокую задержку. Некоторые процессоры, особенно графические процессоры и более медленные процессоры, будут работать только с кэшем L2.
Следующим шагом является L3, который обычно используется всеми ядрами чипа. Его размер может варьироваться от в несколько раз больше, чем кэш L2, до более чем на порядок больше, в зависимости от процессора. Это означает, что он даже медленнее, чем кэш L2, но все же превосходит оперативную память. Кроме того, кеш L3 также часто действует как «кеш жертвы», куда попадают данные, вытесненные из кешей L1 и L2. Он может быть удален из кеша L3, если он не нужен. Сегодня кэш L3 особенно важен для AMD из-за технологии чипсетов. Чипы Ryzen 3D V-Cache содержат 64 МБ кэш-памяти L3, а матрицы кэш-памяти RX 7000 (или MCD) содержат по 16 МБ кэш-памяти L3 каждая.
Самый высокий уровень кэш-памяти, наблюдаемый на большинстве процессоров, — это L4, который часто настолько велик, что фактически является оперативной памятью. На самом деле последними процессорами, использующими кэш-память L4, являются чипы Intel Sapphire Rapids Xeon, которые используют HBM2 в качестве кэш-памяти L4 на топовых моделях. AMD, с другой стороны, никогда не использовала кэш-память L4 и вместо этого довольствуется увеличением своей кэш-памяти L3 до высокой емкости, добавляя больше процессоров и микросхем V-Cache. Кэш L4, как правило, приносит больше пользы интегрированным графическим процессорам, поскольку это встроенное решение, которое может обмениваться данными между ЦП и интегрированным графическим процессором.
В некоторых чипсетах, в первую очередь мобильных, есть еще один тип кэша: кэш системного уровня (SLC). Затем этот кеш используется во всем наборе микросхем, например, в графическом процессоре, NPU и ЦП. Кэш может заменить потребность в запросах к основной памяти, поэтому SLC приносит пользу всей SoC.
Кэш необходим, но сам по себе не повышает производительность.
Несмотря на всю шумиху вокруг недавних инноваций в кэше, это не серебряная пуля для повышения производительности. В конце концов, в кеше нет возможности обработки; он просто хранит данные, и все. Хотя каждый процессор может извлечь выгоду из большего объема кэш-памяти, часто слишком дорого добавлять больше, чем требуется. Добавление большего объема кеша может даже не улучшить производительность в зависимости от рабочей нагрузки, что является дополнительным стимулом не перегружать процессор.
При этом возможность добавления большого объема кеша может быть желательной в определенных ситуациях. Например, процессоры с большим объемом кеша лучше работают в играх. Процессоры AMD Ryzen с 3D V-Cache довольно быстры для игр, несмотря на более низкую частоту, чем процессоры без V-Cache. ЦП Intel 13-го поколения значительно быстрее, чем чипы 12-го поколения, и единственным существенным улучшением является увеличенный кеш.
В конечном счете, кеш-память существует для того, чтобы процессоры могли как можно чаще обходить оперативную память, а производительность была настолько неограниченной, насколько это возможно. Разработчики ЦП должны сбалансировать емкость кэш-памяти с размером и, соответственно, стоимостью, что становится все труднее с каждым поколением новых производственных процессов. Несмотря на то, что новые способы добавления кэш-памяти в процессоры внедряются спустя десятилетия после изобретения кэш-памяти, трудно представить, что назначение этого ключевого компонента процессоров когда-либо изменится.