Don't worry TheSubtleKnife. I've been working hard today gathering data.
Here is my latest guinea pig, an E2160 Revision M0.
Intel has a habit of creating one processor model and then making some slight changes to the basic design so they can create additional models for different price points without having to do a total redesign. The E4x00 series with 2MB of cache gets half of that disabled and then becomes processors like my E2160 with 1MB cache. They then cut the cache in half again and create things like the E1200 M0 which has only 512KB of cache. They all have the same CPUID. Some people believe that this is a way for Intel to sell defective processors. If the cache has a defect, they can disable half or three-quarters of it and still sell it as a lower end model and make some money.
So my theory is that all M0 processors start life as the same basic processor with the same TjMax. As they go down the assembly line, the multiplier and VID and cache are adjusted which creates a variety of models. These different models get stamped and shoved into the appropriate box but beneath the skin they are all quite similar.
GigaByte has brought up some troubling findings that need to be addressed. His M0 processor when using RealTemp's new TjMax=85C is reporting below ambient core temperatures at idle which everyone knows is impossible. When this same situation originally happened with the L2 - E4300 series, the solution CoreTemp came up with was to bump TjMax from 85C to 100C. Changing the TjMax will cure below ambient idle temps but it also screws up your load temps by +15C if the TjMax really isn't 100C. Not good.
The goal of RealTemp was to convert the on chip DTS data to accurate core temperatures. When I first got my E2160 installed and ran RealTemp v2.11, it was immediately obvious that TjMax=95C was wrong for my new processor. I quickly changed that to TjMax=85C for RealTemp v2.2 based on my IR thermometer testing.
With GigaByte strongly objecting to this change in TjMax, I decided I needed to re-do my E2160 testing. I recorded the IR thermometer reading and then immediately after I took a picture of the screen to compare it to what RealTemp was reporting. I'll start with a lot of pictures taken at different temperatures to compare IR gun temps to what RealTemp reports. I have cropped the original pictures down to size to make them easier to upload. I have also kept the original pictures which are all time stamped showing that the video screen shot was generally taken 2 or 3 seconds after the IR picture. It took me a couple of seconds to reposition the camera, refocus and shoot. If anyone is suspicious that my image gathering technique was done to make RealTemp look better then I have the originals that I can e-mail to you so you can check the file creation time stamp on them.
Anyway, here goes. In each group you have the IR measured temp followed by the RealTemp reported temp. Idle Calibration was set to (+) but that feature doesn't effect temperatures in this range.
IR Temp = 50.6C
RealTemp = 50C
IR Temp = 55.4C
RealTemp = 54C / 55C
IR Temp = 65.8C
RealTemp = 67C
IR Temp = 70.6C
RealTemp = 70C / 72C
I think everyone will agree that there is a very strong correlation between IR thermometer measured temperatures and what RealTemp is reporting for core temperatures. The upper range looks good and shows that TjMax=85C for my M0 processor looks like a wise choice.
Now it's time to look at the low end using the same TjMax=85C. With the Idle Calibration set to (+), you'll also see how that effects reported temperatures. I've included pictures of SpeedFan since it uses TjMax=85C for the M0 processors but doesn't have RealTemp's Idle feature so you can compare.
IR Temp = 27.8C
RealTemp = 27C SpeedFan = 25C CPU = 40C
On this processor SpeedFan, without the Idle Calibration feature, is reporting core temperatures that are a little too low. This is common on the original B2 processors, definitely the L2 processors like the E4300 and now also on the M0 processors. The other thing to note is the CPU temperature which is from a diode on the motherboard. On this Asus board, it has nothing to do with the actual TCase temperature of this processor and is completely wrong.
IR Temp = 31.8C
RealTemp = 32C SpeedFan = 29C
IR Temp = 34.0C
RealTemp = 34C SpeedFan = 32C
IR Temp = 41.0C
RealTemp = 40C SpeedFan = 39C
Once again there is a strong correlation between IR temperatures and what RealTemp is reporting. A properly chosen Idle Correction factor is also helping to make these reported temps spot on.
Everything is looking good so far but now it's time to investigate if my idle temperatures are being reported below the ambient temperature like GigaByte has found.
For this test I've reset the Idle Calibration to 0. I turned off my computer in my very cool basement and let it sit. It was left in Stand By mode for a few hours so when I turned it back on I could immediately see the reported core temperature before it had a chance to warm up too much.
I had a notepad sitting beside the computer which I used to record a room temperature of 11.2C.
Here it is. With no Idle correction factor, RealTemp is reporting 8C for the core temperature now.
RealTemp, uncorrected, is reporting this M0 E2160 3 degrees below the ambient temperature. This is exactly the same as what you discovered GigaByte. You were operating your E4500 at 0.90 volts vs 1.08 volts during my testing. Heat output of a processor is proportional to the square of voltage so your CPU was putting out approximately 70% of the heat energy as my processor and one of your cores was reporting that it was at 4C below your ambient temperature.
GigaByte, can you now see how the DTS is not linear. Without an Idle correction factor, these CPUs will report idle temperatures that are too low and impossible. That does not imply that TjMax is wrong. My testing makes it perfectly clear that TjMax=85C is definitely right for my M0 processor and our combined testing shows that our processors are behaving identically by both reporting below ambient idle temperatures.
Your correction to adjust the TjMax upward 10C to 95C will only make all of your load temperatures wrong. For accurate reported temperatures that cover the entire operating range of a processor, you need an Idle Calibration correction factor.
Down at this temperature, RealTemp uses a correction factor of 4 degrees which makes the reported idle temperatures much more accurate.
A 4 degree correction would bring the previous 8C uncorrected reading up to 12C which is above my ambient temperature of 11C. The RealTemp reading may not be 100% correct but it is definitely very close to the actual core temperature of this processor. Closer than any other core tempreature software available. RealTemp, when properly calibrated, is very accurate from idle to TjMax and beyond.