A Multi-core Software API for Embedded MPSoC Environments

Heterogeneous multi-core architectures are the mainstream of processor designs for high-end embedded systems. Although such architectures promise high performance and low power consumption, challenges are raised for how to program such devices. This paper presents "Multi-core Software APIs" (MSA) to address these issues. MSA is a library-based framework based asynchronous remote procedure call (RPC) mechanism. Aiming at distributed memory architectures, which is common in embedded systems, MSA supplies a function-offloading programming model. MSA consists of three modules, RPC module, message module, and streaming module, to provide task offloading, data transmission, and streaming data transmission, respectively. Furthermore, this paper provides two case studies, π calculation and stereo vision, to show how MSA works on building multi-core applications.

[1]  Zhenjiang Hu,et al.  A library of constructive skeletons for sequential style of parallel programming , 2006, InfoScale '06.

[2]  Jenq Kuen Lee,et al.  Configurable SID-based multi-core simulators for embedded system education , 2009, WESE '09.

[3]  Krisztián Flautner,et al.  SoC-C: efficient programming abstractions for heterogeneous multicore systems on chip , 2008, CASES '08.

[4]  Stephen Gilmore,et al.  Flexible Skeletal Programming with eSkel , 2005, Euro-Par.

[5]  Satnam Singh,et al.  An Asynchronous Messaging Library for C , 2005 .

[6]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[7]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[8]  David R. Butenhof Programming with POSIX threads , 1993 .

[9]  Michael D. McCool,et al.  Performance evaluation of GPUs using the RapidMind development platform , 2006, SC.

[10]  Herbert Kuchen,et al.  A Skeleton Library , 2002, Euro-Par.

[11]  Shang-Hong Lai,et al.  Parallelization of belief propagation method on embedded multicore processors for stereo vision , 2008, 2008 IEEE/ACM/IFIP Workshop on Embedded Systems for Real-Time Multimedia.

[12]  Jenq Kuen Lee,et al.  Compiler Supports and Optimizations for PAC VLIW DSP Processors , 2005, LCPC.

[13]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[14]  Nanning Zheng,et al.  Stereo Matching Using Belief Propagation , 2003, IEEE Trans. Pattern Anal. Mach. Intell..

[15]  Jenq Kuen Lee,et al.  Enabling Streaming Remoting on Embedded Dual-Core Processors , 2008, 2008 37th International Conference on Parallel Processing.

[16]  Katherine Yelick,et al.  Introduction to Split-C , 1995 .