# CPU clock speed vs real speed?

If a CPU clock speed is 1 GHz, which basically triggers a clock signal every 1 ns, but I wonder what's the 'real' travelling time of a signal in a full ALU/register/cache/memory computation cycle?

As far as I know electronic signal travels roughly at light speed `3x10^8` m/s, so it travels 0.3 m in 1 ns. Given the size of a typical CPU, is it the reason why CPU clock is not increasing much along with computing power?

• "Clock speed" is a misnomer. It's clock rate or frequency. It makes no sense to relate frequency to distance per time. Commented Oct 21, 2020 at 1:49

The traveling time is just one tiny factor in determining the maximum clock speed of a CPU. Other factors include:

1. How much power can be delivered to the CPU? CMOS circuits have an increasing power requirement as their clock frequency goes up because it takes a certain amount of power to flip a circuit on or off and the higher the clock frequency, the more often you are doing that.

2. How much heat can the CPU dissipate? See 1 for why heat increases with frequency.

3. How long does it take to switch a signal from definite 0 to a definite 1? The signal can't start propagating until the source is able to produce it.

4. How long is the path and how many switches do we want to be able to accommodate in a single clock cycle. You can get the clock very high by having only a single switch and a short path, but that makes the circuit design very complicated and large. You may want to allow three or four circuits to process data between the start and end of a single clock operation, and that means more time for transitions and propagation is needed between clock cycles.

5. How long does it take the received signal to stabilize and to be reliably detected or latched by the next input? You can make this faster by tying inputs to each output, but that also makes the design complex. Say one output feeds ten inputs. Do you connect all ten inputs to the output? But then it will take a long time to drive all those inputs. Or do you fan it out through a gate? But then your propagation distance is longer and you need to wait for that gate to switch before the output even starts getting delivered to the next inputs.

# Tl;DR

As of late, the highest practically achievable clock speed with well-binned (cherry-picked for best performance) parts is ~5 GHz. This is due to the fact that increasing the clock speed of the CPU results in a dramatic rise in heat production, making the task of cooling such a part impractical and costly.

# More details

This article from maketecheasier does a good job of summarizing the factors at play without going too deep into the weeds. (emphasis mine)

Cramming billions of transistors on a chip and turning them on and off thousands of times per second creates a ton of heat. ... That heat has to go somewhere, and proper cooling solutions and chip designs are required to maintain reasonable clock speeds. The more transistors are added, the more robust the cooling system must be to accommodate the increased heat.

Increase in clock speeds also implies a voltage increase, which leads to a cubic increase in power consumption for the chip. ... Running those transistors and increasing clock speeds requires more voltage, leading to dramatically greater power consumption. So as we try to increase clock speed, we find that heat and power consumption increase dramatically. In the end, power requirements and heat production outpace clock speed increases.