IP Library Granted Patent US 9,305,115
Granted Patent B1
US 9,305,115 · App. 13/247,850 · Granted Apr 5, 2016

Method and apparatus for reducing power consumption during rule searches in a content search system

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 9,305,115
App. No.
13/247,850
Granted
Apr 5, 2016
Kind
B1
Abstract

A method and apparatus for comparing a search key with a plurality of rules of an access control list (ACL) stored in a plurality of content addressable memory (CAM) blocks of a content search system are disclosed. The search key is compared with a plurality of covering prefix entries stored in a covering prefix table, wherein a respective covering prefix entry includes first and second common prefix values. The first common prefix value is shared by all of the rules stored in a first of the CAM blocks, and the second common prefix value is shared by all of the rules stored in a second of the CAM blocks. A bitmap associated with a matching covering prefix entry selectively enables a subset of the CAM blocks for comparison with the search key to determine the highest priority matching rule.

Claims (52)

1. A method of comparing a search key to a plurality of access control list (ACL) rules stored in a plurality of content addressable memory (CAM) blocks of a content search system, the method comprising:

generating a covering prefix table comprising a plurality of covering prefix entries and an enable signal bitmap;

storing the plurality of covering prefix entries in a classification CAM block;

storing the enable signal bitmap in a random access memory;

comparing the search key to the plurality of covering prefix entries stored in the covering prefix table, wherein each of the plurality of covering prefix entries corresponds to a respective CAM block from among the plurality of CAM blocks;

selectively enabling a subset of the plurality of CAM blocks;

comparing the search key with each respective ACL rule from among the plurality of ACL rules stored in the subset of the plurality of CAM blocks;

determining a best match between the search key and the plurality of ACL rules; and

determining a match address or an index of a CAM block from among the subset of the plurality of CAM blocks whose respective ACL rule has the best match.

2. The method of claim 1 , wherein the plurality of covering prefix entries comprises:

a source address value that is shared by the plurality of ACL rules stored in a first CAM block from among the plurality of CAM blocks; and

a destination address value that is shared by the plurality of ACL rules stored in a second CAM block from among the plurality of CAM blocks.

3. The method of claim 2 , wherein each covering prefix entry from among the plurality of covering prefix entries comprises a unique combination of the source address value and the destination address value.

4. The method of claim 1 , further comprising storing the plurality of ACL rules in the plurality of CAM blocks according to their common source values and common destination values, irrespective of relative priority of the ACL rules.

5. The method of claim 4 , further comprising storing a priority value of each ACL rule from among the plurality of ACL rules.

6. The method of claim 5 , wherein determining the best match further comprises using the priority values.

7. The method of claim 1 , wherein the enable signal bitmap comprises a plurality of enable signals, each of the plurality of enable signals to selectively enable a corresponding one of the plurality of CAM blocks.

8. An apparatus for comparing a search key to a plurality of access control list (ACL) rules stored in a plurality of content addressable memory (CAM) blocks, comprising:

means for generating a covering prefix table comprising a plurality of covering prefix entries and an enable signal bitmap;

means for storing the plurality of covering prefix entries in a classification CAM block;

means for storing the enable signal bitmap in a random access memory;

means for comparing the search key to the plurality of covering prefix entries stored in the covering prefix table, wherein each of the plurality of covering prefix entries corresponds to a respective CAM block from among the plurality of CAM blocks;

means for selectively enabling a subset of the plurality of CAM blocks;

means for comparing the search key with each respective ACL rule from among the plurality of ACL rules stored in the subset of the plurality of CAM blocks;

means for determining a best match between the search key and the plurality of ACL rules; and

means for determining a match address or an index of a CAM block from among the subset of the plurality of CAM blocks whose respective ACL rule has the best match.

9. The apparatus of claim 8 , wherein the plurality of covering prefix entries comprises:

a source address value that is shared by the plurality of ACL rules stored in a first CAM block from among the plurality of CAM blocks; and

a destination address value that is shared by the plurality of ACL rules stored in a second CAM block from among the plurality of CAM blocks.

10. The apparatus of claim 9 , wherein each covering prefix entry from among the plurality of covering prefix entries comprises a unique combination of the source address value and the destination address value.

11. The apparatus of claim 8 , further comprising means for storing the plurality of ACL rules in the plurality of CAM blocks according to their common source values and common destination values, irrespective of relative priority of the ACL rules.

12. The apparatus of claim 11 , further comprising means for storing a priority value of each ACL rule from among the plurality of ACL rules.

13. The apparatus of claim 12 , wherein the means for determining the best match comprises using the priority values.

14. The apparatus of claim 8 , wherein the enable signal bitmap comprises a plurality of enable signals, each of the plurality of enable signals to selectively enable a corresponding one of the plurality of CAM blocks.

15. A content search system for comparing a search key to a plurality of access control list (ACL) rules, the system comprising:

a plurality of content addressable memory (CAM) blocks, wherein each of a first set of the CAM blocks from among the plurality of CAM blocks is configured to store a first corresponding group of ACL rules from among the plurality of ACL rules that share an associated common source address prefix value, and wherein each of a second set of the CAM blocks from among the plurality of CAM blocks is configured to store a second corresponding group of ACL rules from among the plurality of ACL rules that share an associated common destination address prefix value;

a classification CAM block configured to store a plurality of covering prefix entries, wherein a respective covering prefix entry from among the plurality of covering prefix entries includes a common source address prefix value and a common destination address prefix value; and

a bitmap memory configured to:

store an enable signal bitmap for each of the plurality of covering prefix entries; and

forward a selected one of the enable signal bitmaps to the plurality of CAM blocks in response to a compare operation.

16. The system of claim 15 , wherein each covering prefix entry from among the plurality of covering prefix entries includes a unique pair of the common source address prefix value and the common destination address prefix value.

17. The system of claim 15 , wherein the enable signal bitmaps indicate which CAM block from among the plurality of CAM blocks stores ACL rules associated with a corresponding covering prefix entry from among the plurality of covering prefix entries.

18. The system of claim 15 , further comprising:

resolution logic, coupled to the plurality of CAM blocks, configured to determine a best match between the search key and the plurality of ACL rules.

19. The system of claim 18 , wherein the resolution logic comprises a memory to store a priority value for each of the plurality of ACL rules stored in the plurality of CAM blocks.

20. The system of claim 15 , wherein the plurality of ACL rules is stored in the plurality of CAM blocks according to their common source values and common destination values, irrespective of relative priority of the plurality of ACL rules.

21. The system of claim 15 , wherein the enable signal bitmaps comprise a plurality of enable signals, each of the plurality of enable signals to selectively enable a corresponding one of the plurality of CAM blocks.

22. The system of claim 15 , furthering comprising:

a classification processor configured to analyze the plurality of ACL rules for commonalities to generate the common source address prefix values and the common destination address prefix values.

23. The system of claim 22 , wherein the classification processor is further configured to form the first and the second corresponding groups of ACL rules in response to the common address prefix values.

24. The system of claim 23 , wherein the classification processor is further configured to store the first and the second corresponding groups of the ACL rules into corresponding CAM blocks from among the plurality of CAM blocks according to the common address prefix values.

25. The system of claim 22 , wherein the classification processor is further configured to generate pairs of covering prefix entries and enable signal bitmaps.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
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 →
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 Apr 16, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035443/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2011
From: ESTAN, CRISTIAN
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 026986/0053 →