2958 Users online, 6.74 mbps
Quick Search
Already a member?
Username:
Password:
Register Here!
New Forum Posts
20:07 by W1zzard
Ati Hd 4850 (6)
20:07 by CAT_101
problem with volts to CPU (6)
20:06 by Triton.se
*GTX 260/280 Unofficial TPU! Thread* (249)
20:03 by p_o_s_pc
TPU's F@H Team (2045)
19:53 by Azazel
Anime Nation (1191)
19:51 by From_Nowhere
4870x2 + another card = no post HELP! (23)



Last Articles


Popular Articles

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 with Pentium 4 or AMD CPUs.

Introduction

If you have used RealTemp before then scroll down to the New Features section at the bottom to find out what's new.

RealTemp is compatible with any version of Windows 2000, XP or Vista, 32 or 64 bit. In Vista, or 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 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 Temperature = TjMax - DTS

The Problem

There are two major problems though with that formula. Problem #1 is that the value of TjMax is not documented by Intel for their desktop processors. They list 100ºC for their 65nm mobile processors and 105ºC for their new 45nm mobile processors but there are no publicly available manuals from Intel that contain this information for desktop processors. Because of this, most programs can only guess at a value for TjMax.

Intel has written a program that many users and programmers depend on for TjMax information. It is Intel TAT which stands for Thermal Analysis Tool. Unfortunately this is a tool that was designed for testing laptop processors and was never originally designed for or been updated by Intel to cover the desktop processors. The temperature information displayed by this tool when used with a desktop processor might be meaningless.

The second problem is that the data being output by the DTS sensors is not linear which Intel has confirmed here.

Each problem is significant by itself but when these two problems are combined, the amount of error in a reported temperature can approach 20ºC at idle. For me, that's unacceptable.That's also the reason why I decided to write Real Temp.

Testing

It would have been easy to quickly create another temperature monitoring program that ignores the above problems but I decided to start with a clean sheet of paper and assume nothing.

By doing some testing with a Fluke 62 IR Thermometer, I have discovered a significant problem with the DTS data that programmers are basing their core temperature results on. The DTS does not output temperature data that changes linearly with the actual core temperature across the entire operating range of the processor. Remember that this sensor is designed and individually calibrated by Intel to reliably trigger thermal throttling and thermal shut down. That's great but I've found that when the DTS moves more than 35°C away from TjMax, the DTS data no longer changes at the exact same rate that the core temperature is changing at.

This problem seems to effect all Core based processors, both 45nm and 65nm whether Single, Dual or Quad core.

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 how wide spread this problem has become.

This issue first came to light when top notch air coolers like the Thermalright Ultra 120 eXtreme were introduced. Some users with the original Conroe core processors were ending up with idle core temperatures being reported that were less than the ambient temperature. The eXtreme is a great cooler but even it can't change the laws of physics. Reported temperatures below ambient when air cooling are impossible to achieve. I also noticed this problem with my original E6400 but didn't realize the magnitude of this error until I recently purchased an E8400 processor.

I headed downstairs to my basement for some comparative testing and found this.

This picture shows both processors operating at approximately 1600 MHz. This test was conducted using a Tuniq Tower heatsink with the fan speed set to maximum and CPU-Z reported the exact same core voltage of 1.08 volts. The only difference was the CPU used. Everything else was the same.

The amount of heat energy output by a core processor when run like this is minimal. With a good air cooler, the idle temperatures should be very similar if not exactly the same but here there is a difference of 25ºC to explain (34ºC vs 9ºC). Core0 has the sticking DTS sensor problem that seems to be common when trying to report low temperatures with the new 45nm Intel chips.

The bottom line is that CoreTemp is not reporting either CPU 100% correctly. My E6400 can't run below the 12ºC ambient temperature and there's no way that a smaller, more efficient processor like the E8400 is running that far above ambient at idle. I did some further testing with the E8400 and quickly found out that CoreTemp assuming that TjMax=105ºC is wrong.

From 60C onwards, it was clear that TjMax is 95ºC for the new E8000 Series desktop processors. That explains 10ºC of the above difference in temperatures but still leaves a 15ºC difference at idle.

The only explanation is that my E6400 is reporting too low at idle and my E8400, even when using the correct TjMax=95ºC, is still reporting idle temperatures that are too high. I was able to measure with the IR thermometer a difference of 5ºC. SpeedFan assumes TjMax=100ºC for the E8400 so I set a -5C offset in SpeedFan to correct for that. When using the correct TjMax, the IR thermometer was showing 35ºC while SpeedFan was reporting 40ºC. Meanwhile, CoreTemp and Everest were both reporting 50ºC.

This post at the XtremeSystems Forum helps explain some of the testing that is behind RealTemp.

Calibration

Using this knowledge and some more measurements, I came up with some simple correction factors to help compensate for errors in the DTS at idle. Using an Idle calibration setting in Real Temp of (-2) for my E8400 and using a setting of (+2) for my E6400 now gives me very accurate temperatures for both processors from 10ºC to 100ºC. Typically within 1ºC or 2ºC of what an IR thermometer shows near idle when pointed at the bare core and exactly equal higher up. The formulas were designed to bring the above two processors a lot more in line with each other which they should be, given the identical core voltage. Power or heat generation is proportional to the square of voltage so that is the most important factor to equalize when making comparisons like this.

If you want accurate idle temperatures then you need to calibrate Real Temp to your processor. Avoid changing the default TjMax that RealTemp uses.

The first thing to determine is if your processor reads too high or too low at idle. My method involves reducing the heat output of your processor to a minimum. You do this by lowering the clock frequency (MHz) your processor runs at as well as the core voltage. It's also important to run your CPU fan at its maximum speed. I like to go into the BIOS and set the front side bus speed to 266 MHz and then I set the multiplier to 6.0 which results in an overall speed of approximately 1600 MHz. I also lower the core voltage as low as it will go. My ASUS motherboard goes as low as 1.08 volts which is fine for this test. You can also accomplish the same thing by enabling SpeedStep and C1E in the bios. Start up your computer and use a program like CPU-Z to verify that it is running at approximately 1600 MHz and 1.10 volts when sitting idle at the Desktop.

By reducing your processor's heat output down to a common fixed value, I've found that a well air cooled Dual Core processor will idle at approximately 4ºC to 5ºC above room temperature when the computer case is open. Quad Core processors will idle at 6ºC to 7ºC higher than your room temperature. If your reported temperatures during this test are less than your room temperature then you need to open up the RealTemp Settings window and enter a positive Idle Calibration factor to boost them up into a more believable range. If your CPU is like my E8400 and you notice reported temperatures that are higher than 5ºC above your room temperature at idle, then you'll need to use a negative Idle Calibration factor to bring your temperatures down. In a Dual or Quad Core processor, the temperatures reported during this test should be equal across all of the individual cores.

That's all there is to it. As long as TjMax is chosen correctly and you do a simple calibration, your reported core temperatures will be very accurate and comparable to other users who are using the same software and have also individually calibrated their processor. This is not an exact science. It's just a way to compensate for a DTS sensor that was never designed or calibrated by Intel to report accurate idle temperatures.

Though this test is done when your processor is idle, the calibration settings entered will improve the accuracy of your reported tempertures up to approximately 60C. At this point and higher, most digital thermal sensors are very accurate and no further correction is necessary.

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. All values stored in here can be edited from within the new Settings window. There are only two values in the INI file that should be edited:

DegreeSymbolString

Some languages (Chinese) do not properly display the degree symbol. This item in the INI file will let you change the default symbol and formatting that RealTemp uses. Within the quotation marks, hold the ALT key and enter 167 or 176 or 0167 or 0176 to get the proper small raised circle. You can also use this to create a space between the temperature number and the degree symbol.

When you save this file using NotePad, set the Encoding: to Unicode. Save as All Files and save the file as RealTemp.ini

DegreeSymbolString="ºC"

DegreeSymbolString=" ºC"

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

HDWrite=

This value is set to 300 seconds by default. Before version 2.70, RealTemp would only write to your hard drive once per hour (3600 seconds) or when you exited the program. 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.

Settings Window

Idle Calibration

Any value between -3.0 and 3.0 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.

Set TjMax

Intel does not publicly document TjMax for their desktop processors so this feature is designed for users that would like to set TjMax to a value that they believe is true. During testing, I have not seen a need for this feature but I have included it for power users so they can set TjMax to a value that they have hopefully measured, if they believe that RealTemp is wrong. 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 beneath 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.

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. The real time VID is displayed on the main RealTemp screen at the upper right and can change depending on whether SpeedStep/C1E are enabled and on the load your processor is at.

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.

If you are using Vista, use 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.

System 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

This enables the Log file feature. The log file is stored in the RealTemp directory and is called RealTempLog.txt.

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 3600.
(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)

Test Sensors

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.

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.

Always on Top

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

PROCHOT#: Status / History

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 have a check mark in the left box to indicate its status. The box on the right indicates a History or record of thermal throttling since your computer was last started up. This History log can only be cleared by re-booting.

New Features (2.70)

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.

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.

Alarm

This sets a high temperature alarm. Any temperature value from 0 to 125 can be used. The alarm will sound every 6 seconds and will also flash the RealTemp window as well as flash the appropriate System Tray icon. Quad core processors consist of two Dual Core processors that typically run at slightly different temperatures at full load so RealTemp allows the setting of individual alarms for each Dual Core within a Quad. If you would like a different alarm sound then replace the RTWarning.wav sound file with the .wav sound file of your choice. Just rename your sound file to RTWarning.wav and as long as the warning sound is 5 seconds or less in duration, it should work OK.

APIC ID

This is only displayed in the main MHz window for Quad core processors. This information is used to organize the core temperature data so it's being displayed from the proper physical core. Most other software ignores APIC ID information and may display core temperature information coming from the wrong core so core2 data may be coming from core1 and core1 data may be coming from core2. APIC ID can change at each re-boot but most of the time it is consistent for months at a time. RealTemp uses this information so the temperature data it reports for core1 should always be coming from core1. Finally some consistent temperature data for Quad core processors!

Requirements

An Intel core processor and any modern version of Microsoft Windows 2000, XP or Vista, 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/

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