PATTERN MATCHING ACCELERATOR
First Claim
1. A pattern matching apparatus, comprising:
- a data engine operative to receive search commands each comprising input data and one or more patterns to be searched; and
an algorithm engine in communication with said data engine, said algorithm engine operative to execute said search commands and attempt to match said one or more patterns to said input data corresponding thereto and to generate match results therefrom.
2 Assignments
0 Petitions
Accused Products
Abstract
A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results.
75 Citations
32 Claims
-
1. A pattern matching apparatus, comprising:
-
a data engine operative to receive search commands each comprising input data and one or more patterns to be searched; and an algorithm engine in communication with said data engine, said algorithm engine operative to execute said search commands and attempt to match said one or more patterns to said input data corresponding thereto and to generate match results therefrom. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of pattern matching, said method comprising the steps of:
-
receiving search commands, each said search command including input data and one or more patterns to be searched; performing pattern matching on the input data associated with a search command in accordance with the one or more patterns corresponding thereto; and generating match results in response to said pattern matching. - View Dependent Claims (16, 17, 18)
-
-
19. A pattern matching apparatus, comprising:
-
a plurality of data engines, each data engine operative to receive search commands each comprising input data and one or more pattern contexts to be searched;
said data engine comprising;a command queue for storing received search commands; a plurality of command units for coordinating and arbitrating the execution of said search commands; a plurality of algorithm engines in communication with said data engines, each algorithm engine operative to execute said search commands and attempt to match said one or more patterns to said input data corresponding thereto and to generate match results therefrom; and
algorithm engine comprising;a plurality of search lanes, each said search lane comprising a plurality of search engines; and memory coupled to each search engine, said memory for storing patterns to be searched within the input data associated with a search command assigned to a particular search engine. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method of pattern matching, comprising the steps of:
-
compiling said one or more patterns into a plurality of rules readable by a hardware search engine; receiving search commands, each said search command including a first pointer to an input data buffer, one or more pattern contexts to be searched and a second pointer to an output buffer; executing a pattern search on the input data buffer associated with a search command in accordance with said plurality of compiled rules corresponding thereto; and generating match results in response to said pattern search and storing said match results in said output buffer. - View Dependent Claims (32)
-
Specification