CPU Core Temperature Measuring - Facts & Fictions

Martin

HWiNFO Author
Staff member
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.

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
For Bay Trail: ± 8°C for < 60°C; ± 6°C for > 60°C
Skylake, Kaby Lake, Coffee Lake, Comet Lake: not more than ±5 °C within the entire operating range
Apollo Lake: ±5 °C within the entire operating range
Elkhart Lake: ±5 °C within 0 - 105 °C



AMD CPUs/APUs:
Earlier AMD CPUs and APUs (Llano - Bulldozer) suffer a similar issue with measuring of internal core temperatures. Unlike Intel systems, where the affected parts belong to older 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 you can not rely on internal CPU temperature of older 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.
Zen and later systems have significantly improved thermal sensors which are much more accurate, so temperatures reported here can be considered trustworthy. Here however the temperatures can fluctuate very frequently with short spikes of several degrees. This is normal behavior and hence some sensors like "CPU Die (average)" use averaging over short intervals to provide more stable results.
 
Last edited:
RE: CPU Core temperature measuring via DTS - Facts & Fictions

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. :D
 
RE: CPU Core temperature measuring via DTS - Facts & Fictions

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...
 
RE: CPU Core temperature measuring via DTS - Facts & Fictions

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.
 
RE: CPU Core temperature measuring via DTS - Facts & Fictions

Sorry for a short response, but - I think you almost right with your conclusions :)
 
RE: CPU Core temperature measuring via DTS - Facts & Fictions

Martin said:
Sorry for a short response, but - I think you almost right with your conclusions :)

Thanks Martin, I'm glad you feel that way.
 
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 :)
 
The most important temperature to measure in your computer is the processor, or CPU. Core Temp is a simple, lightweight app that runs in your system tray and monitor’s the temperature of your CPU without cluttering it up with other stuff. It offers a few different options so you can customize it to your tastes, and even works with other programs like Rainmeter.
 
Martin said:
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Martin, I have been having really high CPU temps today, more than usual, and I haven't been putting a big load on the system. I describe what's running on the screenshots.  I wanted to show you what HWinfo MOBO temps are showing in comparison to the Tctl CPU temps. They s/b higher, according to what you've explained about the AMD CPUs. I'm including 3 screen shots so you can see the progression. I'm starting to wonder if my CPU is about to go, or if I need to put new thermal  compound on it.

I installed this CPU December 2015 ( it was a warranty replacement). I've built 5 systems and have never had a problem with thermal compound, and I usually keep my systems for about 3 years.  Statement from your quote gives me more cause for concern: It's assumed, that in the higher range (close to critical temperatures) the values reported have a better accuracy.

I have the BIOS set to ASUS optimized defaults, I have 4 fans (plus the CPU and GPU fans) and I have a Cooler Master Hyper T2 heatsink. Temps always shoot up right after the system startup, then they drop back to normal ranges in just a few seconds.

On the first screenshot, I was installing a video editing program. That could cause CPU temps to increase, I suppose, but normal running temp is 40.0 or less. The other time there were temp increases, I can't explain it. I've just been browsing in Chrome and watching my CPU temps.

I'm also having problems with my Chassis 1 fan. I set an alert for anything below 600RPM (because that's what is recommended in the BIOS.) It has gotten down to zero at least 50-60 times today and this fan is less than 6 months old. Do you think that's possibly a fan 'controller' problem or most likely the fan itself? With the temps hitting such high numbers, it doesn't make sense that the fan would ever get down to zero, especially every 30 seconds or so.

One last question, sorry I'm taking so much of your time. I started logging because of the CPU temps and the fan issue. It's lots of data.  I've scoured the settings trying to find an option that lets the user specify what is to be captured in the log. I can't find any setting for that. Have I overlooked it?

Thanks for all your help, I'm grateful for all that knowlege in your noggin!!     :)
 

Attachments

  • !!Tctl CPU temps higher than MOBO CPU temps cropped.jpg
    !!Tctl CPU temps higher than MOBO CPU temps cropped.jpg
    338.9 KB · Views: 84
  • !! CPU temps normal 2 minutes later.jpg
    !! CPU temps normal 2 minutes later.jpg
    155.2 KB · Views: 70
  • !!CPU about to blow.jpg
    !!CPU about to blow.jpg
    431.8 KB · Views: 73
I don't think that any of those internal (Tctl) temperatures are critical. When AMD publishes maximum temperatures, those are external ones (on top of the CPU, IHS) and there's a difference between a temperature inside the CPU and outside. The mainboard CPU temperature is most likely from a sensor on the mainboard, close to the CPU package, so there's an even higher delta.

Regarding the selectable logging items, such feature is currently not available, but it's on my ToDo list. Currently you can import the produced log into a spreadsheet program like Excel and delete the columns which you don't need.

Note, that since your post is user-specific and not fully on topic, I will move it into a separate thread later.
 
Martin said:
I don't think that any of those internal (Tctl) temperatures are critical. When AMD publishes maximum temperatures, those are external ones (on top of the CPU, IHS) and there's a difference between a temperature inside the CPU and outside....

Thank you for the clarifications about AMD temperature indications.

Regarding the above comment: is it equally applicable to Ryzen CPUS?  

My mobo sensor is underneath the socket just beneath the CPU; not sure if it's on backside of the board our just under the socket as that location is shown in marketing literature not engineering literature. For that matter it may just be some graphic artist's imagination. LOL
 
Well, I'm not 100% sure about Ryzen, but I think it's rather the 'internal' values that are published and compared.
The published maximum temperatures are Tctl_Max - the maximum operational Tctl temperature.
Tctl = Tdie + Tctl_offset
Tdie = The temperature of the die
Tctl_offset = 20 for Ryzen X-series, 0 for others
HWiNFO reports both Tctl (read from CPU) and Tdie (calculated using the above formula).
 
ICit2lol said:
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 sizegenetics https://www.virtualpalomarwest.org/sizegenetics-review/ more a matter of common sense really..

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

[size=small]Interesting, I never really thought of using an infrared gun[/size]
[size=small]I just have a little thermometer but I don't think it's that accurate.[/size]

 What infrared gun do you use?
 
See image of a comparison between CPU temp reported by HWInfo (NICE utility, BTW!) and CPU temp reported by the software that was provided for that mother board (ASUS Gryphon with 4th generation i7). This was taken at near steady-state (idle) - see graph. Looks like HWInfo's temperature reading is a little high. I'm curious as to what could be causing that. I don't think it's a sampling or averaging issue, as the screenshot was taken while the temps were pretty constant.
 

Attachments

  • 20211130-HWinfo.png
    20211130-HWinfo.png
    640 KB · Views: 21
The value shown by ASUS is measured via a sensor on mainboard (most likely in CPU socket), so it's the external CPU temperature, while the value shown by HWiNFO is measured inside the CPU core.
 
The value shown by ASUS is measured via a sensor on mainboard (most likely in CPU socket), so it's the external CPU temperature, while the value shown by HWiNFO is measured inside the CPU core.
Thanks, that explains it. I did find a "CPU" temperature sensor other the Motherboard section in HWInfo that gave readings that exactly matched what AI Suite III was giving, so it looks like that's not the actual CPU temperature. Looks like the difference can be up to 10 degrees, so I adjusted the auto-generated fan curves 10 degrees downwards :). And now my computer's "chassis 1" fan (the front fan, and the largest fan in the case) is now running. CPU temperature at idle has now dropped a whopping one degree, so I'm not sure that was worth it (sigh).
 

Attachments

  • 20211130-HWinfo2.png
    20211130-HWinfo2.png
    587.1 KB · Views: 12
Here is what I have with the lastest HWinfo at this day, with a Ryzen 5900X on an Asus ROG Strix X570-F mother board running Windows 10 x64.
When running a prime stress test, the "CPU" stays at 45°C but the "Core temperature" changes, according to what has to happen when running a stress test.
Then just after stopping the stress test, I obtain the opposite : the CPU is at 52°C but the "Core temperature" goes down to 39,5 °C... Very strange...
 

Attachments

  • hwinfo.jpg
    hwinfo.jpg
    154.5 KB · Views: 19
  • hwinfo2.jpg
    hwinfo2.jpg
    154.4 KB · Views: 19
  • hwinfo3.jpg
    hwinfo3.jpg
    62.9 KB · Views: 18
Every motherboard (brand + model) uses primarily the sensor that it is considered as highly accurate in hardware.
Gigabyte GA-Z87X-UD5H, at Gigabyte Hardware monitor (software), sensor in use the GIGABYTE Z87X-UD5H-CF (ITE IT8790E) sensor.
DTS this deliver 10C higher.
Now I am back to ITE IT8790E

Thank you Martin!
 
Back
Top