CPUs aren’t getting faster clock speeds and they aren’t getting more cores. How are they improving in performance?

60 views

CPUs aren’t getting faster clock speeds and they aren’t getting more cores. How are they improving in performance?

In: 18

Faster clock speed means that more operations can be performed every second, which translates into improved performance.

More cores don’t necessarily improve performance. They enable things to be processed in parallel, which is practical for independent multiple tasks running at once, but impractical for processes having interdependent inputs and outputs.

(Edit) Without increasing clock speed, performance can be improved by increasing the instruction cache size, to store previously-executed commands in the processor itself for quicker retreival instead of retrieving the instructions from external memory. A processor can also be optimized to execute more instructions per clock tick.

The clock speed have never actually matched the number of instructions per seconds. Usually a processor takes several clock cycles to execute a single instruction. For example on early processor the process of adding two numbers together might have taken at least three clock cycles, one to move one register into the adder, another cycle to move the other register into the adder and a third cycle to move the output from the adder to the output register, and then more cycles to read and parse the next instruction.

More advanced processors are able to execute instructions with fewer cycles. In this case the next processor might have an extra data bus with the associated transistors for the MUXers and the control logic associated with this bus. Then both input registers could be loaded into the adder in the first cycle and the second cycle might have moved the output to its register at the same time the next instruction is read. So for some more transistors you would have doubled the speed of the processor even with the same clock frequency.

Modern processors are able to execute multiple instructions in parallel using different parts of the same processing core. Even with the result of one instruction being used in the next the instructions can be combined and executed much faster then isolated. Or they can execute two different threads in the same core as the instructions do not run on the same data.

They’re getting more cores still. We’ve recently started seeing more 16, 32, and even 64 core CPU’s.
But we’ve kinda hit a limit on clock-speed, because it produces too much heat. So about 5Ghz, maybe 5.5Ghz, and it starts becoming too unstable, unless you apply some serious cooling.

But, we are hitting a limit on transistor size too. We’re down to about 4nm I think, and this is starting to become problematic too, and unstable (electrons start jumping the gap, and this messes with the CPU).

So, new tech entirely, is needed to improve performance even further. This includes 2 things (possibly more):
1. Processors based on light instead of electrons.
2. Processors taking advantage of quantum mechanics.

The latter won’t improve performance much in day-to-day tasks though.

a couple of things. first performance really was increasing very slowly recently, there’s been a slight increase recently with amd hitting their stride.

various things are helping, memory is getting faster, pci is getting faster, graphics cards have been getting *much* faster. io has been getting faster, especially with spinning disk to ssd to m.2. so all the peripheral stuff has been improving markedly, which improves the computer overall.

cpus main improvement has been in instructions per clock: the average number of instructions that are completed every clock tick. this has been going up by improving cache speed and structure, as well as architectural improvements with pipelining instructions, completing them out of order, having multiple compute units (within each core) and various kinds of compute unit that do far more and more complex calculations, like sse that performs an instruction on multiple values at the same time.

a fair overview of a modern CPUs internals:
https://youtu.be/8VakkEFOiJc

If you ask a 4 year old what 2 times 2 is – they might know the answer. They might be able to handle math problems using numbers between 1 and 3. They might be able to 3 math problems in 10 seconds.

If you ask a 10 year old what 5×5 is – they would know the answer. They might be able to do problems up to 12, and do 3 problems in 10 seconds.

If you ask a math genius – maybe they can multiply 3-4 digits numbers in their head in seconds.

In the old days a CPU might only be able to do math using a number that’s 4-8 digits (bits). Eventually 16 and 32 bit CPU math capabilities came about.

Today, a CPU can do math with up to 512 bits.

Doing one advanced math problem instantly can replace doing many smaller math problems instead.

The clock speed also indicates how many times a second the CPU goes through a cycle. Each cycle – a CPU might do 10 math problems, it might do 100.

So another way CPU performance increases is in the number of math Instructions Per Clock it can do.

There’s a lot of pieces to performance. Cache is another piece, you can increase the cache or the bus speed to the processor so it can fetch the already calculated result and return it quicker than doing the calculation again. L1, L2 and L3 cache can be tweaked as L1 cache is on the dye of the chip and L2, L3 is external to the chip. (Stands for Layer1, Layer2, Layer3)

Instruction Sets are improving also. Instruction sets are, an ELI5 answer, ways of doing calculations that are predictable to improve performance. A lot of the newest instruction sets revolve around virtualization and wouldn’t necessarily be applicable in a desktop/laptop CPU.

Other improvements are reducing what the CPU is doing. For example, offloading network IO to a dedicated chip is better than piping it back to the CPU in order to do the calculations. If you can free up the cycles on the CPU by offloading calculations to other components (Memory Bus, RAID Controllers, Network cards, Video Cards, etc) this improves performance also.

Lots of tricks that a lot of smart people have figured out. You’re only scratching the surface with this question on the technology that has been invented in the last 20 years for improvements in performance for our modern day computers. 🙂

Processor design is trending more towards efficiency

RAM and bus speeds, and on die cache are increasing which improves overall efficiency

Power efficiency is increasing, which reduces heat and makes mobile device batteries last longer. This makes computers more practical.

The demand for core count has actually been stymied a fair bit because companies have started charging per the core for licensing.

Microsoft for example charges a premium for having more than 16 cores in a Server, so that has driven down the demand for high core CPUs.

Intel has also been shooting itself in the foot in the past few years by wasting a lot of die space on technologies that aren’t that practical. Linus Torvalds (Linux) made a very public switch to AMD processors in his machines and has accused Intel of it’s own “emissions scandal” in a sense by dedicating die space to technology that only serves to cheat Processor benchmarks.

Clock speeds *are* getting faster in recent years. Previously, clocks over 5Ghz usually began to encounter a heat boundary, but the new i9 12900kf boosts to 5.2ghz, and I’ve seen it run 5.5 pretty commonly. Speeds are beginning to climb again.

Clock speeds are a metric to inform about how fast instructions (assembly) can be processed. Cores are useful for parallelization and multithreading.

Yet CPUs are bottlenecked by how fast the information that needs to be operated on can get to the CPU.

Different levels in the memory hierarchy take orders of magnitude in time differences to access.

Faster RAM helps a lot, more L1 cache helps astronomically more!

Newer CPUs have better leveraged high level caches.

It is also incredibly important to note how the software was designed. Some programs will always be slow because troglodytes wrote them.