Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CPU Core Temperature Measuring - Facts & Fictions
#1
Lightbulb 
Intel CPUs:
Later Intel CPUs feature a Digital Thermal Sensor (DTS) which measures the temperature for each core.
Since many users are confused about certain values measured, there is a clarification needed.
First, the value read from the DTS is not an absolute values in degrees Celsius, but it's an offset (distance) from the maximum CPU junction temperature (Tj,max). Thus to report a correct temperature, the Tj,max needs to be known. And this is the first problem, since for pre-Nehalem CPUs (like Core2, Atom, etc), the precise value cannot be read from any register (there are some partial methods but don't seem to be reliable on all models). Although Intel has published some fixed numbers for certain CPU families, it has been proven that many of them are not correct. Various people have performed extensive experiments to determine more accurate values. However those CPUs can have different Tj,max set even for same models (determined during manufacturing). So in many cases for pre-Nehalem CPUs, to determine the correct Tj,max value is just a pure guessing.. For Nehalem and later CPUs, the Tj,max value can be read from an internal CPU register, so this issue should be resolved.
The second problem (which many users don't seem to realise) is the accuracy of the DTS sensor. It seems that older DTS implementations have been designed to catch the hottest temperature only (to engage throttling when overheated), so the sensor returns more precise data only at temperatures close to Tj,max. At lower temperatures (higher distance to Tj,max), the accuracy gets worser and at some point (~ 50 °C usually) saturation occurs and values read below this point are highly inaccurate (practicaly cannot be used to provide a true temperature). Again, the situation depends whether the CPU belongs to the pre-Nehalem family. For these families the precision is in best case -3/+7 °C (or up-to -5/+10 °C) at Tj,max and gets even worser at temperatures ~50 °C, where the accuracy degrades to +-10°C (up-to -10/+15°C). At temperatures below 50 °C the reading is not guaranteed to be functional and can't provide a meaningful temperature value (should be considered to indicate only a temperature < 50 °C and not a specific value). For Nehalem and later CPU families, the accuracy was improved and should be cca +-5 °C uniform across the whole temperature range. However, there are certain exceptions too - like the Gulftown which has been determined to provide highly inaccurate values.

[Image: DTS.PNG]

Update:
For Broadwell family (5-generation Core) the DTS accuracy is ±7 °C in the 0-75 °C range and ±5 °C above 75 °C.
For Braswell family (Airmont-based Atoms) the DTS accuracy is ±8 °C in the 0-60 °C range and ±5 °C above 60 °C.




AMD CPUs/APUs:
It has been determined, that later AMD CPUs and APUs (Llano and later) suffer a similar issue with measuring of internal core temperatures. Unlike Intel systems, where the affected parts belong to elder families, for AMD this is affecting latest systems currently available. Unfortunately there's no exact data regarding accuracy available, but the problem is most significant at lower temperatures (below ~40 °C). In this temperature range, the reported values are sometimes totally wrong (like 1 °C). It's assumed, that in the higher range (close to critical temperatures) the values reported have a better accuracy.
This issue has been acknowledged by AMD, but unfortunately there's no fix for this available. AMD has stated that the value is actually not a true temperature value and they have stopped calling it as CPU temperature as well.
So the conclusion is that you can not rely on internal CPU temperature of AMD CPUs/APUs, even though HWiNFO tries to use different methods.
The only way is to rely on mainboard sensors - diodes placed close to the CPU socket, which however cannot provide the internal core temperature.
Reply
#2
I'm curious as to how you came to some of these measurements. Isn't Tjmax read from MSR 0x1A2 actually TjTarget where TjTarget is the minimum temperature expected for DTS=0?

Wouldn't this mean for example that your plus or minus 5C readings for Tjmax (read from MSR 0x1A2) should be 0 plus 10C?

Have you ever seen MSR 0x1A2 read differently for the same chip family/stepping?

This would make sense in that manufacturing is not a perfect process so thermal resistance between core and case can vary meaning the calibrated DTS would nearly always be higher than TjTarget. Poorer thermal bonding would result in higher temperature differential between core and case for rated power so for a chip with a temperature target of say 100C that could mean real Tjmax is at 107C while with good thermal bonding it might be nearer 101C.

I guess the actual calibrated temperature could be placed in MSR 0x1A2 but this would then become a flag for saying one processor has better heat transfer than another.

Also with Penryn you seem to neglect that for the 50C reading it is possible to use DTS calibration to compensate and give a more accurate reading.

Not that any of this is really critical but today I'm bored. Big Grin
Reply
#3
This is more about DTS accuracy and to show people not to expect too much from DTS temperature values, because I think that many people don't realize these facts.
You're right, the MSR value is Tj,target which for simplicity can be roughly positioned as equal Tj,max.
The accuracy numbers are based on manufacturer data and of course every chip manufactured has slightly different properties. I've heard about certain CPU series with extremely flawed DTS sensors for example. Problem is that Intel does not provide sufficient information about this...
Reply
#4
Thanks for this article, which although short is very important and enlightening. I imagine many people would simply dismiss the reality of CPU temperature readings at low temperatures, or to borrow part of a phrase, they don't want to believe.

Not specifically mentioned in your article is that CPU temperature readings are not based on any independent standardized method, and can be manipulated by CPU manufactures as they choose.

For example in my experience, at idle, Intel Nehalem CPUs report core temperatures that are always at least 5C higher than the single overall CPU temperature, and never below it. Sandy Bridge CPUs report core temperatures much closer to the CPU temperature, and may be a few degrees C above or below it. Ivy Bridge CPUs usually report core temps lower than the CPU temp by ~5C, and occasionally above it. Those difference are not due to differing CPU die architectures, but the DTS systems.

AMD CPUs tend to report relatively low CPU temperatures, and at idle may report sub-ambient temperatures, likely due to the inaccuracies you discussed. Comparing Intel and AMD CPU temperature readings is a waste of time.

I believe the following statements are true, please correct me if not:

The initial motivation for measuring a CPUs temperature was not to provide that data to the user, but for use in thermal overload protection. To this day, providing thermal protection is the main reason for having a DTS on a CPU, and its accuracy is biased towards that purpose as you stated, not to provide the user with an accurate temperature reading.

Intel actually stores slightly variable values of TJmax, for identical CPU models, depending upon how the fully assembled CPU reacts to testing. Therefore there is really no one absolute TJmax temperature for a given model of CPU.

Given the wide range of temperature inaccuracy of low CPU or Core temperatures, one CPU or one Core of a CPU may be more inaccurate than another CPU or Core of the same CPU. You see this asked about by people in CPU cooler forums regularly, why one core temperature is so different than the others, or why my CPU temp is different than his, with the same CPU and cooler.

Some of the earlier Intel chipsets that have a DTS will not report a temperature below 50C - 60C. Again, what is the point if the purpose of the DTS is simply to prevent thermal overload.

Most PC hardware review web sites and publications have not educated the public enough about the realities of CPU temperature readings, and publish readings from programs as if they were perfect and accurate. IMO, this has conditioned their readers into believing that the readings are accurate and absolutely true and consistent, which is not the case. At best we can evaluate test results relative to a sample of a CPU, and different publications will likely have different results for the same model of CPU, given the known inaccuracies of the DTS system.
ASRock Z97 Extreme6  Intel Xeon E3-1276 v3  Scythe Mugen 4
16GB Samsung M3V 2000MTs 1.35V
SanDisk Extreme Pro 256GB Windows 8.1 UEFI boot
Samsung 840 Pro 256GB x 2 RAID 0 Windows 10 TP UEFI boot
Samsung 830 256GB x 2 RAID 0
EVGA GTX 760
Dell P2714H
Dell U2312HM
ASUS VS24A
Seasonic X660 XP2 PSU
Fractal Define R4
Reply
#5
Sorry for a short response, but - I think you almost right with your conclusions Smile
Reply
#6
(08-06-2012, 08:07 AM)Martin Wrote: Sorry for a short response, but - I think you almost right with your conclusions Smile

Thanks Martin, I'm glad you feel that way.
ASRock Z97 Extreme6  Intel Xeon E3-1276 v3  Scythe Mugen 4
16GB Samsung M3V 2000MTs 1.35V
SanDisk Extreme Pro 256GB Windows 8.1 UEFI boot
Samsung 840 Pro 256GB x 2 RAID 0 Windows 10 TP UEFI boot
Samsung 830 256GB x 2 RAID 0
EVGA GTX 760
Dell P2714H
Dell U2312HM
ASUS VS24A
Seasonic X660 XP2 PSU
Fractal Define R4
Reply
#7
Well just for my two cents worth and I am no expert but I usually double check CPU and GPU temps with one of those infra red guns and yes I know they are not exactly accurate but I find it gives me  bit of a base line. Now from what I read the temp sensors within the chips them selves are not infallible and I think there is a lot of discussion re this issue on any forum I have ever been on. I think it is really more a matter of common sense really..

But hey I love the program - use it all the time when fixing Smile
Reply
#8
(07-13-2015, 08:48 AM)ICit2lol Wrote: Well just for my two cents worth and I am no expert but I usually double check CPU and GPU temps with one of those infra red guns and yes I know they are not exactly accurate but I find it gives me  bit of a base line. Now from what I read the temp sensors within the chips them selves are not infallible and I think there is a lot of discussion re this issue on any forum I have ever been on. I think it is really more a matter of common sense really..

But hey I love the program - use it all the time when fixing Smile

Interesting, I never really thought of using an infrared gun, I just have a little thermometer but I don't think it's that accurate. What infrared gun do you use?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)