Как повысить напряжение ядра процессора в биосе

Обновлено: 06.07.2024

Если вам нужен максимальный контроль процесса оверклокинга, вам нужно использовать для этого настройки BIOS. Это руководство расскажет вам о выполнении эталонных тестов, изменении параметров, мониторинге вашей системы и не только 1 2 .

Если вам нужен максимальный контроль процесса оверклокинга, вам нужно использовать для этого настройки BIOS. Это руководство расскажет вам о выполнении эталонных тестов, изменении параметров, мониторинге вашей системы и не только 1 2 .

BIOS (базовая система ввода-вывода) — это программное обеспечение системной платы, которое загружается до операционной системы. В нем имеется графический интерфейс для настройки аппаратного обеспечения системной платы. С помощью BIOS можно изменить такие параметры как напряжение и частота, и поэтому BIOS можно использовать для разгона центрального процессора с целью достичь более высокой тактовой частоты и потенциально более высокой производительности.

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

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

Прежде чем пытаться использовать BIOS для оверклокинга, стоит взглянуть на программное обеспечение, которое может упростить этот процесс. Например, утилита Intel® Extreme Tuning Utility (Intel® XTU) может стать удобным решением для тех, кто незнаком с оверклокингом. Еще более простой автоматизированный инструмент Intel® Performance Maximizer (Intel® PM) предназначен для новейших процессоров Intel® Core™, и все подробности о нем вы можете узнать здесь.

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

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

Внешний вид графического интерфейса BIOS зависит от производителя системной платы. Для доступа к BIOS нужно нажать определенную клавишу, обычно F2 или Delete, спустя несколько мгновений после включения компьютера, но до появления экрана загрузки Windows. Конкретные указания можно найти в документации по системной плате.

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

Параметры, важные для оверклокинга

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

Далее приведен перечень наиболее полезных для оверклокинга параметров:

  • CPU Core Ratio (коэффициент ядра ЦП) или множитель определяет скорость процессора. Общая скорость процессора рассчитывается посредством умножения базовой тактовой частоты (BCLK) на этот коэффициент. Например, при умножении BCLK в 100 МГц на коэффициент ядра 45 мы получим тактовую частоту процессора 4500 МГц или 4,5 ГГц. Обычно этот параметр можно изменить как для отдельных ядер, так и для всех ядер.
  • CPU Core Voltage (напряжение ядра процессора) — определяет подаваемое на процессор напряжение. При повышении напряжения ядра процессор получает дополнительные ресурсы для работы на более высокой тактовой частоте.
  • CPU Cache/Ring Ratio (коэффициент кэша / вызовов процессора) определяет частоту определенных компонентов процессора, таких как кэш-память и контроллера памяти.
  • CPU Cache/Ring Voltage (напряжение кэша / вызовов) позволяет повысить напряжение кэш-памяти процессора. Это помогает стабилизировать работу процессора при оверклокинге. На некоторых платформах это напряжение связано с напряжением ядра процессора, и его нельзя изменить отдельно.

Мониторинг основных показателей системы

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

В BIOS имеются очень ограниченные возможности мониторинга системы, поэтому лучше использовать для этой цели программное обеспечение, работающее в Windows. Intel® XTU предлагает полный набор инструментов для мониторинга системы, также доступны другие инструменты, в том числе CPU-Z, CoreTemp, HWiNFO32 и т. д.

Теперь вы понимаете настраиваемые параметры и можете приступить к тестированию производительности системы.

Шаг 1: определение исходной производительности

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

Существует много методов тестирования аппаратного обеспечения, в том числе для этого можно использовать ПО Intel® Extreme Tuning Utility. В нашем более полном руководстве по оверклокингу мы перечислили еще несколько полезных инструментов.

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

Повышение напряжения — один из способов так называемого «разгона» процессоров. Таким образом, можно добиться повышения производительности на 10-15 процентов. Для изменения параметров напряжения можно использовать встроенные возможности материнской платы, либо специальные программы.

Как увеличить напряжение процессора

  • Как увеличить напряжение процессора
  • Как разогнать процессор через программу
  • Как оптимизировать работу процессора

Включите компьютер и после появления стартового экрана материнской платы нажмите кнопку Del на клавиатуре (зависит от материнской платы), чтобы зайти в BIOS. Если с первого раза не получается войти в систему ввода вывода, попробуйте еще раз. Перейдите в раздел Power Bios Setup или Power Management Setup (название этого пункта также зависит от материнской платы, ищите похожее). Установите параметр Vcore Voltege на +0.1 (в диапазоне 0.1-0.3) либо повысьте напряжение в процентах или укажите необходимый вольтаж вручную.

Установите более мощный кулер на процессор. Будьте готовы, что повышение напряжения ведет к изменению теплоемкостных характеристик самого процессора. Если вы не обеспечите достаточное охлаждение, рискуете вывести процессор из строя из-за перегрева. Также стоит отметить, что процессор вовсе может прийти в негодность и придется покупать новый.

Если в настройках BIOS повышение напряжения недоступно, воспользуйтесь программами CrystalCPUID, AI Booster, EasyTune6 и другими. Внимательно читайте инструкции по данным программам, так как неверно выставленные параметры могут привести к поломке компьютера. Найти все подобное программное обеспечение можно на специальных порталах софта.

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


О том, что такое Active Core Control: как работает и для чего используется, можно почитать здесь.

Напряжение процессоров Ryzen

Напряжение питания Ryzen зависит от частоты. Чем выше частота, тем выше напряжение необходимо процессору для стабильной работы. Рассмотрим три категории частот, о которых будем говорить далее:

  • Базовая частота работы Ryzen (Base) — это значение частоты в МГц, заданное производителем при изготовлении процессора. Ей соответствует своё напряжение питания. Будем называть его Base.
  • Частота Turbo Boost. Для повышения производительности процессоров в компании AMD разработали технологию PBO, которая автоматически повышает частоту процессора при увеличении нагрузки если это позволяет охлаждение и питание. Обычно, на максимальной частоте могут работать одновременно 1-2 ядра процессора. При этом оставшиеся ядра имеют более низкую частоту. Для повышения частоты до максимального предела Turbo Boost нужно повысить напряжения питания. Назовём его Boost.
  • Частота OC. Пользователи могут вручную поднять частоту процессора ещё выше частоты Turbo Boost для получения максимальной производительности. При этом напряжение питания является очень высоким, что приводит к большому потреблению электроэнергии и сильному нагреву процессора. Нагрев, в свою очередь, требует качественных систем охлаждения, способных отвести выделяемое тепло. В случае, если кулер не соответствует нужным требованиям, происходит перегрев и выключение компьютера. В редких случаях возможен выход из стоя различных узлов компьютера. Данной частоте соответствуют значения напряжения, близкие к максимальным, — OC.

Рассмотрим таблицы частот и напряжений питания процессоров фирмы AMD семейств Ryzen и Ryzen Threadripper. Условные обозначения в таблицах:

  • ? — точное значение не было найдено;
  • ≈ — величина приблизительна указана на основе данных похожей модели.

Первая таблица напряжений Ryzen относится к линейке Summit Ridge, сюда входит процессор Ryzen 1600 и другие:

ПроцессорЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр. (OC, мВ)TDP, Вт
Ryzen 3 12004/43.111753.4≈11754.0140065
Ryzen 3 1300X4/43.512253.7?4.0140065
Ryzen 5 14004/83.2≈12253.412503.8135065
Ryzen 5 1500X4/83.5≈13753.7≈13003.9≈140065
Ryzen 5 16006/123.2≈13753.6?3.9142565
Ryzen 5 1600X6/123.6≈13004.0?4.0140095
Ryzen 7 17008/163.012503.712503.9140065
Ryzen 7 1700X8/163.412503.8≈12754.0140095
Ryzen 7 1800X8/163.612754.014004.1140095

Таблица напряжений процессоров Ryzen Threadripper поколения Whitehaven, 1000-ная серия:

ПроцессорЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр. (OC, мВ)TDP, Вт
Ryzen Threadripper 1900X8/163.814254.01425≈4.2?180
Ryzen Threadripper 1920X12/243.5≈12254.0513504.01350180
Ryzen Threadripper 1950X16/323.411504.0?3.91400180

Как видите, максимальное напряжение Ryzen для этой серии составило 1,4 вольта. Больше не следует ставить даже при разгоне. Рассмотрим следующее поколение. Таблица напряжений линейки процессоров Pinnacle Ridge, 2000-ная серия:

ПроцессорЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр.(OC, мВ)TDP, Вт
Ryzen 3 2300X4/43.5?4.0?4.3140065
Ryzen 5 2500X4/83.6?4.0?4.3?65
Ryzen 5 1600 refresh6/123.2?3.61250??65
Ryzen 5 26006/123.412253.9≈12254.2≈147565
Ryzen 5 2600X6/123.612754.214754.2147595
Ryzen 5 2600X MAX6/123.6≈12754.2≈1475≈4.2≈147595
Ryzen 7 2700E8/162.8?4.0?≈4.1≈147545
Ryzen 7 27008/163.211754.1≈14504.1145065
Ryzen 7 2700 MAX8/163.211754.1≈1450≈4.1≈145065
Ryzen 7 PRO 2700X8/163.6≈12504.1?≈4.3≈1475105
Ryzen 7 2700X8/163.712504.3≈14754.31475105

Таблица напряжений линейки Threadripper линейки Colfax, 2000-ная серия:

НаименованиеЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр.(OC, мВ)TDP, Вт
Ryzen Threadripper 2920X12/243.511004.3≈14754.01275180
Ryzen Threadripper 2950X16/323.5≈13004.4≈14504.151475180
Ryzen Threadripper 2970WX24/483.0?4.2≈14504.01375250
Ryzen Threadripper 2990WX32/643.0?4.2≈14254.01425250

Здесь максимальное напряжение вырастало до 1,475 вольт. Далее последнее, на момент написания статьи, поколение. Таблица напряжений линейки процессоров Ryzen 3000 Matisse:

НаименованиеЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр. (OC, мВ)TDP, Вт
Ryzen 5 35006/63.6≈0.9254.1≈1425≈4.1≈142565
Ryzen 5 3500X6/63.6≈0.9254.114254.1142565
Ryzen 5 36006/123.60.9254.2?4.1140065
Ryzen 5 Pro 36006/123.6≈0.9254.2?≈4.2≈135065
Ryzen 5 3600X6/123.8≈10004.4?4.3135095
Ryzen 7 Pro 37008/163.6≈0.9254.4?4.3145065
Ryzen 7 3700X8/163.6≈0.9254.4?4.3145065
Ryzen 7 3800X8/163.910004.514504.41475105
Ryzen 9 390012/243.1?4.3???65
Ryzen 9 Pro 390012/243.1?4.3???65
Ryzen 9 3900X12/243.810004.6?4.21400105
Ryzen 9 3950X16/323.510004.7?4.41450105

Таблица вольтажа Ryzen Threadripper 3000 Castle Peak:

НаименованиеЯдра/ПотокиЧастота (Base, ГГц)Напр. (Base, мВ)Частота (Boost, ГГц)Напр. (Boost, мВ)Частота (OC, ГГц)Напр. (OC, мВ)TDP, Вт
Ryzen Threadripper 3960X24/483.811004.5?≈4.1≈1250280
Ryzen Threadripper 3970X32/643.710004.5?4.11250280
Ryzen Threadripper 3990X64/1282.910504.3?3.71150280

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








Почему возможен разгон

Мощность машины зависит от количества выполняемых за единицу времени операций. Она задается тактовой частой, чем она выше, тем больше производительность. Поэтому прогресс вычислительной техники сопровождался постоянным увеличением этой характеристики. Если в первых ЭВМ, собранных на реле и лампах, она составляла несколько герц, то сегодня частота измеряется уже гигагерцами (10 9 Гц).

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


Как посмотреть напряжение Ryzen

В BIOS название пункта напряжения питания процессора — CPU Vcore Voltage (CPU Core Voltage, CPU Vcore). Данную величину можно посмотреть на закладке H/W Monitor (Monitor, System Info).


Для того, чтобы посмотреть напряжение процессора в Windows, можно использовать утилиту CPU-Z. Значение называется Core Voltage и находится на закладке CPU.


Можно также использовать программу HWiNFO64. Параметр VID в таблице, строка CPU Status.


№1. SetFSB

Одна из самых простых и удобных в использовании утилит для процессоров Intel. Отличается тем, что даже не требует перезагрузки и подходит для разгона даже некоторых старых ЦПУ, включая двухъядерные модели 2000-х годов.

Минус программы – отсутствие поддержки некоторых материнских плат, поэтому перед использованием стоит проверить совместимость на сайте разработчика SetFSB.


Процесс разгона требует выполнения следующих шагов:

  • Открыть программу.
  • Выбрать в перечне Clock Generator модель генератора тактовых частот материнской платы (клокера).
  • Нажать на Get FSB.
  • Передвигать ползунок, постепенно увеличивая значение частоты FSB и контролируя температуру процессора с помощью другой программы.
  • Выбрав оптимальное значение, при котором скорость увеличивается, а температура не принимает критические значения, нажать Set FSB.

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

Выводы

Сегодня мы познакомились с напряжениями питания семейств процессоров Ryzen и Ryzen Threadripper. Благодаря этим данным вы сможете подобрать безопасное напряжение для ryzen при разгоне и не сжечь свой процессор. Также нами были рассмотрены способы узнать напряжения в BIOS и операционной системе Windows. Для Windows предложены две утилиты для данных целей — CPU-Z и HWiNFO64.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

No related photos.

(4 оценок, среднее: 4,00 из 5)

Об авторе

entertainm30
Имею высшее образование в сфере компьютеров. Немного разбираюсь в свободном ПО. Занимаюсь в свободное время ремонтом техники. Являюсь счастливым обладателем 3D принтера. Считаю самообразование очень важным для сегодняшнего времени.

Увеличение тактовой частоты

Тактовая частота – один из основных параметров процессора. Она влияет на скорость выполняемых вычислений и может увеличиваться с помощью улучшения характеристик шины FSB.

Сделать это просто, увеличивая частоту с шагом 1 МГц. Способ считается относительно безопасным. При установке слишком большого значения установленные пользователем настройки автоматически сбрасываются к стандартным показателям, а ЦПУ после перезагрузки работает на нормальной частоте.

Действия для изменения частоты:

  • Зайти в БИОС, нажав на соответствующую клавишу при загрузке компьютера (F1, Del, F2).
  • Найти в списке значение CPU Clock, перейти к нему, нажав Enter.
  • Ввести новое значение частоты шины, ориентируясь на величину множителя. Не рекомендуется увеличивать показатель больше, чем на 5-10% за один раз.
  • Сохранить изменения и перезагрузить компьютер.


После тестирования работы процессора с новой частотой можно оставить его разогнанным до этой степени – или продолжать увеличение. Общая величина повышения показателей может оказаться на уровне 15-20%. Для процессоров типа Intel Core i3, i5 или i7, уже работающих на высоких частотах, максимальное увеличение составит только 5-15% от номинального значения.

Undervolting


После этого изменяем параметр Core Voltage Offset на -10 мВ и проводим в этой же программе стресс тест процессора. Если он прошел успешно — можно опускать напряжение еще ниже. Стоит быть готовы к тому, что вылетит BSOD — ничего страшного тут нет, просто Вы занизили напряжение слишком сильно, просто поднимите его немного и сохраните. Ровно тоже самое делаете по вкладке Cache с параметром Cache Voltage Offset. Например, на Surface Pro 4 снижение напряжения на

100 мВ позволило опустить температуру на 4 градуса.




С учетом того, что система осталась абсолютно стабильной — отличный результат!


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

Центральный процессор (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.

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