Заметки о Windows и других программных продуктах Microsoft...

Управление частотой процессора в Windows 10

Управление частотой процессора в Windows 10

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

powercfg /query

В полученных результатах надо найти требуемые параметры. Каждый раздел и параметр можно идентифицировать по идентификатору 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

 

Итак, мы убедились в том, что регулировки частоты работы процессора в Windows 10 есть и даже работают. Но для того, чтобы получить от них положительный эффект, необходим грамотный подход. Первым делом необходимо определиться с тем, что вы хотите получить в результате —  поднять производительность, увеличить время автономной работы, снизить температуру или что-то еще. Затем надо выяснить основные параметры своего процессора, такие как частота шины, множитель, максимальная частота работы. И уже исходя из этого, опытным путем подобрать оптимальные для себя значения.

Вот как то так 🙂

 
 
Комментарии
Фёдор

А есть ли побочные эффекты от таких настроек?

Если сильно занизить максимальную частоту, то комп будет тормозить, завысить минимальную — будет шуметь и греться. Если это можно назвать побочными эффектами.

Рустам

В общем история такая есть 2 ноута, один Асер Аспайр А 715, ограничение частот пашет отлично в режиме турбобуста, и температуры очень хорошие.
2й ноут Леново у530 так вот, режу частоты, в итоге в некоторых играх отлично режет, в некоторых будто ничего и не делал. На обоих ноутах i5 8300h

Ярослав

А как влияет на процессор постоянная работа на максимальной частоте? Спасибо.

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

Буратино

Здравствуйте. У меня в режиме турбо баст идёт максимальная загрузка процессора даже во время простоя (постоянно так). А у вас смотрю нет. Подскажите, что сделать? Есть мысль снизить максимальную частоту. В простом режиме проц 1,6 Гг; в турбо — 2,4. Хочу поставить так, чтоб было 2,2 Гг. Но, хотелось бы, чтобы как и у вас максимальная загрузка включалась в случае необходимости. Процессор intel celeron n3060. Боюсь, что сгорит, если 2,4 в турбо будет. Ноутбук hp 15-ra073ur.

Игорь

купил R5 3600. всё отлично, всё радует. только почему то постоянно держит частоту почти 4100 Ггц (это его турбобуст). даже в простое на 1% стабильно на такой частоте. в настройках питания Винды 10 выбирал разные режимы. пробовал как у вас меняя в ручную частоту в настройках, но ситуация та же. не подскажете в чем может быть проблема если через Виндовс ничего нельзя сделать? на вирус или майнер не похоже так как процессор не грузится: в простое 1%.

Константин

Такая-же фигня, а иногда частота переваливает за 100%, тогда начинает тупить. Не могу понять в чем дело. При чем по факту проц почти не используется.

Msi (rtx 2060 + i5 9300) точно тоже самое, пришлось убрать турбо буст, чтобы не грелся и не шумел, без него на 2400 прекрасно всё работает, нужно как-то порезать частоту турбо буста до 3.5-3.6 хотя бы как-то

Спасибо за наводку, винда 10, сегодня проц упал до 800 Мгц, блин, ни че не делал такого. Биос сбросил,потом обновил, сейчас залез в электропитание — макс частота стоит на 0, во как, неисповедимы пути Билла Гейтса и его творений

Спасибо! А какая команда включает «Максимальное сосотояние процессора»?

Александр

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

На материнках с разблокированным множителем(Z чипсет) частота меняется не по P-state, а по множителю тоже. Дискретность 100 МГц. Множитель от 8 до 83(после 50 нужен жидкий азот/гелий, понятное дело). RightMark Power Management не работает на микроархитектуре Skylake и новее.

Спасибо за статью — полезно. Ставил на ноуте асус с цп 8750Н макс производительность 99% и частота из-за этого нигде не поднималась выше 2,09Ггц, где логика спросите вы? В голову у Гейтса, видимо, потому что таких моментов в великой и ужасной ОС куча. Теперь, когда поставил макс частоту 3,2 Ггц температура выше 80 не поднимается, что радует. Но и ниже не опускается, даже в простое, что за бред — без понятия. В итоге стоит напруга -0.150 (которая вообще на температуру не влияет как оказалось), макс производительность 99% и макс частота 3,2 Ггц, как результат — температура 47 и частота 3,2 в простое, температура 80 и та же частота 3,2 при 100% нагрузке.

Нужна хелпа

Нашел решение? Абсолютна идентичная проблема, не знаю как вернуть базовые частоты

Спасибо за очень полезную статью. Столкнулся с тем, что при разгоне 10700К при загрузке винды, частота тупо фиксировалась на 4700 МГц (сбрасывался множитель), хотя в БИОС согласно выставленному множителю отображается частота 5000 МГц. После внесения корректив в реестр получилось заставить работать процессор на выставленной частоте.

Помогите

Проблема такая, раньше проц работал на базовых частотах 2.4, в играх выкручивал буст на максимальные 4000мгц и не сбрасывал, сейчас ограничил максимальные частоты до 3500, но теперь и в простое и при минимальной нагрузке частоты не падают до базовых, держатся на 3.5 постоянно, есть способ исправить? И плачевна ли постоянная работа на 3.5?