In association with heise online

25 August 2008, 11:02

IDF: Why many system info tools give incorrect CPU temperatures

Intel util. shows correct temp.
The Intel utility, at least, should show the correct temperature. Zoom
For a number of years x86 processors from AMD and Intel have contained 'thermal diodes', which measure the current temperature of individual CPU cores. There used to be just one such diode, which could be read via two CPU contacts designed for this purpose, a task performed on many motherboards by a device known as a 'hardware monitoring chip'. Newer processors have multiple temperature sensors for each core and an integrated logic circuit that outputs the value measured by the hottest of these sensors. Intel's core processors use the single wire PECI interface (Platform Environment Control Interface) to do this.

Unfortunately, the core processors do not simply report their current temperature in Kelvin or Celsius via PECI, rather Intel has chosen a differential method. The digital temperature sensors (DTS) for each core report the divergence from a specific maximum junction temperature Tj, which, depending on the processor, is (currently) equal to 85, 100 or 105 degrees Celsius – however other Tj values are also possible. The applicable Tj value for a particular processor is encoded – or at least that's what companies programming system info tools have believed up to now – in a machine specific register (MSR) on the processor.

However, as Intel has now finally revealed, the MSR is only specified for mobile processors – Intel does not use it for desktop processors. This is why many system info tools show the wrong temperature. Reference Tj values for desktop processors do exist and depend on the CPU family. Intel has now decided to divulge these, but only for the current generation of 45 nm processors. For E8000 and E7000 series Core 2 Duo and Q9000 and Q8000 series quad core processors, this value is 100 degrees. For the QX9650 Core 2 Extreme, Intel gives a figure of 95 degrees Celsius, for the QX9770 Core 2 Extreme 85 degrees. Whether or not these figures apply to previous and forthcoming steppings of these processor families is unclear. Intel also makes no mention of its Celeron or Pentium Dual-Core processors.

The CPU core temperature calculated from the difference between the Tj value and the measured PECI data does not correspond to the maximum permissible processor temperature given in the data sheet, which usually refers to Tcase – the CPU case temperature. Strictly speaking this should be measured using a sensor at the centre of the integrated heat spreader (IHS). This requires a hole to be drilled or a groove to be cut in the processor IHS for inserting the sensor, as described in detail in appendix D5 of the developer's guide – 3.5 Mb PDF.

The difference between DTS figures and Tcase is typically just a few degrees Celsius. Since Intel does not divulge the precision of DTS readings, however, it is difficult to give a more exact estimate of this difference.

If Intel processors overheat, the 'thermal monitor' (TM, also now TM2) ensures that the CPU throttles – either by modulating the internal clock speed – clock throttling in TM1 – or by reducing the internal multiplier and dropping the core voltage – TM2. The processor reports this emergency throttle using the signal PROCHOT#. The DTS temperature at which the processor throttles depends on the individual processor. Intel programs in – but does not divulge – the precise threshold value, which does not have to be the same as either Tcase or Tj, individually for each processor – the throttle threshold is determined during post-production testing. Our experience in the c't laboratory shows that many Intel processors throttle when they are, according to the DTS, still 3 degrees cooler than the Tj value. The throttle threshold is thus significantly higher than the maximum permissible Tcase value given in the data sheet, or in the processor finder.

System info tools able to evaluate core processor DTS readings include Core Temp, Real Temp and RMClock. The Linux kernel includes the coretemp driver. Intel itself supplies Intel Desktop Utilities (IDU) for Windows, with its own motherboards.

For more on the Autumn IDF 2008 see also:

(trk)

  • Share this article
  • Twitter
  • Facebook
  • digg this
  • submit to slashdot
  • post to delicious
  • StumbleUpon
  • submit to reddit






The H open source

The H Security

The H Internet Toolkit