How is CPU temperature related to clock frequency and processor utilization?

5

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

Posted 2012-06-04T19:11:26.067

Reputation: 12 647

Question was closed 2012-06-05T15:05:07.143

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

Answers

6

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

Posted 2012-06-04T19:11:26.067

Reputation: 32 927

This really is a great answer! – julumme – 2015-08-04T23:15:57.073

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 – 2012-06-05T13:10:00.937

@Tim updated answer to reflect more of the questions you asked. – Breakthrough – 2012-06-05T13:14:06.547

Thanks! Could you also address questions in my comments? – Tim – 2012-06-05T13:15:29.963

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

– Breakthrough – 2012-06-05T13:19:44.263

in (1), is the CPU circuit frequency f also called CPU frequency – Tim – 2012-06-05T13:27:37.637

Yes, it's literally the clock signal driving the synchronous logic in the CPU (after all the clock multipliers, etc...). – Breakthrough – 2012-06-05T13:29:49.320

Thanks! When the CPU usage percentage decreases, which will decreases, frequency, voltage, or capacitance, so that $P$ also decreases? – Tim – 2012-06-05T14:09:14.433

@Tim on all processors, it will be capacitance (as less of the circuit is being used, changing the electrical characteristics). However, newer processors will decrease both the frequency and voltage when the CPU is at idle, further reducing power consumption.

– Breakthrough – 2012-06-05T14:11:46.227

1

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

Posted 2012-06-04T19:11:26.067

Reputation: 8 643

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 http://physics.stackexchange.com/questions/29550/how-are-the-cpu-power-and-temperature-caculated-estimated for my further exploration and doubts. Thanks!

– Tim – 2012-06-05T12:57:24.120

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! – Supercereal – 2012-06-05T13:17:32.300

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 – 2012-06-05T13:35:03.043

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

Posted 2012-06-04T19:11:26.067

Reputation: 66

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 – 2012-06-04T20:44:46.233