> It would appear that Apple has repeatedly changed its mind about
> whether or not to include software-readable temperature sensors.
> It's a hard requirement for laptops and G5 systems, since there are
> software-controlled fans, but there doesn't seem to be any pattern to
> whether they exist in other models.
Actually, there is a pattern, but it's not at all obvious if you're not
a hardware design engineer familiar with the trials and tribulations of
on-die temperature sensors in PowerPC CPUs.
The early examples of temperature sensors in Macs happened because
Motorola put a sensor inside the G3 CPU. Apple did not actually use
that sensor for anything, because they didn't need to. It was probably
put in for Motorola's embedded customers rather than Apple.
There were some flaws in the G3 temperature sensor. It worked best on
the chip fabrication process used to make the original revision of the
G3. It got worse -- or at least behaved differently -- as IBM and
Motorola tweaked process parameters and die shrunk the chip (which of
course meant a new process). As a result, programmers who want to read
the G3 sensor (and get accurate results) must apply correction factors
which change depending on the die revision of the G3 CPU. For this
reason, you may find that some software temperature monitor utilities
report different values than others -- if one, the other, or both got
the corrections wrong, the output will differ.
Now, when Motorola designed the G4, they used the existing G3 design as
a starting point. The original generation of G4 CPUs (anything from 350
MHz to 550 MHz) was, in essence, a G3 with a better bus and AltiVec
bolted on. So, a lot of things survived more or less unchanged from the
G3.
One of them was the temperature sensor. Problem was, its circuit design
was sufficiently unchanged -- and the process used to build the G4
sufficiently different from that of even late model G3s -- that it never
worked right on the G4. At first Motorola documented this as an errata
which might get fixed in a future revision (all CPUs have bugs like
this, especially new designs), but eventually, they chose instead to
stop supporting use of the sensor on the G4. (Presumably nobody
complained about it not working, or at least nobody who was buying
enough G4s for Motorola to care.) The registers are still documented
but Motorola guarantees nothing about how well the sensor works.
You can read data from the now-vestigial sensor, but odd things will
happen. Like two G4 CPUs in a dual processor machine reporting vastly
different numbers, even though they're clamped to the same heatsink
(which should keep the temperatures of both CPUs fairly close). In
general, the older the G4, the closer the sensor is to working -- but
none of them really work right.
At some point (the MDD G4, to be precise) Apple began including sensors
_external_ to the CPU. Some of these are mounted close enough to the
CPU (perhaps attached to the heatsink?) that they can be used as a
substitute for the G4's dysfunctional internal sensor.
The G5 CPU has a functioning internal sensor. G5 Macs also sport a ton
of other sensors which monitor temperatures at various points in the
enclosure, the electrical power drawn by different parts of the machine,
and the fans.
So, Apple never actually changed its mind... once they decided software
readable sensors were a good idea, they jumped in with both feet.

Signature
Tim
David C. - 30 Dec 2004 18:00 GMT
> Actually, there is a pattern, but it's not at all obvious if you're not
> a hardware design engineer familiar with the trials and tribulations of
> on-die temperature sensors in PowerPC CPUs.
(lots of good stuff snipped)
Thanks. It's not often I learn something really interesting on newsgroups!
-- David