IP Library Granted Patent US 8,516,456
Granted Patent B1
US 8,516,456 · App. 12/944,442 · Granted Aug 20, 2013

Compact instruction format for content search systems

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,516,456
App. No.
12/944,442
Granted
Aug 20, 2013
Kind
B1
Abstract

A system and method are disclosed that compiles a sub-expression associated with an inexact pattern contained in a regular expression into a plurality of microprogram instructions that can be stored in contiguous locations of an instruction memory. At least one of the microprogram instructions includes a next instruction address and a fetch length value, where the next instruction address indicates the instruction memory address of the next instruction to be executed and the fetch length value indicates the number of sequentially-executed instructions that are to be fetched from contiguous locations of the instruction memory.

Claims (33)

1. A method for compiling a source regular expression into a plurality of microprogram instructions for controlling a content search system, comprising:

parsing the source regular expression into one or more sub-expressions, comprising an inexact sub-expression associated with an inexact pattern;

compiling the inexact sub-expression into the plurality of microprogram instructions such that the plurality of microprogram instructions form a contiguous group of microprogram instructions; and

storing the contiguous group of microprogram instructions into contiguous locations of an instruction memory.

2. The method of claim 1 , wherein the parsing differentiates an exact sub-expression from the inexact sub-expression.

3. The method of claim 2 , wherein the inexact sub-expression comprises at least one of: a “*” quantifier, a “?” quantifier, a “{n}” quantifier, a “{n,}” quantifier, and a “{n,m}” quantifier.

4. The method of claim 1 , wherein at least one of the contiguous group microprogram instructions comprises an opcode, a next instruction address, and a fetch length value.

5. The method of claim 4 , wherein the fetch length value indicates a number of instructions to be fetched from contiguous locations in the instruction memory.

6. The method of claim 4 , wherein the plurality of microprogram instructions are pre-fetched from the instruction memory into a cache memory in response to the next instruction address and the fetch length value.

7. The method of claim 1 , wherein a set of microprogram instructions are pre-fetched from the instruction memory based on one or more operands of a first microprogram instruction.

8. The method of claim 7 , wherein the first microprogram instruction comprises an opcode operand, an offset operand, and a fetch length operand.

9. A system for compiling a source regular expression into a plurality of microprogram instructions for controlling a content search system, comprising:

means for parsing the source regular expression into one or more sub-expressions, comprising an inexact sub-expression associated with an inexact pattern;

means for compiling the inexact sub-expression into the plurality of microprogram instructions such that the plurality of microprogram instructions form a contiguous group of microprogram instructions; and

means for storing the contiguous group of microprogram instructions into contiguous locations of an instruction memory.

10. The system of claim 9 , wherein the parsing differentiates an exact sub-expression from the inexact sub-expression.

11. The system of claim 10 , wherein the inexact sub-expression comprises at least one of: a “*” quantifier, a “?” quantifier, a “{n}” quantifier, a “{n,}” quantifier, and a “{n,m}” quantifier.

12. The system of claim 9 , wherein at least one of the contiguous group microprogram instructions comprises an opcode, an offset value, and a fetch length value.

13. The system of claim 12 , wherein the fetch length value indicates a number of instructions to be fetched from contiguous locations in the instruction memory.

14. The system of claim 12 , wherein the plurality of microprogram instructions are pre-fetched from the instruction memory into a cache memory in response to a next instruction address and the fetch length value.

15. The system of claim 9 , wherein a set of microprogram instructions are pre-fetched from the instruction memory based on one or more operands of a first microprogram instruction.

16. The system of claim 15 , wherein the first microprogram instruction comprises an opcode operand, an offset operand, and a fetch length operand.

17. A computer program product embodied on a tangible computer readable medium for storing non-transitory data for compiling a source regular expression into a plurality of microprogram instructions for controlling a content search system, the computer program product configured to:

parse the source regular expression into one or more sub-expressions, comprising an inexact sub-expression associated with an inexact pattern;

compile the inexact sub-expression into the plurality of microprogram instructions such that the plurality of microprogram instructions form a contiguous group of microprogram instructions; and

store the contiguous group of microprogram instructions into contiguous locations of an instruction memory.

18. The computer program product of claim 17 , wherein the parsing differentiates an exact sub-expression from the inexact sub-expression.

19. The computer program product of claim 18 , wherein the inexact sub-expression comprises at least one of: a “*” quantifier, a “?” quantifier, a “{n}” quantifier, a “{n,}” quantifier, and a “{n,m}” quantifier.

20. The computer program product of claim 17 , wherein at least one of the plurality of microprogram instructions comprises an opcode, an offset value, and a fetch length value.

21. The computer program product of claim 20 , wherein the fetch length value indicates a number of instructions to be fetched from contiguous locations in the instruction memory.

22. The computer program product of claim 20 , wherein the plurality of microprogram instructions are pre-fetched from the instruction memory into a cache memory in response to a next instruction address and the fetch length value.

23. The computer program product of claim 17 , wherein a set of microprogram instructions are pre-fetched from the instruction memory based on one or more operands of a first microprogram instruction.

24. The computer program product of claim 23 , wherein the first microprogram instruction comprises an opcode operand, an offset operand, and a fetch length operand.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035443/0763 →
CHANGE OF NAME Recorded Apr 16, 2015
From: NETLOGIC MICROSYSTEMS, INC.
To: NETLOGIC I LLC
Reel/Frame 035443/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2010
From: STAROVOITOV, ALEXEI; WATSON, GREG
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 025352/0943 →