Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data
First Claim
Patent Images
1. A system for conducting contextual searches, the system comprising:
- a rule processor comprising;
a plurality of M input payload search registers, wherein a data stream of content data to be searched is input into the plurality of payload search registers;
a search execution engine comprising;
a search array coupled to the plurality of M search registers, wherein the search array comprises;
a plurality of M rows of search array elements coupled to a plurality of M output match lines; and
a plurality of N columns of search array elements coupled to a plurality of N pattern input lines comprising a search pattern, wherein the search array comprises an array of M by N search array elements, and wherein the content data in the plurality of M search registers is replicated and stored N times in the plurality of N columns in the search array, wherein the N content data in each column of the N columns are shifted in row positions relative to the row positions of the content data in each of the other columns of the N columns; and
a sorter coupled to the search array to perform one or more contextual searches on content in the search array via parallel pattern matching in response to executing one or more search instructions specifying the one or more pattern searches and presenting one or more patterns to the content, wherein the parallel pattern matching comprises performing a simultaneous search within all M rows for all of the N search pattern elements input by the N pattern input lines, all in one clock period.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is disclosed herein for a rule processor for conducting contextual searches, the processor comprising a plurality of input payload search registers, search execution engine coupled to the plurality of search registers to perform one or more contextual searches on content in the search registers by via parallel pattern matching in response to executing rules specifying the one or more searches, and presenting one or more patterns to the content in the search registers.
104 Citations
71 Claims
-
1. A system for conducting contextual searches, the system comprising:
-
a rule processor comprising; a plurality of M input payload search registers, wherein a data stream of content data to be searched is input into the plurality of payload search registers; a search execution engine comprising; a search array coupled to the plurality of M search registers, wherein the search array comprises; a plurality of M rows of search array elements coupled to a plurality of M output match lines; and a plurality of N columns of search array elements coupled to a plurality of N pattern input lines comprising a search pattern, wherein the search array comprises an array of M by N search array elements, and wherein the content data in the plurality of M search registers is replicated and stored N times in the plurality of N columns in the search array, wherein the N content data in each column of the N columns are shifted in row positions relative to the row positions of the content data in each of the other columns of the N columns; and a sorter coupled to the search array to perform one or more contextual searches on content in the search array via parallel pattern matching in response to executing one or more search instructions specifying the one or more pattern searches and presenting one or more patterns to the content, wherein the parallel pattern matching comprises performing a simultaneous search within all M rows for all of the N search pattern elements input by the N pattern input lines, all in one clock period. - 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, 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, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65)
-
-
66. A process comprising:
-
loading a set of input payload search registers with content data; storing a replication of the content data in the payload search registers in a search array coupled to the registers, wherein the search array comprises; a plurality of M rows of search array elements coupled to a plurality of M output match lines; and a plurality of N columns of search array elements coupled to a plurality of N pattern input lines comprising a search pattern, wherein the search array comprises an array of M by N search array elements, and wherein the storing of the replication of content comprises replicating and storing the content in the M input payload search registers a plurality of times, in the plurality of N columns of search array elements, wherein the N content data in each column of the N columns are shifted in row positions relative to the row positions of the content data in each of the other columns of the N columns; presenting by means of the plurality of N pattern input lines a pattern identified by a search instruction to be searched in the search registers; performing parallel pattern matching between the pattern and the content stored in the search array, wherein the parallel pattern matching comprises performing a search query simultaneously within all M rows for all of the N search pattern elements input by the N pattern input lines, all in one clock period; and outputting by means of the plurality of M output match lines an indication of a result of performing the pattern matching. - View Dependent Claims (67, 68, 69)
-
-
70. A process for performing contextual searches in a pipelined fashion, the process comprising:
-
fetching a rule from a rule memory; decoding the rule and assembling indirect fields, if any; storing a replication of content in a plurality of input payload search registers in a search array coupled to the registers, wherein the search array comprises; a plurality of M rows of search array elements coupled to a plurality of M output match lines; and a plurality of N columns of search array elements coupled to a plurality of N pattern input lines comprising a search pattern, wherein the search array comprises an array of M by N search array elements, wherein the storing of the replication of content comprises replicating and storing the content in the M input payload search registers N times, once in each of the N columns of search array elements, wherein the row positions of the replicated content within each column of the N columns of search array elements is shifted relative to the row positions of the replicated content in each of its adjacent columns of search array elements; executing one or more search operations on values in the search array; and performing sort operations on results of executing the one or more search operations. - View Dependent Claims (71)
-
Specification