Mostly heat generation and lack of dissipation.
Faster things produce substantially more heat than slower things, and with as dense as we pack that stuff in, there’s only so much heat we can get rid of so quickly.
Eventually it’ll just melt. Or at least it will cease to perform as a computer needs to perform.
edit:: Making the CPU larger serves to increase the length between each transistor. This introduces a time delay that reduces overall clock speeds. CPU’s are packed as densely as they are because that’s what gives us these insanely fast clock speeds that we’ve become accustomed to.
The physics get weird quickly. There is a difference, for example, between the impedance of a trace with square corners, and one with rounded corners. I’m not offering that as a reason why we can’t go faster, just as an example of one of the many little things that suddenly become big things as you go faster.
The speed is limited in part by capacitance, which you have to charge up for an amount of time to get to a desired voltage. Making the parts smaller also makes the capacitance go down, so they can run faster. Of course, insulation barriers can’t handle as much voltage, so working voltages go down. At some point, you can’t work with barriers that are thinner or voltages that are lower. That is a big reason that multiple cores are so popular now, one core at 5GHz can’t do as much work as two cores at 3MHz if you can partition the work effectively.
We’re reaching a point where we can’t really make components even smaller. And that’s really the only way to make thigns faster: cram more transistors into the same space.
We measure transistors in nanometers at this point. The smaller they get, the more electricity they need and the hotter they get.
If we get too small electricity just stops behaving in ways that are actually helpful. So we’re kinda hitting a limit there. Not quite yet, but soon. Which means another reason the technology isn’t advancing so much anymore is that people are aware of the limit, and are working on entirely new things to get around it.
The limitation on clock speed is caused by a concept known as the “Critical Path” through the CPU. Each of the 100s transistors used to make a calculation, (add, subtract, write to mem, read from mem, etc) need time to potentially change states. To go from a 1 to 0 or a 0 to a 1. The clock speed must be slower than the slowest possible calculation step so that in a worst case all operations can occur and fully complete within 1 cycle.
Modern chip use tons of techniques, one of which is called pipelining, to try to run operations in stages to circumvent this limitation. For example while a math operation is calculated, the values for the next calculation can be loaded into place ready for the next cycle. This creates interesting challenges when the result of that second calculation depends on the second, but that is the price you pay for speed in that case.
In addition as others have mentioned, beyond simplifying the structure for a shorter critical path (part of why Apples new M1 Chips are so much more efficient), you can make the switches flip faster. However this is a thermal issue. A stored 1 value or 0 value changing into the opposite requires current to flow in or out of the transistor, which generates heat which must be removed or the transistor will degrade or even melt. The more you have flipping faster, the more heat you get.
Lastly, you can shorten the critical path physically but making it shorter but designing the CPU die so that components that talk to each other are close by or making the transistors themselves smaller through this cant be done in all cases. We have been building CPUs with components so small that the actual speed of electric voltage moving though wires is starting to become relevant.
For context, an Intel i9 lists a 5.3 GHz clock speed. In one clock cycle, light – the fastest thing in the universe – travels only 5.66 centimeters and electric voltage (signals) moves much slower than that in metal, some where slightly slower than speed of light depending on other factors
Edit: speed of light
First, Power Density (or Heat).
Processors got exponentially faster over the last 50 years due to “Moore’s Law” [https://en.wikipedia.org/wiki/Moore%27s_law](https://en.wikipedia.org/wiki/Moore%27s_law). This was an economic prediction made in 1965 that the number of transistors on chips will continue to double every 2 years. It became a self-fulfilling prophecy because Intel integrated that schedule as part of their business plan. Having more transistors available lets you clock faster because you’re able to use the transistors for fancy tricks such as deep pipelining.
EDIT: I got caught wearing my architecture hat. It’s important to note that smaller transistors are just plain faster, so during this period, even with no tricks, the circuits would just magically get about 1.4x faster every generation.
This doubling was possible because of “Dennard Scaling” [https://en.wikipedia.org/wiki/Dennard_scaling](https://en.wikipedia.org/wiki/Dennard_scaling) which at a high level means that due to the physics of the transistors, the power density of a transistor will stay constant as they decrease in size. This allows you to fit twice as many transistors on a chip while using the same cooling mechanisms. However, this broke down in the late 90s. The graph here is a great illustration of this (haven’t read the rest of the article, but it’s probably good: [https://www.extremetech.com/computing/116561-the-death-of-cpu-scaling-from-one-core-to-many-and-why-were-still-stuck](https://www.extremetech.com/computing/116561-the-death-of-cpu-scaling-from-one-core-to-many-and-why-were-still-stuck)). Because Dennard scaling failed, we couldn’t use those transistors to make it go faster, so instead the industry moved to multicore processors which were each clocked lower.
Incidentally, this trend has also failed due to the “Dark Silicon” problem [https://en.wikipedia.org/wiki/Dark_silicon](https://en.wikipedia.org/wiki/Dark_silicon). This has resulted in huge innovation in the field, where custom hardware blocks are used for power efficiency rather than relying on a bulky CPU.
Second, Power Efficiency.
Power scales linearly with frequency, but quadratically with voltage. [https://physics.stackexchange.com/questions/34766/how-does-power-consumption-vary-with-the-processor-frequency-in-a-typical-comput](https://physics.stackexchange.com/questions/34766/how-does-power-consumption-vary-with-the-processor-frequency-in-a-typical-comput) Having a higher frequency requires a higher voltage. Conversely, underclocking the processor allows you to lower the voltage safely. This results in a cubic decrease in power consumption. So for similar performance, you might rather have several slower, cooler cores versus a single blazing fast and hot core.
Third, the Memory Wall ([https://www.researchgate.net/publication/224392231_Mitigating_Memory_Wall_Effects_in_High-Clock-Rate_and_Multicore_CMOS_3-D_Processor_Memory_Stacks/figures?lo=1](https://www.researchgate.net/publication/224392231_Mitigating_Memory_Wall_Effects_in_High-Clock-Rate_and_Multicore_CMOS_3-D_Processor_Memory_Stacks/figures?lo=1))
Most of the speed increase has gone to logic and not memory. This means that your CPU gets way faster, but the backing memory doesn’t. If your CPU triples in speed, but your DRAM goes 1.4x, the CPU will just end up idling for long periods of time. This is inefficient and results in poor relative performance increases. This problem gets even worse with multicore processors, which is why it’s still an active area of research.
There are two major factors in determining clock cycle. One is how quickly we can transition our voltage from a 0 to a 1 and the other is how many transitions we need to do in a single step.
Figuring out the benefits of increasing the transition speed is really simple. If it takes half as long to switch values, then we can run our clock twice as fast. The main ways to speed up your transitions is by squishing your chip closer together (less distance for the electricity to travel) or making your CPU cooler. The warmer the chip gets, the slower its transitions will get.
To lower the number of transitions we need to do in a single step, we break our work into smaller steps. There are benefits to doing this, but it can end up making the CPU calculate slower if it’s taken too far. It’s kind of like trying to scoop water out of a boat. You can use a really large bucket, but that’ll get really heavy and takes a while to lift the bucket over the edge. A smaller bucket is a lot lighter and you can move much faster, but you’re not going to get rid of as much water with every scoop. The clock frequency is the number of buckets you dump, but the amount of work you’re actually getting done is the amount of water you’re scooping out of the boat. The goal is to find the best balance to allow you to get as much water out of the boat as quickly as possible. An example of making your step size too small would be if you end up using a spoon to scoop up the water. Yes, you’ll be moving really fast, but you’ll barely get any work done. This is why it’s not as common to compare CPU frequencies between different types of processors; each processor has a different size bucket.
Zeroes and ones are represented as voltages that switch transistors The square waves are not really perfectly square and take time to transition from 0V to 3.3V (for example).
Transistors get the warmest in the time during a transition from a logical 1 to a logical 0 or 0 to 1.
As we increase the frequency, the square waves spend more time transitioning than either a 1 or 0 and more heat is generated. Also at some point the frequency is too high to allow the transition to switch the transistor in the same clock cycle.
Latest Answers