MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Fast Regular Expression Matching using FPGAs (2001) [81 citations — 7 self]

by Reetinder Sidhu ,  Viktor K. Prasanna
in IEEE Symposium on Field-Programmable Custom Computing Machines
Add To MetaCart

Abstract:

This paper presents an ecient method for nding matches to a given regular expression in given text using FPGAs. To match a regular expression of length n, a serial machine requires O(2 n ) memory and takes O(1) time per text character. The proposed approach requires only O(n 2 ) space and still processes a text character in O(1) time (one clock cycle). The improvement is due to the Nondeterministic Finite Automaton (NFA) used to perform the matching. As far as the authors are aware, this is the rst practical use of a nondeterministic state machine on programmable logic. Furthermore, the paper presents a simple, fast algorithm that quickly constructs the NFA for the given regular expression. Fast NFA construction is crucial because the NFA structure depends on the regular expression, which is known only at runtime. Implementations of the algorithm for conventional FPGAs and the Self-Recongurable Gate Array (SRGA) are described. To evaluate performance, the NFA logic was mapped onto the Virtex XCV100 FPGA and the SRGA. Also, the performance of GNU grep for matching regular expressions was evaluated on an 800 MHz Pentium III machine. The proposed approach was faster than best case grep performance in most cases. It was orders of magnitude faster than worst case grep performance. Logic for the largest NFA considered t in less than a 1000 CLBs while DFA storage for grep in the worst case consumed a few hundred megabytes. 1

Citations

2876 Introduction to automata theory, languages and computation – Hoperoft, Ullman - 1979
93 A Time-Multiplexed FPGA – Trimberger - 1997
25 String matching on multicontext FPGAs using self-reconfiguration – Sidhu, Mei, et al. - 1999
17 A First Generation DPGA Implementation – Tau, Chen, et al. - 1995
10 Assessing document relevance with runtime reconfigurable machines – Gunther, Milne, et al. - 1996
5 A self-reconfigurable gate array architecture – Sidhu, Mei, et al. - 2000
2 Handbook of Theoretical Computer Science, Volume A Algorithms and Complexity, chapter 5 – Aho - 1990
2 State machine design techniques for Verilog and VHDL – Golson - 1994