Abstract
Hardware/software (HW/SW) partitioning is a crucial step in HW/SW codesign that determines which components of the system are implemented on hardware and which ones on software. It has been proved that the HW/SW partitioning problem is NP-hard. In this paper, we present two approaches for HW/SW partitioning that aims to minimize the hardware cost while taking into account software and communication constraints. The first is a heuristic approach that treats the HW/SW partitioning problem as an extended 0–1 knapsack problem. In the second approach, tabu search is used to further improve the solution obtained from the proposed heuristic algorithm. Experimental results show that the proposed algorithms outperform a recently reported work by up to 28 %.







Similar content being viewed by others
References
Staunstrup J, Wolf WH (1997) Hardware/software co-design: principles and practice. Springer, Berlin
Wu J, Srikanthan T, Jiao T (2008) Efficient heuristics for functional partitioning and scheduling in hardware/software co-design. Des Autom Embed Syst 12(4):345–375
Onils M, Jantsch A, Hemani A, Tenhunen H (1995) Interactive hardware-software partitioning and memory allocation based on data transfer profiling. In: International conference on recent advances in mechatronics, Istanbul, Turkey, pp 447–452
Wu J, Srikanthan T (2006) Low-complex dynamic programming algorithm for hardware/software partitioning. Inf Process Lett 98(2):41–46
Niemann R, Marwedel P (1997) An algorithm for hardware/software partitioning using mixed integer linear programming. Des Autom Embed Syst 2:165–193. Special issue
Weinhardt M (1995) Integer programming for partitioning in software oriented codesign. In: FPL’95: proceedings of the 5th international workshop on field-programmable logic and applications. Springer, London, pp 227–234
Chatha KS, Vemuri R (2002) Hardware–software partitioning and pipelined scheduling of transformative applications. IEEE Trans Very Large Scale Integr (VLSI) Syst 10(3):193–208
Ernst R, Henkel J, Benner T (1993) Hardware–software cosynthesis for microcontrollers. IEEE Des Test Comput 10(4):64–75
Wu J, Srikanthan T, Yan C (2008) Algorithmic aspects for power-efficient hardware/software partitioning. Math Comput Simul 79(4):1204–1215
Niemann R, Marwedel P (1996) Hardware/software partitioning using integer programming. In: Proceedings of the European design and test conference (ED and TC). Paris, France. IEEE Comput Soc, Los Alamitos, pp 473–480
Vahid F, Gajski DD (1995) Clustering for improved system-level functional partitioning. In: ISSS’95: proceedings of the 8th international symposium on system synthesis. ACM, New York, pp 28–35
Vahid F, Gajski DD, Gong J (1994) A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning. In: EURO-DAC’94: proceedings of the conference on European design automation. IEEE Comput Soc, Los Alamitos, pp 214–219
Quan G, Hu X, Greenwood GW (1995) Preference-driven hierarchical hardware/software partitioning. In: ICCD’99: proceedings of the 1999 IEEE international conference on computer design. IEEE Comput Soc, Washington, pp 652–657
Wiangtong T, Cheung PYK, Luk W (2002) Comparing three heuristic search methods for functional partitioning in hardware-software codesign. Des Autom Embed Syst 6(4):425–449
Shuang D, Shan D, Shi Z, Liucun Z (2010) GA-based Algorithm for Hardware/Software Partitioning with Resource Contentions. In: IEEE International Conference on Advanced Computer Control, vol 1, pp 68–72
Wu J, Srikanthan T, Ting L (2010) Efficient heuristic algorithms for path-based hardware/software partitioning. Math Comput Model 51(7–8):974–984
Abdelhalim MB, Habib SE-D (2011) An integrated high-level hardware/software partitioning methodology. Des Autom Embed Syst 15(1):19–50
Mu J, Roman L (2009) Autonomous hardware/software partitioning and voltage/frequency scaling for low-power embedded systems. ACM Trans Des Autom Electron Syst 15(1):2. doi:10.1145/1640457.1640459
Yuan M, Gu Z, He X (2010) Hardware/software partitioning and pipelined scheduling on runtime reconfigurable FPGAs. ACM Trans Des Autom Electron Syst 15(2):1–41
Cui L (2012) A novel approach to hardware/software partitioning for reconfigurable embedded systems. J Comput 7(10):2518–2525
Arato P, Mann ZA, Orban A (2005) Algorithmic aspects of hardware/software partitioning. ACM Trans Des Autom Electron Syst 10(1):136–156
Wu J, Srikanthan T, Chen G (2010) Algorithmic aspects of hardware/software partitioning: 1D search algorithms. IEEE Trans Comput 59(4):532–544
Martello S, Toth P (1990) Knapsack problems: algorithms and computer implementations. Wiley, New York
Knuth DE (1998) The art of computer programming, 2nd edn. Sorting and searching, vol 3. Addison-Wesley, Reading
Glover F, Laguna M (1997) Tabu search. Kluwer Academic, Boston, pp 10–150
Gendreau M, Iori M, Laporte G (2008) A tabu search heuristic for the vehicle routing problem with two-dimensional loading constraints. Networks 51(1):4–18. Special issue
Benlica U, Hao J (2011) An effective multilevel tabu search approach for balanced graph partitioning. Comput Oper Res 38(7):1066–1075
Fan W, Machemehl R (2008) A Tabu Search based heuristic method for the transit route network design problem. In: Computer-aided Systems in Public Transport, vol 600, pp 387–408. Part 4
Guthaus M, Ringenberg J, Ernst D et al (2001) Mibench: a free, commercially representative embedded benchmark suite. In: 4th IEEE international workshop on workload characteristics, pp 3–14
Acknowledgements
This work was supported by the National Natural Science Foundation of China under Grant No. 61173032.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wu, J., Wang, P., Lam, SK. et al. Efficient heuristic and tabu search for hardware/software partitioning. J Supercomput 66, 118–134 (2013). https://doi.org/10.1007/s11227-013-0888-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-013-0888-9