C6/C7 Power States with Intel Haswell CPUs

jrichrds

Platinum Member
Oct 9, 1999
2,537
3
81
I often see C6 and C7 mentioned together as C6/C7. I only see C6 option in my Gigabyte and MSI B85 and H81 motherboard BIOSes though. How do I get C7 supported? Does it need a Z chipset motherboard?
 

Jovec

Senior member
Feb 24, 2008
579
2
81
C6=C7 at the core level. Package level C6 is the lowest power state with a PCIe GPU. Package C7 requires the IGP or switchable graphics. CPU will determine PC6 or PC7 automatically. Package C-states are also resolution dependent when on IGP - very large resolutions and multi-mon displays may be limited to C3 or C2.

C6/C7 may not be more power efficient because of the extra overhead to enter and leave those C states.
 
Last edited:

jrichrds

Platinum Member
Oct 9, 1999
2,537
3
81
C6=C7 at the core level. Package level C6 is the lowest power state with a PCIe GPU. Package C7 requires the IGP or switchable graphics. CPU will determine PC6 or PC7 automatically. Package C-states are also resolution dependent when on IGP - very large resolutions and multi-mon displays may be limited to C3 or C2.

C6/C7 may not be more power efficient because of the extra overhead to enter and leave those C states.

Thanks! And what is the difference between package level C-state and core level C-state? I see with ThrottleStop or RealTemp monitoring programs that only core-level C-state is active (on C6 when idling), but package level remains blank unless I set the package c-state setting in the BIOS.

With IGP connected to a small monitor (1280x1024) via DVI, it seems my G3258 only goes to core-level C6. Unless C7 doesn't kick in until I put the computer to sleep?
 

Jovec

Senior member
Feb 24, 2008
579
2
81
what is the difference between package level C-state and core level C-state?

Core C states are per-core based and different cores can be in different C states. The package C state is determined by all cores. If 3 cores are in C3 and 1 core in C0, then the package C state must be C0 also.

With IGP connected to a small monitor (1280x1024) via DVI, it seems my G3258 only goes to core-level C6.

At the core level C6 and C7 do the same thing. At the package C6 level, different things can happen depending on if at least one core is requesting C6, or if all are requesting C7. Discrete GPU systems can only go down to C6. IGP systems can do C7 under certain circumstances. Not every SKU supports C7, but for those that do, the CPU will automatically make the appropriate package C6/C7 determination. The BIOS may allow C6/C7 to be disabled, but I don't think it can force C7 over C6 since the CPU will determine that. C7 isn't more power efficient in more cases anyway.

Unless C7 doesn't kick in until I put the computer to sleep?

S3 powers the CPU off. C0 through C6/C7 require a S0/G0 system state (a "full on" system).

There is a latency and power cost associated with each C state transition. C1E puts the core into the lowest frequency and voltage state. C3 flushes the L1 and L2 caches, which must then be directly or indirectly (through misses) reloaded from L3 and main memory, which is slower and may require more power overall then simply entering C1E instead. C6 will remove core voltage but the core state is first written to dedicated SRAM. If all cores are requesting C7, then package C6 can potentially flush L3 and power it down.

HT SKUs will have thread C states as well as core C states. There are also GPU D states, system S and G states, DMI and PCIe link L states, and IMC states.
 

unclewebb

Member
May 28, 2012
57
11
71
Just for comparison, here is a picture of an overclocked 4700MQ mobile CPU. The individual cores are spending 99% of their time in C7 while the entire CPU package is spending just under 80% of the time in the C6 package C state.

Some of the newer low power mobile CPUs also support deeper C States like C8, C9 and C10.

uk94xba.png
 
Last edited:

jrichrds

Platinum Member
Oct 9, 1999
2,537
3
81
Core C states are per-core based and different cores can be in different C states. The package C state is determined by all cores. If 3 cores are in C3 and 1 core in C0, then the package C state must be C0 also.
Just for comparison, here is a picture of an overclocked 4700MQ mobile CPU. The individual cores are spending 99% of their time in C7 while the entire CPU package is spending just under 80% of the time in the C6 package C state.
Thanks guys. The concept makes sense, but can't wrap my head around what both of our screenshots are showing (I included a picture of ThrottleStop below). So if my Core C-state is at C6 for 98%+ of the time, how come my package c-state is always in C0 (shows 0% for C2 thru C7)? Does that mean it's keeping 1 core always at C0 and only dropping the other core to C6?

There is a latency and power cost associated with each C state transition. C1E puts the core into the lowest frequency and voltage state. C3 flushes the L1 and L2 caches, which must then be directly or indirectly (through misses) reloaded from L3 and main memory, which is slower and may require more power overall then simply entering C1E instead. C6 will remove core voltage but the core state is first written to dedicated SRAM. If all cores are requesting C7, then package C6 can potentially flush L3 and power it down.
Do you recommend leaving them all enabled, or would it be better to just enable C6 and leave C1E and C3 disabled? I disabled C1E and EIST as when overclocking, core voltage is fixed on my Gigabyte motherboard so only the frequency drops and not voltage (according to CPU-Z and RealTemp at least). And I did not see any benefit in just dropping the frequency as I figure there's some latency in dynamically changing the frequency.

WYikqAL.png
 
Last edited:

TheRyuu

Diamond Member
Dec 3, 2005
5,479
14
81
Do you recommend leaving them all enabled

Yes, I would just keep them all enabled (all C-states and EIST) even if you're overclocking. It's good for your CPU, it's good for your power bill and lowers idle temps. I seriously doubt there's a measurable difference between leaving them on or off so why not reap the benefits.
 

jrichrds

Platinum Member
Oct 9, 1999
2,537
3
81
Yes, I would just keep them all enabled (all C-states and EIST) even if you're overclocking. It's good for your CPU, it's good for your power bill and lowers idle temps. I seriously doubt there's a measurable difference between leaving them on or off so why not reap the benefits.

Apparently, it increases latency and affects SSD performance. So you'd want to make sure you're getting actual power-saving benefits before enabling each one.
 

rgallant

Golden Member
Apr 14, 2007
1,361
11
81
Apparently, it increases latency and affects SSD performance. So you'd want to make sure you're getting actual power-saving benefits before enabling each one.
what I did on my ib was to use only EIST
I maxed out the power options in win 7
lets my 3770k idling @ 3.5 but ramps to 4.6
I did it that way to kept the speed and voltage swing as small as possible.
 

Techhog

Platinum Member
Sep 11, 2013
2,834
2
26
Apparently, it increases latency and affects SSD performance. So you'd want to make sure you're getting actual power-saving benefits before enabling each one.

I'm pretty sure this isn't an issue with Haswell.
 

Dufus

Senior member
Sep 20, 2010
675
119
101
So if my Core C-state is at C6 for 98%+ of the time, how come my package c-state is always in C0 (shows 0% for C2 thru C7)?
Core state and package states are different. You can have all cores at C6 while having no power savings for the rest of the package. For instance if at a C7 package level then L3 cache is flushed. This will generally cause a performance hit when waking up.

And I did not see any benefit in just dropping the frequency as I figure there's some latency in dynamically changing the frequency.
Not so much in changing the frequency but in changing the voltage. Before a frequency can be set higher, the CPU has to wait for the VRM to ramp up the voltage. Whilst this has improved greatly over the generations, using fixed voltage should alleviate this.


I'm pretty sure this isn't an issue with Haswell.
It's still there and why Intel introduced Dynamic Storage Acceleration (DSA) which basically dynamically adjusts C-state levels depending on disk load.
 

Techhog

Platinum Member
Sep 11, 2013
2,834
2
26
Then I guess the question is, is there an actual noticeable difference, or is it more enthusiast nitpicking?
 

Dufus

Senior member
Sep 20, 2010
675
119
101
IMO not a great difference and most would probably not notice except perhaps in benchmarks.
 

unclewebb

Member
May 28, 2012
57
11
71
Apparently, it increases latency and affects SSD performance.

I would like to see some testing of this with a 4th Gen CPU and a Samsung EVO or Pro SSD drive. When testing, make sure that you are using the Windows High Performance profile. I think some of the latency issues that were previously measured were because of the sluggish Windows Balanced profile. Intel's latest CPUs are faster than ever at getting back up to full speed when idle in the deeper C States like C6/C7 so latency and SSD performance might not be a significant issue anymore.

Typical SSD benchmarks put very little load on the CPU so benchmark results might not be a good indication of real world results. When running an actual app, there is likely going to be more load on the CPU while the SSD is being accessed so the CPU should be running at full speed and there will be a lot less latency, if any.

Manufacturers can choose what C States their products will use. Your individual cores are spending over 98% of the time in C6 but for whatever reason, a manufacturer might decide to disable some or all of the deeper package C States. Software on your computer can also interfere with the package C States. Google Chrome used to have a feature / bug that blocked some of the deeper package C States. I think that is why Internet Explorer tended to win the power consumption tests. I have not seen any recent testing of the latest versions of Chrome and IE.
 

jrichrds

Platinum Member
Oct 9, 1999
2,537
3
81
Core state and package states are different. You can have all cores at C6 while having no power savings for the rest of the package. For instance if at a C7 package level then L3 cache is flushed. This will generally cause a performance hit when waking up.
Manufacturers can choose what C States their products will use. Your individual cores are spending over 98% of the time in C6 but for whatever reason, a manufacturer might decide to disable some or all of the deeper package C States. Software on your computer can also interfere with the package C States. Google Chrome used to have a feature / bug that blocked some of the deeper package C States. I think that is why Internet Explorer tended to win the power consumption tests. I have not seen any recent testing of the latest versions of Chrome and IE.
Any idea whether it's core C6/C7 states or package C6/C7 states that provide most of the power savings?

I'm idling at 30w power draw from the wall right now (G3258), with just an old SSD connected. I thought it would be lower, so I guess that's due the package C-state staying at C0.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
Any idea whether it's core C6/C7 states or package C6/C7 states that provide most of the power savings?

I'm idling at 30w power draw from the wall right now (G3258), with just an old SSD connected. I thought it would be lower, so I guess that's due the package C-state staying at C0.

The PSU is most of the loss. Package C state is not gonna save you much.
 

Dufus

Senior member
Sep 20, 2010
675
119
101
From http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/z97-chipset-brief.pdf (Z97 board)

Intel said:
Dynamic Storage Accelerator unleashes the performance of your SSDs. It maximizes storage I/O performance by dynamically adjusting system power management policies to deliver up to a 15 percent¹⁴ performance boost compared to default power management.

Intel said:
¹⁴Dynamic Storage Accelerator performance is dependent upon several factors including workload, storage configuration, operating system, and CPU C-state transition efficiency. Intel analysis has found that Dynamic Storage Accelerator performance mode, 2 SSD RAID 0 provides up to a 15 percent performance gain as compared to default power management. Test configuration: 3 GHz processor, 2 x 2 GB
@ 1333 MHz RST 12.0.0.1075OS HDD: Western Digital Black WD2002FAEX 2 TB; Intel® SSD 320 Series; OS Tested: RAID 0, Two Disk; Windows* 7 SP1 build 7601;Benchmark software: PCMark* Vantage
1.0.2 patch 1901

I like performance but I do run windows "balanced" power plan with changes only to screen saver. While processor performance is set to 5% min and 100% max the processor still runs at maximum turbo due to Haswell's HW settings. 172 GFlops using Linpack for a laptop 4700MQ CPU isn't too shabby although I wish the heat wasn't such an issue, and the RAID0 SSD's work well too.
 

TheRyuu

Diamond Member
Dec 3, 2005
5,479
14
81
IMO not a great difference and most would probably not notice except perhaps in benchmarks.

Pretty much this. Unless you're only running synthetic benchmarks you're likely not going to be able to even measure the difference with all the power saving stuff enabled.

I think some of the latency issues that were previously measured were because of the sluggish Windows Balanced profile.

How so?
 

Techhog

Platinum Member
Sep 11, 2013
2,834
2
26
IMO not a great difference and most would probably not notice except perhaps in benchmarks.

Pretty much this. Unless you're only running synthetic benchmarks you're likely not going to be able to even measure the difference with all the power saving stuff enabled.



How so?

Then I don't really see a good reason to ever recommend that someone disables them. The type of person who would want them disabled wouldn't need to ask.