bluejeans wrote:Is there a general rule that every 5 generations, single core performance will double, or something?
Not really.
Back in the early days, single-core was all you had, and performance would increase with every generation.
But eventually they started to hit the limits of single-core performance (at around the time of PIII/P4/Athlon). Which is why the focus moved to multi-core instead.
These limits are roughly:
- Most simple instructions execute in 1 cycle
- Superscalar pipeline can execute up to 3-4 instructions per cycle (x86 code doesn't lend itself very well to this, because of its two operand model and a lot of implicit dependencies on instructions, requiring them to be executed in serial, not in parallel)
- Clockspeed goes up to about 4 GHz
Single-core performance still increases somewhat over time, but it is usually more of an 'indirect' improvement, eg because of more/faster cache, or because of extra instructions being added (most notably AES for example).
There are also some minor improvements from 'micro op fusion' and 'macro op fusion', which is basically combining two 'native' x86 instructions into a single internal instruction, to improve efficiency and parallelism.
Which means it depends on what you're measuring. If you are measuring an application that already fit entirely in the cache with an older CPU, you won't see much of an improvement.
Likewise, if you test software that does not take advantage of new instructions, you won't see the improvement there either.