0

It deeply intrigues me how software can check the actual temperature of my laptop/PC core.

Can anyone explain this process to me?

Zaenille
  • 217

2 Answers2

2

There's a series of sensors inside your system that detect temperatures and such.

Those are tied into various internal chipsets - typically a super IO chip which handles that along with other functions, and that's exposed to your system through various APIs.

As for the sensors themselves - they're integrated into chips - your CPU has one based on a temperature sensitive diode.

Your OS probably talks to them over some internal API - on linux, this would be sensorsd and its front end lm_sensors along with an appropriate driver.

On my NUC class machine and fedora, I use the following drivers

Driver `it87':
  * ISA bus, address 0xa40
    Chip `ITE IT8771E Super IO Sensors' (confidence: 9)

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

and that tells me (for example)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +68.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:       +67.0°C  (high = +105.0°C, crit = +105.0°C)
u1686_grawity
  • 452,512
Journeyman Geek
  • 129,178
  • On Linux, it's more likely to be just reading from /sys directly, without userspace daemons.... also, your terminal seems to be having Unicode problems. – u1686_grawity Nov 10 '14 at 07:29
  • Yeah, logged in over putty, there's some wierdness going on, but I figured It would be illustrative of what you see. There's a whole load of wierdness with my sensors readouts at the moment, including a whole load of alarms ;p – Journeyman Geek Nov 10 '14 at 07:34
0

Pretty much what it sounds like. There's a thermocouple in the CPU package, and it reports values back to the computer. The location of the sensor depends on the CPU. Most Intel CPUs have a thermocouple in each core. Some motherboards may have a thermocouple in the CPU socket, so you can get an "internal" and "external" temperature.

nhinkle
  • 37,390