Patent ID: 8001602

Claim:
A system for scanning an incoming data stream for a plurality of symbol patterns, the system comprising: a microprocessor; a symbol register array for receiving said data stream and sequentially storing symbols comprising said data stream, said symbol register array shifting previously received symbols in said symbol register array as new data is received; a trigger stage for determining, using the microprocessor, a possible match between consecutive symbols in said symbol register array and a pattern stored in a storage device, the pattern containing x symbols, said trigger stage providing data regarding said possible match to a subsequent stage, wherein said trigger stage comprises at least one trigger group, each trigger group comprising: a hash module for calculating a hash value based on k consecutive symbols stored in said symbol register array, wherein k<x, and wherein k is less than the number of symbols in the smallest one of the symbol patterns, said hash module reading said k consecutive symbols from said symbol register array; a trigger table; and a trigger comparison module for comparing results from said hash module with indices of entries in said trigger table, said trigger table having entries indicative of whether a specific entry in said storage module is a valid entry, said results from said hash module being compared with indices of said entries in said trigger table; and a full comparison stage for retrieving and comparing one of said plurality of symbol patterns with a symbol sequence stored in and retrieved from said symbol register array, said consecutive symbols being part of said symbol sequence, said one of said plurality of symbol patterns being retrieved from said storage device when data regarding said possible match is received from a preceding stage.