На что влияет кэш процессора 3 уровня

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

Выбирая процессор, рядовой покупатель в первую очередь смотрит на такие характеристики, как количество ядер и тактовую частоту. Но есть и ещё один важный параметр, который следует учитывать при покупке — объем кэш памяти.

Итак, насколько важна эта характеристика и как влияет на скорость вычислений?

Зачем нужна кэш память

В компьютере используется несколько типов памяти. Всем известны HDD/SSD для долгосрочного хранения информации и ОЗУ (RAM), которая при потере питания сбрасывает всё содержимое. Важное различие между ними — это скорость доступа к данным.

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Процессоры давно способны выполнять такое количество команд в секунду, что их доставка из ОЗУ тормозит ход работы. Чтобы минимизировать эти задержки, задействуется сверхбыстрая кэш память и специальный контроллер внутри самого процессора. Контроллер по сложным алгоритмам предугадывает, какие данные в ближайшее время могут понадобиться и копирует их в кэш. Но на этом всё не заканчивается. Поступившие данные распределяются по уровням.

Уровни кэша: L1, L2 и L3

Кэш процессора разделен на три основных уровня: L1, L2 и L3. Отличаются они скоростью доступа и размером.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Влияние на скорость работы

Размер кэш памяти влияет на скорость работы программ, но почти всегда этот прирост незначителен за счет массы других факторов. Например, если производитель вдруг увеличит у конкретной модели процессора кэш L3 с 4 МБ до 8 МБ, то в лучшем случае, при выполнении некоторых приложений, получим прирост производительности на 10%. А при обычной работе это будет всего около 2%.

Таким образом, можно сделать вывод, что ориентироваться на объем кэш памяти при покупке процессора стоит в последнюю очередь. Хотя прогресс не стоит на месте и появляются новые идеи в устранении задержек при работе с данными. Например, компания Intel уже провела ряд экспериментов по внедрению кэша 4 уровня и останавливаться на этом не собирается.

Пример объема L3 буфера разных процессоров и их средняя цена:

Intel Celeron G49502 МБ5 000 руб.
Intel Celeron G45003 МБ4 500 руб.
AMD Ryzen 3 3200G4 МБ6 500 руб.
Intel Core i3-9100F6 МБ6 500 руб.
AMD Ryzen 5 14008 МБ6 000 руб.
Intel Core i5-9400F8 МБ9 000 руб.
Intel Xeon E5-2623 v410 МБ35 000 руб.
Intel Core i7-9700F12 МБ23 000 руб.
AMD Ryzen 7 270016 МБ14 000 руб.
Intel Core i9-990016 МБ35 000 руб.
Intel Xeon E5-2609 v420 МБ22 000 руб.
Intel Xeon E5-2650 v430 МБ80 000 руб.
AMD Ryzen 9 3900X62 МБ50 000 руб.

Источник

О важности и влиянии кэш-памяти процессора на его производительность

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

реклама

А теперь поговорим о кэш-памяти процессора. При решении задач процессор получает из оперативной памяти необходимые блоки информации, обработав их, он записывает в память результаты вычислений и получает для обработки следующие блоки. Этот процесс продолжается, пока задача не будет на 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 Мб.

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

Поэтому при выборе того или иного процессора, обращайте внимание на объем L3 кэша процессора. Возможно, в будущем, объемы порядка пары гигабайт L3 кэша станут нормой, но а пока следим за стоимостью AMD Ryzen, в зависимости от популярности Raptoreum. Надеюсь, этот блог оказался для вас полезным.

Источник

Зачем процессорам нужен кэш и чем отличаются уровни L1, L2, L3

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Во всех центральных процессорах любого компьютера, будь то дешёвый ноутбук или сервер за миллионы долларов, есть устройство под названием «кэш». И с очень большой вероятностью он обладает несколькими уровнями.

Наверно, он важен, иначе зачем бы его устанавливать? Но что же делает кэш, и для чего ему разные уровни? И что означает «12-канальный ассоциативный кэш» (12-way set associative)?

Что такое кэш?

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

Однако мы, разумеется, можем узнать о кэше гораздо больше…

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

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

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Великий Т’Фон хранения данных

Причина этого заключается в том, что современные процессоры невероятно быстры — им требуется всего один тактовый цикл для сложения двух 64-битных целочисленных значений; если процессор работает с частотой 4 ГГЦ, то это составляет всего 0,00000000025 секунды, или четверть наносекунды.

В то же время, вращающемуся жёсткому диску требуются тысячи наносекунд только для нахождения данных на дисках, не говоря уже об их передаче, а твердотельным накопителям — десятки или сотни наносекунд.

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Увы, но это Великий А’Туин хранения данных

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

Ну, у нас уже есть такая система, и она называется ОЗУ (RAM); она присутствует в каждом компьютере и выполняет именно эту задачу.

Почти все такие хранилища имеют тип DRAM (dynamic random access memory); они способны передавать данные гораздо быстрее, чем любой накопитель.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Однако, несмотря на свою огромную скорость, DRAM не способна хранить такие объёмы данных.

Одни из самых крупных чипов памяти DDR4, разработанных Micron, хранят 32 Гбит, или 4 ГБ данных; самые крупные жёсткие диски хранят в 4 000 раз больше.

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

DRAM могут изготавливаться в корпусе чипа (это называется встроенной (embedded) DRAM). Однако процессоры довольно малы, поэтому в них не удастся поместить много памяти.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

10 МБ DRAM слева от графического процессора Xbox 360. Источник: CPU Grave Yard

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

DRAM требуется примерно 100 наносекунд для нахождения данных, но, по крайней мере, она способна передавать миллиарды битов в секунду. Похоже, нам нужна ещё одна ступень памяти, которую можно разместить между блоками процессора и DRAM.

На сцене появляется оставшаяся ступень: SRAM (static random access memory). DRAM использует микроскопические конденсаторы для хранения данных в виде электрического заряда, а SRAM для той же задачи применяет транзисторы, которые работают с той же скоростью, что и логические блоки процессора (примерно в 10 раз быстрее, чем DRAM).

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Разумеется, у SRAM есть недостаток, и он опять-таки связан с пространством.

Память на основе транзисторов занимает гораздо больше места, чем DRAM: в том же размере, что чип DDR4 на 4 ГБ, можно получить меньше 100 МБ SRAM. Но поскольку она производится по тому же технологическому процессу, что и CPU, память SRAM можно встроить прямо внутрь процессора, максимально близко к логическим блокам.

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

И так мы добрались до более строгого определения понятия кэша: это набор блоков SRAM, расположенных внутри процессора; они обеспечивают максимальную занятость процессора благодаря передаче и сохранению данных с очень высокими скоростями. Вас устраивает такое определение? Отлично, потому что дальше всё будет намного сложнее!

Кэш: многоуровневая парковка

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

На приведённом выше изображении процессор (CPU) обозначен прямоугольником с пунктирной границей. Слева расположены ALU (arithmetic logic units, арифметико-логические устройства); это структуры, выполняющие математические операции. Хотя строго говоря, они не являются кэшем, ближайший к ALU уровень памяти — это регистры (они упорядочены в регистровый файл).

Каждый из них хранит одно число, например, 64-битное целое число; само значение может быть элементом каких-нибудь данных, кодом определённой инструкции или адресом памяти каких-то других данных.

Регистровый файл в десктопных процессорах довольно мал, например, в каждом из ядер Intel Core i9-9900K есть по два банка таких файлов, а тот, который предназначен для целых чисел, содержит всего 180 64-битных целых чисел. Другой регистровый файл для векторов (небольших массивов чисел) содержит 168 256-битных элементов. То есть общий регистровый файл каждого ядра чуть меньше 7 КБ. Для сравнения: регистровый файл потоковых мультипроцессоров (так в GPU называются аналоги ядер CPU) Nvidia GeForce RTX 2080 Ti имеет размер 256 КБ.

Регистры, как и кэш, являются SRAM, но их скорость не превышает скорость обслуживаемых ими ALU; они передают данные за один тактовый цикл. Но они не предназначены для хранения больших объёмов данных (только одного элемента), поэтому рядом с ними всегда есть более крупные блоки памяти: это кэш первого уровня (Level 1).

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Одно ядро процессора Intel Skylake. Источник: Wikichip

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

ALU и регистровые файлы расположены слева и обведены зелёной рамкой. В верхней части фотографии белым обозначен кэш данных первого уровня (Level 1 Data cache). Он не содержит много информации, всего 32 КБ, но как и регистры, он расположен очень близко к логическим блокам и работает на одной скорости с ними.

Ещё одним белым прямоугольником справа показан кэш инструкций первого уровня (Level 1 Instruction cache), тоже имеющий размер 32 КБ. Как понятно из названия, в нём хранятся различные команды, готовые к разбиению на более мелкие микрооперации (обычно обозначаемые μops), которые должны выполнять ALU. Для них тоже существует кэш, который можно классифицировать как Level 0, потому что он меньше (содержит всего 1 500 операций) и ближе, чем кэши L1.

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

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Кэш L2 процессора Skylake: 256 КБ SRAM

Но если бы это был единственный кэш внутри процессора, то его производительность наткнулась бы на неожиданное препятствие. Именно поэтому в ядра встраивается еще один уровень памяти: кэш Level 2. Это обобщённый блок хранения, содержащий инструкции и данные.

Он всегда больше, чем Level 1: в процессорах AMD Zen 2 он занимает до 512 КБ, чтобы кэши нижнего уровня обеспечивались достаточным объёмом данных. Однако большой размер требует жертв — для поиска и передачи данных из этого кэша требуется примерно в два раза больше времени по сравнению с Level 1.

Во времена первого Intel Pentium кэш Level 2 был отдельным чипом, или устанавливаемым на отдельной небольшой плате (как ОЗУ DIMM), или встроенным в основную материнскую плату. Постепенно он перебрался в корпус самого процессора, и, наконец, полностью интегрировался в кристалл чипа; это произошло в эпоху таких процессоров, как Pentium III и AMD K6-III.

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

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Чип Intel Kaby Lake. Источник: Wikichip

На этом изображении чипа Intel Kaby Lake в левой части показаны четыре ядра (интегрированный GPU занимает почти половину кристалла и находится справа). Каждое ядро имеет свой «личный» набор кэшей Level 1 и 2 (выделены белыми и жёлтым прямоугольниками), но у них также есть и третий комплект блоков SRAM.

Кэш третьего уровня (Level 3), хоть и расположен непосредственно рядом с одним ядром, является полностью общим для всех остальных — каждое ядро свободно может получать доступ к содержимому кэша L3 другого ядра. Он намного больше (от 2 до 32 МБ), но и намного медленнее, в среднем более 30 циклов, особенно когда ядру нужно использовать данные, находящиеся в блоке кэша, расположенного на большом расстоянии.

Ниже показано одно ядро архитектуры AMD Zen 2: кэши Level 1 данных и инструкций по 32 КБ (в белых прямоугольниках), кэш Level 2 на 512 КБ (в жёлтых прямоугольниках) и огромный блок кэша L3 на 4 МБ (в красном прямоугольнике).

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Увеличенный снимок одного ядра процессора AMD Zen 2. Источник: Fritzchens Fritz

Но постойте: как 32 КБ могут занимать больше физического пространства чем 512 КБ? Если Level 1 хранит так мало данных, почему он непропорционально велик по сравнению с кэшами L2 и L3?

Не только числа

Кэш повышает производительность, ускоряя передачу данных в логические блоки и храня поблизости копию часто используемых инструкций и данных. Хранящаяся в кэше информация разделена на две части: сами данные и место, где они изначально располагаются в системной памяти/накопителе — такой адрес называется тег кэша (cache tag).

Когда процессор выполняет операцию, которой нужно считать или записать данные из/в память, то он начинает с проверки тегов в кэше Level 1. Если нужные данные там есть (произошло кэш-попадание (cache hit)), то доступ к этим данным выполняется почти сразу же. Промах кэша (cache miss) возникает, если требуемый тег не найден на самом нижнем уровне кэша.

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

Это приводит к почти постоянному перемешиванию данных, выполняемому всего за несколько тактовых циклов. Единственный способ добиться этого — создание сложной структуры вокруг SRAM для обработки управления данными. Иными словами, если бы ядро процессора состояло всего из одного ALU, то кэш L1 был бы гораздо проще, но поскольку их десятки (и многие из них жонглируют двумя потоками инструкций), то для перемещения данных кэшу требуется множество соединений.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Для изучения информации кэша в процессоре вашего компьютера можно использовать бесплатные программы, например CPU-Z. Но что означает вся эта информация? Важным элементом является метка set associative (множественно-ассоциативный) — она указывает на правила, применяемые для копирования блоков данных из системной памяти в кэш.

Представленная выше информация кэша относится к Intel Core i7-9700K. Каждый из его кэшей Level 1 разделён на 64 небольших блока, называемые sets, и каждый из этих блоков ещё разбит на строки кэша (cache lines) (размером 64 байта). «Set associative» означает, что блок данных из системы привязывается к строкам кэша в одном конкретном сете, и не может свободно привязываться к какому-то другому месту.

«8-way» означает, что один блок может быть связан с 8 строками кэша в сете. Чем выше уровень ассоциативности (т.е. чем больше «way»), тем больше шансов на кэш-попадание во время поиска процессором данных и тем меньше потери, вызываемые промахами кэша. Недостатки такой системы заключаются в повышении сложности и энергопотребления, а также понижении производительности, потому что для каждого блока данных нужно обрабатывать больше строк кэша.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Инклюзивный кэш L1+L2, victim cache L3, политики write-back, есть даже ECC. Источник: Fritzchens Fritz

Ещё один аспект сложности кэша связан с тем, как хранятся данные между разными уровнями. Правила задаются в inclusion policy (политике инклюзивности). Например, процессоры Intel Core имеют полностью инклюзивные кэши L1+L3. Это означает, что одни данные в Level 1, например, могут присутствовать в Level 3. Может показаться, что это пустая трата ценного пространства кэша, однако преимущество заключается в том, что если процессор совершает промах при поиске тега в нижнем уровне, ему не потребуется обыскивать верхний уровень для нахождения данных.

В тех же самых процессорах кэш L2 неинклюзивен: все хранящиеся там данные не копируются ни на какой другой уровень. Это экономит место, но приводит к тому, что системе памяти чипа нужно искать ненайденный тег в L3 (который всегда намного больше). Victim caches (кэши-жертвы) имеют похожий принцип, но они используются для хранения информации, переносимой с более низких уровней. Например, процессоры AMD Zen 2 используют victim cache L3, который просто хранит данные из L2.

Существуют и другие политики для кэша, например, при которых данные записываются и в кэш, и основную системную память. Они называются политиками записи (write policies); большинство современных процессоров использует кэши write-back — это означает, что когда данные записываются на уровень кэшей, происходит задержка перед записью их копии в системную память. Чаще всего эта пауза длится в течение того времени, пока данные остаются в кэше — ОЗУ получает эту информацию только при «выталкивании» из кэша.

На что влияет кэш процессора 3 уровня. Смотреть фото На что влияет кэш процессора 3 уровня. Смотреть картинку На что влияет кэш процессора 3 уровня. Картинка про На что влияет кэш процессора 3 уровня. Фото На что влияет кэш процессора 3 уровня

Графический процессор Nvidia GA100, имеющий 20 МБ кэша L1 и 40 МБ кэша L2

Для проектировщиков процессоров выбор объёма, типа и политики кэшей является вопросом уравновешивания стремления к повышению мощности процессора с увеличением его сложности и занимаемым чипом пространством. Если бы можно было создать 1000-канальные ассоциативные кэши Level 1 на 20 МБ такими, чтобы они при этом не занимали площадь Манхэттена (и не потребляли столько же энергии), то у нас у всех бы были компьютеры с такими чипами!

Самый нижний уровень кэшей в современных процессорах за последнее десятилетие практически не изменился. Однако кэш Level 3 продолжает расти в размерах. Если бы десять лет назад у вас было 999 долларов на Intel i7-980X, то вы могли бы получить кэш размером 12 МБ. Сегодня за половину этой суммы можно приобрести 64 МБ.

Подведём итог: кэш — это абсолютно необходимое и потрясающее устройство. Мы не рассматривали другие типы кэшей в CPU и GPU (например, буферы ассоциативной трансляции или кэши текстур), но поскольку все они имеют такую же простую структуру и расположение уровней, разобраться в них будет несложно.

Был ли у вас компьютер с кэшем L2 на материнской плате? Как насчёт слотовых Pentium II и Celeron (например, 300a) на дочерних платах? Помните свой первый процессор с общим L3?

На правах рекламы

Наша компания предлагает в аренду серверы с процессорами от Intel и AMD. В последнем случае — это эпичные серверы! VDS с AMD EPYC, частота ядра CPU до 3.4 GHz. Максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Источник

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

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