PACE: A Dynamic Programming Algorithm for Hardware/Software Partitioning

  • Authors:
  • Peter Voigt Knudsen;Jan Madsen

  • Affiliations:
  • Department of Computer Science, Technical University of Denmark, DK-2800 Lyngby, Denmark;Department of Computer Science, Technical University of Denmark, DK-2800 Lyngby, Denmark

  • Venue:
  • CODES '96 Proceedings of the 4th International Workshop on Hardware/Software Co-Design
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents the PACE partitioning algorithm which is used in the LYCOS co-synthesis system for partitioning control/dataflow graphs into hardware- and software parts. The algorithm is a dynamic programming algorithm which solves both the problem of minimizing system execution time with a hardware area constraint and the problem of minimizing hardware area with a system execution time constraint. The target architecture consists of a single microprocessor and a single hardware chip (ASIC, FPGA, etc.) which are connected by a communication channel. The algorithm incorporates a realistic communication model and thus attempts to minimize communication overhead. The time-complexity of the algorithm is O(n x n x A) and the space-complexity is O(n x A) where A is the total area of the hardware chip and n the number of code fragments which may be placed in either hardware or software.