[citation][nom]Justposting12[/nom]Just a few examples; 286 to 386 to 486 to pentium. 68000 to 68020/30 to 040 to PowerPC 601/603/604. A 33mhz 030 might put out about 8 mips, but a 33mhz 040 put out almost ~33mips! Now-a-days, you can expect a 5-10% gain (if were lucky) at the same clock speed when a new CPU is released. The reason for this? Companies don't change CPU designs anymore, they just "tweak" things.[/citation]
If you look at ARM, MIPS, Power and other architectures, they are all butting heads against performance ceiling as well, it isn't an x86-specific thing.
The reason why progress was so fast before is because architecture optimization was still a black art back then with everything still remaining to be discovered/invented. Early CPUs were linear single-instruction affairs that could spend multiple cycles executing a single instruction. Later CPUs added renamed register files, superscalar execution and pipelining which enabled the CPU to work on more than one instruction at a time. Then they added out-of-order execution, branch prediction, speculative execution, caches, prefetching, simultaneous multi-threading, etc. to extract more performance out of a given thread and execution unit.
With pretty much every trick in the book now on the table, there aren't many expectations of major future breakthroughs left. Everything is as deep and wide as it can practically be without hurting latency, clock rates or complexity/manageability, the only obvious way to increase performance is to add physical cores for raw power and logical cores for execution resource usage efficiency but this is pointless until more software is rewritten to properly leverage them.
The internal combustion engine is much the same. Early engines could be substantially improved simply by improving machining, improving seals, lubricants, etc. and they quickly improved from unreliable clunky affairs to usable. Going from carburetor to direct fuel injection to high pressure FI also significantly improved efficiency. The latest crop of improvements such as variable ignition, variable valve timing, discrete variable transmission, exhaust recirculation, etc. improved efficiency and emissions some more but now there is almost nowhere left to optimize, every 1% improvement will come with substantially greater complexity. Since improving internal combustion any further is becoming cost-prohibitive, efforts are shifting to hybrid systems.
CPU cores have reached their thread-IPC plateau, people's need for processing power have also largely plateau'd because programmers are still brushing up on multi-threaded programming. It does not make much sense for CPU manufacturers to add cores almost nobody can use so they focus on other objectives such as power efficiency and IGP/GPGPU.
If you look at ARM, MIPS, Power and other architectures, they are all butting heads against performance ceiling as well, it isn't an x86-specific thing.
The reason why progress was so fast before is because architecture optimization was still a black art back then with everything still remaining to be discovered/invented. Early CPUs were linear single-instruction affairs that could spend multiple cycles executing a single instruction. Later CPUs added renamed register files, superscalar execution and pipelining which enabled the CPU to work on more than one instruction at a time. Then they added out-of-order execution, branch prediction, speculative execution, caches, prefetching, simultaneous multi-threading, etc. to extract more performance out of a given thread and execution unit.
With pretty much every trick in the book now on the table, there aren't many expectations of major future breakthroughs left. Everything is as deep and wide as it can practically be without hurting latency, clock rates or complexity/manageability, the only obvious way to increase performance is to add physical cores for raw power and logical cores for execution resource usage efficiency but this is pointless until more software is rewritten to properly leverage them.
The internal combustion engine is much the same. Early engines could be substantially improved simply by improving machining, improving seals, lubricants, etc. and they quickly improved from unreliable clunky affairs to usable. Going from carburetor to direct fuel injection to high pressure FI also significantly improved efficiency. The latest crop of improvements such as variable ignition, variable valve timing, discrete variable transmission, exhaust recirculation, etc. improved efficiency and emissions some more but now there is almost nowhere left to optimize, every 1% improvement will come with substantially greater complexity. Since improving internal combustion any further is becoming cost-prohibitive, efforts are shifting to hybrid systems.
CPU cores have reached their thread-IPC plateau, people's need for processing power have also largely plateau'd because programmers are still brushing up on multi-threaded programming. It does not make much sense for CPU manufacturers to add cores almost nobody can use so they focus on other objectives such as power efficiency and IGP/GPGPU.