Skip to main content
Log in

Efficient heuristic and tabu search for hardware/software partitioning

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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 %.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Algorithm 1
Fig. 1
Algorithm 2
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Staunstrup J, Wolf WH (1997) Hardware/software co-design: principles and practice. Springer, Berlin

    Book  MATH  Google Scholar 

  2. 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

    Article  Google Scholar 

  3. 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

    Google Scholar 

  4. Wu J, Srikanthan T (2006) Low-complex dynamic programming algorithm for hardware/software partitioning. Inf Process Lett 98(2):41–46

    Article  MATH  Google Scholar 

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

    Article  Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. 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

    Article  Google Scholar 

  8. Ernst R, Henkel J, Benner T (1993) Hardware–software cosynthesis for microcontrollers. IEEE Des Test Comput 10(4):64–75

    Article  Google Scholar 

  9. Wu J, Srikanthan T, Yan C (2008) Algorithmic aspects for power-efficient hardware/software partitioning. Math Comput Simul 79(4):1204–1215

    Article  MathSciNet  MATH  Google Scholar 

  10. 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

    Chapter  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. 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

    Google Scholar 

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

    Google Scholar 

  14. 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

    Article  Google Scholar 

  15. 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

    Google Scholar 

  16. Wu J, Srikanthan T, Ting L (2010) Efficient heuristic algorithms for path-based hardware/software partitioning. Math Comput Model 51(7–8):974–984

    Article  MATH  Google Scholar 

  17. Abdelhalim MB, Habib SE-D (2011) An integrated high-level hardware/software partitioning methodology. Des Autom Embed Syst 15(1):19–50

    Article  Google Scholar 

  18. 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

    Article  Google Scholar 

  19. 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

    Article  Google Scholar 

  20. Cui L (2012) A novel approach to hardware/software partitioning for reconfigurable embedded systems. J Comput 7(10):2518–2525

    Google Scholar 

  21. Arato P, Mann ZA, Orban A (2005) Algorithmic aspects of hardware/software partitioning. ACM Trans Des Autom Electron Syst 10(1):136–156

    Article  MathSciNet  Google Scholar 

  22. Wu J, Srikanthan T, Chen G (2010) Algorithmic aspects of hardware/software partitioning: 1D search algorithms. IEEE Trans Comput 59(4):532–544

    Article  MathSciNet  Google Scholar 

  23. Martello S, Toth P (1990) Knapsack problems: algorithms and computer implementations. Wiley, New York

    MATH  Google Scholar 

  24. Knuth DE (1998) The art of computer programming, 2nd edn. Sorting and searching, vol 3. Addison-Wesley, Reading

    Google Scholar 

  25. Glover F, Laguna M (1997) Tabu search. Kluwer Academic, Boston, pp 10–150

    Book  MATH  Google Scholar 

  26. 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

    Article  MathSciNet  MATH  Google Scholar 

  27. Benlica U, Hao J (2011) An effective multilevel tabu search approach for balanced graph partitioning. Comput Oper Res 38(7):1066–1075

    Article  MathSciNet  Google Scholar 

  28. 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

    Chapter  Google Scholar 

  29. 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

    Google Scholar 

Download references

Acknowledgements

This work was supported by the National Natural Science Foundation of China under Grant No. 61173032.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jigang Wu.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-013-0888-9

Keywords

Navigation