Skip to main content
Log in

Algorithmic aspects of area-efficient hardware/software partitioning

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

Abstract

Area efficiency is one of the major considerations in constraint aware hardware/software partitioning process. This paper focuses on the algorithmic aspects for hardware/software partitioning with the objective of minimizing area utilization under the constraints of execution time and power consumption. An efficient heuristic algorithm running in O(n log n) is proposed by extending the method devised for solving the 0-1 knapsack problem. Also, an exact algorithm based on dynamic programming is proposed to produce the optimal solution for small-sized problems. Simulation results show that the proposed heuristic algorithm yields very good approximate solutions while dramatically reducing the execution time.

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.

Similar content being viewed by others

References

  1. Niemann R, Marwedel P (1996) Hardware/software partitioning using integer programming. In: Proc. of IEEE/ACM European Design Automation Conference (EDAC). IEEE Press, pp 473–479

  2. Gupta R, Micheli GD (1993) Hardware-software cosynthesis for digital systems. IEEE Design and Test of Computers 10(3):29–41

    Article  Google Scholar 

  3. Gupta RK, Coelho C, De Micheli G (1992) Synthesis and simulation of digital systems containing interacting hardware and software components. In: Proc. of 29th ACM. IEEE Design Automation Conference IEEE Press, pp 225–230

  4. Ernst R, Henkel J, Benner T (1993) Hardware-software co-synthesis for micro-controllers. IEEE Design and Test of Computer 10(4):64–75

    Article  Google Scholar 

  5. Vahid F, Gajski DD, Gong J (1994) A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning. In: Proc. of IEEE/ACM European Design Automation Conference. (EDAC). IEEE Press, pp 214–219

  6. Vahid F, Gajski DD (1995) Clustering for improved system-level functional partitioning. In: Proc. 8th IEEE/ACM Int. Symp. System Synthesis. IEEE Press, pp 28–33

  7. Quan G, Hu X, Greenwood GW (1999) Preference-driven hierarchical hardware/softwarepartitioning. In: Proc. of IEEE Int. Conf. on Computer Design. IEEE Press, pp 652–657

  8. Srinivasan V, Radhakrishnan S, Vemuri R (1998) Hardware software partitioning with integrated hardware design space exploration. In: Proc. of DATE’98. IEEE Press, Paris, France, pp 28–35

  9. Niemann R, Marwedel P (1997) An algorithm for hardware/software partitioning using mixed integer linear programming. Design automation for embedded systems, special issue: Partitioning methods for embedded systems 2(2):165–193

    Article  Google Scholar 

  10. Weinhardt M (1999) Ingeger programming for partitioning in software oriented codesign. Lecture Notes of Computer Science 975. Springer Science Press, pp 227–234

  11. Peng Z, Kuchcinski K (1993) An algorithm for partitioning of application specific system. In: Proc. of IEEE/ACM European Design Automation conference(EDAC) IEEE Press, pp 316–321

  12. Henkel J, Ernst R (2001) An approach to automated hardware/software partitioning usinga flexible granularity that is driven by high-level estimation techniques. IEEE Trans on VLSI Syst 9(2):273–289

    Article  Google Scholar 

  13. Wiangtong T, Cheung PYK, Luk W (2002) Comparing three heuristic search methods for functional partitioning in hardware-software codesign. Design Automation for Embedded Systems 6:425–449

    Article  Google Scholar 

  14. Karam SC, Ranga V (2002) Hardware-software partitioning and pipelined scheduling of transformative applications. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 10(3):193–208

    Article  Google Scholar 

  15. Ray A, Jigang W, Srikanthan T (2004) Knapsack model and algorithm for HW/SW partitioning problem. Computing and Informatics 23:557–569

    MATH  Google Scholar 

  16. Madsen J, Grode J, Knudsen PV, Petersen ME, Haxthausen A (1997) LYCOS: The lyngby co-synthesis system. Design Automation for Embedded Systems 2:195–235

    Article  Google Scholar 

  17. Edwards SA, Lavagno L, Lee EA, Vincentelli AS (1997) Design of embedded systems: Formal models validation, and synthesis. Proceedings of the IEEE 85(3):366–390

  18. Vallejo ML, Lopez JC (2003) On the hardware-software partitioning problem: System moeling and partitioning techniques. ACM Trans. on Design Automation of Electronic Systems 8(3):269–297

    Article  Google Scholar 

  19. Martello S, Toth P (1990) Knapsack problems: Algorithms and computer implementations. John Wiley & Sons

  20. Pisinger D (1995) Algorithms for knapsack problems. Ph.D. thesis, University of Copenhagen

  21. Knuth DE (1998) The art of computer programming (Volume 3), Sorting and Searching 2nd edn. Addison-Wesley

  22. Bellman RE (1957) Dynamic programming. Princeton University Press

  23. Luus R (2000) Iterative dynamic programming. Chapman & Hall/CRC

  24. Wang G, Gong W, Kastner R (2003) A new approach for task level computational resource bi-partitioning. In: Proc. of Int. Conf. on Parallel and Distributed Computing and Systems (PDCS)

  25. Arato P, Mann ZA, Orban A (2005) Algorithmic aspects of hardware/software partitioning. ACM Trans on Design Automation of Electronic Systems 10(1):136–156

    Article  MathSciNet  Google Scholar 

  26. Ball T, Larus JR (1996) Efficient path profiling. In: Proc. of Intel. Symp. Microarchitecture, pp 46–57

  27. Duesterwald E, Bala V (2000) Software profiling for hot path prediction: Less is more. In: Proc. 9th Int. conf. architectural support for programming Languages and Operating Systems, pp 202–211

  28. Melski D (2002) Interprocedural path profiling and the interprocedural express-lane transformation. PhD thesis, University of Wisconsin

  29. Apiwattanapong T, Harrold MJ (2002) Selective path profiling. In: Proc. ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2002), pp 35–42

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wu Jigang.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jigang, W., Srikanthan, T. Algorithmic aspects of area-efficient hardware/software partitioning. J Supercomput 38, 223–235 (2006). https://doi.org/10.1007/s11227-006-8045-3

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-006-8045-3

Keywords

Navigation