GMA: a high speed metaheuristic algorithmic approach to hardware software partitioning for Low-cost SoCs

This paper presents a high speed and resource-efficient algorithm for the problem of Hardware Software Partitioning. The problem is modelled as a multi-dimensional global optimization problem with the aim of minimizing the area utilized, power dissipated, time of execution and system memory requirement of the implementation. An O(n) approach is proposed which significantly reduces the complexity of algorithms previously described in this domain, which can thus be implemented on resource constrained environments like low cost SoCs effectively. This enables speedy design decisions and henceforth, a faster development process. Then, detailed empirical analysis of the proposed algorithms is presented. A comparison of the execution time of the proposed algorithm with other major partitioning algorithms in the literature is also performed and the effectiveness of our approach is demonstrated. The time of execution is as low as 0.011 seconds, with deviation from optimal solution by less than 2%, for partitioning an algorithm consisting of 2500 blocks.

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

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

[3]  M. Montaz Ali,et al.  A Tabu Search-Based Memetic Algorithm for Hardware/Software Partitioning , 2014 .

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

[5]  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.

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

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

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

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

[10]  A. Wierzbicki A Mathematical Basis for Satisficing Decision Making , 1982 .

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

[12]  Jan Madsen,et al.  PACE: A Dynamic Programming Algorithm for Hardware/Software Partitioning , 1996, CODES.

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

[14]  Frank Vahid,et al.  Clustering for improved system-level functional partitioning , 1995, Proceedings of the Eighth International Symposium on System Synthesis.

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

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

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

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

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

[20]  Wu Jigang,et al.  Knapsack Model and Algorithm for HW/SW Partitioning Problem , 2004, International Conference on Computational Science.

[21]  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..

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

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

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

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

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

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

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

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

[30]  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).

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

[32]  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.

[33]  Giovanni De Micheli,et al.  Hardware-software Co-synthesis for Digital Systems , 2001 .

[34]  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.

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

[36]  Gang Wang,et al.  A New Approach for Task Level Computational Resource Bi-partitioning , 2003 .

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