Tuesday, January 5, 2010

C-States

C1
  • -      Internal CPU Clock signal is stopped
  • -      BIU and APIC are still fed with internal Clock Generator to allow the CPU to temporarily exits the HLT state
  • -      Since CPU temporarily “leaves” the HALT state, this state is called as “Stop Clock Snoop State” or “HALT/Grant Snoop State” or “Snoop State”
Intel C1E
  • -      Exactly similar to C1; but reduces the internal CPU voltage as well
  • -      If this is enabled in BIOS, the CPU will enter this mode instead of “traditional” C1 state on executing HLT instruction
  • -      Also called as Extended Halt/Stop Grant Snoop State”
AMD C1E
  • -      Works just like C3 (shutting down all CPU clocks – both internal and external)
  • -      Processor enters C1E state when this option is enabled in BIOS AND all CPU cores enter the regular C1 (HLT) state.
  • -      The diff between C1E and C3 is basically how the CPU enters the Sleep state:
  • -      While on traditional C3 state, CPU must be put in that state usually by a command from the OS
  • -      Where as on C1E, the CPU enters the Sleep state automatically when all cores are at HLT (C1) state
C2
  • -      Intel - Introduced by adding one extra pin to CPU called “STPCLK” (Stop Clock)
  • -      AMD - C2 state is entered by simply reading a register from the ACPI, circuit that is physically located on the chipset;
  • -      When this pin is asserted, the CPU core clock is cut
  • -      As you can notice, both C1 and C2 cuts the CPU core clock; the diff is in how the CPU achieves this
  • -      C1 is activated by software (HLT instruction) while C2 is activated by hardware (by sending a signal to CPU pin “STPCLK)
  • -      Two modes
o    Stop Grant
§  As explained above; CPU core clock is stopped but the clock generator chip (also know as PLL) is still active and generating the external bus reference clock i.e., CPU external clock
o    Stop Clock
§  Here the Clock Generator itself is turned off and thus the external clock generator chip would be turned off, thus saving more energy
§  Current CPUs don’t have this Stop Clock mode inside C2 state but on the C3 Deep Sleep State


C2E
  • -      Similar to C2; but reduces the CPU voltage besides stopping the CPU internal clock
C3
  • -      Also known as “Sleep” state
  • -      Both BIU and APIC clocks will be cut off (which means it cant answer to important requests coming from CPU external bus or interruptions)
  • -      C3 implementation on Intel
o    Given an extra pin called SLP (or DPSLP depending on CPU model) which must be activated when the CPU is in C2 state in order to switch the CPU into C3 state
o    So first STPCLK pin must be activated and then one should activate the SLP pin
o    Achieving the Deep Sleep state is achieved by simply cutting the “external clock signal”


  • -      C3 implementation on AMD
o    Achieved by simply reading a register from ACPI, circuit that is physically located on the chipset (P_LVL3) in the Processor control Block (P_BLK)
  • -      Two modes
o    Sleep – as explained above
o    Deep Sleep (pin is DPSLP instead SLP) – achieved by simply cutting the “external clock signal”
o    AltVid – allows reduction on CPU voltage while they are in C3 mode


-      Note: AMD C1E and C3 (Sleep State; not the Deep Sleep state) are similar


C4
  • -      Also known as Deeper Sleep State
  • -      Since on C3, all clock signals inside the CPU are stopped, there is no other way to save power by playing with CPU clock signals. The next step on reducing the CPU idle power is to reduce the CPU voltage (Power = VI)
  • -      Intel – C4 is achieved from C3 i.e., CPU must first enter C3 and then, from there, it can reduce its internal voltage
C4E
  • -      C4 + CPU voltage is reduced even more after the L2 memory cache has been disabled (some calls this C5 which is not the real name of this mode)
C6
  • -      Also known as Deep Power Down
  • -      When CPU enters this state, it saves its entire architectural state inside a special static (intel) or DRAM (which is fed from an independent power source)
  • -      This allows the CPU internal voltage to be lowered to any value, *including 0V*
  • -      When the CPU is waked up, it loads the previous state of all internal units  from its special static RAM (waking up CPU from this state takes a lot longer)
  • Notice that there is only one voltage line for the entire CPU( the only component with a different voltage source is the above mentioned static or DRAM where the entire architectural state is stored) and lowering or turning off the CPU voltage is an all-or-nothing kind of deal; if you turn off the CPU, you have to turn off it entirely when it goes into C6 mode