Skip to Main Content

Harnessing the Multicore Mania

Here's an idea: Why not make a couple of those cores on a multicore chip something other than x86?

September 15, 2009

Back in the early 1980s there were a number of initiatives that turned the microprocessor into a language processor, sort of. What I mean by this is that the instruction set of the processor itself was actually a programming language rather than a construction of basic machine codes. Even Intel was in on this idea, with an overly advanced chip that ran the once-trendy ADA language.

As I recall, there was a chip that ran Forth natively and one that ran PASCAL natively. Nobody bought those chips, preferring the versatility of other code structures. But the idea was interesting, and apparently valid enough that chips were actually manufactured with this idea in mind. In fact, Intel believed that its ADA chip—the iAPX432, announced in 1980—was the future of the microprocessor, in much the same way the company was convinced that the Itanium was going to be the next future.

It is, apparently, hard to predict the future. But these beliefs have to be based on some sort of logic that was probably as valid as any thinking to the contrary. So maybe it's time to re-introduce the idea, but in a new and interesting way.

The way things get into a market like this has never been through brute force. Apple has managed to move from base platform to base platform (6502, 68000, PPC, x86) only thanks to an amazing juggling act that allowed the changes to be almost transparent to the end user. The x86 advancements have been very slow by comparison, but they have taken place gradually too.

The only way a processor could run a programming language as its machine/native code is to slip it into the mix as a bonus, something extra, rather than the platform shifts attempted in the past.

Well, the current microprocessor architecture is inviting this! What good are multiple cores that are just copies of each other when they can all be different?

The semiconductor guys have long since toyed with the idea of putting an entire system on a chip, and these newest chips do much of that. But most of these multicore superchips just take the same design and copy it over and over. We'll be seeing 8 and eventually 16 copies of the exact same microprocessor on the chips coming soon to a computer near you.

How about two x86 cores and two cores that run C++ natively? What would that be like? Or how about three x86 cores and just one C++ core…just to see if anyone uses the C++ core at all.

And it doesn't have to be C++, it could be anything, including PASCAL, since PASCAL was already baked into a chip years ago and may not require much design work. Someone pointed out to me almost 30 years ago, "The reason these high level languages on a chip have not panned out is because nobody has tried FORTRAN." Can you imagine the popularity within the scientific and engineering community of a chip running FORTRAN natively?

Well, heck—how about a 16-core chip with eight x86 cores and a variety of language cores? Why not? It seems to be a matter or real estate and figuring some way for the various cores to talk to each other and to the outside world.

Right now we are in the midst of multicore mania, but most observers have given a limit to the phenomenon based on the fact that once you get to 16 or perhaps 32 cores, communications between them becomes a negative performance factor that limits further advancement. It's possible, for example, that a 32-core chip would outperform a 64-core chip. But the sky might be the limit with specialty cores like a PASCAL core.

The point is that something new like this might actually be used without interrupting the apparent never-ending x86 dominance.

And, if nothing else, it would be an exciting idea that would create a needed buzz. Right now AMD or Intel can bring out yet another multicore chip and the chorus is a collective yawn. There is no real enthusiasm like during the 80386 era, for example. This despite the fact that today's new chips are ridiculously powerful.

Something new is needed. A gimmick! Yes, but a practical gimmick that might change the way chips are architected.

Something has to be done, and this idea is a good one.