Intel ACPI Guide - C/G/S/P states and OCs
There are quite a array of power modification settings (
) in the BIOS and in Windows that will change how a CPU operates concerning stability, multiplier throttling, power consumption, sleep states and processor voltage/multipliers. Let me know if I forgot anything and I will add it to the list. If possible I will update this later on with more details for each setting.
THE BASICS
VARIOUS TERMINOLOGY
Other guides
About how to troubleshoot power plans in Windows 7
ACPI APIC Function
Advanced Configuration & Power Interface (ACPI)
C-states, C-states and even more C-states
C-states and P-states are very different
CPU Idle States
Powercfg Command-Line Options
PPM in Windows 7 and Windows Server 2008 R2
What exactly is a P-state? (Pt. 1)
What is difference between deep and deeper sleep states? (mobile procs only)
What's the difference between sleep, hibernate, and hybrid sleep?
Global power management scheme models
Sleep States
Useful Data
Quote:
Quote:
DL LINK
Code:
This useful tool can be used to verify if the OS sees C-State Enabled/Disabled or if you are using C-State in conjunction with Speed Step you can use the second command.
Verify C-State Disabled in OS >> C0
Code:
To verify PPM states (example) - it should be noted that in most of the documentation from Intel the "Performance States" are basically just steps the processor takes to reduce its power consumption and overall temperature. These states are apparently configured in the Windows Power Options control panel under "max" and "min" CPU performance percentage (%). As mentioned below, it is apparently a option to alter the OS registry settings and create custom non-linear profiles. The States begin at 0/100% and then go down to a higher number and lower percentage. These are the "P-States" and are part of Speed Step technology, PPM and your BIOS configuration. If you want to use these you need to think about how you're going to set up all the configuration points (Auto voltage, Speed Step on, Multiplier Auto, etc.).
Code:
Even if you have C-States off in BIOS you can still verify your S-States by using (below). I believe some motherboards allow you to specify whether or not these settings are available to Windows. ASUS motherboards have the settings "Power > Suspend Mode S1/S3; Power > ACPI 2.0 On/Off; Power > EuP Ready S5; APM > Power On By PCI Devices S5." The dump from my system (shown below) shows S1 & S3-5 available even though my power options are all set to leave the machine on and not go into sleep. Meaning, the OS handles the configuration of sleep and the BIOS tells the OS what S-levels are available.
Code:
There are registry listings in the document "Processor Power Management in Windows 7 and Windows Server 2008 R2" that explain how to adjust manually the Processor Power Policy Settings (pages 27 to 39) in the registry. This may be useful for extreme modders.
LINK
It should be noted that the P-States according to this intel page will both change the input voltage and input multiplier (hence frequency) of your processor. If you are OC'ing this may be a bad thing and you would want to disable SpeedStep in the BIOS and do the ppm.sys driver tweak disable in Windows. Intel also calls P-States "processor power state levels."
Can I OC while using P-States aka Speed Step?
Why yes you can. It's very simple. Establish your OC. Set your multiplier, voltages and other BIOS settings. Stability check your OC and work out any bugs. Then, finally go into your BIOS and enable Speed Step. Then you can enter your OS and set your performance levels in Power Options. Notice in the following two images that the minimum processor state (%) directly changes the lowest multiplier in use as well as altering the final processor clock as well as the power consumption (lower watts/amps in use). You will need to stability test your machine to see how well it transitions from your low % to your high %. That's on you. Some people have complained that it's not possible to lower the processor voltage as well as the cpu multiplier to have the added benefit of lower temperatures. Well, in order to get your OC working you probably manually entered a BIOS voltage for your processor and that overrides your OS P-State. Some people have had offset usage success, but you'll need to experiment with that as it seems to be working or not working on a case-by-case basis.
4GHz OC'd machine operating P-State 5% minimum performance

4GHz OC'd machine operating P-State 75% minimum performance

You will also need to enable your intelppm.sys registry key for "start = 1" and reboot. This driver can cause BSOD issues and is normally disabled on my machine. Registry levels: start= . Obviously since P-States only work in the OS system/1 is best.
Speed Step ramping up under load (below) - as you can see it will ramp up to your highest multiplier under load. My score on this run was 6.72 and normally on full power with Speed Step off it is 6.86. So, with the power saving (but not really temperature saving) P-States there is a slight reduction in performance by about 2.041%. I also notice that the WDK pwrtest.exe module would not report accurate values when OC'd with Speed Step enabled. This is probably a limitation of the software. It only reported the highest frequency state as the OEM listed rating. Example, enable switch /info_:_ppmperf (without _) highest speed listed for my i7 950 is "100%/3068 MHz."

This above mini-section /\ was written with P-States on and C-States off. C-states are additional power saving controls that can be configured in your BIOS. Experiment and get Speed Step running first and then experiment with your C-State settings. All the C-State details are explained above. Different BIOS manufactures implement this setting differently and you can play with them on your own time.
During testing I discovered that there is a instability introduced into a system when the ramp up to full multiplier is large compared to the minimum processor % set in power options. A 5% change in processor delta will change your cpu multiplier 1 unit (at least on my board). So say your minimum processor percentage is 0 percent and that equates to a multiplier of 1; increasing to 5 percent results in a minimum CPU multiplier of 2, and so on. During testing a 124 bsod hit my system when the min ppm in power options was set to 50% (12x multiplier). The error happened in internet explorer unfortunately as a HAL (hardware abstraction layer) problem. After increasing the minimum processor % in power options (ppm p-state) to 65% (15x multi.) there haven't been any issues since, even during stability benching. So basically don't set the minimum processor state too low and if you have issues try increasing it by 5% at a time (if you want) to increase the minimum CPU multiplier by 1x. It is possible to Speed Step your OC you just have to dial it in.
C-States and Amperage Savings - ymmv. My bios also has a C6 setting, but since that isn't mentioned in the official Intel, et al industry specification I only allowed C3 as a minimum. C-States also have the unfortunate side effect of jacking with Razer mice really bad. If you are a gamer make sure all of your C-State stuff is OFF. CPU Spread Spectrum is also a bad choice when using gaming mice. Turn that off too. If you have a moderate overclock you may be able to use C-States but otherwise turn them off if you are a high speed OCer. I have noticed they cause instability with high OCs and Windows crashing errors (not BSODs but "not responding" problems). As you can see there is over a 50% savings in terms of current draw, although the max with C-States on went up to 19.31 compared to 15.69. C-States really aren't that big of a deal; if they work on your system and you like them go ahead. If they cause interference then just turn them off. Speed Step is a much more reliable power saving mechanism at least in my testing. If you are this interested in these power saving C-States then download the official ACPI specification and read pages 309-312 where you can clearly see there are additional "internal speed steps" available. They are posted here for your review.
| 

Hybrid Sleep Mode explained
In Windows the hybrid sleep setting is located in the Power Options control panel. It's either On or Off. Notice how various drivers if not programmed correctly will not awaken from this sleep mode. Entering hybrid sleep is possible by letting a idle timer expire or entering sleep from the start menu. If hybrid sleep is off the OS will default to whatever S-level is configured in the BIOS. Btw, if your BIOS is set to disable S3 or in other words set to only run S1 max (in sleep state) the power options control panel will not display Hybrid Sleep as a option (as expected) -- fyi.
More on sleep states
Quote:
Most people are probably already familiar with Turbo Boost technology, but here you go anyway. I assume that if you wanted to use Turbo Boost you would also need to make sure your BIOS is configured for auto voltage control. Meaning, if you specify a particular manual voltage and turbo boost attempts to increase your multiplier at P0 -- you may crash. Similar to Speed Step, I think this requires both a voltage and multiplier change. Obviously if you OC you would want both turbo boost and speed step off. At least disable Turbo Boost if you are using Speed Step aka P-States with your OC. It's more of a consumer-level technology that will give a slight bump for a mild, temporary OC.
Quote:
Intel Turbo Boost Technology Monitor Overview - Intel's tool to monitor Turbo Boost
Intel Core i7 desktop processor Intel Turbo Boost Technology frequency table
Intel Processor Frequency ID Utility
Thanks for reading. If there's anything else it will be included in future updates.
Signature Sticky
There are quite a array of power modification settings (

THE BASICS
- P-States are responsible for lowering the CPU multiplier and CPU voltage when there is no work load. These are configured in the BIOS as PPM or Speed Step. They are passed onto the OS and configured in Power Options control panel (in Windows).
- S-States are sleep states. These are set in the BIOS and then configured in the power options control panel (timeout in minutes). There are various sleep technologies such as S1 sleep, S3 sleep, Hybrid sleep and Hibernation (which is a laptop sleep technology).
- G-States are global operating states and are not configurable by the user. These are just used in documentation to specify certain system states such as on, off, sleeping.
- C-States are advanced CPU current lowering technologies. These are configured in the BIOS and are automatically used by the OS.
VARIOUS TERMINOLOGY
- ACPI (Advanced Configuration & Power Interface) - ACPI is basically a umbrella under which most modern power reduction technologies exist.
- C-STATE
- C1E (Enhanced C1 state)
- Hybrid Sleep
- Intelppm.sys registry key
- Processor Power Management kernel driver (handling EIST & Hibernation?)
- SpeedStep (also known as Performance State or "PPM P-States")
- Turbo Boost (becomes active at P-State 0 or P0)
- Windows Power Options Control Panel
Other guides
About how to troubleshoot power plans in Windows 7
ACPI APIC Function
Advanced Configuration & Power Interface (ACPI)
C-states, C-states and even more C-states
C-states and P-states are very different
CPU Idle States
Powercfg Command-Line Options
PPM in Windows 7 and Windows Server 2008 R2
What exactly is a P-state? (Pt. 1)
What is difference between deep and deeper sleep states? (mobile procs only)
What's the difference between sleep, hibernate, and hybrid sleep?
Global power management scheme models


Sleep States

Useful Data

Quote:
Quote:

Quote:
Running Pwrtest to evaluate system PPM and P-States
DL LINK
Code:
Code:
usage: pwrtest /scenario [/scenario_options] [/common_options]
scenario indicates the test scenario Min OS Req
sleep for sleep/resume transition testing Vista
battery for battery information testing Vista
info for system capabilities information Vista
es for thread execution state changes Vista
idle for power idle statistics Vista
ppm for processor power management testing Vista
timer for system timer resolution statistics Vista
disk for disk idle statistics Vista SP1
device for device idle statistics Vista SP1
monitor for monitor dimming and blanking statistics Win7
requests for showing power requests Win7
thermal for ACPI thermal zone monitoring Win7
processidle for forcing idle/background tasks to be run Win7
common_options can be any of the following options
/session:name name indicates the ETW session name.
Default session name is PwrTest
/xmllogname:path path indicates the XML log file path.
For example, c:\slprsm.xml or \\server\share\slprsm.xml
Default XML log, PwrTestLog.xml, is created in the same
directory as pwrtest.exe
/l:path same as /xmllogname option
/wttlogname:path path indicates the WTT log file path.
For example, c:\pwrtest.wtl or \\server\share\pwrtest.wtl
Default WTT log, pwrtest.wtl, is created in the same
directory as pwrtest.exe
/etwbuffersize:n n indicates ETW buffer size in KB if larger than default.
Default is current page size or 256KB (whichever is
greater).
/etwminbuffers:n n indicates the minimum number of buffers allocated for
the ETW session if larger than the minimum of 2 per
logical processor.
Default is 2 per logical processor
/etwmaxbuffers:n n indicates the maximum number of buffers allocated for
the ETW session if larger than the minimum of 2 per
logical processor and larger than etwminbuffers.
Default is etwminbuffers + 20
For detailed scenario_options information, type pwrtest.exe /scenario /?. For
example, to display detailed information about the /sleep scenario, type:
pwrtest.exe /sleep /?
Verify C-State Disabled in OS >> C0
Code:
Code:
... pwrtest.exe /ppm
Info: the CPU doesn't support P-states.
Info: the CPU doesn't support C-states.
The CPU doesn't support P/C states.
Code:
Code:
C:\Program Files\Microsoft PwrTest>pwrtest /info:ppm
PROCESSOR_POWER_INFORMATION
CPU Number = 0
MaxMhz = 1833
CurrentMhz = 1833
MhzLimit = 1833
MaxIdleState = 3
CurrentIdleState = 3
InstanceName: ACPI\GenuineIntel_-_x86_Family_6_Model_14\_0_0
Processor Performance States
PerfStates:
Max Transition Latency: 10 us
Number of States: 11
State Speed (Mhz) Type
----- ------------ ----
0 1833 (100%) Performance
1 1333 ( 72%) Performance
2 1000 ( 54%) Performance
3 1000 ( 54%) Throttle
4 880 ( 48%) Throttle
5 750 ( 40%) Throttle
6 630 ( 34%) Throttle
7 500 ( 27%) Throttle
8 380 ( 20%) Throttle
9 250 ( 13%) Throttle
10 130 ( 7%) Throttle
Code:
Code:
... pwrtest.exe /info:all
SYSTEM_POWER_CAPABILITIES
SystemS1StateSupported = 1
SystemS2StateSupported = 0
SystemS3StateSupported = 1
SystemS4StateSupported = 1
SystemS5StateSupported = 1
RtcWakeSupported = S4
FastSystemS4 = 1
VideoDimPresent = 0
SYSTEM_POWER_INFORMATION
MaxIdlenessAllowed = 0
Idleness = 99
TimeRemaining = -1
CoolingMode = 0
SYSTEM_BATTERY_STATE
AcOnLine = 1
BatteryPresent = 0
Charging = 0
Discharging = 0
MaxCapacity = 0
RemainingCapacity = 0
RateOfDrain = 0
EstimatedTime = 0
DefaultAlert1 = 0
DefaultAlert2 = 0
Warn: Warning: There is no Battery in this machine!
File: _:\5359\base\power\tools\pwrtest\exe\sleep.cpp
Line: 4830

It should be noted that the P-States according to this intel page will both change the input voltage and input multiplier (hence frequency) of your processor. If you are OC'ing this may be a bad thing and you would want to disable SpeedStep in the BIOS and do the ppm.sys driver tweak disable in Windows. Intel also calls P-States "processor power state levels."
Can I OC while using P-States aka Speed Step?
Why yes you can. It's very simple. Establish your OC. Set your multiplier, voltages and other BIOS settings. Stability check your OC and work out any bugs. Then, finally go into your BIOS and enable Speed Step. Then you can enter your OS and set your performance levels in Power Options. Notice in the following two images that the minimum processor state (%) directly changes the lowest multiplier in use as well as altering the final processor clock as well as the power consumption (lower watts/amps in use). You will need to stability test your machine to see how well it transitions from your low % to your high %. That's on you. Some people have complained that it's not possible to lower the processor voltage as well as the cpu multiplier to have the added benefit of lower temperatures. Well, in order to get your OC working you probably manually entered a BIOS voltage for your processor and that overrides your OS P-State. Some people have had offset usage success, but you'll need to experiment with that as it seems to be working or not working on a case-by-case basis.
4GHz OC'd machine operating P-State 5% minimum performance

4GHz OC'd machine operating P-State 75% minimum performance

You will also need to enable your intelppm.sys registry key for "start = 1" and reboot. This driver can cause BSOD issues and is normally disabled on my machine. Registry levels: start= . Obviously since P-States only work in the OS system/1 is best.
Speed Step ramping up under load (below) - as you can see it will ramp up to your highest multiplier under load. My score on this run was 6.72 and normally on full power with Speed Step off it is 6.86. So, with the power saving (but not really temperature saving) P-States there is a slight reduction in performance by about 2.041%. I also notice that the WDK pwrtest.exe module would not report accurate values when OC'd with Speed Step enabled. This is probably a limitation of the software. It only reported the highest frequency state as the OEM listed rating. Example, enable switch /info_:_ppmperf (without _) highest speed listed for my i7 950 is "100%/3068 MHz."

This above mini-section /\ was written with P-States on and C-States off. C-states are additional power saving controls that can be configured in your BIOS. Experiment and get Speed Step running first and then experiment with your C-State settings. All the C-State details are explained above. Different BIOS manufactures implement this setting differently and you can play with them on your own time.
During testing I discovered that there is a instability introduced into a system when the ramp up to full multiplier is large compared to the minimum processor % set in power options. A 5% change in processor delta will change your cpu multiplier 1 unit (at least on my board). So say your minimum processor percentage is 0 percent and that equates to a multiplier of 1; increasing to 5 percent results in a minimum CPU multiplier of 2, and so on. During testing a 124 bsod hit my system when the min ppm in power options was set to 50% (12x multiplier). The error happened in internet explorer unfortunately as a HAL (hardware abstraction layer) problem. After increasing the minimum processor % in power options (ppm p-state) to 65% (15x multi.) there haven't been any issues since, even during stability benching. So basically don't set the minimum processor state too low and if you have issues try increasing it by 5% at a time (if you want) to increase the minimum CPU multiplier by 1x. It is possible to Speed Step your OC you just have to dial it in.
C-States and Amperage Savings - ymmv. My bios also has a C6 setting, but since that isn't mentioned in the official Intel, et al industry specification I only allowed C3 as a minimum. C-States also have the unfortunate side effect of jacking with Razer mice really bad. If you are a gamer make sure all of your C-State stuff is OFF. CPU Spread Spectrum is also a bad choice when using gaming mice. Turn that off too. If you have a moderate overclock you may be able to use C-States but otherwise turn them off if you are a high speed OCer. I have noticed they cause instability with high OCs and Windows crashing errors (not BSODs but "not responding" problems). As you can see there is over a 50% savings in terms of current draw, although the max with C-States on went up to 19.31 compared to 15.69. C-States really aren't that big of a deal; if they work on your system and you like them go ahead. If they cause interference then just turn them off. Speed Step is a much more reliable power saving mechanism at least in my testing. If you are this interested in these power saving C-States then download the official ACPI specification and read pages 309-312 where you can clearly see there are additional "internal speed steps" available. They are posted here for your review.




Hybrid Sleep Mode explained
In Windows the hybrid sleep setting is located in the Power Options control panel. It's either On or Off. Notice how various drivers if not programmed correctly will not awaken from this sleep mode. Entering hybrid sleep is possible by letting a idle timer expire or entering sleep from the start menu. If hybrid sleep is off the OS will default to whatever S-level is configured in the BIOS. Btw, if your BIOS is set to disable S3 or in other words set to only run S1 max (in sleep state) the power options control panel will not display Hybrid Sleep as a option (as expected) -- fyi.


More on sleep states
Quote:
Turbo Boost
Most people are probably already familiar with Turbo Boost technology, but here you go anyway. I assume that if you wanted to use Turbo Boost you would also need to make sure your BIOS is configured for auto voltage control. Meaning, if you specify a particular manual voltage and turbo boost attempts to increase your multiplier at P0 -- you may crash. Similar to Speed Step, I think this requires both a voltage and multiplier change. Obviously if you OC you would want both turbo boost and speed step off. At least disable Turbo Boost if you are using Speed Step aka P-States with your OC. It's more of a consumer-level technology that will give a slight bump for a mild, temporary OC.
Quote:
Other Pages of interest
Intel Turbo Boost Technology Monitor Overview - Intel's tool to monitor Turbo Boost
Intel Core i7 desktop processor Intel Turbo Boost Technology frequency table
Intel Processor Frequency ID Utility
Thanks for reading. If there's anything else it will be included in future updates.
Signature Sticky
PHP:
[URL="https://www.overclock.net/threads/1058894/"]Intel ACPI Guide - C/G/S/P states and OCs[/URL]