Key value addressed storage drive using NAND flash based content addressable memory
First Claim
Patent Images
1. An apparatus, comprising:
- a memory block comprising a plurality of bit lines and a plurality of word lines, the memory block further comprising a plurality of NAND strings, each NAND string comprising a series of non-volatile memory cells coupled to a same one of the bit lines, and a plurality of NAND pages, each NAND page comprising non-volatile memory cells of respective NAND strings coupled to a same one of the word lines of the memory block; and
control circuitry configured to;
buffer a plurality of data keys for storage within the memory block in a first orientation, the first orientation arranging the data keys for storage within respective NAND pages of the memory block, andperform a plurality of write operations to store the data keys in a second orientation different from the first orientation, the second orientation arranging the data keys for storage along respective NAND strings of the memory block,wherein each write operation comprises storing data within one of the plurality of NAND pages of the memory block, the data stored in each write operation comprising data bits of each data key, such that the data bits of each data key stored within the plurality of NAND pages are aligned along the respective NAND strings of the memory block and the series of non-volatile memory cells of each of the respective NAND strings store data bits of a selected one of the plurality of data keys and exclude data bits of data keys other than the selected data key,wherein the control circuitry is further configured to identify a NAND string storing a data key that matches a search pattern in response to a sense operation, comprising sensing the identified NAND string while the search pattern is applied to the word lines of the memory block.
2 Assignments
0 Petitions
Accused Products
Abstract
A NAND Flash based content addressable memory (CAM) is used for a key-value addressed storage drive. The device can use a standard transport protocol such as PCI-E, SAS, SATA, eMMC, SCSI, and so on. A host writes a key-value pair to the drive, where the drive writes the keys along bit lines of a CAM NAND portion of the drive and stores the value in the drive. The drive then maintains a table linking the keys to location of the value. In a read process, the host provides a key to drive, which then broadcasts down the word lines of blocks storing the keys. Based on any matching bit lines, the tables can then be used to retrieve and supply the corresponding data to the host.
-
Citations
24 Claims
-
1. An apparatus, comprising:
-
a memory block comprising a plurality of bit lines and a plurality of word lines, the memory block further comprising a plurality of NAND strings, each NAND string comprising a series of non-volatile memory cells coupled to a same one of the bit lines, and a plurality of NAND pages, each NAND page comprising non-volatile memory cells of respective NAND strings coupled to a same one of the word lines of the memory block; and control circuitry configured to; buffer a plurality of data keys for storage within the memory block in a first orientation, the first orientation arranging the data keys for storage within respective NAND pages of the memory block, and perform a plurality of write operations to store the data keys in a second orientation different from the first orientation, the second orientation arranging the data keys for storage along respective NAND strings of the memory block, wherein each write operation comprises storing data within one of the plurality of NAND pages of the memory block, the data stored in each write operation comprising data bits of each data key, such that the data bits of each data key stored within the plurality of NAND pages are aligned along the respective NAND strings of the memory block and the series of non-volatile memory cells of each of the respective NAND strings store data bits of a selected one of the plurality of data keys and exclude data bits of data keys other than the selected data key, wherein the control circuitry is further configured to identify a NAND string storing a data key that matches a search pattern in response to a sense operation, comprising sensing the identified NAND string while the search pattern is applied to the word lines of the memory block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus, comprising:
-
a controller configured to store data keys within a memory array comprising a plurality of bit lines, each bit line coupled to a series of non-volatile memory cells, each non-volatile memory cell coupled to one of a plurality of word lines, wherein storing the data keys comprises; storing the data keys in a plurality of write operations, the plurality of write operations comprising transposing the data keys from a word line orientation to a bit line orientation, the word line orientation arranging data bits of respective data keys for storage along respective word lines of the memory block, and the bit line orientation arranging the data bits of the respective data keys for storage along respective bit lines of the memory block, each write operation comprising storing a data bit of each data key along one of the plurality of word lines of the memory array such that the data bits of each data key are stored along the respective bit lines of the memory block in the plurality of write operations; wherein the controller is further configured to determine whether a data key matching a search key is stored within the memory array, the determining comprising sensing the bit lines of the memory array while the word lines of the memory array are driven in accordance with the search key. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A memory system, comprising:
-
a buffer memory; a memory array comprising a plurality of NAND chains, each of the NAND chains comprising a series of memory cells, each memory cell coupled to one of a plurality of word lines; and control circuitry configured to; accumulate data keys in the buffer memory in a first arrangement, the first arrangement configured to map bit values of respective data keys to a plurality of different NAND chains of the memory array, store the data keys within the memory array in accordance with a second arrangement, the second arrangement configured to map the bit values of each respective data key to respective NAND chains of the memory array, wherein storing the data keys comprises performing a plurality of write operations, each write operation to store a bit value of each data key along one of the plurality of word lines, the plurality of write operations configured such that the bit values of each data key are stored along the respective NAND chains, and each of the respective NAND chains stores bit values of one of the data keys and excludes bit values of others of the plurality of data keys, wherein the control circuitry is further configured to identify a NAND chain that matches a search key in response to a parallel sense operation, the parallel sense comprising sensing the respective NAND chains of the memory array while voltage potentials on the plurality of word lines are driven in accordance with the search pattern. - View Dependent Claims (19, 20, 21)
-
-
22. A system, comprising:
-
a memory comprising a plurality of NAND strings, each NAND string comprising memory cells arranged in series along a bit line, each memory cell coupled to a respective one of a plurality of word lines; a FIFO comprising a plurality of registers; a control circuit configured to; buffer a plurality of data keys within the FIFO in word line orientation corresponding to storage of bit values of respective data keys along respective word lines of the memory, transfer the plurality of data keys from the FIFO to the memory in a plurality of write operations, the write operations comprising; transposing the data keys to a bit line orientation, the bit line orientation corresponding to storage of the bit values of the respective data keys along respective bit lines of the memory, wherein each write operation comprises storing bit values of each of the respective data keys along a selected one of the word lines, wherein the plurality of write operations comprises storing the bit values of the respective data keys along the respective bit lines of the memory such that the memory cells of each NAND string of the respective NAND strings store data bits that correspond to one of the plurality of data keys and exclude data keys that correspond to others of the plurality of data keys, wherein the control circuit is further configured to identify a NAND string storing a data key that matches a search pattern in response to performing a sense operation, comprising; applying the search pattern to the plurality of word lines, and sensing the respective NAND strings storing the bit values of the respective data keys in parallel. - View Dependent Claims (23, 24)
-
Specification