Как снизить энергопотребление процессора

Обновлено: 07.07.2024

Большинство современных процессоров используют различные технологии энергосбережения, такие как Intel SpeedStep или AMD Cool’n’Quiet. Эти технологии основаны на динамическом изменении частоты работы процессора в зависимости от нагрузки с целью снижения энергопотребление и тепловыделения.

Для понимания рассмотрим общие принципы работы данных технологий.

У процессора есть состояния производительности (P-States), которые представляют из себя комбинацию множителя частоты (Frequency ID, FID) и напряжения питания (Voltage ID, VID). Тактовая частота работы процессора получается путем умножения частоты системной шины (FSB) на FID, соответственно чем больше множитель, тем выше частота, и наоборот. Количество поддерживаемых состояний зависит от характеристик процессора (макс. частота, множитель и т.п.).

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

Когда и в какое из состояний переводить процессор, операционная система решает автоматически, в соответствии с текущей политикой энергосбережения. Но, кроме этого, в Windows есть возможность вручную задать диапазон регулировки, ограничив минимальное и максимальное состояние.

В моем компьютере стоит Intel Core I7 4790К. Согласно спецификации, он имеет базовую частоту 4ГГц, а с использованием технологии Turbo Boost может разгоняться до максимальных 4.4ГГц. Для того, чтобы посмотреть текущую скорость работы процессора, запустим «Диспетчер задач» (Ctrl+Shift+Esc) и перейдем на вкладку «Производительность». Как видите, на данный момент нагрузка невелика и процессор работает вполсилы, частота его работы составляет 1.84ГГц.

Вкладка Производительность в Диспетчере задач

Попробуем немного покрутить настройки частоты процессора и посмотрим, что из этого получится. Для запуска оснастки управления электропитанием жмем клавиши Win+R и выполняем команду powercfg.cpl.

запуск оснастки управления электропитанием

В открывшемся окне выбираем текущую схему электропитания, переходим по ссылке «Настройка схемы электропитания»

оснастка управления электропитанием

и жмем на ссылку «Изменить дополнительные параметры питания».

переход к дополнительным настройкам электропитания

За частоту работы процессора отвечают параметры «Минимальное состояние процессора» и «Максимальное состояние процессора», находящиеся в разделе «Управление питанием процессора».

дополнительные настройки электропитания

дополнительные настройки электропитания для ноутбука

Проверим, как влияет изменение настроек на частоту работы процессора. Для начала уменьшим максимальное состояние до 20% и проверим результат. Как видите, частота работы снизилась до примерно 0.78ГГц, что как раз составляет примерно 20% от базовой частоты.

изменение максимальной частоты процессора до 20%

Что интересно, снизить частоту ниже 20% мне это не удалось. При выставлении значения ниже 20% частота продолжает оставаться на том же уровне, т.е. для моего процессора 800МГц является минимальной поддерживаемой частотой.

изменение максимальной частоты процессора до 5%

Чтобы разобраться, почему так, запустим диагностическую утилиту CPU-Z. Как видите, в нашем случае частота шины составляет 100МГц, а множитель изменяется в диапазоне от 8 до 44. Отсюда и получаем возможность изменения частоты от минимальных 800МГц до максимума 4.4ГГц с шагом в 100МГц.

CPU-Z

Но переключение осуществляется не по каждому множителю, а более дискретно. Другими словами, количество состояний производительности не соответствует количеству значений множителя. Посмотреть все доступные состояния можно утилитой RightMark Power Management. Например для испытуемого процессора доступно всего 15 состояний, а переключения между ними происходят с переменным шагом 200-300МГц.

RightMark PPM

Ну а на что влияет минимальная частота процессора? Для проверки установим значение минимальной частоты в 100% и убедимся, что скорость работы процессора сразу поднялась почти до максимуму и достигла 4.3ГГц. И это при том, что загрузка процессора составила всего 14%.

изменение минимальной частоты процессора до 100%

Есть еще одна настройка, отвечающая за частоту работы процессора. По умолчанию она скрыта и для того, чтобы увидеть ее, необходимо произвести некоторые манипуляции в реестре. Поэтому открываем редактор реестра (Win+R ->regedit), переходим в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\75b0ae3f-bce0-45a7-8c89-c9611c25e100, находим параметр Attributes и изменяем его значение на 2.

добавление настройки частоты процессора в реестре

После этого в окне настроек появится параметр «Максимальная частота процессора». Как следует из названия, этот параметр отвечает за ограничение максимальной частоты работы процессора, его значение задается в мегагерцах. По умолчанию значение параметра равно 0, что означает отсутствие ограничений.

пункт настройки частоты процессора

Установим ограничение в 1500МГц и проверим результат. И действительно, ограничение работает и частота не поднимается выше указанного значения.

управление частотой процессора

Надо понимать, что регулировка частоты работает так-же дискретно, как и в случае с состояниями. Например при выставлении максимальной частоты 1200МГц реальное ограничение будет в районе 1000МГц. Это неудивительно, ведь переключения все равно производятся между P-состояниями, причем выбирается ближайшее минимальное значение.

дискретность регулировки

Изменять дополнительные параметры питания процессора можно и из командной консоли, с помощью утилиты powercfg. Для начала выведем все имеющиеся настройки питания командой:

В полученных результатах надо найти требуемые параметры. Каждый раздел и параметр можно идентифицировать по идентификатору GUID или по псевдониму (алиасу). Например у группы настроек «Управление питанием процессора» GUID 54533251-82be-4824-96c1-47b60b740d00, а псевдоним SUB_PROCESSOR, у параметра «Максимальное состояние процессора» GUID 75b0ae3f-bce0-45a7-8c89-c9611c25e100 и псевдоним PROCTHROTTLEMAX.

запуск команды powercfg

Зная нужные алиасы или GUID-ы можно оперировать настройками. Так посмотреть значение параметра «Максимальное состояние процессора» можно такой командой (SCHEME_CURRENT означает текущую схему электропитания):

powercfg /query SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX

В командной значения параметра показаны в шестнадцатеричном виде, т.е. значение 0x00000064 означает 100%.

просмотр настроек электропитания из консоли cmd

Обратите внимание, что в командной строке доступны настройки как для питания от сети, так и от батареи. В зависимости от требуемого варианта команда будет отличаться. Так за настройку питания от сети отвечает ключ /SETACVALUEINDEX, а для питания от батареи используется ключ /SETDCVALUEINDEX. Различие всего в одной букве, поэтому нужно быть внимательным и постараться их не перепутать. Для примера снизим максимальное состояние процессора для питания от сети до 50%:

powercfg /setacvalueindex CHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 50

Проверим результат. Как видите, текущее значение составляет 0x00000032 (50%).

изменение настроек электропитания из консоли cmd


Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.

Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.

Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.

Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.

Основные источники информации, использованные в этом тексте:

Особенности CPU

Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:

  • состояния простоя (Idle States);
  • усовершенствованная технология Intel® SpeedStep (Enhanced Intel® SpeedStep Technology).

Теперь выясним, что значит каждое из этих определений.

Как снизить энергопотребление процессора во время его работы?

На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:

  • Сократить энергопотребление подсистемы (ядра или другого ресурса, такого как тактовый генератор или кэш) путем отключения питания (уменьшив напряжение до нуля).
  • Снизить энергопотребление путем снижения напряжения и/или таковой частоты подсистемы и/или целого процессора.

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


Примечание для тех, кто разбирается в цифровой электронике: Pcpu = Pdynamic + Pshort circuit + Pleak. При работающем процессоре Pdynamic является наиболее важной составляющей, именно эта часть зависит линейно от частоты и квадратично от напряжения. Pshort circuit пропорционально частоте, а Pleak — напряжению.

Более того, напряжение и тактовая частота связаны линейной зависимостью.

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

Каков предел энергопотребления процессора?

Это во многом зависит от процессора, но для процессора E3-1245 v5 @ 3.50 ГГц расчетная тепловая мощность (Thermal Design Power, TDP) составляет 80 ватт. Это среднее значение, которое процессор может выдерживать бесконечно долго (Power Limit, PL1 на изображении ниже). Системы охлаждения должны быть рассчитаны на это значение, чтобы быть надежными. Фактическое энергопотребление процессора может быть выше в течение короткого промежутка времени (состояния PL2, PL3, PL4 на изображении ниже). TDP измеряется при нагрузке высокой вычислительной сложности (худший случай), когда все ядра работают на базовой частоте (3.5 ГГц).


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

Состояния питания (C-states) vs состояния производительности (P-states)

Состояния питания (C-states) vs состояния производительности (P-states)
Вот два способа снизить энергопотребление процессора:

  • отключить некоторые подсистемы;
  • снизить напряжение/частоту.

P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).

Так как большинство современных процессоров состоит из нескольких ядер, то С-состояния разделены на С-состояния ядра (Core C-states, CC-states) и на С-состояния процессора (Package C-states, PC-states). Причина появления PC-состояний очень проста. Существуют компоненты с общим доступом (например, общий кэш), которые могут быть отключены только после отключения всех ядер, имеющих доступ к этому компоненту. Однако мы в роли пользователя или программиста не можем взаимодействовать с состояниями пакета напрямую, но можем управлять состояниями отдельных ядер. Таким образом, управляя CC-состояниями, мы косвенно управляем и PC-состояниями.

Состояния нумеруются от нуля по возрастанию, то есть C0, C1… и P0, P1… Большее число обозначает большее энергосбережение. C0 означает, что все компоненты включены. P0 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.

С-состояния

Вот базовые С-состояния (определенные в стандарте ACPI).

  • C0: Active, процессор/ядро выполняет инструкции. Здесь применяются P-состояния, процессор/ядро могут работать в режиме максимальной производительности (P0) или в режиме энергосбережения (в состоянии, отличном от P0).
  • C1: Halt, процессор не выполняет инструкций, но может мгновенно вернуться в состояние С0. Поскольку процессор не работает, то P-состояния не актуальны для состояний, отличных от С0.
  • C2: Stop-Clock, схож с C1, но требует больше времени для возврата в C0.
  • С3: Sleep. Возврат в C0 требует ощутимо большего времени.

Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.

Вот описание состояний из даташита:


Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.

Визуальное представление состояний:


Источник: Software Impact to Platform Energy-Efficiency White Paper

Последовательность C-состояний простыми словами:

  • Нормальная работа при C0.
  • Сначала останавливается тактовый генератор простаивающего ядра (С1).
  • Затем локальные кэши ядра (L1/L2) сбрасываются и снимается напряжение с ядра (С3).
  • Как только все ядра отключены, общий кэш (L3/LLC) ядер сбрасывается и процессор (почти) полностью может быть обесточен. Я говорю «почти», потому что, по моим предположениям, какая-то часть должна быть активна, чтобы вернуть процессор в состояние С0.


Однако если ядро работает (C0), то единственное состояние, в котором может находиться процессор, — C0. С другой стороны, если ядро полностью выключено (C8), процессор может находиться в C0, если другое ядро работает.

Примечание: Intel Software Developer’s Manual упоминает про суб-C-состояния (sub C-state). Каждое С-состояние состоит из нескольких суб-С-состояний. После изучения исходного кода модуля ядра intel_idle я понял, что состояния C1 и C1E являются состоянием С1 с подтипом 0 и 1 соответственно.

Число подтипов для каждого из восьми С-состояний (0..7) определяется с помощью инструкции CPUID. Для моего процессора утилита cpuid выводит следующую информацию:

Я создал гистограмму, представленную ниже, из исходного кода драйвера intel_idle для моего процессора (модель 0x5e). Подписи горизонтальной оси:

Имя C-состояния: специфичное для процессора состояние: специфичное суб-состояние.

Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.


Константы задержок выхода и целевых резидентных значении C-состояний в исходном коде intel_idle
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.

Состояния питания ACPI

Прежде чем говорить про P-состояния, стоит упомянуть про состояния питания ACPI. Это то, что мы, пользователи, знаем, когда используем компьютер. Так называемые глобальные системные состояния (G[Х]) перечислены в таблице ниже.


Источник: ACPI Specification v6.2
Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.

Существует несколько состояний сна (Sx). Всего таких состояний шесть, включая S0 — отсутствие сна. Состояния S1-S4 используются в G1, а S5, Soft Off, используется в G2. Краткий обзор:

  • G0/S0: Компьютер работает, не спит.
  • G1: Sleeping.
    • G1/S1: Power on Suspend. Состояние системы сохраняется, питание процессора и кэшей поддерживается.
    • G1/S2: Процессор отключен, кэши сброшены.
    • G1/S3: Standby или Suspend to RAM (STR). Оперативная память остается практически единственным компонентом с питанием.
    • G1/S4: Hibernation или Suspend to Disk. Все сохраняется в энергонезависимую память, все системы обесточиваются.


    Вот поддерживаемые состояния ACPI.


    Комбинации состояний ACPI G/S и С-состояний процессора

    Приятно видеть все комбинации в таблице:


    В состоянии G0/S0/C8 системы процессора запущены, но все ядра отключены.

    В G1 (S3 или S4) некорректно говорить про С-состояния (это касается как CC-состояний, так и PC-состояний), так как процессор полностью обесточен.

    Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.

    Как программно запросить переход в энергосберегающее С-состояние?

    Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию MWAIT или инструкцию HLT. Это инструкции привилегированного уровня, и они не могут быть выполнены пользовательскими программами.

    Инструкция MWAIT (Monitor Wait) заставляет процессор перейти в оптимизированное состояние (C-состояние) до тех пор, пока по указанному (с помощью другой инструкции, MONITOR) адресу не будет произведена запись. Для управления питанием MWAIT работает с регистром EAX. Биты 4-7 используются для указания целевого С-состояния, а биты 0-3 указывают суб-состояние.

    Примечание: Я думаю, что на данный момент только AMD обладает инструкциями MONITORX/MWAITX, которые, помимо мониторинга записи по адресу, работают с таймером. Это еще называется Timed MWAIT.

    Инструкция HLT (halt) останавливает выполнение, и ядро переходит в состояние HALT до тех пор, пока не произойдет прерывание. Это означает, что ядро переходит в состояние C1 или C1E.

    Что вынуждает ядро входить в определенное С-состояние?

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

    Возможно ли отключить С-состояния (всегда использовать С0)?

    Это возможно, но не рекомендуется. В даташите (секция 4.2.2, страница 64) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.

    Как прерывания влияют на процессор\ядро в состоянии сна?

    Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel® Xeon® E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:

    • для энергосбережения прерывание может быть переадресовано работающему ядру, чтобы не будить спящее ядро;
    • для производительности прерывание может быть переадресовано от работающего на полную мощность ядра к простаивающему (С1) ядру.

    P-состояния

    P-состояния подразумевают, что ядро в состоянии С0, потому что ему требуется питание, чтобы выполнять инструкции. P-состояния позволяют изменять напряжение и частоту ядра (другими словами рабочий режим), чтобы снизить энергопотребление. Существует набор P-состояний, каждое из которых соответствует разных рабочим режимам (пары напряжение-частота). Наиболее высокий рабочий режим (P0) предоставляет максимальную производительность.

    Процессор Intel® Xeon® E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel® SpeedStep Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel® Xeon® E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.

    P-состояния, управляемые операционной системой

    В этом случае операционная система знает о P-состояниях и конкретном состоянии, запрошенным ОС. Проще говоря, операционная система выбирает рабочую частоту, а напряжение подбирается процессором в зависимости от частоты и других факторов. После того, как P-состояние запрошено записью в моделезависимый регистр (подразумевается запись 16 бит в регистр IA32_PERF_CTL), напряжение изменяется до автоматически вычисленного значения и тактовый генератор переключается на заданную частоту. Все ядра имеют одно общее P-состояние, поэтому невозможно установить P-состояние эксклюзивно для одного ядра. Текущее P-состояние (рабочий режим) можно узнать, прочитав информацию из другого моделезависимого регистра — IA32_PERF_STATUS.

    Смена P-состояния мгновенна, поэтому в секунду можно выполнять множество переходов. Это отличает от переходов C, которые выполняются дольше и требуют энергетических затрат.

    P-состояния, управляемые оборудованием

    В этом случае ОС знает об аппаратной поддержке P-состояний и отправляет запросы с указанием нагрузки. В запросах не указывается конкретное P-состояние или частота. На основе информации от ОС, а также других факторов и ограничений оборудование выбирает подходящее P-состояние.

    Я хочу рассказать об этом подробнее в следующей статье, но сейчас я поделюсь с вами своими мыслями. Мой домашний компьютер работает в этом режиме, я узнал это, проверив IA32_PM_ENABLE. Максимальный (но не гарантированный) уровень производительности — 39, минимальный — 1. Можно предположить, что существует 39 P-состояний. На данный момент уровень 39 установлен ОС как минимальный и как максимальный, потому что я отключил динамическое изменение частоты процессора в ядре.

    Заметки про Intel® Turbo Boost

    Поскольку TDP (расчетная тепловая мощность) — это максимальная мощность, которую процессор может выдержать, то процессор может повышать свою частоту выше базовой, при условии что энергопотребление не превысит TDP. Технология Turbo Boost может временно повышать энергопотребление до границы PL2 (Power Limit 2) на короткий промежуток времени. Поведение Turbo Boost может быть изменено через подсказки оборудованию.

    Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?

    Для примера, недавний MacBook Air с процессором i5-5350U в основном поддерживает возможности, описанные выше (но я не уверен про P-состояния, контролируемые оборудованием). Я также смотрел документацию ARM Cortex-A, и, хотя там применяются другие термины, механизмы управления питанием выглядят похоже.

    Как это все работает, например, на Linux?

    На этот вопрос я отвечу в другой статье.

    Как я могу узнать состояние процессора?

    Существует не так много приложений, которые могут выводить эту информацию. Но вы можете использовать, например, CoreFreq.

    Недавно наткнулся в интернете на обсуждение очень интересной программы под названием RMClock. До этого я уже несколько раз сталкивался с программой, но не понятные на первый взгляд настройки и отсутствие какой-либо документации, вызывают отторжение и отбивают какое-либо желание разбираться с этой утилитой. Тем не менее, программа очень интересная и заслуживает внимания. Сейчас я расскажу почему, и о том, чем она может привлечь рядового владельца ноутбука.

    Разработчик RightMark

    Объем загружаемого файла 463 Kb

    Предназначение программы

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

    Польза для простого пользователя

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

    Если не вдаваться в технические подробности, то идея достаточно проста – понизить энергопотребление центрального процессора (ЦП). Метод не универсальный и не 100%, потому что каждый ЦП имеет уникальные физические свойства и существует большая вероятность того, что при той же тактовой частоте ему требуется меньше энергии, чем установлено по умолчанию для всех процессоров данного типа. Насколько сильно можно уменьшить электропотребление, зависит уже от удачи и от вашего ЦП. Мне повезло, так что результаты получились очень показательными.

    Установка

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

    Настройка

    cpu_settings

    В этой вкладке нужно отметить два пункта в блоке Startup Options. Для того чтобы приложение запускалось автоматически при старте Windows.

    cpu_manag

    Также оставляем все по умолчанию и проверяем что пункт Enable OS power management integration активирован.

    cpu_profiles

    Тут и начинается самое интересное. Для состояний AC power (работа от сети) и Battery (работа от аккумулятора) устанавливаем нужные профили. При работе от сети рекомендую поставить Performance on demand (производительность по необходимости), а при работе от батареи Power Saving.

    Сразу под профилями отображаются все возможные состояния процессора (множители, FID), а также напряжение (VID), подаваемое на ЦП в этом стоянии. От текущего состояния зависит тактовая частота, на которой работает процессор; возможность изменения частоты сделана для уменьшения энергопотребления в моменты небольшой загрузки или простоя.

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

    perform

    psave

    Теперь нужно настроить профили Performance on demand и Power Saving. Для этого выбираем соответствующие пункты. В обоих случаях отмечаем галочкой Use P-state transitions (PST), тот профиль, в котором вы находитесь в текущий момент. Причем, для профиля Performance on demand, выбираем все множители из списка, а для профиля Power Saving только первый (это означает, что при работе от аккумулятора процессор всегда будет функционировать на минимальной частоте, конечно, вы можете выбрать и другой множитель, тем самым повысив максимально допустимую частоту). Остальные опции оставляем неактивными.

    Работа

    work

    Проверяем

    Если вы сделали все правильно, то во вкладке Monitoring можно видеть результат работы. График FID-VID демонстрирует текущий множитель и вольтаж. Проверте это значения при работы от сети и от батареи, они должны совпадать с установленными значениями в профиле.

    inf

    Теперь желательно протестировать все настройки какой-либо программой, например Prime95. Задача – удостоверится в том, что ЦП без проблем работает при выбранных нами установка вольтажа.

    Тестирование

    В теории все как всегда классно, но как эти действия сказываются на реальной работе?

    Тестовая система: Terra 1220 (Intel Core 2 Duo T7300)

    Я протестировал оба режима работы и сравнил их с аналогичными режимами стандартной программы управления питанием.

    Сбалансированный VS Performance on demand

    worktime

    Автономность проверялась программой BatteryEater в режиме максимальной загрузки (Classic). Беспроводные интерфейсы отключены, яркость экрана установлена на максимум.

    Как видно, время работы абсолютно не изменилось и составило 88 минут. Каждый тест приводил два раза, чтобы удостоверится в результатах. Так что в моем конкретном случае, понижение напряжения не повлияло на время автономной работы. А вот температурные показатели интересны, максимальная температура во время теста при использование RMClock снизилась на 23°С ! Просто отличный результат, который для конечного пользователя означает банальное уменьшение температуры корпуса ноутбука, а также уменьшения шума (вентилятор не включается на полные обороты).

    pcmarkpower
    pcmarkpowertemp

    Производительность в PCMark также не изменилась, разница в измерениях в рамках погрешности. А вот с температурой мы наблюдаем туже картинку – максимальная температура уменьшилась на 17°С .

    Экономия энергии VS Power Saving

    worktimesave

    pcmarksave

    pcmarkpowertemp

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

    Комментарии к тестированию

    Адекватность теста на автономность не самая высокая. При столь существенном тепловыделении она должна все же возрасти, но это можно проверить только тестами, эмулирующими офисную работу. Например, используя MobileMark07, но пока доступа к ним нет. Я не выкладываю температуру при простое (в моем случае она меньше на 7-10°С), а также результаты времени автономной работы при минимальной загрузке. Просто не успеваю, со временем, после фитбека читателей добавлю обе диаграммы.

    Вывод

    RMClock Utility 2.30.1 при сохранении производительности позволяет существенно снизить температуру процессора, что влечет за собой работу охлаждающей системы на меньших оборотах, а значит уменьшению шума ноутбука. Она также теоретически увеличивает время автономной работы, но как показало тестирование, с моим ноутбуком этого не произошло.

    В своем блоге "Мои впечатления от смены Core i5-3570 на Ryzen 5 1600 без замены видеокарты (GeForce GTX 1060)" я писал, что одна особенность Ryzen 5 1600 мне не понравилась, а именно - энергопотребление, не вписывающееся в заявленные 65 ватт. Шутка ли, в умеренном по нагрузке тесте AIDA64 FPU Ryzen 5 1600 потребляет 73 ватта, а в более серьезном тесте OCCT - до 90 ватт.

    реклама


    При этом начинается сброс частот, чтобы вписаться даже в эти завышенные лимиты по потреблению, что оборачивается падением производительности. Но, как оказалось, это вполне поправимо и сейчас я расскажу вам, как это сделать.

    Почему это может не подойти для Zen 2

    MSI RTX 3070 сливают дешевле любой другой, это за копейки Дешевая 3070 Gigabyte Gaming - успей пока не началось

    Сразу хочу предупредить обладателей процессоров Ryzen с архитектурой Zen 2 (Ryzen 5 3600 и т.д.), для вас этот метод может не подойти. Не потому, что процессоры Zen 2 чем-то плохи. Просто процессоры на глазах становятся все сложнее и на примере Zen 2 мы видим, что производитель смог по максимуму выжать из чипов не только разгонный потенциал, но и возможности снижения энергопотребления.

    Если вы примените способы из этого гайда к процессору Zen 2, энергопотребление упадет, но и производительность может упасть. Тщательно тестируйте производительность до и после снижения напряжения.

    реклама

    var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);

    Однако, комьюнити пользователей процессоров Ryzen не сидит сложа руки и постоянно что-то улучшает своими силами. Например, пользователь нашей конференции 1usmus смог создать профиль энергосбережения для Zen 2, дающий более высокие частоты под нагрузкой.

    Подготовка и программные инструменты


    реклама

    Однако, перейдем поскорее к делу. Нам понадобятся следующие инструменты: HWiNFO64 для мониторинга частот, напряжений, температур и энергопотребления нашего Ryzen. На сегодняшний день это самая продвинутая и точная программа мониторинга.

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

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

    Для проверки, не снизилась ли производительность процессора при понижении напряжения, можно использовать Cinebench R20, этот тест довольно точно и с постоянством показывает производительность процессора.

    Тестирование процессора в номинальном режиме

    реклама

    Для начала надо протестировать процессор в номинальном режиме, и записать результаты. Желательно дополнительно сделать скриншоты.
    Вот что получилось у меня с Ryzen 5 1600 AF (аббревиатура AF означает процессор на архитектуре Zen+, мало чем отличающийся от Ryzen 5 2600).

    Чтобы исключить влияние Load-Line Calibration я выбрал такой его уровень, который дает минимальный разброс напряжений под нагрузкой. Для материнской платы MSI B450-A PRO MAX уровень LLC составил 4. Также я зафиксировал напряжение vSOC на 1.0125 В, а CLDO_VDDP на 0.7 В.

    В тесте AIDA64 процессор потребляет около 75 ватт, частота держится на 3600 МГц, напряжение примерно 1.1 В.

    Энергопотребление процессора я буду смотреть по параметрам CPU Package Power (SMU) и Core+SoC Power (SVI2 TFN). На форумах ведутся споры, какой из этих параметров точнее показывает потребление процессора, я же буду ориентироваться на максимальный показатель.



    В тесте OCCT процессор потребляет около 84 ватта, частота держится на 3600 МГц, напряжение примерно 1.1 В



    Производительность процессора в Cinebench R20 составила 2726 pts.


    Снижаем рабочее напряжение процессора VCORE

    Ну что же, все параметры записаны и сняты на скриншоты, теперь пора приступать к снижению энергопотребления нашего Ryzen через уменьшение напряжения. Скорее всего, вам удастся снизить напряжение в пределах 0.1 В.

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

    В BIOS вашей материнской платы нужно найти параметр напряжение CPU и через параметр Offset с отрицательным значением "-", начать постепенно уменьшать его.


    Я уже упомянул, что при снижении напряжения будут очень важны промежуточные состояния вашей системы. Сейчас объясню на примере.

    Убавив напряжение на процессоре на 0.15 В, я долго тестировал компьютер в AIDA64 и OCCT и он был абсолютно стабилен. Однако, через день он завис на рабочем столе. Напряжения для одного из промежуточных состояний "частота-напряжение" не хватило. Я чуть уменьшил снижаемое напряжение до 0.1375 В и снова оставил компьютер тестироваться. Но опять получил зависание в простое.
    И только снижение на 0.125 В стало стабильным в течение многих дней.

    И вот какие результаты дало такое снижение.

    В тесте AIDA64 процессор потребляет около 60 ватт, частота держится на 3600 МГц, напряжение примерно 0.988 В. Разница по потреблению со "стоковым" состоянием составила 15 ватт или 20%.

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



    В тесте OCCT процессор потребляет около 79 ватт, частота держится на 3600 МГц, напряжение примерно 0.994 В. Разница по потреблению со "стоковым" состоянием составила 5 ватт или 6%.

    Но OCCT - это нетипично тяжелый тест. В реальной работе компьютера таких показателей не будет.



    Производительность процессора в Cinebench R20 составила 2764 pts. Немного подросла.


    Итоги

    Как видите, ничего сложного в понижении напряжения у Ryzen нет. По сути, это тот же разгон, где мы тестируем сочетания частоты и напряжения, только надо уделить более пристальное внимание промежуточным нагрузками и состоянию простоя.

    Только с таким понижением напряжения мой Ryzen 5 1600 стал укладываться в паспортные 60 ватт. Снизилась температура и шум от кулера. Для эксплуатации без разгона это самый оптимальный режим.

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

    Как понизить тактовую частоту у процессора

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

    Понижаем частоту процессора

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

    Способ 1: Настройки BIOS

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

    Отключение режима Turbo Boost

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

    1. Откройте панель управления питания ЦПУ, найдя строку «CPU Power Management» или подобную и перейдите в неё, нажав на «Enter».

    После этого турборежим будет отключён, и если у процессора базовая тактовая частота, например, равняется 3,7 ГГц, то она же будет и максимальной, лишая CPU возможности саморазгона по соответствующей технологии.

    Уменьшение значения множителей ядер

    Самым «безопасным» профильным способом понизить тактовую частоту комплектующего является уменьшение значения множителей его ядер. Безопасность этого метода выражается в том, что пользователь не сможет поставить число множителям меньше, чем базовая. То есть таким образом вам удастся добиться понижения максимальных частот CPU до уровня меньше предела или до базовых показателей по всему процессору или по отдельным его ядрам. Производится процедура в несколько этапов:

    1. Найдите в вашем BIOS или UEFI параметр, отвечающий за управление множителями ядер, это может быть «CPU Core Ratio» или нечто подобное. Сделайте эту строку активной нажатием клавиши «Enter» и выберите режим, в котором хотите произвести настройку. Чаще всего их два: «Sync All Cores» позволяет выставить единый множитель и синхронизировать ядра, а «Per Core» обеспечивает установку индивидуального значения для каждого ядра.

    Выбор режима установки значения множителя по ядрам в UEFI BIOS

    Ручной режим синхронизации ядер в UEFI BIOS

    Режим индивидуальных значений множителя для каждого ядра в UEFI BIOS

    Вы не сможете поставить множитель ниже номинального ни в одном из режимов, а при «Per Core» имейте в виду, что ни одно ядро не может быть быстрее первого, то есть множители иных не могут быть больше, чем у 1-Core.

    Выполнив установку лимитированных значений по ядрам, удастся снизить максимальную тактовую частоту вплоть до базовой.

    Уменьшение значения частоты шины

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

    Чтобы понизить значение частоты шины, сделайте следующее:

      Найдите строчку, дающую установить нужное число вручную. Это может быть строка «Ai Overlock Tuner», «CPU Operation Speed», «BLCK/DMI/PEG Clock Control» или что-то подобное. Нажмите «Enter» и переключите её на ручной контроль, выбрав «Manual», «User Define» или «Enabled» соответственно.

    Перевод управления частотой шины в ручной режим в UEFI BIOS

    Радикальное понижение частоты шины может привести к серьёзному торможению системы при запуске, поэтому рекомендуется малый шаг снижения, от 1 до 5 МГц.

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

    Уменьшение вольтажа процессора

    Уменьшив напряжение, подаваемое на CPU, можно добиться не только сокращения электропотребления и выделения тепла, но и понижения тактовых частот ЦПУ. Для этого:

      Найдите опцию «CPU Core/Cache Voltage»: для этого в BIOS можно ориентироваться на «CPU Voltage» и значения в вольтах. Выберите её, нажав «Enter», и переключите данный параметр на ручной режим.

    Выбор режима установки значения напряжения CPU в UEFI BIOS

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

    Способ 2: Настройки Windows

    В том случае, если вы не можете или не хотите затрагивать настройки BIOS, то уменьшить частоты можно и в самой операционной системе. За это отвечает параметр «Электропитание», который регулирует в том числе минимальное и максимальное питание процессора. Для того что понизить частоту ЦПУ через питание, воспользуйтесь данным алгоритмом:

      С помощью поиска меню «Пуск», или сразу кликнув по значку увеличительной лупы, отыщите системное приложение «Панель управления» и откройте его.

    Выбор категории Оборудование и звук в Панели управдления Windows

    Вхождение в настройки электропитания Windows

    Можно воспользоваться альтернативным путём, нажав комбинацию клавиш «Win+R» и введя команду powercfg.cpl . Так, вы сразу перейдёте на панель «Электропитание».

    Альтернативный путь открытия параметров электропитания Windows

    Выбор настроек текущей схемы электропитания Windows

    Выбор дополнительных настроек электропитания Windows

    Теперь же ЦПУ не сможет полностью использовать подаваемое на неё напряжение, ограничиваясь не BIOS, а Windows, и частоты CPU будут снижены соответственно.

    Если вам захочется поиграть с настройками, то учтите, что понизить частоту меньше 800 МГц не удастся, особенно при использовании второго способа. Будьте аккуратны, стремясь взять нижнюю планку в 700 МГц и меньше, так как на определённом моменте Windows может решить, что компьютер не соответствует минимальным требованиям и откажется запускаться.

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

    Закрыть

    Мы рады, что смогли помочь Вам в решении проблемы.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Закрыть

    Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

    Читайте также: