A retargetable parallel-programming framework for MPSoC

As more processing elements are integrated in a single chip, embedded software design becomes more challenging: It becomes a parallel programming for nontrivial heterogeneous multiprocessors with diverse communication architectures, and design constraints such as hardware cost, power, and timeliness. In the current practice of parallel programming with MPI or OpenMP, the programmer should manually optimize the parallel code for each target architecture and for the design constraints. Thus, the design-space exploration of MPSoC (multiprocessor systems-on-chip) costs become prohibitively large as software development overhead increases drastically. To solve this problem, we develop a parallel-programming framework based on a novel programming model called common intermediate code (CIC). In a CIC, functional parallelism and data parallelism of application tasks are specified independently of the target architecture and design constraints. Then, the CIC translator translates the CIC into the final parallel code, considering the target architecture and design constraints to make the CIC retargetable. Experiments with preliminary examples, including the H.263 decoder, show that the proposed parallel-programming framework increases the design productivity of MPSoC software significantly.

[1]  Hardware / Software Co-design of Multimedia Embedded Systems : PeaCE Approach , 2004 .

[2]  Grant Martin,et al.  Overview of the MPSoC design challenge , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[3]  Mitsuhisa Sato,et al.  OpenMP Implementation and Performance on Embedded Renesas M32R Chip Multiprocessor , 2006 .

[4]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[5]  Mitsuhisa Sato,et al.  Design of OpenMP Compiler for an SMP Cluster , 1999 .

[6]  Soonhoi Ha,et al.  Hardware-Software Codesign of Multimedia Embedded Systems: the PeaCE , 2006, 12th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'06).

[7]  Soonhoi Ha Model-based Programming Environment of Embedded Software for MPSoC , 2007, 2007 Asia and South Pacific Design Automation Conference.

[8]  Feng Liu,et al.  A Practical OpenMP Compiler for System on Chips , 2003, WOMPAT.

[9]  Wayne H. Wolf,et al.  Multiprocessor Systems-on-Chips , 2004, ISVLSI.

[10]  Erwin A. de Kock,et al.  Design and programming of embedded multiprocessors: an interface-centric approach , 2004, International Conference on Hardware/Software Codesign and System Synthesis, 2004. CODES + ISSS 2004..

[11]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[12]  Pierre G. Paulin,et al.  Parallel programming models for a multi-processor SoC platform applied to high-speed traffic management , 2004, CODES+ISSS '04.

[13]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[14]  Soonhoi Ha,et al.  Effective OpenMP Implementation and Translation For Multiprocessor System-On-Chip without Using OS , 2007, 2007 Asia and South Pacific Design Automation Conference.

[15]  Message P Forum,et al.  MPI: A Message-Passing Interface Standard , 1994 .

[16]  Minsoo Ryu,et al.  An RTOS API Translator for Model-Driven Embedded Software Development , 2006, 12th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'06).

[17]  Ahmed Amine Jerraya,et al.  Programming models and HW-SW interfaces abstraction for multi-processor SoC , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[18]  Aniruddha S. Gokhale,et al.  Developing applications using model-driven design environments , 2006, Computer.