Undervolting/Underclocking an Athlon XP for energy savings

Over the last few years I’ve set up a few MythTV systems and in general these systems tend to stay switched on 24/7 all year long. This comes to be a problem when you consider the cost of electricity these days. The obvious solution is to make the MythTV backend server use less energy.

Speculatively, I’ve been looking at an old AMD Athlon 2500 XP Barton which I’ve had knocking around here for who knows how long. The system was well specced as a desktop in it’s day with an Abit NF-7 (non SATA) motherboard, 1 gigabyte of OCZ PC3200 RAM, a DVD/RW, a Seagate Barracuda and a GeForce 6800 AGP with 128MB RAM.

The power supply was a high-end (at the time) Antec True-control 550.

Abit NF7 motherboard

Abit NF7 motherboard

Just briefly going off my own topic: The NF7 had/has a minor ‘overheating’ problem. In the middle of the CPU socket, there is a temperature sensor. If it does not make physical contact with the underside of the CPU die, the BIOS thinks the CPU is overheating and shuts the machine down. The simple remedy is to carefully bend the sensor upwards until it stands just fractionally proud of the socket, thus ensuring good thermal contact when the processor is installed.

Also present due to past presentation were a Pinnacle TV encoder card and a PCI Firewire card.

To kick off the experiment, the BIOS settings were set to their defaults which saw the system drawing about 138 watts idle and 150 watts under load (not taxing the video card). I used burnK7 from the package ‘cpuburn‘ to apply a load to the processor. Cpuburn is also available for Windows. I metered the current drawn using my handy digital plug-in meter (Kill-a-watt style device)

Initial BIOS config giving 138 Watts idle / 150 Watts load

  • External Clock       166Mhz
  • CPU multiplier       x11
  • FSB                             333Mhz
  • CPU Core volts      1.65v
  • RAM volts               2.6v
  • Chipset volts          1.6v

Not one to mess around, I quickly worked out the lowest speed I could run the CPU at on the principal that lower clock speeds would draw less power and also allow me to run lower voltages. My Barton core was a non-mobile post week-40 chip so it was hard-locked at 11x multiplier. Therefore I had just the FSB to play with. Happily, reducing the FSB to just 100Mhz gave a CPU speed of 1100Mhz.

I then hunted around for the lowest stable voltages for each of the CPU core, Northbridge and RAM power options.

As it happens, the RAM is specced for 2.6v and the BIOS did not offer any options for going lower than this so the RAM voltage was duly ignored. Next up, the Northbridge power allowed settings down to 1.4v and that is where it went. The CPU took a little more figuring out and thus far, it has been stable at 1.15 volts. A significant drop from the stock 1.65 volts.

This configuration gave an impressive power consumption reduction; about 80W at idle and 90-95W under full load (excluding graphics load)

BIOS config giving 80 Watts idle / 95 Watts load

  • External Clock       100Mhz
  • CPU multiplier       x11
  • FSB                             200Mhz
  • CPU Core volts      1.15v
  • RAM volts               2.6v
  • Chipset volts          1.4v

Still, there was quite a bit plugged into the system itself so I went hunting for more power savings. I couldn’t ignore the fact that there was a hulking great Nvidia Geforce 6800 in the AGP slot, presumably taking up lots of power. There was also an old encoder card and the firewire card in there.

I managed to root out an old PCI ATI Rage Pro card with a stonking 8Mb of video ram so out came the Geforce and in went the card from the ark. The encoder card, firewire card and DVD/RW drive came out too and the system was rebooted. In it’s new, leaner configuration, I was pulling about 20 Watts less, 64 Watts at idle and 75 Watts under full load.

Ati Rage Pro - Note the memory module taking it from 4Mb version to 8Mb!

Ati Rage Pro - Note the memory module taking it from 4Mb version to 8Mb!

By this point, I was already using lm_sensors to monitor the system temperatures and voltages. I was pleased to see that, when idling, the CPU temperature was a trivial 28’C and even under full-load this was only rising to 33’C 🙂 A note here: The cpu was fitted with a huge slab of copper and aluminium pretending to be a heatsink with a noisy (at 3000RPM) or ear-splitting (at 5000RPM) fan.

A quick tip: To see the output of the ‘sensors’ tool in real-time, use the ‘watch’ command ie: watch sensors

Being a bit of an adventurer, I decided to disconnect the case fan and the cpu fan and boot the system to see if it fried.

Inside the box showing the cooling arrangements (or lack thereof)

Inside the box showing the cooling arrangements (or lack thereof) Note the big copper slab and attached prongs over the CPU socket 😉

Happily, it didn’t fry. In fact, the idle temperature only rose to 38’C with passive cooling. There was still a bit of airflow afforded by the power-supply fan. However, running cpuburn for 20 minutes or so saw the temperature rise to over 65’C which I considered was pushing it a bit. I think that the CPU would be fine with one of those slim/low noise 80mm fans attached in place of the high-speed monster which it currently wears.

Checking the power meter, I now had just 58 watts idle / 70 watts under load. Interesting that the fan wanted so much current but like I say, it’s hardly an ordinary fan.

I also made a quick experiment in putting the hard drive into ‘suspend’ mode using hdparm -y /dev/hda1 this produced a further 4 Watt drop in current draw 🙂

Bits removed to save energy, DVD/RW, GeForce 6800, Firewire and TV cards

Bits removed to save energy, DVD/RW, GeForce 6800, Firewire and TV cards

Of course, it wouldn’t be much use as a MythTV backend server without any encoder cards so there would be three going into the PCI slots. I’ve previously tested some Hauppauge WinTV Nova-T cards and they seem to draw about 9 Watts each in almost all conditions. With three cards in and a smaller CPU fan installed, I’d expect a further 28 Watts of power draw bringing me up to about 86 Watts idle and ~96 Watts load.

Although the only DVB encoders I have to hand are Nova-Ts, I’d like to see what the current draw is on one of the Nova-T 500 twin encoders and if any savings can be made by employing one of those instead of two of the single encoder versions.

All in all, I’m quite happy with the energy saving. It actually draws less power than my old laptop although I do conceed that the laptop has an integrated display to power.

Fujitsu Esprimo Green – Zero Watt PC?

According to an article at geek.com, Fujitsu reckon they are going to demo a PC at CeBIT 2009 which will idle/sleep at zero watts ie: no current draw whatsoever.

The article speculates that this system will still be able to interact with LAN/PAN devices while ‘asleep’. This definitely runs into ‘believe it when I see it’ territory for me. It’s not that I don’t want Fujitsu to have accomplished this; computers definitely need to draw much less power when idle, but it’s a hell of a technical mountain to climb.

The whole notion of a NIC being able to respond without power only when polled intentionally just seems ever so slightly far fetched.

If you’re going to CeBIT on 3-8 March 2009, you’ll probably be treated to a demo of just how this works. Still I hope they demonstrate the device as coupled up to a proper metering device. I wouldn’t want to think that this is all just marketing and spin 😉

How much power does a NAS use?

The other day, I took a walk into town and purchased one of these plug-in power meters. A relatively simple affair which you plug into the socket and then plug your device into. It has a digital display which, amongst other things, can display the instant Watts drawn by the connected device. This is exactly what I needed as I’ve been eager to find out how much power various devices around the home and office draw (and hence how much they cost to run 😉 )

The meter seems fairly accurate on the Watts front. I tested it with some normal filament bulbs and the reading was just a few Watts higher than their ratings as is to be expected.

I then went on to test a NAS (Network Attached Storage) device which I had recently thrown together using an old Via Epia 800 Mini-ITX motherboard, a 80GB Maxtor* hard drive, a CD-ROM drive, a USB key and a Mini-ITX specific case with a 90W ATX PSU.

The software I used was FreeNAS 0.686.4. I used this version rather than the ‘bleeding-edge’ beta as I wanted to have the Wake-on-LAN functionality which now apparently missing on the latest version. FreeNAS boots from the CDROM and stores it’s configuration settings on the USB key. The whole lot runs headless and is configured by a lovely web interface.

FreeNAS

Now; back to the power meter 🙂

I plugged the NAS into the meter and started it up. During boot, the system was drawing 50-55Watts and settled back to about 39 Watts on completion of the boot. This would tally with a reduced load on the CPU and the CDROM having spun down. When copying files at full-speed – the network interface is 100Base-T, the power consumption reaches the high 40s.

When idling, FreeNAS tries to conserve power. Unfortunately, the Epia 800 doesn’t seem to have any frequency stepping features and presumably maintains it’s normal 800Mhz clock speed. The hard drive does spin down and this brings current draw down to about 28 Watts – not too bad considering this is one of the older Mini-ITX boards.

Power meter - Sorry for the manky looking plug!

Power meter - Sorry for the manky looking plug!

Shockingly, however, when switched off the system is still drawing between 3 and 5 Watts. I haven’t been able to ascertain what causes the fluctation (signalling on the NIC perhaps or a dodgey PSU?) but it’s less than ideal to have it draw so much power when it is not in use.

I think I’ll spend some time looking at other hardware options for FreeNAS, possibly booting entirely from the USB key and eliminating the 5.25in CDROM would help. Other than that, I’d probably be looking at newer Epia boards to increase the energy saving.

*Yeah, I know, I wouldn’t normally use a Maxtor either but this one was donated. 😛