High speed CAM lookup using stored encoded key
First Claim
1. A method of accessing a Content Addressable Memory (CAM) having a plurality of encoded key fields, comprising:
- encoding a search key;
storing the encoded search key within a translation lookaside buffer (TLB); and
accessing the CAM using the stored, encoded search key.
2 Assignments
0 Petitions
Accused Products
Abstract
The search key and key fields of a CAM in a cache are encoded with a Hamming distance of at least two to increase the speed of the CAM by ensuring each mismatching match line is discharged by at least two transistors in parallel. Where the cache is physically tagged, the search key is a physical address. The page address portion of the physical address is encoded prior to being stored in a TLB. The page offset bits are encoded in parallel with the TLB access, and concatenated with the encoded TLB entry. If a page address addresses a large memory page size, a plurality of corresponding sub-page addresses may be generated, each addressing a smaller page size. These sub-page addresses may be encoded and stored in a micro TLB. The encoded key and key field are tolerant of single-bit soft errors.
38 Citations
27 Claims
-
1. A method of accessing a Content Addressable Memory (CAM) having a plurality of encoded key fields, comprising:
-
encoding a search key; storing the encoded search key within a translation lookaside buffer (TLB); and accessing the CAM using the stored, encoded search key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of matching an address in a Content Addressable Memory (CAM), comprising:
-
storing an encoded version of the address as a key field in the CAM; storing an encoded version of a page address portion of the address in a Translation Lookaside Buffer (TLB); and comparing the encoded address from the TLB against a plurality of encoded key fields in the CAM to detect a match. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A processor, comprising:
-
a cache memory comprising a Content Addressable Memory (CAM) and Random Access Memory (RAM), the cache operative to store or supply data to or from a RAM entry when a search key matches a corresponding key field stored in the CAM, the key fields encoded by a Hamming distance of at least two; and a Translation Lookaside Buffer (TLB) operative to store and output page addresses as search keys for the CAM, the page addresses encoded by the same algorithm as the CAM key fields. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A processor, comprising:
-
means for encoding a search key; means for storing the encoded search key within a translation lookaside buffer (TLB); and means for accessing a Content Addressable Memory (CAM) having a plurality of encoded key fields using the stored, encoded search key.
-
-
27. A computer-readable medium comprising instructions, which, when executed by a processor, cause the processor to perform operations, the instructions comprising:
-
program code to encode a search key; program code to store the encoded search key within a translation lookaside buffer (TLB); and program code to access a Content Addressable Memory (CAM) having a plurality of encoded key fields using the stored, encoded search key.
-
Specification