Real Temp - Documentation

Real Temp is a temperature monitoring program designed for all Intel single Core, Dual Core and Quad Core processors. Each core on these processors has a digital thermal sensor (DTS) that reports temperature data relative to TJMax which is the safe maximum operating core temperature for the CPU. As your CPU heats up, your Distance to TJMax will decrease. As it approaches zero your processor will start to throttle or slow down so obviously maximizing your distance away from TJMax will help your computer run at full speed and more reliably too. RealTemp will not work on computers based on the Intel Pentium 4 or on AMD CPUs.

Introduction

RealTemp is compatible with any version of Windows 2000, XP, Vista or Windows 7; 32 or 64 bit. If you are in a limited account, you will need to right click on the icon and run RealTemp as an Administrator so that the necessary WinRing0 driver can be properly installed.

RealTemp is a temperature monitoring program designed for all Intel single Core, Dual Core and Quad Core processors. Each core on these processors has a digital thermal sensor (DTS) that reports temperature data relative to TjMax which is the safe maximum operating core temperature for the CPU.

If the value of TJMax is known and if the data being output by the DTS sensors changed at the exact same rate that the core temperature was changing at then you could use this simple formula to convert DTS data to your absolute core temperature:

Absolute Core Temperature = TJMax - DTS

The Problems

Intel designed these temperature sensors to control thermal throttling and thermal shut down and for those purposes, they tend to work excellent. They were never designed to be used to report accurate core temperatures.

The first problem is that TJMax is not a clearly defined value. Intel released a lot of information last year but they now refer to this data as TJ Target. Actual TJMax for any processor can either be equal to TJ Target or in some cases it might be slightly higher than the Intel listed TJ Target. Unfortunately, Intel did not provide the user community with any information about how much TJMax tends to vary. Based on my testing and reports from users, a 5C difference doesn't seem too unusual with 65nm and TJMax might vary by 10C in the 45 nm CPUs. The result is that two CPUs with the exact same model number might have different TJMax values and it also seems that there are situations where cores on the same CPU can have different TJMax values. For the 45nm processors, TJ Target and TJ Max seem to be similar but for the older 65nm CPUs, actual TJ Max can be 10C or higher for many processors.

Starting with Core i7, Intel has improved this situation by including the TJ Target goal within each CPU. This information is still only TJ Target though so there is no guarantee that the actual TJMax of a core is exactly equal to the value stored within each core of these processors but at least this is a step in the right direction.

The next issue that effects all of these sensors is slope error. That is when the data coming from these sensors moves at a different rate than the core temperature is changing at. The Calibration feature in RealTemp is used to compensate for sensors that move along different temperature curves and once again the Core i7 sensors seem to be greatly improved with only very minimal slope error in the normal temperature range.

The biggest problem is that the sensors used on the 45nm Core 2 Dual and Quad core processors can become saturated or can become stuck at lower temperatures. As your core temperature decreases, they might reach a temperature where they continue to report the exact same temperature even though your CPU continues to cool down. With a stuck sensor, there is nothing you can do about it and it prevents you from doing an accurate calibration of your temperature sensors.

With all of these problems, it's obvious why Intel has never recommended using these sensors to report accurate core temperatures. My opinion is that as long as your sensors are not stuck and you are able to calibrate them then you should be able to get some reasonably accurate core temperatures out of them. The sensors simply aren't designed or documented well enough to report 100% accurate core temperatures. All software is going to be limited by these problems. RealTemp is the only program I know of that is fully adjustable and tries to make sense out of the sometimes random looking and chaotic data coming from Intel's digital thermal sensors.

Testing

On the processors I've tested, the digital thermal sensors seemed to move at a similar rate as the core temperature changed at when at higher temperatures. At lower temperatures, the two values would diverge and you could end up with sensors either reporting temperatuers that were too high or too low compared to the actual core temperature.

This problem seems to effect all Core based processors, both 45nm and 65nm whether Single, Dual or Quad core. The new Core i7 sensors seem much better in this regard.

At idle, the E8400 I tested reports temperatures that are higher than the actual temperature and the E6400 I tested does the opposite and reports temperatures that are lower than the actual measured temperature.

The difference is slight at first but the further temperatures move away from TjMax, the larger this error can become. Programs that use the previously mentioned formula and do nothing to account for this error will end up reporting idle temperatures that are either too low or are too high. Worse yet are programs that try to correct for this error by adjusting TjMax higher. Now you'll have inaccurate idle temperatures as well as inaccurate load temperatures. A quick Google search will show you how wide spread this problem has become.

CPU Cool Down Test

This new test in RealTemp allows you to compare your sensors with an equal load on each core at 10 unique CPU Load levels.

Here is what my Q6600 - G0 looks like during this test:

It's immediately obvious that the sensors on Core 0 and Core 1 are very well balanced as they should be. This is what you like to see. From idle to full load, these two cores should almost always report the exact same temperature which is what you would expect when both cores are performing the exact same task while operating in the exact same environment. The slope of both temperature curves are identical.

Core 2 and core 3 are a different story. At idle, and light load, core 3 is very similar to the first two cores. At full load, there is a difference of 5C which continues to TJMax. This is a sign that this core has a different TJMax than the first two and the slope of the temperature curve is also different than the first two. Core 2 is completely different from the other 3 cores. Upon further testing at higher temperatures, I found that core 2 and core 3 seem to share the same TJMax but their TJMax is 5C higher than core 0 and core 1. If core 0 and core 1 is TJMax = 100C then core 2 and core 3 are likely TJMax = 105C. Once you correct for this in the RealTemp Settings window, you will have to go back and correct for the slope error that both of these sensors are showing compared to core 0 and core 1. Once this is taken care of then you can do a calibration check at low MHz and low core voltage to find out how your reported temperatures compare to your room or water temperature. My theory is that at idle, 4 cores of a properly installed CPU, sitting under the same heatsink, should be reporting virtually the same temperature. The temperature differences that most users see are more often related to errors in these sensors and not to how you installed your CPU.

When you're finished testing and calibrating, almost all cores on all CPUs that don't have sticking sensors will be able to report some reasonably accurate core temperatures from idle to TJMax.

To start, you'll need to download and install Prime95 and run the Small FFT test which creates a consistent amount of heat in your CPU. Once your CPU has reached close to its maximum operating temperature, the 10 minute Cool Down Test will automatically and gradually reduce the CPU load to 10 fixed levels. Properly functioning sensors should show a unique Distance to TJMax value at each step during this test. If a core sensor reports the same value at more then one step during this test, then that is a very good sign that sensor has become stuck. This test will also help you see the different temperature slopes each of your sensors is using as well as if TJMax might be different from one core to the next.

The window at the bottom of the screen will guide you through each step of this test. If you're not sure how to interpret your results, post a screen shot at either the TechPowerUp or XtremeSystems RealTemp forum and I will try to figure out what your sensors are telling you. You can also e-mail a screen shot of your results to me. Include as many details as possible including your room temperature.

After running a number of CPU Cool Down Tests it becomes very obvious why Intel has never recommended using these sensors to report accurate core temperatures. Without a thorough calibration check, the data coming from these sensors can be meaningless. The data coming from the 45nm Core 2 Quad processors is even more random looking than my example above but with some work, they too can provide some reasonably accurate core temperatures.

Calibration

The only way you are going to get some reasonably accurate reported temperatues is if you take the time to check and adjust your calibration. On the XtremeSystems forum, rge did some extensive testing with both an IR thermometer as well as mounting a calibrated thermocouple into the IHS lid over top of his processor. The calibration procedure involves running your CPU at a fixed MHz and at a reduced core voltage. This helps equalize the heat ouput of a wide range of CPUs so the difference in reported temperature between a Q6600 G0, an E8400 C0 and an E2160 with 1MB of cache should only be +/- 1C at these settings with the E8400 representing the mid point.

You need to set your CPU to default MHz for this test. The front side bus should be set to 266 MHz for 65 nm processors and to 333 MHz for the newer 45 nm processors. Core voltage needs to be set to 1.10 volts as reported by CPU-Z. The CPU multiplier needs to be set to 6.0 at idle or 12.0 for Core i7. You can either enter these values manually into your bios or you can also enable EIST, Enhanced Intel Speed Step, which is designed to drop your CPU close to these values automatically at idle. Not all motherboards properly support EIST so it's best to check using CPU-Z to confirm these values.

Open your computer case and compare your reported idle temperatures to your room temperature near your case or to your water temperature if you are water cooled. Based on the type of CPU cooling you are using, Core 2 based CPUs should be seeing reported temperatures similar to what rge saw during his testing.

COOLING IDLE DEGREES ABOVE AMBIENT
High end water 6°C
High end air (true push/pull) 6-7°C
High end air (1 fan) 7°C
Mid air (Zalman 9500) 8-9°C depending on fan RPM
Intel stock cooler 10-11°C

If your reported temperature is too low then you will need to go into the RealTemp Settings window and use a positive calibration factor to increase your reported temperature. If your CPU is reading too high, you will need to use a negative calibration factor. On a multi-core processor during this test, you should have equal temperatures for all of your cores. Though this calibration test is done when your processor is idle, the calibration settings entered will improve the accuracy of your reported tempertures from idle to TJMax. Return your computer to your normal MHz and core voltage settings and if you need to, you can make some further minor adjustments to equalize your core temperatures at idle. You shouldn't need to make any major adjustments at this point.

Based on Intel's specs and during initial testing, the Core i7 CPUs seem to be more efficient and create less heat at idle compared to previous Core 2 Quad processors. Your results will likely be a couple of degrees less than the numbers listed in this chart depending on how your bios and Windows power management options are set.

RealTemp.ini File

The settings for RealTemp are stored in this file but starting with version 2.60, there is no longer any need for most users to edit this file. Most values stored in here can be edited from within the Settings window. There are only three values in the INI file that should be edited:

DegreeSymbolString

If you would like to see a space between your temperature and the degree symbol then you could use this:

DegreeSymbolString=" ºC"

By default, Real Temp saves temperature data to the memory and only saves it to the hard drive once every 60 seconds. To control how often RealTemp writes to the hard drive you can use:

HDWrite=

If you set HDWrite=1 then you will never have to worry about lost temperature data during a system crash. Your temperature log data will be written directly to your hard drive as soon as it becomes available based on the log frequency set in the Real Temp Settings window. I prefer when log data is cached to memory which reduces hard drive accesses and fragmentation.

NoGPU=

Set NoGPU=1 if you own an Nvidia graphics card and you don't want RealTemp to display your GPU temperature data.

Settings Window

Idle Calibration

Any value between -19.9 and 9.9 can be used to improve the accuracy of your reported temperatures. Refer to the Calibration paragraph above to determine what settings are appropriate for your processor. A unique value for each core can be set. The temperature sensors on each CPU are unique so for best results, RealTemp should be calibrated to your CPU.

Set TJMax

Intel does not publicly document TJMax for their desktop processors. They have documented TJ Target for many of their processors but using that number as TJMax may result in reported temperatures that are less accurate. The default TJMax that RealTemp uses is usually a good place to start. Use this feature if you think that TJMax needs to be adjusted. Any value between 70 and 120 is acceptable.

Display Core

Choose what cores you would like to have displayed in the System Tray area. You can also select any Text Color by selecting the Core_ button directly above this check mark.

Font Options

There are presently a choice of 4 different fonts for the System Tray area. The radio button on the far right side is used to select the RTFont which is included in the download. If you are using XP you need to manually install this font by going into the Control Panel and opening the Font directory. It's a simple matter of dragging the RTFont into this directory to install it. In Windows Vista you can right click the mouse on the RTFont and select Install to accomplish the same thing. This font is similar to the digital display on the temperature gun I used. A Bold System Tray font option has also been added for the first 3 fonts.

Core VID

This is the Minimum and Maximum voltage that your processor will request from your motherboard when the Voltage is set to AUTO or Default in the bios. Depending on your motherboard and how it is set up this voltage request may be ignored. Core VID is a suggested voltage and may not be the same as the actual core voltage that your processor receives. Use a program like CPU-Z to report actual core voltage. Core VID is no longer supported with the new Core i7 processors.

Clock Modulation

This can be used to reduce the maximum performance / power consumption and heat output of your CPU. This can be useful when testing or if you have a laptop that is too hot for your lap. This reduces the performance of your CPU so remember to turn it off when it is not needed.

Set Alarms

This allows you to set a high temperature alarm based on your CPU temperature or your GPU temperature if you have an Nvidia GPU. You can also click on Alarm EXE to run a .exe or .bat file whenever a high temperature alarm goes off. Included is a file called RTShutDown.bat which runs the shutdown.exe Windows command which can be used to force your computer to shut down if your CPU core temperature gets too hot. The file will only be run once per overheating episode. You will need to go into the Settings window and push on OK to rearm this alarm.

StartMinimized

Selecting this will force RealTemp to start up in the System Tray area.

To get Real Temp to start up when Windows XP starts up, drag a link to Real Temp into your All Programs -> Startup folder.

When using Vista or Windows 7, I prefer using the Task Scheduler to control the start up of Real Temp.

TaskBar

This option will show temperatures reported in the Task Bar area when minimized.

Always on Top

This forces RealTemp to be displayed above all other windows so it is not hidden.

Tray Info

The default is for core temperatures for all cores to pop up above the left most System Tray Icon. The other cores are labeled with their appropriate names. If you would like to see the temperature data pop up above each core then select this option.

Log File

This enables the Log file feature. The log file is stored in the RealTemp directory and is called RealTempLog.txt. The .CSV option will allow you to save your log file in a comma separated format which is easy to directly import into Excel.

If you are using the logging feature then select how many seconds between each entry you would like. The default is 5 seconds.
Possible values include any factor of 86400.
(1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 25, 30, 40, 45, 50, 60, 80, 90, 100, 120,....., 1800, 3600)

The CPU Load and GPU temperature is now also logged. There are also some new headings at the top of the log file to show you what each value represents.

RivaTuner

If you have RivaTuner installed on your computer then click on this button and tell RealTemp where RivaTuner.exe is located. This will link the two programs together so any calibration or TJMax changes you make in RealTemp will automatically be saved in the RivaTuner Monitoring directory along with the new RealTemp plug-in for RivaTuner. It is called RTCore.dll in RivaTuner. This is a stand alone plug-in which means that RealTemp does not need to be running while RivaTuner is graphing your RealTemp data.

Sensor Test

The recent transition by Intel to 45nm has resulted in some of the DTS sensors showing signs of sticking at low temperatures and not functioning the way users would like them to. If your DTS sensors are sticking then no software in the world is going to be able to tell you accurate core temperatures based on inaccurate data. Different reported temperatures at idle is one possible sign of trouble. "Test Sensors" performs a quick test where it loads up each of your cores and measures the change in the individual DTS data for each core and reports the results.

Temperatures that don't change during this quick test are a sign of a sensor that is getting stuck. One sensor that always changes significantly more than the other sensor is also a sign that the one that moves the smallest amount might be stuck.

This test was able to report that Core0 in my E8400 was getting stuck at a DTS value of 67. It won't go any lower even if I moved to the North Pole. This is outside my normal temperature range so it isn't a problem for me but other users have reported their sensors getting stuck at much higher values. Don't rely on this program or any program to report accurate temperatures on cores that have sensors that are sticking. If this sticking continues to occur at higher values then your load temperatures based on what the DTS is reporting won't be accurate either.

The CPU Cool Down Test takes longer but is much more thorough than this test. It is highly recommended if this initial Sensor Test shows any unusual looking sensor data.

XS Bench

This is just a quick benchmarking program I wrote years ago. It is single threaded so you can use it to quickly create a small amount of heat. It uses a very accurate timer, scales very linearly with CPU speed and is not affected by memory timings, etc. This is a quick and easy way to see how your computer is running. It has been normalized so a typical E8400 will score 1000 points. When overclocked to 4050 MHz you should expect to score approximately 1350 points. The elapsed time is reported to 3 decimal places and repeatability is excellent. Most users find a slight difference depending on whether this test is started by clicking on the button with the mouse or starting the test by using the Enter key on the keyboard. As long as you use the same method each time, your results will be very consistent from one run to the next. The Core i7 will show better results per MHz compared to Core 2 based processors. rge at XtremeSystems is the currect record holder with a High Score of 1932 points.

Always on Top

Select this from within the Settings window to force RealTemp to always be the top most window..

Thermal Status

This feature reads information directly from the processor which tells you whether the processor has reached its maximum safe temperature. Intel refers to this as PROCHOT# or processor hot. If your processor has reached its maximum temperature on any core it will display LOG to indicate that a thermal throttling episode has been logged. If it displays HOT in red then that indicates that a thermal throttling is presently occuring. The LOG will return to OK the next time you reboot your computer.

Mini-Mode

A double left mouse click anywhere on the main RealTemp user interface will change RealTemp to a smaller size and will display only the basic information. Double left click again to exit this feature. Mini-Mode is also draggable so you can position it anywhere on your screen. When in Mini-Mode you can also grab the top or bottom edge of the Window frame now to have a quick look in there.

Anchor Position

A double right mouse click on the main RealTemp user interface will move RealTemp to the default Anchor position which is the top left corner. This can be user adjusted to quickly move RealTemp to any position on the screen that you like. To set a new Anchor position, move RealTemp and then hold down the Shift key on the keyboard and double right click the mouse on the RealTemp user interface. This will create and save a new Anchor position which can be accessed at any time. In Mini-Mode you can set an anchor position where half of the Real Temp window is off of the screen so only the temperature data is visible.

Requirements

An Intel core processor and any modern version of Microsoft Windows 2000, XP, Vista or Windows 7; 32 or 64 bit. In order for this program to access the digital thermal sensor data it needs to be run with Administrator privileges. If you get the error message that the driver could not be installed then this is usually the problem. Right click on the program icon and select from the menu, Run As..., which will let you run this with the appropriate privileges if you have them.

This program will not run in safe mode.

Special thanks for the open source WinRing0 library / driver available from: http://openlibsys.org/

The Xtreme users at XtremeSystems have helped make RealTemp a great little monitoring app for Intel based Core processors. Thanks for your help and support.

Questions and comments can be sent to: Real_Temp@yahoo.ca