Branch Optimisation Techniques for Hardware Compilation
This paper explores using information about program branch probabilities to optimise reconfigurable designs. The basic premise is to promote utilization by dedicating more resources to branches which execute more frequently. A hardware compilation system has been developed for producing designs which are optimised for different branch probabilities. We propose an analytical queueing network performance model to determine the best design from observed branch probability information. The branch optimisation space is characterized in an experimental study for Xilinx Virtex FPGAs of two complex applications: video feature extraction and progressive refinement radiosity. For designs of equal performance, branch-optimised designs require 24% and 27.5% less area. For designs of equal area, branch optimised designs run upto 3 times faster. Our analytical performance model is shown to be highly accurate with relative error between 0.12 and 1.1 x 10− 4.
Unable to display preview. Download preview PDF.
- 1.Celoxica Limited, Handel-C Language Reference Manual, version 3.1, document number RM-1003-3.0 (2002)Google Scholar
- 2.De Micheli, G.: Synthesis and Optimization of Digital Circuits. McGraw-Hill, New York (1994)Google Scholar
- 8.Styles, H., Luk, W.: Accelerating radiosity calculations using reconfigurable platforms. In: Proc. IEEE Symp. on Field-Programmable Custom Computing Machines, pp. 279–281 (2002)Google Scholar
- 11.Ziegler, H., So, B., Hall, M., Diniz, P.C.: Coarse-grain pipelining on multiple FPGA architectures. In: Proc. IEEE Symp. on Field-Programmable Custom Computing Machines, pp. 77–86 (2002)Google Scholar