Hardware Monitor Pro shows the current temperatures for each of the four processor cores. How are these temperatures measured, since my Gigabyte GA-Z68XP-UD4 rev. 1.0 reportedly measures only three temperatures: SYS_TEMP (pin 121 of IT8728F), CPU_TEMP (pin 120 of IT8728F) and PWM_TEMP (pin 119 of IT8728F)? How do monitoring programs receive information about core temperatures?
Each processor core has a Digital Thermal Sensor (DTS), located at the Core's hottest spot. Each DTS reports the temperature offset of the Core in degrees Celsius. That is, how far below the processor's Maximum Junction Temperature (Tjmax) the temperature is at the Core's hotspot. Since the Tjmax for a processor can also be read via a MSR, any entity reading these two can combine them to get an absolute reading. A particular Core's DTS reading can be read, via a particular MSR, by code specifically running on this Core. There are techniques for a task to move its execution from one Core to another, in order to read all of the Core DTS available. Now, the processor also has a circuit that combines the readings from these DTS (and other DTS elsewhere in the processor) and generate one temperature, called the Package Temperature, for the entire processor. This temperature can also be read via a MSR, but, more importantly, it can be read across the Platform Environmental Control Interface (PECI bus) by an external entity.
The SIO device -- or any other standalone environmental monitoring or fan speed control device present in the system -- has access to the PECI bus and can use it to read both the processor's Package Temperature and the chipset's (PCH component's) temperature readings. In combination with the (up to) three analog inputs (which will have thermistors or thermal diodes connected to them), the device will have (up to) five temperature inputs that it can monitor and use for fan speed control decision-making.
NOTE: Atom processors, as well as derivative Pentium and Celeron processors, do not support the PECI bus and thus external environmental monitoring and fan speed control devices cannot use it to obtain processor Package Temperature or PCH temperature readings. In this case, they will have to rely on their (up to) three analog inputs for all decision-making.
Hope this helps,
Thank you for your clarification. 🙂
I have a few questions for it:
1) What is MSR?
2) What does "SIO device" mean?
In the schematic of my motherboard on page 4 on the LGA1155 processor connector I found the output called PECI on the J35 pin. On page 20 in the IT8728F circuit I found the PECI input on pin 86.
It will probably be a PECI bus, what did you write about?
The IT8728F circuit on pins 119, 120 and 121 also measures three analog temperatures from thermistors.
MSR - Model-Specific Register. These are mostly documented in the Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 4.
SIO - Super I/O device. A SIO provides a some specific set of legacy interfaces and low-bandwidth I/O devices. The IT8728F used on your motherboard is a SIO that provides support for Environmental (Temperature, Voltage and Fan Speed) Monitoring, Fan Speed Control, Consumer I/R, 2x Serial Ports, Parallel Port, Floppy Disk Controller, PS/2 Keyboard Controller, Watchdog Timer and General-Purpose I/O (GPIO) pins.
Correct; the PECI bus can be used by the SIO (your IT8728F) to obtain processor package temperature as well as Chipset (Platform Controller Hub (PCH) component) temperature. In combination with the three analog sensor inputs (thermistors placed in appropriate locations on the motherboard), this gives the fan speed controller five temperature inputs upon which to base its fan speed control decision-making.
Hope this helps,
Thank you. 🙂
On scheme GA-Z68XP-UD4 rev 1.0 on pages 20 and 35 I found that this motherboard controls 3 analog temperatures: SYS_TEMP (input TMPIN1 pin 121 of IT8728F), CPU_TEMP (input TMPIN2 pin 120 of IT8728F) and PWM_TEMP (input TMPIN3 pin 119 of IT8728F). You can guess that CPU_TEMP is the processor temperature, but what exactly do the SYS_TEMP and PWM_TEMP signals measure? Where are the temperature sensors located? I haven't found the answer in the whole documentation.
Support from the motherboard manufacturer wrote back to me that my motherboard measures only two temperatures: "System Temperature" which means that it is the temperature inside the case and "CPU Temperature", which is the temperature of the processor. It seems that this is not true, because the diagram of my motherboard shows exactly three analog temperature sensors.
My BIOS only shows two temperatures: "System Temperature" and "CPU Temperature":
CPUID Hardware Monitor Pro shows three temperature values: TMPIN0, TMPIN1 and TMPIN2.
Comparing these values to the temperature values in the BIOS, it can be concluded that probably TMPIN0 is "System Temperature" and TMPIN2 is "CPU Temperature".
Could you help decipher these analog temperatures, please?
I would like to name them in my CPUID Hardware Monitor Pro program, as I named four fan speed sensors earlier.
It is certainly possible that Gigabyte chose to ignore the ability to use PECI for CPU and PCH temperatures, but if I were you, I would be pretty disappointed with Gigabyte if they did. Without the CPU Package Temperature readings, the only temperature readings that Gigabyte could base processor fan speed control on would be a from a thermistor placed near the CPU, which would be horribly inaccurate. It is possible, however, that they remapped the PECI CPU temperature readings over top of the TMPIN2 sensor readings, so that the TMPIN0-TMPIN2 sensors could be universally exposed by applications like HWMonitor. If this is the case, I personally think that this is a whimpy implementation and a total waste of capability - but that's just me; I want every input that I can get.
As for what they are measuring, it depends upon where they located the thermistors on the board. There is no way to tell from the information that you have provided; the schematics don't say where they are located. Insofar as the two versus three sensors question is concerned, it is possible that one of the thermistors is simply not stuffed on the board and they ignore the input.
Yes, I agree that the location of the three analog temperature sensors is not given in the schematic of the motherboard. But are you able to guess what these sensors measure after their names SYS_TEMP (TMPIN1 in IT8728F), and PWM_TEMP (TMPIN3 in IT8728F) based on your many years of professional experience with computer electronics?
Hah! I stopped playing that game a long time ago. Faint praise will get you nowhere. As the vaudeville performers used to say, "Don't clap, just throw money!" 😇
If *I* was making the decisions, and knowing that I had processor and chipset (PCH) temperatures separately via PECI, I would want to position the analog sensors so that I had an idea of (a) ambient air temperature, (b) memory temperature and maybe (c) VR temperatures.
- I want ambient air temperature to help determine the duty cycle for the chassis fans. Lower ambient air temperature means internal fans (CPU, GPU) don't have to work as hard (as loudly) to cool their target. There is no perfect place for this sensor, unfortunately, as chassis designs can vary significantly. The most common is to try and measure inlet air temperature near the front of chassis so that the recirculation of hot air behind chassis (because of typical wall there) does not skew results. I thus place this thermistor in the top right corner of the board (i.e. the corner that is closest to the SIO itself in this board design).
- I want the temperature of the memory to determine whether there is good airflow. Since almost all of the memory vendors are punting on the inclusion of a TSOD (Thermal Sensor On DIMM) device (since basic SPD device is cheaper), I need to approximate the temperature of the memory with a sensor placed between the DIMM sockets.
- Many of the SIO devices have an Embedded microController (EC) that can do more-sophisticated things. Some have support for going out onto the system's SMBus and extracting temperature(s) from the VRM. If you do not have this capability in the SIO or the VRM, you can always place a thermistor near the hotspot for the VR components. That's where I would place the third thermistor.
That said, I have no idea what "PWM_TEMP" would be referring to.