Subject: Re: CPU heat & SETI (Good FAQ answer)
From: david@djwhome.demon.co.uk (David Woolley)
Date: 25/10/2004, 22:15
Newsgroups: alt.sci.seti

In article <vX8fd.122$4k7.61@newsfe1-gui.ntli.net>,
"Martin 53N 1W <ml_news@ddnospamddml1dd.co.uk.dd>" <> wrote:
Peter Smithson wrote:
 
Traditionaly,  computers execute an idle loop to keep them busy all the 
time anyway. Computers with power saving features (usually laptops) will 
work slightly harder since the power saving features will not work when 
running SETI@home."
 
Nice summary.

Not really.  It's basically still a gross oversimplification.

Of the systems used by most people in recent times it is only 
MS-DOS family versions of Windows that have busy idled.  Proper
Halt instructions, that cause the CPU to cease accessing memory and
do very little (they don't necessarily dead stop the CPU - the
original purposes were to free memory for DMA and to give a faster 
reschedule after an interrupt, although they are now part of power
management), have existed for more than thirty years, to my direct
knowledge.  (Definitely true of IBM 360 series[1] and PDP 11s; if
I remember correctly, PDP 7s also had interruptible halt 
instructions.)

On Intel Architecture machines, Linux, all versions of Unix and
all NT family Windows issue Halt instructions.

Moreover, thermal loading depends on the instruction mix.  A busy
idle is likely to run entirely in L1 cache, so won't heat up
main memory and will use relatively simple paths in the main CPU which
probably consume less power than, say, the FPU.  S@H tends to thrash
the cache and parts of the processing will run main memory near flat
out.  It also heavily uses floating point.  Because of hitting main
memory, the thermal load excess will be more than indicated by the
CPU temperature.

On a machine with no power management (350MHz generation) but running
NT or Linux, there is a several degrees difference, in CPU heatsink
temperature, between idle and S@H.  (Caution, the BIOS, in setup mode,
typically doesn't issue Halts - probably because it cannot rely on
interrupts, so the machine will heat up if you try and measure temperature
using the BIOS.)

[1] If I remember correctly, the halt state was set by loading a program
status word, basically the core of the hardware task switching support,
with a specific value, rather than by a dedicated halt instruction.