This page describes methods for saving power on computers
using various CPUs when the machines are idle.
For this discussion a machine is idle when it is in
a normal operating state and nothing is running on the CPU. For instance,
on Windows XP it corresponds to the amount of time spent
in the "System Idle Process". When a computer is used for
word processing or similar data entry tasks, or displaying static
documents, it will spend the vast majority of its time idling. However,
if music is simultaneously playing in the background, or a USB device is active,
the same machine may spend almost no time idling.

Computer servers may also save considerable energy by appropriately configuring their display
options. Since typically the consoles of such systems are rarely used the display
and parts of the video
circuitry may be powered down without penalty. If the display is needed
pressing a key on the keyboard or shaking the mouse is sufficient to bring the
display back on line.

Most operating systems can also be set to drop the machine into a standby
state following a long period of inactivity, or on a notebook, when the system is folded
closed. Typically this is much more drastic than just slowing the CPU and
turning off the monitor. For instance, the disks are spun down and the system
effectively shuts itself off. These states are not further considered here because they represent
systems which can do no work. They are not merely idle (either at the CPU or the Display) but
for most purposes, they are simply "off".

Saving Power at the CPU

Manufacturers have designed certain features into their processors
that enable said processors to drop into lower power states when
signaled by the operating system that the machine is idle. The primary
mechanisms are:

By installing software to activate these capabilities the power dissipated
by the idling CPU may be substantially reduced. For instance, on one
Athlon XP 2000+ machine the CPU dissipated 39 fewer watts, which
resulted ina reduction of the CPU temperature from 59° C
to 47° C.

Additionally many CPUs may be throttled, which effectively forces
the processor to be inactive during some part of each second. Throttling is
typically used to control overheating on heavily used machines. However it
generally doesn't save more power when the machine is already idle, and it tends
to adversely affect computer performance to such an extent that the machine
feels "broken", so throttling will not be further discussed here.

AMD Processors

These CPUs can respond to an idle state by disconnecting from the
front side bus and dropping their CPU frequency. In order to do so two
PCR registers in the northbridge must generally be modified. In addition
the length of time for a Halt or StopGrant disconnect may be controlled by
a clock divisor set in the MSR. In experiments with Athlon XP 2000+ machines
this divisor could be set as high as 128 without causing problems, but going
to 256 caused various glitches in video and sound playback. The idle temperature
decreased by about 2° C for every doubling of this divisor. Your mileage
may vary.

Windows XP Instructions

1. Login as administrator
2. Obtain coolon 2.1.0 from http://coolon.o-ya.net/en/
3. Create a folder C:\Program Files\Coolon
4. Run the coolon installer and unpack the files into
C:\Program Files\Coolon
5. Double click C:\Program Files\Coolon\coolon.exe
6. Click on the PCR tab and check cooling
7. Click on the MSR tab, click Change
Change the Halt and StopGrant values to 128WARNING! Your system might require smaller values!
Click on eVal
Click on Write
8. Click on Shortcut
Select Startup Tab
Check MSR and Cooling
Click on Make
9. Click on Shortcut
Select Desktop Tab
Click Make for MSR, Cooling, Cooling On, and Cooling Off
10. Click on Driver tab
Check Startup Service
Click on Set
11. Close Coolon
12. Right click on:
C:\Documents and Settings\All users\Startup\Programs\Startup\Coolon
Select properties
Change the options on the startup string to: /M /C
(eliminate the /D, it will cause problems for unpriv'd users.)
13. For both the Coolon On and Coolon Off desktop icons.
Right Click on the icon.
Select Security tab.
Add or modify so that it has: Everyone: read & execute, read
(This lets an unpriv'd user turn cooling on or off.)
14. Change the file protections on the Coolon directory and its
contents to: Everyone: read & execute, read, list folder contents
15. Monitor the CPU temperature with the system at idle.
Note added 1/19/10. As of this date fully patched XP SP3 does not enable
power regulation of this processor by itself. So the steps above are still
required.

1. Use a recent 2.6.x kernel.
2. Boot with kernel option: acpi=strict
3. Login as root
4. Obtain and install the athcool package (as appropriate
for your distribution). If no package is available build
it from the tarball on the athcool home page.
5. See if athcool works: athcool stat
6. Start athcool: athcool on
7. If the CPU temperature falls (sensors command, from
lm_sensors package) and nothing blows up, then enable
athcool to autostart at boot. Some athcool packages provide
an init.d script for this, others don't.
8. If athcool doesn't work or the CPU temperature doesn't fall on
the idle machine (preferably with no X11 running, no USB devices,
top showing little or no CPU use) try a more recent kernel
as the relevant parts of the kernel code may have been fixed.
9. Still not working? Do: modprobe processor
10. cat /proc/acpi/processor/CPU0/info
and see if acpi is disabled in the kernel.
Note added 2/28/07. Some distributions such as Mandriva 2007 do all of
this automatically. In addition to athcool they use a powernow-k7 module.
You can verify that athcool is working by using
lm_sensors to measure CPU temperature on the idle system, turn off athcool,
wait 20 minutes, and look at the CPU temperature again. Also, athcool did
not work on a Tyan S2466N mobo with an Athlon MP processor under early
2.6.x kernels, but upgrading those machines to Mandriva 2007 let athcool
work correctly, dropping the average CPU temp from 39C to 27C.
Note added 06/06/07, modified 6/15/09. Athcool sets two bits and just leaves them on. So
this saves power when idle but does in some cases affect the machine's
performance while busy. For instance, on our S2466N machines the IDE
read/write performance decreased by up to 50%, and changing the PCI latency
values did not help. To work around this I wrote a small perl script
that toggles athcool off if the system is busy, and on if it is idle. This
is similar to what cpufreq does on new AMD processors, where the frequency
and voltage are adjusted up or down as needed. The script ctrl_athcool.pl.
should be started by the init.d script ctrl_athcool. Disable
the init script for athcool, it is not needed once the ctrl_athcool init script is installed.
The ctrl_athcool.pl Perl script uses athcool to control the power saving bits, but it also
monitors CPU and network usage, and turns the power savings back off again when
the system is busy. The current version of the Perl script daemonizes and the init
script works with RedHat derivatives like Mandriva.
Note added 02/08/08. Found that Athcool negatively effects heavy network load
even when that load does not cause much of an increase in the CPU load. Modified
ctrl_athcool.pl to shut athcool off after it detects a significant network load.
The trigger is the sum of the number of packets read and written within a 1 second
interval. Either network load or high CPU usage now causes athcool to turn off, both
conditions must abate before athcool will be turned back on.

These processors support Cool'N Quiet, which is a reduction in both clock frequency
and voltage at idle. In general they use less power than the regular Athlon XP and MP
processors. Tests with Central Brain Identifier indicate that on the experimental
machine the Halt instruction is enabled and accounts for about 18 Watts of power saving.
Stop Grant was disabled, but enabling it made no difference, possibly because CBID
did not work properly with the DFI motherboard. In any case, no manual intervention
was required to enable Halt.

Windows XP Instructions

1. As administrator
2. Go to www.amd.com and find the relevant download page for
the processor in question.
3. Download the processor driver
4. Download the AMD power monitor
5. Install both.
6. Run the power monitor and set it to: minimal power management.
7. The power monitor should show that when the machine is idle the
frequency drops by about half and the voltage drops by about 30 percent.
8. You do not need to leave the power monitor running in the foreground.
9. When a normal user logs in subsequently the power monitor may show
home office and not minimal power management. Yet it
appeared to work as if it was in the latter mode. To be safe have
normal users do: start -> control panel -> power savings
and set it to minimal power management
10. Note, it isn't necessary to use the AMD power monitor. Setting
minimal power management in the power options control
panel is equivalent. However the power monitor shows that the expected
changes have actually transpired.

1. As administrator
2. Go to www.amd.com and find the relevant download page for
the processor in question.
3. Download and install the processor driver
4. Set minimal power management in the power options control
panel.

Linux Instructions

1. Use a recent 2.6 series kernel.
2. Verify that the module powernow-k8 exists.
3. Verify that powernow-k8 will load with: modprobe powernow-k8
(note, if your BIOS does not support the PowerNow for this particular
processor you will something like this:
FATAL: Error inserting powernow-k8 (/lib/modules/2.6.17.11/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k8.ko): No such device
and % dmesg | tail will show (on a dual CPU system)
powernow-k8: Found 2 AMD Athlon 64 / Opteron processors (version 1.60.2)
powernow-k8: MP systems not supported by PSB BIOS structure
powernow-k8: MP systems not supported by PSB BIOS structure
4. Install cpufreq and cpufrequtils
5. The defaults are probably ok. Use cpufreq-info and cpufreq-set to change
things, or modify /sys/devices/system/cpu/cpu0/cpufreq/ entries directly.
Note added 2/28/07. As of this date some distributions such as Mandriva 2007 do all
of this for you. Moreover, they default to this mode.
Note added 8/20/08. The configuration file /etc/sysconfig/cpufreq in RedHat
derived distributions may contain only commented out lines. To enable power saving
uncomment the governor line and set it to ondemand.

Recent opterons seem to support the same power savings as Athlon 64. See above for info.

Note added 2/28/07. HOWEVER, there have been
exceptions. I had the unfortunate experience recently
of purchasing an Opteron 246HE CPU only to find that it
supported only a single power level. Now the irony of
this is that I bought the HE part because it is a low
power part, but it turned out that AMD made 2 different
chips, called "Opteron 246HE", and by bad luck the
variant I ended up with did not actually support
CoolN'Quiet. This information was well buried deep in
an AMD technical manual. So when purchasing AMD chips
it is apparently mandatory to dig a little deeper to
verify that the EXACT variant being purchased supports
the desired power saving features. To do this you will
need the AMD part number. For instance: OSK246CMP5AU,
which is, by the way, the variant you do NOT want, the
246HE that has multiple power states is actually
OSK246FAA5BL.

One Dell machine was tested. Perhaps Enhanced Speed Step was not enabled in the BIOS?
(Note: 2/28/07, on inspection there was no option to change this in the BIOS.)
In any case, at idle the power consumption was 76W for both "Always On" and "Minimal Power Management".
So the Core Duo was quite efficient at idle, it just wasn't clear if Enhanced Speed Step was
alway on regardless of the power control panel setting, or if it was never on. In any case, it was
clear that there was no control over it on this machine.

These machines can slew their CPU frequency and voltage between a low value
(low power consumption) and a high value (high power consumption). There are three
settings, found under system preferences -> power savings -&gt options, which are:

1. Automatic: The operating system increases power consumption
to match the load.
2. Highest: The computer always runs at the highest CPU frequency
and voltage.
3. Lowest: The computer always runs at the lowest CPU frequency
and voltage.

In order to reduce power consumption at idle use Automatic on the desktops and on
the laptops when these are running on the charger. When the laptops run on batteries
it is sometimes useful to employ the Lowest setting in order to
maximize the battery life. On laptops this option may be set independently
for battery mode and charger mode. Processes with root privileges may also set these options
from the terminal window using the pmset command.

On OS X 10.4.8 the System information tool on the one iMac tested said "2 Ghz Intel core duo"
without giving any measured CPU speed. The same machine brought up in Windows XP SP2 with bootcamp
identified itself as "Genuine Intel (R) CPU T2500@2.00 GHz, 999Mhz." The different speed listed
is consistent with Enhanced Speed Step being active. However power consumption
under XP was 83 watts for the power settings "Home/Office Desk", "Always On", and "Minimal Power
Management". This is unfortunately conflicting information, with the system claiming to be running
at half speed, yet not actually drawing different amounts of power at different power settings. Under OS X 10.4.8 it ran at 73 watts
and there appeared to be no setting to control power consumption in
system preferences -> energy sevaings.

How then to explain the power differences between XP and OS X on the same machine at idle?
I believe it is in part due to the handling of the integrated display. Under OS X there is
a software brightness control and changing that varied power consumption from 60W to 85W. There
was no such control under XP, so most likely in that OS the backlight is full on at all times,
and this explains the observed idle power consumption.

So the jury is out on Enhanced Speed Step on this iMac. It's unclear if it was on and even
less clear how to control it.

Saving Power at the Display

On many working computers it is possible to disable part of the video circuitry and to power down the display in order
to save power, without sacrificing the primary function of the machine.
Most servers make little or no use of their consoles, often to the extent that no display is even
attached to the computer's video output. Should such a machine have a display device that should certainly be
in its lowest power state when not actively in use. Similarly, workstations which are running background jobs
may be left unattended for long periods of time, during which there is typically no reason to maintain
a display. Lastly, there are some protocols such as X11 which must remain active or the connection
will terminate. For these the machine cannot be dropped into standby mode when the operator
will be absent temporarily,
but some power may still be saved by disabling the display.

It is important to note that universally computers determine whether or not the display is needed
not by the activity of the display itself, but rather by the activity of the input devices the
operating system associates without that display. Any events generated by the corresponding
keyboard or mouse will be interpreted as indicating that the display is in use. This is of course
because the computer has no other way of detecting the presence of a person viewing the display.
It is important to note that some applications, such as watching a movie, do not generate these
associated input events. If these do not disable the display shutdown logic themselves it must
be done manually before the application starts. Conversely, undesired input events such as a
keyboard button stuck down or excessive vibration near a mouse may keep the display from ever
powering down, even though no user is present.

Most operating systems have some concept of a "screen saver". These date back to the early days of the
CRT display, where a static display could literally burn an image into the phosphor on the CRT. So the
original purpose of the screen saver was, literally, to save the screen, by preventing a static image
from remaining too long on the display. This had nothing whatsoever to do with saving power. As time progressed
and energy conservation was considered it was usually integrated with the existing screen saver
functionality. When energy conservation is the goal no traditional screen saver should be used - at best
these leave the display in a state of high energy consumption, at worst they also cause significant
energy consumption at the CPU. In most cases the desired configuration is achieved by setting the
activation time for "Display Disable" to be shorter than that for "Screen Saver start".

Control of the state of the display by the computer is generally based on
VESA DPMS (Display Power Management Signaling).
This method signals an analog display device which power state it should occupy by turning
the H-sync and V-sync signals on or off. This results in four power states: on, standby, suspend,
and off. For a CRT display these vary in the order shown from maximum to minimum energy consumption.
However, for an LCD display there is often no difference between standby, suspend, and off. For instance,
on a Gateway FPD1775W monitor, which normally consumes 15W when on, changing to any of the other
three states first drops the power consumption on the display to 3W, then the display indicates
"No Signal" and briefly pulses back up to 15W, then finally drops down to 0W. (Not actually zero,
just less than the power meter employed could measure.) Power consumption in the video circuitry
on the computer may differ in these three states, so for energy conservation purposes
it is usually best to just use the Off state. For Displays driven by digital connectors
a different control method known as DMPM (Digital Monitor Power Management) is employed. However,
so far the operating systems have lumped this in with their DPMS control, so that the end user
need not worry about whether an analog or digital connection to the display is used.

Lastly, there is a slight amount of power savings on the video circuitry in the computer when the
display is placed into a DPMS off state. This is true when the computer is busy or idle. These
savings are trivial when compared to the power saved by turning off the display. This was measured
with a "Kill A Watt" power meter on a Linux workstation containing a Quadro FX1400 graphics card running
under the Nvidia proprietary driver. The graphic load was varied
by running pulsar -s, or not, on top of a an otherwise idle system with two xterm windows
open. Note that the Quadro card continued to run even when the display was turned off, and the
approximately 1W difference in power on the workstation between DPMS on and off probably represents
power used in the analog output circuitry.

Right click on the desktop
Select Properties from the menu
Select the Screen Saver tab
Set the Screen saver field to (none) or
Set the Wait time to longer than the turn off time below
Click Apply if it is not greyed out
Click on the Power button
Set Power schemes to Minimal Power Management (this also enables power saving CPU adjustments)
Set Turn off monitor to After 20 minutes, or some other suitable time limit
For a server or other machine which must always stay on

Set Turn off hard disks field to NeverSet System standby field to Never

For other machines choose an appropriate time limit for these two fields.
Click OKClick OK

Please also read the section Windows XP power settings. Unprivileged
users may change their screensaver settings but may not override the power configuration
set by the Administrator.

In general for power saving to work acpi must be enabled in
the motherboard's BIOS. Some machines are also able to enable power saving
at idle in their BIOS, however at this time this capability seems to be
rare. Please refer to your motherboard manual for further information.

IMPORTANT: Normally in Windows XP the power setting for the Administrator account overrides that
for unprivileged accounts. The settings for the
Administrator also apply to the logon screen.
Just to make things even more interesting Windows XP will show the wrong power setting
information for all accounts other than Administrator. This occurs no matter which
methods are used to display the power parameters. Typically other users see the
"Home/Office Desktop" power scheme, no matter which power scheme is actually in use.
Non-Administrator users will not be able to change this (incorrect) value, and will
receive an "Access is Denied" message when they click on
either Apply or OK after making power scheme changes.

These values were measured with a P3 International P4400 "Kill A Watt" meter.
Measurements include only the monitor. Note that for both
the conventional Iiyama CRT and the Dell LCD flatpanel the
power consumption decreases with brightness. Turning off
half the lights in an office (1-8 32W fluorescent bulbs)
allows the display to be run at a lower brightness. This
saves power on the display, on the room lighting, and
in most cases on the building air conditioning. Data with explicit
DPMS states was measured using the Linux vbetool.

These values were measured with a P3 International P4400 "Kill A Watt" meter.
Measurements include everything in the case (CPU, disks, fans, graphics
card) but do not include the monitor. The interesting point here is
that the screen savers may or may not push a machine out of its idle mode,
depending on the CPU, and possibly also on the graphics card. The results
shown below are for Windows XP screen savers. All numeric values are in watts.

Assume a typical employee works 8 hours a day, 5 days
a week, and has two weeks of vacation per year. Furthermore
assume that this employee's equipment is turned off when the
employee is not present. For each watt consumed by that
employee's equipment in a year
8*5*50 = 2000 watt hours = 2 kilowatt hours of energy
must be purchased. In California as this is written the
cost per kWh is about ten cents. Resulting in the
formula:

Server equipment is typically on all the time. So for
power consumption in servers allow 24 hours a day, 365 days a year.
For each watt consumed by the server equipment in a year it will
consume 24*365 = 8760 watt hours = 8.8 kilowatt hours of energy.
Assuming again 10 cents per kWh this would cost 88 cents.
Resulting in the formula:

Finally it is worth considering the costs of giving way
idle CPU time. This practice was pioneered by SETI and there
are now several other projects which run on the same BOINC
software. A clerical worker's PC is typically idling nearly 100%
of the time since the relevant applications demand
very little of the CPU. Installing SETI changes this equation.
First, the background program consumes the idle cycles and moves
the machine from its lowest power state to a higher power
busy state. Secondly, and this is actually the bigger factor
by far, the worker may leave the machine on all the time in
order to let the background program run.

Case 1 (least expensive). The typical office worker, using the Athlon XP 2000+
machine described elsewhere, with the cooling mode enabled, and
an LCD screen. Average power consumption would then be 108W for
the elements in the case plus 35W for the display giving 143W total.
Using the first formula above gives a yearly power cost of $28.60.

Case 2. The same office worker, using the same machine, but this
time with a SETI like program using all idle cycles, but not heavily
loading the machine. The machine is now left on 24 hours a day as it's
"doing something worthwhile". Average power consumption
for the box becomes 147W, and since the machine now runs all the
time yearly energy cost for these components is 147*.88 = $129.36.
Presumably the user would still turn the monitor on and off as
before, so the yearly energy cost for the display would 35*.2 = $7.00.
Giving a total energy cost of $136.36.

Case 3 (most expensive). The same office worker, using the same machine, but this
time with a SETI like program pushing the CPU hard. Average power consumption
for the box becomes 180W, and since the machine now runs all the
time yearly energy cost for these components is 180*.88 = $158.40.
Presumably the user would still turn the monitor on and off as
before, so the yearly energy cost for the display would 35*.2 = $7.00.
Giving a total energy cost of $165.40.

The same office worker,
using an Iiyama CRT will use about 84W, which will cost 84*.2 = $16.80
for yearly energy costs. As noted above, an LCD would use about
35W and so would cost 35*.2 = $7.00 for the year. Assuming the replacement
LCD display cost $200 the payback period
would be 20 years. (Note added 2/28/07 - this argument is still technically
correct but moot since pretty much all new displays are LCDs. The normal turnover
of displays has replaced almost all desktop CRTs at this point.)

LCDs can go "black" either
by shutting off the backlight (shutting down the display) or by turning all pixels
to the black state. The problem is, while both result in a black display, the former
results in significant energy savings, and the latter saves absolutely nothing. For
this reason, if given the option, screen savers should be avoided and the monitor
turned off instead. On Windows XP this is accomplished by setting the screen saver
time longer than the Monitor Power time in the Display Properties control panel.
For instance, a Viewsonic VX922 19" display uses 30W when blanked. When the OS shuts
off the display it shows "No signal" for a few seconds. While doing that it also uses
30W. Then once the display goes into standby mode it uses 0W.

Making a local copy of this entire document to serve from another site is allowed and
does not require authorization from the copyright holder. However, you
are not granted the right to modify that copy - please send corrections
and additional material to the author for incorporation. The template
version of this document is: http://saf.bio.caltech.edu/saving_power.html.