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.
Similar content being viewed by others
References
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
Gupta R, Micheli GD (1993) Hardware-software cosynthesis for digital systems. IEEE Design and Test of Computers 10(3):29–41
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
Ernst R, Henkel J, Benner T (1993) Hardware-software co-synthesis for micro-controllers. IEEE Design and Test of Computer 10(4):64–75
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
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
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
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
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
Weinhardt M (1999) Ingeger programming for partitioning in software oriented codesign. Lecture Notes of Computer Science 975. Springer Science Press, pp 227–234
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
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
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
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
Ray A, Jigang W, Srikanthan T (2004) Knapsack model and algorithm for HW/SW partitioning problem. Computing and Informatics 23:557–569
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
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
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
Martello S, Toth P (1990) Knapsack problems: Algorithms and computer implementations. John Wiley & Sons
Pisinger D (1995) Algorithms for knapsack problems. Ph.D. thesis, University of Copenhagen
Knuth DE (1998) The art of computer programming (Volume 3), Sorting and Searching 2nd edn. Addison-Wesley
Bellman RE (1957) Dynamic programming. Princeton University Press
Luus R (2000) Iterative dynamic programming. Chapman & Hall/CRC
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)
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
Ball T, Larus JR (1996) Efficient path profiling. In: Proc. of Intel. Symp. Microarchitecture, pp 46–57
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
Melski D (2002) Interprocedural path profiling and the interprocedural express-lane transformation. PhD thesis, University of Wisconsin
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/s11227-006-8045-3