Does a CPU clock frequency vary on-demand?

On my machine (not a personal computer), I have 4 cores (2.4GHz) and I currently don't have any important process running. Right now, are all of my 4 cores running/vibrating at 2.4GHz or are some of them running slower or even are immobile?


Solution 1:

Yes

Your processor has a base clock or Front Side Bus speed, my i7 is ~100MHz, there is then a multiplier that can change based on the demand of the processor - this 2.6GHz processor can have a clock multiplier that goes up to 36 to give me a maximum clock speed of ~3.6GHz.

Because most of the time your machine is sitting idle, that multiplier will sit around 8x, meaning my machine is only running at 800MHz, it could change multiple times per second.

I dont know what processor you have, so I can not tell you what yours is doing, but most modern processors do this, including your cellphone, it is called speed stepping and is what your system does to save energy.

You can check out CPU-Z by CPUID to view the details of your system (windows).

Or if you are running linux on a system that has a /proc system, you can run cat /proc/cpuinfo to view the details about your processor. In this printout, and on the CPU page of CPU-Z you an view the max speed, the current speed, the multiplier, and the maximum multiplier.

Note that this multiplier applies to every one of your cores, so if your system were to have say 8 cores - all of them would all be running at the same frequency.

Here is my system sitting idle, notice it is running at about 800MHz with a multiplier of 8, the minimum for this processor.

min load

Here is my system under moderate load, running at 3.4GHz with a multiplier of 34. (note the core voltage also increases)

moderate load

The bus speed of 100 MHz will be generated by a PLL on board the motherboard - this is the master clock that is sent to each other logic component on the motherboard, i.e. pci, ram, usb controller, etc... This is the signal that is passed to the physical CPU through the socket.

The core speed, ~3.4GHz, is generated by a second PLL on the CPU itself, using the FSB as its source.

Overclocking

When people overclock their machines, this is usually just upping the FSB speed - which just makes everything run faster; the problem with everything running faster, is that it sucks more power - usually requiring a slight overvolting as well.

Where people start to experience issues is that when running at full power, firstly, the silicon gets extremely hot, and second, the high-er then rated voltages start saturating nearby transistors, mere microns apart on the silicon - potentially damaging the silicon itself, and interfering with other parts of the cpu.

HLT

After answering this question, I myself asked if there were any additional power saving techniques, to which the answer was the HLT instruction;

After the CPU has finished processing its workload, it will execute a halt, essentially disabling the core until the next interrupt is fired. In this state, the clock is still running at FSBxMlt., but the CPU core is doing no work, and is essentially drawing no power.

You can see the HTL instruction process in Windows Task Manager, it's name is System Idle Process; all unused CPU time will be spent executing HLT.system idle process