Заметки о 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%, тогда начинает тупить. Не могу понять в чем дело. При чем по факту проц почти не используется.

Спасибо за наводку, винда 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% нагрузке.