The CPU temperature is solely determined by the CPU usage in a unit
time. [...] So as the CPU usage percentage or the CPU
frequency decreases, the CPU usage in a unit time decreases, and the
CPU temperature decreases.
Power draw (i.e. heat generated) is not solely determined by CPU utilization, although this but also depends on what instructions the CPU is performing. In a digital, synchronous CMOS circuit (such as your processor), the power consumption can be computed as:
P = C x V^2 x f
Where C
is the capacitance of the digital circuit (changes based on what instructions are being executed), V
is the voltage of the CPU, and f
is the clock frequency. Some instructions draw more power than others, so we will assume it's fixed here (i.e. running the same programs that do some appreciable work other than idling). As a side effect of this, CPU temperature will decrease at idle (just NOP
s) even at the same clock frequency.
Note, however, that the power consumed by the CPU is still directly related to the frequency and voltage. Halving the frequency will drop the power consumption to 50%, while halving the voltage will drop power consumption to 25% of it's original value. This has a huge effect on heat generation, even if we want to perform the same amount of work (recall that power is work per unit time; see below).
Higher usage means higher temperature. Lower usage means lower temperature.
Yes, this is true. When your computer is idle, it's often doing "nothing" (i.e. NOP
instructions, in a low power state, or simply not doing power intensive instructions). When it's doing something, like rendering graphics, it uses a lot more components in the CPU (like the ALU, FPU, MIU), generating more heat.
Underclocking your CPU frequency with cpufreq will only affect the percentage of CPU usage without lowering the temperature.
No, this is false. See the equation above. Underclocking will cause programs to execute in a longer timespan, but the power consumed by the circuit will decrease. CMOS power consumption is directly related to the number of logic switches per unit time.
This is very intuitive given the definition of power, which is simply work per unit time, or the rate at which we perform work/computations. If we run the same program through to completion at a given frequency f
, and then compare running it at frequency f/2
, in the latter case, although we've taken twice as long to execute the program, we've done the same amount of work - and thus, the power consumed by the CPU during this time will be half.
The CPU will therefore operate at a lower temperature, even though it takes longer to perform the same amount of work, as it now has more time to dissipate the heat in the CPU. Underclocking also allows operating the CPU at a lower voltage (undervolting), further decreasing the power consumption with no effect on work.
4"The CPU temperature is solely determined by the CPU usage" - This is incorrect. Temperature is determined by heat retained. Retained heat is the difference of heat generated minus heat removed or dissipated. – sawdust – 2012-06-04T20:04:58.830
@sawdust: (1) So you mean cpu temperature depends on CPU usage per unit time, but not solely? What I meant is that when all the hardware condition is fixed, the CPU temperature could only depends on the CPU usage per unit time. Is it correct now? (2) What about the rest of my post? – Tim – 2012-06-04T20:20:37.230
1(1) Please reread my original comment. I don't know how to simplify that furthur. (2) Your premise is flawed, and you're over simplifying and focused solely on heat "generation". "CPU usage" is too broad a measure, since some CPU operations will use more power than others (e.g. floating point division versus move register). – sawdust – 2012-06-04T20:32:57.677
@sawdust: (1) What I meant by "hardware condition fixed" is that it makes the ability of dissipating heat fixed. So I think we can focus on generation of heat only, which depends probably only on the usage of CPU per unit time. (2) What I meant by CPU usage is the CPU cycles that have been used, i.e not idle. Do those CPU operations use more power, because they spend more CPU cycles? – Tim – 2012-06-04T20:42:49.620
"Do those CPU operations use more power, because they spend more CPU cycles?" - RISC: no, because all instructions complete in one cycle. CISC: sometimes. Some instructions simply use more circuitry, e.g. the ALU (arithmatic/logic unit) or FPU, hence more power consumed. That's why an "idle" CPU uses so little power compared to when "calculating". The CPU is always executing instructions; an "idle" CPU does not mean "sleeping", it means "not doing any useful work and waiting for something to do". An "idle loop" could be coded to consume a lot of power. – sawdust – 2012-06-04T21:27:41.433
Put it this way, the higher the frequency the greater the need for cooling! That's why we have people trying to overclock with liquid nitrogen!! – Matt H – 2012-06-04T22:55:29.097
@sawdust you're correct about the power, but most CISC and RISC architectures have both single-cycle and multi-cycle instructions (including x86 and ARM). – Breakthrough – 2012-06-05T13:00:57.623