Pipelined-Scheduling of Multiple Embedded Applications on a Multi-Processor-SoC

Due to clock and power constraints, it is hard to extract more power out of single core architectures. Thus, multi-core systems are now the architecture of choice to provide the needed computing power. In embedded system, multi-processor system-on-a-chip (MPSoC) is widely used to provide the needed power to effectively run complex embedded applications. However, to effectively utilize an MPSoC system, tools to generate optimized schedules is highly needed. In this paper, we design an integrated approach to task scheduling and memory partitioning of multiple applications utilizing the MPSoC system simultaneously. This is in contrast to the traditional decoupled approach that looks at task scheduling and memory partitioning as two separate problems. Our framework is also based on pipelined scheduling to increase the throughput of the system. Results on different benchmarks show the effectiveness of our techniques.

[1]  Marco Caccamo,et al.  Memory-Aware Scheduling of Multicore Task Sets for Real-Time Systems , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[2]  Alexandru Nicolau,et al.  Memory Issues in Embedded Systems-on-Chip , 1999 .

[3]  Hyunchul Shin,et al.  Effective Task Scheduling for Embedded Systems Using Iterative Cluster Slack Optimization , 2013 .

[4]  Giovanni De Micheli,et al.  Readings in hardware / software co-design , 2001 .

[5]  Luca Benini,et al.  Polynomial-time algorithm for on-chip scratchpad memory partitioning , 2003, CASES '03.

[6]  Luca Benini,et al.  Allocation and Scheduling for MPSoCs via decomposition and no-good generation , 2005, IJCAI.

[7]  Shiann-Rong Kuang,et al.  Partitioning and Pipelined Scheduling of Embedded System Using Integer Linear Programming , 2005, 11th International Conference on Parallel and Distributed Systems (ICPADS'05).

[8]  Ahmed Amine Jerraya,et al.  An optimal memory allocation for application-specific multiprocessor system-on-chip , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[9]  Ranga Vemuri,et al.  Hardware-software partitioning and pipelined scheduling of transformative applications , 2002, IEEE Trans. Very Large Scale Integr. Syst..

[10]  Peter Marwedel,et al.  Assigning program and data objects to scratchpad for energy reduction , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[11]  Alexandra Fedorova,et al.  Contention-Aware Scheduling on Multicore Systems , 2010, TOCS.

[12]  Peter Marwedel,et al.  Hardware/software partitioning using integer programming , 1996, Proceedings ED&TC European Design and Test Conference.

[13]  Todd M. Austin,et al.  SimpleScalar: An Infrastructure for Computer System Modeling , 2002, Computer.

[14]  Mihaela van der Schaar,et al.  Online Energy-Efficient Task-Graph Scheduling for Multicore Platforms , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[15]  Tei-Wei Kuo,et al.  User-centric energy-efficient scheduling on multi-core mobile devices , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[16]  Minming Li,et al.  Joint task assignment and cache partitioning with cache locking for WCET minimization on MPSoC , 2011, J. Parallel Distributed Comput..

[17]  Ishfaq Ahmad,et al.  Benchmarking and Comparison of the Task Graph Scheduling Algorithms , 1999, J. Parallel Distributed Comput..

[18]  Rajeev Barua,et al.  An optimal memory allocation scheme for scratch-pad-based embedded systems , 2002, TECS.

[19]  Mahmut T. Kandemir,et al.  An integer linear programming based approach to simultaneous memory space partitioning and data allocation for chip multiprocessors , 2006, IEEE Computer Society Annual Symposium on Emerging VLSI Technologies and Architectures (ISVLSI'06).

[20]  Mahmut T. Kandemir,et al.  Exploiting shared scratch pad memory space in embedded multiprocessor systems , 2002, DAC '02.

[21]  Marco Caccamo,et al.  Memory-centric scheduling for multicore hard real-time systems , 2012, Real-Time Systems.

[22]  Nacer-Eddine Zergainoh,et al.  Scheduling with accurate communication delay model and scheduler implementation for multiprocessor system-on-chip , 2007, Des. Autom. Embed. Syst..

[23]  Peter Marwedel,et al.  Scratchpad memory: a design alternative for cache on-chip memory in embedded systems , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).

[24]  Linwei Niu,et al.  Power-aware scheduling for real-time embedded systems , 2006 .

[25]  Vinay G. Vaidya,et al.  Dynamic scheduler for multi-core systems , 2010, 2010 2nd International Conference on Software Technology and Engineering.

[26]  Tulika Mitra,et al.  Integrated scratchpad memory optimization and task scheduling for MPSoC architectures , 2006, CASES '06.

[27]  Jason Cong,et al.  MC-Sim: an efficient simulation tool for MPSoC designs , 2008, ICCAD 2008.

[28]  Mahmut T. Kandemir,et al.  Dynamic partitioning of processing and memory resources in embedded MPSoC architectures , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[29]  Carl von Platen,et al.  Storage allocation for embedded processors , 2001, CASES '01.

[30]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[31]  Jason Cong,et al.  Energy-efficient scheduling on heterogeneous multi-core architectures , 2012, ISLPED '12.

[32]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[33]  Rajeev Barua,et al.  Heap data allocation to scratch-pad memory in embedded systems , 2005, J. Embed. Comput..