Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
First Claim
Patent Images
1. A method comprising:
- receiving an input tag;
identifying one or more input tag widths;
performing a first lookup in a first content-addressable memory (CAM) array to generate a first CAM result indication of which of a plurality of first CAM entries within the first CAM array produced a hit based on the input tag;
performing a second lookup in a second CAM array to generate a second CAM result indication of which of a plurality of second CAM entries within the second CAM array produced a hit based on the input tag; and
generating one or more size selection CAM result indications based on the first and second CAM result indications and said one or more input tag widths;
wherein each of the plurality of first and second CAM entries include a plurality of value bits.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides a method and system for operating a CAM with a variable size input tag. The improved CAM has multiple access sizes and is divided into multiple stored match sections. Each of the multiple stored match sections can be independently matched against a portion of the input tag, responsive to a type field for each entry. A size selection circuit accumulates the independent match results; a priority encoder coupled thereto collects the accumulated matches and presents a match as an output from the CAM. Each CAM entry can be selected from a set of preselected sizes, each corresponding to a contemplated input tag size, such as 72 bits, 144 bits, or 288 bits.
150 Citations
62 Claims
-
1. A method comprising:
-
receiving an input tag;
identifying one or more input tag widths;
performing a first lookup in a first content-addressable memory (CAM) array to generate a first CAM result indication of which of a plurality of first CAM entries within the first CAM array produced a hit based on the input tag;
performing a second lookup in a second CAM array to generate a second CAM result indication of which of a plurality of second CAM entries within the second CAM array produced a hit based on the input tag; and
generating one or more size selection CAM result indications based on the first and second CAM result indications and said one or more input tag widths;
wherein each of the plurality of first and second CAM entries include a plurality of value bits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus comprising:
-
means for receiving an input tag;
means for identifying one or more input tag widths;
means for performing a first lookup in a first content-addressable memory (CAM) array to generate a first CAM result indication of which of a plurality of first CAM entries within the first CAM array produced a hit based on the input tag;
means for performing a second lookup in a second CAM array to generate a second CAM result indication of which of a plurality of second CAM entries within the second CAM array produced a hit based on the input tag; and
means for generating one or more size selection CAM result indications based on the first and second CAM result indications and said one or more input tag widths;
wherein each of the plurality of first and second CAM entries include a plurality of value bits. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An apparatus comprising:
-
a first content-addressable memory (CAM) array including a plurality of first CAM entries, the first CAM array configured to generate a first CAM result indication of which of the plurality of first CAM entries produce a hit based on an input tag;
a second CAM array including a plurality of second CAM entries, each of the plurality of first and second CAM entries including a plurality of value bits, the second CAM array configured to generate a second CAM result indication of which of the plurality of second CAM entries produce a hit based on the input tag; and
a size selection mechanism coupled to the first and second CAM arrays, the size selection mechanism configured to generate one or more size selection CAM result indications based on the first and second CAM result indications and one or more input tag widths. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method comprising:
-
receiving an input tag;
identifying a selected input tag width, the selected input tag width being one of a plurality of possible input tag widths;
performing a first lookup in a first content-addressable memory (CAM) array to generate a first CAM result indication of which of a plurality of first CAM entries within the first CAM array produced a hit based on the input tag;
performing a second lookup in a second CAM array to generate a second CAM result indication of which of a plurality of second CAM entries within the second CAM array produced a hit based on the input tag; and
generating one or more size selection CAM result indications based on the first and second CAM result indications and the selected input tag width;
wherein each of the plurality of first and second CAM entries include a plurality of value bits. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. An apparatus comprising:
-
means for receiving an input tag;
means for identifying a selected input tag width, the selected input tag width being one of a plurality of possible input tag widths;
means for performing a first lookup in a first content-addressable memory (CAM) array to generate a first CAM result indication of which of a plurality of first CAM entries within the first CAM array produced a hit based on the input tag;
means for performing a second lookup in a second CAM array to generate a second CAM result indication of which of a plurality of second CAM entries within the second CAM array produced a hit based on the input tag; and
means for generating one or more size selection CAM result indications based on the first and second CAM result indications and the selected input tag width;
wherein each of the plurality of first and second CAM entries include a plurality of value bits. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. An apparatus comprising:
-
a first content-addressable memory (CAM) array including a plurality of first CAM entries, the first CAM array configured to generate a first CAM result indication of which of the plurality of first CAM entries produce a hit based on an input tag;
a second CAM array including a plurality of second CAM entries, each of the plurality of first and second CAM entries including a plurality of value bits, the second CAM array configured to generate a second CAM result indication of which of the plurality of second CAM entries produce a hit based on the input tag; and
a size selection mechanism coupled to the first and second CAM arrays, the size selection mechanism configured to generate one or more size selection CAM result indications based on the first and second CAM result indications and a selected input tag width, the selected input tag width being one of a plurality of possible input tag widths. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62)
-
Specification