Content addressable memory cell, memory device and operating method thereof
By employing a combined threshold voltage design of multiple parallel flash memory cells in the CAM unit, along with search lines, matching lines, inductive amplifiers, and decoders, the problem of insufficient matching accuracy in existing CAM designs within NOR flash memory search systems is solved, achieving efficient long character search.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-15
- Publication Date
- 2026-03-27
AI Technical Summary
Existing content-addressable memory (CAM) designs suffer from insufficient matching accuracy and are unsuitable for long character searches when implementing search systems within NOR flash memory. In particular, the low on/off ratio of non-volatile memory affects search accuracy.
A combined threshold voltage design using multiple parallel flash memory cells is employed. Multiple search lines and matching lines connect the inductive amplifier and decoder to achieve matching judgment of stored data. The inductive amplifier senses the matching voltage to generate the search result, and the decoder indicates the matching address.
It improves the matching accuracy of CAM cells in NOR flash memory search systems, is suitable for long character search designs, and enhances the accuracy and efficiency of data search.
Smart Images

Figure CN115798546B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a Content Addressable Memory (CAM) cell, a memory device and a method of operating thereof, and particularly to a Content Addressable Memory (CAM) cell, a memory device and a method of operating thereof that can be used to implement an In-memory searching (IMS) system in NOR flash memory. Background Technology
[0002] With the rise of big data and artificial intelligence (AI) hardware accelerators, data search and data comparison are crucial functions. Existing ternary content addressable memory (TCAM) can be used to achieve highly parallel searching.
[0003] Traditionally, TCAM cells can be implemented using static random-access memory (SRAM) cells. However, SRAM cells contain 16 transistors, resulting in significant leakage current. Non-volatile memories (NVMs), such as spin-transfer torque magnetoresistive random access memory (MRAM), phase-change memory (PCM), resistive RAM (ReRAM), and ferroelectric field-effect transistors (FeFETs), have been used to implement compact CAMs due to their non-volatility and high memory density. However, these existing CAM designs typically utilize only single-level cell (SLC) NVMs. Furthermore, the on / off ratio of these NVMs is too small, which affects matching accuracy and makes them unsuitable for long character search designs.
[0004] Therefore, there is a need for a Content Addressable Memory (CAM) unit, a memory device and its operation method that can provide high matching accuracy and be suitable for long character search designs when used to implement an in-memory searching (IMS) system in NOR flash memory.
[0005] Public content
[0006] According to one example of this disclosure, a content-addressable memory cell is proposed, comprising: a plurality of parallel flash memory cells, wherein a stored data in the content-addressable memory cell is determined by a combination of a plurality of threshold voltages of the parallel flash memory cells.
[0007] According to another embodiment of this disclosure, a content-addressable memory (CNTM) device is proposed, comprising: a plurality of CNTM cells, each CNTM cell including a plurality of parallel flash memory cells, wherein stored data in each CNTM cell is determined by a combination of a plurality of threshold voltages of the parallel flash memory cells of each CNTM cell; a plurality of search lines coupled to the CNTM cells; a plurality of match lines coupled to the CNTM cells; a plurality of sense amplifiers coupled to the match lines; and a decoder coupled to the sense amplifiers, wherein when a plurality of search voltages are applied to the CNTM cells through the search lines, the sense amplifiers sense a plurality of match voltages on the match lines to generate a plurality of sense results; and based on the sense results, the decoder generates a match address indicating an individual address of the CNTM cells for which a search result is a match.
[0008] According to yet another example of this disclosure, a method of operating a content-addressable memory device is proposed, comprising: programming a plurality of content-addressable memory cells, each of the content-addressable memory cells including a plurality of parallel flash memory cells, a stored data of each of the content-addressable memory cells being determined by a combination of a plurality of threshold voltages of the parallel flash memory cells of each of the content-addressable memory cells, the content-addressable memory cells being further coupled to a plurality of matching lines; applying a plurality of search voltages to the content-addressable memory cells; sensing a plurality of matching voltages on the plurality of matching lines to generate a plurality of sensing results; and generating a matching address based on the sensing results, the matching address indicating an individual address of the content-addressable memory cells for which a search result is a match.
[0009] To provide a better understanding of the above and other aspects of the present invention, specific embodiments are described below in conjunction with the accompanying drawings: Attached Figure Description
[0010] Figure 1 This is a schematic diagram of a Content Addressable Memory (CAM) unit and its operation according to a first embodiment of the present disclosure.
[0011] Figure 2 This is a schematic diagram of a content-addressable memory cell and its operation according to a second embodiment of the present disclosure.
[0012] Figure 3 This is a schematic diagram of a content-addressable memory cell and its operation according to a third embodiment of the present disclosure.
[0013] Figure 4A Figure 4B is a circuit diagram of a CAM memory device according to a fourth embodiment, and is an operation diagram of a CAM memory device according to a fourth embodiment.
[0014] Figure 5A Figure 5B is a circuit diagram of a CAM memory device according to a fifth embodiment, and is an operation diagram of a CAM memory device according to a fifth embodiment.
[0015] Figure 6 This is a schematic diagram of a content-addressable memory cell and its operation according to the sixth embodiment of this disclosure.
[0016] Figure 7 This is a schematic diagram of a content-addressable memory cell and its operation according to the seventh embodiment of this disclosure.
[0017] Figure 8 This is a schematic diagram of an addressable memory cell and its operation according to the eighth embodiment of this disclosure.
[0018] Figure 9 This is a method for operating a content-addressable memory device according to the ninth embodiment of this disclosure.
[0019] Explanation of reference numerals in the attached figures
[0020] 100, 600: Content-Addressable Memory Units
[0021] T1-T3: Transistors
[0022] TS1-TS3: Start-up transistors
[0023] SA: Induction Amplifier
[0024] 400, 500: CAM memory devices
[0025] ML1_1-MLm_2: Matching lines
[0026] SL1_1-SLn_2, SL1-SLn: Search lines
[0027] 410: Decoder
[0028] C1_1-C3_4, D1_1-D2_4: Content-Addressable Memory Units
[0029] 910-940: Steps Detailed Implementation
[0030] The technical terms used in this specification refer to those commonly used in the field. Where this specification provides explanations or definitions for certain terms, the interpretation of those terms shall be based on the explanations or definitions provided in this specification. Each embodiment of this disclosure has one or more technical features. Where feasible, those skilled in the art may selectively implement some or all of the technical features in any embodiment, or selectively combine some or all of the technical features in these embodiments.
[0031] First Embodiment
[0032] Please refer to Figure 1 , Figure 1 This is a schematic diagram of a Content Addressable Memory (CAM) unit and its operation according to a first embodiment of this disclosure. Figure 1 As shown, the content-addressable memory unit 100 of the first embodiment of this disclosure, for example but not limited to, can store two-bit multi-level CAMs.
[0033] Content-addressable memory cell 100 includes multiple flash memory cells connected in parallel (e.g., transistors T1 and T2), wherein these flash memory cells are, for example but not limited to, floating gate memory cells, silicon-oxide-nitride-oxide-silicon (SONOS) memory cells, floating dot memory cells, spin-transfer torque magneto-resistive random access memory (MRAM) cells, phase change memory (PCM) cells, resistive RAM cells (ReRAM) cells, ferroelectric FET (FeFET) memory cells, conductive-bridging RAM (CBRAM) cells, etc.
[0034] The three terminals of transistor T1 are coupled to the first search line SL1_1, the first matching line ML1_1, and the ground terminal, respectively. Similarly, the three terminals of transistor T2 are coupled to the second search line SL1_2, the second matching line ML1_2, and the ground terminal, respectively.
[0035] Furthermore, transistors T1 and T2 are also coupled to startup transistors TS1 and TS2, respectively. The three terminals of startup transistor TS1 are coupled to the first matching line ML1_1, the startup voltage Vstart, and the charging voltage VM, respectively. Similarly, the three terminals of startup transistor TS2 are coupled to the second matching line ML1_2, the startup voltage Vstart, and the charging voltage VM, respectively. The charging voltage VM is, for example, but not limited to, 0.6V-0.8V.
[0036] exist Figure 1 In this configuration, multiple inductive amplifiers (SAs) are also coupled to the first matching line ML1_1 and the second matching line ML1_2, respectively, to sense the voltages of the first matching line ML1_1 and the second matching line ML1_2. The multiple sensing results of these inductive amplifiers (SAs) can indicate whether the voltages of the first matching line ML1_1 and the second matching line ML1_2 are maintained or discharged. By decoding these sensing results of the inductive amplifiers (SAs), it can be determined whether the search result is a match or a mismatch.
[0037] Before the content-addressable memory cell 100 begins a search operation, the startup voltage Vstart turns on startup transistors TS1 and TS2 to charge the first matching line ML1_1 and the second matching line ML1_2 to the charging voltage VM. After the first matching line ML1_1 and the second matching line ML1_2 are charged to the charging voltage VM, the startup voltage Vstart turns off startup transistors TS1 and TS2.
[0038] The table below shows the search voltage, threshold voltage, and search results according to the first embodiment of this disclosure.
[0039] Search data 00 01 10 11 WC SL1_1 VS1 VS2 VS3 VS4 VS1 SL1_2 VS2 VS3 VS4 VS5 VS5
[0040] Store data 00 01 10 11 YY VT_T1 VT1 VT2 VT3 VT4 VT4 VT_T2 VT1 VT2 VT3 VT4 VT1
[0041] Search data 00 01 10 11 ML1_1 X X O O ML1_2 X O O O
[0042] (Stored data: 01) (X: Holding voltage; O: Discharging)
[0043] When the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT1 and VT1 respectively, the stored data in the content-addressable memory cell 100 is 00; when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT2 and VT2 respectively, the stored data in the content-addressable memory cell 100 is 01; when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT3 and VT3 respectively, the stored data in the content-addressable memory cell 100 is 10; and when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT4 and VT4 respectively, the stored data in the content-addressable memory cell 100 is 11. Furthermore, when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT4 and VT1 respectively, the stored data in the content-addressable memory cell 100 is YY (not important, irrelevant).
[0044] During the search, when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 and VS2, the search data is 00, where the search data represents the data to be searched; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS2 and VS3, the search data is 01; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS3 and VS4, the search data is 10; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 and VS5, the search data is 11; and when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 and VS5, the search data is a wildcard (WC).
[0045] Figure 1 A VI plot of a first embodiment of this disclosure is also shown, where the horizontal axis is the gate voltage VG and the vertical axis is the cell current ID. In the first embodiment of this disclosure, the values of threshold voltages VT1, VT2, VT3, and VT4 are, for example but not limited to, 1V, 2V, 3V, and 4V. In an embodiment of this disclosure, the values of search voltages VS1, VS2, VS3, VS4, and VS5 are, for example but not limited to, 0.5V, 1.5V, 2.5V, 3.5V, and 4.5V.
[0046] The following describes the search operation of the first embodiment of this disclosure with the stored data in the content-addressable memory cell 100 being 01 (the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT2 and VT2 respectively (2V in the above example)). When the search data is 00 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 (0.5V) and VS2 (1.5V)), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS1 (0.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained; and the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS2 (1.5V). Transistor T2 is off, so the voltage of the second matching line ML1_2 is maintained. Similarly, when the search data is 01 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS2 (1.5V) and VS3 (2.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS2 (1.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained. Also, the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS3 (2.5V). Transistor T2 is on, so the voltage of the second matching line ML1_2 is discharged. Similarly, when the search data is 10 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS3 (2.5V) and VS4 (3.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS3 (2.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged; and the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS4 (3.5V). Transistor T2 is turned on, so the voltage of the second matching line ML1_2 is discharged.Similarly, when the search data is 11 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 (3.5V) and VS5 (4.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS4 (3.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged; and the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS5 (4.5V). Transistor T2 is turned on, so the voltage of the second matching line ML1_2 is discharged.
[0047] As can be seen from the above description, in the first embodiment of this disclosure, when the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, the stored data matches the search data; when the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is maintained, the stored data does not match the search data; and when the voltage of the first matching line ML1_1 is discharged and the voltage of the second matching line ML1_2 is discharged, the stored data does not match the search data.
[0048] The following table is a search table according to a first embodiment of this disclosure.
[0049] Stored data 00 Stored data 01 Stored data 10 Storing data 11 YY Stored Data Search data 00 Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search Data 01 Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search data 10 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search data 11 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Search data WC Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O
[0050] As shown in the table above, when both the stored data and the search data are 00, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result. Conversely, when both the stored data and the search data are 00 and 01, the voltage of both the first matching line ML1_1 and the second matching line ML1_2 is discharged, indicating a non-match in the search result. The rest can be deduced similarly. When the stored data is YY, regardless of whether the search data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result. When the search data is an external wildcard (WC), regardless of whether the stored data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result.
[0051] In the first embodiment of this disclosure, the threshold voltage (also referred to as the first threshold voltage) of the first transistor T1 is the same as the threshold voltage (also referred to as the second threshold voltage) of the second transistor T2. The first search voltage (the search voltage applied to the first search line SL1_1) is lower than the second search voltage (the search voltage applied to the second search line SL1_2). When the stored data is the first preset stored data (00), the first threshold voltage and the second threshold voltage are a minimum threshold voltage value. When the stored data is the second preset stored data (11), the first threshold voltage and the second threshold voltage are a maximum threshold voltage value. When the stored data is the third preset stored data (YY (not concerned)), one of the first threshold voltage and the second threshold voltage is a minimum threshold voltage value, and the other of the first threshold voltage and the second threshold voltage is a maximum threshold voltage value.
[0052] That is, in the first embodiment of this disclosure, the stored data of the content addressable memory cell is determined by the combination of the first threshold voltage and the second threshold voltage.
[0053] Second Embodiment
[0054] Please refer to Figure 2 , Figure 2 This is a schematic diagram of a content-addressable memory cell and its operation according to a second embodiment of the present disclosure. The differences between the second embodiment and the first embodiment will be described below.
[0055] In a second embodiment of this disclosure, the values of the threshold voltages VT0, VT1, VT2, VT3, and VT4 are, for example but not limited to, 0V, 1V, 2V, 3V, and 4V. In one embodiment of this disclosure, the values of the search voltages VS1, VS2, VS3, and VS4 are, for example but not limited to, 0.5V, 1.5V, 2.5V, and 3.5V.
[0056] The table below shows the search voltage, threshold voltage, and search results according to the second embodiment of this disclosure.
[0057] Search data 00 01 10 11 WC SL1_1 VS1 VS2 VS3 VS4 VS1 SL1_2 VS1 VS2 VS3 VS4 VS4
[0058] Store data 00 01 10 11 YY VT_T1 VT1 VT2 VT3 VT4 VT4 VT_T2 VT0 VT1 VT2 VT3 VT0
[0059] Search data 00 01 10 11 ML1_1 X X O O ML1_2 X O O O
[0060] (Stored data: 01) (X: Holding voltage; O: Discharging)
[0061] The following describes the search operation of the second embodiment of this disclosure when the stored data in the content-addressable memory cell 100 is 01 (the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT2 and VT1, respectively). When the search data is 00 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 (0.5V) and VS1 (0.5V)), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS1 (0.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained; and the threshold voltage VT_T2 of transistor T2 is VT1 (1V), and the search voltage applied to the second search line SL1_2 is VS1 (0.5V). Transistor T2 is off, so the voltage of the second matching line ML1_2 is maintained. When the search data is 01 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS2 (1.5V) and VS2 (1.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS2 (1.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained. Also, the threshold voltage VT_T2 of transistor T2 is VT1 (1V), and the search voltage applied to the second search line SL1_2 is VS2 (1.5V). Transistor T2 is on, so the voltage of the second matching line ML1_2 is discharged. When the search data is 10 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS3 (2.5V) and VS3 (2.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS3 (2.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged; and the threshold voltage VT_T2 of transistor T2 is VT1 (1V), and the search voltage applied to the second search line SL1_2 is VS3 (2.5V). Transistor T2 is turned on, so the voltage of the second matching line ML1_2 is discharged.Similarly, when the search data is 11 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 (3.5V) and VS4 (3.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT2 (2V), and the search voltage applied to the first search line SL1_1 is VS4 (3.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged; and the threshold voltage VT_T2 of transistor T2 is VT1 (1V), and the search voltage applied to the second search line SL1_2 is VS4 (3.5V). Transistor T2 is turned on, so the voltage of the second matching line ML1_2 is discharged.
[0062] As can be seen from the above description, in the second embodiment of this disclosure, when the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, the stored data matches the search data; when the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is maintained, the stored data does not match the search data; and when the voltage of the first matching line ML1_1 is discharged and the voltage of the second matching line ML1_2 is discharged, the stored data does not match the search data.
[0063] The following table is a search table according to a second embodiment of this disclosure.
[0064] Stored data 00 Stored data 01 Stored data 10 Storing data 11 YY Stored Data Search data 00 Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search Data 01 Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search data 10 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Mismatch ML1_1:XML1_2:X Matching ML1_1:XML1_2:O Search data 11 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Search data WC Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O Matching ML1_1:XML1_2:O
[0065] As shown in the table above, when both the stored data and the search data are 00, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result. Conversely, when both the stored data and the search data are 00 and 01, the voltage of both the first matching line ML1_1 and the second matching line ML1_2 is discharged, indicating a non-match in the search result. The rest can be deduced similarly. When the stored data is YY, regardless of whether the search data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result. When the search data is a wildcard (WC), regardless of whether the stored data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is discharged, indicating a match in the search result.
[0066] Furthermore, in the second embodiment of this disclosure, the settings of the first threshold voltage, the second threshold voltage, the first search voltage, and the second search voltage can be different. For example, but not limited to, in a variation of the second embodiment of this disclosure, the settings of the first threshold voltage, the second threshold voltage, the first search voltage, and the second search voltage can be as shown in the table below, the details of which are omitted here:
[0067] Store data 00 01 10 11 YY VT_T1 VT4 VT3 VT2 VT1 VT4 VT_T2 VT3 VT2 VT1 VT0 VT0
[0068] Search data 00 01 10 11 WC SL1_1 VS4 VS3 VS2 VS1 VS1 SL1_2 VS4 VS3 VS2 VS1 VS4
[0069] In the second embodiment of this disclosure, the threshold voltage (also referred to as the first threshold voltage) of the first transistor T1 is higher than the threshold voltage (also referred to as the second threshold voltage) of the second transistor T2. The first search voltage (the search voltage applied to the first search line SL1_1) is the same as the second search voltage (the search voltage applied to the second search line SL1_2). When the search data is the first preset search data (00 or 11), the first search voltage and the second search voltage are a minimum search voltage value; when the search data is the second preset search data (11 or 00), the first search voltage and the second search voltage are a maximum search voltage value. Furthermore, when the search data is the third preset search data (WC), one of the first search voltage and the second search voltage is a minimum search voltage value, and the other of the first search voltage and the second search voltage is a maximum search voltage value.
[0070] That is, in the second embodiment of this disclosure, when the stored data is a first preset stored data, the second threshold voltage is a minimum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; and when the stored data is a second preset stored data, the first threshold voltage is a maximum threshold voltage value and the first threshold voltage is higher than the second threshold voltage.
[0071] Third Embodiment
[0072] Please refer to Figure 3 , Figure 3 This is a schematic diagram of a content-addressable memory cell and its operation according to a third embodiment of this disclosure. The differences between the third embodiment and the first embodiment will be described below.
[0073] The table below shows the search voltage, threshold voltage, and search results according to the third embodiment of this disclosure.
[0074] Search data 00 01 10 11 WC SL1_1 VS1 VS2 VS3 VS4 VS4 SL1_2 VS1 VS2 VS3 VS4 VS1
[0075] Store data 00 01 10 11 YY VT_T1 VT0 VT1 VT2 VT3 VT0 VT_T2 VT1 VT2 VT3 VT4 VT4
[0076] Search data 00 01 10 11 ML1_1 O O X X ML1_2 O X X X
[0077] (Stored data: 01) (X: Hold voltage; O: Discharge)
[0078] In the third embodiment of this disclosure, when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT0 and VT1 respectively, the stored data of the content-addressable memory cell 100 is 00; when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT1 and VT2 respectively, the stored data of the content-addressable memory cell 100 is 01; when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT2 and VT3 respectively, the stored data of the content-addressable memory cell 100 is 10; and when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT3 and VT4 respectively, the stored data of the content-addressable memory cell 100 is 11. Furthermore, when the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT0 and VT4 respectively, the stored data of the content-addressable memory cell 100 is YY (not important, irrelevant).
[0079] In the third embodiment of this disclosure, during the search, when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 and VS1, the search data is 00; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS2 and VS2, the search data is 01; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS3 and VS3, the search data is 10; when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 and VS4, the search data is 11; and when the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 and VS1, the search data is a wildcard (WC).
[0080] In the third embodiment of this disclosure, the values of threshold voltages VT0, VT1, VT2, VT3 and VT4 are, for example but not limited to, 0V, 1V, 2V, 3V and 4V; the values of search voltages VS1, VS2, VS3 and VS4 are, for example but not limited to, 0.5V, 1.5V, 2.5V and 3.5V.
[0081] The following describes the search operation of the third embodiment of this disclosure when the stored data in the content-addressable memory cell 100 is 01 (the threshold voltages VT_T1 and VT_T2 of transistors T1 and T2 are VT1 and VT2, respectively). When the search data is 00 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS1 (0.5V) and VS1 (0.5V)), the threshold voltage VT_T1 of transistor T1 is VT1 (1V), and the search voltage applied to the first search line SL1_1 is VS1 (0.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged; and the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS1 (0.5V). Transistor T2 is turned on, so the voltage of the second matching line ML1_2 is discharged. When the search data is 01 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS2 (1.5V) and VS2 (1.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT1 (1V), and the search voltage applied to the first search line SL1_1 is VS2 (1.5V). Transistor T1 is turned on, so the voltage of the first matching line ML1_1 is discharged. Also, the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS2 (1.5V). Transistor T2 is turned off, so the voltage of the second matching line ML1_2 is maintained. When the search data is 10 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS3 (2.5V) and VS3 (2.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT1 (1V), and the search voltage applied to the first search line SL1_1 is VS3 (2.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained. Also, the threshold voltage VT_T2 of transistor T2 is VT2 (2V), and the search voltage applied to the second search line SL1_2 is VS3 (2.5V). Transistor T2 is off, so the voltage of the second matching line ML1_2 is maintained.Similarly, when the search data is 11 (the search voltages applied to the first search line SL1_1 and the second search line SL1_2 are VS4 (3.5V) and VS4 (3.5V) respectively), the threshold voltage VT_T1 of transistor T1 is VT1 (1V), while the search voltage applied to the first search line SL1_1 is VS4 (3.5V). Transistor T1 is off, so the voltage of the first matching line ML1_1 is maintained; and the threshold voltage VT_T2 of transistor T2 is VT2 (2V), while the search voltage applied to the second search line SL1_2 is VS4 (3.5V). Transistor T2 is off, so the voltage of the second matching line ML1_2 is maintained.
[0082] As can be seen from the above description, in the third embodiment of this disclosure, when the voltage of the first matching line ML1_1 is discharged and the voltage of the second matching line ML1_2 is maintained, the stored data matches the search data; when the voltage of the first matching line ML1_1 is maintained and the voltage of the second matching line ML1_2 is maintained, the stored data does not match the search data; and when the voltage of the first matching line ML1_1 is discharged and the voltage of the second matching line ML1_2 is discharged, the stored data does not match the search data.
[0083] The following table is a search table according to a third embodiment of this disclosure.
[0084] Stored data 00 Stored data 01 Stored data 10 Storing data 11 YY Stored Data Search data 00 Match ML1_1:OML1_2:X Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Match ML1_1:OML1_2:X Search Data 01 Mismatch ML1_1:OML1_2:O Match ML1_1:OML1_2:X Mismatch ML1_1:XML1_2:X Mismatch ML1_1:XML1_2:X Match ML1_1:OML1_2:X Search data 10 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Match ML1_1:OML1_2:X Mismatch ML1_1:XML1_2:X Match ML1_1:OML1_2:X Search data 11 Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Mismatch ML1_1:OML1_2:O Match ML1_1:OML1_2:X Match ML1_1:OML1_2:X Search data WC Match ML1_1:OML1_2:X Match ML1_1:OML1_2:X Match ML1_1:OML1_2:X Match ML1_1:OML1_2:X Match ML1_1:OML1_2:X
[0085] As shown in the table above, when both the stored data and the search data are 00, the voltage of the first matching line ML1_1 is discharged while the voltage of the second matching line ML1_2 is maintained, indicating a match. Conversely, when both the stored data and the search data are 00 and 01, the voltage of both the first matching line ML1_1 and the second matching line ML1_2 is discharged, indicating a non-match. The rest can be deduced similarly. When the stored data is YY, regardless of whether the search data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is discharged while the voltage of the second matching line ML1_2 is maintained, indicating a match. When the search data is a wildcard (WC), regardless of whether the stored data is 00, 01, 10, or 11, the voltage of the first matching line ML1_1 is discharged while the voltage of the second matching line ML1_2 is maintained, indicating a match.
[0086] In the third embodiment of this disclosure, the threshold voltage of the first transistor T1 (also referred to as the first threshold voltage) is lower than the threshold voltage of the second transistor T2 (also referred to as the second threshold voltage), the first search voltage (the search voltage applied to the first search line SL1_1) is the same as the second search voltage (the search voltage applied to the second search line SL1_2), and when the search data is the first preset search data (00), the first search voltage and the second search voltage are a minimum search voltage value; when the search data is the second preset search data (11), the first search voltage and the second search voltage are a maximum search voltage value.
[0087] That is, in the third embodiment of this disclosure, when the stored data is a first preset stored data, the first threshold voltage is a minimum threshold voltage value and the second threshold voltage is higher than the first threshold voltage; and when the stored data is a second preset stored data, the second threshold voltage is a maximum threshold voltage value and the second threshold voltage is higher than the first threshold voltage.
[0088] As can be seen from the first to third embodiments described above, the threshold voltages of these parallel flash memory cells are the same; or one threshold voltage of these parallel flash memory cells is higher than another threshold voltage of these parallel flash memory cells.
[0089] Fourth embodiment
[0090] Figure 4A This is a circuit diagram of a CAM memory device according to the fourth embodiment. Figure 4B This is a schematic diagram of the operation of a CAM memory device according to the fourth embodiment.
[0091] like Figure 4A As shown, the CAM memory device 400 according to the fourth embodiment includes a plurality of content-addressable memory cells 100, a plurality of matching lines ML1_1-MLm_2 (m is a positive integer), a plurality of search lines SL1_1-SLn_2 (n is a positive integer), a plurality of inductive amplifiers SA, a plurality of start-up transistors TS1, TS2, and a decoder 410. These content-addressable memory cells 100 may be the same as or similar to those in the first, second, and third embodiments. In the fourth embodiment of this disclosure, the threshold voltage settings of the content-addressable memory cells 100 may be the same as or similar to those in the first, second, and third embodiments; and the search voltage settings for these search lines may be the same as or similar to those in the first, second, and third embodiments. Therefore, details are omitted here.
[0092] These content-addressable memory cells 100 are arranged in an array. The stored data of these 2n content-addressable memory cells 100 coupled to matching lines ML1_1 and ML1_2 forms a data word (Data word_1), and so on. When any transistor coupled to the matching line is turned on, the voltage of the matching line is discharged; and when all transistors coupled to the matching line are turned off, the voltage of the matching line is maintained.
[0093] The search word can be used to search and compare these content-addressable memory units 100 via search lines SL1_1-SLn_2. Taking Figure 4A as an example, a search word consists of 2n bits, and each bit is searched and compared with one of these content-addressable memory units 100 via a search line.
[0094] Decoder 410 is coupled to these inductive amplifiers SA. Based on the sensing results of these inductive amplifiers SA, decoder 410 generates a matching address MA, which indicates the individual address of the content-addressable memory cell 100 for which the search result is a match.
[0095] exist Figure 4A In the search character, multiple search data are included; and the data character includes multiple stored data stored in multiple content-addressable memory units 100.
[0096] To understand the operation of the fourth embodiment, please refer to Figure 4B The threshold voltage setting and search voltage setting are as described in the first embodiment, with the search character being [01001110], the first data character (Data word 1) being [00010111], the second data character (Data word 2) being [01001110], and the third data character (Data word 3) being [11011101] as an example for illustration. It should be understood that this disclosure is not limited thereto.
[0097] When the first data character [00010111] is searched using the search character [01001110], both transistors of content-addressable memory cell C1_1 are turned on; both transistors of content-addressable memory cell C1_2 are turned off; both transistors of content-addressable memory cell C1_3 are turned on; and both transistors of content-addressable memory cell C1_4 are turned off. Therefore, the voltage of matching line ML1_1 is discharged, and the voltage of matching line ML1_2 is also discharged. Consequently, when the first data character [00010111] is searched using the search character [01001110], the search result is a mismatch.
[0098] Similarly, when searching for the second data character [01001110] with the search character [01001110], transistor T1 of content-addressable memory cell C2_1 is off and transistor T2 is on; transistor T1 of content-addressable memory cell C2_2 is off and transistor T2 is on; transistor T1 of content-addressable memory cell C2_3 is off and transistor T2 is on; and transistor T1 of content-addressable memory cell C2_4 is off and transistor T2 is on. Therefore, the voltage of matching line ML2_1 is maintained, and the voltage of matching line ML2_2 is discharged. Thus, when searching for the second data character [01001110] with the search character [01001110], the search result is a match.
[0099] Similarly, when searching for the third data character [11011101] with the search character [01001110], the search result is a mismatch.
[0100] Fifth embodiment
[0101] Figure 5A This is a circuit diagram of a CAM memory device according to the fifth embodiment. Figure 5B This is a schematic diagram of the operation of a CAM memory device according to the fifth embodiment.
[0102] like Figure 5A As shown, the CAM memory device 500 according to the fifth embodiment includes a plurality of content-addressable memory cells 100, a plurality of matching lines ML1_1-MLm_2, a plurality of search lines SL1-SLn (n is a positive integer), a plurality of inductive amplifiers SA, a plurality of start-up transistors TS1, TS2, and a decoder 410. These content-addressable memory cells 100 may be the same as or similar to those in the first, second, and third embodiments. In the fifth embodiment of this disclosure, the threshold voltage settings of the content-addressable memory cells 100 may be the same as or similar to those in the second and third embodiments; and the search voltage settings for these search lines may be the same as or similar to those in the second and third embodiments. Therefore, details are omitted here. Thus, in the fifth embodiment, the two flash memory cells of each addressable memory cell 100 share the same search line. In contrast, in the first to fourth embodiments, the two flash memories of each of these content-addressable memory cells 100 are coupled to two search lines. Therefore, compared to the fourth embodiment, the CAM memory device 500 of the fifth embodiment has a higher memory density.
[0103] To understand the operation of the fifth embodiment, please refer to Figure 5BThe following example illustrates the threshold voltage setting and search voltage setting as described in the second embodiment, with the search character being [01001110], the first data character (data word 1) being [01001110], and the second data character (data word 2) being [01111101]. However, this disclosure is not limited thereto.
[0104] When the first data character [01001110] is searched using the search character [01001110], transistor T1 of content-addressable memory cell D1_1 is off and transistor T2 is on; transistor T1 of content-addressable memory cell D1_2 is off and transistor T2 is on; transistor T1 of content-addressable memory cell D1_3 is off and transistor T2 is on; and transistor T1 of content-addressable memory cell D1_4 is off and transistor T2 is on. Therefore, the voltage of matching line ML1_1 is maintained, and the voltage of matching line ML1_2 is discharged. Thus, when the first data character [01001110] is searched using the search character [01001110], the search result is a match.
[0105] Similarly, when searching for the second data character [01111101] with the search character [01001110], the voltage of the matching line ML2_1 will be discharged, and the voltage of the matching line ML2_2 will also be discharged. The search result is a mismatch.
[0106] Sixth Embodiment
[0107] Please refer to Figure 6 , Figure 6 This is a schematic diagram illustrating a content-addressable memory cell and its operation according to the sixth embodiment of this disclosure. Figure 6 As shown, the content-addressable memory unit 600 of the sixth embodiment of this disclosure, for example but not limited to, can store a three-bit triple-level CAM.
[0108] Content-addressable memory cell 600 includes: a plurality of flash memory cells (e.g., transistors T1, T2 and T3) connected in parallel.
[0109] Transistor T1 has its three terminals coupled to the first search line SL1_1, the first matching line ML1_1, and ground, respectively. Transistor T2 has its three terminals coupled to the second search line SL1_2, the second matching line ML1_2, and ground, respectively. Transistor T3 has its three terminals coupled to the third search line SL1_3, the third matching line ML1_3, and ground, respectively.
[0110] In addition, transistors T1-T3 are also coupled to startup transistors TS1-TS3, respectively. The three terminals of startup transistor TS1 are coupled to the first matching line ML1_1, the startup voltage Vstart, and the charging voltage VM, respectively. Similarly, the three terminals of startup transistor TS2 are coupled to the second matching line ML1_2, the startup voltage Vstart, and the charging voltage VM, respectively. The three terminals of startup transistor TS3 are coupled to the third matching line ML1_3, the startup voltage Vstart, and the charging voltage VM, respectively.
[0111] The table below shows the search voltage, threshold voltage, and search results according to the sixth embodiment of this disclosure.
[0112] Search data 000 001 010 011 100 101 110 111 WC SL1_1 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS1 SL1_2 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS9 VS9 SL1_3 VS3 VS4 VS5 VS6 VS7 VS8 VS9 VS9 VS9
[0113] Store data 000 001 010 011 100 101 110 111 WC VT_T1 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT8 VT8 VT_T2 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT8 VT1 VT_T3 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT8 VT1
[0114] Search data 000 001 010 011 100 101 110 111 ML1_1 X X X O O O O O ML1_2 X X O O O O O O ML1_3 X O O O O O O O
[0115] (Stored data: 010) (X: Hold voltage; O: Discharge)
[0116] In the sixth embodiment, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT1, VT1, and VT1 respectively, the stored data of the content-addressable memory cell 600 is 000; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT2, VT2, and VT2 respectively, the stored data of the content-addressable memory cell 600 is 001; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT3, VT3, and VT3 respectively, the stored data of the content-addressable memory cell 600 is 010; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT4, VT4, and VT4 respectively, the stored data of the content-addressable memory cell 600 is... 011; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT5, VT5, and VT5 respectively, the stored data of the content-addressable memory cell 600 is 100; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT6, VT6, and VT6 respectively, the stored data of the content-addressable memory cell 600 is 101; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT7, VT7, and VT7 respectively, the stored data of the content-addressable memory cell 600 is 110; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT8, VT8, and VT8 respectively, the stored data of the content-addressable memory cell 600 is 111. Furthermore, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT8, VT1, and VT1 respectively, the stored data of the content-addressable memory cell 600 is YYY (not important, irrelevant).
[0117] During the search, when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS1, VS2, and VS3 respectively, the search data is 000; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS2, VS3, and VS4 respectively, the search data is 001; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS3, VS4, and VS5 respectively, the search data is 010; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS4, VS5, and VS6 respectively, the search data is 01 ... When the search voltages are VS5, VS6, and VS7, the search data is 100; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS6, VS7, and VS8, respectively, the search data is 101; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS7, VS8, and VS9, respectively, the search data is 110; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS8, VS9, and VS9, respectively, the search data is 111; and when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS1, VS9, and VS9, respectively, the search data is a wildcard (WC).
[0118] In the sixth embodiment of this disclosure, the values of threshold voltages VT1, VT2, VT3, VT4, VT5, VT6, VT7, and VT8 are, for example but not limited to, 1V, 2V, 3V, 4V, 5V, 6V, 7V, and 8V; and the values of search voltages VS1, VS2, VS3, VS4, VS5, VS6, VS7, VS8, and VS9 are, for example but not limited to, 0.5V, 1.5V, 2.5V, 3.5V, 4.5V, 5.5V, 6.5V, 7.5V, and 8.5V.
[0119] When the stored data in the content-addressable memory unit 600 is 010 and the search data is 010, the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is discharged, and the voltage of the third matching line ML1_3 is discharged. Therefore, this indicates that the search result is a match. Other cases can be deduced similarly.
[0120] As can be seen from the above description, in the sixth embodiment of this disclosure, when the voltage of the first matching line ML1_1 is maintained and the voltages of the second matching line ML1_2 and the third matching line ML1_3 are discharged, the stored data matches the search data; when the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is maintained and the voltage of the third matching line ML1_3 is discharged, the stored data does not match the search data; when the voltages of the first matching line ML1_1, the second matching line ML1_2 and the third matching line ML1_3 are all maintained, the stored data does not match the search data; and when the voltages of the first matching line ML1_1, the second matching line ML1_2 and the third matching line ML1_3 are all discharged, the stored data does not match the search data.
[0121] The following table is a search table according to the sixth embodiment of this disclosure.
[0122] Stored data 000 Stored data 001 Stored data 010 Stored data 011 Search data 000 Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Search data 001 Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Search data 010 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Search data 011 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data 100 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data WC Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O
[0123] 100 stored data Storing data 101 Storing data 110 Storing data 111 Storing data YYY Search data 000 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 001 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 010 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 011 Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 100 Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data WC Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O
[0124] As shown in the table above, when both the stored data and the search data are 000, the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is discharged, and the voltage of the third matching line ML1_3 is discharged, indicating a match in the search result. Conversely, when both the stored data and the search data are 000, the voltages of all three matching lines are discharged, indicating a non-match in the search result. The rest can be deduced similarly. When the stored data is YYY, the search result is a match regardless of the search data value. When the search data is a wildcard (WC), the search result is a match regardless of the stored data value.
[0125] In the sixth embodiment of this disclosure, the threshold voltage of the first transistor T1, the threshold voltage of the second transistor T2 (also referred to as the second threshold voltage), and the threshold voltage of the third transistor T3 (also referred to as the third threshold voltage) are all the same; the first search voltage (the search voltage applied to the first search line SL1_1) is lower than the second search voltage (the search voltage applied to the second search line SL1_2), the second search voltage (the search voltage applied to the second search line SL1_2) is lower than the third search voltage (the search voltage applied to the third search line SL1_3), and when the stored data is the first preset stored data (000), the first threshold voltage, the second threshold voltage, and the third threshold voltage are a minimum threshold voltage value; when the stored data is the second preset stored data (111), the first threshold voltage, the second threshold voltage, and the third threshold voltage are a maximum threshold voltage value.
[0126] Seventh Embodiment
[0127] Please refer to Figure 7 , Figure 7 This is a schematic diagram of a content-addressable memory cell and its operation according to the seventh embodiment of this disclosure.
[0128] The table below shows the search voltage, threshold voltage, and search results according to the seventh embodiment of this disclosure.
[0129] Search data 000 001 010 011 100 101 110 111 WC SL1_1 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS1 SL1_2 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS8 SL1_3 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS8
[0130] Store data 000 001 010 011 100 101 110 111 WC VT_T1 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT8 VT8 VT_T2 VT0 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT1 VT_T3 VT0 VT0 VT1 VT2 VT3 VT4 VT5 VT6 VT1
[0131] Search data 000 001 010 011 100 101 110 111 ML1_1 X X X O O O O O ML1_2 X X O O O O O O ML1_3 X O O O O O O O
[0132] (Stored data: 010) (X: Hold voltage; O: Discharge)
[0133] In the seventh embodiment, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT1, VT0, and VT0 respectively, the stored data of the content-addressable memory cell 600 is 000; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT2, VT1, and VT0 respectively, the stored data of the content-addressable memory cell 600 is 001; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT3, VT2, and VT1 respectively, the stored data of the content-addressable memory cell 600 is 010; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT4, VT3, and VT2 respectively, the stored data of the content-addressable memory cell 600 is... 011; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT5, VT4, and VT3 respectively, the stored data of the content-addressable memory cell 600 is 100; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT6, VT5, and VT4 respectively, the stored data of the content-addressable memory cell 600 is 101; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT7, VT6, and VT5 respectively, the stored data of the content-addressable memory cell 600 is 110; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT8, VT7, and VT6 respectively, the stored data of the content-addressable memory cell 600 is 111. Furthermore, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT8, VT0, and VT0 respectively, the stored data of the content-addressable memory cell 600 is YYY (not important, irrelevant).
[0134] During the search, when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS1, VS1, and VS1 respectively, the search data is 000; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS2, VS2, and VS2 respectively, the search data is 001; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS3, VS3, and VS3 respectively, the search data is 010; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS4, VS4, and VS4 respectively, the search data is 01 ... When the search voltages are VS5, VS5, and VS5 respectively, the search data is 100; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS6, VS6, and VS6 respectively, the search data is 101; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS7, VS7, and VS7 respectively, the search data is 110; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS8, VS8, and VS8 respectively, the search data is 111; and when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS1, VS8, and VS8 respectively, the search data is a wildcard (WC).
[0135] In the seventh embodiment of this disclosure, the values of threshold voltages VT0, VT1, VT2, VT3, VT4, VT5, VT6, VT7 and VT8 are, for example but not limited to, 0V, 1V, 2V, 3V, 4V, 5V, 6V, 7V and 8V; and the values of search voltages VS1, VS2, VS3, VS4, VS5, VS6, VS7 and VS8 are, for example but not limited to, 0.5V, 1.5V, 2.5V, 3.5V, 4.5V, 5.5V, 6.5V and 7.5V.
[0136] When the stored data in the content-addressable memory unit 600 is 010, and the search data is 010, the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is discharged, and the voltage of the third matching line ML1_3 is discharged. Therefore, this indicates that the search result is a match. Other cases can be deduced similarly.
[0137] As can be seen from the above description, in the seventh embodiment of this disclosure, when the voltage of the first matching line ML1_1 is maintained and the voltages of the second matching line ML1_2 and the third matching line ML1_3 are discharged, the stored data matches the search data; when the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is maintained and the voltage of the third matching line ML1_3 is discharged, the stored data does not match the search data; when the voltages of the first matching line ML1_1, the second matching line ML1_2 and the third matching line ML1_3 are all maintained, the stored data does not match the search data; and when the voltages of the first matching line ML1_1, the second matching line ML1_2 and the third matching line ML1_3 are all discharged, the stored data does not match the search data.
[0138] The following table is a search table according to the seventh embodiment of this disclosure.
[0139] Stored data 000 Stored data 001 Stored data 010 Stored data 011 Search data 000 Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Search data 001 Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Search data 010 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Search data 011 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data 100 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data WC Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O
[0140] 100 stored data Storing data 101 Storing data 110 Storing data 111 Storing data YYY Search data 000 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 001 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 010 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 011 Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 100 Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:XML1_2:OML1_3:O Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Mismatch ML1_1:XML1_2:XML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Search data WC Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O Matching ML1_1:XML1_2:OML1_3:O
[0141] As shown in the table above, when both the stored data and the search data are 000, the voltage of the first matching line ML1_1 is maintained, the voltage of the second matching line ML1_2 is discharged, and the voltage of the third matching line ML1_3 is discharged, indicating a match in the search result. Conversely, when both the stored data and the search data are 000, the voltages of all three matching lines are discharged, indicating a non-match in the search result. The rest can be deduced similarly. When the stored data is YYY, the search result is a match regardless of the search data value. When the search data is a wildcard (WC), the search result is a match regardless of the stored data value.
[0142] In the seventh embodiment of this disclosure, the threshold voltage (also referred to as the first threshold voltage) of the first transistor T1 is higher than the threshold voltage (also referred to as the second threshold voltage) of the second transistor T2 and the threshold voltage (also referred to as the third threshold voltage) of the third transistor T3; the first search voltage (the search voltage applied to the first search line SL1_1), the second search voltage (the search voltage applied to the second search line SL1_2), and the third search voltage (the search voltage applied to the second search line SL1_3) are all the same, and when the search data is the first preset search data (000), the first search voltage, the second search voltage, and the third search voltage are a minimum search voltage value; when the search data is the second preset search data (111), the first search voltage, the second search voltage, and the third search voltage are a maximum search voltage value.
[0143] Eighth embodiment
[0144] Please refer to Figure 8 , Figure 8 This is a schematic diagram of an addressable memory cell and its operation according to the eighth embodiment of this disclosure.
[0145] The table below shows the search voltage, threshold voltage, and search results according to the eighth embodiment of this disclosure.
[0146] Search data 000 001 010 011 100 101 110 111 WC SL1_1 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS8 SL1_2 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS8 SL1_3 VS1 VS2 VS3 VS4 VS5 VS6 VS7 VS8 VS1
[0147] Store data 000 001 010 011 100 101 110 111 WC VT_T1 VT0 VT0 VT1 VT2 VT3 VT4 VT5 VT6 VT0 VT_T2 VT0 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT0 VT_T3 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VT8 VT8
[0148] Search data 000 001 010 011 100 101 110 111 ML1_1 X O O O O O O O ML1_2 X X O O O O O O ML1_3 X X X O O O O O
[0149] (Stored data: 010) (X: Hold voltage; O: Discharge)
[0150] In the eighth embodiment, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT0, VT0, and VT0 respectively, the stored data of the content-addressable memory cell 600 is 000; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT0, VT1, and VT2 respectively, the stored data of the content-addressable memory cell 600 is 001; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT1, VT2, and VT3 respectively, the stored data of the content-addressable memory cell 600 is 010; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT2, VT3, and VT4 respectively, the stored data of the content-addressable memory cell 600 is... 011; When the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT3, VT4, and VT5 respectively, the stored data of the content-addressable memory cell 600 is 100; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT4, VT5, and VT6 respectively, the stored data of the content-addressable memory cell 600 is 101; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT5, VT6, and VT7 respectively, the stored data of the content-addressable memory cell 600 is 110; when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT6, VT7, and VT8 respectively, the stored data of the content-addressable memory cell 600 is 111. Furthermore, when the threshold voltages VT_T1, VT_T2, and VT_T3 of transistors T1, T2, and T3 are VT0, VT0, and VT8 respectively, the stored data of the content-addressable memory cell 600 is YYY (not important, irrelevant).
[0151] During the search, when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS1, VS1, and VS1 respectively, the search data is 000; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS2, VS2, and VS2 respectively, the search data is 001; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS3, VS3, and VS3 respectively, the search data is 010; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS4, VS4, and VS4 respectively, the search data is 01 ... When the search voltages are VS5, VS5, and VS5 respectively, the search data is 100; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS6, VS6, and VS6 respectively, the search data is 101; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS7, VS7, and VS7 respectively, the search data is 110; when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS8, VS8, and VS8 respectively, the search data is 111; and when the search voltages applied to the first search line SL1_1, the second search line SL1_2, and the third search line SL1_3 are VS8, VS8, and VS1 respectively, the search data is a wildcard (WC).
[0152] In the eighth embodiment of this disclosure, the values of threshold voltages VT0, VT1, VT2, VT3, VT4, VT5, VT6, VT7 and VT8 are, for example but not limited to, 0V, 1V, 2V, 3V, 4V, 5V, 6V, 7V and 8V; and the values of search voltages VS1, VS2, VS3, VS4, VS5, VS6, VS7 and VS8 are, for example but not limited to, 0.5V, 1.5V, 2.5V, 3.5V, 4.5V, 5.5V, 6.5V and 7.5V.
[0153] When the stored data in the content-addressable memory unit 600 is 010 and the search data is 010, the voltage of the first matching line ML1_1 is discharged, the voltage of the second matching line ML1_2 is discharged, and the voltage of the third matching line ML1_3 is maintained. Therefore, this indicates that the search result is a match. Other cases can be deduced similarly.
[0154] As can be seen from the above description, in the eighth embodiment of this disclosure, when the voltages of the first matching line ML1_1 and the second matching line ML1_2 are discharged while the voltage of the third matching line ML1_3 is maintained, the stored data matches the search data; when the voltage of the first matching line ML1_1 is discharged while the voltages of the second matching line ML1_2 and the third matching line ML1_3 are maintained, the stored data does not match the search data; when the voltages of the first matching line ML1_1, the second matching line ML1_2, and the third matching line ML1_3 are all maintained, the stored data does not match the search data; and when the voltages of the first matching line ML1_1, the second matching line ML1_2, and the third matching line ML1_3 are all discharged, the stored data does not match the search data.
[0155] The following table is a search table according to the eighth embodiment of this disclosure.
[0156] Stored data 000 Stored data 001 Stored data 010 Stored data 011 Search data 000 Matching ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Search data 001 Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Search data 010 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Search data 011 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Matching ML1_1:OML1_2:OML1_3:X Search data 100 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Search data WC Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X
[0157] 100 stored data Storing data 101 Storing data 110 Storing data 111 Storing data YYY Search data 000 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 001 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 010 Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 011 Mismatch ML1_1:OML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 100 Mismatch ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 101 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Mismatch ML1_1:XML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 110 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:X Mismatch ML1_1:OML1_2:XML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data 111 Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:O Mismatch ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Search data WC Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X Matching ML1_1:OML1_2:OML1_3:X
[0158] As shown in the table above, when both the stored data and the search data are 000, the voltages of the first matching line ML1_1 and the second matching line ML1_2 are discharged, while the voltage of the third matching line ML1_3 is maintained, indicating a match. Conversely, when both the stored data and the search data are 000, the voltages of all three matching lines are discharged, indicating a non-match. The rest can be deduced similarly. When the stored data is YYY, the search result is a match regardless of the search data value. When the search data is a wildcard (WC), the search result is a match regardless of the stored data value.
[0159] In the eighth embodiment of this disclosure, the threshold voltage (also referred to as the third threshold voltage) of the third transistor T3 is higher than the threshold voltage (also referred to as the first threshold voltage) of the first transistor T1 and the threshold voltage (also referred to as the second threshold voltage) of the second transistor T2; the first search voltage (the search voltage applied to the first search line SL1_1), the second search voltage (the search voltage applied to the second search line SL1_2), and the third search voltage (the search voltage applied to the second search line SL1_3) are all the same, and when the search data is the first preset search data (000), the first search voltage, the second search voltage, and the third search voltage are a minimum search voltage value; when the search data is the second preset search data (111), the first search voltage, the second search voltage, and the third search voltage are a maximum search voltage value.
[0160] Figure 9A method of operating a content-addressable memory device according to a ninth embodiment of the present disclosure includes: in step 910, programming a plurality of content-addressable memory cells, each of the content-addressable memory cells including a plurality of parallel flash memory cells, a stored data of each of the content-addressable memory cells being determined by a combination of a plurality of threshold voltages of the parallel flash memory cells of each of the content-addressable memory cells, the content-addressable memory cells also being coupled to a plurality of matching lines; in step 920, applying a plurality of search voltages to the content-addressable memory cells; in step 930, sensing a plurality of matching voltages on the plurality of matching lines to generate a plurality of sensing results; and in step 940, generating a matching address based on the sensing results, the matching address indicating an individual address of the content-addressable memory cells for which a search result is a match.
[0161] The details of steps 910-940 are as described in the above embodiments and will not be repeated here.
[0162] In the above embodiments of this disclosure, the content-addressable memory cell may include: a multi-level CAM cell capable of storing two bits, a triple-level CAM cell capable of storing three bits, a quad-level CAM cell capable of storing four bits, a penta-level CAM cell capable of storing five bits, etc., all of which are within the spirit and scope of this disclosure.
[0163] In the embodiments described above, the CAM memory device may be a two-dimensional (2D) flash memory architecture or a three-dimensional (3D) flash memory architecture, both of which are within the spirit of this disclosure.
[0164] The embodiments of this disclosure distinguish matching results based on different combinations of matching line voltages. Because these embodiments use multi-level (or more) NOR flash memory cells, in-memory searching (IMS) density can be improved, and matching speed can be increased.
[0165] In this embodiment of the disclosure, the NOR flash TCAM architecture used can provide a high on / off current ratio, for example, higher than 10. 6 Therefore, the embodiments of this disclosure can improve matching accuracy and are suitable for long character search designs. Thus, when using the CAM unit and CAM memory device of the embodiments of this disclosure for large data searches, the search density within the memory can be increased.
[0166] In summary, although the present invention has been disclosed above with reference to embodiments, it is not intended to limit the invention. Those skilled in the art to which this invention pertains can make various modifications and refinements without departing from the spirit and scope of the invention. Therefore, the scope of protection of this invention shall be determined by the appended claims.
Claims
1. A content addressable memory cell, comprising: a plurality of parallel flash memory cells, a stored data of the content addressable memory cell is determined by a combination of threshold voltages of the parallel flash memory cells, and the threshold voltages of the parallel flash memory cells are selected among a maximum threshold voltage, a minimum threshold voltage and an intermediate threshold voltage.
2. The content addressable memory cell of claim 1, wherein, the threshold voltages of the parallel flash memory cells are the same; or a threshold voltage of the parallel flash memory cells is higher than another threshold voltage of the parallel flash memory cells.
3. The content addressable memory cell of claim 1, wherein, when the stored data is a first preset stored data, a first threshold voltage of a first flash memory cell of the parallel flash memory cells and a second threshold voltage of a second flash memory cell of the parallel flash memory cells are a minimum threshold voltage value; and, when the stored data is a second preset stored data, the first threshold voltage and the second threshold voltage are a maximum threshold voltage value; or when the stored data is the first preset stored data, the second threshold voltage of the parallel flash memory cells is the minimum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; and, when the stored data is the second preset stored data, the first threshold voltage is the maximum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; or when the stored data is a third preset stored data, one of the first threshold voltage and the second threshold voltage is the minimum threshold voltage value and the other of the first threshold voltage and the second threshold voltage is the maximum threshold voltage value.
4. A content addressable memory device, comprising: a plurality of content addressable memory cells, each of the content addressable memory cells comprising a plurality of parallel flash memory cells, a stored data of each of the content addressable memory cells is determined by a combination of threshold voltages of the parallel flash memory cells of each of the content addressable memory cells, and the threshold voltages of the parallel flash memory cells are selected among a maximum threshold voltage, a minimum threshold voltage and an intermediate threshold voltage; a plurality of search lines coupled to the content addressable memory cells; a plurality of match lines coupled to the content addressable memory cells; a plurality of sense amplifiers coupled to the match lines; and a decoder coupled to the sense amplifiers, wherein, when a plurality of search voltages are applied to the content addressable memory cells through the search lines, the sense amplifiers sense a plurality of match voltages on the match lines to generate a plurality of sensing results; based on the sensing results, the decoder generates a match address, the match address indicating individual addresses of the content addressable memory cells whose search results are matched. In the content addressable memory cell, 5. The content addressable memory device of claim 4, wherein, the threshold voltages of the parallel flash memory cells are the same; or The threshold voltage of the one of the parallel flash memory cells is higher than the other threshold voltage of the parallel flash memory cells.
6. The CAM device of claim 4, wherein, In the CAM cell, when the stored data is a first predetermined stored data, a first threshold voltage of a first one of the parallel flash memory cells and a second threshold voltage of a second one of the parallel flash memory cells are a minimum threshold voltage value; when the stored data is a second predetermined stored data, the first threshold voltage and the second threshold voltage are a maximum threshold voltage value; the first search voltage is lower than the second search voltage; or In the CAM cell, when the stored data is the first predetermined stored data, the second threshold voltage is the minimum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; and when the stored data is the second predetermined stored data, the first threshold voltage is the maximum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; the search voltages are the same, and when a search data is a first predetermined search data, the search voltages are a minimum search voltage value; when the search data is a second predetermined search data, the search voltages are a maximum search voltage value; or In the CAM cell, when the stored data is a third predetermined stored data, one of the first threshold voltage and the second threshold voltage is the minimum threshold voltage value and the other of the first threshold voltage and the second threshold voltage is the maximum threshold voltage value; the search voltages are the same; when a search data is the first predetermined search data, the search voltages are the minimum search voltage value; and, when the search data is the second predetermined search data, the search voltages are the maximum search voltage value; wherein, when one of the match voltages is held and the other of the match voltages is discharged, the search result is a match.
7. A method of operating a CAM device, comprising: programming a plurality of CAM cells, each of the CAM cells comprising a plurality of parallel flash memory cells, a stored data of each of the CAM cells being determined by a combination of threshold voltages of the parallel flash memory cells of each of the CAM cells, and the threshold voltages of the parallel flash memory cells being selected among a maximum threshold voltage, a minimum threshold voltage, and an intermediate threshold voltage, the CAM cells further coupled to a plurality of match lines; applying a plurality of search voltages to the CAM cells; sensing a plurality of match voltages of the match lines to generate a plurality of sensing results; and generating a match address indicating a search result of the CAM cells is a match according to the sensing results.
8. The method of operating a content addressable memory device according to claim 7, wherein, In programming the CAM cells, the threshold voltages of the parallel flash memory cells are programmed to be the same; or the threshold voltages of the parallel flash memory cells are programmed to be different. The threshold voltage of the first one of the parallel flash memory cells is higher than the threshold voltage of the other one of the parallel flash memory cells.
9. The operating method of claim 7, wherein, In the content addressable memory unit, when the stored data is a first predetermined stored data, a first threshold voltage of a first one of the parallel flash memory cells and a second threshold voltage of a second one of the parallel flash memory cells are a minimum threshold voltage value; when the stored data is a second predetermined stored data, the first threshold voltage and the second threshold voltage are a maximum threshold voltage value; a first one of the search voltages is lower than a second one of the search voltages; or In the content addressable memory unit, when the stored data is the first predetermined stored data, the second threshold voltage is the minimum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; and when the stored data is the second predetermined stored data, the first threshold voltage is the maximum threshold voltage value and the first threshold voltage is higher than the second threshold voltage; the search voltages are the same, and when a search data is a first predetermined search data, the search voltages are a minimum search voltage value; when the search data is a second predetermined search data, the search voltages are a maximum search voltage value; or In the content addressable memory unit, when the stored data is a third predetermined stored data, one of the first threshold voltage and the second threshold voltage is the minimum threshold voltage value and the other one of the first threshold voltage and the second threshold voltage is the maximum threshold voltage value; the search voltages are the same; when a search data is the first predetermined search data, the search voltages are the minimum search voltage value; and, when the search data is the second predetermined search data, the search voltages are the maximum search voltage value; wherein, when one of the match voltages is held and the other one of the match voltages is discharged, the search result is a match.
Citation Information
Patent Citations
Non-volatile content addressable memory
US6317349B1