The End of Moore's Law?
Lucius Lucanius writes "A recurrent theme of late, the NY Times describes an Intel researcher's paper on the possible end of Moore's law. Soon, 'transistors will be
composed of fewer than 100 atoms,
and statistical variations in this
Lilliputian world are beyond the ability of semiconductor engineers to
control.' Is it for real this time?
"
I'm not particularly concerned about hitting a theoretical limit to hardware power. At the moment, I'm typing on a system that has unimaginable 20 years ago.
Yet it crashes often enough to be noticeable.
It runs so slowly (a "mere" Pentium 400) that I can actually see my windows redraw.
Booting takes 5 minutes (NT 4.0)
Shutting down takes several minutes, too.
Maybe hitting a limit to processor power will encourage programmers to reintroduce the concept of "knowing how to write good code." Lord knows processor speed and cheap memory have made it possible for even the best programmers to stop thinking about code quality.
- Stever
that the number of times the End of Moore's Law is predicted doubles every sixteen months?
> Think to yourself, what is the biggest, most power-consuming thing a computer could ever do. Ever.
Equal the human brain.
> It will stop there
No. WE will stop there. They won't.
I've finally had it: until slashdot gets article moderation, I am not coming back.
Remember back in the 80's when they said 20 Mhz computers were pushing the outer limits of semiconductors. They thought increasing prevalence of electron tunneling at subatomic levels would doom computers to stay below 25Mhz forever.
Then in the early 90's they said the cost of developing faster chips was becoming a vertical line. Computers would never get far beyond 200Mhz because of the brick wall of development costs.
Well electron tunneling became our friend. Design tools outpaced their costs. Maybe we'll find a way to turn the physical limits to our advantage.
Even if the Intel folk were right, and we couldn't make out gates any smaller (I bet we can, with bucky-tubes and those neato single-molecule gates), it wouldn't be the end of Moore's law.
FIrst of all, there is the whole bandwidth problem- We programmers have to worry about cache coherency, cache misses, time to load from disk, time to load from RAM... etc.
These things are the major bottleneck for many applications.
Furthermore, This "limit" would only limit single-processor designs..
There is still a large world on parallel-processing to consider.. What if the CPU could execute EVERY non-dependant, non-aliased branch at concurrently?
(We'd obviously need better compilers, and probably better languages..)
In any case to rehash: Even if the Intel engineers are right about the "gate limit", Plenty of other advances to discover..
But (as far as the patents have shown), transmeta doesn't have some new technology that's cooler than printing something on silicon. The real step is finding some thing besides semiconductors to make transistors out of. Or, basically, repeat what happened in the 40's when they came up with transistors to replace "bulky, expensive, heat-generating" vacuub tubes. What we need now is something smaller, cheaper, less power-consuming, and cooler than transistors that we can use in the same respects. Therin lies the future.
-Chris
Sure they did. Most of them are still alive.
I've finally had it: until slashdot gets article moderation, I am not coming back.
Bio and molecular level computing is next.. it will propagate and extend the life of Moore's law for another 10 years.
:)
After that, quantum computing of course
http://www.qubit.org/
I don't get it. The ONLY difference between the two code fragments above was a keyword change.
Right. However, the two keywords would have significantly different effects, and would be used in different situations by the programmer.
Why would we have to have a new keyword when we can simply detect a parallel operation?
Because we *can't* simply detect a parallel operation, 90% of the time. If your code calls a function that isn't in the same object file (or is in a shared library), then there's no way to know whether the for loop is parallelizable. Unless, of course, the programmer tells you that the loop is parallelizable. Hence, the new keyword. If you tried to parallelize every for() loop in existing code, you would break most of it horribly.
There's also the fact that automatically parallelizing foreach() type code will have dramatically different performance effects on different systems; the threshhold size above which one would want incur the overhead of contacting separate threads to run code will vary depending on the CPU interconnections; a cluster would only be helpful for much larger loops than an SMP system. You could write every parallelizable loop with foreach() and hope the compiler will sort it out, but how is a compiler supposed to figure out that
foreach(i=0;i<3;i++) {
tinyfunction(i);
}
shouldn't be split among different threads, while
foreach(i=0;i<3;i++) {
hugefunction(i);
}
should be?
Why generate values of i if they aren't used? If the compiler can prove array[] is never used in your function, it'll just drop the loop entirely Can't get much more efficient than that.
Um, that wasn't at all what I was talking about. I was discussing cases where every value of array[] will be used, but where they could be calculated independently.
Functional languages, which can evaluate arguments to functions in any order (thus parallel), will often not bother to even run the loop until array[i] is needed in a fashion that can't be delayed. The best way to optimize code is to find ways to not run it at all.
Agreed.
I suggest thinking in languages other than C.
Disagreed. The point of SMP isn't to demonstrate some academic feature of Lisp, it is to make programs run faster. If you have a program that requires more than a single fast CPU to run, then you *definitely* don't want to run it in a non-compiled language. And if you have a Scheme compiler whose output will run as fast as C, C++, or Fortran code, I'd like to know about it.
That sounds antagonistic, but I'm absolutely serious; I'll probably be working next summer with fortran code on a 500-node system, and if you've got some means to let me write anything but Fortran, please take pity and let me know about it.
That all means unless you get a sadistic pleasure out of watching engineers shackled by fortran, it would be nice to see more parallel programming features available in C/C++.
C'mon. This idea is so familiar it's even got a name' 'the wall'. There are also a plethora of possible solutions on the horizon. Of course, it's possible that they're all crap and Quake 9 will have little over Quake 8.
Moore himself talked about this on Cnet a couple of years ago.
See Larry Snyder's work on ZPL at the University of Washington.
Thank you; I'll take a look at it. I'd prefer an OO language, but anything that automatically parallelizes code, that links to C code, and that isn't Fortran, is good to hear about.
The idea of embedding parallelism into the language is nothing new.
When did I say it was? I mentioned HPF. Well, not by name, but I at least said Fortran had parallizing keywords already, didn't I?
Ray Kurzweil addressed this issue extensively in his book "The Age of Spiritual Machines." He analyzed the trend in computing power from Babbage's first Analytical Engine all the way to the present (mid 1998), and found that paradigm shifts always occurred at just the right moment in the evolution of technology. Just as we reach the point of diminishing returns on improving a specific technology, the increasing demand for the resource inevitably spurs research in other technologies to continue the exponential growth.
Ask me how the Heisenberg Principle may or may not have saved my life.
It's that the major chipmakers stand to loose a lot of money. Currently they are set up to produce traditional chips. They have a tremendous advantage over anyone entering the market, since they already have equipment, expertise, etc. If the way chips are made changes dramatically, what's to stop a little upstart, that realizes the coming change early on, from becoming serious competition for them?
God does not play dice - Einstein
Not only does God play dice, he sometimes throws them where they
Username: slashdoted
Password: slashdot
Enjoy!
-----
The real meaning of the GNU GPL:
The real meaning of the GNU GPL:
"The Source will be with you... Always."
You're forgetting Microsoft's propensity to throw everything including the kitchen sink into their products. When Windows 2010 requires a 1.5GHz CPU /w 2GB RAM just to boot (come now this is not too unrealistic) your point about the general consumer vs state of the art does not hold up. Sure, there will be some small "appliances" that would do fine with today's high end CPU's, but if MS and Intel has their way then ppl will be in an ever continuing cycle up upgrades -- needing to upgrade their hardware (which contains some "new" features) in order to handle the latest monstrosity from MS, which upgrades their software to handle the few new features in the new hardware (along with a lot of useless bloat), which demands a new hardware upgrade in order to run acceptably, etc....
I don't think the need for faster and more capable hardware will cease until computers advance to our "dream" computers. For each person what this means is different.
What I see most likely is the current manufacturers following their current practices of concentrating their R&D on faster and faster generic purpose CPUs until they reach some sort of "wall." When this happens, they will probably branch out in two separate directions. One focused on R&D into totally new methods of producing generic purpose CPUs that break through this wall and the other on application specific designs. They will most likely need to get the bulk of their revenue from application specific designs, taking a larger and larger percentage from the generic purpose CPUs as they get cheaper and cheaper (because other companies will reach the same barrier and the competition will reflect lower prices).
This is not necessarily a "bad" thing. I think it makes much more sense to design a chip specifically for, say, speach recognition. Sure, there is a very important software part of this and there has been some recent work on neural net chips or systems that supposedly is in the right direction, but someone like Intel spending vast amounts of resources on a speach recognition chip (based on neural computing or not) using 5 micron casts would likely have great success in a short amount of time (2-3 years). Think of all the other application specific areas where Intel and the other manufacturers could branch out if they ever do get to a 5 micron technology. Perhaps "visual" recognition, handwriting recognition, Oh, here's a big one -- language translation. The possibilities are endless, with a matching revenue stream. I could see someone spending $1000 or more for a generic language translation unit to take with them on their vacation (I certainly would and there's a heck of a lot of people in this world).
Doesn't Moore's Law state that Microsoft apps double their bloat every 18 months? This is still holding true.
Or a way to dynamically change the instruction set of a processor so that one "generic" CPU is both a "generic" CPU and application specific CPU at the same time. A lot of the work that generic CPU's do, and will be doing more and more of because they are so fast and have the raw power to do it, is finding solutions to application specific problems. Because generic CPUs are so fast and cheap they are as cost effective as application specific CPUs in certain circumstances.
Look at the "WIN printers" for instance. It was thought that it would be cheaper to take the (relatively cheap) intelligence out of printers and put it into software drivers that are run on a generic CPU. Whether it is true or not (that it is more cost effective) is beside the point. The point is that we are asking the generic CPU to do things that it normally would not, requiring large amounts of processing power due to the timing and other issues.
If Transmeta is working on what is rumored, using current chip manufacturing techniques and not some new fangled method, then both the generic CPU instructions and the application specific instructions could then be executed on the same chip. Since the application specific instruction set would be taylored to the applications, presumably less cycles would need to be done to solve the same problem. This would reduce the need for faster and faster CPU's, would it not? Would not this be a new approach to the "problem?" May be not finding a new way to make a faster same old generic CPU product but finding a new paradigm that used a single unit in order to do both generic and app specific "stuff."
Think about it!
More and more of the economy now assumes a sustained exponential growth of IC based products. When the growth rate begins to slow, it WILL create significant disruption. A number of points: First the rate of growth WILL slow sometime, maybe caused by fundamental process limits, maybe by increasing costs associated with the capital equipment to manufacture the stuff, or maybe because it becomes to large a percentage of the GNP (saturation).
IC manufacture is capital intensive. Someone told me that an Intel fab plant runs $5-8B today and doubles every generation. Wall Street is pumping money into Silicon because of growth. When growth slows or stops is will have an enormous impact on investment flow. Then the lack of investment will slow progress, slowing the need for development. It's all interrelated, coupled and highly amplified by the exponent of Moore's Law.
When it slows, the whole attitude about products will shift. Today, if you want a really good sewing machine or small lathe you get a good used one built 1930-1950. When Moore's law times out, the investment in plants will slow to a trickle. Fab equipment will wear out. Student will avoid the dying industry. (What's the Silicon version of rust belt?) People won't buy a new computer because it's not as good as the old one. Software development will begin to focus on quality and then crash as the market saturates (no need to buy new SW once it works and you have to run on the same old machine.
When today's Moore's law based economy crashes it will create massive dislocations. Imagine Silicon Valley with a New England mill town look, or Pittsburg/Buffalo/Cleveland circa 1970.
I do research on decentralized processors, the technology you mention. My thesis advisor likes to use this term, but please keep in mind that there is no common term for this type of architectures.
Sun's new processor, MAJC, is doing this; and Alpha 21364 will, too. Alpha 21264 already employs a similar technique.
You are completely right in thinking that this is the next step. The trend in the last 3-4 years has been in this direction. Decentralization is an active research topic in many institutions and processor companies in various forms: Multiscalar processing, superthreading, etc. You might want to take a look at the Multiscalar pages at Univ. of Wisconsin, where some of the pioneering work has been done.
Zigbee Central: A Zigbee weblog
This has been tried before AFAIK but I counldn't point to anything definitive on it. The problem is figuring out how to do the different instructions but I would think you could have two cores running at 100mhz on a 200mhz total system bus, that would probably solve the bandwidth problem. Deviding up the code between the processors could be done most likely in the compiler which would multithread the program. With the two cores you wouldn't have double the clock speed but you would have double the MTOPS (millions of theoretical operations per second).
I'm a loner Dottie, a Rebel.
It's happened to a great extent, anyway. Go hunt down the Toms Hardware review on the Athlon for a good understandable discussion on their architecture - the main reason they're getting up to 50% better FPU performance than Pentium IIIs is the fact that they've got 3 concurrent execution units there instead of 2.
But there's only so much of that you can do in hardware. What I'd like to see is multithreaded software produced *automatically* by C/C++ compilers when possible, the way high end Fortran compilers do for multinode supercomputers today. So instead of writing
for(i=0;i<1000;i++) {
array[i] = function(i);
}
which generates i, executes the function of i, generates the next i, executes the function with that next i, etc; you might write
foreach(i=0;i<1000;i++) {
array[i] = function(i);
}
which will generate as many values of i as you have CPUs, execute the function for each value of i on a different CPU, then generate the next set of i's, sending them to threads as necessary to keep every CPU busy.
We'd have to have a new keyword (I like foreach) for this, since the overhead involved would make it counterproductive in many circumstances and would break code (anything where function() isn't reentrant, or where the i's are assumed to be evaluated in order) in others.
The problem that many of my detractors (who Should be Obvious to you by now). Is that They have more problems with, ( of course ) the subnet of my presentation ( table 1 ). Needles to say, Nevertheless. That they more than Likely do not comprehend ( of course ) the Fundamentals of the I'm a Fucking Retard Rule ( Needless to say, similar to my Octet rule ).
Never the less, it should be Obvious why I didn't ( or should i say, Couldn't ). Needless to say, pass the fucking Cisco exam because my head ( or never the less, what is on top of my head ) is so far.
Just imagine! Shoved up my ass, that this paper should be my addmitance paperwork out of computer ( or network ). Consutlting/IT Professional, and into scooping M&M's for Dary Queen.
if you read this hampsters paper all the way thru.. take off two points. Take off 3 if you printed it out to read it later.
--
will only go so high. Monitors, currently displaying around 72dpi, higher on LCDs, will get up to optical resolution then stop.
That means that the 2d card will only have to be so powerful, the same with the 3d card.
Sound cards will eventually be able to generate realistic sound that includes the full range of our hearing. Then they don't need to get more advanced.
I'm not saying consumers will only need this or that, I'm saying that humans will only be able to come up with this or that. AFter a while, they won't be able to figure out anything more to do with computers. (This will probably end at something like re-creation of worlds, aka massive holodecks)
Think to yourself, what is the biggest, most power-consuming thing a computer could ever do. Ever. It will stop there.
Perhaps it will be miniturized, but applications will stop eventually when there are certain limits, like optical resolution or the range o the human ear. Eventually there will be limits like that for application.
Moore's law will not stop. We will just keep finding newer processes to do things.. (Intel saying it will stop, well hell yeah you can fry pancakes on PIII's probably roast a cow on a Merced) Motorola isn't having many problems on the other hand... Microsoft could be a major part off this, you shouldn't f'ing need a PIII 400 or whatever ffor the operating system.
Apple's only restriction on OS compatibility is chip architecture (you have a PowerPC, it works, 69k it doesnt, this is a natural limit, its practically like trying to install the MacOS on a pc, wrong chipset.)
Hey we haven't even tried optroinic computers or anything yet maybe those will reach our needs. Still s lot that can be done, just ignore intel, they're just overclocking their chips until they melt.
What I think will happen in the near future is somehow making multiple cores on one processor work seamlessly, so you effectively have a 1400MHz Athlon by putting 2 700MHz cores on one chip. I have no idea how to solve the problems with bus bandwidth and dividing instructions between processors, but doesn't the G3 do this already to some extent?
This wouldn't be SMP, even the motherboard wouldn't really know there were multiple cores on one processor.
Someone with some experience in this field want to tell me why this hasn't already happened?
I don't believe that if computers suddenly hit a ceiling in terms of max performance that people who code sloppy would stop. It's just like any other profession - some people do it to the best of their ability, and some people make it 'good enough'. And on a related topic - guess which methodology most linux programmers embrace. :^)
--
"Who will ever need more than 640K?"
For decades people have made predictions contrary to Moore's law, and each time they were wrong. I can't say for certain that doubling will continue ad infinitum, but the end is definitly not near. In 1960, 1970, 1980 & 1990, someone said that their decade would be the end of Moore's law.
Excuse me, but... BullS**t
The nature of computing is that bigger apps require faster machines, and faster machines can run bigger apps. Most long term predictions in the computer industry far underestimate the power of human inginuity when faced with an ever more demanding consumer. In the 1950's someone (who was it?) said there was a world market for maybe *5* computers...
yeah... right
(BTW, can
Always Slashdot, Always CokeBear, Always Coca-Cola
Reality has a liberal bias
Transmeta?
Higher processor speed, IMHO, has does wonders for code quality. With higher speed, garbage collectors become feasable. Garbage collectors go on to make it a lot easier to design robust systems becuase you end up have no leakage (given it is a good algorithm) and no accidental freeing of memory that is in use.
In addition, more speed has allowed us to make modular and OO designs that were traditionally "too slow". It's not that OO is necessarily sower than non-OO (there are too many benchmarks showing either camp is faster to know what is really going on), but good design often has overhead. I make speed sacrifices to maintainability all the time with the justification that computers are fast enough. And, IMLE, they are.
Because of this, I can see the exact opposite happening: when computers reach a limit to their speed increases, quality in code will go down. As more features are added to a program, more and more sacrifices to good design will be made for the necessary speed.
-no broken link
I agree. Intel have a serious interest in producing faster and faster chips; if they ever reach a real limit, they'll have to do something. There's quite a lot they can do, so Intel shareholders needn't worry yet.
If you analyze the performance of a modern PC (Intel PentiumIII, AMD K6, etc) in 'normal' use you'll see that the processor spends most of it's 'busy' time (90%+) waiting tor cache misses. A stupid interpretation of this is that a 50MHz processor would give you the same performance as a 500MHz chip. This isn't entirely true, but isn't a a bad guess. I run a processor-bound Oracle database on x86 architecture. At peak loads the (single) processor is reporting that it is very busy. What it is really doing is waiting for memory to respond. The system is designed not to need to swap to disk. The users think the system is very fast.
If Intel or (someone else) could improve memory performance to the level required by modern processors, we would see phenomenal improvements in overall sysstem performance. The x86 machine I am using at the moment is seriously disk-bound. If the disk performance was 20% better (which I could acheieve by buying better RAID) I would see something very close to a 20% performance improvement (It's *very* disk-bound). If I fed it another gigabyte of memory, I'd see a miraculous performance improvement, because it would stop being disk-bound and become memory bound.
If you take Moore's law as applying to silicon-based processors, then there is a limit that we are within about 5-10 years of. If you apply Moore's law to *whole* computer systems, then we've got a lot of room before we hit a major problem. Even then, there are a lot of things that can be done:
Chemical / molecular systems
Biological systems
Quantum logic
etc.
Every computer on this planet is built on the von Neumann architecture. It's a good architecture, but there are others. Many are inherently faster. I will happily bet that Moore's law (applied to system performance) will be exceeded over the next 50 years. Anyone want to bet against that?
Nanotech is not about making big things small. People watch Star Trek or read The Diamond Age and assume that nano is about little robots with little CPU's and little mechanical parts. And that just ain't so. We already have tiny molecular cutting devices: they're called enzymes. Yep, it's the squishy science of chemistry, where we deal with weird funny smelling liquids rather than neat shiny MicroMachines. The kind of nanolithography Feynmann talks about is rather similar to how we make chips now, and they're infinitely more flexible than a micro-encyclopedia. There's not nearly as much utility in putting all the manufacturing effort. toward creating single-purpose micro-devices when you can create a general-purpose one like a CPU.
I've finally had it: until slashdot gets article moderation, I am not coming back.
I think Richard Feynman said it best many years ago:
There's Plenty of Room at the Bottom by R. Feynman
IMO, he basically started many people thinking about nanotech (and this was in the '50s). There are some remarkable things coming from nanotech (IIRC, there are some remarkable things coming out of U of Michigan in nanotech).
There is plenty of room. We just need the technology and sophisitication in order to harness it. Somebody will achieve this technology (who and when are the important questions, not if ). When it happens, Moore's Law will just chug along as usual (as it always has).
Justin
Mu. P.S. The address you see is real. =)
Wouldn't you want a processor that looks like a Borg Cube? :)
Only the dead have seen the end of war.
Last I heard, Lucent could make CD-sized discs holding 25 or 50 Gigabytes of data. They wanted to push it up to 100GB before they even tried to work on a marketable product, though. That was a year ago.
Also, about a year before that IIRC researchers at SUNY developed 3-D optical storage with density of 2.1 GB/cubic cm. Problems were access time and expense of materials.
I don't think we'll be using molecular computing on our desktops any time soon, nor quantum computing any time in the next few decades (you try lugging around an MRI machine, I dare ya), but all this means is that we'll have to shift paradigms to something else that's massively parallel.
Current technology relies on only a handful of processing paths though a chip being active at any one time. Compare this to our brains which are massively parallel at the cost of having lots of neurons sitting around and doing nothing most of the time. ('Nope, still don't smell anything new; nope, still not smelling anything...') The payoff comes when you want to do lots of things simultaneously, which is what happens in our visual centers, for example, when doing pattern recognition.
The harder problem (than transistor size) to deal with here is that our programming paradigm is going to have to shift to something that can take advantage of a massively parallel machine, which is really difficult. Not all problems can be made parallel, and only a few of them can be made parallel well.
On the bright side, it's mostly the hard ones like pattern recognition that work well parallel, so maybe the future is brighter than we think.
("Computer? Commm-PUTE-errr?" "Scotty, try the keyboard.")
> God does not play dice - Einstein
> Not only does God play dice, he sometimes throws them where they can't be seen. - Hawking
How about this one concerning parity violation:
Not only does God play dice, the dice are loaded.
(apologies for once again snipping quotes from Alpha Centauri)
I've finally had it: until slashdot gets article moderation, I am not coming back.
From the article:
"When you get to very, very small sizes, you are limited by relying on only a handful of electrons to describe the difference between on and off."A handful of electrons? Some analogies just don't work. :u)
The silicon chip business has been a bit like the gasoline/petroleum industry, in that many interesting ideas with plenty of potential have been pushed aside or starved for funding, as long as the prevailing product continues to deliver what we're used to.
Businesses are happiest growing and changing incrementally, and it usually takes outside factors to force major change. But when that happens, almost everyone's better off in the end, because we end up with more choices.
I look forward to looking back on the latter part of the 20th Century as the primitive Age of Silicon, and wondering how we ever survived without nano/optic/bio/quantum tech...