Claims
- 1. A content addressable memory (CAM), comprising:
a plurality of word entries, each word entry capable of storing data words having variable widths, wherein different word entries are capable of concurrently storing data words of different widths, and wherein search data of variable widths can be compared to data words having the same width as the search data in each word entry.
- 2. A CAM as recited in claim 1, wherein each word entry includes a plurality of entries concatenated by a plurality of dual mode encoders, each dual mode encoder configurable to provide match result lines received from connected entries to subsequent entries.
- 3. A CAM as recited in claim 2, wherein each dual mode encoder is further configurable to provide a search result based on match result lines received from connected entries.
- 4. A CAM as recited in claim 1, wherein each entry includes a predetermined number of CAM cells and tag data defining a width of a data word, the width being defined as a number of entries that form the data word.
- 5. A CAM as recited in claim 4, wherein each entry provides a match result based on a comparison of a portion of the search data to a corresponding portion of the data word stored in the entry.
- 6. A CAM as recited in claim 5, wherein the match result is provided to a subsequent entry when a subsequent entry is a part of the same data word as a current entry.
- 7. A CAM as recited in claim 6, wherein the match result is encoded into a search result when the entry is a last entry forming the data word.
- 8. A method for search data words in a content addressable memory (CAM), comprising the operations of:
generating a match result based on a comparison of a portion of a search data word to a corresponding portion of the data word stored in a current CAM block; passing the match result to a subsequent CAM bock when the subsequent CAM block forms a portion of the same data word stored in the current CAM; and encoding a search result based on the match result when the current CAM block is a last CAM block storing a portion of the data word.
- 9. A method as recited in claim 8, wherein the match result indicates whether the portion of the search data word is the same as the corresponding portion of the data word stored in a CAM block.
- 10. A method as recited in claim 9, further comprising the operation of storing tag data in the CAM blocks, the tag data indicating a width of the stored data word.
- 11. A method as recited in claim 10, wherein the width is defined as a number of CAM blocks forming the stored data word.
- 12. A method as recited in claim 8, wherein the portion of the search data includes tag data indicating a width of the search data word.
- 13. A method as recited in claim 12, wherein the width is defined as a number of CAM blocks needed to form a data word having the same width as the search data word.
- 14. A method as recited in claim 8, each CAM block is concatenated to another CAM block by a dual mode encoder, each dual mode encoder configurable to provide a match result received from a connected CAM block to a subsequent CAM block.
- 15. A method as recited in claim 14, wherein each dual mode encoder is further configurable to provide the search result based on match results received from a connected CAM block.
- 16. A content addressable memory (CAM), comprising:
a plurality of CAM blocks, each CAM block storing entries of a particular width in a plurality of rows, each row of each CAM block providing a match result line as output; and a plurality of dual mode encoders coupled to the plurality of CAM blocks, each dual mode encoder configurable to provide a search result based on received match result lines, each dual mode encoder further configurable to provide received match result lines to a subsequent CAM block.
- 17. A CAM as recited in claim 16, wherein each entry includes tag data defining a width of a data word, the width being defined as a number of entries that form the data word.
- 18. A CAM as recited in claim 17, wherein each entry provides a match result based on a comparison of a portion of the search data to a corresponding portion of the data word stored in the entry.
- 19. A CAM as recited in claim 18, wherein the match result is provided to a subsequent entry when the subsequent entry is a portion of the same data word as the current entry.
- 20. A CAM as recited in claim 19, wherein the match result is encoded into a search result when the entry is a last entry forming the data word.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 09/654,316 filed Sep. 1, 2000, and entitled “Variable Width Content Addressable Memory Device for Searching Variable Width Data,” which claims priority from U.S. Provisional Patent Application No. 60/153,388 filed Sep. 10, 1999, and entitled “Content Addressable Memory Circuitry.”
[0002] This application is also related to U.S. Provisional Patent Application No. 60/167,155 filed on Nov. 23, 1999, and entitled “Three Port Content Addressable Memory Circuit and Methods for Implementing the Same.” This application is further related to U.S. Provisional Patent Application No. 60/166,964 filed on Nov. 23, 1999, and entitled “Content Addressable Memory Circuit with Redundant Array and Method for Implementing the Same.” These applications are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60153388 |
Sep 1999 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09654316 |
Sep 2000 |
US |
Child |
10406418 |
Apr 2003 |
US |