Global Sources
EE Times-India
Stay in touch with EE Times India
 
EE Times-India > Embedded
 
 
Embedded  

Examining a portable, multi-core runtime library

Posted: 28 May 2014     Print Version  Bookmark and Share

Keywords:embedded systems  APIs  Multicore Association  MCA  MCAPI 

Multicore embedded systems are widely utilised in telecommunication systems, robotics, automotive vision systems, medical applications, life critical systems and more. Today, they usually consist of homogeneous/heterogeneous cores operating on different ISAs, operating systems, and dedicated memory systems in order to provide high throughput, low latency, and energy-efficient solutions.

In spite of the great potential of multi-core embedded systems, the lack of software development tools and standards has created a barrier to their full adoption. Programmers are required to write low-level code, schedule work units, and manage synchronisation between cores if they are to reap significant benefits from these systems. As system complexity increases, it is not practical to expect programmers to handle all the low-level details in order to exploit the platform's concurrency.

Handling these manually is not only time consuming, but an error-prone and laborious task. Even worse, software portability is almost non-existent. The state of the art is that hardware vendors supply vendor-specific development tool chains tied to the details of the device they were originally designed for; this may preclude use of the software on any future device even from the same family. Some of the existing approaches that address this issue include debugging language extensions or parallel programming libraries, but there are no well-accepted joint standards in the embedded systems domain.

To address this issue, a group of vendors and software companies formed the Multicore Association (MCA). The main aim of this association is to reduce the complexity involved in writing software for multi-core chips. MCA has put together a cohesive set of APIs to standardise communication (MCAPI), resource management (MRAPI), and virtualisation spanning cores on different chips. Since MCA APIs are vendor-independent application-layer specifications, they do not require architectural or OS support, hence they enable system developers to write portable program codes that will scale through different architectures.

However, the MCA APIs are low-level, library-based protocols that could make programming still tedious. Programmers still have to explore the features of MCA APIs and largely restructure the code using MCA APIs. As a result, a high-level programming model is needed that could help to express concurrency in a given application easily, while providing sufficient features capable of capturing the low-level details of the underlying systems. At the University of Houston, our research group, in collaboration with Freescale Semiconductor Inc., has investigated the use of a compiler-runtime approach that makes use of a high-level programming standard, the OpenMP model, in which the underlying OpenMP runtime library exploits the capabilities of MCA APIs to hide low-level details of the platform.

OpenMP is a de facto standard for shared-memory parallel programming. It provides a set of high-level directives, runtime library routines, and environment variables that enable programmers to easily express data and task parallelism in an incremental programming style. The compiler handles the low-level details of thread management, loop scheduling, and synchronisation primitives. OpenMP code is portable across a number of compilers and architectures, which allows the programmer to focus on the application instead of low-level details of the platform. Embedded programmers could therefore benefit from such software portability and programmability.

1 • 2 Next Page Last Page



Comment on "Examining a portable, multi-core run..."
Comments:  
*  You can enter [0] more charecters.
*Verify code:
 
 
Webinars

Seminars

Visit Asia Webinars to learn about the latest in technology and get practical design tips.

 

Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

 
Back to Top