Actually, all generations of the Intel Core processors implement a full set of thermal protection settings and thresholds...
- The first threshold supported is Tcontrol, the processor's Control Temperature. This is provided in the IA32 Temperature Target Model-Specific Register (MSR, 0x01A2). It is specified as an offset relative to (below) the Tjmax temperature (see #2 below). It is specific to the processor's Package Temperature, which is provided to external fan speed control hardware (Super I/O ASICs, standalone Fan Speed Control ASICs, etc.) via the Platform Environmental Control Interface (PECI) bus. It specifies the temperature above which, as a rule and in the absence of data defining the processor's temperature relative to its Thermal Load Line (hint: data that is rarely available), the fan speed controller should have the processor's fan running at 100% duty cycle (i.e. full speed). Important Note: In some processors -- those that fall into the Mobile and Embedded categories -- a Tcontrol offset is not provided (i.e. the MSR field contains value 0 (zero)). How a system's fan speed control subsystem reacts to this is TBD. In my implementations, I never let Tcontrol equal Tjmax. Instead, I always determined (through thorough testing in a thermal chamber) a reasonable replacement Tcontrol value to use. In the 4th generation NUC products (the last generation released before I retired), a value of 17 (i.e. Tjmax - 17) was used.
- The second threshold supported is Tjmax, the processor's Maximum Junction Temperature. Temperature values (readings and thresholds) are all specified relative to Tjmax. This includes those that are provided externally (via the PECI bus) for fan speed control decision-making and those that are provided internally via the processor's Core-specific IA32 Temperature Status MSRs (0x019C), which return the readings from a particular Core's Digital Thermal Sensor (DTS)), and the IA32 Package Thermal Status MSR (0x01B1), which returns a reading for the whole processor package. The Tjmax temperature can vary from one individual processor to another. The processor's Tjmax temperature is provided in the IA32 Temperature Target MSR. If the processor's Package Temperature is at or above its Tjmax threshold, two things will be happening. First, the PROCHOT signal will be asserted (we'll discuss this in a moment). Second, the processor's Thermal Control Circuit (TCC) will throttle processor performance to protect the processor from thermal overrun. Important Note: since the DTS are providing relative readings, temperatures above Tjmax cannot be represented. That is, if the actual temperature is, say 5 degrees above Tjmax, the DTS will still return the Tjmax value.
- PROCHOT is a signal that is used to tell external entities -- fan speed controllers, voltage regulators, etc. -- that the processor's temperature is at or above its Tjmax setting. They are supposed to respond by doing things like take all fans to 100%, lower voltages provided to the processor, etc. At the same time, PROCHOT can be signalled by these entities. When PROCHOT is asserted by an external entity, the processor reacts the same way is does when its package temperature rises to or above its Tjmax value. That is, its TCC will throttle processor performance to help protect the system from thermal overrun.
- The third threshold is THERMTRIP. This threshold defines the temperature at which the processor will power itself off to protect itself from thermal overrun. As I mentioned earlier, the processor's DTS cannot provide readings above Tjmax. It can still measure temperatures above Tjmax, however, and implement the threshold for THERMTRIP assertion. Unfortunately, Intel has chosen to not make the THERMTRIP threshold value available to hardware or users. All you know is that, if temperatures continue to rise above the Tjmax threshold (i.e. throttling and fan control overrides have not stopped the temperature rise), at some point specific to the individual processor, THERMTRIP will be asserted and the system powered off.
I hope this hasn't confused you more. It is a lot to take in. You asked for it -- and you received it...
P.S. To anyone implementing code to access these MSRs, take note:
- RDMSR instruction is privileged -- which means you need to implement a device driver to execute this instruction in Windows or Linux (such a driver may be available, however).
- These MSRs are not available in all processors:
- The IA32 Temperature Target MSR is not supported in many Atom processors (a static Tjmax value is usually documented, however).
- Whether the IA32 Package Thermal Status MSR is available can be determined by reading the DTS Capabilities information using the CPUID instruction. That is, execute the CPUID instruction with EAX set to (function) 6. The DTS Capabilities information is returned in EAX; bit 6 indicates whether the MSR is available. Note also that function 6 is not available in older processors, so you should check for its availability (see CPUID instruction documentation for more information). If it is not available, the IA32 Package Thermal Status MSR will similarly not be available.
Thank you for your reply
It's ok for your informations, nice descriptions, but it's not realy reply to my expectation, maybe because i did not explain it correctly...
I'm ok with the point 1, same with the point 2, again with the number 3 and 4. So what's my problem?
Well, in introduction you said "all generations of the Intel Core processors implement a full set of thermal protection settings and thresholds...", then to me it's seem there points (1, 2, 3 and 4) are supported by the Core i5 2400 processors.
Maybe my description was not clear, but in the documentation about Core i5 2400 i can not find Tjmax, only Tcase. In the Core i9 yes there is Tjmax informations.
So to my opinion Core i9 has a specific implementation to protec the processor itself but not the Core i5.
Maybe it's only a mistake in the Core i5 documentation/specification?
Here there is only Tcase (Core i5)
Here there is Tjmax (Core i9)
What information is or is not provided on ark.intel.com can be pretty inconsistent. You really need to be consulting the processor/processor family datasheets.
You are right Scott,
I did not find it in the "2nd Generation Intel Core Processor Family Desktop" datasheet...
There is something about the temperature in the registry but it's only about the memory module and nothing about the processor itself:
But there is everything in this one:
"Intel® Core™ Processor Family/Pentium® Processor Design Guide"
"The goal of this document is to provide thermal and mechanical specifications for 2nd gen desktop Intel® Core™ processor family and Pentium® processor in the LGA1155 socket. The usual design guidance is also included."
Thank you again
Yea, the information is not presented very cleanly - or in one place - in the documentation for the earlier processor generations. You might also want to look at some of the presentations from the Intel Developer Forum (IDF). Over the years, there were a number of presentations about thermal handling, these thresholds and concepts like thermal load line.