Taken for Granted

ESL, embedded processors, and more

A plea: Let’s reach a consensus on the meanings of ManyCore, MultiCore, MultiProcessor…..

Filed under: Uncategorized — April 17, 2008 @ 6:12 pm

I’m sitting here at the Electronic Design Process Symposium 2008 in Monterey after a fascinating morning session on multicore, manycore, MPSoC, SMP, AMP and the like, in which my colleague Steve Leibson and I participated. Together with impressions from attending the MultiCore Expo in Santa Clara a couple of weeks ago, the discussion, and the need to constantly define our terms (and redefine them, and discuss them when people disagree) makes me wish that the world of electronics, system and software design had some agreement on what the right terms are and what they mean. A kind of taxonomy of multicore related terms, together with a taxonomy of programming models (SMP, AMP, etc.) that everyone could be referred to when these discussions are held and that everyone could begin to build a consensus around would be of great value to all.

Taxonomies of this kind have been useful in EDA and ESL in the past – I think of the RASSP and VSIA work on model taxonomies that at one point was the most widely downloaded VSIA reference document. It would certainly be useful if everyone recognised a common definition for “multicore” when they hear it (2 cores? 4 cores? a few but less than 32? symmetric? cache-coherent?), or “manycore”….

As most people in industry may be too biased by their particular corporate inclinations (and I concur that I am too!), this would be a great thing for an academic to set up as a web site to which many could contribute – maybe a Wikipedia of the Multicore world. Perhaps a vigorous discussion by interested industry and academic people could lead to a consensus………perhaps not! But it might be worth trying.

While we were at it, it would also be a useful place for people who have successful examples of parallel or concurrent programming on multicore or mapping examples to homogeneous or heterogeneous multiprocessor systems to be able to list them there. This would be valuable for all who are new to this area who don’t have all the right history in the field that a lot of the HPC (high performance computing) people have, for example.

Is there someone in academia who could take the lead on this? I’m hoping….


  1. John Blyler:

    Hi Grant. Excellent idea to engage academia is this “multi-x” discussion. I would add that this should go beyond the IEEE and ACM domains, too. I’ll contact some of my colleagues and encourage others to do the same.

  2. Larry Lapides:

    Hi Grant. It has been a bit confusing the last few weeks at conferences, with all the different terms used willy nilly, sometimes even interchanged in the same presentation. It would be great if someone in academia would step up here. Also, the discussion forum on the Open Virtual Platforms website (www.OVPworld.org) could be used for this. I’ll get a category/forum set up there. Larry

  3. Markus Levy:

    The confusion and wide variety of terminology is just the tip of the iceberg. Stay tuned, the Multicore Association (or is that Manycore Association or Multi-x Association?) has something in the works’ that should help the industry get sorted out.

  4. Grant Martin:


    Reading (perhaps incorrectly) between the lines, it sounds as though the Multicore Association is working on a taxonomy of terms and types of architectural and programming model approaches. If that is the case, then it would be better to open up now rather than put something out that does not represent the full spectrum of the community After all, there are and have been many people in academia and industry working in this area who are not members of your association who have information and ideas to contribute.
    Please tell us more…………enquiring minds want to know!

    Best, Grant

  5. Observations from Uppsala » Blog Archive » Grant Martin on Manycore Multicore MPSoC AMP SMP Multi-X…:

    [...] Martin is a nice fellow from Tensilica who has a blog at ChipDesignMag. In a recent post, he raises the question of nomenclature and taxonomy for multicore processor designs: …the [...]

  6. Jakob Engblom:

    I think this is a great concern to all us active in the field. A clear taxonomy, however conceived, will help the discussion. As noted at http://jakob.engbloms.se/archives/114 , I think core count has to be kept out of the hardware taxonomy, and agree that programming models are a separate issue. I guess that the main area where you can usefully do a taxonomy will be to dissect the memory and communications systems of a chip — levels of memory, caches or programmer controlled, sizes per core, latencies to other memories, where IO can go. As well as the nature of the cores themselves, and their relative similarity or difference from each other.

    Great blog, by the way!

  7. Grant Martin:

    Jakob, thanks for the kind comments. I would recommend readers to look at Jakob’s blog, Observations from Uppsala, for his opinions on a variety of topics.

    I’m not sure that we can keep the core count completely out of taxonomies, however. This is simply because I have a suspicion that things change qualitatively, and not just quantitatively, as you go from 1 to 2 to 4 to 10 to 100 to 1000 to ???? cores. Somewhere along that increment, I suspect that we will want to treat systems differently, and programme them differently, and architect them differently. What the “magic” numbers will be in this incremental continuum, that separate multi-core systems of type X from type Y, I don’t know yet (suggestions always welcome). Note that there is no science here – just a gut feel (from a middle-aged or older gut!)

  8. Jakob Engblom:

    (we need a forum for this!!!)

    As I said in my comment to Grant’s comment on my blog, I think that the phase change in how chips work as we reach some core count can be explained as the result of underlying design decisions. In the cores, their interconnects, memories, communication structure, something… to simply build a 100-core chip will require certain things to be done differently compared to a 4-core homogeneous SMP processor unit like a Core 2 Quad (to use a very mundane an uninteresting example of mainstream architecture). And I really think that is where we need to have a taxonomy to help us.

  9. Defining Multicore, Manycore, Multiprocessor, MPSoC, SMP, etc.:

    [...] Full Story [...]

RSS feed for comments on this post. TrackBack URI

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>