Saturday, January 15, 2011

The basic ideas about undervolting

Have you ever heard about undervolting? Sure you have, and likely either complete bullshit or just some dribble of people who only use the popular software and go for trial and error, without having the slightest idea what is really happening.

Basically undervolting is a fancy, pseudo-1337 term for just lowering the voltage for some component, usually CPU or GPU. It got cool after overvolting, which is just increasing that voltage, which often helps to achieve higher clock rates via overclocking. So if this is not making your e-penis longer, what's the point, especially with CPUs? What does it really do anyway?
Well, you might remember R=U/I, P=U*I and P=U^2/R. This says basically that half the voltage results in half the current and a quarter of the power consumption, hence a quarter of the heat that has to be disposed.

For normal PCs neither heat nor power consumption are too interesting. Unless you have a stock heatsink that's terribly weak and noisy, heat is not a real concern, as it is with power. A normal PC has a puny average load level and while the CPU is idle there's not really a noteworthy difference you could make. When it comes to servers and laptops, though, this stuff can make a huge difference.
I have a quite sexy virtualization architecture around the house that is powered by a severely overclocked AND undervolted quadcore and the power consumption under load drops by about 30W. So instead of roughly 95W the CPU only guzzles down 65W. If the load level of my server wouldn't be puny for most of the time, too, this would save some money.
If you want to build a very tiny and silent PC, having to dispose of the heat is usually a problem. 30W less is a huge difference here and actually you can run into a situation where undervolting makes a system stable. The reason for this is just insufficient cooling capacities for normal operation, though. With fans that adjust their speed to temperature, though, it can also make the difference between the system becoming noisy under load or not.
If you have a laptop, it can obviously affect battery life quite a bit. For manufacturers the heat that needs to be disposed is also a concern and the noise argument comes into play again, I did it for the battery life, though.

What voltage a specific CPU needs to work properly is different and varies for every single one. There's datasheets that tell you under what conditions your CPU is guaranteed to work properly and they involve a lot of conditions. The most important ones are temperature, voltage and clock speed. In case you don't know, I can tell you that chip fabrication ends with lots of dead CPUs that go from the wafer to the dust bin after the initial test, because they simply do not work. Over time with a new fabrication process their number decreases as the process gets optimized. Especially towards the end of the lifecycle there's a good chance there's more CPUs coming out that could be sold as high clocking or low voltage ones than there are customers for. So they simply try to fill the quota of expensive, rarely gotten chips and the rest gets labeled worse than they could technically perform. Another thing is that not every single CPU is tested for all the shit in the datasheet in exact detail. It's cheaper to analyze how the limitations are working together and add a bit of headroom for the ones that are fit to select chips by.
So you have a good chance that your off-the-shelve CPU can do more than it is labeled for. And also you can optimize the working conditions for it.

Problem with all this is that you have to test the results, know what knob to adjust and test for stability afterwards. Having a gut feeling for that helps immensely. And maintaining stability is a key issue, as an occasionally crashing system is just defective, no matter at what speed it runs. If you want to go to the extreme by adjusting things like the reference levels of the gunning transceiver logic on your motherboard, you can waste as much time as you want and usually 80% of the benefits come after 20% of the time you invest in tuning.

If you didn't get it from above, Intel is selling CPUs that meet certain power requirements quite a bit below of those of standard CPUs. For a way higher price of course. Usually no problem on desktops, laptops come with a certain range of voltages you can force by software that stop your undervolting urge quite soon, especially with the slower CPUs. And that's where real nerds are separated from kids. Or maybe just crazy idiots from sane people.

No comments:

Post a Comment