The Multicore Association, an industry consortium focused on developing standards that speed time to market for systems using multicore processors, has relased version 2.0 of its multicore communications application programming interface (MCAPI).

Available for download from the consortium?s website, this enhanced version adds new features.

MCAPI provides a lightweight infrastructure for inter-process communication within embedded systems, where resources are scarce. One aspect of that infrastructure involves the specification of a network of communication nodes, where a node can be a process, thread, instance of an operating system, hardware accelerator, or processor core. MCAPI Version 2.0 adds a level of hierarchy into that network through the introduction of "domains." Domains can be used in a variety of implementation-specific ways, such as for representing all the cores on a given chip or for dividing a topology into public and secure areas. This gives designers more sophisticated control over the routing and security of their messages.

The Multicore Association has also increased runtime flexibility through the introduction of three new types of initialization parameters. The first provides a standardized way of setting node attributes for any MCAPI implementation. The second is user-defined and allows implementation-specific configuration of the MCAPI infrastructure at system start-up. The third new type of initialization parameter provides implementation information, such as the initial network topology or the MCAPI version being executed.

The MCAPI working group made a number of other changes to enhance functionality and to improve consistency and to ensure type compatibility with the consortium?s new multicore resource API (MRAPI) standard.

MCAPI, whose original specification launched in April 2008, is supported by development tools and runtime solutions from both commercial companies and academia for use in the implementation of multicore embedded systems.

MCAPI has found usage in a variety of multicore embedded systems, whether built using multiple chips on a board or as systems-on-a-chip (SoCs), which are embedded systems on a single piece of silicon.

Along with the introduction of the MCAPI 2.0 specification, the Multicore Association provides an example implementation in the form of an application library created with the C programming language. The implementation is not tuned for any specific operating system or hardware, and is intended to serve as an example to programmers either wanting to try both the MCAPI and MRAPI APIs for application programming or to implement the standards.