Content addressable memory in which keys are embedded in comparators
First Claim
1. A content addressable memory (CAM) system comprising:
- a search key input configured to receive an N-bit search key;
a comparator core configured to embed W N-bit embedded keys in W comparator blocks each configured to compare its embedded key to the N-bit search key, wherein each comparator block comprises M look up tables (LUTs) each programmed to embed an L-bit subset of the embedded key in the comparator block and having an L-bit input for an L-bit subset of the search key where M is greater than one and L is less than N, and wherein each comparator block outputs a match indication only if each L-bit subset of the search key matches each corresponding L-bit subset of the embedded key in the comparator block subject to any masked bits; and
a location decoder connected to outputs of the comparator blocks and configured to identify a location in the comparator core of one of the embedded keys that matches the search key.
2 Assignments
0 Petitions
Accused Products
Abstract
A content addressable memory (CAM) system can include a comparator core in which all of the keys of the CAM are embedded in comparator blocks. A search key can be provided to each of the comparator blocks, which can compare the search key to its embedded key and determine whether the search key matches the embedded key. The comparator blocks can be organized into paged sets in the comparator core such that only one of the comparator blocks in each paged set is selected and compares its embedded key to the search key at any given time. The comparator block selected in each paged set can be incremented until the search key has been compared to the keys embedded in all of the comparator blocks of the comparator core.
5 Citations
24 Claims
-
1. A content addressable memory (CAM) system comprising:
-
a search key input configured to receive an N-bit search key; a comparator core configured to embed W N-bit embedded keys in W comparator blocks each configured to compare its embedded key to the N-bit search key, wherein each comparator block comprises M look up tables (LUTs) each programmed to embed an L-bit subset of the embedded key in the comparator block and having an L-bit input for an L-bit subset of the search key where M is greater than one and L is less than N, and wherein each comparator block outputs a match indication only if each L-bit subset of the search key matches each corresponding L-bit subset of the embedded key in the comparator block subject to any masked bits; and a location decoder connected to outputs of the comparator blocks and configured to identify a location in the comparator core of one of the embedded keys that matches the search key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A content addressable memory (CAM) system comprising:
-
a search key input configured to receive an N-bit search key; a page module configured to provide a B-bit page code for uniquely identifying P pages; a comparator core configured to embed W N-bit embedded keys in W/P paged comparator blocks, wherein each paged comparator block comprises P sets of M look up tables (LUTs) with each of the P sets embedding one of the embedded keys such that each paged comparator block embeds P embedded keys, and wherein each of the M LUTs embeds an S-bit subset of the corresponding embedded key, each of the P sets also being associated with a different B-bit page code; wherein each paged comparator block is configured to compare the search key to one of its P embedded keys that corresponds to a particular value of the page code provided by the page module, and wherein each paged comparator block comprises programmable logic programmed to output a match indication only if; the search key matches one of the P embedded keys embedded in the paged comparator block subject to any masked bits, and the particular value of the page code matches the page code associated with the set of LUTs where the matched key is embedded; and a location decoder connected to outputs of the paged comparator blocks and configured to identify a location in the comparator core of the matched key. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A process of operating a content addressable memory (CAM), comprising:
-
receiving an N-bit search key at a search key input to the CAM; simultaneously comparing the search key to W N-bit embedded keys embedded in W comparator blocks of a comparator core of the CAM, wherein each comparator block comprises M look up tables (LUTs) each programmed to embed an L-bit subset of the embedded key in the comparator block and having an L-bit input for an L-bit subset of the search key where M is greater than one and L is less than N, and wherein each comparator block outputs a match indication only if each L-bit subset of the search key matches each corresponding L-bit subset of the embedded key in the comparator block subject to any masked bits, and outputting from the CAM a location in the comparator core of one of the W embedded keys that matches the search key. - View Dependent Claims (19)
-
-
20. A process of operating a content addressable memory (CAM) comprising a comparator core in which are embedded W N-bit embedded keys, wherein the comparator core comprises W/P paged comparator blocks each embedding P of the embedded keys, wherein each paged comparator block comprises P sets of M look up tables (LUTs) with each of the P sets embedding one of the embedded keys, and wherein each of the M LUTs embeds an S-bit subset of the corresponding embedded key, each of the P sets also being associated with a different one of P pages, the processing comprising:
-
receiving an N-bit search key at a search key input to the CAM; simultaneously comparing in the W/P paged comparator blocks the search key to W/P of the embedded keys associated with a pth one of the pages of the paged comparator blocks; and at least until identifying a location in the comparator core of one of the embedded keys that matches the search key or cycling through all of the pages, changing the page code and repeating the comparing step and the changing step. - View Dependent Claims (21, 22, 23, 24)
-
Specification