Как увеличить кэш процессора
Обновлено: 21.11.2024
Кэш ЦП снижает задержку памяти при доступе к данным из основной системной памяти. Разработчики могут и должны использовать кэш ЦП для повышения производительности приложений.
Как работают кэши ЦП
Современные ЦП обычно имеют три уровня кэш-памяти, обозначенные как L1, L2 и L3, что отражает порядок их проверки ЦП. Процессоры часто имеют кеш данных, кеш инструкций (для кода) и унифицированный кеш (для чего угодно). Доступ к этим кешам намного быстрее, чем доступ к ОЗУ: обычно кеш L1 примерно в 100 раз быстрее, чем ОЗУ для доступа к данным, а кеш L2 в 25 раз быстрее, чем ОЗУ для доступа к данным.
Когда ваше программное обеспечение работает и ему необходимо получить данные или инструкции, сначала проверяются кэши ЦП, затем более медленная системная оперативная память и, наконец, гораздо более медленные диски. Вот почему вы хотите оптимизировать свой код, чтобы сначала искать то, что может понадобиться, из кэша ЦП.
Ваш код не может указать, где находятся инструкции и данные данных — это делает аппаратное обеспечение компьютера, — поэтому вы не можете принудительно помещать определенные элементы в кэш ЦП. Но вы можете оптимизировать свой код для получения размера кэша L1, L2 или L3 в вашей системе с помощью инструментария управления Windows (WMI) для оптимизации доступа вашего приложения к кэшу и, следовательно, его производительности.
ЦП никогда не обращается к кэшу побайтно. Вместо этого они считывают память в строках кэша, которые обычно представляют собой фрагменты памяти размером 32, 64 или 128 байт.
В следующем листинге кода показано, как можно получить размер кэша ЦП L2 или L3 в вашей системе:
У Microsoft есть дополнительная документация по WMI-классу Win32_Processor.
Программирование для повышения производительности: пример кода
Когда у вас есть объекты в стеке, не возникает дополнительных затрат на сборку мусора. Если вы используете объекты на основе кучи, всегда есть затраты, связанные со сборкой мусора поколения для сбора или перемещения объектов в куче или уплотнения памяти кучи. Хороший способ избежать накладных расходов на сборку мусора — использовать структуры вместо классов.
Кэши работают лучше всего, если вы используете последовательную структуру данных, например массив. Последовательное упорядочение позволяет ЦП читать вперед, а также спекулятивно читать вперед в ожидании того, что, вероятно, будет запрошено следующим. Таким образом, алгоритм, который обращается к памяти последовательно, всегда работает быстро.
Если вы обращаетесь к памяти в случайном порядке, процессору требуются новые строки кэша каждый раз, когда вы обращаетесь к памяти. Это снижает производительность.
Следующий фрагмент кода реализует простую программу, иллюстрирующую преимущества использования структуры над классом:
Следующий код профилирует производительность использования массива структур в сравнении с массивом классов. Для иллюстрации я использовал миллион объектов для обоих, но обычно вам не нужно столько объектов в вашем приложении.
Программа проста: она создает 1 миллион объектов структур и сохраняет их в массиве. Он также создает 1 миллион объектов класса и сохраняет их в другом массиве. Ширине и высоте свойств присваивается нулевое значение в каждом экземпляре.
Как видите, использование оптимизированных для кэширования структур обеспечивает значительный прирост производительности.
Практические правила для лучшего использования кеша ЦП
Итак, как написать код, который лучше всего использует кэш ЦП? К сожалению, волшебной формулы не существует. Но есть несколько практических правил:
Что такое кэш процессора? Для чего существуют кэши L1, L2 и L3? Вот что вам нужно знать и как они работают.
Компьютерные процессоры значительно продвинулись за последние годы. Транзисторы с каждым годом становятся все меньше, а прогресс достигает точки, когда закон Мура становится излишним.
Когда дело доходит до процессоров, важны не только транзисторы и частоты, но и кеш.
Возможно, вы слышали о кэш-памяти, когда обсуждались ЦП (центральные процессоры). Однако мы не уделяем должного внимания этим номерам кэш-памяти ЦП, и они не являются основным акцентом в рекламе ЦП.
Итак, насколько важен кэш процессора и как он работает?
Что такое кэш-память процессора?
Проще говоря, кэш-память ЦП — это просто очень быстрый тип памяти. В первые дни вычислений скорость процессора и скорость памяти были низкими. Однако в 1980-е годы скорость процессоров начала быстро расти. В то время системная память (ОЗУ) не могла справиться с растущими скоростями ЦП или соответствовать им, поэтому родился новый тип сверхбыстрой памяти: кэш-память ЦП.
Теперь в вашем компьютере установлено несколько типов памяти.
Существует основное хранилище, например жесткий диск или твердотельный накопитель, на котором хранится основная часть данных — операционная система и программы.
Далее у нас есть оперативная память, известная как ОЗУ. Это намного быстрее, чем первичное хранилище, но это только краткосрочный носитель данных.Ваш компьютер и программы на нем используют оперативную память для хранения часто используемых данных, что помогает выполнять действия на компьютере быстро и удобно.
Наконец, ЦП имеет внутри себя еще более быстрые блоки памяти, известные как кэш-память ЦП.
Компьютерная память имеет иерархию, основанную на скорости работы. Кэш ЦП стоит на вершине этой иерархии, будучи самым быстрым. Он также находится ближе всего к центральному процессору, так как является частью самого ЦП.
Компьютерная память также бывает разных типов.
Кэш-память — это разновидность статической ОЗУ (SRAM), тогда как обычная системная ОЗУ называется динамической ОЗУ (DRAM). Статическая оперативная память может хранить данные без необходимости постоянного обновления, в отличие от 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 КБ, и этот размер сейчас считается небольшим. Кроме того, некоторые из самых мощных современных процессоров имеют больший объем кэш-памяти второго уровня, превышающий 8 МБ.
Что касается скорости, то кэш L2 отстает от кэша L1, но все же намного быстрее, чем оперативная память вашей системы. Кэш-память 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 Memory и кэш-память Infinity, которые повышают производительность компьютера.
Поскольку все больше людей предпочитают использовать свои старые компьютеры в течение более длительного периода времени, иногда возникает вопрос об увеличении кэш-памяти в системе. В зависимости от типа жесткого диска, который присутствует в системе, а также объема оперативной памяти или оперативной памяти, доступной в настоящее время, может быть возможно увеличить объем памяти, по крайней мере, на небольшой объем. Однако важно понимать, что существуют ограничения, и не каждую систему можно расширить или настроить для увеличения объема кэш-памяти.
Материнская плата компьютера.
Чтобы понять, как увеличить объем кэш-памяти, важно знать, как работает кэш. По сути, кеш функционирует как область хранения файлов, к которым обращаются и которые используются. Эта область хранения является частью оперативной памяти и работает с основной памятью системы для быстрого извлечения недавно использованных файлов, когда и как они нужны конечному пользователю. Размер кэша зависит от объема оперативной и основной памяти, встроенной в систему.
Центральный процессор. Размер кэша определяется конфигурацией процессора.
Размер кэша определяется конфигурацией центрального процессора, также известного как ЦП или процессор. В более новых системах наиболее эффективным способом увеличения объема кэш-памяти является замена текущего ЦП на более мощный. Это автоматически позволит увеличить размер кэш-памяти, а также повысить быстродействие процессора и общую производительность системы. Поскольку некоторые системы имеют ограничения на размер и тип используемого процессора, важно определить, есть ли более мощный процессор, совместимый с вашей текущей системой, прежде чем тратить время и деньги на обновление процессора.
В некоторых старых моделях настольных компьютеров и ноутбуков можно увеличить объем кэш-памяти, модернизировав так называемый чип кэш-памяти. Этот чип находится на материнской плате компьютера и может быть заменен чипом большей мощности. Замена чипа кэш-памяти должна выполняться только профессионалом, так как в процессе можно повредить материнскую плату и вывести систему из строя.
Дополнительная кэш-память может быть полезна по нескольким причинам. Для тех, кто постоянно работает с несколькими файлами, более быстрое извлечение, обеспечиваемое большим кешем, увеличивает общую производительность. Даже люди, которые используют свои компьютеры для не связанных с работой действий, таких как просмотр видеопотоков в Интернете, обнаружат, что больший кэш делает потоковую передачу менее прерывистой и больше похожей на просмотр программы по телевизору. Имейте в виду, что если память уже была обновлена один раз, может быть невозможно добавить больше.В этом случае вы можете подумать о покупке более новой системы с большим объемом оперативной памяти и процессором большей мощности.
Добавление оперативной памяти или оперативной памяти на компьютер может повысить его производительность.
После многих лет работы в индустрии телеконференций Майкл решил реализовать свою страсть к пустякам, исследованиям и писательству, став штатным писателем-фрилансером. С тех пор он публиковал статьи в различных печатных и онлайн-изданиях, включая EasyTechJunkie, а его работы также публиковались в поэтических сборниках, религиозных антологиях и в нескольких газетах. Другие интересы Малкольма включают коллекционирование виниловых пластинок, бейсбол низшей лиги и езду на велосипеде.
Информация о процессоре:
Первое, что нужно сделать, это узнать возможности центрального процессора (процессора), для этого:
Чтобы увеличить кэш L2 в Windows:
- В меню «Пуск» найдите и откройте «regedit» (база данных реестра) (как и при любых манипуляциях с базой данных реестра, желательно выполнить резервное копирование своего компьютера на случай возникновения проблем)
- Дважды щелкните HKEY_LOCAL_MACHINE > СИСТЕМА > ТекущийКонтрольНабор > Управление > Диспетчер сеансов > Управление памятью
- в правом окне вы должны найти ключ с именем "SecondLevelDataCache", щелкнуть по нему правой кнопкой мыши и выбрать "Изменить"
- Нажмите "Десятичный"
- И замените на истинное значение вашего процессора. В моем случае ЦП – Z сообщает мне 2 x 256, поэтому значение для моего случая равно 512.
- Нажмите "ОК".
Чтобы включить кэш L3 в Windows:
- Шаги с 1 по 2 такие же, как и для L2, поэтому на шаге 3 вы попадаете в то же окно.
- В свободной области правого окна щелкните правой кнопкой мыши и выберите "Создать" > "32-битное значение DWORD"
- Переименуйте новый ключ в "ThirdLevelDataCache" (без кавычек)
- Щелкните правой кнопкой мыши на этом новом переименованном ключе и нажмите "Изменить"
- Нажмите "Десятичный"
- Измените значение на значение вашего процессора, указанное ЦП – Z: в моем случае у меня 3 МБ, поэтому мне нужно сделать 3 x 1024, что означает, что я должен поставить 3072 в качестве значения.
- Нажмите "ОК".
Перезагрузите компьютер. При 1 перезагрузке ваш компьютер может работать немного медленнее, чем обычно, потому что Windows необходимо включить эти новые данные, но позже ваш компьютер должен работать быстрее и мощнее! Лично у меня при 1й перезагрузке ничего не тормозило, но я заметил улучшение скорости работы программ, особенно на уровне многозадачности, не смотря на то, у кого уже есть SSD на моем ПК! Примечание: этот трюк не является разгоном, а значит, нет риска перегрева, который можно обнаружить при разгоне.
Читайте также:
- Почему нельзя класть тетради, книги, диски, ручки и другие предметы на монитор
- Количество циклов обработки, которые процессор выполняет за 1 секунду, равно
- Почему жесткий диск работает в режиме ожидания
- Проверить диск на наличие зависших ошибок
- Как разогнать процессор Intel Celeron N3060 на ноутбуке