PGMA: An algorithmic approach for multi-objective hardware software partitioning

Abstract Designing embedded systems efficiently has always been of significant interest. This has been tremendously scaled-up for contemporary and high-end applications with their increasing complexity and the need to satisfy multiple conflicting constraints. This paper presents a high-speed Hardware Software Partitioning technique for the design of such systems. The partitioning problem has been modeled as a multi-dimensional optimization problem with the aim of minimizing the area utilization, power dissipation, time of execution and system memory requirement of the implementation. A two-phased algorithm (Phased Greedy Metaheuristic Algorithm or PGMA) has been proposed which also takes into consideration the communication costs between hardware and software Processing-Engines (PEs) while partitioning. Subsequently, a detailed empirical analysis of the proposed algorithm is presented to ascertain its efficiency, quality and speed. The execution time is as low as 18 ms for partitioning an algorithm consisting of 1000 blocks. Thereafter, the proposed algorithm is applied to a real-life embedded system, the Joint Photographic Expert-Group (JPEG) Encoder, to demonstrate its effectiveness. For a power constraint of 600 mW, an area utilization of 58.28% has been achieved, which is the maximum amongst all the reported works till date, to the best of our knowledge. This allowed for a decreased offloading of tasks to software, resulting in a memory usage of only 14 KB and execution time of 20 ms.

[1]  Rong-Guey Chang,et al.  Efficient Hardware/Software Partitioning Approach for Embedded Multiprocessor Systems , 2006, 2006 International Symposium on VLSI Design, Automation and Test.

[2]  Wu Jigang,et al.  Algorithmic aspects of area-efficient hardware/software partitioning , 2006, The Journal of Supercomputing.

[3]  Mohamed B. Abdelhalim,et al.  An integrated high-level hardware/software partitioning methodology , 2011, Des. Autom. Embed. Syst..

[4]  Markus Weinhardt,et al.  Integer Programming for Partitioning in Software Oriented Codesign , 1995, FPL.

[5]  Cong Wang,et al.  Hardware/Software Partitioning Algorithm Based on Genetic Algorithm , 2014, J. Comput..

[6]  Zoltán Ádám Mann,et al.  Algorithmic aspects of hardware/software partitioning , 2005, TODE.

[7]  Frank Vahid,et al.  Energy savings and speedups from partitioning critical software loops to hardware in embedded systems , 2004, TECS.

[8]  P. Arato,et al.  Hardware-software partitioning in embedded system design , 2003, IEEE International Symposium on Intelligent Signal Processing, 2003.

[9]  Shubhajit Roy Chowdhury,et al.  GMA: a high speed metaheuristic algorithmic approach to hardware software partitioning for Low-cost SoCs , 2015, 2015 International Symposium on Rapid System Prototyping (RSP).

[10]  Cong Wang,et al.  Implementation of underwater acoustic modem based on the OMAP-L138 processor , 2014, 2014 IEEE International Conference on Signal Processing, Communications and Computing (ICSPCC).

[11]  Anne Elisabeth Haxthausen,et al.  LYCOS: the Lyngby Co-Synthesis System , 1997, Des. Autom. Embed. Syst..

[12]  Wu Jigang,et al.  Efficient Algorithm for Hardware/Software Partitioning and Scheduling on MPSoC , 2013, J. Comput..

[13]  Wu Jigang,et al.  Efficient heuristic and tabu search for hardware/software partitioning , 2013, The Journal of Supercomputing.

[14]  Dilip Datta,et al.  Multi-objective hardware-software partitioning of embedded systems: A case study of JPEG encoder , 2014, Appl. Soft Comput..

[15]  Witold Pedrycz,et al.  Genetic algorithms for hardware-software partitioning and optimal resource allocation , 2007, J. Syst. Archit..

[16]  Jan Madsen,et al.  PACE: a dynamic programming algorithm for hardware/software partitioning , 1996, Proceedings of 4th International Workshop on Hardware/Software Co-Design. Codes/CASHE '96.

[17]  Wu Jigang,et al.  Algorithmic aspects for power-efficient hardware/software partitioning , 2008, Math. Comput. Simul..

[18]  Wu Jigang,et al.  Efficient heuristic algorithms for path-based hardware/software partitioning , 2010, Math. Comput. Model..

[19]  Arnaud Fréville,et al.  The multidimensional 0-1 knapsack problem: An overview , 2004, Eur. J. Oper. Res..

[20]  Yang-Hsin Fan,et al.  Hardware-oriented Partition for Embedded Multiprocessor FPGA Systems , 2007, Second International Conference on Innovative Computing, Informatio and Control (ICICIC 2007).

[21]  Wu Jigang,et al.  Algorithmic Aspects of Hardware/Software Partitioning: 1D Search Algorithms , 2010, IEEE Transactions on Computers.

[22]  Yu Jiang,et al.  Uncertain Model and Algorithm for Hardware/Software Partitioning , 2012, 2012 IEEE Computer Society Annual Symposium on VLSI.

[23]  Frank Vahid,et al.  Extending the Kernighan/Lin Heuristic for Hardware and Software Functional Partitioning , 1997, Des. Autom. Embed. Syst..

[24]  Daniel D. Gajski,et al.  Clustering for improved system-level functional partitioning , 1995 .

[25]  Jörg Henkel,et al.  An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[26]  Giovanni De Micheli,et al.  Synthesis and simulation of digital systems containing interacting hardware and software components , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[27]  Bin Li,et al.  A hardware/software partitioning algorithm based on artificial immune principles , 2008, Appl. Soft Comput..

[28]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.

[29]  Peter Marwedel,et al.  An Algorithm for Hardware/Software Partitioning Using Mixed Integer Linear Programming , 1997, Des. Autom. Embed. Syst..

[30]  Stefano Mattoccia,et al.  Real-time tracking with an embedded 3D camera with FPGA processing , 2014, 2014 International Conference on 3D Imaging (IC3D).

[31]  Rajeev Kumar,et al.  Analysis of a Multiobjective Evolutionary Algorithm on the 0-1 knapsack problem , 2006, Theor. Comput. Sci..

[32]  Yang-Hsin Fan,et al.  Enhancement of Hardware-Software Partition for Embedded Multiprocessor FPGA Systems , 2007 .

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

[34]  Andrew V. Goldberg,et al.  On Implementing the Push—Relabel Method for the Maximum Flow Problem , 1997, Algorithmica.

[35]  Frank Vahid,et al.  A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning , 1994, EURO-DAC '94.

[36]  Theerayod Wiangtong,et al.  Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware–Software Codesign , 2002, Des. Autom. Embed. Syst..

[37]  Wu Jigang,et al.  Algorithmic aspects for functional partitioning and scheduling in hardware/software co-design , 2008, Des. Autom. Embed. Syst..

[38]  Juan Carlos López,et al.  On the hardware-software partitioning problem: System modeling and partitioning techniques , 2003, TODE.

[39]  Amit Konar,et al.  Hardware Software Partitioning Problem in Embedded System Design Using Particle Swarm Optimization Algorithm , 2008, 2008 International Conference on Complex, Intelligent and Software Intensive Systems.

[40]  Frank Vahid,et al.  A study of the speedups and competitiveness of FPGA soft processor cores using dynamic hardware/software partitioning , 2005, Design, Automation and Test in Europe.

[41]  Jan Madsen,et al.  Hardware resource allocation for hardware/software partitioning in the LYCOS system , 1998, Proceedings Design, Automation and Test in Europe.

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

[43]  Huanhuan Chen,et al.  HW-SW partitioning based on genetic algorithm , 2004, Proceedings of the 2004 Congress on Evolutionary Computation (IEEE Cat. No.04TH8753).

[44]  Giovanni De Micheli,et al.  Hardware-software cosynthesis for digital systems , 1993, IEEE Design & Test of Computers.

[45]  Teddy Mantoro,et al.  Comparison between RSA hardware and software implementation for WSNs security schemes , 2010, Proceeding of the 3rd International Conference on Information and Communication Technology for the Moslem World (ICT4M) 2010.

[46]  Wu Jigang,et al.  Algorithmic Aspects for Bi-Objective Multiple-Choice Hardware/Software Partitioning , 2014, 2014 Sixth International Symposium on Parallel Architectures, Algorithms and Programming.

[47]  Wu Jigang,et al.  Algorithmic aspects for multiple-choice hardware/software partitioning , 2012, Comput. Oper. Res..

[48]  Wu Jigang,et al.  New Model and Algorithm for Hardware/Software Partitioning , 2008, Journal of Computer Science and Technology.