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!

7
  • 5
    "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
    Jun 4, 2012 at 20:04
  • @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
    Jun 4, 2012 at 20:20
  • 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
    Jun 4, 2012 at 20:32
  • @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
    Jun 4, 2012 at 20:42
  • "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
    Jun 4, 2012 at 21:27

3 Answers 3

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.

9
  • Thanks! (1) in P = C x V^2 x f, is f the CPU frequency, or the circuit frequency, or these two are the same? (2) how is P = C x V^2 x f derived? (3) You have explained how f and V affect the CPU power (and temperature), and then I wonder how the CPU usage percentage affect the CPU power and temperature?
    – Tim
    Jun 5, 2012 at 13:10
  • @Tim updated answer to reflect more of the questions you asked. Jun 5, 2012 at 13:14
  • Thanks! Could you also address questions in my comments?
    – Tim
    Jun 5, 2012 at 13:15
  • @Tim (1) Circuit frequency, but in this case, the circuit I'm talking about is the CPU. This doesn't apply for RAM, since RAM isn't a CMOS circuit. (2) CMOS circuits only dissipate power when switching between logic 0 and logic 1 (or vice-versa). The derivation is not trivial, but you can find it in a few papers on the internet. (3) Answered in question. It depends on what the CPU is doing, but in general, a higher CPU usage will cause higher power consumption (and thus, higher temperatures). Jun 5, 2012 at 13:19
  • in (1), is the CPU circuit frequency f also called CPU frequency
    – Tim
    Jun 5, 2012 at 13:27
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.

3
  • Thanks! (1) I wonder whey you said "I limited to 75%", do you mean you scale the CPU frequency to 75% of the original, or you limit CPU usage percentage to 75% for your linpack process? (2) Did you experiment with scaling CPU frequency only, or both scaling CPU frequency and limiting CPU usage percentage of your linpack process? (3) Please see my questions on Physics.SE physics.stackexchange.com/questions/29550/… for my further exploration and doubts. Thanks!
    – Tim
    Jun 5, 2012 at 12:57
  • Both. I limited the scale of it to 75% of the original which in turn kicks in a lower P state and actual limits the max frequency and voltage to 2.4Ghz and .9 Volts. So I have to see another question on another site in order to answer your question properly? THANKS! Jun 5, 2012 at 13:17
  • You don't have to. Because my question here is closing, and I also have explored a little further, I chose Physics.SE to ask my questions. But you are welcome to look at them, if you are willing to.
    – Tim
    Jun 5, 2012 at 13:35
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.

1
  • Thanks! Do you mean the workload is a quantity per a time unit? If not, when the workload can span a longer period of time, even though the workload is higher, the CPU temperature can decrease. Am I right?
    – Tim
    Jun 4, 2012 at 20:44

Not the answer you're looking for? Browse other questions tagged .