8.5W Core i3-based desktop computer (English)
So far for housekeeping. This blog will explain to you in quite intimate detail what I have done to achieve 8.5W AC power consumption in idle with an Intel Core i3-based (H55 chipset) desktop system without sacrificing performance - this is not the 9000th Atom or VIA based system, nor does it utilize laptop hardware (MoDT). I'll start from the beginning: why did I start this and what's so special? Then comes a whole slew of primarily hardware hacks: I of course did some undervolting,I reorganized a lot of power delivery on the motherboard, made quite a few dc-dc converters more efficient and removed all unnecessary components I could find. On the software side I chose Windows 7 as Linux doesn't quite support every power saving feature. In the meantime I stuck a multimeter in every nook and cranny of the computer to see where power is flowing, creating a very detailed picture of the power consumption of individual parts. In the end, I got laptop power consumption with desktop performance. But, let's start at the beginning.
In the beginning there was Dennis
This is not my first project involving low-power desktop systems with reasonable performance. I like to name my computers, for instance Dennis is a computer over my bed and Fikkie is my secondary work computer. My primary computer is an aging performance laptop, Fluffy. Over time I replace the old ones and they get an increment on their name. This is how Dennis2 was born: the old Dennis was unable to play HD video and made noise, which bothers me when I'm trying to sleep. Also, I couldn't really play any casual games on Dennis. So I replaced it with a fanless, mini-ITX system based on an Intel DG45FC desktop board and Intel Core 2 E5200 processor. This was paired with an Intel X25-V SSD, picoPSU and modified power adapter and fit into the smallest mini-ITX enclosure I could find second-hand. Oh yes, I don't buy new stuff. Just in case I screw up my soldering work.
Then, after everything worked correctly I hit two snags: one, it was absolutely silent and as a result I would occasionally turn off the power completely while the computer was running. Second, it was mounted on the backside of the monitor, so turning it on required me to do way too much work to turn it on. This led to the inclusion of a lithium ion UPS battery:
You gotta search for it, but it's in there somewhere!
and modifying the monitor OSD buttons to also turn on my computer. While I was busy modding the monitor, I included a multifunction card reader and USB ports.
input/auto is now the on-button for the computer. The other buttons still function as usual
The card reader in action
A few usb-ports for good measure
Now, this system idles around 20W which I thought was pretty neat for a full-fledged desktop system. That is, until my undervolting buddy Dadona brought this link on hardwareluxx.de to my attention. In case you don't read German: they achieved 12.5W AC power consumption with a higher-performance Intel Core i3-based desktop system. Much better than I did. Well, this is embarassing.
Putting together an energy efficient computer is not as easy as some manufacturers try to tell you. Buying an 80 plus gold certified PSU basically has nothing to do with energy efficiency in the realm of these ultra-low power computers. If you want to build something that idles at sub-25W figures, you're screwed. You have to know what to do yourself or crowdsource it in a specialized forum because very few review websites or other reputable sources can tell you useful things. Even sites like Silent PC Review and Anandtech - websites that I and many others hold in very high regard - have major difficulties in this region. There are many pitfalls, I'll name a few:
Measurement errors and botched tests: As total power consumption goes down, the difference that measurement errors and small variations in load, drivers and different OSes make get inflated. I found, for instance, that switching from the default Windows 7 Intel Graphics driver to the newest Intel-supplied one apparently enabled all kinds of power saving features and dropped power consumption by 2W. Switching out your power adapter for any other model can make a few watts difference. That's just two things that make a difference of 10%. In a world where Nvidia gets 50% more sales than ATi when they offer 7% more performance at a price point, that's huge. But measurement errors are also a big issue. At low AC powers, your run-of-the-mill wall plug energy meter gets inaccurate. Lots of sites use the power meters you cannot rely on, especially when dealing with bad power factors. Using true RMS calibrated meters, is key. And if you don't have such a device: use two, three, four different meters. Well, that doesn't guarantee that any of them are right, but it gives you a better ballpark figure.
Peeling apart power consumption: Small component changes can make a big difference. If you want to optimize power consumption, you need to know where the power is used so you can focus on the big spenders first - they're usually easiest to fix. Even more importantly, it is very important that reviewers know what everything is using. Lots of reviewers use a 'standard' test bench and switch out only the core components, keeping things like the video card, hard disk and other universal devices the same. The fact that those peripherals are physically the same does not mean at all that they behave the same electrically. Motherboards that support device initiated power management can power down SATA devices almost completely. For a DVD drive, this can mean up to 3W difference, hard drives can benefit as well. Mind you, it's not just hardware, it's software to: there is a big difference between Windows and Linux. For SSDs, this is a true party: my X25-V SSD uses 0.6W whenever DIPM is unsupported, but just 75mW when supported. That's a factor ridiculous difference. These things add up and can easily explain 4-5W difference between boards or OSes.
Sometimes it is very hard to pinpoint what device is using power. A Core i3 CPU for instance gets its power from three distinct power converters: one for the CPU itself, one for the graphics and one for the integrated memory controller. Some of that power is transmitted through the P4/ATX12V connector, and some of it through the 24-pin ATX connector. Which is which differs between motherboards. Reviewers who just measure the ATX12V current and don't investigate whether that is really everything the CPU is responsible for can be way off in either load or idle condition. How is the uninformed reader supposed to identify this? You'll see that I have gone through great lengths to find out exactly how much every chip on the motherboard consumes.
A current sense resistor on a small daughterboard to gauge the power use of the PCH
Having a similar reference: There is really no way of knowing what you're doing is right if you don't have some reference. Is 20W power consumption good or bad? Some of the more reputable sites burn themselves on this: they usually test 500+ W PSUs, systems with beefy video cards and gaming-oriented gear to match. Then, to please the Greenpeace-activists who read their articles they throw in one or two diagrams on something energy efficient. They conclude that in fact it is very power efficient. It uses way less than everything else they ever tested. Yeah, you never tested anything similar. In order to know whether you're on the right track, you need to have a similar benchmark.
Alright, all this text serves to basically say: there's really no way to accurately know how low you can go with certain hardware or conversely what hardware you need to end up with an energy efficient configuration - judging from any reputable source. You need niche knowledge and original research. Everything you do needs to be scrutinized and documented because the only way to be certain, is to be scientific about it. I can't go asking about on forums like I would be for SSD performance: 'hey guys, my ssd is only doing 40MB/s random writes, am I doing something wrong?'. So, I cobbled together:
This would be the Intel Core i3-530. This is a highly integrated processor - it's got graphics and the memory controller integrated, leaving the only other platform chip necessary, the 'platform controller hub' or PCH, a very small and low-power device. As the only newest-generation (ahum, at the time) dual-core chip on 32nm, it's got some nice voltage-frequency scaling as well. This processor should, according to a few reputable and less reputable sources, consume about 3-5W DC in idle and roughly 45W under load.
Now, a power-sipping processor is one, but you need the rest of the platform to be efficient as well. The Atom processor for instance idles at around 0.5W by itself, but is usually paired with the absolutely gruesome NM10 chipset that uses a bajillion watts and annihilates the Atom power advantage. That's where the i3 and 55 series chipset shines: according to the datasheet, as long as the intel management engine isn't used it should not exceed 2W idle. And that's all there is to the platform. Theoretically we shouldn't break 7W with just the processor and chipset.
With RAM power down mode a standard in the DDR3 specification, modern DDR3 RAM uses much less than 1W in idle per bank. In order to reduce power consumption of both the memory controller and memory itself, I planned on using just one stick of RAM and foregoing a dual channel configuration. This part shouldn't be a bother on the way to low power consumption, so anything will do here. It so happened I could score some OCZ Gold low voltage (1.65V, wtf, that's not low voltage?) for cheaps, so I got that.
An SSD is a big asset in getting the absolute lowest power consumption. To me, the Intel line of SSDs is just perfect, 40GB suits my needs (it's only used as an OS/application disk; my documents and other important stuff are on a NAS device) and the suckers are specified to use only 75mW in idle, which is just stellar. Little other manufacturers even give idle power ratings, they just specify a ballpark figure. Combined with the price and availability on the second hand market, the Intel X25-V was the SSD of my choice.
AC-DC power conversion
There's no avoiding this: it has got to be a PicoPSU and 12V power adapter. Now, I've had some experience earlier with the PicoPSU and concluded that it was a good concept, but pretty poorly executed. The yellow picopsu (i.e., the one that runs off 12V, as opposed to the red and blue ones that can run from a wider voltage range) is very much built down to a price with poor soldering quality, poor assembly and apart from the nice ferrite chokes, pretty el cheapo parts. I figured I'd try something new and bought a Morex DC Power kit, second hand of course. It's bigger and needs a big clump of wires running from it to the ATX power plug, but that would be worth it: I needed to insert some measurement taps anyway, this would make it easier on me.
As for the power adapter: the 80W unit that comes with the DC power kit is kinda nice, but made by a no-name brand (Shu Ruey IIRC). As you will see later on, I pulled a disused EDAC power adapter from my bin and 'adapted' it to my tastes. Like the whole computer, it's a Frankenstein creation, but totally worth it.
Now why is an ATX power supply no good? Even when it's 80 Plus certified? Well, 80 Plus characterizes power supplies only from 20% load on. That is done for a reason, because power converters don't run quite as efficiently under low load. In general, they have a dramatic drop in efficiency below 20% and even very modern architectures like the Seasonic X-400FL have a precipitous drop in efficiency below 10% load. My computer as a whole barely uses 10% of that 400W rating under full load! Idle, it uses just 2%. It's totally insane to use a 400W PSU for an 8W system, and this is one of the prime reasons it's hard to get a computer to run off less than 20W AC power. This is amended by getting a power supply that simply has a lower rating. Even if it's not 80 plus efficient, it will still run at a much better performance point (like 20% or higher) and achieve higher absolute efficiency. The 80 plus certified ATX PSU might be very efficient - but this is only from 20% load onwards. That is why a power adapter and PicoPSU are the only way to go if you want to go low. (And that was a very musical sentence)
Still 80% efficient at 7W output power - try that with an X-400FL!
As you'll be able to read further on I kinda short-circuited the Realtek RTL8111DL network interface chip on the motherboard and subsequently desoldered it. I wasn't quite happy with it anyway: I know from experience that Realtek NICs in general have stability issues on mixed networks. Also, there is no way I can get any sort of advanced features working in the future; PXE booting, throttling, QoS, it's all very much limited on Realtek chips. I may seem like an overly Intel-favoring person, but on functional merits alone I chose the Intel PRO/1000GT as a replacement NIC. Yep, an Intel processor on an Intel platform with an Intel NIC and an Intel SSD. Sorry, AMD. Better luck next time. Make sure you kick ass with Llano, Zacate and Bulldozer!
No hardware is safe from my soldering iron!
Software and BIOS
Now, before I can get to the good parts, we need to talk software. We'll start with the BIOS options and continue on with OS-level stuff.
One thing you must know about the Intel Core i-something series is that OS-level - even BIOS-level - voltage control is extremely limited. In the past with Core 2 and earlier chips it was possible to do a VID/FID table: at some frequency X the voltage should be Y. Now, that is not possible anymore. The processor now uses more variables than just frequency to adapt its voltage. This has basically caused frequency-voltage control by the user to become nigh impossible. Yes, there are motherboards that allow you to 'dynamically' adjust the voltage by +0.something volts, even this board does that, but that is not way enough. Why? Well, first of all, the CPU side of things is just part of it. There's the IGP and IMC that also require their separate supplies and who should scale with frequency - and there's usually no control over either of these at all. Then there's the fact that adding or subtracting a static amount of voltage from whatever is requested by the processor doesn't cut it; it doesn't allow for absolute power optimization. You can optimize for load power, but idle will be non-optimal. Optimizing for idle would make the load condition unstable. Undervolting the processor this way is out of the question. Yeah, you read this right: the processor runs at standard voltage. Ehhh... well, almost.
There's one mod that I've been able to pull off, and that's a VID4 mod. You see, the processor VRM requests a certain voltage via a parallel 8-bit interface called VRD11.1, with the bits called VID0-7, VID7 being the MSB. Forcing VID4 to be high, in this case, causes the processor voltage to drop by 0.05V at all times except for full load. This saved about 0.3W DC in idle, about 2W on average load and well, nothing under load.
On this motherboard, fortunately, it is possible to undervolt Vtt (the power supply for the memory controller), Vdimm (supply for the RAM) and the PCH 1.05V line, which is the major power supply for the chipset. Also, I took the liberty of underclocking the QPI and RAM frequencies to 3200/800MHz. I know from experience that memory bandwidth is very noncritical for basically all desktop tasks, and I do not intend to do HPC on this computer.
There's more I changed in the BIOS but this is really everything that had a significant impact on power consumption, as expected.
On the OS side of things it's pretty simple: I used Windows 7, installed all the most recent driver updates and set power management to power saving. Now you might ask: why Windows 7, why not Linux? I was initially surprised to find that Linux - the hacker's OS - is dramatically behind when it comes to power savings. It turns out that on the kernel level, power saving features vital to my success are simply unsupported. Device initiated power management is unsupported, RAM power down modes are unsupported, the PCH drivers have limited power savings features implemented. In the end, this makes a difference of about 33% on idle power usage, both on my unmodded and a modded system. Now, there's one big plus to using Linux, and that is that it's very easy to actually get it to settle down and not use any resources for a while. Windows has things like Superfetch and Windows Search that keep bothering the computer which - even when you have an SSD installed - don't even make that much of a difference in the user experience. Even when turning these services off, there's always some activity. It's hard to get a minimum reading.
Now here comes the juicy part. You must have figured this out by now: I glossed over the software part, then went on and on about hardware. I'm really a hardware person, I study power electronics, so there's my expertise. Power electronics is all about power conversion. There's two main ways to do power conversion in a computer: either with a switching power supply or with a linear power supply (usually LDOs) - our trusted 7805 as a prime example. In computers, basically all conversions occur in step down mode: the output voltage is lower than the input voltage. Now, switching power supplies are the good guys: even at high conversion ratios (ratio of input to output voltage) they are very efficient. Linear supplies on the other hand are inherently inefficient: they convert all the excess voltage into heat, so when 1A at 1V is pulled from the output, 1A at for instance 5V is pulled on the input and 4V@1A is converted into heat - that's 4W of heat for 1W of useful power. No good. My mission, thus, was to eliminate every last LDO from the motherboard. And there's a ton of those, so let's get to it.
Before I can start, I need to find out exactly how the power trickles down on this motherboard. So, starting from the power outlet (for those of you visiting from abroad: here in the Netherlands we have 50Hz/230VAC), through the PicoPSU, through power converters on the motherboard down to the chips. I did a lot of measuring and reverse engineering to come to this schematic:
And then came the process of elimination. What do I really need, and how can I reroute power to make the most of the switching converters (indicated as 'dc/dc' in the schematic)? It turns out it goes something like this:
You'll see that first of all, the main voltages don't really make sense. 11.4V? 4.4V? 2.96V? That's not right! Well, it is. All the propaganda you've heard about voltages needing to be absolutely pin-point accurate: it's not true. If you do thorough and exhaustive stability testing, undervolting entire voltage lines can be very rewarding for your power consumption. Electronics that run directly off these voltage lines get more efficient as V2, dc/dc converters and LDOs also get an efficiency boost (although not as pronounced). Then you see lots of red crosses. That's engineering language for 'I broke those'. I either desoldered chips or I cut power lines and rerouted the power from somewhere else. For instance, the PCH 1.05V supply runs at 0.86V now, while Vtt runs at 0.95V. That's close enough, so why not tie them together instead of using an inefficient linear supply that pulls power from a higher voltage line? And you can see that I desoldered the 74HC series COM port buffers. Some people at Hack A Day commented that this shouldn't make that much of a difference - well, there's two of them and together they used about 250mW - that's 0.4W from the wall including conversion losses. Not much on a 100W computer, but one of many steps for me toward 8.5W. I've done more to achieve less savings.
There's more modding after this. I dropped various voltage lines some more, removed the Vref LDO (replaced it with the PCH 1.05V line) and did some tweaking with components here and there. I've since come to realize a few details in the above schematic aren't completely right, but I couldn't be bothered to fix them. Meticulous modding and measuring on one side, true laziness on the other. That's engineers for you.
And I do want to elaborate a bit on the measurement side of things. I mentioned it earlier: measurement errors are a big thing in this business. First, there's AC power measurements. If you want to measure AC, especially when dealing with low power and bad power factors, you need to use True RMS equipment. If you don't, your measurements won't be just a few percent off, they will be tens of percents off and changes in measurements will make no sense at all. When I was still using and testing a non-trms wall plug-type energy meter, I regularly found PSUs to suddenly change efficiency as I ramped up the output power, or the power factor would be way off from what it's supposed to be. Add the horrible power quality in my home and you have the perfect situation for botched measurements. The equipment I use for AC power measurements are a consumer grade power meter, with an industrial grade clamp-type ac power analyzer as a reference. Whereas the meters are both not top-notch in terms of accuracy, or age for that matter, I did compare them to a Fluke reference power analyzer and they seem to agree quite well. Well enough that I can have some confidence in the measurements.
For the DC side of things, I use either current shunts that I have inserted permanently into the computer's power lines or probe attachments for my Fluke multimeters. For milliamps and microamps and high-resolution measurements I use a Fluke 183, while my Fluke 111 and 75 multimeters do the rest. I use them interchangeably so as to eliminate any variation (though all meters except the 75 have recently been calibrated) between my equipment.
A new PicoPSU
The PicoPSU-derivative I used so far was a Morex DC-DC converter. It's nice and all, but as a hacker I don't like the fact that they ground the component markings from the main chip on the board (dual pwm controller). Also, even after I modded the heck out of the thing it still used about 0.6W sitting idle. This is not unique; the 'original' PicoPSU does this as well and AFAIK only the M3-ATX dc-dc converter does anything to remedy this fault. I didn't have that handy, so what to do? Well, build my own PicoPSU!
There it is. It is based on two VMP3203 dc/dc converters from Dealextreme (in your face Farnell/Element 14!) and a few MOSFETs, resistors and capacitors. And guess what: it works like a charm! It's quite a bit more efficient than any other PicoPSU, mostly because it has a much lower output current rating which causes the converters to run at a better performance point, and it has negligible idle power consumption. Better still, I implemented a few measurement resistors so I could reliably measure input and output current. Before, I did this with multimeter probe attachments but they are a pain, because the computer needs to be turn off to insert the probes as you have to break the voltage line to do so.
Obviously, this is a prototype version. I plan on designing a better version very soon (before March) which has better safety, lots of measurement functions and a USB port that you can use to attach either to the computer in question or to another computer, which you can use to log the power consumption and voltage lines in real-time. Isn't that neat? I'm sure a lot of hackers would like that, even if they're not interested in power consumption exclusively.
Adapting the power adapter
Then there's AC-DC power conversion. I've gone through great lengths in my original blog series to explain exactly how this kind of SMPS works and on a related note what the power factor and power factor correction is. You'll just get a summary. Sorry about that.
In the beginning, there was the Morex 80W power adapter. It was nice and all, but of questionable quality and very conservative in design. What I wanted was something more efficient, especially at low load. That's why I chose an EDAC EA1135x 20V 120W adapter. Why-in-the-heck would I do such a thing? For one, it's 120W, way too much for my system. Second, it's 20V, and I need 12V. Well, it's not the exact parameters that interest me, it's the architecture inside the thing. It's what's called a quasi-resonant SMPS with synchronous MOSFETs. Also known as very kinky porn in Power Electronics circles. This kind of converter has great performance at low load, easily beating 80% efficiency at 10% load.
Of course, for it to work I first needed to get it to produce 12V. That's pretty simple: the output is regulated by a TL431 reference and a voltage divider, when changing the voltage division you can adjust the output voltage. I attached a pot and did some additional mods that I'm not going to tell (because they're dangerous) to finally get 10.9V out of it. I also removed all the unnecessary parts from the converter (like OCP, the power LED, bleeder resistors, a fan). Most importantly, I removed PFC. Now, power factor correction (PFC) is usually a good thing, except for very low power devices. In any other case power quality is increased at minimal cost, but that minimal cost is quite a high cost for a computer consuming just 8.5W. Removing PFC from this power adapter saved me about 1.5W, removing the other stuff saved another watt or so. Switching out the MOSFETs for better performing ones shaved a few watts off the load power use. All in all, this created a power adapter with an excellent efficiency:
Now did you really think I'd make a new picture here?
That's all the mods I did. I don't mean to tease you or be mean in any way, but this is really just a fraction of what I have to tell about all these subjects. There is a lot to power conversion, and the example of this desktop computer shows you that through diligent measurements and meticulous bookkeeping you can get to know a lot about the losses in your computer - and solve a huge chunk of them. This summary concludes about three months of work in my spare time. Still, what I've done isn't so much a cutting-edge feat, it's just addressing some of the gross inefficiencies in a modern computer and exposing the true power-sipping nature of modern components. After all, the core components never used more than 10W DC in idle anyway - before any mods. A modern computer loses most power as conversion losses in idle, and still a huge chunk under load. So, what have I achieved? Where does the power go in my computer?
6.7 out of 8.5W is used by components on the motherboard, of which 5.8W I can attribute to actual chips (plus the conversion losses for the CPU). Under load:
And for good measure, where does the power come from?
There you have it. This is typical: a modern computer uses most of its power from the 12V rails. It only sips a few watts usefully. There is really no need to go to laptop parts here; we can have desktop performance, desktop expandability, desktop price (and second hand availability), and still laptop power use. Happy hacking, everybody!
[Reactie gewijzigd op woensdag 09 februari 2011 17:04]
When I moved into my new house i could finally move my computers out of my bedroom. And it actually took some getting used to no longerr hearing those fans.and made noise, which bothers me when I'm trying to sleep.
When they were still in my room, a long time ago, all of a sudden i was woken by the sound of all fans winding down. Power in the town was gone and that simply woke me up. I did have a nice walk in the town tough, will never forget the sight of it being completly dark.
"I've gone through great lengths in my original blog series to explain exactly how this kind of SMPS works and on a related note what the power factor and power factor correction is. You'll just get a summary."
This is an awesome bit of work.
We hebben een O.
We hebben een W.
Awesome work pal, dikke thumbs up
Ik moet voor mijn led project nog 12(kabels)*4(aders)+2=50 draadjes aan elkaar maken zo`n printje lijkt me dan wel handig.
I could be wrong, but this is my initial analysis.
Maybe it does not influence the power usage, but I've been told it slightly lowers memory performance, see:
The technique is still the same, so it definitely applies to DDR3 and note the "slightly". If the frequency is less constant, your memory timings will be a little less precise and therefore you may have to increase its timings or raise its voltage by a bit. You might just be able to lower the memory voltage one step without it.
Anyway -theoretically- if performance increases slightly, slightly more time will be spent in idle state as well.
[Reactie gewijzigd op donderdag 10 februari 2011 14:22]
Although I do not understand every aspect of your mods (I'm not really talented with soldering and stuff) it was a pleasure to read this post not only because of the great results that were achieved but also the scientific way you obtained them!
... One has to be realistic and understand that your provided 'solution' serves rather as inspiration than for actual imitation since a lot of us won't have the required expertise to perform mods like you did.
Nevertheless, this impressively demonstrates the -widely unused- possibilities and potential of power savings in modern computers which are performant at the same time.
Moreover it's also a sign to the computer industry to develop and produce products that work more effective in low-power environments (power supply units in particular).
Well done & thank you. I am sure you inspired a lot of people to have a closer look at their computers power consumption and consequently tweak them in order to save energy & money.
I am not a hands-on person myself. I shall need some help. What measures would you suggest to convert such a PC into an ultra low consumption PC?
because the 0 to 1 and 1 to 0 volt-change take s a little longer, there is less lost of current.
Of course it's bad for performance, but it can also cause sometimes stability problems, because of timing problems. althougt verry rare.
Sorry for my bad englisch
Reageren is niet meer mogelijk