Integrated partitioning and scheduling for hardware/software co-design

Existing approaches to hardware/software co-design separate partitioning and scheduling as two steps. Since partitioning solutions affect scheduling results and vice versa, the existing sequential approach leads to sub-optimal results. In this paper, we explore an integrated hardware/software partitioning and scheduling strategy, where the partitioning process uses the information provided by the scheduling solution as a guide. We present an efficient algorithm for partitioning and scheduling the tasks for execution on the given software (2 CPUs) and hardware (k ASICs or FPGAs) resources with the objective of minimizing the total execution time and the hardware cost. Our algorithm has produced good results for all the task graphs in our experiments.

[1]  Kiyoung Choi,et al.  Enforcing Schedulability of Multi-Task Systems by Hardware-Software Codesign , 1997, CODES.

[2]  Edward A. Lee,et al.  A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem , 1994, CODES.

[3]  Petru Eles,et al.  VHDL system-level specification and partitioning in a hardware/software co-synthesis environment , 1994, Third International Workshop on Hardware/Software Codesign.

[4]  Jörg Henkel,et al.  A hardware/software partitioner using a dynamically determined granularity , 1997, DAC.

[5]  Wayne H. Wolf,et al.  Process Partitioning for Distributed Embedded Systems , 1996, CODES.

[6]  Jörg Henkel,et al.  Fast timing analysis for hardware-software co-synthesis , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[7]  Rajesh Gupta,et al.  System synthesis via hardware-software co-design , 1992 .

[8]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.

[9]  Giovanni De Micheli,et al.  Hardware-software cosynthesis for digital systems , 1993, IEEE Design & Test of Computers.

[10]  Frank Vahid,et al.  A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning , 1994, EURO-DAC '94.

[11]  Donald E. Thomas,et al.  Multiple-process behavioral synthesis for mixed hardware-software systems , 1995 .

[12]  Daniel Gajski,et al.  Hardware/software partitioning and pipelining , 1997, DAC.

[13]  Niraj K. Jha,et al.  COSYN: hardware-software co-synthesis of embedded systems , 1997, DAC.

[14]  Rajesh Gupta,et al.  Hardware/software co-design , 1996, Proc. IEEE.

[15]  Axel Jantsch,et al.  Hardware/software partitioning and minimizing memory interface traffic , 1994, EURO-DAC '94.

[16]  Rajesh K. Gupta,et al.  Data-flow assisted behavioral partitioning for embedded systems , 1997, DAC.