danger: technical stuff about the future!

An article posted only a couple hours ago on Ars Technica regarding memory bandwidth vs. many-core computing made me raise their eyebrows. The gist of the article is, as computers are now, adding more cores to the processor will not continue to be beneficial since there is a limit to how fast information can be read or written to the RAM. As you add more CPU cores, each one gets less and less memory bandwidth; the number of CPU cores has been increasing faster than memory bandwidth lately.

So, the article raises a valid point: the number of cores per socket is effectively limited in a practical sense by the total rate of memory access. I believe the problem with this argument—and the reason that we will be seeing vastly more than 16 cores in the future—is that you can always just split everything up.

You can put fast and compact DRAM on-die, right there on the processor die, as another level of cache (with maybe 128MB of memory per core? That’s not too hard). You can have multiple sockets: as massively multicore becomes the order of the day, more powerful computers will have appropriately more CPU sockets; the space and importance assigned to card slots may well lessen, as well.

And just giving an individual memory space to each processor isn’t such a bad idea either. So, say you have 128 processor cores, each one with maybe 128 or 512MB of dedicated, independent memory (perhaps on-chip)—you can then just have another 32GB or so of core memory shared between all of them and everything works out great. You can assign large chunks of work to each core, and the total memory bandwidth is off the charts.

There should also be a way to have data read from the core memory be uploaded simultaneously to an arbitrary set of CPU core caches, to make synchronizing data sets between cores easy as pie.

The point I’m making is, the article isn’t wrong in what it’s saying, but I believe it has an improper focus. It should focus not on the naysaying, pointing out all the reasons why technology can’t move on. (Don’t be silly, technology can always move on.) The article should focus on what should be changed about current computing architecture to adapt in the future.

edit: Basically, don’t freak out because current computing architecture has limitations. There is always some major aspect of the way computers are built that has to change next. If we’d done it perfect the first time, we would all be demi-gods ascended above the pithy material plane by now.

tl;dr – Don’t say that computers are limited because there are bottlenecks. Just make a whole ton of little computers and put them in the same box all wired together. Only, you know, with advanced technology. So that they go fast. And stuff.

2 Responses

  1. I agree that 16 cores for *consumer* use is going to be pointless. There isn’t any normal application(s) out there that are going to need the power of 16 cores to pump data through. Unless you want to be a crazy F@H powerhouse and/or do nothing but huge calculations with your processor, it’s not necessary.

    The main point the article seemed to be making was that the data bus of modern motherboards aren’t speeding up at a similar rate as the processors. Technically, they would be right, the data bus would cause a bottleneck, greatly reducing performance, but I highly doubt manufacturers would be stupid enough to let that happen.

    You also need to take into consideration, adding on-board “RAM” (or registers) to your processor is REALLY expensive. Those memory registers are exponentially more expensive than the RAM you buy and stick in yourself on your motherboard. However, they are very fast.

    You are right though, technology will never stop. It will always move forward. If they can’t make the current architecture powerful enough to allow for faster data rates, they will make a new one. Although, you have to look at that IEEE chart and notice one thing, that is with “conventional architecture.” It is quite possible it is architecture that was not designed work as efficiently as possible when linked together 64 times. I’m pretty sure we’re not going to be using “conventional architecture” in the future. We will have a new architecture to suite the needs/demands of the time.

  2. Woah, hold on. That’s going too far. 16 cores for consumer use might SEEM pointless RIGHT NOW–but call me back in 2 years and tell me what you think then.

    Processor speed has hit something of a practical barrier. More cores are the way the future is going: looking ahead, massively multicore is the way it’s going to be.

    Sure you might say that it’s REALLY expensive to add ram to a processor die. You’re missing the point. Currently, processor cache exists in the form of SRAM, which is really fast and has no refresh time but isn’t very dense at 6 transistors per bit. DRAM, on the other hand, has far fewer components and is far more dense on the die. The idea behind putting DRAM on CPU dies is that it gives you a large cache very nearby: just stick 256MB adjacent to the computational part and you’ve got a really nice L3 cache.

    And to finish up, yes. Technology is unstoppable, and architecture will probably change significantly, ushering in the age of massive multicore.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: