Power Management States: What is a S-state and a P-state?
Figuring out what P-states and “Sx” states are and how they can affect your computer can be a confusing endeavor. In its most basic form, a P-state is a performance state. There are also global states (“Gx” states). One of these global states is for computer sleeping, which is split up between four “Sx” states or S-states (S1 through S4). To find out more about these states and what they do, follow along below.
A Look At Performance States
Not all processor manufacturers refer to a performance state as a P-state. Intel actually calls it SpeedStep (though this trademark expired in 2012), but AMD might call them PowerNow! or Cool’n’Quiet in their processors. SpeedStep (and other brands’ similar implementations) is, in essence a way to dynamically scale the processor’s P-states through software .
These states can go from (P0, the highest performance state, all the way up to P16, depending on the manufacturer). P0 is the maximum power and frequency state, meaning P1 is a little less intensive than P0. That would make P2 less intensive than P1, and so on.
Here’s how IBM explains it:
“Higher P-state numbers represent slower processor speeds. Power consumption is lower at higher P-states. For example, a P3 state is higher than a P1 state. A processor in P3 state will run more slowly and use less power than a processor running at P1 state. To operate at any P-state, the processor must be in the C0 operational state where the processor is working and not idling.”
You might not see a noticeable change after switching your P-state, except in programs and applications that are very HPC (high performance computing) dependent.
It’s important to recognize the differences between a P-state and a C-state. A P-state is a performance state while a C-state is an actual processor state. You could also say that a C-state is a idle state while the P-state is a state where the processor is actually operating, except for, of course, the C0 state. Here’s what the different C-states do:
- C0: This state is where the processor is actually running and taking instructions.
- C1: This state is often referred to as a Halt state, largely because the processor stops executing instructions. But, it can still return to its executing state (C0) almost instantaneously.
- C2: Referred commonly to as the Stop-Clock state, this is an optional state where all internal and external clocks are stopped through hardware. In this state, it might take longer for the processor to wake up and return to C0.
- C3: This is another optional processor state where the CPU will stop all internal clocks. Many processors will have different variations of the C3-state, so the time it’ll take for the processor to return to the C0-state highly depends on the manufacturer of the hardware.
It’s important to note that there can be more than just four C-states. While what’s listed are the most basic C-states, manufacturers can add up to a total of ten C-states.
All about Sleep States
You might be familiar with many of the S-states, particularly if you use a Windows machine. On many Windows machines, you’re given the option to send your computer into Sleep/Standby and Hibernation. PCMech’s very own Christian De Looper did a great job explaining the difference between these two states, but there’s a lot happening under the hood, too.
Here’s the different types of Sleep States your processor can go into:
- S0: Similar to how performance states are ranked, S0 is the most demanding state, while S1, S2 and so on, are slightly less intensive. In the S0 state, the processor is ready for instruction and the system is fully usable.
- S1: S1 takes up less power than S0, as the system is sent into a low wake latency state. In this state, the CPU stops executing instructions, but power is still maintained to the CPU and RAM, allowing you to return to your last system state.
- S2: Another low wake latency state, S2 is very similar to S1, but all CPU and system cache is flushed/lost, as the processor is shut down (i.e. loses power).
- S3, commonly referred to as Sleep: This state is where all system context is lost, except for RAM. RAM maintains power, and will generally allow you to quickly return to what you were doing before the system was put in Sleep.
- S4, referred to as Hibernation: The final sleep state is when your system goes into hibernation. This is when it’s in its lowest power setting, which also means it takes a long time to wake. Power is cut off from everything, including peripherals and any external hard drives. While it does take a much longer time to return to what you were doing, this state makes it so that you are losing no power whatsoever.
Changing Performance States, C-States and Sleep States
Changing Sleep States is pretty easy. It will require a system shutdown or reboot, as you need to get into the BIOS settings. Once restarting, you’ll need to press the appropriate key to enter your BIOS settings. Once you’re in the BIOS, you’ll be able to edit your Sleep States under Power Management (this could be named something different, depending on the motherboard manufacturer).
In most newer processors and new versions of Windows, a P-state cannot be manually controlled. There were/are tools that did and can manipulate, but it’s not recommended (in some cases, you can actually fry components). Many BIOS options no longer supports direct control for that reason. However, BIOS options will let you enable the software that controls P-states dynamically, but you have to make sure your system meets all of the requirements. It’s also worth making sure your operating system supports it, too.
If you want to enable software such as Enhanced Intel SpeedStep Technology, it’s as simple as heading into your BIOS and enabling it. Once you’ve done that, you’ll have to head into your control panel’s Power Options and make sure it’s turned on there as well. Intel has a pretty extensive guide on this.
Changing C-states is sometimes possible. It all depends on the motherboard manufacturer. Some will let you change C-states in the BIOS while others will not. If you can change it under the BIOS, it’ll be under something like Power Management Options or Advanced Power Management Options. It might not call it a C-state directly, but something like an Idle Power State. If you’re on Linux, Stack Overflow has some great information on changing C-States through the kernel.
And that wraps up our quick overview of what performance and sleep states are! There’s a ton of deeply technical information on the two states, especially if you want to dive into the Advanced Configuration and Power Interface (ACPI) Specification.
Got any questions? Be sure to leave a comment below or join us over in the PCMech Forums!