IP Library Granted Patent US 8,122,189
Granted Patent B1
US 8,122,189 · App. 12/901,859 · Granted Feb 21, 2012

Methods for logically combining range representation values in a content addressable memory

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,122,189
App. No.
12/901,859
Filed
Oct 11, 2010
Granted
Feb 21, 2012
Kind
B1
Examiner
CHOE, YONG J
Art Unit
2185
USPC
711/108
Abstract

A method may include comparing a first content addressable memory (“CAM”) entry with a first key value to generate a first comparison result; comparing each of multiple second CAM entries with a second key value to generate multiple second comparison results; and generating a match signal if the first key value matches the first CAM entry and the second key value matches at least one of the multiple second CAM entries.

Claims (57)

1. A method, comprising:

comparing a first content addressable memory (“CAM”) entry with a first key value to generate a first comparison result;

comparing each of multiple second CAM entries with a second key value to generate multiple second comparison results; and

generating a match signal if the first key value matches the first CAM entry and the second key value matches at least one of the multiple second CAM entries; wherein

the first and second CAM entries store a network processing rule.

2. The method of claim 1 , wherein the match signal is generated by determining a logical relation within the array of CAM cells given by:

A and (B′ or B″ or . . . B N ),

wherein A represent the first comparison result, B′ represents a first one of the multiple second comparison results, B″ represents a second one of the multiple second comparison results, and B N an Nth one of the multiple second comparison results.

3. The method of claim 1 , wherein the first and second key values comprise first and second portions of a single key entry.

4. The method of claim 3 , wherein comparing the first CAM entry and comparing each of the multiple second CAM entries are executed in parallel with one another.

5. The method of claim 4 , wherein generating the match signal if the first key entry matches the first CAM entry and the second key entry matches at least one of the multiple second CAM entries comprises:

logically combining the multiple second comparison results to generate a combined result; and

logically combining the combined result with the first comparison result.

6. The method of claim 1 , further comprising:

loading the first key value into a key entry prior to comparing the first CAM entry with the first key value; and

loading the second key value into the key entry prior to comparing the multiple second CAM entries with the second key value, wherein comparing the first CAM entry and comparing the multiple second CAM entries are executed during different time periods.

7. The method of claim 1 , wherein generating the match signal if the first key value matches the first CAM entry and the second key value matches one of the multiple second CAM entries comprises:

storing the first comparison result; and

logically combining the stored first comparison result with each of the multiple second comparison results.

8. The method of claim 7 , further comprising:

suppressing the stored comparison result from a priority encoder coupled to the array of CAM cells while comparing each of multiple second CAM entries with the second key value.

9. The method of claim 1 , wherein the array of CAM cells comprises an array of ternary CAM cells capable of performing ternary matches.

10. The method of claim 1 , wherein:

the first key value comprises a first portion of a packet data and the second key value comprises a second portion of a packet data,

the first CAM entry comprises a fixed portion of a network processing rule having a single value for comparing against the first portion of the packet data, and

the multiple second CAM entries comprise a range portion of the network processing rule.

11. A method, comprising:

storing a fixed portion of a network processing rule in a first content addressable memory (CAM) entry; and

storing a second range portion of the network processing rule as a plurality of second values in corresponding second CAM entries; wherein

each CAM entry generates a separate match result, and the match results of the second CAM entries are logically combinable with the match result of the first CAM entry.

12. The method of claim 11 , wherein:

the network processing rule comprises a packet processing rule.

13. The method of claim 12 , wherein:

the second range portion comprises at least a destination address of a packet.

14. The method of claim 11 , further including

generating a match signal if a first key value matches the fixed portion and a second key value matches any one of the second values.

15. The method of claim 14 , wherein:

generating the match signal includes applying the first key value to the first CAM entry substantially in parallel with the application of the second key value to the second CAM entries.

16. The method of claim 14 , wherein:

generating the match signal includes

applying the first key value to the first CAM entry in a first time period, and

applying the second key value to the second CAM entries in a second time period.

17. A method, comprising:

in a range compare mode,

storing a range portion of a network processing rule as a plurality of second key values in corresponding second content addressable memory (CAM) entries, and

generating a match indication if a first key entry matches a first value stored in a first CAM entry, and a second key entry matches any of the second key values stored in the second CAM entries; and

in a regular mode, generating a match indication if a key entry matches values stored in any of the first and second CAM entries.

18. The method of claim 17 , wherein:

the first CAM entry and second CAM entries each generate a corresponding match result; and

in the range compare mode, a match result from the first CAM entry is logically combined with match results of the second CAM entries to generate the match indication.

19. The method of claim 17 , wherein:

the first CAM entry and second CAM entries each generate a corresponding match result; and

in the range compare mode, the match result from the first CAM entry is suppressed.

20. The method of claim 17 , wherein:

the first CAM entry and second CAM entries each generate a corresponding match result;

in the range compare mode, the match result from the first CAM entry is prevented from being applied to a priority encoder, and the match results from the second CAM entries are applied to the priority encoder; and

in the regular mode, the match result from the first and second CAM entries are applied to the priority encoder.