A window-based automatic hardware/software partitioning heuristic

System-level design decisions such as HW/SW partitioning, target architecture selection and scheduler selection are some of the main concerns of current complex system-on-chip (SOC) designs. In this paper, a novel window-based heuristic is proposed that addresses the issue of design space exploration in applications that have a data flow characteristic. The objective in this paper is to partition the application into HW and SW components such that the execution time of the application is minimized while simultaneously satisfying the hard area constraints of the HW units. In this algorithm, the search space is divided into smaller intervals, referred to as windows. For each window the full search is performed to find the optimum partitioning and scheduling solution for that specific window. Moreover, in this paper a novel indexing mechanism is presented for identifying the nodes in the task graph. The proposed index specifies not only the relation of each node with respect to the other nodes in the graph, but also its position in the task graph. With the help of the proposed windowing and indexing techniques, the time required for partitioning is reduced significantly. Simulation results indicate that the proposed algorithm improves the search time by 74% compared to conventional optimization heuristics namely Genetic Algorithm (GA), Simulated Annealing (SA) and Tabu Search (TS), while providing comparable results in terms of the overall execution time of the partitioned system.

[1]  Petru Eles,et al.  System Level Hardware/Software Partitioning Based on Simulated Annealing and Tabu Search , 1997, Des. Autom. Embed. Syst..

[2]  Theerayod Wiangtong,et al.  Tabu search with intensification strategy for functional partitioning in hardware-software codesign , 2002, Proceedings. 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[3]  Stephen P. Crago,et al.  A communication scheduling algorithm for multi-FPGA systems , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).

[4]  Michel Auguin,et al.  HW / SW partitioning approach for reconfigurable system design , 2002, CASES '02.

[5]  David S. Johnson,et al.  Some Simplified NP-Complete Graph Problems , 1976, Theor. Comput. Sci..

[6]  T. Wiangtong,et al.  Hardware/software codesign: a systematic approach targeting data-intensive applications , 2005, IEEE Signal Processing Magazine.

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

[8]  H. Oudghiri,et al.  Global weighted scheduling and allocation algorithms , 1992, [1992] Proceedings The European Conference on Design Automation.

[9]  Nikil D. Dutt,et al.  Efficient search space exploration for HW-SW partitioning , 2004, International Conference on Hardware/Software Codesign and System Synthesis, 2004. CODES + ISSS 2004..

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

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

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

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

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

[15]  R.K. Gupta,et al.  System-level synthesis using re-programmable components , 1992, [1992] Proceedings The European Conference on Design Automation.

[16]  Edward A. Lee,et al.  A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem , 1994, CODES.

[17]  Ishfaq Ahmad,et al.  Dynamic Critical-Path Scheduling: An Effective Technique for Allocating Task Graphs to Multiprocessors , 1996, IEEE Trans. Parallel Distributed Syst..