Оптимизация энергопотребления с помощью AMD CBS и Global C-state Control
Оптимизация энергопотребления — это один из способов уменьшения энергозатрат компьютера и сокращения расходов на электричество. AMD CBS (Core/Chipset/SoC) и Global C-state Control — это инструменты, которые могут помочь в этом деле.
AMD CBS
AMD CBS — это набор параметров настройки в BIOS материнской платы, которые позволяют оптимизировать работу процессора и чипсета. Настройки AMD CBS могут варьироваться в зависимости от модели материнской платы, но обычно они включают параметры управления энергопотреблением процессора, памяти, чипсета и других компонентов.
Одним из наиболее важных параметров является Precision Boost Overdrive (PBO), который позволяет автоматически увеличивать частоту процессора на короткий промежуток времени, если требуется большая производительность. Это может сэкономить энергию, так как процессор будет работать в повышенной частоте только в тех случаях, когда это необходимо.
Global C-state Control
Global C-state Control — это функция, которая регулирует работу ядра процессора. Она позволяет перевести ядра процессора в режим с низким энергопотреблением (C-state), когда они не используются. Когда ядра находятся в режиме C-state, они потребляют гораздо меньше энергии, иногда до 90% меньше, чем когда они работают полным ходом.
Global C-state Control можно настроить как в BIOS, так и в операционной системе. В операционной системе Windows это делается через меню Power Options. Если вы выберете опцию "Power saver", то это переведет процессор в режим с низким энергопотреблением и значительно сократит расходы на электричество.
Выводы
Оптимизация энергопотребления с помощью AMD CBS и Global C-state Control может помочь сократить расходы на электричество. Эти инструменты могут быть полезны для пользователей, которые хотят увеличить продолжительность работы своего компьютера от аккумуляторной батареи или сократить свои счета за электричество. Однако это не следует делать за счет ухудшения производительности компьютера. Настройки должны быть сбалансированы между энергосбережением и производительностью.
Что такое CPU C States?
Global C-State Control — функция энергосбережения, позволяет процессору снижать производительность во время бездействия. Логично вообще включать. Однако у некоторых из-за включенной функции система зависает, глючит, либо вообще выключается без причины.
Что такое P state?
P-состояния позволяют изменять напряжение и частоту ядра (другими словами рабочий режим), чтобы снизить энергопотребление. Существует набор P-состояний, каждое из которых соответствует разных рабочим режимам (пары напряжение-частота). Наиболее высокий рабочий режим (P0) предоставляет максимальную производительность.
Что такое AMD C-State Support?
Описание: Опция определяет, будет ли при переходе компьютера в режим энергосбережения происходить переключение процессора в состояние сна или нет. Безопасным вариантом можно считать значение Disabled, запрещающее использование состояния сна для процессора.
Что такое C-State Tech?
Опция Intel(R) C-STATE Technology отвечает за использование технологии энергосбережения Enhanced Halt State (или С1Е). Значения опции: Auto – использовать данную технологию энергосбережения; Disabled – не использовать данную технологию энергосбережения.
Что такое CPU C3 Report?
позволяет запретить (параметр [Disabled]) / разрешить (параметр [Enabled]) переход процессора в энергосберегающее состояние C3 (когда частота опускается до 0 МГц, отключается кэш-память L1 и L2, но при этом сохраняются значения всех регистров).
Что такое Core C6 State?
Core C6 State — активация энергосберегающего режима процессора (CPU), понижающий напряжение при бездействии. Простыми словами: когда система бездействует или минимально загружена — происходит снижение частоты, уровня напряжения.
Что такое CPU C States? Ответы пользователей
Enhanced Halt State — технология для управления энергопотреблением центрального процессора. Принцип в том, что при низкой нагрузке, когда .
Центральный процессор (CPU) спроектирован на бесконечно долгую . Если вы знаете про C-состояния (C—states), P-состояния (P-states) и то, .
Опция Intel(R) C—STATE Technology отвечает за использование технологии энергосбережения Enhanced Halt State (или С1Е). Значения опции: Auto – использоват.
Опция Intel(R) C—STATE Technology отвечает за использование технологии энергосбережения Enhanced Halt State (или С1Е). Auto – использовать .
Параметры BIOS (125). Название (синонимы) параметра. Назначение параметра. Тип. Варианты значений параметра. Особенности значений параметров и .
Для достижения эффективного уровня энергопотребления существуют различные режимы питания, обобщённо именуемые «C—State».
Включение этого режима (называемого Enhanced Halt State или C1E) для современных процессоров позволяет снизить энергопотребление в режиме .
Центральный процессор (CPU) спроектирован на бесконечно долгую . Если вы знаете про C-состояния (C—states), P-состояния (P-states) и то, .
Пункт позволяет выбрать режим работы функции Intel C—State для . Скорее всего просто снижается тактовая частота процессора (CPU) при .
Global c state control что это
Global C State Control (GCС) – это функция, которую можно встретить в BIOS (Basic Input/Output System) компьютера. Она позволяет управлять энергопотреблением процессора и расходованием его ресурсов. В этой статье мы разберем, что такое GCС, как ее настраивать и какие преимущества она дает.
Процессор – это один из самых главных компонентов компьютера, от него зависит скорость работы, многие процессы и задачи. Однако работа процессора требует большого количества электроэнергии, что снижает продолжительность его жизни и может привести к ухудшению производительности.
GCС позволяет управлять потреблением процессором энергии в зависимости от нагрузки на него. Если мощности процессора не требуется, GCС уменьшает его частоту и напряжение, что позволяет экономить электроэнергию. И тут важно понимать, что при отключении функции GCС процессор всегда работает на полную мощность, что может снижать эффективность работы компьютера и повышать температуру его компонентов.
Global C State Control: для чего он нужен?
Управление энергопотреблением процессора
Global C State Control или GCC, это управление энергопотреблением процессора. Когда компьютер не используется, процессор переходит в спящий режим, чтобы снизить энергопотребление. Global C State Control позволяет контролировать, как далеко в спящий режим может зайти процессор.
Улучшение производительности
Если вы поставите настройки GCC в «высокий», то процессор будет использовать меньше энергии, но увеличит свою производительность. Это полезно для приложений, которые требуют максимальной производительности процессора.
Снижение температуры процессора
Также GCC может помочь снизить температуру процессора, что увеличит его жизненный цикл и снизит шум каждодневной работы.
В общем, Global C State Control – это очень полезный инструмент для людей, которые хотят иметь более точный контроль над производительностью и энергопотреблением своего компьютера.
Энергосбережение и увеличение продолжительности жизни батареи
Global C State Control
Global C State Control – это технология, которая позволяет управлять состоянием процессора. Некоторые пользователи выключают эту функцию в BIOS, так как ее наличие может быть причиной высокого энергопотребления.
Включение Global C State Control позволяет снизить энергопотребление компьютера в периоды, когда процессор не загружен. Это может значительно увеличить время работы ноутбука от батареи.
Power management
Power management – это комплекс мер, направленных на повышение энергоэффективности компьютерных систем. Средства управления энергопотреблением включают в себя функции отключения экрана, жесткого диска и других устройств, когда они не используются. Также есть возможность включения режима сна, когда компьютер использует минимальное количество энергии для поддержания текущего состояния системы.
Пользование средствами управления энергопотреблением может существенно увеличить временную продолжительность работы ноутбука от одной зарядки батареи. Также это позволяет уменьшить воздействие на окружающую среду и снизить экономические расходы на электроэнергию.
Ограничения, связанные с Global C State Control в BIOS
1. Ограничение по материнской плате
Не все материнские платы могут поддерживать Global C State Control, поэтому даже если эта функция есть в BIOS, она может быть недоступна на вашей плате.
2. Ограничение по процессору
Даже если материнская плата поддерживает Global C State Control, ее работа может ограничиваться процессором. Если ваш процессор не поддерживает эту функцию, то в BIOS просто не будет пункта, отвечающего за ее включение или выключение.
3. Ограничение по операционной системе
Global C State Control требует поддержки со стороны операционной системы. Некоторые ОС не могут использовать эту функцию подобным образом или не работают должным образом, когда она включена. Если вы планируете использовать эту функцию, удостоверьтесь, что ваша ОС поддерживает ее.
4. Возможное ухудшение производительности
Включение Global C State Control может ухудшить производительность системы. Если в вашей системе большое количество процессов, то включение данной функции может привести к увеличению задержек и ухудшению отзывчивости системы.
5. Потребление энергии
Global C State Control может снизить потребление энергии, но это также может увеличить термическое отдачу. Если ваша система не имеет достаточного охлаждения, включение данной функции может привести к перегреву компонентов и проблемам с отключением системы.
6. Необходимость правильных драйверов
Для правильной работы Global C State Control необходимы драйверы, которые поддерживают эту функцию. Если вам необходимо использовать данную функцию, убедитесь, что установлены правильные драйверы и ОС поддерживает эту функцию.
Как включить или выключить Global C State Control на ПК?
Включение Global C State Control
Если ваш процессор поддерживает функцию Global C State Control и вы хотите включить ее для повышения энергоэффективности, выполните следующие шаги:
- Перейдите в BIOS настройки вашего ПК.
- Откройте раздел, связанный с управлением энергопотреблением (обычно он расположен в разделе Power Management).
- Найдите опцию «Global C State Control», «C States» или что-то похожее и включите ее.
- Сохраните изменения в настройках и перезагрузите компьютер.
Выключение Global C State Control
Если вы заметили проблемы с работой ПК после включения функции Global C State Control, или просто не хотите использовать эту опцию, следуйте инструкциям ниже:
- Перейдите в BIOS настройки вашего ПК.
- Откройте раздел, связанный с управлением энергопотреблением (обычно он расположен в разделе Power Management).
- Найдите опцию «Global C State Control», «C States» или что-то похожее и выключите ее.
- Сохраните изменения в настройках и перезагрузите компьютер.
Обратите внимание, что доступность опции «Global C State Control» и ее название может различаться в зависимости от производителя вашего ПК и версии BIOS. В некоторых случаях, эта опция может быть недоступна для изменения пользователями.
Влияние Global C State Control на производительность ПК
Что такое Global C State Control (GC)?
GC — это параметр, который контролирует время, в течение которого процессор может находиться в спящем режиме (C-state), чтобы снизить энергопотребление. Включение этой функции позволяет сохранить энергию на ПК, но может также повлиять на производительность.
Как включение GC влияет на производительность ПК?
При включении функции GC процессор переходит в спящий режим чаще. Это может вызвать некоторые задержки в работе, потому что процессору потребуется время на включение и выключение из спящего режима. Однако, не всегда включение функции GC отрицательно влияет на производительность ПК.
Если вы работаете с приложениями, которые не требуют большой производительности процессора, включение GC может быть полезным и сохранит энергию на ПК. Однако, если вы используете высокопроизводительные приложения, такие как игры или редакторы видео, то лучше отключить GC, чтобы сохранить высокую производительность ПК.
Как включить или выключить GC на ПК?
Настройка GC зависит от производителя ПК и BIOS-версии. Чтобы изменить настройки GC, необходимо зайти в меню BIOS-настроек и найти раздел, связанный с энергопотреблением. Далее следует найти пункт «Global C State Control» и включить или выключить его в соответствии с нуждами пользователя.
В целом, GC может быть полезной функцией для сохранения энергии на ПК, но может снизить производительность в некоторых случаях. Лучше всего настроить GC в соответствии с нуждами пользователя и, если нужно, отключить эту функцию для повышения производительности ПК.
Global C State Control и совместимость с операционными системами
Что такое Global C State Control?
Global C State Control (Состояние сна процессора) — это технология, которая используется процессорами Intel для управления и повышения эффективности энергопотребления при работе совместно с операционной системой.
Какие операционные системы поддерживают Global C State Control?
Global C State Control поддерживается операционными системами Linux, Microsoft Windows и Apple MacOS. Однако, для полного использования и оптимизации эффективного энергопотребления требуется поддержка BIOS, микропрограммы и драйвера процессора.
Как включить или выключить Global C State Control?
Включение или выключение функции Global C State Control должно происходить в BIOS. Если Вы решили включить функцию, то убедитесь, что операционная система, которую вы используете, также поддерживает функцию Global C State Control. В противном случае, включение данной функции может привести к нежелательным последствиям, таким как падение системы, повреждение данных.
Проблемы с Global C State Control и варианты их решения
Проблемы, связанные с включением Global C State Control
Global C State Control — это функция, которая позволяет управлять энергопотреблением процессора во время бездействия. Однако, ее включение может вызвать проблемы в работе компьютера:
- Проблемы совместимости со старым оборудованием — некоторые устройства могут не поддерживать данную функцию, что может привести к различным проблемам с работой.
- Проблемы с совместимостью со старыми ОС — если у вас установлена старая операционная система, то Global C State Control может вызвать сбои в работе компьютера.
- Проблемы с производительностью — включение данной функции может снизить производительность системы, особенно в случае использования старых компьютеров.
Варианты решения проблем с Global C State Control
Если вы столкнулись с проблемами, связанными с включением Global C State Control, есть несколько вариантов решения:
- Отключение функции — простое и эффективное решение проблемы. Для отключения достаточно зайти в BIOS и найти соответствующий пункт настройки.
- Обновление драйверов — некоторые проблемы совместимости могут быть решены путем обновления драйверов для устройств и операционной системы. Это может помочь снизить сбои в работе компьютера.
- Апгрейд оборудования — если проблемы не удается решить другими способами, можно рассмотреть вариант апгрейда оборудования, а именно процессора и материнской платы, которые должны быть совместимы с Global C State Control.
Полезные советы при работе с Global C State Control
1. Проверьте возможность использования функции в BIOS
Перед установкой значений Global C State Control убедитесь, что ваш компьютер поддерживает данную функцию в BIOS. Откройте настройки BIOS и проверьте, есть ли в списке функция Global C State Control. Если возможности нет, то это может указывать на отсутствие соответствующей технологии на процессоре или низкий уровень обновления BIOS.
2. Определите свои потребности в энергосбережении
Если вы используете свой компьютер только для развлечений и игр, то функция Global C State Control может быть не слишком важна для вас. Однако, если вы используете компьютер для работы и длительных перерывов, функция энергосбережения поможет экономить батарею ноутбука и продлить время работы.
3. Изменяйте параметры Global C State Control тщательно
При установке параметров функции Global C State Control необходимо быть осторожным и изменять значения постепенно. Слишком высокие значения могут вызвать нестабильность системы и привести к сбоям. Рекомендуется тщательно проверять устойчивость системы после каждой установки.
4. Регулярно проверяйте температуру компьютера
При работе компьютера в режиме энергосбережения процессор пребывает в режиме ожидания, что может привести к увеличению температуры компонентов компьютера. Регулярно проверяйте работу вентиляторов и температуру компьютера, установите программу для отслеживания температуры процессора.
5. Внимательно изучайте инструкции по настройке функции
Для корректной работы Global C State Control необходимо тщательно изучить инструкции по настройке функции, которые предоставляются с вашим компьютером. Неправильная установка значений может привести к сбоям и ошибкам, поэтому следуйте инструкциям по настройке и устанавливайте параметры только после тщательной проверки.
Вопрос-ответ
Что такое Global C State Control и зачем его нужно включать или выключать?
Global C State Control — это функция процессора, позволяющая управлять энергопотреблением системы. При включении GC-состояний можно добиться меньшего потребления энергии во время простоя системы. Однако, включение этой функции может негативно сказаться на производительности системы в моменты высокой нагрузки. Поэтому, включать или выключать GC-состояния следует в зависимости от обстоятельств, чтобы достичь наилучших результатов как по производительности, так и по энергосбережению.
Как включить Global C State Control?
Включение GC-состояний зависит от процессора. В некоторых моделях это может быть включено в BIOS, в других — через утилиты управления энергопотреблением ОС. Для более подробной информации следует обратиться к документации к процессору или манипулятору BIOS компьютера.
Может ли включение Global C State Control сократить рабочий ресурс компьютера?
Включение GC-состояний не повлияет на рабочий ресурс компьютера напрямую. Однако, частое включение/выключение GC-состояний может вызвать износ процессора и сократить его срок службы. Поэтому, следует ограничивать частоту изменения состояний.
Какие системы поддерживают функцию Global C State Control?
Функция Global C State Control поддерживается большинством систем, оснащенных процессорами семейства Intel начиная с версии 4-го поколения и от AMD начиная с уровня K10.
Могут ли GC-состояния повредить компьютер?
GC-состояния не могут непосредственно повредить компьютер или данные на жестком диске. Однако, использование неподдерживаемых функций в BIOS или настройки GC-состояний в ОС, несовместимых с процессором, могут привести к сбоям системы, потере данных и другим проблемам.
Каким образом Global C State Control влияет на работу приложений?
GC-состояния направлены на уменьшение энергопотребления системы в моменты простоя. Поэтому, включение GC-состояний может снизить производительность приложений, работающих в моменты высокой нагрузки. Однако, вкл/выкл GC-состояний можно осуществлять в автоматическом режиме в зависимости от состояния системы и требований приложений.
Краткое руководство по управлению питанием процессора

Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.
Центральный процессор (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)
Вот два способа снизить энергопотребление процессора:
- отключить некоторые подсистемы;
- снизить напряжение/частоту.
- C-состояний;
- P-состояний.
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: «Состояния C0..C7 для расширения MWAIT — это специфичные для процессора C-состояния, а не ACPI C-состояния». Поэтому не путайте эти состояния с ACPI C-состояниями, они явно связаны и между ними есть соответствие, но это не одно и то же.
Я создал гистограмму, представленную ниже, из исходного кода драйвера 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 ядро входит при загрузке, когда происходит прерывание, или после записи по адресу памяти, который отслеживается инструкцией MWAIT.
- Состояния C1/C1E достижимы с помощью инструкций HLT и MWAIT.
- Войти в состояние С3 можно с помощью инструкции MWAIT. Затем кэши L1 и L2 сбрасываются в кэш верхнего уровня (LLC), и все тактовые генераторы процессора останавливаются. Тем не менее, ядро сохраняет свое состояние, так как не обесточено.
- Вход в состояние С6 возможен через инструкцию MWAIT. Ядро сохраняет состояние на выделенную SRAM и напряжение на ядре снижается до нуля. В этом состоянии ядро обесточено. При выходе из C6 состояние ядра восстанавливается из SRAM.
- Для C7 и C8 аналогично C6.
Как отмечалось ранее, переходы между глубокими С-состояниями имеют высокие задержки и высокие энергетические затраты. Таким образом, такие переходы должны выполняться с осторожностью, особенно на устройствах, работающих от аккумуляторов.
Возможно ли отключить С-состояния (всегда использовать С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.