Selecting the best idle state
When a processor has no more work to do, it executes a halt instruction and enters
an idle state. While idle, the CPU uses less power. It exits the idle state when an event
such as a hardware interrupt occurs. Most CPUs have multiple idle states that use
varying amounts of power. Usually, there is a trade-off between the power usage and the latency, or the length of time, it takes to exit the state. In the ACPI specification, they are called C-states.
In the deeper C-states, more circuitry is turned off at the expense of losing some state, and so it takes longer to return to normal operation. For example, in some C-states the CPU caches may be powered off, and so when the CPU runs again, it may have to reload some information from the main memory. This is expensive, and so you only want to do this if there is a good chance that the CPU will remain in this state for some time. The number of states varies from one system to another. Each takes some time...