6

While reading Dennis's reply, it makes me think about what determine the CPU temperature. Following is my understanding.

The CPU temperature is solely determined by the CPU usage in a unit time.

The CPU usage in a unit time is equal to CPU usage percentage times CPU frequency.

So as the CPU usage percentage or the CPU frequency decreases, the CPU usage in a unit time decreases, and the CPU temperature decreases.

Following is a quote of part of Dennis's reply, which my above understanding does not agree with:

Higher usage means higher temperature. Lower usage means lower temperature.

Underclocking your CPU frequency with cpufreq will only affect the percentage of CPU usage without lowering the temperature.

The percentage is an absolutely meaningless value. With the exact same workload, your percentage might go up or down when under- or overclocking your CPU. But it's still the same workload, so any potential harm (and I'm not sure there is any) caused by usage will be exactly the same.

Likewise, cpulimit limits the CPU usage, thus keeping percentage and temperature low.

Can you tell me which one is correct, Dennis or me? Why?

Thanks!

Tim
  • 17,743

3 Answers3

8

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 NOPs) 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.

Breakthrough
  • 34,847
2

Depends on your processor but limiting the CPU maximum can definitely decrease the amount of heat generated. First keep in mind heat is dictated by Vcore voltage not frequency. So if you can limit your processor to a lower P state it will also limit the vcore voltage. Keep in mind this is only on newer Intel processors (I assume AMD as something similar) so I think this is where the confusion is comming from. I did some tests to prove my theory.

  1. First up I let my I7 3930k @ 4.2Ghz run a pass of linpack and took a screen shot of vcore and temperatures:

enter image description here

As you can see after one pass of linpack my CPU package is at 55C

Now I limited to 75% and ran another pass of linpack: enter image description here

Notice the differences in vcore at 4.2 Ghz vs 2.4 Ghz, 1.280 and .984. In terms of Vcore that is a HUGE difference. Notice how the heat generated reflects this: 55C vs 40C.

So there is some truth to limiting the frequency lowering the heat generated. Although a CPU at 3.8 GHZ wiht 1.28 Vcore and a CPU at 4.2 Ghz with 1.28 Vcore will generate the same amount of heat so this is only relevant for CPU's that undervolt as well as downclock.

Supercereal
  • 8,761
0

What dennis said is Underclocking your CPU frequency with cpufreq will only affect the percentage only. It means the workload is same but the percentage will show low(practically it is high). As the work load is higher the CPU temperature will be higher.

tiki
  • 74