Современный процессор почти никогда не работает на предельных оборотах постоянно: он подстраивает частоту и напряжение под текущую нагрузку. За это отвечают P-States, или состояния производительности. В прошлой статье мы говорили про C-States, которые отправляют ядра «спать» во время простоя. У P-States другая задача: они управляют скоростью процессора, пока тот занят работой. Ниже разберём, как устроены уровни P-States, где их настраивать в BIOS у Intel и AMD, чем отличаются аппаратные механизмы HWP и CPPC и в каких случаях фиксировать частоту действительно имеет смысл.

Что такое P-States

P-State — это заранее определённая пара «максимальная тактовая частота и напряжение», на которой процессор может работать в активном состоянии C0. Если процессор исполняет задачи, это ещё не значит, что ему нужна максимальная частота. Система динамически переключает его между разными P-States и держит баланс между производительностью и энергопотреблением в зависимости от нагрузки.

Уровни P0, P1, P2

Чем меньше номер состояния, тем выше производительность и аппетит к энергии:

Состояние Частота и напряжение Когда применяется
P0 Пиковая производительность: максимально возможная частота (включая Turbo Boost / Precision Boost) и соответствующее высокое напряжение Высокая и средняя нагрузка, когда нужна максимальная скорость операций
P1 Частота обычно 80-90% от максимальной, напряжение снижено примерно до 90% от P0 Умеренная или колеблющаяся нагрузка: хороший баланс скорости и эффективности
P2 Частота падает до 60-70% от максимума, напряжение около 80% от P0 Низкая нагрузка и фоновые задачи, приоритет отдан экономии энергии и снижению тепловыделения

Точное число P-States и их частоты с напряжениями зависят от модели процессора и его прошивки. У современных чипов состояний может быть больше (P3, P4 и далее), что даёт более плавную регулировку. Обычно всем управляют автоматически технологии Intel SpeedStep/EIST/HWP или AMD Cool'n'Quiet/CPPC, хотя в ряде случаев настройку можно выполнить вручную.

C-States и P-States: в чём разница

Эти два механизма регулярно путают, хотя действуют они в разные моменты.

  • C-States (состояния простоя) управляют энергопотреблением, когда процессор простаивает или почти не нагружен. Чем глубже состояние (C1, C3, C6 и так далее), тем больше блоков отключается и тем ниже потребление, но и пробуждение занимает больше времени.
  • P-States (состояния производительности) работают, пока процессор активен (C0). Переключение между ними быстрое и позволяет гибко подстраиваться под нагрузку, не уходя в сон.

Где P-States настраиваются в BIOS

Управление идёт через BIOS/UEFI материнской платы, но глубина доступных настроек сильно зависит от производителя платы, её модели и самого процессора. Искать нужно в разделах, связанных с процессором или питанием: Advanced CPU Configuration, CPU Features, Power Management, AMD CBS.

Платформы Intel

  • Intel SpeedStep Technology (EIST) — базовая технология управления P-States. Когда она включена, процессор вправе динамически менять состояния. Если выключить, он обычно фиксируется на базовой частоте (без Turbo Boost) или на P0, если Turbo Boost разрешён.
  • Hardware P-States (HWP) — более продвинутое автоматическое управление на аппаратном уровне, доступное начиная с Skylake. Включается параметром Hardware P-States либо через CPU Power Management Control > Hardware P-State Control.

Платформы AMD

  • Cool'n'Quiet (CnQ) — базовая технология AMD для управления P-States и энергопотреблением. Включённая, она разрешает переключение состояний.
  • AMD Cool&Quiet Function / Global C-State Control — эти настройки иногда влияют и на P-States. Как правило, по умолчанию они включены.
  • AMD P-State Support — выбор драйвера управления P-States на системах с поддержкой CPPC (современные Ryzen и EPYC). Режимы: Disabled (используется legacy ACPI), Enabled (драйвер amd-pstate) и Active (более агрессивный режим amd-pstate-epp).
  • Precision Boost Overdrive (PBO) — формально это разгон, но он тесно связан с системой P-States: поднимает пределы частоты и мощности в P0.

На многих современных платформах вручную задать значения для P1, P2 и остальных нельзя. Управление происходит автоматически: через включение или выключение технологий (EIST, CnQ, HWP, CPPC, Core Performance Boost) либо косвенно, через профили электропитания операционной системы.

AMD: CPPC и драйвер amd-pstate

Ryzen и EPYC используют усовершенствованную схему на основе CPPC (Collaborative Processor Performance Control). Это протокол ACPI, который позволяет операционной системе и процессору «договариваться» и выставлять оптимальные P-States с высокой частотой переключения и точностью. Принцип работы такой:

  1. Процессор сам непрерывно оценивает нагрузку, температуру и доступный бюджет мощности (PPT, TDC, EDC). По результатам внутренний контроллер SMU мгновенно выбирает подходящий P-State для каждого ядра или группы ядер (CCX/CCD).
  2. Операционная система через драйвер лишь сообщает свои предпочтения между производительностью и энергосбережением с помощью EPP, а реализует их сам процессор посредством CPPC.
  3. По сравнению со старым драйвером ACPI acpi-cpufreq переключение становится заметно быстрее и точнее. Это даёт лучшую отзывчивость, более стабильную частоту под нагрузкой и потенциально более низкое потребление в простое.

В Linux, начиная с ядра 6.х, появились драйверы amd-pstate и amd-pstate-epp, которые используют CPPC для прямого управления P-States и превосходят acpi-cpufreq по производительности и эффективности. Для их работы процессор должен поддерживать CPPC, а в BIOS/UEFI должна быть включена опция AMD P-State Support.

Intel: Hardware P-States со времён Skylake

Аналогичный шаг на стороне Intel сделан в архитектуре Skylake (Core 6-го поколения и Xeon Scalable), где появилась система Hardware P-States, или HWP. Суть в следующем.

  • Управление P-States переходит с уровня операционной системы (драйвер intel_pstate) на аппаратный уровень самого процессора. Он сам, опираясь на встроенные алгоритмы и показания датчиков, в реальном времени подбирает частоту и напряжение.
  • Состояния переключаются ещё быстрее и плавнее, чем при классическом SpeedStep (EIST): ниже задержки при смене нагрузки, лучше энергоэффективность и стабильность частоты. Для серверных сред, чувствительных к задержкам, это критично.
  • Включается параметром Hardware P-States (HWP) в BIOS/UEFI серверных и десктопных плат. На серверах часто дополнительно требуется включённая Enhanced Intel SpeedStep Technology (EIST). В ОС HWP работает вместе с драйвером intel_pstate и системными режимами управления питанием, например powersave, performance и schedutil в Linux. Для Windows Server нужен современный драйвер, а при виртуализации ещё и поддержка со стороны гипервизора.

Когда P-States стоит отключать или фиксировать

Отключение или принудительная фиксация P-States — крайняя мера, которая нарушает штатную работу процессора. Она оправдана лишь там, где польза от стабильной частоты перевешивает резкий рост энергопотребления и тепловыделения.

Основные причины

Борьба с задержками. Когда при скачке нагрузки процессор переходит из низкого состояния (скажем, P2) в P0, возникает микрозадержка. Для большинства задач она несущественна, но в средах с экстремальными требованиями ко времени отклика даже десятки микросекунд недопустимы. Это высокочастотный трейдинг (HFT), системы реального времени (RTOS), VoIP-маршрутизация и инференс ИИ. Фиксация на P0 гарантирует, что процессор всегда готов выполнить задачу мгновенно.

Требование к стабильной частоте. На нагруженных серверах баз данных (1С, MS SQL, PostgreSQL), обрабатывающих тысячи операций в секунду, колебания частоты из-за смены P-States могут давать просадки производительности. Постоянная работа на P0 обеспечивает стабильную и максимальную вычислительную мощность, правда ценой роста TCO: растут расходы на электроэнергию и охлаждение.

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

Чем рискуете

Риски нельзя недооценивать. Процессор, зафиксированный на P0, потребляет максимум мощности даже в простое. Это ведёт к экспоненциальному росту энергопотребления, тепловыделения и шума: кулеры постоянно работают на высоких оборотах и быстрее вырабатывают ресурс. Длительные высокие температуры и напряжение могут сократить срок службы компонентов и в итоге привести к неожиданному отказу.

Как зафиксировать состояния

  • BIOS/UEFI. Отключить Intel SpeedStep (EIST PSD), AMD Cool'n'Quiet (CnQ) или AMD P-State. На некоторых платах есть прямой пункт вроде CPU Fixed Frequency или P-State 0 Only.
  • Windows. Выбрать схему электропитания «Максимальная» или «Высокая производительность». Тогда процессор большую часть времени остаётся в состояниях высокой производительности, близких к P0.
  • Linux. Воспользоваться утилитами cpupower или cpufreq-set: задать режим performance (cpupower frequency-set -g performance) и при необходимости выставить одинаковые минимальную и максимальную частоты на уровне P0 (cpupower frequency-set -d <max_freq> -u <max_freq>).

Итоговая таблица: что выбрать

Задача / система Рекомендуемый режим Обоснование
Real-time задачи P-State 0 (фиксировано) Гарантирует минимальную задержку обработки данных
Веб-серверы Авто через HWP/CPPC Оптимальный баланс производительности и энергоэффективности
Базы данных и 1С P0 / Performance Mode Максимальная производительность при обработке транзакций
Виртуализация PBO/CPPC Динамическое распределение ресурсов между виртуальными машинами с экономией энергии

Выводы

P-States — важнейший инструмент баланса между производительностью и энергоэффективностью процессоров. В отдельных сценариях они создают неудобства, но для большинства задач это незаменимое решение, подбирающее нужную скорость под конкретную нагрузку. Поэтому автоматическое управление (HWP у Intel, CPPC у AMD) лучше оставлять включённым, а фиксацию на P0 применять точечно: для задач реального времени, критичных к задержкам, и для высоконагруженных баз данных, где важна ровная частота.

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