Subscribe to EDN

Field Notes from DAC 2008: Multi-Processor SOCs—The Next Generation

June 12, 2008

Former EDN editor Markus Levy (and president of EEMBC and the Multicore Association) ran a DAC Pavilion panel on multiprocessor SOCs this week at DAC in Anaheim. On the panel were Sreenivasa Rao (Analog Devices), Max Domeika (Intel Corp), and Grant Martin (Tensilica). This panel very much reminded me of the fable of the blind men and the elephant for the varied panelist views of what this topic actually meant. Levy telegraphed the broad scope of the topic by saying “In the next 45 minutes, we’re going to tell you everything you need to know about multicore.” NOT!

Rao started by saying that, from his perspective, the biggest challenge was designing the multicore architecture itself. Usually, he said, it’s a bus system with a memory hierarchy. Now I take great exception to this statement, not because it’s wrong but because it should be wrong. I agree that most of today’s system architects gravitate to putting multiple processors on a bus, communicating through a memory hierarchy. This is a really inefficient way to harness microprocessors although it might work just great for horse teams pulling stagecoaches. A bus is naturally a limited resource with a relatively narrow width, a finite bandwidth, and a large acquisition overhead in a multiprocessor environment. It may well be the best way to hook up a bunch of processors, but no system designer should ever assume that it’s the best way without some thought and careful analysis.

Next up was Domeika, speaking from the perspective of a company that makes dual- and quad-core SMPs (symmetric multiprocessors). “The major challenge is how to program these devices,” he said. “We can build a lot of processors on chip. The problem is how to harness them.” Again, this is from the SMP perspective where you have a relatively few big, fast, general-purpose processors on which you are going to run all your tasks regardless of how well those tasks fit on the processors. Naturally, programming is a challenge using this approach.

Martin said, “The biggest challenge our customers face is mapping tasks to processors in multicore systems.” Now Grant Martin and I work at the same company and we co-author a lot of articles and papers, so you shouldn’t be surprised to find me in violent agreement with him. But I’d do so without the corporate brotherhood, given my systems-design background. If you tell a system architect that the next system his or her team designs will incorporate 100 processors, you’ll likely see furrows of concern appear on their forehead. However, if you instead say that the system will consist of 100 hardware blocks, don’t expect to see a ripple.

Incredible! What…is…the…difference??? A processor is nothing more than a chunk of hardware controlled by firmware. Draw a black box around the thing and you literally cannot tell whether the circuitry in the box is random state-machine-plus-datapath RTL or processor RTL. Its shouldn’t make a difference, but somehow it does.

Further, it makes a difference in the way the boxes get interconnected. Again, say it’s 100 boxes of hardware and you’ll tend to get point-to-point system connections. No one connects hardware blocks with buses automatically. There has to be a good reason. However, say it’s 100 processors and you’ll get buses, bus hierarchies, and networks on chips. All of these approaches incur a lot of overhead. Hence they may all be the wrong sort of interconnect. At the very least, they should not be the default choice of an unthinking architect.

Posted by Steve Leibson on June 12, 2008 | Comments (4)

June 16, 2008
In response to: Field Notes from DAC 2008: Multi-Processor SOCs—The Next Generation
Steve Leibson commented:

Barry, I don't think your system model reflects the way sestems are really composed. We don't have systems with one really big C program, we have systems with lots of little interconnected C programs. They don't need a unified memory model. They need the standard C pipes, queues, and streams that most C programmers already know. Policebox, dual-ported memory is alive and well. It's often used where two processors need random access to small amounts of shared memory, but the hardware overhead makes true dual-ported memories less popular, in my opinion, than FIFO memories which are also dual-ported but are not random access. For stream-based communications, FIFOs offer the benefits of dual-ported memories with less hardware overhead.


June 16, 2008
In response to: Field Notes from DAC 2008: Multi-Processor SOCs—The Next Generation
Policebox commented:

What ever happened to dual port memory? Two processors, each with their own private memory space and a dual ported shared memory have long made a natural way for multiple processors to work together. Besides being a highly efficient way to do "systolic" work where processors work on different stages of processing a single data stream, it programs easily in C. You need an extension that allows you to specify the location of variables (so the shared varibles can be mapped), but then you simply write the stages as separate but co-operating programs.


June 16, 2008
In response to: Field Notes from DAC 2008: Multi-Processor SOCs—The Next Generation
Barry commented:

The difference, probably, is that C promptly stops working if you do not have a unified address space. Suddenly SW engineers have to start thinking like HW engineers in order to work with p2p connections making programming complicated. All thoughts of portability then go out the window unless you can solve the task mapping issue with the compiler or similar so instead we are stuck with inefficient shared buses. I suspect the industry is going to keep banging its head on this problem until a different programming model is adopted but that will not happen anytime soon. Meanwhile EDA vendors need to be producing tools that help ease the pain especially with legacy code.


June 15, 2008
In response to: Field Notes from DAC 2008: Multi-Processor SOCs—The Next Generation
Vic Tee commented:

What a relief to see some real System Engineering "out of the box" thinking to counter the "get on the bus" mentality. Multi-processor SOCs should enable more innovative system design but not create the legacy traps seen with many processor enabled systems.

POST A COMMENT
Display Name
captcha

Before submitting this form, please type the characters displayed above. Note the letters are case sensitive:

Advertisement
Advertisement
Advertisement
About EDN   |   Site Map   |   Contact Us   |   Subscription   |   RSS
© 2011 UBM Electronics. All rights reserved.
Use of this Web site is subject to its Terms of Use | Privacy Policy

Please visit these other UBM Canon sites

UBM Canon | Design News | Test & Measurement World | Packaging Digest | EDN | Qmed | Pharmalive | Appliance Magazine | Plastics Today | Powder Bulk Solids | Canon Trade Shows