The Athlon II X2 & Phenom II X2: 45nm Dual-Core from AMDby Anand Lal Shimpi on June 2, 2009 12:00 AM EST
- Posted in
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.