IP Library Granted Patent US 8,898,094
Granted Patent B2
US 8,898,094 · App. 13/659,122 · Granted Nov 25, 2014

NFA character class matching

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 8,898,094
App. No.
13/659,122
Granted
Nov 25, 2014
Kind
B2
Abstract

Disclosed is method of matching a character class to a symbol of an input stream. A character class, or a plurality of character classes, is defined into an accessible format which when accessed is compared to a symbol in an input stream. The format may be stored in an NFA array cell or it may be broadcast to the cell array with an input symbol for comparison.

Claims (35)

1. A method of matching character classes (CCLs) from an NFA in an NFA cell array, said method comprising:

encoding information of at least one frequent CCL in a frequent CCL table;

accessing a location in the frequent CCL table indicated by an input symbol;

broadcasting the content of that location, which is a membership vector, to each cell in the NFA cell array;

broadcasting the input symbol to each cell in the NFA cell array; and

in an NFA cell, using the encoded frequent CCL to select a bit in the membership vector, said bit indicating membership in the frequent CCL.

2. The method of claim 1 , said method further comprising:

encoding a plurality of fixed CCLs; and

in an NFA cell, using the encoded fixed CCL to test whether an input symbol is a member of a corresponding fixed CCL.

3. The method of claim 2 , wherein the encoding of the fixed CCLs comprises encoding at least one code flag.

4. The method of claim 3 , wherein said at least one code flag comprises a negate flag and a caseless flag.

5. The method of claim 2 , wherein the encoding of the frequent CCLs and encoding of fixed CCLs comprises:

using byte class codes (BCLs) comprising a byte field and at least one modification flag; and

storing said BCLs in an NFA cell during cell configuration.

6. The method of claim 1 , further comprising encoding a dictionary table.

7. The method of claim 6 , wherein said dictionary table is formatted as a plurality of bit masks, said bits being stored in an NFA cell during cell configuration.

8. The method of claim 7 , wherein the cell compares the stored bit mask with an input symbol by using the symbol value as an index to select one corresponding bit from the mask.

9. The method of claim 8 , said method further comprising:

encoding a plurality of fixed CCLs; and

in an NFA cell, using the encoded fixed CCL to test whether an input symbol is a member of a corresponding fixed CCL.

10. The method of claim 9 , wherein the encoding of the fixed CCLs comprises encoding at least one code flag.

11. The method of claim 10 , wherein said at least one code flag comprises a negate flag and a caseless flag.

12. The method of claim 9 , wherein the encoding of the frequent CCLs and encoding of fixed CCLs comprises:

using byte class codes (BCLs) comprising a byte field and at least one modification flag; and

storing said BCLs in an NFA cell during cell configuration.

13. A system of matching character classes (CCLs) from an NFA in an NFA cell array, said system comprising:

a frequent CCL table;

an input stream comprising a plurality of input symbols;

a loader enabled to receive NFA instructions and configure the NFA cells; and

a plurality of NFA cells enabled to receive information from the frequent CCL table, loader and input stream;

wherein the input stream provides symbols to the frequent CCL table and the NFA cells, the frequent CCL table utilizes the input symbol to access a membership vector, the membership vector and symbols from the input stream are broadcast to each cell in the NFA cell array, and a bit from the membership vector is selected to determine membership in a CCL.

14. The system of claim 13 , said system further comprising a dictionary table enabled to provide a bit mask to the loader, each bit mask corresponding to a specific character class;

wherein the loader stores a mask obtained from the dictionary table directly in an NFA cell at configuration of the cell and the NFA cell compares the dictionary class with an input symbol, said input acting as an index to select one corresponding bit from the mask.

15. The system of claim 14 , said system further comprising a plurality of fixed character classes wherein cell logic is utilized to compare fixed CCLs with input symbols.

16. The system of claim 15 , wherein said fixed character classes are modifiable by at least a negate code flag and a caseless code flag.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2012
From: RUEHLE, MICHAEL
To: LSI CORPORATION
Reel/Frame 029189/0531 →