Что такое l3 кэш: Зачем процессорам нужен кэш и чем отличаются уровни L1, L2, L3
3 MB vs 8 MB Cache, Страница 1. GECID.com
Отобразить одной страницейСтраница 1Страница 2
Приветствуем вас на сайте GECID.com! Хорошо известно, что тактовая частота и количество ядер процессора напрямую влияют на уровень производительности, особенно в оптимизированных под многопоточность проектах. Мы же решили проверить, какую роль в этом играет кэш-память уровня L3?
Для исследования этого вопроса нам был любезно предоставлен интернет-магазином pcshop.ua 2-ядерный процессор Intel Core i3-6100 с номинальной рабочей частотой 3,7 ГГц и 3 МБ кэш-памяти L3 с 12-ю каналами ассоциативности. В роли оппонента выступил 4-ядерный Intel Core i7-6700K, у которого были отключены два ядра и снижена тактовая частота до 3,7 ГГц. Объем же кэша L3 у него составляет 8 МБ, и он имеет 16 каналов ассоциативности. То есть ключевая разница между ними заключается именно в кэш-памяти последнего уровня: у Core i7 ее на 5 МБ больше.
Если это ощутимо повлияет на производительность, тогда можно будет провести еще один тест с представителем серии Core i5, у которых на борту 6 МБ кэша L3.
Но пока вернемся к текущему тесту. Помогать участникам будет видеокарта MSI GeForce GTX 1070 GAMING X 8G и 16 ГБ оперативной памяти DDR4-2400 МГц. Сравнивать эти системы будем в разрешении Full HD.
Для начала начнем с рассинхронизированных живых геймплев, в которых невозможно однозначно определить победителя. В Dying Light на максимальных настройках качества обе системы показывают комфортный уровень FPS, хотя загрузка процессора и видеокарты в среднем была выше именно в случае Intel Core i7.
Arma 3 имеет хорошо выраженную процессорозависимость, а значит больший объем кэш-памяти должен сыграть свою позитивную роль даже при ультравысоких настройках графики. Тем более что нагрузка на видеокарту в обоих случаях достигала максимум 60%.
Игра DOOM на ультравысоких настройках графики позволила синхронизировать лишь первые несколько кадров, где перевес Core i7 составляет около 10 FPS. Рассинхронизация дельнейшего геймплея не позволяет определить степень влияния кэша на скорость видеоряда. В любом случае частота держалась выше 120 кадров/с, поэтому особого влияния даже 10 FPS на комфортность прохождения не оказывают.
Завершает мини-серию живых геймплеев Evolve Stage 2. Здесь мы наверняка увидели бы разницу между системами, поскольку в обоих случаях видеокарта загружена ориентировочно на половину. Поэтому субъективно кажется, что уровень FPS в случае Core i7 выше, но однозначно сказать нельзя, поскольку сцены не идентичные.
Более информативную картину дают бенчмарки. Например, в GTA V можно увидеть, что за городом преимущество 8 МБ кэша достигает 5-6 кадров/с, а в городе – до 10 FPS благодаря более высокой загрузке видеокарты. При этом сам видеоускоритель в обоих случаях загружен далеко не на максимум, и все зависит именно от CPU.
Третий ведьмак мы запустили с запредельными настройками графики и высоким профилем постобработки. В одной из заскриптованных сцен преимущество Core i7 местами достигает 6-8 FPS при резкой смене ракурса и необходимости подгрузки новых данных. Когда же нагрузка на процессор и видеокарту опять достигают 100%, то разница уменьшается до 2-3 кадров.
Максимальный пресет графических настроек в XCOM 2 не стал серьезным испытанием для обеих систем, и частота кадров находилась в районе 100 FPS. Но и здесь больший объем кэш-памяти трансформировался в прибавку к скорости от 2 до 12 кадров/с. И хотя обоим процессорам не удалось по максимум загрузить видеокарту, вариант на 8 МБ и в этом вопросе местами преуспевал лучше.
Больше всего удивила игра Dirt Rally, которую мы запустили с пресетом очень высоко. В определенные моменты разница доходила до 25 кадров/с исключительно из-за большего объема кэш-памяти L3. Это позволяло на 10-15% лучше загружать видеокарту. Однако средние показатели бенчмарка показали более скромную победу Core i7 — всего 11 FPS.
Интересная ситуация получилась и с Rainbow Six Siege: на улице, в первых кадрах бенчмарка, преимущество Core i7 составляло 10-15 FPS. Внутри помещения загрузка процессоров и видеокарты в обоих случаях достигла 100%, поэтому разница уменьшилась до 3-6 FPS. Но в конце, когда камера вышла за пределы дома, отставание Core i3 опять местами превышало 10 кадров/с. Средний же показатель оказался на уровне 7 FPS в пользу 8 МБ кэша.
Социальные комментарии Cackle
Как работает кэш процессора? Что такое кэш L1, L2 и L3?
В последние годы компьютерные процессоры значительно продвинулись вперед. Транзисторы становятся меньше с каждым годом, и достижения достигают точки, когда закон Мура становится ненужным.
Когда дело доходит до процессоров, важны не только транзисторы и частоты, но и кэш.
Возможно, вы слышали о кэш-памяти, когда обсуждались процессоры (центральные процессоры). Однако мы не уделяем достаточно внимания этим номерам кэш-памяти ЦП, и они не являются основным моментом рекламы ЦП.
Итак, насколько важен кэш ЦП и как он работает?
Что такое кэш-память процессора?
Проще говоря, кэш памяти ЦП – это просто действительно быстрый тип памяти. На заре вычислений скорость процессора и скорость памяти были низкими. Однако в 80-е годы скорость процессоров начала быстро расти. В то время системная память (RAM) не могла справиться с растущими скоростями ЦП или соответствовать им, и поэтому родился новый тип сверхбыстрой памяти: кэш-память ЦП.
Теперь ваш компьютер имеет внутри несколько типов памяти.
Существует основное хранилище, такое как жесткий диск или твердотельный накопитель, в котором хранится основная часть данных – операционная система и программы.
Затем у нас есть оперативная память, обычно известная как ОЗУ . Это намного быстрее, чем основное хранилище, но это только краткосрочный носитель. Ваш компьютер и программы на нем используют оперативную память для хранения часто используемых данных, помогая выполнять действия на вашем компьютере правильно и быстро.
Наконец, ЦП имеет внутри себя даже более быстрые блоки памяти, известные как кэш памяти ЦП.
Компьютерная память имеет иерархию, основанную на ее скорости работы. Кэш ЦП находится на вершине этой иерархии, будучи самым быстрым. Он также находится ближе всего к тому месту, где происходит центральная обработка, являясь частью самого процессора.
Компьютерная память также бывает разных типов.
Кэш-память – это форма статической ОЗУ (SRAM), в то время как обычная системная оперативная память известна как динамическая ОЗУ (DRAM). Статическая RAM может хранить данные без необходимости постоянного обновления, в отличие от DRAM, что делает SRAM идеальным для кэш-памяти.
Как работает кэш процессора?
Программы и приложения на вашем компьютере представляют собой набор инструкций, которые процессор интерпретирует и выполняет. Когда вы запускаете программу, инструкции передаются из основного хранилища (вашего жесткого диска) в ЦП. Здесь в игру вступает иерархия памяти.
Данные сначала загружаются в ОЗУ, а затем отправляются в ЦП. В наши дни процессоры способны выполнять огромное количество инструкций в секунду. Чтобы в полной мере использовать свою мощность, ЦП необходим доступ к сверхбыстрой памяти, в которой задействован кеш ЦП.
Контроллер памяти берет данные из ОЗУ и отправляет их в кэш ЦП. В зависимости от вашего процессора, контроллер находится на процессоре или на чипсете северного моста на материнской плате.
Затем кэш памяти выполняет обмен данными внутри ЦП. Иерархия памяти существует и в кэше ЦП.
Связано: что такое процессор и для чего он нужен?
Уровни кэш-памяти ЦП: L1, L2 и L3
Кэш-память ЦП разделена на три «уровня»: L1, L2 и L3. Иерархия памяти снова соответствует скорости и, следовательно, размеру кеша.
Итак, влияет ли размер кеш-памяти процессора на производительность?
Кэш L1
Кэш L1 (уровень 1) – это самая быстрая память, которая присутствует в компьютерной системе. Что касается приоритета доступа, кэш L1 содержит данные, которые, скорее всего, потребуются ЦП при выполнении определенной задачи.
Размер кеша L1 зависит от ЦП. Некоторые топовые потребительские процессоры теперь имеют кэш-память L1 1 МБ, например Intel i9-9980XE, но они стоят огромных денег и их все еще мало. Некоторые серверные чипсеты, например линейка Intel Xeon, также имеют кэш-память L1 объемом 1-2 МБ.
Не существует «стандартного» размера кеш-памяти L1, поэтому перед покупкой необходимо проверить спецификации ЦП, чтобы определить точный размер кеш-памяти L1.
Кэш L1 обычно делится на две части: кэш инструкций и кэш данных. Кэш инструкций имеет дело с информацией об операции, которую должен выполнить ЦП, в то время как кэш данных содержит данные, над которыми должна быть выполнена операция.
Кэш L2
Кэш L2 (уровень 2) медленнее, чем кеш L1, но больше по размеру. Если размер кэша L1 может измеряться в килобайтах, то в современных кэшах памяти L2 – в мегабайтах. Например, AMD Ryzen 5 5600X с высоким рейтингом имеет кэш L1 384 КБ и кэш L2 3 МБ (плюс кэш L3 32 МБ).
Размер кэша L2 зависит от ЦП, но обычно его размер составляет от 256 КБ до 8 МБ. Большинство современных процессоров имеют кэш L2 размером более 256 КБ, и этот размер сейчас считается небольшим. Кроме того, некоторые из самых мощных современных процессоров имеют больший объем кеш-памяти L2, превышающий 8 МБ.
Когда дело доходит до скорости, кэш L2 отстает от кеша L1, но по-прежнему намного быстрее, чем ваша системная RAM. Кэш памяти L1 обычно в 100 раз быстрее, чем ваша оперативная память, а кеш L2 примерно в 25 раз быстрее.
Кэш L3
В кэш L3 (уровень 3). Раньше кэш-память L3 фактически находилась на материнской плате. Это было очень давно, когда большинство процессоров были только одноядерными. Теперь кэш L3 в вашем процессоре может быть огромным, с топовыми потребительскими процессорами с кешами L3 до 32 МБ. Некоторые кэши L3 ЦП серверов могут превышать это значение, составляя до 64 МБ.
Кэш L3 – самый большой, но также самый медленный блок кэш-памяти. Современные процессоры включают кэш L3 на самом процессоре. Но в то время как кэш L1 и L2 существует для каждого ядра на самом чипе, кеш L3 больше похож на общий пул памяти, который может использовать весь чип.
На следующем изображении показаны уровни кэш-памяти ЦП для ЦП Intel Core i5-3570K:
Обратите внимание, как кэш L1 разделен на две части, а кеш L2 и L3 больше соответственно.
Сколько мне нужно кэш-памяти ЦП?
Хороший вопрос. Как и следовало ожидать, чем больше, тем лучше. Последние процессоры, естественно, будут включать в себя больше кэш-памяти ЦП, чем предыдущие поколения, а также потенциально более быструю кеш-память. Вы можете научиться эффективно сравнивать процессоры . Существует много информации, и изучение того, как сравнивать и сравнивать разные процессоры, может помочь вам принять правильное решение о покупке.
Как данные перемещаются между кешами памяти ЦП?
Большой вопрос: как работает кеш-память процессора?
Проще говоря, данные передаются из ОЗУ в кэш L3, затем в L2 и, наконец, в L1. Когда процессор ищет данные для выполнения операции, он сначала пытается найти их в кэше L1. Если ЦП находит это, условие называется попаданием в кэш. Затем он переходит к поиску в L2, а затем в L3.
Если ЦП не находит данные ни в одном из кешей памяти, он пытается получить к ним доступ из системной памяти (ОЗУ). Когда это происходит, это называется промахом кеша.
Теперь, как мы знаем, кеш предназначен для ускорения обмена информацией между основной памятью и процессором. Время, необходимое для доступа к данным из памяти, называется «задержкой».
Кэш-память L1 имеет самую низкую задержку, будучи самой быстрой и ближайшей к ядру, а L3 – самой высокой. Задержка кеш-памяти увеличивается, когда происходит промах кеш-памяти, поскольку ЦП должен получить данные из системной памяти.
Задержка продолжает уменьшаться по мере того, как компьютеры становятся быстрее и эффективнее. ОЗУ DDR4 с низкой задержкой и сверхбыстрые твердотельные накопители сокращают время задержки, делая всю вашу систему быстрее, чем когда-либо. При этом также важна скорость вашей системной памяти.
Будущее кэш-памяти ЦП
Дизайн кэш-памяти постоянно развивается, особенно по мере того, как память становится дешевле, быстрее и плотнее. Например, одним из последних нововведений AMD является память Smart Access и Infinity Cache , которые повышают производительность компьютера.
Связанный
У 12-ядерного Ryzen подтверждается увеличенный кэш L3
На прошлой неделе появилась информация об инженерном образце Ryzen с 12 ядрами, что подтвердило высказанное на презентации третьего поколения Ryzen предположение о выпуске процессоров Ryzen с более чем восемью ядрами.
В результатах тестов 2D3212BGMCWh3_37/34_N в UserBenchmark также приведены задержки доступа в памяти и кэши L1, L2 и L3. Что позволяет сделать предположение о размере кэшей. Если кэш L1 на 32 кбайт и кэш L2 на 512 кбайт остались неизменными по сравнению с дизайнами Zen и Zen+, AMD увеличила кэш L3 до 4 Мбайт на ядро (в полной версии CCX), то есть на кристалл с двумя CCX мы получаем уже 32 Мбайт L3. В каждом 4-ядерном CCX теперь доступны 16 Мбайт кэша L3. Таким образом, у 12-ядерного Ryzen мы получаем 64 Мбайт кэша L3. В тесте UserBenchmark низкие задержки наблюдаются до уровня 16 Мбайт, то есть данные располагаются в кэше L3 (см. графики ниже).
В принципе, информацию нельзя назвать новой, поскольку вскоре после презентации второго поколения процессоров EPYC под кодовым названием Rome было сделано предположение о двух 4-ядерных CCX с 16 Мбайт кэша каждый на одном кристалле chiplet.
На графике мы сравнили 12-ядерный CPU с результатами UserBenchmark на процессорах Ryzen 7 1800X и Ryzen 7 2700X. Но инженерный 12-ядерный образец работал с памятью на очень низкой частоте 1.333 МГц, поэтому проводить сравнение не так просто. На абсолютные значения лучше не обращать внимание, только на изменения.
Спецификации пока не финальные
Не стоит забывать, что 12-ядерный процессор по-прежнему имеет статус инженерного образца. AMD продолжит оптимизировать тактовые частоты и доступ к памяти. Базовая частота пока составляет 3,2 ГГц. Результаты частот Boost 3,7 и 3,4 ГГц вряд ли финальные. В тесте UserBenchmark мы получили среднюю частоту Boost 3,6 ГГц. Пакет Thermal Design Power должен составлять 105 Вт. Большую часть кодового названия пока не удалось расшифровать, поскольку AMD изменила номенклатуру.
Кэш память и её предназначение в процессоре. На что влияет кэш процессора L1 L2 L3 Что такое кеш память 3 уровня
Насколько
важен кэш L3 для процессоров AMD?
Действительно,
имеет смысл оснащать многоядерные
процессоры выделенной памятью, которая
будет использоваться совместно всеми
доступными ядрами. В данной роли быстрый
кэш третьего уровня (L3) может существенно
ускорить доступ к данным, которые
запрашиваются чаще всего. Тогда ядрам,
если существует такая возможность, не
придётся обращаться к медленной основной
памяти (ОЗУ, RAM).
По крайней мере, в
теории. Недавно AMD анонсировала процессор
Athlon II X4, представляющий собой модель
Phenom II X4 без кэша L3, намекая на то, что он
не такой и необходимый. Мы решили напрямую
сравнить два процессора (с кэшем L3 и
без), чтобы проверить, как кэш влияет на
производительность.
Как работает кэш?
Перед тем, как мы
углубимся в тесты, важно понять некоторые
основы. Принцип работы кэша довольно
прост. Кэш буферизует данные как можно
ближе к вычислительным ядрам процессора,
чтобы снизить запросы CPU в более отдалённую
и медленную память. У современных
настольных платформ иерархия кэша
включает целых три уровня, которые
предваряют доступ к оперативной памяти.
Причём кэши второго и, в частности,
третьего уровней служат не только для
буферизации данных. Их цель заключается
в предотвращении перегрузки шины
процессора, когда ядрам необходимо
обменяться информацией.
Попадания и
промахи
Эффективность
архитектуры кэшей измеряется процентом
попаданий. Запросы данных, которые могут
быть удовлетворены кэшем, считаются
попаданиями. Если данный кэш не содержит
нужные данные, то запрос передаётся
дальше по конвейеру памяти, и засчитывается
промах. Конечно, промахи приводят к
большему времени, которое требуется
для получения информации. В результате
в вычислительном конвейере появляются
«пузырьки» (простои) и задержки.
Попадания, напротив, позволяют поддержать
максимальную производительность.
Запись в кэш,
эксклюзивность, когерентность
Политики замещения
диктуют, как в кэше освобождается место
под новые записи. Поскольку данные,
записываемые в кэш, рано или поздно
должны появиться в основной памяти,
системы могут делать это одновременно
с записью в кэш (write-through) или могут
маркировать данные области как «грязные»
(write-back), а выполнять запись в память
тогда, когда она будет вытесняться из
кэша.
Данные в нескольких
уровнях кэша могут храниться эксклюзивно,
то есть без избыточности. Тогда вы не
найдёте одинаковых строчек данных в
двух разных иерархиях кэша. Либо кэши
могут работать инклюзивно, то есть
нижние уровни кэша гарантированно
содержат данные, присутствующие в
верхних уровнях кэша (ближе к процессорному
ядру). У AMD Phenom используются эксклюзивный
кэш L3, а Intel следует стратегии инклюзивного
кэша. Протоколы когерентности следят
за целостностью и актуальностью данных
между разными ядрами, уровнями кэшей и
даже процессорами.
Объём кэша
Больший по объёму
кэш может содержать больше данных, но
при этом наблюдается тенденция увеличения
задержек. Кроме того, большой по объёму
кэш потребляет немалое количество
транзисторов процессора, поэтому важно
находить баланс между «бюджетом»
транзисторов, размером кристалла,
энергопотреблением и
производительностью/задержками.
Ассоциативность
Записи в оперативной
памяти могут привязываться к кэшу
напрямую (direct-mapped), то есть для копии
данных из оперативной памяти существует
только одна позиция в кэше, либо они
могут быть ассоциативны в n-степени
(n-way associative), то есть существует n возможных
расположений в кэше, где могут храниться
эти данные. Более высокая степень
ассоциативности (вплоть до полностью
ассоциативных кэшей) обеспечивает
наилучшую гибкость кэширования, поскольку
существующие данные в кэше не нужно
переписывать. Другими словами, высокая
n-степень ассоциативности гарантирует
более высокий процент попаданий, но при
этом увеличивается задержка, поскольку
требуется больше времени на проверку
всех этих ассоциаций для попадания. Как
правило, наибольшая степень ассоциации
разумна для последнего уровня кэширования,
поскольку там доступна максимальная
ёмкость, а поиск данных за пределами
этого кэша приведёт к обращению процессора
к медленной оперативной памяти.
Приведём несколько
примеров: у Core i5 и i7 используется 32 кбайт
кэша L1 с 8-way ассоциативностью для данных
и 32 кбайт кэша L1 с 4-way для инструкций.
Понятно желание Intel, чтобы инструкции
были доступны быстрее, а у кэша L1 для
данных был максимальный процент
попаданий. Кэш L2 у процессоров Intel
обладает 8-way ассоциативностью, а кэш L3
у Intel ещё «умнее», поскольку в нём
реализована 16-way ассоциативность для
максимизации попаданий.
Однако AMD следует
другой стратегии с процессорами Phenom II
X4, где используется кэш L1 с 2-way
ассоциативностью для снижения задержек.
Чтобы компенсировать возможные промахи
ёмкость кэша была увеличена в два раза:
64 кбайт для данных и 64 кбайт для инструкций.
Кэш L2 имеет 8-way ассоциативность, как и
у дизайна Intel, но кэш L3 у AMD работает с
48-way ассоциативностью. Но решение выбора
той или иной архитектуры кэша нельзя
оценивать без рассмотрения всей
архитектуры CPU. Вполне естественно, что
практическое значение имеют результаты
тестов, и нашей целью как раз была
практическая проверка всей этой сложной
многоуровневой структуры кэширования.
Оказался у меня на руках процессор i5 2400. И так как у меня есть 2600k, у которого L3 кэш 8mb против 6mb у i5 — захотел сравнить их в играх и приложениях. Время было ограничено, поэтому тестов будет не так много. Но чтобы добавить еще больше информации, я поигрался с памятью и смоделировал три ситуации с i5 2400.
1. Конфиг с самой дешевой материнской платой на чипсете с индексом «H», где отсутствует возможность разгона и частота всех ядер будет 3200MHz. Оперативная память будет работать на частоте 1333MHz при таймингах 9:9:9:27
2. Конфиг с материнской платой на чипсете с индексами «P» и «Z» у которых есть возможность поднять множитель процессоров с поддержкой турбобуста на четыре пункта. В моем случае с процессором i5 2400 множитель с 32 можно поднять до 36, тем самым получив частоту в 3600MHz. Разогнав еще и шину, я получил 3800MHz, что на 600MHz больше чем в первом конфиге. Оперативная память в данном случае будет работать на частоте 2252MHz при таймингах 9:9:9:27
3. Конфиг точно такой же как и второй, но с частотой оперативной памяти в 1689MHz на таймингах 9:9:9:27
4. Конфиг с процессором 2600k на частоте 3,80GHz, отключенным HT и оперативной памятью 2252MHz с таймингами 9:9:9:27.
Тестовые комплектующие:
Intel Core i7 2600K
Intel Core i5 2400
Материнская плата: ASUS P8Z77-V Deluxe
Оперативная память: 16GB DDR3 CRUCIAL Ballistix Elite
Видеокарта: GTX 780 Ti 1279|7800 Драйвера: 381.89
Блок питания: APS-850C 850W
Операционная система: Windows 8.1 x64 чистая (35 процессов после запуска системы)
i5 2400 3200MHz DDR3 1333MHz
i5 2400 3800MHz DDR3 1689MHz
i5 2400 3800MHz DDR3 2252MHz
i7 2600k 3800MHz 2252MHz
NVIDIA GTX 780 Ti 1279|7800
Результаты тестирования:
3DMark 2013 CPU Score
Прирост как от кэша так и от оперативной памяти минимальный.
_________________________________________________________________________________________________
Cinebench R15
В Cinebench R15 наблюдаем аналогичную картину.
_________________________________________________________________________________________________
LinX 0.6.5 Объем задачи: 25000
В LinX также прирост дает только разгон процессора
_________________________________________________________________________________________________
x264 FHD Benchmark
И снова прирост на уровне погрешности.
_________________________________________________________________________________________________
Winrar v4.20
И вот наконец получаем прирост от кэша порядка 6% и от памяти около 15%
_________________________________________________________________________________________________
Battlefield 1 SinglePlayer
Разрешение:
1280×720
Шкала разрешения:
100%
Качество текстур:
низ. / сред. / выс. /
ультра
Фильтрация текстур:
низ. / сред. / выс. /
ультра
Качество освещения:
низ. / сред. / выс. /
ультра
Качество эффектов:
низ. / сред. / выс. /
ультра
Качество постобработки:
низ. / сред. / выс. /
ультра
Качество сетки:
низ. / сред. / выс. /
ультра
Качество ландшафта:
низ. / сред. / выс. /
ультра
Качество травы:
низ. / сред. / выс. /
ультра
Качество сглаживания:
нет
/ FXAA (среднее) / FXAA (высокое) / TAA
Объемный свет:
нет / SSAO /
HBAO
Небольшой прирост от L3 кэша есть.
_________________________________________________________________________________________________
Crysis 3 Добро пожаловать в джунгли
Разрешение:
1280×720
Сглаживание:
откл.
Разрешение текстур:
низк. / средн. / высок. /
макс.
Эффекты:
низк. / средн. / высок. /
макс.
Объект:
низк. / средн. / высок. /
макс.
Частицы:
низк. / средн. / высок. /
макс.
Постобработка:
низк. / средн. / высок. /
макс.
Затенение:
низк. / средн. / высок. /
макс.
Тени:
низк. / средн. / высок. /
макс.
Вода:
низк. / средн. / высок. /
макс.
Анизотропный фильтр:
1x / 2x / 4x / 8x /
16x
Степень размытости:
откл
Блики:
да
/ нет
Одна из самых требовательных к процессору сцен в игре. Прирост только от частоты процессора. Загрузка 780Ti в этой сцене даже на i7 не превысила 50%
_________________________________________________________________________________________________
Grand Theft Auto V Встроенный бенчмарк (Последняя сцена)
Разрешение:
1280×720
Версия DirectX:
11
Сглаживание FXAA:
выкл
/ вкл
Сглаживание MSAA:
выкл
/ x2 / x4 / x8
Населенность города:
max
Разновидность населения:
max
Фокусировочная шкала:
max
Качество текстур:
стандарт / высокое /
оч.высокое
Качество шейдеров:
стандарт / высокое /
оч.высокое
Качество теней:
стандарт / высокое /
оч.высокое
Качество отражений:
высшая степень
MSAA для отражений:
выкл
/ x2 / x4 / x8
Качество воды:
стандарт / высокое /
оч.высокое
Качество частиц:
стандарт / высокое /
оч.высокое
Качество травы:
стандарт / высокое / оч.высокое /
высшая степень
Мягкие тени:
резко / мягко / мягче / макс.мягко / AMD CHS /
NVIDIA PCSS
Настройка спецэффектов:
стандарт / высокая / оч. высокая /
высшая степень
Степень размытия при движении:
min
Эффект глубины резкости:
выкл
/ вкл
Анизотропная фильтрация:
x16
Затенение AO:
выкл / стандарт /
высокое
Тесселяция:
выкл / стандарт / высокая /
оч.высокая
Дополнительные настройки:
Длинные тени:
выкл /
вкл
Тени высокого разрешения:
выкл /
вкл
Подгрузка более детализированных текстур во время полета:
выкл /
вкл
Увеличение расстояния подгрузки более детализированных объектов:
max
Длина теней:
max
В этой игре определенно есть прирост и от памяти и от кэша. Очень хороший прирост i5 2400 3,80GHz относительно стока 3,20GHz.
_________________________________________________________________________________________________
Mass Effect Andromeda
Разрешение:
1280×720
Сглаживание:
откл.
Зернистость:
выкл /
вкл
Хроматические аберрации:
выкл /
вкл
Качество текстур:
ультра
Рассеянное затенение:
выкл / SSAO / HBAO /
полное HBAO
Качество постобработки:
низкое / среднее / высокое /
ультра
Качество текстур:
низкое / среднее / высокое /
ультра
Качество освещения:
низкое / среднее / высокое /
ультра
Качество теней:
низкое / среднее / высокое /
ультра
Качество эффектов:
низкое / среднее / высокое /
ультра
Качество моделей:
низкое / среднее / высокое /
ультра
Качество шейдеров:
низкое /
высокое
Качество ландшафта:
низкое / среднее / высокое /
ультра
Качество растений:
низкое / среднее / высокое /
ультра
В этой сцене ни один не раскрыл полностью 780Ti.
_________________________________________________________________________________________________
World Of Tanks 0.9.18
Карта: Перевал
Сглаживание:
отк
/ вкл
Графика:
стандартная /
улучшенная
Качество текстур:
низко / средне / высоко /
максимум
Качество освещения:
максимум
Качество теней:
выключено / средне / высоко /
максимум
Трава в снайперском режиме:
выкл /
вкл
Качество доп. эффектов:
выключено / низко / средне / высоко /
максимум
Доп.эффекты в снайперском режиме:
высоко
Количество растительности:
выключено / низко / средне / высоко /
максимум
Постобработка:
выключено / низко / средне / высоко /
максимум
Эффекты из-под гусениц:
выкл /
вкл
Качество ландшафта:
минимум / низко / средне / высоко /
максимум
Качество воды:
низко / средне / высоко /
максимум
Качество декалей:
выключено / низко / средне / высоко /
максимум
Детализация объектов:
низко / средне / высоко /
максимум
Детализация деревьев:
низко / средне / высоко /
максимум
Дальность прорисовки:
низко / средне / высоко /
максимум
Качество размытия в движении:
выключено / низко / средне /
высоко
Д
инамическое изменение качества эффектов:
выкл /
вкл
Следы гусениц:
выкл /
вкл
Вывод: Некоторые обзорщики с Youtube просто отключают HT, делая из I7 «искусственный» i5, но с большим кэшом… и говорят что разницы нет. Но все же в некоторых играх дополнительный кэш дает прирост.
И в целом разгон стокового i5 2400 дает очень сильный прирост, но тогда придется потратится на материнскую плату.
Компьютерные процессоры сделали значительный рывок в развитии за последние несколько лет. Размер транзисторов с каждым годом уменьшается, а производительность растет. При этом закон Мура уже становится неактуальным. Что касается производительности процессоров, то следует учитывать, не только количество транзисторов и частоту, но и объем кэша.
Возможно, вы уже слышали о кэш памяти когда искали информацию о процессорах. Но, обычно, мы не обращаем много внимания на эти цифры, они даже не сильно выделяются в рекламе процессоров. Давайте разберемся на что влияет кэш процессора, какие виды кэша бывают и как все это работает.
Если говорить простыми словами, то кэш процессора это просто очень быстрая память. Как вы уже знаете, у компьютера есть несколько видов памяти. Это постоянная память, которая используется для хранения данных, операционной системы и программ, например, SSD или жесткий диск. Также в компьютере используется оперативная память. Это память со случайным доступом, которая работает намного быстрее, по сравнению с постоянной. И наконец у процессора есть ещё более быстрые блоки памяти, которые вместе называются кэшем.
Если представить память компьютера в виде иерархии по её скорости, кэш будет на вершине этой иерархии. К тому же он ближе всего к вычислительным ядрам, так как является частью процессора.
Кэш память процессора представляет из себя статическую память (SRAM) и предназначен для ускорения работы с ОЗУ. В отличие от динамической оперативной памяти (DRAM), здесь можно хранить данные без постоянного обновления.
Как работает кэш процессора?
Как вы, возможно, уже знаете, программа — это набор инструкций, которые выполняет процессор. Когда вы запускаете программу, компьютеру надо перенести эти инструкции из постоянной памяти в процессору. И здесь вступает в силу иерархия памяти. Сначала данные загружаются в оперативную память, а потом передаются в процессор.
В наши дни процессор может обрабатывать огромное количество инструкций в секунду. Чтобы по максимуму использовать свои возможности, процессору необходима супер быстрая память. Поэтому был разработан кэш.
Контроллер памяти процессора выполняет работу по получению данных из ОЗУ и отправке их в кэш. В зависимости от процессора, используемого в вашей системе, этот контроллер может быть размещен в северном мосту материнской плате или в самом процессоре. Также кэш хранит результаты выполнения инструкций в процессоре. Кроме того, в самом кэше процессора тоже есть своя иерархия.
Уровни кэша процессора — L1, L2 и L3
Веся кэш память процессора разделена на три уровни: L1, L2 и L3. Эта иерархия тоже основана на скорости работы кэша, а также на его объеме.
- L1 Cache (кэш первого уровня)
— это максимально быстрый тип кэша в процессоре. С точки зрения приоритета доступа, этот кэш содержит те данные, которые могут понадобиться программе для выполнения определенной инструкции; - L2 Cache (кэш второго уровня процессора)
— медленнее, по сравнению L1, но больше по размеру. Его объем может быть от 256 килобайт до восьми мегабайт. Кэш L2 содержит данные, которые, возможно, понадобятся процессору в будущем. В большинстве современных процессоров кэш L1 и L2 присутствуют на самих ядрах процессора, причём каждое ядро получает свой собственный кэш; - L3 Cache (кэш третьего уровня)
— это самый большой и самый медленный кэш. Его размер может быть в районе от 4 до 50 мегабайт. В современных CPU на кристалле выделяется отдельное место под кэш L3.
На данный момент это все уровни кэша процессора, компания Intel пыталась создать кэш уровня L4, однако, пока эта технология не прижилась.
Для чего нужен кэш в процессоре?
Пришло время ответить на главный вопрос этой статьи, на что влияет кэш процессора? Данные поступают из ОЗУ в кэш L3, затем в L2, а потом в L1. Когда процессору нужны данные для выполнения операции, он пытается их найти в кэше L1 и если находит, то такая ситуация называется попаданием в кэш. В противном случае поиск продолжается в кэше L2 и L3. Если и теперь данные найти не удалось, выполняется запрос к оперативной памяти.
Теперь мы знаем, что кэш разработан для ускорения передачи информации между оперативной памятью и процессором. Время, необходимое для того чтобы получить данные из памяти называется задержкой (Latency). Кэш L1 имеет самую низкую задержку, поэтому он самый быстрый, кэш L3 — самую высокую. Когда данных в кэше нет, мы сталкиваемся с еще более высокой задержкой, так как процессору надо обращаться к памяти.
Раньше, в конструкции процессоров кєши L2 и L3 были были вынесены за пределы процессора, что приводило к высоким задержкам. Однако уменьшение техпроцесса, по которому изготавливаются процессоры позволяет разместить миллиарды транизисторов в пространстве, намного меньшем, чем раньше. Как результат, освободилось место, чтобы разместить кэш как можно ближе к ядрам, что ещё больше уменьшает задержку.
Как кэш влияет на производительность?
Влияние кэша на произвоидтельность компьютера напрямую зависит от его эффективности и количества попаданий в кэш. Ситуации, когда данных в кэше не оказывается очень сильно снижают общую производительность.
Представьте, что процессор загружает данные из кэша L1 100 раз подряд. Если процент попаданий в кэш будет 100%, процессору понадобиться 100 наносекунд чтобы получить эти данные. Однако, как только процент попаданий уменьшится до 99%, процессору нужно будет извлечь данные из кэша L2, а там уже задержка 10 наносекунд. Получится 99 наносекунд на 99 запросов и 10 наносекунд на 1 запрос. Поэтому уменьшение процента попаданий в кэш на 1% снижает производительность процессора 10%.
В реальном времени процент попаданий в кэш находится между 95 и 97%. Но как вы понимаете, разница в производительности между этими показателями не в 2%, а в 14%. Имейте в виду, что в примере, мы предполагаем, что прощенные данные всегда есть в кэше уровня L2, в реальной жизни данные могут быть удалены из кэша, это означает, что их придется получать из оперативной памяти, у которой задержка 80-120 наносекунд. Здесь разница между 95 и 97 процентами ещё более значительная.
Низкая производительность кэша в процессорах AMD Bulldozer и Piledriver была одной из основных причин, почему они проигрывали процессорам Intel. В этих процессорах кэш L1 разделялся между несколькими ядрами, что делало его очень не эффективным. В современных процессорах Ryzen такой проблемы нет.
Можно сделать вывод, чем больше объем кэша, тем выше производительность, поскольку процессор сможет получить в большем количестве случаев нужные ему данные быстрее. Однако, стоит обращать внимание не только на объем кэша процессора, но и на его архитектуру.
Выводы
Теперь вы знаете за что отвечает кэш процессора и как он работает. Дизайн кэша постоянно развивается, а память становится быстрее и дешевле. Компании AMD и Intel уже провели множество экспериментов с кэшем, а в Intel даже пытались использовать кэш уровня L4. Рынок процессоров развивается куда быстрее, чем когда-либо. Архитектура кэша будет идти в ногу с постоянно растущей мощностью процессоров.
Кроме того, многое делается для устранения узких мест, которые есть у современных компьютеров. Уменьшение задержки работы с памятью одна из самых важных частей этой работы. Будущее выглядит очень многообещающе.
Похожие записи.
Одним из немаловажных факторов повышающих производительность процессора, является наличие кэш-памяти, а точнее её объём, скорость доступа и распределение по уровням.
Уже достаточно давно практически все процессоры оснащаются данным типом памяти, что ещё раз доказывает полезность её наличия. В данной статье, мы поговорим о структуре, уровнях и практическом назначении кэш-памяти, как об очень немаловажной характеристике процессора
.
Что такое кэш-память и её структура
Кэш-память – это сверхбыстрая память используемая процессором, для временного хранения данных, которые наиболее часто используются. Вот так, вкратце, можно описать данный тип памяти.
Кэш-память построена на триггерах, которые, в свою очередь, состоят из транзисторов. Группа транзисторов занимает гораздо больше места, нежели те же самые конденсаторы, из которых состоит оперативная память
. Это тянет за собой множество трудностей в производстве, а также ограничения в объёмах. Именно поэтому кэш память является очень дорогой памятью, при этом обладая ничтожными объёмами. Но из такой структуры, вытекает главное преимущество такой памяти – скорость. Так как триггеры не нуждаются в регенерации, а время задержки вентиля, на которых они собраны, невелико, то время переключения триггера из одного состояния в другое происходит очень быстро. Это и позволяет кэш-памяти работать на таких же частотах, что и современные процессоры.
Также, немаловажным фактором является размещение кэш-памяти. Размещена она, на самом кристалле процессора, что значительно уменьшает время доступа к ней. Ранее, кэш память некоторых уровней, размещалась за пределами кристалла процессора, на специальной микросхеме SRAM где-то на просторах материнской платы. Сейчас же, практически у всех процессоров, кэш-память размещена на кристалле процессора.
Для чего нужна кэш-память процессора?
Как уже упоминалось выше, главное назначение кэш-памяти – это хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, (около 4-16 Мбайт) в современных процессорах
, он дает значительный прирост производительности в любых приложениях.
Чтобы лучше понять необходимость кэш-памяти, давайте представим себе организацию памяти компьютера в виде офиса. Оперативная память будет являть собою шкаф с папками, к которым периодически обращается бухгалтер, чтобы извлечь большие блоки данных (то есть папки). А стол, будет являться кэш-памятью.
Есть такие элементы, которые размещены на столе бухгалтера, к которым он обращается в течение часа по несколько раз. Например, это могут быть номера телефонов, какие-то примеры документов. Данные виды информации находятся прямо на столе, что, в свою очередь,увеличивает скорость доступа к ним.
Точно так же, данные могут добавиться из тех больших блоков данных (папок), на стол, для быстрого использования, к примеру, какой-либо документ. Когда этот документ становится не нужным, его помещают назад в шкаф (в оперативную память), тем самым очищая стол (кэш-память) и освобождая этот стол для новых документов, которые будут использоваться в последующий отрезок времени.
Также и с кэш-памятью, если есть какие-то данные, к которым вероятнее всего будет повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто, это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих данных. То есть, здесь присутствует наличие предположений о том, что же будет использовано «после». Вот такие непростые принципы функционирования.
Уровни кэш-памяти процессора
Современные процессоры, оснащены кэшем, который состоит, зачастую из 2–ух или 3-ёх уровней. Конечно же, бывают и исключения, но зачастую это именно так.
В общем, могут быть такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень). Теперь немного подробнее по каждому из них:
Кэш первого уровня (L1)
– наиболее быстрый уровень кэш-памяти, который работает напрямую с ядром процессора, благодаря этому плотному взаимодействию, данный уровень обладает наименьшим временем доступа и работает на частотах близких процессору. Является буфером между процессором и кэш-памятью второго уровня.
Мы будем рассматривать объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)
Кэш второго уровня (L2)
– второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.
Кэш третьего уровня (L3)
– третий уровень, опять же, более медленный, нежели два предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для всего процессора. Показатель довольно солидный, но не заоблачный. Так как, к примеру, у процессоров Extreme-серии по типу i7-3960X, он равен 15Мб, а у некоторых новых процессоров Xeon, более 20.
Насколько важен кэш L3 для процессоров AMD?
Действительно, имеет смысл оснащать многоядерные процессоры выделенной памятью, которая будет использоваться совместно всеми доступными ядрами. В данной роли быстрый кэш третьего уровня (L3) может существенно ускорить доступ к данным, которые запрашиваются чаще всего. Тогда ядрам, если существует такая возможность, не придётся обращаться к медленной основной памяти (ОЗУ, RAM).
По крайней мере, в теории. Недавно AMD анонсировала процессор Athlon II X4
, представляющий собой модель Phenom II X4 без кэша L3, намекая на то, что он не такой и необходимый. Мы решили напрямую сравнить два процессора (с кэшем L3 и без), чтобы проверить, как кэш влияет на производительность.
Нажмите на картинку для увеличения.
Как работает кэш?
Перед тем, как мы углубимся в тесты, важно понять некоторые основы. Принцип работы кэша довольно прост. Кэш буферизует данные как можно ближе к вычислительным ядрам процессора, чтобы снизить запросы CPU в более отдалённую и медленную память. У современных настольных платформ иерархия кэша включает целых три уровня, которые предваряют доступ к оперативной памяти. Причём кэши второго и, в частности, третьего уровней служат не только для буферизации данных. Их цель заключается в предотвращении перегрузки шины процессора, когда ядрам необходимо обменяться информацией.
Попадания и промахи
Эффективность архитектуры кэшей измеряется процентом попаданий. Запросы данных, которые могут быть удовлетворены кэшем, считаются попаданиями. Если данный кэш не содержит нужные данные, то запрос передаётся дальше по конвейеру памяти, и засчитывается промах. Конечно, промахи приводят к большему времени, которое требуется для получения информации. В результате в вычислительном конвейере появляются «пузырьки» (простои) и задержки. Попадания, напротив, позволяют поддержать максимальную производительность.
Запись в кэш, эксклюзивность, когерентность
Политики замещения диктуют, как в кэше освобождается место под новые записи. Поскольку данные, записываемые в кэш, рано или поздно должны появиться в основной памяти, системы могут делать это одновременно с записью в кэш (write-through) или могут маркировать данные области как «грязные» (write-back), а выполнять запись в память тогда, когда она будет вытесняться из кэша.
Данные в нескольких уровнях кэша могут храниться эксклюзивно, то есть без избыточности. Тогда вы не найдёте одинаковых строчек данных в двух разных иерархиях кэша. Либо кэши могут работать инклюзивно, то есть нижние уровни кэша гарантированно содержат данные, присутствующие в верхних уровнях кэша (ближе к процессорному ядру). У AMD Phenom используются эксклюзивный кэш L3, а Intel следует стратегии инклюзивного кэша. Протоколы когерентности следят за целостностью и актуальностью данных между разными ядрами, уровнями кэшей и даже процессорами.
Объём кэша
Больший по объёму кэш может содержать больше данных, но при этом наблюдается тенденция увеличения задержек. Кроме того, большой по объёму кэш потребляет немалое количество транзисторов процессора, поэтому важно находить баланс между «бюджетом» транзисторов, размером кристалла, энергопотреблением и производительностью/задержками.
Ассоциативность
Записи в оперативной памяти могут привязываться к кэшу напрямую (direct-mapped), то есть для копии данных из оперативной памяти существует только одна позиция в кэше, либо они могут быть ассоциативны в n-степени (n-way associative), то есть существует n возможных расположений в кэше, где могут храниться эти данные. Более высокая степень ассоциативности (вплоть до полностью ассоциативных кэшей) обеспечивает наилучшую гибкость кэширования, поскольку существующие данные в кэше не нужно переписывать. Другими словами, высокая n-степень ассоциативности гарантирует более высокий процент попаданий, но при этом увеличивается задержка, поскольку требуется больше времени на проверку всех этих ассоциаций для попадания. Как правило, наибольшая степень ассоциации разумна для последнего уровня кэширования, поскольку там доступна максимальная ёмкость, а поиск данных за пределами этого кэша приведёт к обращению процессора к медленной оперативной памяти.
Приведём несколько примеров: у Core i5 и i7 используется 32 кбайт кэша L1 с 8-way ассоциативностью для данных и 32 кбайт кэша L1 с 4-way для инструкций. Понятно желание Intel, чтобы инструкции были доступны быстрее, а у кэша L1 для данных был максимальный процент попаданий. Кэш L2 у процессоров Intel обладает 8-way ассоциативностью, а кэш L3 у Intel ещё «умнее», поскольку в нём реализована 16-way ассоциативность для максимизации попаданий.
Однако AMD следует другой стратегии с процессорами Phenom II X4, где используется кэш L1 с 2-way ассоциативностью для снижения задержек. Чтобы компенсировать возможные промахи ёмкость кэша была увеличена в два раза: 64 кбайт для данных и 64 кбайт для инструкций. Кэш L2 имеет 8-way ассоциативность, как и у дизайна Intel, но кэш L3 у AMD работает с 48-way ассоциативностью. Но решение выбора той или иной архитектуры кэша нельзя оценивать без рассмотрения всей архитектуры CPU. Вполне естественно, что практическое значение имеют результаты тестов, и нашей целью как раз была практическая проверка всей этой сложной многоуровневой структуры кэширования.
Каждый современный процессор имеет выделенный кэш, которых хранит инструкции и данные процессора, готовые к использованию практически мгновенно. Этот уровень обычно называют первым уровнем кэширования или L1, впервые такой кэш появился у процессоров 486DX. Недавно процессоры AMD стали стандартно использовать по 64 кбайт кэша L1 на ядро (для данных и инструкций), а процессоры Intel используют по 32 кбайт кэша L1 на ядро (тоже для данных и инструкций)
Кэш первого уровня впервые появился на процессорах 486DX, после чего он стал составной функцией всех современных CPU.
Кэш второго уровня (L2) появился на всех процессорах после выхода Pentium III, хотя первые его реализации на упаковке были в процессоре Pentium Pro (но не на кристалле). Современные процессоры оснащаются до 6 Мбайт кэш-памяти L2 на кристалле. Как правило, такой объём разделяется между двумя ядрами на процессоре Intel Core 2 Duo, например. Обычные же конфигурации L2 предусматривают 512 кбайт или 1 Мбайт кэша на ядро. Процессоры с меньшим объёмом кэша L2, как правило, относятся к нижнему ценовому уровню. Ниже представлена схема ранних реализаций кэша L2.
У Pentium Pro кэш L2 находился в упаковке процессора. У последовавших поколений Pentium III и Athlon кэш L2 был реализован через отдельные чипы SRAM, что было в то время очень распространено (1998, 1999).
Последовавшее объявление техпроцесса до 180 нм позволило производителям, наконец, интегрировать кэш L2 на кристалл процессора.
Первые двуядерные процессоры просто использовали существующие дизайны, когда в упаковку устанавливалось два кристалла. AMD представила двуядерный процессор на монолитном кристалле, добавила контроллер памяти и коммутатор, а Intel для своего первого двуядерного процессора просто собрала два одноядерных кристалла в одной упаковке.
Впервые кэш L2 стал использоваться совместно двумя вычислительными ядрами на процессорах Core 2 Duo. AMD пошла дальше и создала свой первый четырёхъядерный Phenom «с нуля», а Intel для своего первого четырёхъядерного процессора вновь использовала пару кристаллов, на этот раз уже два двуядерных кристалла Core 2, чтобы снизить расходы.
Кэш третьего уровня существовал ещё с первых дней процессора Alpha 21165 (96 кбайт, процессоры представлены в 1995) или IBM Power 4 (256 кбайт, 2001). Однако в архитектурах на основе x86 кэш L3 впервые появился вместе с моделями Intel Itanium 2, Pentium 4 Extreme (Gallatin, оба процессора в 2003 году) и Xeon MP (2006).
Первые реализации давали просто ещё один уровень в иерархии кэша, хотя современные архитектуры используют кэш L3 как большой и общий буфер для обмена данными между ядрами в многоядерных процессорах. Это подчёркивает и высокая n-степень ассоциативности. Лучше поискать данные чуть дольше в кэше, чем получить ситуацию, когда несколько ядер используют очень медленный доступ к основной оперативной памяти. AMD впервые представила кэш L3 на процессоре для настольных ПК вместе с уже упоминавшейся линейкой Phenom. 65-нм Phenom X4 содержал 2 Мбайт общего кэша L3, а современные 45-нм Phenom II X4 имеют уже 6 Мбайт общего кэша L3. У процессоров Intel Core i7 и i5 используется 8 Мбайт кэша L3.
Современные четырёхъядерные процессоры имеют выделенные кэши L1 и L2 для каждого ядра, а также большой кэш L3, являющийся общим для всех ядер. Общиё кэш L3 также позволяет обмениваться данными, над которыми ядра могут работать параллельно.
Как работает CPU Cache и что такое L1, L2 и L3?
Компьютерные процессоры значительно продвинулись за последние несколько лет, размер транзисторов с каждым годом уменьшается, а достижения достигают точки, когда закон Мура быстро становится излишним.
Что касается процессоров, то учитываются не только транзисторы и частоты, но и кэш.
Возможно, вы слышали о кэш-памяти, когда обсуждаются процессоры (центральные процессоры). Тем не менее, мы не обращаем слишком много внимания на эти цифры, и при этом они не являются основной изюминкой этих процессоров.
Итак, насколько важен кэш процессора и как он работает?
Что такое кэш процессора?
Проще говоря, кеш — это просто очень быстрый тип памяти. Как вы, возможно, знаете, компьютер имеет несколько типов памяти. Существует основное хранилище, такое как жесткий диск или твердотельный накопитель, на котором хранится большая часть данных — операционная система и все программы.
Далее у нас есть оперативная память, обычно известная как RAM. Это намного быстрее, чем основное хранилище.
Наконец, процессор имеет даже более быстрые блоки памяти внутри себя, которые мы называем кешем.
Память в компьютере имеет иерархию, основанную на скорости, и кеш стоит на вершине этой иерархии, будучи самым быстрым. Он также ближе всего к центральному процессору, являясь частью самого ЦП.
Кэш-память — это статическая память (SRAM) по сравнению с системной памятью, которая является динамической памятью (DRAM). Статическая RAM — это та, которая может хранить данные без необходимости постоянного обновления, в отличие от DRAM, что делает SRAM идеальным для использования в кэш-памяти.
Как работает CPU Cache?
Как вы, возможно, уже знаете, программа разработана в виде набора инструкций для запуска процессором. Когда вы запускаете программу, эти инструкции должны пройти путь от основного хранилища до ЦП. Это где иерархия памяти вступает в игру.
Сначала данные загружаются в ОЗУ, а затем отправляются в ЦП. В наши дни процессоры способны выполнять огромное количество инструкций в секунду. Чтобы в полной мере использовать свою мощность, ЦПУ необходим доступ к сверхбыстрой памяти. Это где кеш приходит.
Контроллер памяти выполняет работу по извлечению данных из ОЗУ и отправке их в кэш. В зависимости от того, какой процессор находится в вашей системе, этот контроллер может быть либо на чипсете северного моста на материнской плате, либо внутри самого процессора.
Кеш затем выполняет перемотку данных внутри ЦП. Иерархия памяти существует и в кеше.
(Если вам интересно узнать, как работает сам ЦП, ознакомьтесь с нашей статьей, объясняющей основы работы ЦП.
.)
Уровни кэша: L1, L2 и L3
Кэш процессора разделен на три основных уровня: L1, L2 и L3. Иерархия здесь опять-таки в соответствии со скоростью и, следовательно, размером кэша.
Кэш-память L1 (уровня 1) — самая быстрая память, присутствующая в компьютерной системе. С точки зрения приоритета доступа, кэш L1 содержит данные, которые ЦПУ, скорее всего, понадобятся при выполнении определенной задачи.
Что касается размера, кэш L1 обычно занимает до 256 КБ. Тем не менее, некоторые действительно мощные процессоры теперь принимают его около 1 МБ. Некоторые серверные чипсеты (например, топовые процессоры Intel Xeon) теперь имеют где-то 1-2 МБ кэш-памяти первого уровня.
Кэш L1 также обычно разделяется двумя способами: на кэш команд и кэш данных. Кэш команд имеет дело с информацией об операции, которую должен выполнить ЦП, в то время как кэш данных содержит данные, над которыми должна быть выполнена операция.
Изображение предоставлено Intel
Кэш L2 (уровень 2) медленнее, чем кэш L1, но больше по размеру. Его размер обычно варьируется от 256 КБ до 8 МБ, хотя более новые и мощные процессоры, как правило, выходят за рамки этого. Кэш второго уровня содержит данные, которые, вероятно, будут доступны для ЦП в следующий раз. В большинстве современных процессоров кэши L1 и L2 присутствуют на самих ядрах процессора, причем каждое ядро получает свой собственный кэш.
Кэш-память третьего уровня (уровень 3) является самой большой кэш-памятью, а также самой медленной. Он может варьироваться от 4 до 50 МБ. Современные ЦП имеют выделенное пространство на кристалле ЦП для кеша L3, и оно занимает большую часть пространства.
Кэш Хит или Мисс и Латентность
Данные поступают из ОЗУ в кэш L3, затем в L2 и, наконец, в L1. Когда процессор ищет данные для выполнения операции, он сначала пытается найти их в кэше L1. Если процессор может его найти, условие называется попаданием в кэш. Затем он находит его в L2, а затем в L3.
Если он не находит данные, он пытается получить к ним доступ из основной памяти. Это называется пропуском кеша.
Теперь, как мы знаем, кэш предназначен для ускорения передачи информации между основной памятью и процессором. Время, необходимое для доступа к данным из памяти, называется задержкой. L1 имеет самую низкую задержку, будучи самой быстрой и ближайшей к ядру, а L3 имеет самую высокую. Задержка значительно возрастает при пропадании кэша. Это потому, что процессор должен получать данные из основной памяти.
Поскольку компьютеры становятся все быстрее и лучше, мы наблюдаем уменьшение задержки. Теперь у нас есть оперативная память DDR4 с низкой задержкой и сверхбыстрые твердотельные накопители с низким временем доступа в качестве основного хранилища, которые значительно сокращают общую задержку. Если вы хотите узнать больше о том, как работает RAM, вот наш быстрый и грязный путеводитель по RAM
,
Ранее в конструкциях кешей использовались кэши L2 и L3 вне ЦП, что отрицательно сказывалось на задержке.
Однако прогресс в процессах изготовления, связанных с транзисторами ЦП, позволил разместить миллиарды транзисторов в меньшем пространстве, чем раньше. В результате для кеша остается больше места, что позволяет кешу быть как можно ближе к ядру, значительно сокращая время ожидания.
Будущее Кеша
Дизайн кэша постоянно развивается, особенно когда память становится дешевле, быстрее и плотнее. Intel и AMD внесли свою долю экспериментов с дизайном кеша, а Intel даже экспериментировала с кешем L4. Рынок процессоров движется вперед быстрее, чем когда-либо.
При этом мы обязательно увидим, как дизайн кэша идет в ногу с постоянно растущей мощностью процессоров.
Кроме того, многое делается для устранения узких мест, которые есть у современных компьютеров. Уменьшение задержки памяти, пожалуй, самая большая ее часть. Отрасль работает над решениями для того же самого, и будущее выглядит действительно многообещающим.
Возможно, вы даже слышали о Intel Optane, который можно использовать как своего рода гибридный внешний кэш. Если вы этого не сделали, ознакомьтесь с нашей статьей, в которой рассматриваются потенциальные приложения Intel Optane.
,
L2 и L3 кеш: в чем разница?
- Проекты
- Новости
- L2 и L3 кеш: в чем разница?
ЦП имеют несколько уровней кэширования. Мы обсуждали структуры кэша в целом в нашем объяснении L1 и L2, но мы не потратили столько времени на обсуждение того, как работает L3 или чем он отличается от кеша L1 или L2.
На простейшем уровне кэш L3 — это просто более крупная и медленная версия кеша L2. Раньше, когда большинство чипов были одноядерными процессорами, в целом это было правдой. Первые кэши L3 были фактически построены на самой материнской плате, подключенной к процессору через заднюю шину (в отличие от передней шины). Когда AMD выпустила семейство процессоров K6-III, многие существующие материнские платы K6 / K-2 могли также принять K6-III. Обычно на этих платах было от 512 КБ до 2 МБ кэш-памяти второго уровня — когда был вставлен K6-III со встроенным кешем второго уровня, эти более медленные кэши на базе материнской платы вместо этого стали кэшами третьего уровня.
На рубеже веков установка дополнительного кэша L3 на чипе стала простым способом повысить производительность — первым ориентированным на потребителя процессором Pentium 4 Extreme Edition от Intel был перепрофилированный Gallatin Xeon с 2 МБ L3 на кристалле. Добавление этого кэша было достаточным, чтобы купить Pentium 4 EE на 10-20 процентов прироста производительности по сравнению со стандартной линейкой Northwood.
Кэш и многоядерный Curveball
По мере того как многоядерные процессоры стали более распространенными, кэш L3 стал чаще появляться на потребительском оборудовании. Эти чипы, такие как Intel Nehalem и AMD K10 (Barcelona), использовали L3 как нечто большее, чем просто более крупный и медленный блокиратор для L2. В дополнение к этой функции кэш L3 часто используется всеми процессорами на одном кристалле. В этом отличие от кешей L1 и L2, которые, как правило, являются частными и предназначены для нужд каждого конкретного ядра. (Конструкция AMD Bulldozer является исключением — Bulldozer, Piledriver и Steamroller используют общий кэш инструкций L1 между двумя ядрами в каждом модуле). Процессоры AMD Ryzen, основанные на ядрах Zen, Zen + и Zen 2, имеют общий L3, но структура модулей AMD CCX оставила ЦП функционирующим так, как будто у него было 2 кэша L3 по 8 МБ, по одному для каждого кластера CCX, а не один большой , унифицированный кэш L3, как у стандартных процессоров Intel.
Частные кэши L1 / L2 и общий L3 — далеко не единственный способ разработать иерархию кешей, но это общий подход, принятый несколькими поставщиками. Предоставление каждому отдельному ядру выделенных L1 и L2 сокращает задержки доступа и снижает вероятность конфликта кешей — это означает, что два разных ядра не будут перезаписывать важные данные, которые другое размещает в одном месте, в пользу своей собственной рабочей нагрузки. Общий кэш L3 медленнее, но намного больше, что означает, что он может хранить данные для всех ядер одновременно. Сложные алгоритмы используются, чтобы гарантировать, что Core 0 стремится хранить информацию, ближайшую к себе, в то время как Core 7 через кристалл также помещает необходимые данные ближе к себе.
В отличие от L1 и L2, которые почти всегда ориентированы на ЦП и являются частными, L3 также может использоваться совместно с другими устройствами или возможностями. Процессоры Intel Sandy Bridge использовали кэш L3 объемом 8 МБ совместно с встроенным графическим ядром (Ivy Bridge предоставил графическому процессору собственный выделенный фрагмент кеша L3 вместо всех 8 МБ). В документации Intel Tiger Lake указано, что кэш встроенного процессора также может функционировать как LLC для графического процессора.
В отличие от кешей L1 и L2, оба из которых обычно являются фиксированными и различаются очень незначительно (и в основном для бюджетных частей), AMD и Intel предлагают разные чипы со значительно различающимся количеством L3. Intel обычно продает как минимум несколько процессоров Xeon с меньшим количеством ядер, более высокими частотами и более высоким соотношением кэш-памяти L3 на процессор. AMD Epyc 7F52 объединяет полный кэш L3 объемом 256 МБ, всего 16 ядер и 32 потока.
Сегодня L3 характеризуется как пул быстрой памяти, общей для всех процессоров на SoC. Он часто блокируется независимо от остального ядра ЦП и может быть динамически разделен для баланса скорости доступа, энергопотребления и емкости хранилища. Хотя он и не так быстр, как L1 или L2, он часто более гибкий и играет жизненно важную роль в управлении межъядерным взаимодействием. Также нередко можно увидеть, что кеш-память L3 используется как LLC, совместно используемая ЦП и графическим процессором, или даже появляется огромный кеш-память L3 на видеокартах, таких как архитектура AMD RDNA2.
Читать далее
4K против UHD: в чем разница?
Термины UHD и 4K стали настолько похожи друг на друга, что производители телевизоров, вещательные компании и технические блоги используют их как синонимы — но это не одно и то же.
Infinity Cache функционально похож на CPU-кэш L3
И, наконец, загадочный Infinity Cache. В презентации AMD о нем говорится преступно мало, но если вкратце, то это большой кэш, который установлен в чип, и, по словам AMD, функционально похож на CPU-кэш L3. Как сильно они похожи, нам еще только предстоит увидеть, но концептуально это что-то вроде локального кэша, буферизирующего операции чтения и записи данных, обращенные к главной памяти, и служащего подстраховкой для больших операций, которые во много раз быстрее, чем требуется при работе с VRAM.
Кэши в видеопроцессорах – это не новая идея, особенно для AMD. Компания встроила 32-мегабайтный кэш eSRAM в SoC-систему Xbox One (и Xbox One S), а до этого в Xbox 360 был встроенный кэш eDRAM. Но это первый случай, когда большой кэш был встроен в GPU для ПК.
Чип Navi 21 будет оснащен 128-мегабайтным кэшем Infinity Cache. О других видеочипах AMD пока ничего не говорила, но в них, вероятно, будут встроены более маленькие кэши, т.к. быстрые кэши занимают слишком много чипового пространства.
Поэтому здесь есть смысл поговорить о размере Infinity Cache. Если вкратце, то судя по имеющимся сейчас данным, можно предположить, что AMD выделила для него на удивление большую часть своего транзисторного лимита. Если предположить, что AMD использует стандартные 6-транзисторные SRAM-ячейки, то, по предварительным расчетам, размер Infinity Cache в Navi 21 будет составлять как минимум 6 млрд транзисторов, что много даже для 7-нанометрового техпроцесса TSMC (для сравнения, Navi 10 суммарно состоит из 10. 3 млрд транзисторов). Полагаю, в арсенале AMD есть оптимизационные методы для минимизации количества транзисторов и занимаемого ими места, но даже с учетом этого чиповое пространство, которое им придется выделить для Infinity Cache, обещает быть немалым. Но, видимо, они готовы пойти на этот архитектурный компромисс.
AMD жертвует таким большим количеством транзисторов не просто так. У наличия на процессоре (даже если это GPU) большого кэша есть несколько больших плюсов. Например, что касается показателя «производительности на ватты», кэш улучшит энергоэффективность RDNA2, снизив объем трафика, который иначе пошел бы в энергозатратную VRAM. Это также позволяет AMD избавиться от более маленьких подсистем памяти c DRAM-чипами и контроллерами памяти, снизив энергопотребление еще и по этому фронту. Аналогично AMD отчасти обосновывает использование кэша тем, что энергозатраты на его использования меньше, чем при использовании 384-битной шины. Если конкретнее, 256-битная шина с Infinity Cache потребляет лишь 90% энергии 384-битного решения, при этом увеличивая пиковую пропускную способность более, чем вдвое.
Более того, согласно AMD, этот кэш повышает объем работы, выполняемый на GPU в реальном времени за один тактовый цикл – это достигается, вероятно, за счет того, что GPU более быстро извлекает данные, не ожидая, пока они придут из VRAM. И, наконец, Infinity Cache также крайне важен для работы ядер Ray Accelerator, хранящих в кэше существенную часть BVH-данных сцены.
Но, по сути, это было лишь тизером Infinity Cache. К нему есть вопросы не только по поводу чипового пространства, но и насчет производительности, свободы использования (будет ли у разработчиков прямой доступ к нему?) и насколько хорошо он совместим с современным ПО. Выделение столь большого места под встроенный кэш – это, в принципе, спорное решение, но здесь стоит добавить, что хотя Microsoft использовала похожую стратегию для Xbox One, она в то же время оснастила Xbox One X проверенной и объемной GDDR-шиной. Поэтому мне очень любопытно, как AMD с помощью относительно небольшого 128-мегабайтного кэша компенсирует то, что могло бы быть VRAM с 4 и более Гб памяти и пропускной способностью 256 Гбит/с и выше. Из всего, что AMD показала на той презентации, Infinity Cache – это самое революционное изменение, но также самое сомнительное с точки зрения использования его на ПК-шных GPU.
Наконец, касаемо Infinity Cache стоит добавить, что AMD никак не упомянула консоли. Хотя Infinity Cache заявлен как центральная часть архитектуры RDNA2, на данный момент пока неясно, собираются ли вообще производители консолей оснащать им свои устройства (хотя бы в минимальной форме). PS5 и XSX будут укомплектованы большими DRAM-подсистемами, и никто из производителей консолей, публикуя технические подробности о своих девайсах, пока даже словом не упоминал большой кэш.
Explainer: L1 vs. L2 vs. L3 Cache
Каждый процессор любого компьютера, от дешевого ноутбука до сервера за миллион долларов, будет иметь что-то, называемое кешем. Скорее всего, он будет обладать и несколькими уровнями.
Это должно быть важно, иначе зачем это было? Но что делает кеш и зачем нужны разные уровни материала? Что, черт возьми, вообще означает ассоциативный 12-позиционный набор?
Что такое кеш?
TL; DR: Это маленькая, но очень быстрая память , которая находится рядом с логическими модулями ЦП.
Но, конечно, мы можем узнать гораздо больше о кеше …
Начнем с воображаемой волшебной системы хранения: она бесконечно быстрая, может обрабатывать бесконечное количество транзакций с данными одновременно и всегда обеспечивает безопасность и надежность данных. Не то чтобы что-то даже отдаленно относящееся к этому, существует, но если бы это было, конструкция процессора была бы намного проще.
ЦП
потребуются только логические блоки для сложения, умножения и т. Д. И система для обработки передачи данных.Это связано с тем, что наша теоретическая система хранения может мгновенно отправлять и получать все необходимые числа; ни один из логических блоков не будет задерживаться в ожидании транзакции данных.
Но, как мы все знаем, нет никакой волшебной технологии хранения. Вместо этого у нас есть жесткие или твердотельные накопители, и даже самые лучшие из них даже не способны удаленно обрабатывать все передачи данных, необходимые для типичного процессора.
Великий Т’Фон хранения данных
Причина в том, что современные процессоры невероятно быстры — им требуется всего один такт, чтобы сложить два 64-битных целых числа вместе, а для процессора, работающего на частоте 4 ГГц, это будет всего 0.00000000025 секунд или четверть наносекунды.
Между тем, вращению жестких дисков требуются тысячи наносекунд только для того, чтобы найти данные на дисках внутри, не говоря уже о их передаче, а твердотельным накопителям по-прежнему требуются десятки или сотни наносекунд.
Очевидно, что такие диски не могут быть встроены в процессоры , так что это означает, что между ними будет физическое разделение. Это просто добавляет больше времени на перемещение данных, что еще больше усугубляет ситуацию.
Великий А’Туин хранения данных, к сожалению
Итак, нам нужна еще одна система хранения данных, которая находится между процессором и основным хранилищем.Он должен быть быстрее, чем диск, иметь возможность обрабатывать большое количество данных одновременно и быть намного ближе к процессору.
Что ж, у нас уже есть такая вещь, и она называется RAM, и каждая компьютерная система имеет ее для этой цели.
Почти все хранилища такого типа — это DRAM (динамическая память с произвольным доступом) , и она способна передавать данные намного быстрее, чем любой диск.
Однако, хотя DRAM работает очень быстро, в ней невозможно хранить столько данных.
Некоторые из самых больших микросхем памяти DDR4 производства Micron, одного из немногих производителей DRAM, вмещают 32 Гб или 4 Гб данных; самые большие жесткие диски содержат в 4000 раз больше, чем это.
Итак, хотя мы улучшили скорость нашей сети передачи данных, потребуются дополнительные системы — аппаратное и программное обеспечение — для определения того, какие данные должны храниться в ограниченном объеме DRAM, готовые для ЦП.
По крайней мере DRAM может быть произведено как в корпусе микросхемы (известном как встроенная DRAM).Однако процессоры довольно малы, поэтому вы не можете в них так сильно втиснуться.
10 МБ DRAM слева от графического процессора Xbox 360. Источник: CPU Grave Yard
Подавляющее большинство DRAM расположено рядом с процессором, подключено к материнской плате, и это всегда ближайший к процессору компонент в компьютерной системе. И тем не менее, все равно недостаточно быстро …
DRAM по-прежнему требует около 100 наносекунд для поиска данных, но, по крайней мере, он может передавать миллиарды бит каждую секунду.Похоже, нам понадобится еще один этап памяти, чтобы быть между модулями процессора и DRAM.
Войдите в этап слева: SRAM (статическая память с произвольным доступом , ). В то время как DRAM использует микроскопические конденсаторы для хранения данных в виде электрического заряда, SRAM использует транзисторы, чтобы делать то же самое, и они могут работать почти так же быстро, как логические блоки в процессоре (примерно в 10 раз быстрее, чем DRAM).
У SRAM есть, конечно, недостаток, и опять же, речь идет о пространстве.
Память на основе транзисторов
занимает на лот на больше места, чем DRAM: для чипа DDR4 того же размера 4 ГБ вы получите менее 100 МБ SRAM. Но поскольку это делается с помощью того же процесса, что и создание ЦП, SRAM может быть встроена прямо внутри процессора, как можно ближе к логическим модулям.
Транзисторная память занимает намного больше места, чем DRAM: для чипа DDR4 того же размера 4 ГБ вы получите менее 100 МБ SRAM.
С каждым дополнительным этапом мы увеличиваем скорость перемещения данных до стоимости того, сколько мы можем хранить. Мы могли бы добавить больше разделов, каждый из которых будет быстрее, но меньше.
Итак, мы приходим к более техническому определению того, что такое кеш: это несколько блоков SRAM, все они расположены внутри процессора; они используются для обеспечения максимальной занятости логических модулей, отправляя и сохраняя данные на сверхбыстрых скоростях. Доволен этим? Хорошо — потому что с этого момента все станет намного сложнее!
Кэш: многоуровневый паркинг
Как мы уже говорили, кэш необходим, потому что не существует волшебной системы хранения, которая могла бы справиться с требованиями данных логических блоков в процессоре.Современные ЦП и графические процессоры содержат ряд блоков SRAM, которые внутренне организованы в иерархию — последовательность кэшей, упорядоченных следующим образом:
На изображении выше ЦП представлен черным пунктирным прямоугольником. ALU (устройства арифметической логики) находятся в крайнем левом углу; это структуры, которые приводят в действие процессор, обрабатывая математические вычисления, которые выполняет чип. Хотя технически это не кэш, ближайшим к ALU уровнем памяти являются регистры (они сгруппированы вместе в файл регистров ).
Каждый из них содержит одно число, например 64-битное целое число; само значение может быть частью данных о чем-то, кодом для конкретной инструкции или адресом памяти некоторых других данных.
Регистровый файл в ЦП настольного компьютера довольно мал — например, в Intel Core i9-9900K их два банка в каждом ядре, а один для целых чисел содержит всего 180 64-битных регистров. Другой файл регистров для векторов (небольших массивов чисел) имеет 168 256-битных записей.Таким образом, общий файл регистров для каждого ядра немного меньше 7 КБ. Для сравнения, размер регистрового файла в потоковых мультипроцессорах (эквивалент графического процессора ядра процессора) Nvidia GeForce RTX 2080 Ti составляет 256 КБ.
Регистры
представляют собой SRAM, как и кеш, но они так же быстры, как и обслуживаемые ими ALU, вставляя и выводя данные за один такт. Но они не предназначены для хранения большого количества данных (только одного их фрагмента), поэтому поблизости всегда есть несколько больших блоков памяти: это кеш уровня 1.
Intel Skylake CPU, увеличенное изображение одного ядра. Источник: Wikichip
Это изображение является увеличенным в увеличенном масштабе одноядерным процессором Intel Skylake для настольных ПК.
ALU и файлы регистров можно увидеть слева, они выделены зеленым цветом. В верхней средней части изображения белым цветом находится кэш данных уровня 1. Он не содержит много информации, всего 32 кБ, но, как и регистры, он очень близок к логическим блокам и работает с той же скоростью, что и они.
Другой белый прямоугольник указывает кэш инструкций уровня 1, также размером 32 кБ. Как следует из названия, в нем хранятся различные команды, готовые к разделению на более мелкие, так называемые микрооперации (обычно обозначаемые как μops) для выполнения ALU. Для них также есть кеш, и вы можете классифицировать его как уровень 0, поскольку он меньше (всего 1500 операций) и ближе, чем кеши L1.
Вам может быть интересно, почему эти блоки SRAM такие маленькие; почему они не размером в мегабайт? Вместе кеши данных и инструкций занимают в микросхеме почти такое же пространство, что и основные логические блоки, поэтому их увеличение приведет к увеличению общего размера кристалла.
Но основная причина, по которой они занимают всего несколько килобайт, заключается в том, что время, необходимое для поиска и извлечения данных, увеличивается по мере увеличения объема памяти. Кэш L1 должен быть очень быстрым, поэтому должен быть достигнут компромисс между размером и скоростью — в лучшем случае требуется около 5 тактовых циклов (больше для значений с плавающей запятой), чтобы получить данные из этого кеша, готовые к использованию. .
Кэш L2
Skylake: 256 КБ SRAM хорошего качества
Но если бы это был единственный кэш внутри процессора, его производительность резко упала бы.Вот почему все они имеют другой уровень памяти, встроенный в ядра: кеш уровня 2. Это общий блок хранения, содержащий инструкции и данные.
Он всегда немного больше, чем уровень 1: процессоры AMD Zen 2 имеют емкость до 512 КБ, поэтому кеши нижнего уровня можно поддерживать в хорошем состоянии. Однако за этот дополнительный размер приходится платить, и на поиск и передачу данных из этого кеша уходит примерно вдвое больше времени по сравнению с уровнем 1.
Возвращаясь в прошлое, во времена оригинального Intel Pentium, кэш уровня 2 представлял собой отдельный чип, либо на небольшой съемной плате (например, RAM DIMM), либо встроенный в основную материнскую плату.В конечном итоге он проник в сам корпус ЦП, пока не был окончательно интегрирован в кристалл ЦП, как в процессорах Pentium III и AMD K6-III.
За этим развитием вскоре последовал другой уровень кэш-памяти, предназначенный для поддержки других более низких уровней, и это произошло из-за появления многоядерных чипов.
Чип Intel Kaby Lake. Источник: Wikichip
На этом изображении микросхемы Intel Kaby Lake показаны 4 ядра в центре слева (интегрированный графический процессор занимает почти половину кристалла справа).Каждое ядро имеет свой собственный «частный» набор кешей уровней 1 и 2 (белые и желтые выделения), но они также поставляются с третьим набором блоков SRAM.
Кэш
уровня 3, даже если он находится непосредственно вокруг одного ядра, полностью используется совместно с другими — каждый может свободно получать доступ к содержимому кэша третьего уровня другого. Он намного больше (от 2 до 32 МБ), но также намного медленнее, в среднем за 30 циклов, особенно если ядру необходимо использовать данные, которые находятся в блоке кеша на некотором расстоянии.
Ниже мы видим одно ядро в архитектуре AMD Zen 2: кэш данных и инструкций уровня 1 объемом 32 КБ выделен белым, уровень 2 512 КБ — желтым, а огромный блок кэша L3 размером 4 МБ — красным.
AMD Zen 2 CPU, увеличенное изображение одного ядра. Источник: Fritzchens Fritz
Подождите секунду. Как 32 КБ могут занимать больше физического пространства, чем 512 КБ? Если уровень 1 содержит так мало данных, почему он пропорционально намного больше, чем кеш L2 или L3?
Больше, чем просто число
Cache повышает производительность за счет ускорения передачи данных в логические блоки и хранения копии часто используемых инструкций и данных поблизости. Информация, хранящаяся в кэше, делится на две части: сами данные и место, где они были изначально расположены в системной памяти / хранилище — этот адрес называется тегом кеш-памяти .
Когда ЦП выполняет операцию, которая хочет читать или записывать данные из / в память, он начинает с проверки тегов в кэше уровня 1. Если требуемый присутствует (попадание в кэш ), к этим данным можно получить доступ почти сразу. Кэш промах происходит, когда требуемый тег не находится на самом низком уровне кэша.
Таким образом, в кэше L1 создается новый тег, и остальная часть архитектуры процессора берет на себя ответственность, перебирая другие уровни кэша (вплоть до основного запоминающего устройства, если необходимо), чтобы найти данные для этого тега. .Но чтобы освободить место в кэше L1 для этого нового тега, в L2 обязательно нужно загрузить что-то еще.
Это приводит к почти постоянному перемешиванию данных, и все это достигается всего за несколько тактов. Единственный способ добиться этого — создать сложную структуру вокруг SRAM для управления данными. Другими словами: если бы ядро ЦП состояло только из одного ALU, то кеш L1 был бы намного проще, но поскольку их десятки (многие из которых будут манипулировать двумя потоками инструкций), кеш требует нескольких подключений для сохранения все в движении.
Вы можете использовать бесплатные программы, такие как CPU-Z, для проверки информации кэша процессора, питающего ваш собственный компьютер. Но что означает вся эта информация? Важным элементом является метка , установленная ассоциативно — это все о правилах, обеспечивающих соблюдение того, как блоки данных из системной памяти копируются в кэш.
Приведенная выше информация о кэше предназначена для Intel Core i7-9700K. Каждый из его кэшей уровня 1 разделен на 64 маленьких блока, называемых наборами , и каждый из них далее делится на строк кэша (размером 64 байта).Ассоциативный набор означает, что блок данных из системной памяти отображается на строки кэша в одном конкретном наборе, а не может отображаться где угодно.
8-позиционная часть сообщает нам, что один блок может быть связан с 8 строками кэша в наборе. Чем выше уровень ассоциативности (т. Е. Больше «способов»), тем выше шансы получить попадание в кеш, когда ЦП ищет данные, и уменьшаются штрафы, вызванные промахами в кеше. Недостатком является то, что это добавляет сложности, увеличивает энергопотребление, а также может снизить производительность, поскольку для обработки блока данных требуется больше строк кэша.
L1 + L2, включая кэш, кэш жертвы L3, политики обратной записи, даже ECC. Источник: Fritzchens Fritz
Другой аспект сложности кеширования связан с тем, как данные хранятся на различных уровнях. Правила устанавливаются так называемой политикой включения . Например, процессоры Intel Core имеют полностью включенный кэш L1 + L3. Это означает, что одни и те же данные, например, на уровне 1, могут быть и на уровне 3. Это может показаться тратой ценного места в кэше, но преимущество состоит в том, что если процессор получает промах при поиске тега в более низком уровень, ему не нужно проходить через более высокий уровень, чтобы найти его.
В тех же процессорах кэш L2 не является включающим: любые данные, хранящиеся в нем, не копируются на какой-либо другой уровень. Это экономит место, но приводит к тому, что системе памяти чипа приходится искать пропущенный тег в L3 (который всегда намного больше). Кеши жертвы похожи на этот, но они используются для хранимой информации, которая выталкивается с более низкого уровня — например, процессоры AMD Zen 2 используют кэш жертвы L3, который просто хранит данные из L2.
Существуют и другие политики для кеширования, например, когда данные записываются в кэш и основную системную память.Они называются политиками записи , и большинство современных процессоров используют кэши с обратной записью ; это означает, что когда данные записываются на уровень кэша, происходит задержка перед обновлением системной памяти с их копией. По большей части эта пауза длится до тех пор, пока данные остаются в кеше — только после загрузки ОЗУ получает информацию.
Графический процессор Nvidia GA100 с 20 МБ кэш-памяти L1 и 40 МБ кэш-памяти второго уровня
Для разработчиков процессоров выбор объема, типа и политики кэш-памяти — это все о балансе между стремлением к большей производительности процессора и повышенной сложностью и требуемым пространством кристалла.Если бы было возможно иметь полностью ассоциативные кэши 1-го уровня объемом 20 МБ с 1000 адресами без того, чтобы чипы были размером с Манхэттен (и потребляли такую же мощность), то у всех нас были бы компьютеры с такими чипами!
Самый низкий уровень кешей в современных процессорах не сильно изменился за последнее десятилетие. Однако размер кеш-памяти 3-го уровня продолжает расти. Десять лет назад вы могли получить его 12 МБ, если бы вам посчастливилось владеть Intel i7-980X за 999 долларов. За половину этой суммы сегодня вы получаете 64 МБ.
Короче говоря,
Cache: абсолютно необходимые, совершенно потрясающие технологии. Мы не рассматривали другие типы кешей в процессорах и графических процессорах (например, буферы поиска перевода или кеши текстур), но, поскольку все они следуют простой структуре и шаблону уровней, как мы рассмотрели здесь, они, возможно, не будут звучать так сложный.
Был ли у вас компьютер с кэш-памятью L2 на материнской плате? Как насчет тех процессоров Pentium II и Celeron со слотами (например, 300a), которые входили в состав дочерней платы? Вы можете вспомнить свой первый процессор с общим L3? Дайте нам знать в комментариях.
Ярлыки покупок:
Продолжайте читать. Толкователи на TechSpot
Кэш — это король
Разрыв между производительностью процессоров в широком смысле и производительностью основной памяти DRAM, также в широком смысле, был проблемой в течение как минимум трех десятилетий, когда разрыв действительно начал открываться. И отдавая должное там, где это необходимо, инженеры по аппаратному и программному обеспечению, которые создали иерархию кеш-памяти, и программное обеспечение, которое могло бы использовать ее преимущества, были просто блестящими.Это одна из самых причудливых архитектурных построек, когда-либо созданных людьми.
Но поскольку мы находимся на пороге постоянно расширяющейся иерархии памяти, постоянная память, такая как Optane 3D XPoint (вариант памяти с фазовым переходом), приходит в форм-факторы DIMM и SSD и новые протоколы, такие как CXL, OpenCAPI, CCIX, NVLink и Представлены поколения Z для последовательного связывания памяти процессора и ускорителя (симметрично или асимметрично), и мы задумались: не пора ли еще добавить кеши уровня 4 на серверы? С таким количеством различных устройств, которые свисают с комплекса ЦП — некоторые относительно близко, а некоторые относительно далеки — логично задаться вопросом, потребуется ли еще один уровень кэша, чтобы замаскировать задержки этих других воспоминаний и повысить общую пропускную способность системы.
Чтобы понять, что может быть возможным, мы покопались в собственных воспоминаниях, а также обратились к архитекторам серверных микросхем в IBM, Intel, AMD и Marvell, чтобы узнать, что они думают об использовании кеш-памяти L4. память в серверах. Кэш L4 ни в коем случае не является новой разработкой, но он также не является обычным явлением в системных архитектурах.
Но прежде чем мы перейдем к этому, уместно немного предыстории.
Добавление кэшей уровня 1 к процессорам, у которых тогда было только одно ядро, в конце 1980-х привело к компромиссу между добавлением общей задержки в подсистему памяти в обмен на абсолютное снижение общей средней задержки для запросов данных и инструкций со стороны процессоры. Кеши L1 изначально были внешними SRAM, которые монтировались на материнских платах и подключались к комплексу CPU-памяти. Этот кэш L1 располагался очень близко, как по тактовому времени, так и по пространству материнской платы, к процессору, а это означало, что процессор мог быть загружен более загруженным, чем это было бы возможно в противном случае. В конце концов, эти кеши уровня 1 были разделены, чтобы в них можно было хранить часто используемые данные в одном блоке, а популярные инструкции — в другом, что помогло немного повысить производительность. В какой-то момент, когда тактовая частота процессора увеличилась, а разрыв между скоростью процессора и скоростью DRAM увеличился, в смесь были добавлены более толстые, но более медленные и дешевые (в расчете на бит или пропускную способность) кеши L2, снова сначала за пределами Пакет ЦП, а затем интегрированный в него.И когда к ЦП добавлялось все больше и больше ядер, а также больше контроллеров памяти DRAM для их питания, в иерархию добавлялись еще большие блоки кеш-памяти L3, чтобы эти ЦП получали питание.
По большей части это сработало довольно хорошо. И есть некоторые практические правила, которые мы видим в большинстве конструкций ЦП, которые отражают уровни иерархии кеша при обработке, поскольку мы рассматриваем возможный четвертый.
Крис Джанос, разработчик микросхем и архитектор в Intel, который руководил разработкой многих прошлых поколений процессоров Xeon, объяснил это следующим образом: «С каждым уровнем кэша обычно нам нужно увеличивать их на разумную величину по сравнению с предыдущими. уровень, чтобы иметь смысл, потому что вам нужен достаточно интересный показатель попаданий, чтобы действительно заметно повлиять на производительность вашей системы.Если вы попадаете в кеш только в нескольких процентах случаев, это, вероятно, будет трудно заметить. Все остальное снижает вашу производительность, и вы не слишком сильно двигали стрелку. Итак, вам нужны относительно большие кеши, а когда вы говорите о более высоких уровнях, вам нужны действительно большие . В наши дни наши L2 измеряются в мегабайтах, а наши L3 — в десятках или сотнях мегабайт. Итак, ясно, что если вы начнете думать о кэше L4, вы, вероятно, получите сотни мегабайт, если не гигабайты.И поскольку они большие, их стоимость определенно вызывает беспокойство. Вы должны выложить достаточно, чтобы сделать это интересным, и это будет недешево «.
Архитекторы AMD, которые не хотели, чтобы их приписывали напрямую, потому что во время этого разговора они не хотели, чтобы их неправильно истолковали с AMD, пообещав, что она добавит кэш L4 в линейку процессоров Epyc — и, чтобы быть ясным, AMD имеет ничего такого не сказал . Но он признал, что это следующая очевидная вещь, о которой стоит подумать, и, как и Intel, считает, что каждый архитектор думает о кешах L4, и поделился некоторыми своими мыслями на фоне.По сути, AMD заявляет, что компромисс между количеством слоев кеша и задержкой был хорошо изучен в промышленности и академических кругах, и что с каждым новым уровнем кеша, который больше, медленнее и шире используется, существует необходимый компромисс, который увеличивает общий путь к DRAM, потому что большинство проектов не будут постоянно спекулятивно обращаться к слоям кэша ниже по иерархии параллельно с поиском тегов кэша на верхних уровнях. Это именно то, о чем Intel также говорит выше, когда Джанос говорит, что вам нужно найти баланс между частотой обращений и емкостью кеша — и L4 ничем не отличается.
IBM, конечно же, добавила кэш L4 в некоторые из своих наборов микросхем X86 еще в 2000-х, а в 2010 году добавила кэш L4 в наборы микросхем межсоединения NUMA на своих мэйнфреймах System z11. У процессора z11 было четыре ядра, каждое с 64 КБ инструкций L1 и 128 КБ кэша данных L1, плюс 1,5 МБ кеш-памяти L2 на каждое ядро и 24 МБ общей кэш-памяти L3 для этих четырех ядер. Чипсет NUMA для z10 имел два банка по 96 МБ кэш-памяти L4, всего 192 МБ. В z12 IBM сократила кэш данных до 98 КБ на ядро, но увеличила кэш L2 на ядро до 2 МБ, разделив его на части команд и данных, как кэш L1; кэш L3 был увеличен вдвое до 48 МБ по шести ядрам на кристалле, а емкость кеша L4 была увеличена до 384 МБ для пары микросхем, реализованных на чипсете NUMA. На всех поколениях процессоров System z все кеши росли, и с появлением процессора z15, анонсированного в сентябре прошлого года, пара кешей L1 весит 128 КБ каждый, пара кешей L2 весит 4 МБ каждый, а общие Кэш L3 на 12 ядрах на кристалле составляет 256 МБ. Кэш L4 в ящике двигателей мэйнфреймов z15 имеет 960 МБ кэша L4 в наборе микросхем NUMA и в общей сложности 4,68 ГБ в системе с пятью ящиками, масштабируемой до 190 ядер.
Как мы уже отмечали ранее, у процессоров Power8 и Power9 была буферизованная память, и IBM добавила блок кэш-памяти L4 размером 16 МБ в каждый буфер «Centaur», получив в общей сложности 128 МБ кеш-памяти L4 на сокет из 32 модулей памяти палочки.В Power9 младшие машины не имеют буферизированной памяти и, следовательно, не имеют кеш-памяти L4. Архитекторы, которые делали проекты Power10 и делают проекты Power11, были в крайний срок на этой неделе и не могли сесть по телефону, но Уильям Старк, который руководил Power10, в любом случае сэкономил немного времени, чтобы добавить эту мысль в микс. :
«В целом, мы обнаружили, что большие кэши последнего уровня обеспечивают значительную производительность для корпоративных рабочих нагрузок», — объяснил Старк в интервью The Next Platform по электронной почте.(Мы говорили со Старком еще в августе 2019 года о повышении пропускной способности комплекса основной памяти с помощью микросхем Power9 и Power10. «Отдельно высокая задержка, связанная с технологиями постоянного хранения, такими как память с изменением фазы, как правило, вызывает острую потребность для кэширования — возможно, типа L4 — в иерархии памяти классов хранения ».
Именно так мы думали. И, кстати, мы не предполагаем, что кэш L4 обязательно будет располагаться рядом с буферизованной памятью на будущих модулях DDR5 DIMM.Он может лучше подходить между кэш-памятью PCI-Express и L3 на процессоре или, что еще лучше, в буферах памяти и между шиной PCI-Express и кешем L3. Это может означать установку его поверх микросхемы концентратора контроллера ввода-вывода и памяти в будущей архитектуре сервера на базе микросхем с чем-то похожим на технологию Intel Foveros.
Теперь, честно говоря, есть другой способ взглянуть на это, и это то, что у IBM был размер кристалла и транзисторы, с которыми можно было поиграть, и добавление кеша L4 в межсоединение System z NUMA или в микросхему буфера памяти Power8 и Power9 было не совсем цель сама по себе, но лучшее, что можно сделать с оставшимся бюджетом транзисторов, доступным на этих устройствах, после добавления других необходимых функций.Иногда мы думаем, что количество ядер в процессорах Intel X86 зависит от объема кеш-памяти третьего уровня, который может быть установлен. Иногда кажется, что Intel устанавливает бюджет кэша L3 на кристалл, а затем все становится на свои места для трех кристаллов Xeon разного размера — в последних поколениях, с 10, 18 или 28 ядрами, как оказывается на 14-нанометровых процессах.
Все это спорный вопрос, но это предполагает возможную мотивацию IBM и других производителей наборов микросхем для добавления кэша L4.Кому-то это могло не только помочь, но и попробовать было что-то очевидное. Мы думаем о таком монстре ввода-вывода, как мэйнфрейм System z, нет никаких сомнений в том, что у IBM есть кэш L4 именно там, где он работает лучше всего, и он приносит пользу клиентам, увеличивая пропускную способность этих машин и позволяя им работать на устойчивое использование ЦП от 98% до 99% , так как количество ядер процессора и масштаб NUMA в мэйнфреймах выросли.
Подумайте об этих процентах на секунду, когда в следующий раз услышите слово «мэйнфрейм» в научно-фантастическом шоу.(Я пью каждый раз, когда делаю это, и это забавная игра, если вы запойте смотреть подряд много разных научно-фантастических шоу. Никто никогда не говорит: «Система распределенных вычислений не работает …» Прошлое, настоящее , или будущее.)
Нет причин, по которым кэш L4 должен быть сделан из встроенной памяти DRAM (как IBM делает со своими чипами) или гораздо более дорогой SRAM, и Рабин Сугумар, архитектор микросхем в Cray Research, Sun Microsystems, Oracle, Broadcom, Cavium и Марвелл, напоминает нам об этом
«Наши L3 уже довольно большие, — говорит Сугумар. «Таким образом, кэш L4 должен быть выполнен по другой технологии для этого конкретного случая использования, о котором вы говорите. Может быть, eDRAM или даже HBM или DRAM. В этом контексте одна реализация кэша L4, которая кажется интересной, использует HBM в качестве кеша, и это не столько кеш задержки, сколько кеш полосы пропускания. Идея состоит в том, что, поскольку емкость HBM ограничена, а пропускная способность высока, мы могли бы получить некоторый прирост производительности — и мы действительно видим значительный выигрыш в случаях использования с ограниченной пропускной способностью ». Сугумар добавляет, что для ряда приложений существует относительно большое количество промахов кеша.Но математика, которая должна быть сделана — как для производительности, так и для стоимости, — это то, стоит ли добавление еще одного слоя кеша.
(И снова Сугумар, говорящий с нами об этом , не означает , что Marvell обязуется добавить кэш L4 в будущие процессоры ThunderX. Но на самом деле это означает, что архитекторы и инженеры всегда пробуют идеи — обычно с помощью симуляторов — долго прежде, чем они попадут в транзисторы.)
Еще один возможный вариант кэширования, подобный L4, говорит Сугумар, — это использование локальной DRAM в качестве кеша.«Этого нет в лаборатории разработки или чего-то подобного, но предположим, что у нас есть интерфейс с высокой пропускной способностью на нашем чипе, который переходит к разделяемой распределенной памяти где-то на другом конце провода, который находится на расстоянии от 500 наносекунд до микросекунды. Тогда одна из моделей использования будет заключаться в создании кэша, который перемещает эти данные из совместно используемой распределенной DRAM в локальную DRAM. Мы можем представить себе запуск аппаратного конечного автомата, который управляет памятью, поэтому большую часть времени это занимает локальная DRAM, и вы минимизируете количество раз, когда вы выходите на совместно используемую DRAM.”
Для нас это звучит как фанковый тип NUMA. Между прочим, Сугумар работал над распределенной памятью для высокопроизводительных параллельных систем в Sun Microsystems, и это было до того, как стала доступна постоянная память. И одна проблема, связанная с наличием этих различных иерархий памяти, заключалась в том, что если одна из них теряется из-за сбоя сети или межсоединения, то вся машина выходит из строя — бум! «Вы должны справляться с сетевыми сбоями в системах с распределенной памятью более аккуратно, и это создает множество проблем при проектировании.”
Другое дело, что мы хотим, чтобы любой кэш более высокого уровня, даже если это не кэш L4, был реализован как можно более аппаратно и с минимальной настройкой программного обеспечения и изменениями приложений. Ядрам операционной системы и системному программному обеспечению требуется время, чтобы догнать оборудование, будь то добавление ядер, кешей L3 или L4 или адресуемая постоянная память.
«На каком-то уровне неизбежен другой уровень кэша», — говорит Джанос. «У нас был первый уровень кеша, а со временем появился второй.И в итоге мы добавили третью. И в конце концов у нас будет четвертый. Это скорее вопрос , когда и , почему . И я думаю, что ваше наблюдение о том, что есть много возможностей, является хорошим. Но вы знаете, что Intel еще не определила, когда и почему мы готовы обнародовать это. Другие компании смотрят на это; было бы глупо не думать об этом. Рано или поздно это произойдет, но будет ли это в ближайшее время или в ближайшее время, мы должны увидеть.”
Что такое кэш L3? (с рисунками)
Кэш-память третьего или третьего уровня — это специализированная память, которая работает рука об руку с кэш-памятью L1 и L2 для повышения производительности компьютера. Кэш L1, L2 и L3 — это кеш-память компьютерного процессора (ЦП), по сравнению с другими типами кешей в системе, такими как кэш жесткого диска. Кэш ЦП удовлетворяет потребности микропроцессора, ожидая запросов данных, так что инструкции обработки предоставляются без задержки. Кэш ЦП быстрее, чем оперативная память (ОЗУ), и предназначен для предотвращения узких мест в производительности.
Центральный процессор. Кэш L3 — это кеш процессора.
Когда к системе поступает запрос, ЦП требует инструкций для выполнения этого запроса. ЦП работает во много раз быстрее, чем системная оперативная память, поэтому для сокращения задержек в кэше L1 есть готовые биты данных, которые, как он ожидает, потребуются.Кэш L1 очень мал, что позволяет ему работать очень быстро. Если инструкции отсутствуют в кэше L1, ЦП проверяет L2, пул кеш-памяти чуть большего размера, с немного большей задержкой. При каждом промахе кэша он переходит к следующему уровню кэша. Кэш L3 может быть намного больше, чем L1 и L2, и хотя он также медленнее, он все же намного быстрее, чем выборка из ОЗУ.
Кэш L3, как правило, был интегрирован в материнскую плату в прошлом, но современные модели процессоров теперь включают встроенный кэш для повышения производительности.
Предполагая, что необходимые инструкции находятся в кэше L3 (попадание в кэш ), биты данных могут быть исключены из кеша L1 для хранения новых инструкций на случай, если они снова понадобятся. Затем кэш L3 может удалить эту строку инструкций, поскольку теперь он находится в другом кэше (называемом эксклюзивным кешем ), или он может зависеть от копии (называемой , включая кеш ), в зависимости от конструкции ПРОЦЕССОР.
Например, в ноябре 2008 года AMD® выпустила свой четырехъядерный чип Shanghai . Каждое ядро имеет свои собственные кеши L1 и L2, но ядра используют общий кэш L3. L3 хранит копии запрошенных элементов на случай, если другое ядро сделает следующий запрос.
Архитектура многоуровневой кэш-памяти продолжает развиваться. Раньше кэш L1 был внешним по отношению к ЦП, встроенным в материнскую плату, но теперь кеши L1 и L2 обычно встроены в кристалл ЦП. Кэш L3 обычно встроен в материнскую плату, но некоторые модели ЦП уже включают кэш L3.Преимущество наличия встроенного кеша в том, что он быстрее, эффективнее и дешевле, чем размещение отдельного кеша на материнской плате.
Получение инструкций из кеша происходит быстрее, чем обращение к системной оперативной памяти, а хорошая конструкция кеша значительно повышает производительность системы. Дизайн и стратегия кэша будут различаться на разных материнских платах и процессорах, но при прочих равных, больше кеша лучше.
Аппаратное обеспечение
— есть ли способ узнать размер кеш-памяти L1, L2, L3 и ОЗУ в Linux?
ЛСКПУ
Если вас интересуют только размеры, попробуйте lscpu
из util-linux
.
Пример
$ lscpu
Архитектура: x86_64
Операционные режимы ЦП: 32-разрядный, 64-разрядный
Порядок байтов: Little Endian
ЦП: 4
Он-лайн список ЦП (ов): 0-3
Потоков на ядро: 2
Ядра на сокет: 2
Розетка (и): 1
NUMA узлов: 1
ID поставщика: GenuineIntel
Семейство процессоров: 6
Модель: 37
Название модели: Intel (R) Core (TM) i5 CPU M 560 @ 2. 67 ГГц
Шаг: 5
CPU МГц: 1199,000
BogoMIPS: 5319,88
Виртуализация: VT-x
Кэш L1d: 32 КБ
Кэш L1i: 32 КБ
Кэш L2: 256 КБ
Кэш L3: 3072 КБ
NUMA node0 ЦП: 0-3
x86info
Также должен быть пакет / команда с именем x86info. Предполагая, что у вас i386 / x86_64, x86info -c
должен предоставить более подробную информацию о кешах.
Пример
$ x86info -c
x86info v1.30. Дэйв Джонс 2001-2011
Отзыв на .
Найдено 4 одинаковых процессора
Расширенная семья: 0 Расширенная модель: 2 Семья: 6 Модель: 37 Степень: 5
Тип: 0 (оригинальный OEM)
Модель процессора (предположение x86info): Core i7 (Nehalem) [Clarkdale / Arrandale]
Строка имени процессора (запрограммировано в BIOS): Intel (R) Core (TM) i5 CPU M 560 @ 2,67 ГГц
Информация кеша
Кэш инструкций L1: 32 КБ, 4-сторонний ассоциативный. Размер строки 64 байта.
Кэш данных L1: 32 КБ, 8-сторонний ассоциативный. Размер строки 64 байта.
L2 (MLC): 256 КБ, 8-сторонний ассоциативный.Размер строки 64 байта.
Информация TLB
TLB инструкций: страницы 2 МБ или 4 МБ, полностью ассоциативные, 7 записей
TLB инструкций: страницы 4K, 4-полосная ассоциативная запись, 64 записи.
TLB данных: страницы 4 КБ или 4 МБ, полностью ассоциативные, 32 записи.
TLB данных: страницы 4 КБ, 4-сторонняя ассоциативная связь, 64 записи
TLB данных: страницы 4K, 4-сторонняя ассоциация, 512 записей.
TLB данных: страницы 4 КБ или 4 МБ, полностью ассоциативные, 32 записи.
TLB данных: страницы 4 КБ, 4-сторонняя ассоциативная связь, 64 записи
64-байтовая предварительная выборка.
TLB данных: страницы 4K, 4-сторонняя ассоциация, 512 записей.Обнаружены неизвестные дескрипторы кеша: dd
Общее количество потоков процессора: 4
Эта система имеет 1 двухъядерный процессор с гиперпоточностью (2 потока на ядро), работающий на частоте 2,65 ГГц.
Intel и AMD L3 Cache Gaming Benchmarks
У меня есть кое-что довольно интересное для сегодняшней записи. На самом деле, я не думаю, что кто-то пытался количественно оценить этот конкретный аспект процессоров раньше, поэтому мы будем ступать на неизведанную территорию. Как и большая часть публикуемого нами неортодоксального аппаратного контента, этот был получен от DG Lee, кого-то, кого к настоящему времени знают почти все в компьютерном сообществе.
Кредит @Parkoz Hardware
Прежде чем мы начнем, я думаю, что нужно сделать общее резюме по кешам . Те, кто хочет сразу перейти к тестам, могут пропустить первые три абзаца. Кэш-память , вероятно, является одним из наиболее недооцененных экземпляров памяти в компьютерной системе. Потенциальный геймер, желающий построить риг, будет интересоваться ядрами, оперативной памятью, графическим процессором и даже архитектурой, но очень редко — о кеш-памяти. Тот факт, что он обычно не освещается прожектором и предназначен для жизни с мелким шрифтом, не делает его менее важным, чем сами ядра.Современный коммерческий процессор имеет в основном 3 уровня кэш-памяти.
Уровень кэша 1, уровень кэша 2 и уровень кэша 3 (есть кеш L4, но не будем вдаваться в подробности) . Краткая их форма (как вы, несомненно, знаете) — это кеши L1, L2 и L3. Однако, хотя кэшей L1 и L2 выделены для каждого ядра и в некоторой степени закрыты по своей природе, кэш L3 — это общий пул памяти, который разделяют все ядра. Каждое ядро в современном многоядерном процессоре имеет свой собственный кэш L1 и L2, но на кристалл (весь) приходится только один L3.Что касается скорости, вы смотрите в порядке возрастания, и обычно L1 является самым быстрым, а L2 медленнее и так далее. Однако в последнее время разница в скорости между уровнями уменьшилась, поскольку индустрия переходит к архитектуре более унифицированного стиля. В некоторых случаях кэш L3 может даже использоваться встроенным графическим процессором (пример: Intel). Иллюстрация макета кристалла Haswell прилагается ниже:
Тогда возникает вопрос: , почему бы нам просто не использовать достаточно большой кэш L1 для всех ядер? или достаточно быстрый L3-кеш только для всех ядер? . Ответ на этот вопрос заключается в хрупком балансе, который реализуют уровни кэша, более опытные наши читатели поймут, что я, конечно, говорю о компромиссах между задержкой кэша и скоростью обращения. Если вы создадите очень большой кэш L1, то, во-первых, вы потратите драгоценное место на кристалле, так как очень немногие приложения нуждаются в таких скоростях, а во-вторых, сам размер приведет к снижению частоты совпадений. Кэш L3 является одним из примеров этого, где специализированные алгоритмы гарантируют, что ядра используют часть L3, ближайшую к ним, для оптимизации производительности .Вот почему современные процессоры реализуют очень маленький, но очень быстрый кэш L1, немного больший, но более медленный кеш L2 и большой, но медленный кеш L3. Некоторые процессоры теперь включают eDRAM, которая в основном представляет собой кэш L4 и даже большего размера. В любом случае, хватит, давайте перейдем к мельчайшим деталям самих тестов.
[Слайды любезно предоставлены Д. Г. Ли]. Как видите, при увеличении с «2 МБ L3» до «8 МБ L3» приводит к увеличению почти на 10% в зависимости от того, насколько сильно зависит от ЦП сценарий .На первом слайде, где разрешение низкое, а основным узким местом является процессор, увеличение размера L3 повышает производительность на ~ 10%, в то время как в 1080p производительность повышается на ~ 8%. Это позволяет нам прогнозировать тенденцию. Я готов поспорить, что его маржа будет очень низкой для разрешения 4K и довольно высокой для конфигураций с несколькими графическими процессорами. Следующие слайды AMD:
Еще раз мы видим аналогичную тенденцию , повышающуюся с «Нет L3» до «8MB L3». Масштабирование очень похоже, за исключением того, что масштаб здесь начинается с No L3 вместо 2MB L3. На этом этапе стоит отметить, что архитектура AMD steamroller имеет существенную разницу в расположении кеша. Если каждое ядро Intel имеет свой собственный частный L1, два ядра AMD в одном модуле совместно используют кэш L1 между собой . Это объясняет, почему масштаб, условно говоря, немного отличается для разных процессоров AMD. Тем из вас, кому интересно, да, Д.Г. Ли объяснил разницу в ядрах процессора, тактовой частоте и т. Переводить).
Что такое кэш L1, L2, L3. Компьютерные процессоры текущего поколения… | by Prashant Singh
Компьютерные процессоры нынешнего поколения имеют скорость обработки около 3 ГГц, а даже оперативная память высокого класса имеет скорость 2,4 ГГц. Как видите, это может быть огромным узким местом для компьютеров, эта проблема решается с помощью так называемого кеш-памяти процессора.
В компьютерах в основном используются два типа памяти
DRAM (динамическая оперативная память)
В них используются конденсаторы, поэтому их необходимо постоянно обновлять с помощью электричества. DRAM обычно медленнее, чем SRAM. Отличным примером DRAM является оперативная память.
SRAM (статическая RAM)
SRAM использует триггер, поэтому имеет большую скорость и не требует постоянного обновления, но SRAM дороже, чем DRAM. Обычно они используются в кэше ЦП.
Кэш ЦП также называется внутренней памятью ЦП, в нем хранятся копии данных и инструкций из ОЗУ, ЦП постоянно нуждается в файлах из ОЗУ. Кэш ЦП действует как посредник и хранит файлы, наиболее часто запрашиваемые ЦП, тем самым повышая эффективность процессора.
Существует три типа кеш-памяти ЦП L1 (далее разделены на L1d (данные) и L1i (инструкция)) L2 и L3
В ОС на базе Linux мы можем использовать команду lscpu для получения емкости каждого типа кеша
L1 кэш
Он расположен на процессоре, и каждый процессор имеет свой собственный кэш L1. Кэш L1 является самым быстрым кешем на компьютере и работает с той же скоростью, что и процессор.
Кэш L1 в настоящее время разделен между L1d (данные) и L1i (инструкция)
Кэш L2
Кэш L2 также известен как внешний кеш, поскольку из названия следует, что он расположен вне процессора (ядра).Он хранит последние данные, к которым получил доступ ЦП, которые не хранятся в кэше L1. Если ЦП не может найти данные в кэше L1, он ищет данные в кеше L2.
Кэш L3
Кэш L3 также называется общим кешем, поскольку он совместно используется всеми процессорами. Он хранит последние данные, к которым получил доступ ЦП, которые недоступны ни в кэше L1, ни в кэше L2. Если CPU не находит здесь данные, ему придется запрашивать данные из гораздо более медленной памяти RAM
Как в кеше хранятся данные
В каждой программе обычно есть несколько инструкций, которые повторяются снова и снова, тогда как остальные выполняется только один или два раза.Эта повторяющаяся часть кода отправляется прямо в кэш, но эти строки кода не являются последовательными, поэтому «метка» назначается каждой позиции кеша, метка равна позиции этой строки кода в ПЗУ. Следовательно, когда ЦП запрашивает строку кода
,
первая запрашиваемая возможность ПЗУ сравнивается со всеми метками в кэше. Если есть совпадение (также называемое попаданием в кэш ), то из кеша извлекается соответствующая строка кода.
Если совпадений нет (также называемых промахов в кэше ), код извлекается из ПЗУ, естественно, в этом случае затраченное время будет больше обычного.
также новая запись создается в кэше для каждого промаха, и для создания этого пространства удаляется наименее использованная запись кэша
Почему кэш ЦП быстрее?
Рядом с каждой кэшированной строкой памяти есть дополнительные ячейки памяти, в которых хранится часть (или все) адреса. поэтому все ячейки могут быть запрошены, чтобы увидеть, есть ли у них конкретная линия памяти, которая требуется процессору, а затем данные будут выгружать ее на шину, которая соединяет основную память с ядром процессора.это происходит менее чем за цикл, потому что это намного проще
В чем разница между L1 L2 и L3 Cache
Основное отличие между кешем L2 и L3 L1 заключается в том, что кэш L1 является самой быстрой кэш-памятью, а кэш L3 — самой медленной кэш-памятью, в то время как кэш L2 медленнее, чем кеш L1, но быстрее, чем кеш L3.
Кэш — это быстрая память в компьютере. Он содержит часто используемые ЦП данные. ОЗУ или первичная память работают быстро, но кеш-память быстрее ОЗУ.ЦП сначала проверяет кеш, чтобы найти необходимые данные. Он работает как средний уровень между ЦП и ОЗУ, чтобы быстрее передавать данные ЦП. Следовательно, это помогает увеличить скорость вычислений устройства. Есть три типа кеша: L1, L2 и L3.
Основные области покрытия
1. Что такое кэш L1
— Определение, функциональность
2. Что такое кэш L2
— Определение, функциональность
3. Что такое L3 Cache
— Определение, функциональность
4. В чем разница между L1 L2 и L3 Cache
— Сравнение основных различий
Ключевые термины
Кэш-память, кэш L1, кэш L2, кэш L3
Что такое кэш L1
Кэш
L1 — это кэш-память уровня 1. Мы также называем его первичным кешем . Он работает с той же скоростью, что и ЦП.Кроме того, это самый быстрый кеш среди всех других кешей. Более того, он меньше других кешей L2 и L3. Кроме того, каждое ядро ЦП имеет собственную кэш-память L1.
Что такое кэш L2
Кэш
L2 — это кэш 2-го уровня. В нем хранятся данные, которые не хранятся в кэше L1. Другими словами, если ЦП не может найти данные в кэше L1, он проверяет кэш L2. Кроме того, кэш L2 больше, чем кеш L1, но меньше кеша L3. Каждый код в ЦП имеет собственную кэш-память L2.
Что такое кэш L3
Кэш
L3 — это кэш 3-го уровня. В нем хранятся данные, которые не хранятся в кеш-памяти L1 и L2. Другими словами, если ЦП не может найти данные в кэш-памяти L1 и L2, он проверяет кэш L3. Более того, кэш L3 — самый большой среди всех кешей. Кроме того, все ядра ЦП используют одну и ту же кэш-память третьего уровня.
Сначала ЦП проверяет кэш L1 на наличие данных. Если он недоступен, он проверит кеш L2. Если данные недоступны, он проверит кеш L3, а если данные недоступны в L3, он проверит ОЗУ.
Разница между L1 L2 и L3 Cache
Определение
Кэш
L1 — это кэш-память, которая встроена непосредственно в процессор и используется для хранения недавно полученной информации ЦП. Напротив, кэш L2 — это кэш-память, которая расположена снаружи и отделена от ядра микросхемы ЦП, хотя она находится в том же корпусе микросхемы ЦП. Между тем, кэш L3 — это кеш-память, которая используется ЦП и обычно встроена на материнскую плату в самом модуле ЦП.Таким образом, эти определения содержат основное различие между кешем L1 L2 и L3.