Monday, January 16, 2006

End of Moore's Law? BAH!

A few folks around linking to Costikyan's "End of Moore's Law" post, or to Mark Cuban's related post that makes a brief reference to same.

Umm... bah humbug.

OK, maybe too many years at Intel drinking the Koolaid, but I have to disagree with this one on a number of fronts.

1) Moore's law was never about Mhz or Ghz. It was about the number of transistors on a piece of silicon doubling every 18 months. The Mhz just came for free along with that. Though the Mhz train may have come off the track so to speak, the number of transistors keeps on increasing. Yes, it's via more cores, and I'll get to that, but the point is, it's still increasing.

2) The "how to apply the gates" problem is nothing new either. It was via deeper pipelines (which ran out of gas), instruction level parallelism (which ran out of gas), SIMD processing like MMX, SSE, 3DNow (which ran out of gas)... and now it's via more cores. Will that run out of gas? I'll get to that. Whether it does or not is kind of irrelevant. You know why? Because there's something that doesn't run out of gas: Human ingenuity. People will find a way to apply more gates to problems. Gates will get cheaper and people will find a way to make use of them.

3) The "parallel processing is hard and doesn't scale" problem. There's a lot of unsolved problems here. Again, I point you toward that 'human ingenuity' thing. I have faith these problems will be solved. There are still many places that parallel processing can be applied quite readily and where we aren't running out of gas any time soon. Graphics is one example. The Internet infrastructure is another. And by the latter I mean everything from MMO servers to search engines to the wee bits of silicon in them routers and switches. Will it mean thin clients and server processing and "Sun was right all along those guys really get to say 'I told you so'!"? Maybe. Who cares. The point being that there's still plenty of places to apply the mips.

I guess my point here is this: The MIPS-fatigue arguement has been made incessantly for 20 years. Every time, human ingenuity has come to the rescue. There may be bumps along the way (e.g. the move from 16 to 32-bit was a bump, the move to OOO execution was a bump, and the move to parallel systems may be a bigger bump still). But to assume that "yeah, this time we really have it right and it's all over"? Well, that's not only myopic. It's just freakin' arrogant.

I won't be dumping my INTC just yet! I still have faith in the smart guys over there (yes, Mr Dean, that means you! Now stop reading my blog and go solve Mr Costikyan's problem, OK!)


Anonymous said...

It was quite astonishing to read all those comments and not see any mention at all of the 'number of transistors'. Crazy people.

Darius Kazemi said...

Having been formally trained as an electrical and computer engineer, I have to agree with you wholeheartedly.

Anonymous said...

I'll get right on that ;-)

adam lake said...

i've found it one of the most common misquotes...moore's law being performance doubling instead of the actual law which is the doubling of transistors. lots of times, transitors are used to gain performance...but it does not mean they could be dedicated to additional features that could actually reduce performance for the sake of increased functionality.