Fox5 said:
Anyhow, wasn't Moore's Law that transistor counts double every 18 months?
Performance followed the advances in transistor densities at the same pace though, and did so through two different mechanisms.
* Clock frequency improvements from having finer geometry.
* larger transistor counts allowing architectural improvements that improved IPCs (Instructions Per Cycle).
It's important to emphasize that it was not just clock frequencies. Pipelining, branch prediction, caches, prefetching logic, multiple execution units, extended instruction sets, register mirroring, out of order processing, et cetera - all architectural advances that allows a single execution thread to process faster at a given frequency.
The reason processing speed increases has slowed to such a great degree is not only slackening clock frequency development but also that it has gotten progressively harder to extract higher IPCs from sequential code. The low hanging fruit has been picked long ago, and we've invested more and more transistor resources in order to inch forward in single thread execution speed, and have correspondingly gotten less and less computational power out of advances in transistor counts allowed by new lithography.
This has been obvious for a long time, and mainframes, commercial servers and compute servers have all turned to various forms of parallell processing for improving matters. PCs have kept pushing the Single Thread for longer than the others for many reasons, such as: Cost (always number one in PC space), installed base, consumer and corporate inertia, the problems of programming and OS environment, as well as conservative or lacking programmer training.
The architectural component is one reason that PC GPUs has been able to have a better development of processing power the last decade than PC CPUs. But it is also the reason why for instance the original Cell processing paper takes its basis in the gains available if you reallocate the transistor budget spent on making a single thread execute as fast as possible and instead spend it on multiple execution units and interprocess(or) communication.
Everyone has seen the writing on the wall for quite some time.
At least everyone outside of consumer PC space.
Entropy
PS. Where this will take personal computing is an interesting question. For PCs, many of the constraints outlined above that limit development paths aren't going away, at least not in the foreseeable future. One thing is certain though - the CPU manufacturers are not going to develop their wares to serve gamers alone. They would probably like to in order to keep ASPs up, but out of the 200 million + PCs sold in 2005 only a small fraction were sold to gamers and marketing can't necessarily be relied on to be able to keep selling other people a CPU that draws more power, requires noisy cooling and costs much more than it needs to. If you try to do that, you are asking for your market to eventually move away from under your feet. Intel and AMD can be relied on to try to find a balance that lets them sell to everyone at the highest possible ASPs. They are not abandoning performance as a competitive arena, but are trying to introduce a new Single Figure of Merit, performance/Watt.
Forecasts for their 2006 offerings look pretty good.