Channels ▼

Markus Levy

Dr. Dobb's Bloggers

Implementing a Standard

March 10, 2009

It's important to understand the difference between a standard (such as the Multicore Association's Multicore Communications API, "MCAPI") and the implementation of that standard (such as PolyCore Software's "Poly-Messenger/MCAPI"). In order for software developers to take advantage of a standard, there must be an implementation of that standard that supports the architectures on which the application developer wishes their software to run.The Multicore Association developed the MCAPI standard, but commercial companies must adopt it and implement it within their RTOS and middleware products. Then, application developers can simply use it, and not have to program the various multicore devices on which they want their software to run. In one case, PolyCore Software has adopted MCAPI in its Poly-Messenger/MCAPI middleware, and Express Logic has provided RTOS support in its ThreadX RTOS. Together, this gives software application developers a simple API (MCAPI) which they can use to run anywhere that Poly-Messenger/MCAPI and ThreadX run.

Inter-core communication is a very hardware-specific operation. Any software that is written to perform such communication on a particular multicore chip must be modified to work with a different multicore chip. This "porting" is tedious, time-consuming, error-prone and technically challenging. MCAPI enables the application software developer to program to one API that is implemented by RTOS and middleware software across multiple multicore architectures. Those implementing MCAPI must do the "porting and tuning" to support MCAPI on various multicore architectures, but they must only do this once. The fruits of their one-time port then can be used by many developers who do not have to be concerned with the details of the multicore architecture on which their applications run, as long as they use MCAPI services through the MCAPI API.

In addition to "porting" MCAPI so that it runs on multiple multicore architectures, companies implementing MCAPI also will optimize their implementations so that their products run efficiently and provide applications with higher performance. Using an implementation with a standards-based communication API also makes it easier for the developer to try different mappings of an application across multiple cores for optimal performance.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.