String matching system and method using bloom filters to achieve sub-linear computation time
First Claim
Patent Images
1. A string matching system, comprising:
- a text string;
a plurality of patterns;
an m-byte search window standing for an m-byte sub-string in the text string under inspection;
a plurality of Bloom filters, each of the Bloom filter comprising sub-strings of the plurality of patterns;
wherein the Bloom filters are required for membership of a rightmost block in the m-byte search window to determine a shift length; and
a priority setting module, wherein when the Bloom filter generates two or more shift lengths, the priority setting module is used to determine the shift length and output the shorter shift length on a priority.
1 Assignment
0 Petitions
Accused Products
Abstract
A string matching system includes a text string, a plurality of patterns, an m-byte search window and a plurality of Bloom filters, wherein the m-byte search window stands for an m-byte sub-string in the text string under inspection. Every Bloom filter comprises sub-strings of a plurality of patterns. These Bloom filters are queried for membership of the rightmost block in the search window to determine the shift length. The acceleration efficiency of matching many bytes can be achieved simultaneously by shifting the search window for many bytes. Meanwhile, the patterns are stored into an embedded memory through a memory-efficient mechanism —the Bloom filter.
-
Citations
11 Claims
-
1. A string matching system, comprising:
-
a text string; a plurality of patterns; an m-byte search window standing for an m-byte sub-string in the text string under inspection; a plurality of Bloom filters, each of the Bloom filter comprising sub-strings of the plurality of patterns;
wherein the Bloom filters are required for membership of a rightmost block in the m-byte search window to determine a shift length; anda priority setting module, wherein when the Bloom filter generates two or more shift lengths, the priority setting module is used to determine the shift length and output the shorter shift length on a priority. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A string matching method, comprising:
-
(a) providing a plurality of patterns; (b) providing a text string; (c) standing for an m-byte sub-string from the text string under inspection through an m-byte search window; (d) requiring a plurality of Bloom filters for membership of the rightmost block in the m-byte search window to determine a shift length, wherein every Bloom filter comprises sub-strings of the plurality of patterns; and (e) if the shift length is 0, the Bloom filters are queried for comparison of the blocks from the rightmost one backward in the m-byte search window;
if the shift length is not greater than 0, verification is implemented after finishing comparison, and a byte for the m-byte search window is shifted, and if the shift length is not 0, or greater than 0, the m-byte search window is shifted according to the shift length; and(f) repeating Step (c) to Step (e) until the text string is matched completely. - View Dependent Claims (7, 8, 9, 10, 11)
-
Specification