Method and system for high performance pattern indexing
First Claim
Patent Images
1. An apparatus comprising:
- a field programmable gate array (FPGA); and
a bus through which streaming data is delivered to the FPGA at a bus bandwidth rate;
the FPGA having firmware logic deployed thereon, the firmware logic configured to(1) receive the streaming data,(2) perform regular expression pattern matching on the streaming data with respect to a plurality of patterns to detect whether any pattern matches exist within the streaming data,and (3) concurrently build, at the bus bandwidth rate, a plurality of pattern indexes for the streaming data based on detected pattern matches, wherein each pattern index corresponds to a pattern against which regular expression pattern matching was performed and comprises location data for detected pattern matches.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein is a method and system for accelerating the generation of pattern indexes. In exemplary embodiments, regular expression pattern matching can be performed at high speeds on data to determine whether a pattern is present in the data. Pattern indexes can then be built based on the results of such regular expression pattern matching. Reconfigurable logic such a field programmable gate arrays (FPGAs) can be used to hardware accelerate these operations.
531 Citations
55 Claims
-
1. An apparatus comprising:
-
a field programmable gate array (FPGA); and
a bus through which streaming data is delivered to the FPGA at a bus bandwidth rate;the FPGA having firmware logic deployed thereon, the firmware logic configured to (1) receive the streaming data, (2) perform regular expression pattern matching on the streaming data with respect to a plurality of patterns to detect whether any pattern matches exist within the streaming data, and (3) concurrently build, at the bus bandwidth rate, a plurality of pattern indexes for the streaming data based on detected pattern matches, wherein each pattern index corresponds to a pattern against which regular expression pattern matching was performed and comprises location data for detected pattern matches. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method comprising:
-
delivering streaming data to a field programmable gate array (FPGA) via a bus at a bus bandwidth rate; the FPGA receiving the streaming data, the FPGA having firmware logic deployed thereon; the firmware logic performing regular expression pattern matching on the streaming data with respect to a plurality of patterns to detect whether any pattern matches exist within the streaming data; and the firmware logic concurrently building, at the bus bandwidth rate as the streaming data continues to be delivered to the FPGA, a plurality of pattern indexes for the streaming data based on detected pattern matches, wherein each pattern index corresponds to a pattern against which regular expression pattern matching was performed and comprises location data for detected pattern matches. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method comprising:
-
delivering streaming data to a field programmable gate array (FPGA) via a bus at a bus bandwidth rate, wherein the streaming data comprises a plurality of web pages; the FPGA receiving the streaming data, the FPGA having firmware logic deployed thereon; the firmware logic performing regular expression pattern matching on the streaming data with respect to a plurality of patterns to detect whether any pattern matches exist within the streaming data; the firmware logic concurrently building, at the bus bandwidth rate as the streaming data continues to be delivered to the FPGA, a plurality of pattern indexes for the streaming data based on detected pattern matches, wherein each pattern index corresponds to a pattern against which regular expression pattern matching was performed and comprises a plurality of pointers to the web pages which contain the pattern corresponding to that pattern index; an Internet search engine receiving a pattern query; the Internet search engine looking UP the web pages that are responsive to the pattern query based on at least one of the pattern indexes; and the Internet search engine providing search results for the pattern query in response to the looking UP step. - View Dependent Claims (50)
-
-
51. An apparatus comprising:
-
a processor; a coprocessor; and a bus over which streaming data flows to the coprocessor at a bus bandwidth rate; wherein the processor is configured to manage a flow of the streaming data to the coprocessor; wherein the coprocessor comprises a plurality of regular expression pattern matching modules in parallel, each regular expression pattern matching module being keyed with a pattern; each regular expression pattern matching module being configured to (1) receive the streaming data, (2) perform a regular expression pattern matching operation on the streaming data to detect any pattern matches that exist within the streaming data with respect to its keyed pattern, and (3) operate simultaneously in parallel with the other regular expression pattern matching modules; and wherein the coprocessor is further configured to concurrently build, at the bus bandwidth rate, a plurality of pattern indexes for the streaming data based on detected pattern matches, wherein each pattern index corresponds to a pattern against which regular expression pattern matching was performed and comprises location data for detected pattern matches. - View Dependent Claims (52, 53, 54, 55)
-
Specification