IP Library Granted Patent US 7,389,377
Granted Patent B2
US 7,389,377 · App. 11/426,011 · Granted Jun 17, 2008

Access control list processor

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,389,377
App. No.
11/426,011
Granted
Jun 17, 2008
Kind
B2
Abstract

An integrated circuit device for processing an access control list. The integrated circuit device includes a first content addressable memory (CAM) including a plurality of CAM blocks to generate respective match indices, each match index indicating a storage location within the corresponding CAM block of an entry that matches a search key. The integrated circuit device further includes a plurality of memory arrays to receive the match indices from the CAM blocks and to output respective lookup values from storage locations indicated by the match indices, each lookup value including information that indicates an action to be taken with respect to a packet used to obtain the search key and information that indicates a priority of the action relative to actions indicated by information in others of the lookup values.

Claims (36)

1. An integrated circuit device comprising:

a first content addressable memory (CAM) including a plurality of CAM blocks to generate respective match indices, each match index indicating a storage location within the corresponding CAM block of an entry that matches a search key; and

a plurality of memory arrays to receive the match indices from the plurality of CAM blocks and to output respective lookup values from storage locations indicated by the match indices, each lookup value including information that indicates an action to be taken with respect to a packet used to obtain the search key and information that indicates a merging operation for merging the action with one or more actions indicated by information in others of the lookup values.

2. The integrated circuit device of claim 1 further comprising a first logic circuit to merge the information included within at least a portion of the lookup values.

3. The integrated circuit device of claim 2 wherein each lookup value includes information that indicates a priority of the action to be taken with respect to the packet relative to actions indicated by information in others of the lookup values.

4. The integrated circuit device of claim 3 wherein the first logic circuit includes circuitry to compare the information that indicates the priority of an action indicated by a first one of the lookup values with information that indicates the priority of an action indicated by a second one of the lookup values and to output either the first one of the lookup values or the second one of the lookup values as a selected lookup value based on whether the priority of the action indicated by the first one of the lookup values exceeds the priority of the second one of the lookup values.

5. The integrated circuit device of claim 2 wherein each of the lookup values additionally includes an identifier value that corresponds to an operation to be conditionally performed with respect to the packet, and wherein the first logic circuit comprises comparison circuitry to compare the identifier value within each of the lookup values with an identifier-selection value to determine the portion of the lookup values.

6. The integrated circuit device of claim 1 further comprising a plurality of logic circuits each to merge the information included within a respective subset of the lookup values.

7. The integrated circuit device of claim 6 wherein the plurality of logic circuits output a plurality of merged values that are fewer in number than the plurality of lookup values.

8. The integrated circuit device of claim 6 wherein the plurality of logic circuits output a plurality of merged values and wherein the integrated circuit device further comprises a second CAM to receive a second search key formed, at least in part, from contents within the plurality of merged values, and to output a index value that indicates a manner of merging at least two of the merged values.

9. The integrated circuit device of claim 1 further comprising a lookup circuit to look up a rule for merging the action with the one or more actions indicated by information in others of the lookup values.

10. The integrated circuit device of claim 9 wherein the lookup circuit comprises circuitry to receive a lookup index that includes at least a portion of the action and at lest a portion of the one or more actions indicated by information in others of the lookup values.

11. The integrated circuit device of claim 9 wherein the lookup circuit comprises a second CAM.

12. The integrated circuit device of claim 11 wherein the lookup circuit further comprises a lookup memory that is indexed based on a match address generated by the second CAM, the lookup memory to store information that indicates a merged action value to be output from the integrated circuit device.

13. An integrated circuit device comprising:

a plurality of content addressable memory (CAM) blocks;

a plurality of lookup memories;

means for comparing a search key with contents of the plurality of CAM blocks in concurrent search operations to generate a plurality of match indices; and

means for concurrently addressing a plurality of lookup memories using the plurality of match indices to retrieve respective lookup values, each lookup value indicating an action be taken with respect to a packet used to obtain the search key and a merging operation for merging the action with one or more actions indicated by others of the lookup values.

14. A method of operation within an integrated circuit device, the method comprising:

comparing a search key with contents of a plurality of content addressable memory (CAM) blocks in concurrent search operations to generate a plurality of match indices; and

concurrently addressing a plurality of lookup memories using the plurality of match indices to retrieve respective lookup values, each lookup value indicating an action be taken with respect to a packet used to obtain the search key and a merging operation for merging the action with one or more actions indicated by others of the lookup values.

15. The method of claim 14 wherein comparing a search key with contents of a plurality of CAM blocks in concurrent search operations comprises comparing a search key constructed based, at least in part, on one or more header fields within the packet with respective access control lists stored within the plurality of CAM blocks.

16. The method of claim 14 wherein each lookup value further indicates a packet processing feature associated with the action indicated by the lookup value, and wherein the method further comprises merging at least two of the actions associated with matching packet processing features.

17. The method of claim 16 wherein merging at least two of the actions associated with matching packet processing features comprises consolidating the at least two of the actions into a single action based, at least in part, on prioritizing information associated with each of the two actions.

18. The method of claim 14 further comprising:

generating a search key based on selected fields within the lookup values; and

comparing the search key with a plurality of rules for merging the actions indicated by the lookup values.

19. The method of claim 18 further comprising:

identifying a first rule that matches the search key within the plurality of rules for merging the actions;

generating an index that corresponds to the first rule; and

retrieving a merged action value from a location with another lookup memory based on the index that corresponds to the first rule.

20. The method of claim 19 further comprising outputting at least a portion of the merged action value from the integrated circuit device.

21. Computer-readable storage media having information embodied therein that includes a description of an integrated circuit device, the information including descriptions of:

a first content addressable memory (CAM) including a plurality of CAM blocks to generate respective match indices, each match index indicating a storage location within the corresponding CAM block of an entry that matches a search key; and

a plurality of memory arrays to receive the match indices from the plurality of CAM blocks and to output respective lookup values from storage locations indicated by the match indices, each lookup value including information that indicates an action to be taken with respect to a packet used to obtain the search key and information that indicates a merging operation for merging the action with one or more actions indicated by information in others of the lookup values.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048674/0834 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658. 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 047357/0302 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0658 →
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 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2011
From: SILICON VALLEY BANK
To: NETLOGIC MICROSYSTEMS, INC.; NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED; NETLOGIC MICROSYSTEMS CAYMANS LIMITED
Reel/Frame 026830/0141 →
SECURITY AGREEMENT Recorded Jul 17, 2009
From: NETLOGIC MICROSYSTEMS, INC.; NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED; NETLOGIC MICROSYSTEMS CAYMANS LIMITED
To: SILICON VALLEY BANK
Reel/Frame 022973/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2006
From: GUPTA, PANKAJ
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 017863/0310 →