Matching and Searching Analysis for Parallel Hardware Implementation on FPGAs

Pablo Moisset
University of Southern California
Information Sciences Institute
pmoisset@isi.edu

and
Pedro Diniz
University of Southern California
Information Sciences Institute
pedro@isi.edu

and

Joonseok Park
University of Southern California
Information Sciences Institute
joonseok@isi.edu

Abstract

Matching and searching computations play an important role in the indexing of data. These computations are typically encoded in very tight loops with a single index variable and a simple search/matching predicate. Their inherent sequential nature, either because of data dependences but more often because of very strong control dependences, makes it impossible to apply existing data dependence and parallelization analysis to exploit significant levels parallelism on traditional architectures. This paper describes a class of searching and matching computations and describes a mapping strategy to map these computations to hardware. We have developed a compiler analysis in SUIF using array data dependence analysis and implicit loop unrolling analysis to expose more parallelism for the parallel evaluation of these computations. Our compiler generates parallel hardware specifications in VHDL. The resulting parallel hardware yields significant performance improvements when these kernel operators are repeated over shifted portions of the input data on FPGA-based computing architectures.

Keywords:

FPGA-based reconfigurable computing architectures, compilation, program analysis.


Copyright Notice

PDF Document, Postscript Document