This paper presents two heuristics for automatic hardware/software partitioning of system level specifications. Partitioning is performed at the granularity of blocks, loops, subprograms, and processes with the objective of performance optimization with a limited hardware and software cost. We define the metric values for partitioning and develop a cost function that guides partitioning towards the desired objective. We consider minimization of communication cost and improvement of the overall parallelism as essential criteria during partitioning. Two heuristics for hardware/software partitioning, formulated as a graph partitioning problem, are presented: one based on simulated annealing and the other on tabu search. Results of extensive experiments, including real-life examples, show the clear superiority of the tabu search based algorithm.
This is a preview of subscription content, access via your institution.
Buy single article
Instant access to the full article PDF.
Tax calculation will be finalised during checkout.
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
Tax calculation will be finalised during checkout.
J. K. Adams and D. E. Thomas. Multiple-process behavioral synthesis for mixed hardware-software systems. In Proc. International Symposium on System Synthesis, pp. 10–15. 1995.
P. M. Athanas and H. F. Silverman. Processor reconfiguration through instruction-set metamorphosis. Computer, 11–18, March 1993.
E. Barros, W. Rosenstiel and X. Xiong. A method for partitioning UNITY language in hardware and software. In Proc. European Design Automation Conference EURO-DAC/VHDL, pp. 220–225. 1994.
Generic requirements for operations of broadband switching systems. Bellcore TANWT-001248 issue 2, October 1993.
A. Bender. Design of an optimal loosely coupled heterogeneous multiprocessor system. In Proc. European Design & Test Conference, pp. 275–281. 1996.
G. Boriello, P. Chou and R. Ortega. Embedded system co-design towards portability and rapid integration. In Hardware/Software Co-Design, NATO ASI 1995, G. De Micheli and M. G. Sami (eds.), Kluwer Academic Publishers, Boston, 1996.
K. Buchenrieder and J. W. Rozenblit. Codesign: An overview. In Codesign—Computer-Aided Software/ Hardware Engineering, J. Rozenblit and K. Buchenrieder (eds.), IEEE Press, 1995.
K. Buchenrieder, A. Sedlemeier and C. Veith. Industrial hardware/software co-design. In Hardware/Software Co-Design, NATO ASI 1995, G. De Micheli and M. G. Sami eds., Kluwer Academic Publishers, Boston, 1996.
R. Camposano and J. Wilberg. Embedded system design. Design Automation for Embedded Systems 1: 5–50, 1996.
P. H. Chou, R. B. Ortega and G. Boriello. The Chinook hardware/software co-synthesis system. In Proc. International Symposium on System Synthesis, pp. 22–27. 1995.
G. De Micheli. Computer-aided hardware-software codesign. IEEE Micro, 10–16, August 1994.
G. De Micheli. Hardware/software codesign: Application domains and design technologies. In Hardware/ Software Co-Design, NATO ASI 1995, G. De Micheli and M. G. Sami (eds.), Kluwer Academic Publishers, Boston, 1996.
M. De Prycker. Asynchronous Transfer Mode: Solution for Broadband ISDN. Ellis Horwood, New York, 1993.
M. Edwards and J. Forrest. A development environment for the cosynthesis of embedded software/hardware systems. In Proc. European Design Automation Conference EDAC, pp. 469–473. 1994.
P. Eles, K. Kuchcinski, Z. Peng and M. Minea. Synthesis of VHDL concurrent processes. In Proc. European Design Automation Conference EURO-DAC/VHDL, pp. 540–545. 1994.
P. Eles, Z. Peng and A. Doboli. VHDL system-level specification and partitioning in a hardware/software co-synthesis environment. In Proc. Third International Workshop on Hardware/Software Codesign, IEEE, pp. 49–55. 1994.
R. Ernst, J. Henkel and T. Benner. Hardware-software co-synthesis for microcontrollers. IEEE Design & Test of Computers, 64–75, September 1993.
D. D. Gajski and F. Vahid. Specification and design of embedded hardware-software systems. IEEE Design & Test of Computers, 53–67, Spring 1995.
F. Glover, E. Taillard and D. de Werra. A user's guide to tabu search. Annals of Operations Research 41: 3–28, 1993.
G. Goosens, J. van Praet, D. Lanneer, W. Geurts and F. Thoen. Programmable chips in consumer electronics and telecommunications. In Hardware/Software Co-Design,NATO ASI 1995, G. De Micheli and M. G. Sami (eds.), Kluwer Academic Publishers, Boston, 1996.
P. Gr¨un. VHDL to C Compilation in a Hardware/Software Co-Synthesis Environment, Master Thesis, Technical University of Timisoara, 1995.
R. K. Gupta and G. De Micheli. System synthesis via hardware-software co-design. Technical Report No. CSL-TR-92-548, Comp. Syst. Lab., Stanford Univ., 1992.
R. K. Gupta and G. De Micheli. Hardware-software cosynthesis for digital systems. IEEE Design & Test of Computers, 29–41, September 1993.
R. K. Gupta. Co-synthesis of hardware and software for digital embedded systems. Kluwer Academic Publishers, Boston, 1995.
IEEE standard VHDL language reference manual. IEEE Std 1076–1993, IEEE Press, 1994.
B-ISDN operation and maintanace principles and functions. ITU-T Recommendation I.610, 1993.
T. Ben Ismail and A. A. Jerraya. Synthesis steps and design models for codesign. Computer, 44–52, February 1995.
A. Kalavade and E. A. Lee. A global criticality/local phase driven algorithm for the constrained hardware/ software partitioning problem. In Proc. Third International Workshop on Hardware/Software Codesign, pp. 42–48. 1994.
B. W. Kernighan and S. Lin. An efficient heuristic procedure for partitioning Graphs. Bell Systems Tech. J. 49(2): 291–307, 1970.
S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi. Optimization by simulated annealing. Science 220(4598): 671–680, 1983.
L. Lavagno, A. Sangiovanni-Vincentelli and H. Hsieh. Embedded system codesign. In Hardware/software co-design, NATO ASI 1995, G. De Micheli and M. G. Sami (eds.), Kluwer Academic Publishers, Boston, 1996.
S. Narayan, F. Vahid and D. D. Gajski. Modeling with Spec Charts, Technical Report #90-20, Dept. of Inf. and Comp. Science, Univ. of California, Irvine, 1990/1992.
R. Niemann and P. Marwedel. Harware/software partitioning using integer programming. In Proc. European Design & Test Conference, pp. 473–479. 1996.
K. A. Olukotun, R. Helaihel, J. Levitt and R. Ramirez. A software-hardware co-synthesis approach to digital system simulation. IEEE Micro, 48–58, August 1994.
Z. Peng and K. Kuchcinski. An algorithm for partitioning of application specific systems. In Proc. European Design Automation Conference EDAC, pp. 316–321. 1993.
Z. Peng and K. Kuchcinski. Automated transformation of algorithms into register-transfer level implementation. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 13(2): 150–166, February 1994.
E. Stoy and Z. Peng. A design representation for hardware/software co-synthesis. In Proc. Euromicro Conference, pp. 192–199. 1994.
F. Vahid, J. Gong and D. Gajski. A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning. In Proc. European Design Automation Conference EURO-DAC/VHDL, pp. 214–219. 1994.
W. H. Wolf. Hardware-software co-design of embedded systems. Proceedings of the IEEE 82(7): 967–989, July 1994.
C. W. Yeh, C. K. Cheng and T. T.Y. Lin. Optimization by iterative improvement: An experimental evaluation on two-way partitioning. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 14(2): 145–153, February 1995.
T. Y. Yen and W. Wolf. Sensitivity-driven co-synthesis of distributed embedded systems. In Proc. International Symposium on System Synthesis, pp. 4–9. 1995.
About this article
Cite this article
Eles, P., Peng, Z., Kuchcinski, K. et al. System Level Hardware/Software Partitioning Based on Simulated Annealing and Tabu Search. Design Automation for Embedded Systems 2, 5–32 (1997). https://doi.org/10.1023/A:1008857008151
- Hardware/software partitioning
- iterative improvement heuristics
- simulated annealing
- tabu search