IP Library › Granted Patent US 12,725,655
Granted Patent B2
US 12,725,655 · App. 18/915,268 · Granted Sep 1, 2026

Redundancy and majority voting in a key-value data storage system using content addressable memory

Inventors: Tyler L. Betz (Meridian, ID); Manik Advani (Fremont, CA); Tomoko Ogura Iwasaki (San Jose, CA); Violante Moschiano (Avezzano, IT)
Assignee: Micron Technology, Inc.
G11C15/04G11C7/1039G11C7/1048G11C7/1063G11C7/109
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 12,725,655
App. No.
18/915,268
Granted
Sep 1, 2026
Kind
B2
Abstract

A memory system includes a memory device comprising a content addressable memory (CAM) block storing a plurality of stored search keys. The memory system further includes a processing device that receives an input search key and identifies, from the plurality of stored search keys in the CAM block, multiple redundant copies of a stored search key that match the input search key. The processing device further determining whether a number of the multiple redundant copies of the stored search key that match the input search key satisfies a threshold criterion. Responsive to the number of the multiple redundant copies of the stored search key that match the input search key satisfying the threshold criterion, the processing device determines a match result for the input search key.

Claims (41)

1 . A system comprising:

a memory device comprising a content addressable memory (CAM) block storing a plurality of stored search keys; and

a processing device, operatively coupled with the memory device, to perform operations comprising:

identifying, from the plurality of stored search keys in the CAM block, multiple redundant copies of a stored search key that match an input search key;

incrementing a counter to a value based on a number of the multiple redundant copies of the stored search key that match the input search key; and

responsive to determining that the value of the counter is greater than or equal to a threshold value, determining that the input search key is found in the CAM block.

2 . The system of claim 1 , wherein the CAM block comprises an array of memory cells organized into a plurality of strings, each string storing one of the plurality of stored search keys and comprising a plurality of memory cells connected in series between a precharged match line and a page buffer, wherein each of the plurality of memory cells is connected to one of a plurality of search lines, wherein the input search key comprises a first sequence of bits, and wherein the processing device is to perform operations further comprising:

generating a search pattern based on the first sequence of bits, the search pattern comprising a first set of voltage signals representing the first sequence of bits and a second set of voltage signals representing a second sequence of bits comprising an inverse of the first sequence of bits; and

providing the search pattern as an input to the plurality of search lines of the CAM block, wherein the search pattern to cause at least one string of the plurality of strings storing the one of the plurality of stored search keys that matches the input search key to be conductive and provide a signal to the page buffer in response to the input search key matching the one of the plurality of stored search keys stored on the at least one string, the signal resulting from the precharged match line discharging, and the page buffer storing data based on the signal.

3 . The system of claim 1 , wherein the multiple redundant copies of the stored search key are stored in different sub-blocks of the CAM block, wherein the different sub-blocks are associated with a common page buffer.

4 . The system of claim 1 , wherein the multiple redundant copies of the stored search key are stored in a same sub-block of the CAM block.

5 . The system of claim 1 , wherein each of the multiple redundant copies of the stored search key has an associated respective match location in the CAM block, and wherein the processing device is to perform operations further comprising:

responsive to determining that the input search key is found in the CAM block, determining, using at least one of the associated respective match locations, a corresponding value location in a value data block; and

retrieving, from the value location in the value data block, data representing a value associated with the input search key.

6 . The system of claim 5 , wherein the memory device comprises a negative and (NAND) type flash memory device, and wherein the associated respective match locations in the CAM block comprise memory addresses of respective strings on the NAND type flash memory device.

7 . The system of claim 5 , further comprising:

a lookup table comprising a plurality of entries, wherein each entry of the plurality of entries associates the associated respective match locations from the CAM block with a value location in the value data block where data representing a value corresponding to the multiple redundant copies of the stored search key from the CAM block is stored.

8 . The system of claim 7 , wherein determining the corresponding value location in the value data block comprises identifying an entry of the plurality of entries in the lookup table corresponding to the associated respective match locations.

9 . The system of claim 1 , wherein the input search key is received from a host system, and wherein the processing device is to perform operations further comprising: providing data representing a value associated with the input search key to the host system.

10 . A method comprising:

identifying, from a plurality of stored search keys in a content addressable memory (CAM) block of a memory device, multiple redundant copies of a stored search key that match an input search key;

incrementing a counter to a value based on a number of the multiple redundant copies of the stored search key that match the input search key; and

responsive to determining that the value of the counter is greater than or equal to a threshold value, determining that the input search key is found in the CAM block.

11 . The method of claim 10 , wherein the multiple redundant copies of the stored search key are stored in different sub-blocks of the CAM block, wherein the different sub-blocks are associated with a common page buffer.

12 . The method of claim 10 , wherein the multiple redundant copies of the stored search key are stored in a same sub-block of the CAM block.

13 . The method of claim 10 , wherein each of the multiple redundant copies of the stored search key has an associated respective match location in the CAM block, the method further comprising:

responsive to determining that the input search key is found in the CAM block, determining, using at least one of the associated respective match locations, a corresponding value location in a value data block; and

retrieving, from the value location in the value data block, data representing a value associated with the input search key.

14 . The method of claim 13 , wherein the memory device comprises a negative and (NAND) type flash memory device, and wherein the associated respective match locations in the CAM block comprise memory addresses of respective strings on the NAND type flash memory device.

15 . A non-transitory machine readable storage medium storing instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

identifying, from a plurality of stored search keys in a content addressable memory (CAM) block of a memory device, multiple redundant copies of a stored search key that match an input search key;

incrementing a counter to a value based on a number of the multiple redundant copies of the stored search key that match the input search key; and

responsive to determining that the value of the counter is greater than or equal to a threshold value, determining that the input search key is found in the CAM block.

16 . The non-transitory machine readable storage medium of claim 15 , wherein the multiple redundant copies of the stored search key are stored in different sub-blocks of the CAM block, wherein the different sub-blocks are associated with a common page buffer.

17 . The non-transitory machine readable storage medium of claim 15 , wherein the multiple redundant copies of the stored search key are stored in a same sub-block of the CAM block.

18 . The non-transitory machine readable storage medium of claim 15 , wherein each of the multiple redundant copies of the stored search key has an associated respective match location in the CAM block, and wherein the instructions to cause the processing device to perform operations further comprising:

responsive to determining that the input search key is found in the CAM block, determining, using at least one of the associated respective match locations, a corresponding value location in a value data block; and

retrieving, from the value location in the value data block, data representing a value associated with the input search key.

19 . The non-transitory machine readable storage medium of claim 18 , wherein the memory device comprises a negative and (NAND) type flash memory device, and wherein the associated respective match locations in the CAM block comprise memory addresses of respective strings on the NAND type flash memory device.

20 . The non-transitory machine readable storage medium of claim 15 , wherein the input search key is received from a host system, and wherein the instructions to cause the processing device to perform operations further comprising:

providing data representing a value associated with the input search key to the host system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2024
From: BETZ, TYLER L.; ADVANI, MANIK; IWASAKI, TOMOKO OGURA; MOSCHIANO, VIOLANTE
To: MICRON TECHNOLOGY, INC.
Reel/Frame 069253/0868 →
Continuity (3)
Continuation 17729986 · Apr 26, 2022
Provisional Application 63201558 · May 4, 2021
Related Publication 20250046374A1 · Feb 6, 2025
References Cited (60)
US 6934796B1 · Pereira et al. · 2005 [cited by applicant]
US 6978343B1 · Ichiriu · 2005 [cited by applicant]
US 7017089B1 · Huse · 2006 [cited by applicant]
US 7366829B1 · Luttrell et al. · 2008 [cited by applicant]
US 7522592B2 · Kanetake et al. · 2009 [cited by applicant]
US 7848129B1 · Deshpande et al. · 2010 [cited by applicant]
US 7856528B1 · Frost et al. · 2010 [cited by applicant]
US 8402226B1 · Faibish et al. · 2013 [cited by applicant]
US 8533389B1 · Goyins et al. · 2013 [cited by applicant]
US 8634247B1 · Sprouse et al. · 2014 [cited by applicant]
US 8913412B1 · Khanna et al. · 2014 [cited by applicant]
US 9697910B1 · Huott et al. · 2017 [cited by applicant]
US 11410727B1 · Hoang et al. · 2022 [cited by applicant]
US 12001716B2 · Advani et al. · 2024 [cited by applicant]
US 12142318B2 · Betz · 2024 [cited by examiner]
US 20050027932A1 · Thayer · 2005 [cited by applicant]
US 20050060631A1 · Driediger · 2005 [cited by applicant]
US 20050204274A1 · Kamp et al. · 2005 [cited by applicant]
US 20070061693A1 · Wickeraad · 2007 [cited by applicant]
US 20090190404A1 · Roohparvar · 2009 [cited by applicant]
US 20100054012A1 · Srinivasan et al. · 2010 [cited by applicant]
US 20100250843A1 · Eilert · 2010 [cited by applicant]
US 20110307769A1 · Ramaraju et al. · 2011 [cited by applicant]
US 20130111160A1 · Benhase et al. · 2013 [cited by applicant]
US 20130198445A1 · Bando et al. · 2013 [cited by applicant]
US 20130246698A1 · Estan et al. · 2013 [cited by applicant]
US 20140133233A1 · Li et al. · 2014 [cited by applicant]
US 20140136758A1 · Sprouse et al. · 2014 [cited by applicant]
US 20140136763A1 · Li et al. · 2014 [cited by applicant]
US 20140136764A1 · Li et al. · 2014 [cited by applicant]
US 20150039823A1 · Chen · 2015 [cited by applicant]
US 20150074322A1 · Galles · 2015 [cited by applicant]
US 20160172037A1 · Lee · 2016 [cited by applicant]
US 20180188958A1 · Kim et al. · 2018 [cited by applicant]
US 20180247694A1 · Wickeraad · 2018 [cited by applicant]
US 20190286570A1 · Miura · 2019 [cited by applicant]
US 20190377495A1 · Kim et al. · 2019 [cited by applicant]
US 20200136971A1 · Cohen · 2020 [cited by applicant]
US 20200202932A1 · You · 2020 [cited by applicant]
US 20200301847A1 · Miura · 2020 [cited by applicant]
US 20200327942A1 · Akel et al. · 2020 [cited by applicant]
US 20210064468A1 · Parry et al. · 2021 [cited by applicant]
US 20220319597A1 · Moyer et al. · 2022 [cited by applicant]
US 20220359011A1 · Betz et al. · 2022 [cited by applicant]
US 20220375522A1 · Betz et al. · 2022 [cited by applicant]
US 20240062833A1 · Hung · 2024 [cited by examiner]
CN 101341547A · 2009 [cited by applicant]
CN 102197435A · 2011 [cited by applicant]
CN 102792263A · 2012 [cited by applicant]
CN 104077423A · 2014 [cited by applicant]
CN 106250351A · 2016 [cited by applicant]
CN 107423230A · 2017 [cited by applicant]
CN 111290994A · 2020 [cited by applicant]
CN 112397123A · 2021 [cited by applicant]
Office Action for Chinese Patent Application No. 202210332955.1, dated May 29, 2025, 39 Pages. [cited by applicant]
Office Action for Chinese Patent Application No. 202210332955.1, mailed Feb. 10, 2026, 5 Pages. [cited by applicant]
Office Action for Chinese Patent Application No. 202210481092.4, mailed Feb. 12, 2026, 12 Pages. [cited by applicant]
Office Action for Chinese Patent Application No. CN202210481807.6, mailed Jan. 29, 2026, 10 Pages. [cited by applicant]
Takashi M et al., “Multi-stacked G Cell/layer Pipe-shaped BICS Flash Memory,” IEEE Symposium on VLSI Circuits, 2009, pp. 22-23. [cited by applicant]
Office Action for Chinese Patent Application No. 202210481837.7, mailed Mar. 21, 2026, 9 Pages. [cited by applicant]