Athlon II X2: Hardware C1E and Return of the CnQ Bug

I noticed something strange in my initial testing of the Athlon II X2, take a look at these SYSMark results:

Processor SYSMark 2007 Overall
AMD Phenom II X2 550 BE (3.10GHz) 167
AMD Athlon II X2 250 (3.00GHz) 134
AMD Athlon X2 7850 (2.80GHz) 145

 

The Athlon II X2 250 is slower than the Athlon X2 7850 and significantly slower than the Phenom II X2 550. Remembering the Cool’n’Quiet bug from the original Phenom processor I decided to turn CnQ off in the BIOS to see if the scores would go up:

Processor SYSMark 2007 Overall - CnQ On SYSMark 2007 Overall - CnQ Off
AMD Athlon II X2 250 (3.00GHz) 134 148

 

Indeed they did. 

I contacted AMD and was informed that there’s more than meets the eye with the Athlon II X2.  Although the architecture is fundamentally a couple of Phenom II cores with larger L2 caches and no L3, there’s one more change to the die: microcode support for the C1E power state.

When the OS executes a halt instruction on a CPU (during a period of no activity for example) the clock signal is shut off to the CPU for a period of time.  This saves power as no transistors are actively switching during this time.  Voltage supplied to the processor is left unchanged however.  This power state is known as C1.

In the late Pentium 4 era Intel introduced an Enhanced Halt State, called C1E.  Instead of just shutting off the clock to the CPU, when a CPU was in C1E its clock speed and voltage would both be reduced to their lowest possible value.  The reduction in voltage results in a reduction in leakage current, which in turn saves power.

Apparently prior to the Athlon II X2, AMD enabled support for C1E outside of the processor.  Although I tried, I couldn’t get access to anyone at AMD to explain things any further so what I offer is my best guess.  I’m guessing that whenever a halt instruction was executed by the OS, AMD used some combination of its existing C1 support and Cool’n’Quiet to both stop the clock to the CPU and reduce voltage. 

Regardless of how AMD enabled it, motherboard makers were constantly botching it up in their BIOS which would result in different motherboards having very different power consumption levels especially at idle.  It appears that some vendors were properly enabling this software-hack C1E state while others weren’t.

AMD always expressed frustration to me that the motherboard vendors kept screwing things up and I’m guessing they got tired of dealing with it.  The new Athlon II X2 has microcode level support for the C1E state; when the OS executes a halt instruction, the CPU now knows to both shut off its clock and drop its voltage.  No BIOS trickery necessary.

The problem with this, as you can guess, is that not all current motherboards have proper BIOS support for it.  Yep.

But that’s only half of the problem.  Simply not supporting the new hardware C1E in the Athlon II X2 won’t cause the issue I saw above, that has to do with Cool’n’Quiet, not C1E.  So what’s going on?

Late last week AMD finally got back to me with an answer.  The feature that caused the CnQ bug in the original Phenom processor was the processor’s ability to run each core at a different clock speed.  A nasty combination of Windows’ scheduler and the Phenom’s power management could result in cores, under load, running at 50% of their frequency.  AMD fixed the problem by removing the feature; in the Phenom II all cores attempt to run at the same frequency. 

When AMD put out its master BIOS code for all 7xx series reference motherboards, the Athlon II did not exist.  The fix that was applied to the Phenom II would not be applied to any other Phenom II based derivatives, they would simply get treated as original Phenom processors with varying clock speeds between cores.

And that’s what’s going on.  The Athlon II isn’t told to run both of its cores at the same frequency and thus you can have situations where performance is much lower than it should be.

AMD is aware of the issue and are currently working with motherboard vendors to properly enable BIOS support for the Athlon II.  Until then, the best way to run and use the Athlon II is with CnQ disabled.  Unlike the original Phenom, this bug should get fixed in the near future.

Index Intel’s Response: The Pentium E6300
POST A COMMENT

55 Comments

View All Comments

  • 7Enigma - Thursday, June 04, 2009 - link

    Hello Anand,

    In the article you seem to imply a tremendous difference in that 2meg to 3meg jump but your single data point doesn't show that conclusion.

    In your example there is a ~9% increase in performance when going from 2 to 3 megs, but there is also a 4.5% increase in clockspeed between the 2 chips. So at best (in this example) you have a 5% difference, which while significant, I would't say it was tremendous.

    Can you comment on whether you did any further tests with identical frequencies?
    Reply
  • FlameDeer - Thursday, June 04, 2009 - link

    Here are some corrections of AnandTech Bench.

    Refer to here:
    http://www.anandtech.com/bench/default.aspx?b=25&a...">Adobe Photoshop CS4 results of few CPUs from AnandTech Bench

    1. AMD Athlon II X2 250 results missing a dot, becoming slower than Intel Atom 230.

    2. Better using "Intel Pentium Dual Core E5300" for E5300 as the name Intel printed on the CPU.

    3. AMD Athlon LE-1620 notes (platform side notes) should be same as AMD Athlon LE-1640.

    Thanks for adding more CPUs for comparison in AnandTech Bench, doing the full test in latest software is really time consuming especially for old CPUs. Take care.
    Reply
  • MadAd - Wednesday, June 03, 2009 - link

    would have liked to see phenom (non II) compared, especially the low end x3s, users may be thinking of upgrading from those about now Reply
  • FlameDeer - Thursday, June 04, 2009 - link

    You can always conveniently & interactively comparing them here.
    http://www.anandtech.com/bench/">AnandTech Bench
    Reply
  • Elementalism - Wednesday, June 03, 2009 - link

    I never had much luck running Cool n Quiet when I used to run AMD processors. Even in games the CPU was put into a low clock mode running at half speed. Sounds like a buggy implementation to this day.

    And I cant say in my experience it was the Mother Boards fault either. I enabled Cool and Quiet in the bios and nothing happened. It wasnt until I installed the Cool n Quiet driver all hell broke loose.
    Reply
  • mino - Wednesday, June 03, 2009 - link

    However one has to keep in mind the bug comes from Redmond.
    The Win 5.x scheduler is a piece of garbage and it allways was. It is just that it shows with different symptoms:
    1 CPU core => crappy multi-tasking on heavy loads
    2+ CPU cores => unable to get a grasp that power management not a thing of the future ...

    A no, being from 2000 is no excuse, proper OS scheduler were there 30yrs ago.
    Had MS decided to do so, their Win 5.x schedules would be a proper one from the start.

    As for AMD, it is a price one pays for being ahead of the market.

    Remember, it took Intel 5yrs (2003-2008) to get comparable power management capabilities as AMD with Nehalem.
    Reply
  • mino - Wednesday, June 03, 2009 - link

    sorry for the spelling mess.. Reply
  • Hrel - Wednesday, June 03, 2009 - link

    YAY 3D max, also that E7500 is beating the crap out of everything but AMD's top of the line. That really solitifies in my mind that picking the E8400 6 months ago for my friends gaming computer was the right choice. Stupid AMD, I REALLY want them to be competitive again so Intel is FORCED to stop overcharging for EVERYTHING. Reply
  • mmpalmeira - Wednesday, June 03, 2009 - link

    Did you try to overclock the uncore of the AMD's CPUs? Reply
  • calyth - Tuesday, June 02, 2009 - link

    Just like that article that you linked to with the name CnQ bug, I don't believe that a hardware manufacturer creates a bug if the OS scheduler can't seem to do the sensible thing and not bounce threads around. Although various factors in the AMD chips make the problem worse, bouncing threads across different cores on an Intel chip also has a bit of impact, since L1 and the L2 shouldn't be shared across cores on the i7 platform.

    So please, stop calling it a bug. The bug lies in Windows, not the chips.
    Reply

Log in

Don't have an account? Sign up now