Journal of Computer Science and Technology

, Volume 23, Issue 4, pp 644–651 | Cite as

New Model and Algorithm for Hardware/Software Partitioning

  • Ji-Gang WuEmail author
  • Thambipillai Srikanthan
  • Guang-Wei Zou
Regular Paper


This paper focuses on the algorithmic aspects for the hardware/software (HW/SW) partitioning which searches a reasonable composition of hardware and software components which not only satisfies the constraint of hardware area but also optimizes the execution time. The computational model is extended so that all possible types of communications can be taken into account for the HW/SW partitioning. Also, a new dynamic programming algorithm is proposed on the basis of the computational model, in which source data, rather than speedup in previous work, of basic scheduling blocks are directly utilized to calculate the optimal solution. The proposed algorithm runs in O(nA) for n code fragments and the available hardware area A. Simulation results show that the proposed algorithm solves the HW/SW partitioning without increase in running time, compared with the algorithm cited in the literature.


algorithm hardware/software partitioning dynamic programming complexity 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Supplementary material

11390_2008_9160_MOESM1_ESM.pdf (78 kb)
(PDF 78.1 kb)


  1. [1]
    Niemann R, Marwedel P. Hardware/software partitioning using integer programming. In Proc. the IEEE/ACM European Design Automation Conference (EDAC), Paris, France, March 1996, pp.473–479.Google Scholar
  2. [2]
    Gupta R, Micheli G D. Hardware-software cosynthesis for digital systems. IEEE Design and Test of Computers, 1993, 10(3): 29–41.CrossRefGoogle Scholar
  3. [3]
    Gupta R K, Coelho C, De Micheli G. Synthesis and simulation of digital systems containing interacting hardware and software components. In Proc. the 29th ACM/IEEE Design Automation Conference, Los Alamitos, CA, USA, June 1992, pp.225–230.Google Scholar
  4. [4]
    Ernst R, Henkel J, Benner T. Hardware-software co-synthesis for micro-controllers. IEEE Design and Test of Computer, 1993, 10(4): 64–75.CrossRefGoogle Scholar
  5. [5]
    Vahid F, Gajski D D, Gong J. A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning. In Proc. IEEE/ACM European Design Automation Conference (EDAC), Paris, France, February 1994, pp.214–219.Google Scholar
  6. [6]
    Vahid F, Gajski D D. Clustering for improved system-level functional partitioning. In Proc. the 8th International Symposium on System Synthesis, Cannes, France, September 1995, pp.28–33.Google Scholar
  7. [7]
    Quan G, Hu X, Greenwood G W. Preference-driven hierarchical hardware/software partitioning. In Proc. IEEE International Conference on Computer Design, Austin, TX, USA, October 1999, pp.652–657.Google Scholar
  8. [8]
    Srinivasan V, Radhakrishnan S, Vemuri R. Hardware software partitioning with integrated hardware design space exploration. In Proc. DATE’98, Paris, France, February 1998, pp.28–35.Google Scholar
  9. [9]
    Niemann R, Marwedel P. An algorithm for hardware/software partitioning using mixed integer linear programming. Design Automation for Embedded Systems, Special Issue: Partitioning Methods for Embedded Systems, 1997, 2(2): 165–193.CrossRefGoogle Scholar
  10. [10]
    Weinhardt M. Integer programming for partitioning in software oriented codesign. Lecture Notes in Computer Science, 1995, 975: 227–234.Google Scholar
  11. [11]
    Peng Z, Kuchcinski K. An algorithm for partitioning of application specific system. In Proc. IEEE/ACM European Design Automation Conference (EDAC), Paris, February 1993, pp.316–321.Google Scholar
  12. [12]
    Henkel J, Ernst R. An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques. IEEE Trans. VLSI Sys., 2001, 9(2): 273–289.CrossRefGoogle Scholar
  13. [13]
    Eles P, Peng Z, Kuchcinski K, Dobolt A. System level hardware/software partitioning based on simulated annealing and tabu search. Design Automation for Embedded Systems, 1997, 2(1): 5–32.CrossRefGoogle Scholar
  14. [14]
    Karam S C, Ranga V. Hardware-software partitioning and pipelined scheduling of transformative applications. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2002, 10(3): 193–208.CrossRefGoogle Scholar
  15. [15]
    Madsen J, Grode J, Knudsen P V, Petersen M E, Haxthausen A. LYCOS: The Lyngby co-synthesis system. Design Automation for Embedded Systems, 1997, 2: 195–235.CrossRefGoogle Scholar
  16. [16]
    Wu Jigang, Srikanthan T. Low-complex dynamic programming algorithm for hardware/software partitioning. Information Processing Letters, 2006, 98: 41–46.CrossRefGoogle Scholar
  17. [17]
    Edwards S A, Lavagno L, Lee E A et al. Design of embedded systems: Formal models validation, and synthesis. In Proc. the IEEE, 1997, 85(3): 366–390.Google Scholar
  18. [18]
    Vallejo M L, Lopez J C. On the hardware-software partitioning problem: System modeling and partitioning techniques. ACM Transactions on Design Automation of Electronic Systems, 2003, 8(3): 269–297.CrossRefGoogle Scholar
  19. [19]
    Pisinger D. Algorithms for knapsack problems [Dissertation]. University of Copenhagen, 1995.Google Scholar
  20. [20]
    Arato P, Mann Z A, Orban A. Algorithmic aspects of hardware/software partitioning. ACM Transactions on Design Automation of Electronic Systems, 2005, 10(1): 136–156.CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer 2008

Authors and Affiliations

  • Ji-Gang Wu
    • 1
    Email author
  • Thambipillai Srikanthan
    • 1
  • Guang-Wei Zou
    • 1
  1. 1.Centre for High Performance Embedded Systems, School of Computer EngineeringNanyang Technological UniversitySingaporeSingapore

Personalised recommendations