IP Library Granted Patent US 9,019,737
Granted Patent B2
US 9,019,737 · App. 14/142,281 · Granted Apr 28, 2015

Power savings in a content addressable memory device using masked pre-compare operations

Inventor: Dimitri Argyres (San Jose, CA)
Assignee: Broadcom Corporation
G11C5/14G11C15/00
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 9,019,737
App. No.
14/142,281
Granted
Apr 28, 2015
Kind
B2
Abstract

A CAM device for comparing a search key with a plurality of ternary words stored in a CAM array includes one or more population counters, a pre-compare memory, and a pre-compare circuit. The present embodiments reduce the power consumption of CAM devices during compare operations between a search key and ternary words stored in a CAM array by selectively enabling the match lines in the CAM array in response to pre-compare operations between a set of population counts corresponding to the masked search key and a set of population counts corresponding to the ternary words stored in the CAM array.

Claims (54)

1. A content addressable memory (CAM) device, comprising:

a CAM array having a plurality of rows of CAM cells, each row of the plurality of rows storing an associated word and being coupled to a corresponding match line; and

a pre-compare circuit, coupled to the CAM array, configured to compare a first data population count with a first key population count and a second data population count with a second key population count to determine whether a search key can match the associated word stored in each row of the plurality of rows.

2. The CAM device of claim 1 , wherein the pre-compare circuit is further configured to selectively enable the match lines of corresponding rows of the CAM array to be pre-charged in response to the comparisons.

3. The CAM device of claim 2 , wherein the pre-compare circuit is further configured to assert a corresponding enable signal to allow the match lines of corresponding rows of the CAM array to be pre-charged when the first key population count is greater than or equal to the first data population count and the second data population count is greater than or equal to the second key population count.

4. The CAM device of claim 3 , wherein the pre-compare circuit is further configured to de-assert the corresponding enable signal when either:

the second data population count is less than the second key population count; or

the first key population count is less than the first data population count.

5. The CAM device of claim 3 , wherein:

the pre-compare circuit comprises a comparator configured to conduct the comparisons sequentially to generate a first comparison result and a second comparison result, wherein:

the first comparison result is stored in a memory; and

the second comparison result is combined with the first comparison result to generate the corresponding enable signal.

6. The CAM device of claim 3 , further comprising match-line control circuitry configured to pre-charge the match lines of corresponding rows of the CAM array in response to the corresponding enable signal.

7. The CAM device of claim 1 , wherein the pre-compare circuit comprises:

a first input to receive the first and second data population counts from a pre-compare memory;

a second input to receive the first and second key population counts from a population counter; and

a plurality of outputs coupled to corresponding rows of the CAM array.

8. The CAM device of claim 1 , wherein:

the first and second data population counts are based on bits of the associated word stored in each row of the plurality of rows of the CAM array; and

the first and second key population counts are based on bits of a masked search key.

9. A method of comparing a search key with a plurality of words stored in corresponding rows of a content addressable memory (CAM) array, the method comprising:

generating first data population count and a second data population count for the plurality of words;

generating a first key population count and a second key population count for the search key;

pre-charging match lines corresponding to rows of the CAM array when the first key population count is greater than or equal to the first data population count and the second data population count is greater than or equal to the second key population count.

10. The method of claim 9 , wherein:

the first and second data population counts are based on bits of the word stored in each row of the CAM array;and

the first and second key population counts are based on bits of a masked search key.

11. The method of claim 9 , further comprising:

de-asserting an enable signal when the second data population count is less than the second key population count or the first key population count is less than the first data population count.

12. The method of claim 9 , wherein the pre-charging the match lines comprises:

conducting a comparison sequentially to generate a first comparison result and a second comparison result;

storing the first comparison result in a memory; and

combining the first comparison result with the second comparison result to generate a corresponding enable signal, wherein the corresponding enable signal indicates that the match lines are to be pre-charged.

13. A content addressable memory (CAM) device for comparing a search key with a plurality of ternary words, comprising:

a CAM array having a plurality of rows of CAM cells, each row of the plurality of rows storing an associated word and being coupled to a corresponding match line;

a pre-compare memory that stores a first data population count and a second data population count for a corresponding word stored in the CAM array; and

a pre-compare circuit configured to compare the first data population count with a first key population count and the second data population count with a second key population count.

14. The CAM device of claim 13 , wherein the pre-compare circuit is further configured to selectively enable the match lines of corresponding rows of the CAM array to be pre-charged in response to the comparisons.

15. The CAM device of claim 14 , wherein the pre-compare circuit is further configured to assert a corresponding enable signal to allow the match lines of corresponding rows of the CAM array to be pre-charged when the first key population count is greater than or equal to the first data population count and the second data population count is greater than or equal to the second key population count.

16. The CAM device of claim 15 , wherein the pre-compare circuit is further configured to de-assert the corresponding enable signal when either:

the second data population count is less than the second key population count; or

the first key population count is less than the first data population count.

17. The CAM device of claim 15 , wherein:

the pre-compare circuit comprises a comparator configured to conduct the comparisons sequentially to generate a first comparison result and a second comparison result, wherein:

the first comparison result is stored in a memory; and

the second comparison result is combined with the first comparison result to generate the corresponding enable signal.

18. The CAM device of claim 15 , further comprising match-line control circuitry configured to pre-charge the match lines of corresponding rows of the CAM array in response to the corresponding enable signal.

19. The CAM device of claim 13 , wherein pre-compare circuit comprises:

a first input to receive the first and second data population counts from a pre-compare memory;

a second input to receive the first and second key population counts from a population counter; and

a plurality of outputs coupled to corresponding rows of the CAM array.

20. The CAM device of claim 13 , wherein:

the first and second data population counts are based on bits of the word stored in each row of the plurality of rows of the CAM array; and

the first and second key population counts are based on bits of a masked search key.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
CHANGE OF NAME Recorded Mar 30, 2015
From: NETLOGIC MICROSYSTEMS, INC.
To: NETLOGIC I LLC
Reel/Frame 035336/0336 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035291/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2013
From: ARGYRES, DIMITRI
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 031854/0583 →
Continuity (2)
Continuation 13345128 · Jan 6, 2012
Related Publication 20140218994A1 · Aug 7, 2014