Two-level microprocessor-accelerator partitioning

  • Authors:
  • Scott Sirowy;Yonghui Wu;Stefano Lonardi;Frank Vahid

  • Affiliations:
  • University of California, Riverside;University of California, Riverside;University of California, Riverside;University of California, Riverside and University of California, Irvine

  • Venue:
  • Proceedings of the conference on Design, automation and test in Europe
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The integration of microprocessors and field-programmable gate array (FPGA) fabric on a single chip increases both the utility and necessity of tools that automatically move software functions from the microprocessor to accelerators on the FPGA to improve performance or energy. Such hardware/software partitioning for modern FPGAs involves the problem of partitioning functions among two levels of accelerator groups -- tightly-coupled accelerators that have fast single-clock-cycle memory access to the microprocessor's memory, and loosely-coupled accelerators that access memory through a bridge to avoid slowing the main clock period with their longer critical paths. We introduce this new two-level accelerator-partitioning problem, and we describe a novel optimal dynamic programming algorithm to solve the problem. By making use of the size constraint imposed by FPGAs, the algorithm has what is effectively quadratic runtime complexity, running in just a few seconds for examples with up to 25 accelerators, obtaining an average performance improvement of 35% compared to a traditional single-level bus architecture.