Кэш-память процессора
Кэш-память играет важную роль. Без нее от высокой тактовой частоты процессора не было бы никакого проку. Кэш позволяет использовать в компьютере любую, даже самую «медленную» оперативную память, без ощутимого ущерба для его производительности.
О том, что такое кэш-память процессора, как она работает и какое влияние оказывает на быстродействие компьютера, читатель узнает из этой статьи.
Что такое кэш-память процессора
Решая любую задачу, процессор компьютера получает из оперативной памяти необходимые блоки информации. Обработав их, он записывает в память результаты вычислений и получает для обработки следующие блоки. Это продолжается, пока задача не будет выполнена.
Все упомянутые операции производятся на очень высокой скорости. Однако, даже самая быстрая оперативная память работает медленнее любого «неторопливого» процессора. Каждое считывание из нее информации и обратная ее запись отнимают много времени. В среднем, скорость работы оперативной памяти в 16 – 17 раз ниже скорости процессора.
Не смотря на такой дисбаланс, процессор не простаивает и не ожидает каждый раз, когда оперативная память «выдает» или «принимает» данные. Он почти всегда работает на максимальной скорости. И все благодаря наличию у него кэш-памяти.
Кэш-память процессора – это небольшая, но очень быстрая память. Она встроена в процессор и является своеобразным буфером, сглаживающим перебои в обмене данными с более медленной оперативной памятью. Кэш-память часто называют сверхоперативной памятью.
Кэш нужен не только для выравнивания дисбаланса скорости. Процессор обрабатывает данные более мелкими порциями, чем те, в которых они хранятся в оперативной памяти. Поэтому кэш-память играет еще и роль своеобразного места для «перепаковки» и временного хранения информации перед ее передачей процессору, а также возвращением результатов обработки в оперативную память.
Устройство кэш-памяти процессора
Система кэш-памяти процессора состоит из двух блоков — контроллера кэш-памяти и собственно самой кэш-памяти.
Контроллер кэш памяти
Контроллер кэш памяти – это устройство, управляющее содержанием кэша, получением необходимой информации из оперативной памяти, передачей ее процессору, а также возвращением в оперативную память результатов вычислений.
Когда ядро процессора обращается к контроллеру за какими-то данными, тот проверяет, есть ли эти данные в кэш-памяти. Если это так, ядру моментально отдается информация из кэша (происходит так называемое кэш-попадание).
В противном случае ядру приходится ожидать поступления данных из медленной оперативной памяти. Ситуация, когда в кэше не оказывается нужных данных, называется кэш-промахом.
Задача контроллера – сделать так, чтобы кэш-промахи происходили как можно реже, а в идеале – чтобы их не было вообще.
Размер кэша процессора по сравнению с размером оперативной памяти несоизмеримо мал. В нем может находиться лишь копия крошечной части данных, хранимых в оперативной памяти. Но, не смотря на это, контроллер допускает кэш-промахи не часто. Эффективность его работы определяется несколькими факторами:
• размером и структурой кэш-памяти (чем больше ресурсов имеет в своем распоряжении контроллер, тем ниже вероятность кэш-промаха);
• эффективностью алгоритмов, по которым контроллер определяет, какая именно информация понадобится процессору в следующий момент времени;
• сложностью и количеством задач, одновременно решаемых процессором. Чем сложнее задачи и чем их больше, тем чаще «ошибается» контроллер.
Кэш-память процессора
Кэш-память процессора изготавливают в виде микросхем статической памяти (англ. Static Random Access Memory, сокращенно — SRAM). По сравнению с другими типами памяти, статическая память обладает очень высокой скоростью работы.
Впервые кэш размером 8 KB был встроен в процессор Intel i486 в 1989 г.
Однако, эта скорость зависит также от объема конкретной микросхемы. Чем значительней объем микросхемы, тем сложнее обеспечить высокую скорость ее работы.
Учитывая указанную особенность, кэш-память процессора изготовляют в виде нескольких небольших блоков, называемых уровнями. В большинстве процессоров используется трехуровневая система кэша:
• Кэш-память первого уровня или L1 (от англ. Level — уровень) – очень маленькая, но самая быстрая и наиболее важная микросхема памяти. Ни в одном процессоре ее объем не превышает нескольких десятков килобайт. Работает она без каких-либо задержек. В ней содержатся данные, которые чаще всего используются процессором.
Количество микросхем памяти L1 в процессоре, как правило, равно количеству его ядер. Каждое ядро имеет доступ только к своей микросхеме L1.
• Кэш-память второго уровня (L2) немного медленнее кэш-памяти L1, но и объем ее более существенный (несколько сотен килобайт). Служит она для временного хранения важной информации, вероятность запроса которой ниже, чем у информации, находящейся в L1.
• Кэш-память третьего уровня (L3) – еще более объемная, но и более медленная схема памяти. Тем не менее, она значительно быстрее оперативной памяти. Ее размер может достигать нескольких десятков мегабайт. В отличие от L1 и L2, она является общей для всех ядер процессора.
Уровень L3 служит для временного хранения важных данных с относительно низкой вероятностью запроса, а также для обеспечения взаимодействия ядер процессора между собой.
Встречаются также процессоры с двухуровневой кэш-памятью. В них L2 совмещает в себе функции L2 и L3.
Влияние кэш-памяти процессора на быстродействие компьютера
При выполнении запроса на предоставление данных ядру, контроллер памяти ищет их сначала в кэше первого уровня, затем — в кэше второго и третьего уровней.
По статистике, кэш-память первого уровня любого современного процессора обеспечивает до 90 % кэш-попаданий. Второй и третий уровни — еще 90% от того, что осталось. И только около 1 % всех запросов процессора заканчиваются кэш-промахами.
Указанные показатели касаются простых задач. С повышением нагрузки на процессор число кэш-промахов увеличивается.
Эффективность кэш-памяти процессора сводит к минимуму влияние скорости оперативной памяти на быстродействие компьютера. Например, компьютер одинаково хорошо будет работать с оперативной памятью 1066 МГц и 2400 МГц. При прочих равных условиях разница производительности в большинстве приложений не превысит 5%.
Пытаясь оценить эффективность кэш-памяти, пользователи чаще всего ищут ответы на следующие вопросы:
Какая структура кэш-памяти лучше: двух- или трехуровневая?
Трехуровневая кэш-память более эффективна.
Чтобы определить, как сильно 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). Это в определенной степени уменьшает полезный объем его пространства. С другой стороны, инклюзивная схема позитивно сказывается на взаимодействии ядер процессора между собой.
Объем внутренней кэш-памяти некоторых моделей серверных процессоров Intel Xeon
составляет 37,5 MB
В целом же, эксперименты свидетельствуют, что в среднестатистическом «домашнем» процессоре влияние размера кэша на производительность находится в пределах 10 %, и его вполне можно компенсировать, например, высокой частотой.
Эффект от большого кэша наиболее ощутим при использовании архиваторов, в 3D играх, во время кодирования видео. В «не тяжелых» же приложениях разница стремится к нулю (офисные программы, интернет-серфинг, работа с фотографиями, прослушивание музыки и др.).
Многоядерные процессоры с большим кэшем необходимы на компьютерах, предназначенных для выполнения многопоточных приложений, одновременного решения нескольких сложных задач.
Особенно актуально это для серверов с высокой посещаемостью. В некоторых высоконагружаемых серверах и суперкомпьютерах предусмотрена даже установка кэш-памяти четвертого уровня (L4). Изготавливается она в виде отдельных микросхем, подключаемых к материнской плате.
Как узнать размер кэш-памяти процессора?
Существуют специальные программы, предоставляющие подробную информацию о процессоре компьютера, в том числе и о его кэш-памяти. Одной из них является программа CPU-Z.
Программа не требует установки. После ее запуска нужно перейти на вкладку «Caches» (см. изображение).
На примере видно, что проверяемый процессор оснащен трехуровневой кэш-памятью. Размер кэша L3 у него составляет 3 MB, L2 – 512 KB (256×2), L1 – 128 KB (32×2+32×2).
Можно ли как-то увеличить кэш-память процессора?
Как уже было сказано в одном из предыдущих пунктов, возможность увеличения кэш-памяти процессора предусмотрена в некоторых серверах и суперкомпьютерах, путем ее подключения к материнской плате.
В домашних же или офисных компьютерах такая возможность отсутствует. Кэш-память является внутренней неотъемлемой частью процессора, имеет очень маленькие физические размеры и не подлежит замене. А на обычных материнских платах нет разъемов для подключения дополнительной кэш-памяти.
ПОДЕЛИТЬСЯ:
НАПИСАТЬ АВТОРУ
Похожие материалы
Таблица совместимости процессоров и материнских плат AMD
Одной из особенностей компьютеров на базе процессоров AMD, которой они выгодно отличаются от платформ Intel, является высокий уровень совместимости процессоров и материнских плат. У владельцев относительно не старых настольных систем на базе AMD есть высокие шансы безболезненно «прокачать» компьютер путем простой замены процессора на «камень» из более новой линейки или же флагман из предыдущей.
Если вы принадлежите к их числу и задались вопросом «апгрейда», эта небольшая табличка вам в помощь.
Сравнение процессоров
В таблицу можно одновременно добавить до 6 процессоров, выбрав их из списка (кнопка «Добавить процессор»). Всего доступно больше 2,5 тыс. процессоров Intel и AMD.
Пользователю предоставляется возможность в удобной форме сравнивать производительность процессоров в синтетических тестах, количество ядер, частоту, структуру и объем кэша, поддерживаемые типы оперативной памяти, скорость шины, а также другие их характеристики.
Дополнительные рекомендации по использованию таблицы можно найти внизу страницы.
Спецификации процессоров
В этой базе собраны подробные характеристики процессоров Intel и AMD. Она содержит спецификации около 2,7 тысяч десктопных, мобильных и серверных процессоров, начиная с первых Пентиумов и Атлонов и заканчивая последними моделями.
Информация систематизирована в алфавитном порядке и будет полезна всем, кто интересуется компьютерной техникой.
Таблица процессоров
Таблица содержит информацию о почти 2 тыс. процессоров и будет весьма полезной людям, интересующимся компьютерным «железом». Положение каждого процессора в таблице определяется уровнем его быстродействия в синтетических тестах (расположены по убыванию).
Есть фильтр, отбирающий процессоры по производителю, модели, сокету, количеству ядер, наличию встроенного видеоядра и другим параметрам.
Для получения подробной информации о любом процессоре достаточно нажать на его название.
Технологии и инструкции, используемые в процессорах
Люди обычно оценивают процессор по количеству ядер, тактовой частоте, объему кэша и других показателях, редко обращая внимание на поддерживаемые им технологии.
Отдельные из этих технологий нужны только для решения специфических заданий и в «домашнем» компьютере вряд ли когда-нибудь понадобятся. Наличие же других является непременным условием работы программ, необходимых для повседневного использования.
Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.
Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.
Как проверить стабильность процессора
Проверка стабильности работы центрального процессора требуется не часто. Как правило, такая необходимость возникает при приобретении компьютера, разгоне процессора (оверлокинге), при возникновении сбоев в работе компьютера, а также в некоторых других случаях.
В статье описан порядок проверки процессора при помощи программы Prime95, которая, по мнению многих экспертов и оверлокеров, является лучшим средством для этих целей.
ПОКАЗАТЬ ЕЩЕ
Кэш-память процессора: функции, уровни, влияние на производительность
Производители процессоров любят щеголять большими объемами кэша L3, вот только то, почему этот параметр так важен, ясно далеко не всем пользователям. Если вы хотите разобраться, для чего нужна и как работает кэш-память процессора, что означают уровни L1, L2, L3, и как объем кэша влияет на быстродействие системы, то эта статья для вас.
2021-09-30 2022-04-05 Marvel market Кэш-память процессора: функции, уровни, влияние на производительность
Функция кэш памяти процессора
Известно, что процессор работает с данными, которые доставляются в него из оперативной памяти. Но в их взаимодействии есть одна серьёзная проблема: ОЗУ работает гораздо медленнее, чем CPU, что для последнего означает постоянные простои, в ожидании, пока из оперативной памяти придут нужные данные. Чтобы избежать простоев, в кристалл чипа интегрирована та самая кэш-память, играющая роль буфера между оперативной памятью и процессором. Кэш-память загружает и хранят в себе данные, с которым процессор работает в текущий момент, что избавляет от необходимости ждать эти данные из ОЗУ. Таким образом, кэш память процессора предназначена для того, чтобы сглаживать разницу в скорости работы между процессором и ОЗУ, чтобы вычисления производились как можно быстрее. Помимо выравнивания скорости, кэш еще и перепаковывает данные, чтобы процессору было проще их понимать, рассчитывать и возвращать обратно.
Устройство кэш памяти процессора
Чтобы понять, на что влияет кэш память процессора и как работает, необходимо сперва разобраться, как она устроена, что мы и сделаем. Общем и целом, система процессорного кэша состоит из двух важных составляющих: контроллера, который управляет движением данных, и самой кэш-памятью — где эти данных хранятся. Если говорить образно, то кэш-память — это склад, а контролер — погрузчик, который снует по помещению и подтаскивает поближе к процессору нужные ящики.
Контроллер кэш-памяти
Итак, первая составляющая блока — контроллер по управлению содержания кэша. Он регулярно проверяет, что пришло к процессору из ОЗУ, переварилось, и возвратилось обратно. Контроллеры зачастую установлены внутрь чипов, но еще не так давно находились на северном мосту (до AMD64 и Intel Nehalem соответственно). Когда одно из ядер обращается к контроллеру за информацией, последний проверяет ее наличие в кэше. Если есть — отдает (это называется «кэш-попадание»), если нет — ядро ожидает, пока медленная и неповоротливая улитка (оперативная память) доставит все необходимое. Эта ситуация зовется «кэш-промах». Основная задача контроллера заключается в том, чтобы минимизировать количество промахов, а то и вовсе свести к нулю, и потому он должен загружать кэш-память только важными данными по принципу «всегда под рукой». Другое дело, что для этого контроллер должен уметь «ванговать», т.е. предсказывать события, пользуясь для выбора загружаемых из ОЗУ данных так называемой «интеллектуальной стратегией кэширования», которая основана на анализе уже имеющихся ошибок. Проще говоря, следуя заложенным в него алгоритмам, контроллер рассчитывает, какие данные могут понадобиться процессору и грузит их заранее. Если он «угадал», то ставит себе галочку и запоминает опыт, как удачный. Если не угадал, то бракует такой опыт, и меняет логику выбора данных для предварительной загрузки. Современные контроллеры работают с возможностью глубокого самообучения и аналитики, что сильно снижает количество промахов. Чем дольше устройство работает в системе, тем лучше понимает требования пользователя и тем чаще выдает необходимый результат. Даже процессор понимает, что в случае неудачи его заменят. Точнее, это понимают производители процессоров.
Строение кэш-памяти
Что вообще представляет собой этот модуль? Это отдельная, но размещенная непосредственно на плате ЦПУ микросхема SRAM (Static Random Access Memory) с огромной скоростью работы. Столь высокий показатель объясняется тем, что DRAM (ОЗУ) использует для работы конденсаторы, а SRAM — транзисторы, что и обеспечивает прирост в 10 раз. Но и у SRAM-памяти есть свои особенности, которые ограничивают возможности ее использования. Проблема №1: транзисторная память требует гораздо больше места на кристалле, поэтому много ее не поставить. Если говорить числами, то 100 МБ SRAM = 4 ГБ DRAM в плане габаритов. А подложка процессора, увы, не резиновая. Проблема №2: чем больше объем SRAM, тем ниже скорость и выше задержки. Поэтому производители придумали хитрый способ обхода этой особенности, разделив весь кэш на несколько блоков разного размера, и назвав их «уровни» (Layers).
Уровни кэш памяти процессора
- L1 — самый быстрый и маленький;
- L2 — не такой шустрый, но больший в объеме;
- L3 — самый медленный, но его много.
На схеме четко показан принцип работы с информацией, которая передается от хранилища к оперативной памяти, а от нее к кеш-памяти L3-L2-L1, и так до самого процессора. Процедура обмена данными закольцована.
В самом кристалле ЦП размещены арифметическо-логические устройства (ALU), выполняющие все математические вычисления. А помогают в этом регистры, которые также представляют собой SRAM-память, но технически не относятся к кэшу.
Каждому регистру присвоено одно из 64-битных целых чисел, а в качестве значения может быть фрагмент данных, кусок кода, ссылка на другой регистр и не только. Но поскольку сам регистр не способен хранить в памяти хоть что-то (у него ее попросту нет), на помощь приходит кэш L1.
Кэш память 1 уровня
L1 — память первого уровня. Это крайне скромный по размерам, но очень быстрый вычислительный блок, который постоянно скармливает регистрам важнейшую информацию, не давая им простаивать. В нем скомпилированы данные, к которым ЦП обращается чаще всего. Образный пример — дамская сумочка, без которой девушек напрочь парализует. Или обилие карманов на куртке.
Количество микросхем L1 зачастую привязано к количеству ядер процессора, при этом у каждого ядра кэш свой собственный. Размер блока может варьироваться от 64-256 КБ у десктопов и ноутбуков до 1-2 МБ для серверных решений.
Сам L1 тоже имеет свое разделение. Он делится на кэш команд и кэш данных:
Первый содержит информацию об операции, которой занимается ЦП, проще говоря, отвечает на вопрос: «Что надо сделать»;
Второй хранит в себе данные, над которыми должны производиться вычисления.
Эдакие функция и его переменные, только воплощенные в кремнии.
Кэш память 2 уровня
L2 — память второго уровня. Как уже было сказано, она не такая шустрая, но это компенсируется повышенным объемом. Также привязана к ядру и не взаимодействует с остальными. Однако маркетологи любят писать какие-то заоблачные цифры L2, попросту суммируя показатели. Например, для AMD Ryzen 7 5800X размер кэша заявлен в 512 КБ на ядро, что не так красиво. Но если суммировать все 8 блоков — получим уже интересные 8 МБ. К слову, для AMD EPYC 7763 показатель составляет уже 32 МБ, поскольку ядер уже 64 соответственно.
L2 можно представлять, как личное хранилище для L1: первому не хватает места под определенные, не самые критические задачи, и он сгружает их в кэш второго уровня на расстояние «вытянутой руки».
Кэш память 3 уровня
L3 — память третьего уровня. Самый большой и самый медленный кластер среди «родственников». При этом все еще быстрее ОЗУ и, тем более, SSD-накопителей, даже на базе NVMe.
Этот блок уже доступен для всех ядер процессора, как общественная библиотека. На третьем уровне временно хранятся данные, которые хоть и важны для продуктивной работы, но регистры обращаются за этой информацией относительно нечасто. Зато объем кэш памяти третьего уровня процессора может быть гигантским на фоне L1 и L2. Для Intel Xeon 3 Gen это до 80 МБ, для AMD же — все 256 МБ соответственно.
Наглядное сравнение скорости кэш памяти процессора
Трудно представить себе, насколько это — «быстрее» или «медленнее», когда речь заходит о передаче данных. Но если проводить аналогии с реальной жизнью, то соотношение скоростей для разных уровней памяти и других типов носителей можно представить так:
- Вообразите, что вы — это ядро процессора, и тогда регистры для вас — как бумажные стикеры, расклеенные по периметру монитора. На них находится информация, которая необходима здесь и сейчас, и чтобы ее прочесть, достаточно поднять взгляд и сфокусироваться на нужном листочке;
- Кэш L1 — папка на рабочем столе. Физическая, с массой файлов, где лежат документы, отчеты по бухгалтерии и прочие сводки по работе. Открыл, порылся в файлах, нашел нужный, прочитал информацию в 50-й строчке на 20-й странице и принялся за работу.
- Кэш L2 — алгоритм тот же, но папка лежит не на столе на расстоянии вытянутой руки, а в книжном шкафу в конце кабинета. А значит необходимо подняться с места, дойти до шкафа, найти нужную полку и еще какое-то время потратить на поиск требуемой папки, страницы и строчки.
- Кэш L3 — архивный отдел. Находится на 5 этаже под охраной злого бухгалтера. При этом вся информация рассортирована по стеллажам, которые практически не подписаны. Более того, один несчастный бухгалтер должен обслуживать 10-20 наседающих сотрудников (других ядер ЦП, которым тоже нужно «вот-прямо-сейчас») и носиться по всему помещению, выдавая документы по самым разным запросам.
- Оперативная память — городская библиотека в отдаленном районе. Сначала до нее надо доехать, потом разбудить библиотекаря, дождаться, пока он будет блуждать по архиву в течение пары часов. А потом еще вернуться добычей обратно. И не факт, что все требуемое найдется с первого раза по причине банального недосмотра.
- SSD-накопитель — курьерская доставка из соседней области. При всем желании и развитой логистической цепочке, ждать придется пару суток, а то и больше, если дороги переполнены.
- HDD-накопитель — Алиэкспресс. Выбор шикарный, всего много, стоит — копейки. Но доставку ожидайте в течение месяца.
В такой интерпретации понимать разницу в памяти гораздо проще.
Само собой, реальная скорость сильно отличается от схематичных обозначений. Например, процессору для сложения пары 64-битных целых чисел требуется всего 1/4 наносекунды (10-9 степень), если он работает на частоте в 4 ГГц (примерно).
А вот HDD с их неповоротливой магнитной головкой приходится тратить миллисекунды (10-3 степень), и это настоящая пропасть. И это только поиск, без доставки в ОЗУ.
Конечно, на фоне всего вышесказанного возникает логичный вопрос, отчего бы не добавить еще уровней, и не сделать кэш такого размера, чтобы на нем хранилась вся информация, которая может понадобиться процессору. Вот только проблема в том, что кэш-память не нарастить в любом объеме, иначе чип попросту не поместится на подложку процессора. А если и поместится, то размером такой процессор будет с многоэтажный дом, а цену его в принципе будет невозможно представить.
Как объем кэш-памяти влияет на производительность
Тут все напрямую зависит от количества ядер и назначения процессора. Перед производителем ЦП стоит задача сделать максимально сбалансированный продукт, отвечающий требованиям пользователей.
Возьмем, к примеру, стандартный домашний или офисный компьютер на 4 ядра с частотой около 3 ГГц. Его сфера использования — таблицы, текстовые редакторы и офисные приложения, мультимедиа, простые игры и развлечения. Нет никакого смысла давать на процессор такой машины кэш L1 более 256 КБ, на L2 — больше 1 МБ, на L3 — 4 МБ (суммарно). Задачу решают оптимизацией кэша, обеспечивая до 90% кэш-попаданий на всех этапах. При этом промахами заканчивается не более 1-2% всех операций. Производитель десктопных устройств понимает простую истину: наращивание показателей не увеличит производительность, но больно отразится на стоимости, поскольку финальная цена такого компьютера окажется слишком высокой.
Совсем другое дело — серверный сегмент, где давно и прочно прописались кристаллы на 16, 32 и 64 ядра. Вот тут объемный кэш необходим (да и площадь кристалла для его размещения больше), ведь модели с маленьким кэшем попросту не сумеют обеспечить серверу нужную скорость вычислений для тысяч задач, которые требуется решать в одну единицу времени.
Вот так и появляются гигантские цифры в 128, и даже 256 МБ кэша L3, характерные, например, для AMD EPYC 2 и 3 поколений. Больше места для быстрого доступа — выше производительность. И не стоит забывать, что в серверном сегменте никто не занимается разгоном ядер для компенсации малого размера кэш-памяти, ведь от этого напрямую зависит тепловыделение процессора, которое также требуется отводить. Никакой пользы не будет от машины, где кристалл моментально нагревается от разгона и требует отвести 400, а то и 500 Вт тепла. На одном охлаждении разоритесь.
Когда нужно больше кэша?
Получит ли рядовой пользователь хоть какой-то прирост для своего домашнего компьютера, если заменит процессор с кэшем 8 МБ на 16 МБ при аналогичных показателях всего остального (ядра, частота, производитель, архитектура)? Нет.
Величина этого параметра, как объем кэша, полностью проявляет себя лишь при расчетах в тяжелых приложениях, будь то сложный рендер 3D-сцены, работа с огромным количеством полигонов, обращение к структурированной базе данных на регулярной основе, терминальная работа и т.д. Сюда же стоит добавить монтаж, стриминг с высоким битрейтом.
Но по большому счету, объемный кэш нужен серверам с высокой нагрузкой и посещаемостью. В качестве костылей производители предлагают для ускорения работы даже отдельные платы с кэш-памятью L4, которые подключаются либо в проприетарные, либо в PCI-E слоты.
Можно ли увеличить размер кэш-памяти процессора?
Как уже было сказано выше, такая возможность существует, но сделать это можно лишь путем установки дополнительных плат расширения. Долго, сложно, дорого и далеко не всегда востребовано. Плюс, об этом надо договариваться с производителем оборудования заранее, чтобы он предоставил необходимую ревизию и прошивку материнской платы.
Более простой вариант увеличения кэша — замена процессора на более мощный. Но при этом от перехода со 2-го на 3-е поколение чипов (Intel/AMD) разница будет лишь в увеличении базовой частоты ядра. Но если сделать скачок, допустим, с 1-го поколения на 3-е — то прирост производительности будет куда ощутимее.
Других способов увеличить кэш-память, увы, не предусмотрено.
Рекомендации по выбору кэша
В целом, рекомендация одна: при выборе учитывайте свои потребности.
Например, в процессорах настольных компьютеров величина кэша практически не играет роли для 90% типовых задач. Львиная доля пользователей выполняет исключительно казуальные задачи вроде серфинга интернета и социальных сетей. И им совершенно не важны уровни L1/L2/L3, как и общее время задержек при обращении от ЦП к ОЗУ и наоборот. Лишь бы работало.
Вторая категория пользователей — профессионалы, для которых ПК представляет собой полноценную рабочую станцию. На этом поле играют уже «промежуточные» процессоры вроде AMD Threadripper и Intel Core X. У них уже все в порядке с количеством ядер и с размером кэш-памяти, где одно дополняет другое, увеличивая суммарную производительность.
И самые требовательные в этом отношении — серверы. Здесь кэш — царь и бог в одном флаконе. Если взять две модели с идентичными характеристиками, например, для построения сети терминалов, то в гонке на выживание выиграет та модель серверного процессора, где значение L3 будет выше при прочих равных. Вот так это и работает.
Если у вас еще остались вопросы, вы всегда можете задать их нашим специалистам, заказав персональную консультацию для подбора параметров оборудования, которая идеально закроет все ваши потребности.
Влияние кэша L3 на производительность процессоров Intel
Проверяем, какое влияние оказывает объём L3 Cache на производительность процессоров Intel Core 10 серии как в рабочих приложениях, так и в играх. Выясняем, почему нельзя использовать старшие процессоры для эмуляции младших моделей.
Что такое кэш процессора и зачем он нужен
Кэш процессора – это очень быстрая память. Он выполняет функцию буфера (временного хранения данных), из которого процессор очень быстро может получить необходимую для обработки информацию.
Современные процессоры, будь то Intel или AMD, в основном имеет 3 уровня кэша:
- L1 Cache (кэш первого уровня) — очень быстрый, но относительно небольшой, содержит данные и команды, которые понадобятся для работы в первую очередь.
- L2 Cache (кэш второго уровня процессора) — медленнее чем L1 Cache, но значительно больше по размеру. Содержит в себе данные, которые могут скоро потребоваться, но не уместились в L1.
- L3 Cache (кэш третьего уровня) — самый медленный, но в то же время самый большой по объёму хранения информации, его скорость обычно в пять-шесть раз превышает скорость DRAM.
В многоядерных процессорах каждое ядро имеет выделенный кэш L1 и L2 Cache, а вот к L3 Cache чье влияние на производительность мы и будем сегодня изучать имеют доступ все ядра процессора.
Когда процессору необходимо получить данные, поиск он начинает с кэша первого уровня. Если нужной информации в нем нет, он повторяет поиск в кэше второго и третьего уровня что несколько увеличивает время на выполнение операции. Если поиск завершился неудачей процессору приходится обращаться к оперативной памяти что значительно увеличивает время выполнение операции.
Именно поэтому чем больше объём кэша, тем больше вероятность нахождения в нем нужных данных, а значит сократить задержек. Но и у большого кэша есть и свои минусы, о которых чуть позже.
Более подробно о работе кэша процессора и зачем он нужен можно ознакомиться в статье «Что такое кэш в процессоре и зачем он нужен»
В тестировании участвую 4 процессора Intel из 10 серии:
Чтобы измерить именно влияние объёма L3 Cache на производительность процессора, зафиксируем частоту ядер всех участников на отметке 4000 MHz, а у старших моделей дополнительно отключим ядра, чтобы конфигурация ядер всех участников составила 4 ядра с HT, как и у младшей модели intel Core i3.
Частота контроллера памяти во всех случаях составила 3400 MHz. Оперативная память работала на частоте 2133 MHz по стандарту JEDEC c таймингами 15-15-15-36 CR2.
Тестовая конфигурация
- Материнская плата — MSI MPG Z490 GAMING CARBON WIFI;
- Оперативная память №1 — G.SKILL F4-3000C14-16GVR 2x16GB;
- Видеокарта — GIGABYTE GeForce RTX 3070 EAGLE OC;
- Накопитель №1 — M.2 Samsung 970 Pro 512 Гбайт;
- Накопитель №2 — SATA-III SanDisk Ultra II 960 Гб SDSSDHII-960G-G25;
- Блок питания — Cooler Master V1200 Platinum 1200 ВТ.
Тестирование в бенчмарках
В Aida64 Cache and Memory Benchmark разный объём L3 Cache оказывает незначительное влияние на прописную способность памяти, также можно заметить, что процессор с более больший кэш 3 уровня несколько отстает по скорости и задержкам от своих младших собратьев с меньшем кэшем.
Бенчмарк CPU-Z как и Geekbench 5 не питает большой любви к объёму кэша, хоть и прослеживается незначительное изменение в производительности.
Похожая картина наблюдается и в бенчмарке 3DMark Time Spy.
А вот программы архивации, в частности, WinRAR, отдают предпочтение процессору с большим кэшем, разница в производительности доходит до 35 %.
7-Zip также положительно откликается на увеличение объёма кэша, разница между моделью i3 с L3 Cache 6 mb и процессором i9 L3 Cache 20 mb составляет порядка 20 % в операциях упаковки.
Получив такую неоднозначную реакцию бенчмарков на объём кэша третьего уровня, переходим к тестированию в играх.
Тестирование в играх
Скандинавская сага о набегах викингов хорошо откликается на изменение объёма L3 кэша, и если переход от процессора с 6 мегабайтами кэша на 12 кажется не столь значительным, то переход на модель i9 c 20 мегабайтами кэша 3 уровня составляет уже 15%.
Подобная картина наблюдается во всех протестированных играх, где-то влияние больше где-то меньше, но оно безусловно.
Это еще раз доказывает факт того что использовать для тестирования необходимо оригинальные модели процессоров а не старшую модель для эмуляции младших путем отключения ядер процессора в биос материнской платы.
Выводы
Изменение объёма кэша 3 уровня положительно сказывается на игровой производительности процессора. Большинство протестированных программ практически не реагируют на его изменение, исключением являются программы-архиваторы.
В целом объем кэша 3 уровня играет немалую роль в производительности процессора, но самостоятельно пользователь увеличить его объем, увы, не сможет.
Выход процессоров AMD Zen 2 с увеличенным до 32 мегабайт кэшем 3 уровня должен был заставить инженеров Intel задуматься, ведь процессор intel Core i3 10100 c кэшем 3 уровня 20 мегабайт мог бы составить конкуренцию даже процессорам Ryzen 5000 серии.
В то же время у большого кэша есть и недостатки — это большая площадь, занимаемая на подложке, и возросшие задержки, но эти недостатки не кажутся такими серьезными на фоне роста производительности.
О важности и влиянии кэш-памяти процессора на его производительность
Кэша много не бывает, оценка влияния кэша на производительность и обзор эволюции роста объема кэш-памяти процессоров с 2000-х годов до наших дней. Raptoreum посвящается.
15 ноября 2021, понедельник 00:01
Xenos_One [ ] для раздела Блоги
реклама
Перед началом основной беседы о важности объема кэш-памяти у процессоров остановлюсь на криптовалюте Raptoreum, которая, собственно, и подтолкнула меня написать этот блог. Кто хочет узнать, что ожидает всех майнеров и геймеров в следующем году, когда появятся видеокарты на рынке, вероятный прогноз развития событий можно найти здесь.
реклама
А теперь о Raptoreum. Важно! Не поддавайтесь на провокации, относительно этой криптовалюты, которая добывается на мощностях кэш-памяти центральных процессоров! Чем больше кэш-память второго и любого последующего уровня (при его наличии), тем быстрее происходят расчёты, результатом которых является условный доход. Так как сейчас на рынке именно у процессоров AMD самый «жирный» кэш, то наличие их на полках магазинов и соответственно рекомендованной стоимости этих процессоров под угрозой со стороны новой криптовалюты. Под удар могут попасть старейшие модели AMD Ryzen и все Threadripper.
А теперь поговорим о кэш-памяти процессора. При решении задач процессор получает из оперативной памяти необходимые блоки информации, обработав их, он записывает в память результаты вычислений и получает для обработки следующие блоки. Этот процесс продолжается, пока задача не будет на 100% выполнена.
Все эти операции производятся на очень высоких скоростях, от десятков гигабайт в секунду у процессоров 20-ти летней давности, до сотен гигабайт в секунду у современных процессоров. Все это время процессор обменивается данными с оперативной памятью, которая работает в разы медленнее самого процессора. Каждое считывание из нее и обратная запись информации в неё отнимают уйму времени.
реклама
Несмотря на такой дисбаланс, процессор не простаивает в ожидании очередной порции данных из оперативной памяти, так как эти данные подгружаются в его кэш-память.
Кэш-память процессора – это небольшая по объему, но супербыстрая оперативная память. Она встроена в процессор и является своеобразным буфером, при обмене CPU данными с медленной оперативной памятью, а в современных реалиях еще и с NVME SSD и видеокартой.
В большинстве процессоров используется многоуровневая система кэша:
реклама
• Кэш-память первого уровня или L1 – самая маленькая, но и самая быстрая область кэш-памяти. Её объем не превышает пару десятков килобайт. Работает L1 без каких-либо задержек. В нем содержатся данные, которые чаще всего используются процессором.
• Кэш-память второго уровня (L2) чуть медленнее кэш-памяти L1, но и объем ее в современных процессорах измеряется уже в мегабайтах. Служит она для временного хранения важных данных, вероятность запроса которых ниже, чем у данных, находящихся в L1 кэше.
• Кэш-память третьего уровня (L3) – еще более объемная и еще более медленная. Но она все равно быстрее любой оперативной памяти, даже новой DDR5. Со скоростями в несколько сотен гигабайт в секунду пока еще приходится считаться. Ее размер в современных процессорах в мейнстрим сегменте достигает нескольких десятков мегабайт, а в серверных AMD Epyc счет пошел уже на сотни мегабайт. В отличие от L1 и L2, кэш третьего уровня является общим для всех ядер процессора.
L3 кэш служит для временного хранения важной информации с относительно низкой вероятностью запроса, а также для обеспечения обменом данными между ядрами процессора.
реклама
А теперь небольшой экскурс в развитие и эволюцию кэш-памяти. Если за отправную точку взять Pentium 1, то кэша L2 у него не было. L1 был объёмом 32 Кб. L2 как правило распаивался на материнской плате. Когда появился Pentium II, то L2 сразу стал равным 512 Кб, но он располагался рядом с ядром процессора на отдельной микросхеме и имел низкую скорость, но все равно это лучше, чем ничего.
Pentium-III с Socket 370 имел уже половину объема от Pentium II – 256 Кб, но зато этот кэш был быстрее, так как он был интегрирован в кристалл процессора. Pentium 4 вначале удвоил этот объём до 512 Кб, так называемый Nothwood, а последовавшее за ним ядро Prescott довел L2 до 1 Мб. Это уже объём дней сегодняшних.
Во времена Pentium 4 случилось еще одно важное событие: у Pentium 4 Extreme Edition впервые появился L3 кэш. До этого момента в десктопах такого явления не было. Объем L3 равнялся «жирным» 2 мегабайтам, что положительно влияло на производительность и цену процессора.
После смены с 478 на 775 контактов без ножек, первые “новые” Pentium с ядрами Prescott-2M и Cedar Mill увеличили L2 до 2-х мегабайт, а L1 так и оставался в пределах 32 Кб.
Микроархитектура Core2 и Core2 Quad значительно увеличили объемы кэшей. Так, объем L2 кэша уже варьировался от 4 до 12 Мб, но эти цифры нужно поделить на два, из особенности организации кэша, так как группы ядер по факту взаимодействовали только с половиной этого объема, но суммарный объем был именно таким.
Микроархитектура Sandy Bridge поделила процессоры на различные линейки в зависимости от объема L2 кэша. В этот момент времени, именно объем кэш-памяти начинает решать главенствующую роль в позиционировании и производительности процессоров.
Так, i5-2500К отличался от i7-2600K только объемом кэша. И надо отметить, речь уже идет о L3 кэше, который начинает появляться уже повсеместно. В первом случае L3 = 6 Мб, во втором 8 Мб. L2 у обеих моделей равнялся 256 Кб на одно ядро, а L1 был равен по-прежнему 32 Кб.
Далее происходит рост L3 у последующих поколений. У i9-9900K он уже равен 16 Мб. Параллельно развивается HEDT линейка процессоров Intel, где L3 уже достигает 24.5 Мб. Но дальнейшее развитие всей процессорной архитектуры меняют процессоры AMD с микроархитектурой ZEN и производные от них. Стартовало первое поколение AMD Ryzen c L2 = 512 Кб и L3 = 8 Мб, а на сегодняшний день топовый Ryzen Gen3 уже обладает 64 Мб L3 кэша. Недавний анонс новых серверных процессоров AMD Epyс вообще увеличил объем L3 до астрономических 768 Мб.
Таким образом, система кэшей процессора позволяет частично уйти от зависимости от низкой производительности оперативной памяти, ведь процесс развития процессоров и скорости их кэшей намного опережает скорость оперативной памяти. Важно отметить и тот факт, что чем больше кэша у процессора, тем выше его производительность.