MULTILEVEL CONTENT ADDRESSABLE MEMORY, MULTILEVEL CODING METHOD OF AND MULTILEVEL SEARCHING METHOD
20230075257 · 2023-03-09
Inventors
Cpc classification
G11C7/1063
PHYSICS
G11C16/0483
PHYSICS
International classification
Abstract
A multilevel content addressable memory, a multilevel coding method and a multilevel searching method are provided. The multilevel coding method includes the following steps. A highest decimal value of a multilevel-bit binary data is obtained. A length of a digital string data is set as being the highest decimal value of the multilevel-bit binary data. The multilevel-bit binary data is converted into the digital string data. If a content of the multilevel-bit binary data is an exact value, a number of an indicating bit in the digital string data is the exact value.
Claims
1. A multilevel searching method for a multilevel content addressable memory (MCAM), comprising: storing a plurality of stored words in a plurality of NAND strings; inputting an input search word to the NAND string, wherein each of the stored words and the input search word is converted from a multilevel-bit binary data into a digital string data, if a content of the multilevel-bit binary data is an exact value, a number of an indicating bit in the digital string data is the exact value; and outputting a comparison result, wherein if the digital string data of the input search word overlap the digital string data of one of the stored words, the comparison result is a match signal.
2. The multilevel searching method according to claim 1, wherein the indicating bit in the digital string data is piled up at a right side of the digital string data.
3. The multilevel searching method according to claim 1, wherein the indicating bit in the digital string data is piled up at a left side of the digital string data.
4. The multilevel searching method according to claim 1, wherein the indicating bit in the digital string data is arranged with a predefined pattern.
5. The multilevel searching method according to claim 1, wherein the indicating bit is 0 or 1.
6. The multilevel searching method according to claim 1, wherein if the content of the multilevel-bit binary data is a range from a low decimal value to a high decimal value, the number of the indicating bit in the digital string data is the low decimal value, and a sum of the number of the indicating bit and a number of a wildcard bit in the digital string data is the high decimal value.
7. The multilevel searching method according to claim 6, wherein if the content of the multilevel-bit binary data is the range, the wildcard bit is piled up after the indicating bit in the digital string data.
8. The multilevel searching method according claim 1; wherein the digital string data of one of the stored words is divided in more than one parts and stored in more than one of the NAND strings.
9. A multilevel content addressable memory (MCAM), comprising: an input encoder; configured to receive an input search word; a memory array, comprising a plurality of NAND strings, each of which is configured to store a stored word, wherein each of the stored words and the input search word is converted from a multilevel-bit binary data into a digital string data, if a content of the multilevel-bit binary data is an exact value, a number of an indicating bit in the digital string data is the exact value; and an output encoder, configured to receive a plurality of comparison results from the NAND strings.
10. The multilevel content addressable memory according to claim 9, wherein the indicating bit in the digital string data is piled up at a right side or a left side of the digital string data.
11. The multilevel content addressable memory according to claim 9, wherein the indicating bit in the digital string data is arranged with a predefined pattern.
12. The multilevel content addressable memory according to claim 9, wherein if the content of the multilevel-bit binary data is a range from a low decimal value to a high decimal value, the number of the indicating bit in the digital string data is the low decimal value, and a sum of the number of the indicating bit and a number of a wildcard bit in the digital string data is the high decimal value.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019] In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically shown in order to simplify the drawing.
DETAILED DESCRIPTION
[0020] Please refer to
[0021] Please refer to
[0022] In the present embodiment, each of the multilevel-bit binary data qj is converted into a digital string data qsj. For example, “111”, “011”, “001” and “000” are converted into “1111111”, “00001111”, “0000001” and “0000000.”
[0023] Similarly, each of the multilevel-bit binary data dij is converted into a digital string data dsij. For example, “010”, “100”, “111” and “001” are converted into “0000011”, “0001111”, “1111111” and “0000001.”
[0024] Please refer to Table I, which illustrates the digital string data qsj, dsij converted from the multilevel-bit binary data qj, dij according to one embodiment. The decimal value of the multilevel-bit binary data qj, dij is 0, 1, . . . , 6, 7. The highest decimal value of the multilevel-bit binary data qj, dij is 7. The length of the digital string data qsj, dsij is equal to or larger than the highest decimal value of the multilevel-bit binary data qj, dij. In each of the digital string data qsj, dsij, “1” is an indicating bit. In the example of the table the content of the multilevel-bit binary data qj, dij is an exact value, a number of the indicating bit (‘1’) in the digital string data qsj, dsij is the exact value. The length of the multilevel-bit binary data qsj, dsij is highest decimal value thereof (the multilevel-bit binary data qsj, dsij is three bits, the highest binary value of the multilevel-bit binary data qsj, dsij is “111” and the highest decimal value of the multilevel-bit binary data qsj, dsij is “7”).
TABLE-US-00001 TABLE I multilevel-bit digital binary data decimal string data qj, dij value qsj, dsij 000 0 0000000 001 1 0000001 010 2 0000011 011 3 0000111 100 4 0001111 101 5 0011111 110 6 0111111 111 7 1111111
[0025] Further, as shown in table I, the indicating bit (“1”) in the digital string data qsj, dsij is piled up at a right side of the digital string data qsj, dsij. In other embodiment, the indicating bit (“1”) in the digital string data qsj, dsij may be piled up at the left side of the digital string data qsj, dsij, or may be arranged with a predefined pattern.
[0026] Base on above, a multilevel coding method of the stored word WDi or the input search word WQ is provided. Please refer to
[0027] In other embodiment, the content of the multilevel-bit binary data qj, dij may be a range. Please refer to table II, which illustrates the digital string data qsj, dsij according to another embodiment. If the content of the multilevel-bit binary data qj, dij is a range, a wildcard bit (“X”) is used in the digital string data qsj, dsij. The wildcard bit (‘X’) is also called a don't care bit,
TABLE-US-00002 TABLE II digital multilevel-bit binary data decimal string data qj, dij value qsj, dsij 011 3 0000111 010, or 011 2-3 0000X11 011, or 100, or 101 3-5 00XX111 101 5 0011111 011, or 100, or 101 3-5 00XX111 011, or 100, or 101, or 110 3-6 0XXX111 100, or 101, or 110 4-6 0XX1111 100, or 101, or 110, or 111 4-7 XXX1111
[0028] As shown the 7-th row in table H, the content of the multilevel-bit binary data qj, dij is a range from 4 to 6. The high decimal value of the range is 6 and the low decimal value of the range is 4. The range window is 3. The number of the indicating bit (“1”) in the digital string data qsj, dsij is 4. The number of the wildcard bit (“X”) in the digital string data qsj, dsij is 2. The wildcard bit (“X”) is piled up after the indicating bit (′1″) in the digital string data qsj, dsij. A sum of the number of the indicating bit (“1”) and the number of the wildcard bit (“X”) in the digital string data qsj, dsij is 6.
[0029] That is, the indicating bit (“1”) and the wildcard bit (“X”) are arranged according to the following equations (1) to (3).
the number of the indicating bit=the low decimal value of the range (1)
the number of the wildcard bit=the range window−1 (2)
the number of the indicating bit+the number of the wildcard bit=the high decimal value of the range (3)
[0030] Please refer to
[0031] Please refer to
[0032] Please refer to
[0033] Please refer to
[0034] Please refer to
[0035] Please refer to
[0036] As shown in
[0037] As shown in
[0038] As shown in
[0039] As shown in
[0040] As shown in
[0041] Based on above, a multilevel searching method for the MCAM 100 is provided. Please refer to
[0042] In the embodiments described above, the indicating bit (“1”) and the wildcard bit (“X”) are used to define the content of thee digital string data qsj, dsij. In one embodiment, the indicating bit may be “0.” Please refer to Table which illustrates the digital string data qsj, dsij converted from the multilevel-bit binary data qj, dij according to one embodiment. In the example of the table content of the multilevel-bit binary data qj, dij is an exact value, a number of the indicating bit (“0”) in the digital string data qsj, dsij is the exact value.
TABLE-US-00003 TABLE III multilevel-bit digital binary data decimal string data qj, dij value qsj, dsij 000 0 1111111 001 1 1111110 010 2 1111100 011 3 1111000 100 4 1110000 101 5 1100000 110 6 1000000 111 7 0000000
[0043] In the embodiments described above, the indicating bit (“1” or “0”) in the digital string data qsj, dsij is piled up at a right side of the digital string data qsj, dsij. In other embodiment, the indicating bit (“1” or “0”) in the digital string data qsj, dsij may be piled up at the left side of the digital string data qsj, dsij, or may be arranged with a predefined pattern. Please refer to table IV, the indicating bit (“1”) in the digital string data qsj, dsij s piled up at the left side of the digital string data qsj, dsij.
TABLE-US-00004 TABLE IV multilevel-bit digital binary data decimal string data qj, dij value qsj, dsij 000 0 0000000 001 1 1000000 010 2 1100000 011 3 1110000 100 4 1111000 101 5 1111100 110 6 1111110 111 7 1111111
[0044] Please refer to table V, the indicating bit (“1”) in the digital string data qsj, dsij is arranged with a predefined pattern. For example, the indicating bit (“1”) is alternately piled up at the left side and the right side of the digital string data qsj, dsij.
TABLE-US-00005 TABLE V multilevel-bit digital binary data decimal string data qj, dij value qsj, dsij 000 0 0000000 001 1 1000000 010 2 1000001 011 3 1100001 100 4 1100011 101 5 1110011 110 6 1110111 111 7 1111111
[0045] According to the embodiment described above, the multilevel-bit binary data is converted into the digital string data, such that data in the stored word WDi and the input search word WQ can be defined with valid ranges for search/comparison. Furthermore, an ultra-high throughput can be obtained from the wide memory array 120. For example, a NAND chip has 16 KB (=128 kb) sensing parallelism, so the MCAM 100 can perform 128 k string comparison at the same time.
[0046] It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.