IP Library Granted Patent US 10,223,020
Granted Patent B2
US 10,223,020 · App. 14/950,963 · Granted Mar 5, 2019

System and method for achieving atomicity in ternary content-addressable memories

Inventor: Sachin Prabhakarrao Kadu (Fremont, CA)
Assignee: Avago Technologies International Sales Pte. Limited
G06F3/0638G06F3/0604G06F3/0673G06F12/0802G11C15/04G06F12/0893G06F2212/20G06F2212/60
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 10,223,020
App. No.
14/950,963
Granted
Mar 5, 2019
Kind
B2
Abstract

A Ternary Content-Addressable Memory (TCAM) system is disclosed. In the system, writes to the memory are performed over several cycles. In order to ensure full visibility of all entries within the TCAM, a cache memory is provided. At the start of the TCAM write, the cache is written with the contents of the new entry. The cache entry is activated for the period of time that the corresponding entry in the TCAM is deactivated for rewriting. For each input value provided to the system, both the TCAM and the cache are checked for potential matches. The results of these checks are compared at output. In this manner, all entries within the TCAM can maintain full visibility even throughout a write period.

Claims (41)

1. A ternary content-addressable memory (TCAM) system, comprising:

a TCAM module that includes:

a TCAM having a stacked cell configuration, the TCAM storing a plurality of entries that each include a key and a mask stored in correspondence with an index value, the TCAM being configured to receive an input value and determine at least one match from among the plurality of entries based on a comparison between the input value and the keys of the plurality of entries according to the corresponding masks of the plurality of entries;

a compare logic block; and

a match priority logic block; and

a cache memory that stores a new entry in response to a corresponding entry stored in the TCAM being invalidated,

wherein the compare logic block is configured to receive the input value and determine whether the input value matches the new entry stored in the cache memory,

wherein the match priority logic block is configured to determine a final match having a highest priority from among the at least one match, and

wherein the new entry in the cache memory is invalidated in response to the corresponding entry stored in the TCAM being modified and reactivated.

2. The TCAM system of claim 1 , wherein the new entry includes an index value corresponding to the invalidated entry in the TCAM.

3. The TCAM system of claim 1 , wherein when the compare logic block determines that the input value matches the new entry stored in the cache memory, the match priority logic block is configured to determine the final match from among the at least one match of the TCAM and the new entry of the cache memory.

4. The TCAM system of claim 1 , wherein the match priority logic block is configured to determine the final match based on the index values of the at least one match.

5. The TCAM system of claim 4 , wherein the match priority logic block is configured to deter mine the final match as the match of the at least one match having a lowest index value.

6. The TCAM system of claim 1 , wherein the new entry in the cache memory is invalidated and the corresponding entry stored in the TCAM is reactivated in a same clock cycle.

7. A ternary content-addressable memory (TCAM) system, comprising:

a TCAM having a plurality of active entries and a deactivated entry, the TCAM being configured to receive an input value and to determine whether the input value matches any of the plurality of active entries;

a cache memory that stores an active updated entry corresponding to the deactivated entry in response to deactivation of the deactivated entry in the TCAM; and

a compare logic block configured to receive the input value and determine whether the input value matches the active updated entry in the cache memory,

wherein the active updated entry in the cache memory is invalidated in response to the deactivated entry stored in the TCAM being modified and reactivated.

8. The TCAM system of claim 7 , wherein each of the plurality of active entries and the deactivated entry in the TCAM include a key and a mask stored in correspondence with a TCAM index value, and

wherein the active updated entry in the cache memory includes a key and a mask stored in correspondence with a cache index value.

9. The TCAM system of claim 8 , wherein the cache index value is the same as the TCAM index value of the deactivated entry in the TCAM.

10. The TCAM system of 7 , wherein the compare logic block is configured to output a cache match indicative of a match between the active updated entry in the cache memory and an input value, and wherein the TCAM is configured to output a TCAM match indicative of a match between the input value and at least one of the plurality of active entries in the TCAM.

11. The TCAM system of claim 10 , further comprising a match priority logic block configured to receive the cache match from the compare logic block and the TCAM match from the TCAM and to determine a final match from among the cache match and the TCAM match having a highest priority.

12. The TCAM system of claim 7 , wherein the TCAM is configured to output a TCAM match flag for each of the plurality of active entries, each TCAM match flag corresponding to one of the plurality of active entries and being indicative of whether the input value matches the corresponding one of the plurality of active entries, and

wherein the cache memory is configured to output a cache match flag for the updated active entry indicative of whether the input value matches the updated active entry.

13. The TCAM system of claim 12 , further comprising a match logic block configured to output a final match vector based on the TCAM match flags and the cache match flag, the final match vector indicating for each active index value in the TCAM and cache memory whether the input value matched a corresponding entry.

14. The TCAM system of claim 7 , wherein the active updated entry in the cache memory is invalidated and the deactivated entry stored in the TCAM is reactivated in a same clock cycle.

15. A method, comprising:

receiving an input value at a ternary content-addressable memory (TCAM) having a plurality of active entries and a deactivated entry;

determining whether the input value matches any of the plurality of active entries in the TCAM;

storing an active updated entry of the deactivated entry in a cache memory in response to deactivation of the deactivated entry in the TCAM;

determining, by a compare logic block, whether the input value matches the active updated entry in the cache memory; and

invalidating the active updated entry in the cache memory in response to the deactivated entry stored in the TCAM being modified and reactivated.

16. The method of claim 15 , wherein each of the plurality of active entries and the deactivated entry in the TCAM include a key and a mask stored in correspondence with a TCAM index value, and

wherein the active updated entry in the cache memory includes a key and a mask stored in correspondence with a cache index value.

17. The method of claim 16 , wherein the cache index value is the same as the TCAM index value of the deactivated entry in the TCAM.

18. The method of claim 15 , further comprising:

outputting, by the compare logic block, a cache match indicative of a match between the active updated entry in the cache memory and an input value, and

outputting, by the TCAM, a TCAM match indicative of a match between the input value and at least one of the plurality of active entries in the TCAM.

19. The method of claim 15 , wherein the active updated entry in the cache memory is invalidated and the deactivated entry stored in the TCAM is reactivated in a same clock cycle.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2015
From: KADU, SACHIN PRABHAKARRAO
To: BROADCOM CORPORATION
Reel/Frame 037142/0524 →
Continuity (2)
Provisional Application 62101272 · Jan 8, 2015
Related Publication 20160202932A1 · Jul 14, 2016