IP Library Granted Patent US 7,889,530
Granted Patent B2
US 7,889,530 · App. 11/855,721 · Granted Feb 15, 2011

Reconfigurable 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 7,889,530
App. No.
11/855,721
Granted
Feb 15, 2011
Kind
B2
Abstract

A system for determining memory addresses including a first content-addressable memory (CAM) configured to generate a first matchvector based on a first key; a first inverse-mask-reverse (IMR) module operatively connected to the first CAM, where the first IMR module is configured to generate a first auxiliary matchvector based on the first matchvector; and a first priority encoder (PE) operatively connected to the first IMR module, where the first PE is configured to output a first encoded memory address based on the first auxiliary matchvector, where the first CAM, the first IMR module, and the first PE are associated with a first reconfigurable content-addressable memory (RCAM).

Claims (52)

1. A system for determining memory addresses comprising:

a first content-addressable memory (CAM) configured to generate a first matchvector based on a first key;

a first inverse-mask-reverse (IMR) module operatively connected to the first CAM, wherein the first IMR module is configured to generate a first auxiliary matchvector based on the first matchvector; and

a first priority encoder (PE) operatively connected to the first IMR module, wherein the first PE is configured to output a first encoded memory address based on the first auxiliary matchvector,

wherein the first CAM, the first IMR module, and the first PE are associated with a first reconfigurable content-addressable memory (RCAM).

2. The system of claim 1 , wherein the first CAM comprises:

a plurality of cells,

wherein each of the plurality of cells is associated with one of a plurality of cell rows,

wherein each of the plurality of cell rows is associated with a memory address, and

wherein each of the plurality of cell rows are ranked.

3. The system of claim 2 , wherein the first key matches at least one of the plurality of cell rows.

4. The system of claim 2 , wherein each of the plurality of cell rows comprises a byte.

5. The system of claim 2 , wherein a dimension of the first matchvector and a cardinality of the plurality of cell rows are equal.

6. The system of claim 1 , wherein the first CAM is configured to operate in at least one mode selected from a group consisting of binary CAM (BCAM) mode, ternary CAM (TCAM) mode, and byte CAM (ByteCAM) mode.

7. The system of claim 1 , wherein the first IMR module comprises a mask register.

8. The system of claim 1 , wherein the first IMR module comprises a bit inverter.

9. The system of claim 1 , wherein the first RCAM is a special-purpose block on a heterogeneous configurable integrated circuit.

10. The system of claim 1 , further comprising:

a second CAM configured to generate a second matchvector based on a second key, wherein the second CAM is operatively connected to the first IMR module.

11. The system of claim 10 , wherein the first encoded memory address is associated with at least one selected from a group consisting of the first CAM and the second CAM.

12. The system of claim 1 , further comprising:

a second CAM configured to generate a second matchvector based on the first key;

a second IMR module operatively connected to the second CAM, wherein the second IMR module is configured to generate a second auxiliary matchvector based on the second matchvector; and

a second PE operatively connected to the second IMR module,

wherein the second CAM, the second IMR module, and the second PE are associated with a second reconfigurable content-addressable memory (RCAM).

13. The system of claim 12 , further comprising:

a programmable logic device (PLD) operatively connected to the first PE and the second PE.

14. The system of claim 12 , wherein the first RCAM unit and the second RCAM unit abut on a heterogeneous configurable integrated circuit.

15. A method for determining memory addresses comprising:

obtaining a first key;

comparing the first key and a first cell row to determine a first match; generating a first matchvector based on the first match;

outputting a first encoded memory address based on the first matchvector; and

byte shifting the first key prior to comparing the first key and the first cell row.

16. A method for determining memory addresses comprising:

obtaining a first key;

comparing the first key and a first cell row to determine a first match; generating a first matchvector based on the first match;

outputting a first encoded memory address based on the first matchvector; and

inverting the first matchvector prior to outputting the first encoded memory address.

17. The method of claim 15 , further comprising:

reversing the first matchvector prior to outputting the first encoded memory address.

18. The method of claim 15 , further comprising:

masking the first matchvector prior to outputting the first encoded memory address.

19. The method of claim 15 , wherein the first cell row is associated with a content-addressable memory (CAM).

20. The method of claim 19 , wherein comparing the first key and the first cell row comprises determining an operating mode of the CAM.

21. The method of claim 15 , wherein outputting the first encoded memory address comprises using a priority encoder.

22. The method of claim 15 , wherein the first plurality of cells is associated with a reconfigurable content-addressable memory (RCAM), wherein the RCAM is a special-purpose block on a heterogeneous configurable integrated circuit.

23. The method of claim 15 , further comprising:

obtaining a second key;

comparing the second key and a second cell row to determine a second match; and generating a second matchvector based on the second match,

wherein outputting the first encoded memory address is further based on the second matchvector.

24. The method of claim 15 , further comprising:

comparing the first key and a second cell row to determine a second match; and generating a second matchvector after comparing the first key and the second cell row.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2009
From: CSWITCH CORPORATION
To: AGATE LOGIC, INC.
Reel/Frame 023287/0005 →
SECURITY INTEREST Recorded Mar 4, 2008
From: CSWITCH CORPORATION
To: VENTURE LENDING & LEASING V, INC., AS AGENT
Reel/Frame 020642/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2007
From: YU, ROBERT; TROSSEN, DAVE; LIU, JACK; KRISHNAPPA, MUKUNDA; JAMES, KEVIN
To: CSWITCH CORPORATION
Reel/Frame 019835/0959 →