IP Library Granted Patent US 7,461,370
Granted Patent B2
US 7,461,370 · App. 10/359,839 · Granted Dec 2, 2008

Fast hardware processing of regular expressions containing sub-expressions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,461,370
App. No.
10/359,839
Granted
Dec 2, 2008
Kind
B2
Abstract

A system for processing regular expressions containing one or more sub-expressions. Information regarding one or more regular expressions, each containing one or more sub-expressions, is stored. Data is compared to the stored information regarding expressions in only a single pass through the data. From the comparison, for any stored expression, the location within the data of the beginning and end of each sub-expression, and the end of the regular expression, are determined. From such determination, the presence within the data of any one or more stored regular expressions containing one or more sub-expressions is identified.

Claims (23)

1. A computer useable information storage medium storing computer readable program code for causing a computer to perform the steps of:

storing information regarding one or more regular expressions, each containing one or more sub-expressions;

comparing data to the stored information regarding the regular expressions and the sub-expressions in only a single pass through the data;

determining from the comparison the location within the data of the beginning and end of each sub-expression, and the end of the regular expression; storing the location; and

identifying from such determination the presence within the data of any one or more stored regular expressions containing one or more sub-expressions.

2. The computer useable information storage medium of claim 1 , wherein the storing information regarding regular expressions comprises converting a regular expression to tables stored in memory.

3. The computer useable information storage medium of claim 2 , wherein the determining step comprises saving, upon the start or end of a sub-expression, an identification of a rule with which the sub-expression is associated, an identification of the sub-expression within the rule, and an identification of whether it is the start or end of a sub-expression.

4. The computer useable information storage medium of claim 3 , wherein the saving comprising storing the identifications in an addressable memory.

5. The computer useable information storage medium of claim 4 , further comprising keeping track of the next location within the addressable memory for storing an identification.

6. The computer useable information storage medium of claim 3 , wherein the means for saving step comprising storing the byte offset of the data which comprises the start or end of a sub-expression.

7. The computer useable information storage medium of claim 2 , wherein there is one table for each regular expression containing one or more sub-expressions.

8. The computer useable information storage medium of claim 7 , wherein the table of each regular expression containing one or more sub-expressions comprising a quantity of elements equal to at least twice the maximum number of sub-expressions in the rule, so that the start and end of each sub-expression can be separately stored.

9. A method for processing regular expression containing one or more sub-expressions, comprising:

storing information regarding one or more regular expressions, each containing one or more sub-expressions, including converting a regular expression to tables stored in memory, wherein there is one table for each regular expression containing one or more sub-expressions, and wherein such tables each comprise a quantity of elements equal to at least twice the maximum number of sub-expressions in the rule, so that the start and end of each sub-expression can be separately stored in a table;

comparing data to the stored information regarding expressions in only a single pass through the data;

determining from the comparison, for any stored expression, the location within the data of the beginning and end of each sub-expression, and the end of the regular expression, wherein the determining step includes saving upon the start or end of a sub-expression, an identification of a rule with which the sub-expression is associated, an identification of the sub-expression within the rule, and an identification of whether it is the start or end of a sub-expression, and wherein the saving comprises means for storing the byte offset of the data which comprises the start or end of a sub-expression in an addressable memory;

identifying from such determination the presence within the data of any one or more stored regular expressions containing one or more sub-expressions; and

keeping track of the next location within the addressable memory for storing an identification.

10. A system for processing regular expressing containing one or more sub-expressions using a deterministic finite state automation comprising:

means for storing information regarding one or more regular expressions, each containing one or more sub-expressions;

means for comparing data to the stored information regarding the regular expressions and the sub-expressions in only a single pass through the data;

means for determining from the comparison the location within the data of the beginning and end of each sub-expression, and the end of the regular expression storing location; and

means for identifying from such determination the presence within the data of any one or more stored regular expressions containing one or more sub-expressions.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2013
From: AUTHENTEC, INC.
To: INSIDE SECURE
Reel/Frame 029748/0128 →