6 ms·
Why CPUs Aren't Getting Any Faster
- bherms 16y agoAlso, we're flirting with the limits of Moore's "law" here. I did a report back in high school on it and speculated you'd never really see processors over 4GHz. I guess I was right. As you start to shrink transistors and the spacing between them, the chips get hotter, burn more power, and throw more errors. You also get electron "leakage" where the electrons inadvertently jump between gates, so the processors become less efficient and you have to run extra fault-tolerance to check for the errors. Multi-core and bringing all the other components up to speed is the way to go for now until a newer technology comes, like quantum computing or light based processing.
- notyourwork 16y agoYou can overclock a processor above 4GHz with a bit of liquid nitrogen and some bios changes. ;-)
- mrb 16y ago"you'd never really see processors over 4GHz." IBM released a 5GHz POWER processor 2.5 years ago: http://www.theregister.co.uk/2008/04/08/ibm_595_water/ http://www.theregister.co.uk/2008/04/08/ibm_595_water/
- ergo98 16y ago>I did a report back in high school on it and speculated you'd never really see processors over 4GHz. I guess I was right. I'm not sure whether you're being serious or if you're actually claiming some sort of advanced insight here. There has been speculation on the peak speed of processors for many, many years. I don't think they were consulting your high school reports.
- 1053r 16y agoThe reason CPUs aren't getting any faster is only tangentially mentioned in the article. Yes, it is heat dissipation. But why then did they get faster for so many decades? As the process size drops, you can crank up the clock-speed while leaving the total heat dissipation constant. But the heat density is related to the voltage, resistance, and the amount of time the transistors spend partially on or off (we wish they were perfect switches, but they aren't really). So as you switch faster, unless you can lower the resistance or voltage (which requires changing your materials), you probably spend more and more time in a partially on or off state. This means your heat density rises to the point where you are just south of burning things out. You make some engineering decision about the reliability you want in your chips, and calculate or test how high a heat density you can tolerate. But unless you change your materials so they use lower voltage, or invent new ways to move heat away faster, or use materials that are more conductive, you aren't upping the heat density or clock rate. But you can still make them smaller and use less power total for the same amount of computation. This is why reversible computing (gives off less heat), diamond substrates (much higher thermal conductivity), microfluidic channels (moves heat away faster), and parallelism (larger chips = more computation) are being explored. And only the last one is practical THIS year.
- borisk 16y agoIMHO the real reason is CPUs and manufacturing technologies have become extremely complex. So although there are known, simple ways to address the heat dissipation it takes a lot of time to implement them.
- Symmetry 16y agoAnother reason we've stopped getting faster is that we've reached a point where velocity saturation in silicon has become an important issue: http://en.wikipedia.org/wiki/Velocity_saturation http://en.wikipedia.org/wiki/Velocity_saturation
- seancron 16y agoWe're quickly reaching the limits of silicon-based chips, but new materials will allow us to make even faster CPUs. One such material is the material that won the Noble Prize in physics: graphene. Graphene can increase the frequency of an electromagnetic signal, which can allow for even faster CPUs in the 500-1000 Ghz range Source: http://web.mit.edu/newsoffice/2009/graphene-palacios-0319.html http://web.mit.edu/newsoffice/2009/graphene-palacios-0319.ht...
- ramchip 16y agoAs CPUs have become more capable, their energy consumption and heat production has grown rapidly. It's a problem so tenacious that chip manufacturers have been forced to create "systems on a chip"--conurbations of smaller, specialized processors. I don't think that's a very good explanation of SoCs.
- Brashman 16y agoAgreed. SoCs are also typically built for specific applications, different than the general purpose CPUs that article is mostly focusing on. I would also say that forced is a bit strong. SoCs are a good solution when (1) you have a very specific task and (2) can justify/afford the cost for a specialized chip.
- Brashman 16y agoThe article seems to imply that optimizing for power means Intel isn't innovating in CPUs. Optimizations in power allow the chip to be clocked faster (or perform more in parallel) leading to overall performance improvements. These optimizations are improvements in CPUs.
- edparcell 16y agoI think that one approach that may yield domain-specific improvements would be to add certain numerical routines into the x86 instruction set. When I was working in finance as a quant, I was shocked by the amount of time code spent executing the exponential function - it is used heavily in discount curves and similar which are the building blocks of much of financial mathematics. An efficient silicon implementation would have yielded a great improvement in speed.
- jerf 16y agoCRC32 instructions: http://www.strchr.com/crc32_popcnt http://www.strchr.com/crc32_popcnt String processing instructions in SSE4.2: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2 http://www.strchr.com/strcmp_and_strlen_using_sse_4.2 AES encryption instructions: http://en.wikipedia.org/wiki/AES_instruction_set http://en.wikipedia.org/wiki/AES_instruction_set So, if you didn't know about those, give yourself a point, because you nailed it. (No sarcasm.) There's a definite trend there.
- _delirium 16y agoIt can definitely help in certain domains, but adding special-case instructions in silicon can sometimes complicate a chip design enough that it slows it down overall. The trend for a while was in the other direction, towards not implementing in silicon things that were even already in the x86 instruction set, like the transcendental arithmetic functions, and doing them in microcode instead (the "RISCification" of x86 processors). It's possible that trend is now reversing, though.
- ctkrohn 16y agoThis is probably a stupid question, but if heat dissipation is a big problem, why can't we just build better cooling systems: bigger heatsinks, refrigeration, etc.? I'm not an electrical engineer, so I'm sure there's something I'm missing.
- alan 16y agoAt this point it's getting heat out of the CPU to the heatsink that's the problem. How close the various transistors are makes getting heat around them and out of the CPU.
- ctkrohn 16y agoAh, ok. Thanks for the explanation.
- wmf 16y agoFor given system cost, any marginal dollar spent on cooling requires a dollar less on silicon. Also, cooling isn't scalable so there are seriously diminishing returns above ~130W.
- jdavid 16y agoheat is a huge energy loss, server rooms require AC and at some point you cant add more AC. I wonder if this heat could actually get high enough to recoup some energy.
- WillyF 16y agoMost of the comments seem to focus on the supply side, but I think that demand for faster processors is waning—at least at the consumer level. I used to care what speed my processor was. Now I have to check my system info to remind me what I have in my MacBook Pro. Cloud computing has changed a lot for me as a user. Building faster processors is extremely expensive, so demand has to be a key concern for manufacturers. I still think there's plenty of demand for faster processors, and I'm sure we'll continue to see lots of innovation, but the issue doesn't seem to be as pressing as it was 10 years ago.
- deleted 16y ago[deleted]
- ergo98 16y agoHow is that a result of cloud computing? Your browser is often the most resource intensive application you use nowadays. CPUs have passed a curve where there just aren't any killer applications demanding more CPU power. For me the biggest "wish I had a faster CPU" need has been video encoding, however recently the encoder I use switched to using the GPU for encoding and the speed improved dramatically, so even that need has declined.
- smackfu 16y agoBack when I was in college for CE, one of my professors was very concerned that testing CPUs would eventually be the bottleneck. That verifying that it was actually working correctly would be such a burden once the number of transistors reached a high enough level. Of course, I never heard about this again. Ring a bell with anyone?
- alain94040 16y agoIt's called functional verification. Some say it's 70% of a project. I think that number is exaggerated, but maybe 50% is more realistic. My previous startup (http://eve-usa.com http://eve-usa.com) sells million-dollar boxes that are essentially debuggers, just like gdb is for software, but for chips. Very cool.
- pbw 16y agoThis wasn't a great article, but the topic fascinates me. I'm surprised the shift from faster-clocks to multi-core went so smoothly. No one seems to really mind. I really like my quad core, 4 processors is a lot nicer than one. But I wonder about hundreds or thousands of cores, if we'll see that and if people will start to worry that single threaded software uses ever smaller amounts of their shiny new hardware. Will there every be some magic layer that can run single threaded software on many cores? I wrote about the end of faster clocks and start of multi-core recently: http://www.kmeme.com/2010/09/clock-speed-wall.html http://www.kmeme.com/2010/09/clock-speed-wall.html
- jdavid 16y agoI have read that linux will start to bottleneck at 48 cores. damn i wish i knew where that article was.
- falsestprophet 16y agoLinux is a lot easier to fix than physics.
- pbw 16y agohttp://news.ycombinator.com/item?id=1744305 http://news.ycombinator.com/item?id=1744305
- alain94040 16y agoI believe the main reason is CPU micro-architecture (note: I have had way too much exposure in my life to the design of the CPU in your phone and in your laptop to have a non-biased opinion) What does that mean? Essentially that the race for deep pipelines has ended, with 20-40 stages being the optimal depth. After that, miss penalties just hurt too much. Therefore, when you can't make the pipeline deeper, you can't make the frequency much faster, you are stuck with following process progress (which is already pretty good). So it's more tempting to go after multi-cores: same pipeline depth, more silicium, more efficient overall.
- olegkikin 16y agoCPUs are getting faster, even if they have the same clock speed: http://www.cpubenchmark.net/high_end_cpus.html http://www.cpubenchmark.net/high_end_cpus.html
- jdavid 16y agoI have a few reasons chip speeds have stalled - Intel has been at the top for too long. - x86 is to complex - nVidia and AMD are being blocked from making x86 chips - PCs pretty much require x86 to exist. moving to graphine might allow for an increase in chip temp, but do you really want a processor running at a few hundred to a thousand degrees? are you willing to pump 200-2k watts into a chip? thank god that we didn't make this mistake with mobile and most platforms use an abstraction level language like c#, java, or javascript. I am personally hoping that data centers really are evaluating ARM chips. The instruction set is smaller, they are lower power, and there are more producers of ARM cores, so prices are much lower. A good intel chip will cost $200-$500, while a chip with an ARM core is probably in the $25-$100 range. How much does a tegra2, A4, or snapdragon cost? I imagine the future of data centers will be arrays of system on chip ARM cores paired with high doses of flash memory. Running your web app off of 1,000 ARM cores might cost you a few thousand a month.
- gaylordzach 16y agoInteresting thought to revert to many inexpensive cores as opposed to virtualising on "super-computers". However I don't think the equation stacks up. ARM is still a long way from offering high processing cores (e.g. no 64Bit). Their whole concept ties perfectly in the mobile world and it's no surprise they are so successful.
- jdavid 16y agoAs far as I know CUDA is 64bit, and you should be able to run CUDA on tegra2. So, for ARM the only reason to have 64bit is to address large memory, and drive controllers for flash can address the rest. heck if someone really wanted to do an integrated server environment they could put ram behind the drive controller. So having a 32bit core and a 64bit gpu on chip means you can do complex scientific math, but how many web apps really need 64bit floats, ints? In a web world if you needed 64bit, just make a service on a platform that works and either proxy the request or redirect to it. i guess mongodb would suck on a 32bit arm, but that's just because they have a lazy memory manager model. i am sure if arm got big or if someone paid 10gen to fix it, they would. I bet most of the web could work on a large array of high frequency ARM chips. I know that both google is working on it, and I have seen articles on facebook doing it. It's definitely experimental right now, but I think in the next 18 months you will see more public experiments. Mobile chips also have better power management than x86, and can go in to deep sleep and maintain cache really well. Watch this, i know it's going to POP. there is also evidence that nVidia is figuring out it's legal strategy for this. which has an ARM license, and bought transmeta.