Five architectures for the implementation of virtual ground non-volatile content-addressable memory are provided. Three of the architectures are applicable to 2-bit non-volatile memory transistors having separate programming capability for two current directions (i.e., drain-to-source and source-to-drain. Another architecture is applicable to any floating gate memory transistor, including 1-bit and 2-bit non-volatile memory transistors. In general, an array of non-volatile memory transistors is arranged in a plurality of horizontal rows and vertical columns. words are stored in selected columns of the array. Horizontal compare lines are coupled to receive a comparand word, with each compare line being coupled to the gates of the memory transistors in a row of the array. The vertically aligned source/drain regions of the memory transistors are coupled to form word lines. sense amplifiers are coupled to selected word lines. Switches can be coupled to the sense amplifiers and/or word lines, thereby enabling program and compare operations to be performed in two different directions when 2-bit non-volatile memory transistors are used. Compare operations can be performed over two or more phases when 2-bit non-volatile memory transistors are used. Sequential logic circuits can also be coupled to the sense amplifiers, and used to store the results of different compare phases.
|
28. A content addressable memory system comprising:
an array of non-volatile memory transistors arranged in rows and columns; a plurality of compare lines configured to receive compare data, each of the compare lines being coupled to gates of non-volatile memory transistors in a row of the array; a plurality of word lines, each being coupled to device terminals of non-volatile memory transistors in a column of the array; a first set of sense amplifiers coupled to a first set of the word lines, the first set of sense amplifiers being configured to compare data in every even column of the array during a first compare phase; and a second set of sense amplifier coupled to second set of the word lines, wherein the second set of sense amplifiers are configured to compare data in every odd column of the array during a second compare phase.
1. A content addressable memory (CAM) array comprising:
an array of non-volatile memory transistors arranged in a plurality of rows and columns, wherein each memory transistor has a gate, a first device terminal and a second device terminal, and wherein columns of memory transistors are configured to store words; a plurality of compare lines configured to receive a comparand word, wherein each compare line is coupled to the gate of each memory transistor in a row of the array; a first word line coupled to the first device terminal of each memory transistor in a first column of the array; a second word line coupled to the second device terminal of each memory transistor in the first column of the array, and to the first device terminal of each memory transistor in a second column of the array; a third word line coupled to the second device terminal of each memory transistor in the second column of the array; a first sense amplifier coupled to the first word line; a first supply voltage terminal coupled to the second word line; and a second sense amplifier coupled to the third word line.
19. A content addressable memory (CAM) array comprising:
an array of 2-bit non-volatile memory transistors arranged in a plurality of rows and columns, wherein each memory transistor has a gate, a first device terminal and a second device terminal, and wherein columns of memory transistors are configured to store words; a plurality of compare lines configured to receive a comparand word during a first compare phase, a second compare phase and a third compare phase, wherein each compare line is coupled to the gate of each memory transistor in a row of the array; a first word line coupled to the first device terminal of each memory transistor in a first column of the array; a second word line coupled to the second device terminal of each memory transistor in the first column of the array and to the first device terminal of each memory transistor in a second column of the array; a third word line coupled to the second device terminal of each memory transistor in the second column of the array; a first sense amplifier coupled to the first word line; a second sense amplifier coupled to the second word line; and a third sense amplifier coupled to the third word line.
11. A content addressable memory (CAM) array comprising:
an array of 2-bit non-volatile memory transistors arranged in a plurality of rows and columns, wherein each memory transistor has a gate, a first device terminal and a second device terminal, and wherein columns of memory transistors are configured to store words; a plurality of compare lines configured to receive a comparand word during a first compare phase and a complement of the comparand word during a second compare phase, wherein each compare line is coupled to the gate of each memory transistor in a row of the array; a first word line coupled to the first device terminal of each memory transistor in a first column of the array; a second word line coupled to the second device terminal of each memory transistor in the first column of the array, wherein the second word line is configured to receive a first control voltage during the first compare phase, and a second control voltage during the second compare phase; and a first sense amplifier coupled to the first word line, wherein the first sense amplifier is configured to receive the second control voltage during the first compare phase, and the first control voltage during the second compare phase.
3. The CAM of
4. The CAM of
5. The CAM of
a fourth word line coupled to the second device terminal of each memory transistor in the third column of the array, and to the first device terminal of each memory transistor in a fourth column of the array, wherein the fourth column of memory transistors is configured to store a word; a third sense amplifier coupled to the fourth word line; and a fifth word line coupled to the second device terminal of each memory transistor in the fourth column of the array, wherein the fifth word line is coupled to the first supply voltage terminal.
7. The CAM of
9. The CAM of
10. The CAM of
12. The CAM of
13. The CAM of
14. The CAM of
a third word line coupled to the second device terminal of each memory transistor in the second column of the array; and a second sense amplifier coupled to the third word line, wherein the second sense amplifier is configured to receive the second control voltage during the first compare phase, and the first control voltage during the second compare phase.
16. The CAM of
18. The CAM of
20. The CAM of
21. The CAM of
22. The CAM of
23. The CAM of
24. The CAM of
27. The CAM of
29. The content addressable memory system of
30. The content addressable memory system of
31. The content addressable memory system of
a first set of storage elements coupled to the first set of sense amplifiers, wherein the first set of storage elements store the results of the first compare phase; and a second set of storage elements coupled to the second set of sense amplifiers, wherein the second set of storage elements store the results of the second compare phase.
32. The content addressable memory system of
means for biasing a subset of the first set of sense amplifiers with a first control voltage during the first compare phase and a second control voltage during the second compare phase; and means for biasing a subset of the second set of sense amplifiers with the second control voltage during the first compare phase and the first control voltage during the second compare phase.
|
1. Field of the Invention
The present invention relates to a non-volatile content-addressable memory (NVCAM) array implemented using a virtual-ground flash memory architecture.
2. Description of Related Art
Content-addressable memory (CAM) arrays are used in various applications where a fast searching capability is needed. Non-volatile CAM (NVCAM) arrays form a sub-class within this family. One example of a NVCAM array is described in U.S. Pat. No. 5,808,929.
While it is relatively easy to implement a CAM structure for a conventional non-volatile memory array that implements a common-source configuration, the task becomes more complex for a non-volatile memory array that implements a virtual-ground configuration. For example, U.S. Pat. No. 5,917,743 requires eight transistors to form a CAM cell and, in addition, requires the fabrication of a special isolation device.
It would therefore be desirable to have a NVCAM structure having a virtual-ground configuration that overcomes the deficiencies of the prior art.
An object of the present invention is to provide a dense NVCAM array that utilizes a virtual-ground architecture. A first embodiment of the present invention can utilize either 1-bit or 2-bit non-volatile memory transistors, and achieves three transistor/bit density with no speed compromise. A second embodiment of the present invention can utilize either 1-bit or 2-bit non-volatile memory transistors, and achieves 2 transistor/bit density, with a two times degradation is speed. Third and fourth embodiments of the present invention utilize 2-bit non-volatile memory transistors and yield 1.5 and 1 transistor/bit density, with two-times and three-times degradation in speed, respectively. A fifth embodiment utilizes 2-bit non-volatile memory transistors and yields three separate three transistor/bit density arrays.
The first embodiment includes a content addressable memory (CAM) array having an array of 1-bit or 2-bit non-volatile memory transistors arranged in a plurality of rows and columns. Each memory transistor has a gate, a first device terminal and a second device terminal. A plurality of horizontally aligned compare lines are configured to receive a comparand word, wherein each compare line is coupled to the gate of each memory transistor in a row of the array. Vertically aligned device terminals in the array are coupled to form a plurality of word lines.
Selected columns of memory transistors are configured to store words in the array. One column of memory transistors adjacent to each selected column of memory transistors is unused (blank). In the first embodiment, two memory transistors are used to represent each bit of information. Thus, one memory transistor stores the data bit, while a corresponding memory transistor stores the complement of the data bit.
Consequently, three columns of memory transistors are effectively used to store two columns of data, thereby making the overall efficiency of the NVCAM array equal to three transistors/bit.
A compare operation is performed as follows. The compare data values are applied to the compare lines. Two compare lines are used for each bit, with one compare line receiving the compare data bit, and the other compare line receiving the complement of the compare data bit. Each column of memory transistors has two associated word lines. One of these word lines is coupled to receive a voltage of about 0 Volts (virtual ground). The other one of these word lines is coupled to receive a read reference voltage (e.g., 2 Volts) through a current sensing amplifier. If no current flows through the sense amplifier, then a match exists for the associated word. No current will flow through the sense amplifier if and only if, for all of the transistors in the column, either the compare line is at a low state or the transistor is programmed (i.e., does not conduct).
The second embodiment is similar to the first embodiment; however, in the second embodiment, all of the columns of the NVCAM array are used to store data values. In the second embodiment, a comparison operation is divided into two consecutive compare phases. In the first compare phase, a first set of words (columns) is compared with the comparand word. During the second compare phase, a second set of words (columns) is compared with the comparand word. The first and second compare phases are implemented by changing the functionality of the sense amplifiers during the two compare phases. In the second embodiment, the overall efficiency of the NVCAM array is equal to two transistors/bit, with the comparison operation taking twice as long as the comparison operation of the first embodiment.
The third embodiment includes an array of 2-bit non-volatile memory transistors arranged in a plurality of rows and columns, wherein selected columns of memory transistors are configured to store words. Again, each column of memory transistors that is selected to store a word is bordered by one unused column of memory transistors. In the selected columns, the two bits of each memory transistor are used to store a bit and a complementary bit of a corresponding word.
A comparison operation in the third embodiment is performed over two phases. A plurality of compare lines are provided, wherein each of the compare lines is coupled to the gates of the memory transistors in a corresponding row of the array. The compare lines are coupled to receive a comparand word during the first compare phase and a complement of the comparand word during the second compare phase.
Switches are provided to enable the word lines/sense amplifiers to be biased in a first direction during the first compare phase, thereby accessing a first bit of the 2-bit memory transistors. These switches are controlled to bias the word lines/sense amplifiers in a second direction during the second compare phase, thereby accessing a second bit of the 2-bit memory transistors. Sequential logic elements can be coupled to the output terminals of the sense amplifiers to store the results of the first and second compare phases.
The fourth embodiment includes an array of 2-bit non-volatile memory transistors arranged in a plurality of rows and columns, wherein each column of memory transistors is configured to store two words. Within each column, two memory transistors are used to represent each bit of information for each of the two words. Thus, one memory transistor stores two data bits, while a corresponding memory transistor stores the complement of those two data bits. A plurality of compare lines are provided, wherein each of the compare lines is coupled to the gates of the memory transistors in a corresponding row of the array.
In the fourth embodiment, a compare operation is performed over three compare phases. The compare lines are coupled to receive a comparand word and the complement of the comparand word during each of the three compare phases.
Switches and sense amplifiers are provided to enable the word lines to be biased in a first manner during a first compare phase, in a second manner during a second compare phase, and in a third manner during a third compare phase. Sequential logic elements can be coupled to the sense amplifiers to store the results of the first, second and third compare phases.
The fifth embodiment is similar to the fourth embodiment. However, in the fifth embodiment, the results of the first, second and third compare phases are considered separately, thereby effectively providing for three separate NVCAM arrays within a larger array. Each compare operation in the fifth embodiment is performed during a single compare phase.
The present invention will be more fully understood in view of the following description and drawings.
The present invention implements a flash array that is similar to conventional virtual-ground flash arrays. However, the use of vertical and horizontal conductors in the present invention is different than the use of such conductors in a conventional virtual-ground flash array. To avoid any confusion, the terms used in the present disclosure are defined herein, and the reader is advised to ignore any previous conceptions on the orientation of bit lines or word lines. "Compare lines" is a term used for horizontally oriented conductors, which connect the control gates of the rows of memory transistors during a compare operation. In the described embodiments, the compare lines are conductively doped polycrystalline silicon. The compare lines are configured to receive the comparand values to be compared with the contents of the array. As described in more detail below, a compare line may be used to carry both a compare bit and its complement. In some embodiments, separate compare lines are used to carry a compare bit and its complement. During a program operation, the compare lines are used as bit lines to carry a high programming voltage or a ground voltage, according to the data to be written to the array.
"Word lines" is a term used to describe the vertically oriented conductors, which couple the sources of one column of memory transistors to the drains of an adjacent column of memory transistors. Word lines are thereby coupled to memory transistors forming a full word (and sometimes two full words) stored in the array. In the described embodiments, the word lines are conductively doped diffusion regions in a semiconductor substrate.
In the present description, the term "non-volatile memory transistor" is used to refer to either a conventional 1-bit floating gate memory transistor or a 2-bit non-volatile memory transistor (which can be used as either a 1-bit memory transistor or a 2-bit memory transistor). The term "device terminal" will be used to refer to the drain or the source of a non-volatile memory transistor. The term "gate" will be used to refer to the gate electrode of a non-volatile memory transistor.
A two-bit non-volatile memory transistor will now be briefly described. Two-bit non-volatile memory transistors are described in more detail in commonly owned, co-pending U.S. patent application Ser. No. 09/243,976 [TSL-016], which is hereby incorporated by reference in its entirety.
Memory transistor 10 is read by applying 0 Volts to the drain region 16, 2 Volts to the source region 14, and 3 volts to the gate electrode. If charge is stored in right charge trapping region 26 (i.e., the right charge trapping region 26 of memory transistor 10 is programmed), then memory transistor 10 does not conduct current under these conditions. If there is no charge stored in right charge trapping region 26 (i.e., the right charge trapping region of memory transistor 10 is erased), then memory transistor 10 conducts current under these conditions. The current, or lack of current, is sensed by a sense amplifier to determine the state of memory transistor 10.
Note that the polarity of the voltage applied across source region 14 and drain region 16 is reversed during the program and read operations. That is, the right charge trapping region 26 of memory transistor 10 is programmed in one direction (with source region 14 grounded), and read the opposite direction (with drain region 16 grounded). As a result, the read operation is referred to as a reverse read operation.
To operate memory transistor 10 as a 2-bit non-volatile semiconductor memory transistor, memory transistor 10 is controlled to use a second charge trapping region in nitride layer 20, which is located adjacent to source region 14.
Note that because nitride layer 20 is non-conductive, the charges stored in the right and left charge trapping regions 26 and 28 remain localized within nitride layer 20. Also note that the state of the right charge trapping region 26 does not interfere with the reading of the charge stored in the left charge trapping region 28 (and vice versa). Thus, if the right charge trapping region 26 is programmed (i.e., stores charge) and the left charge trapping region 28 is not programmed (i.e., does not store charge), then a reverse read of the right charge trapping region will not result in significant current flow. However, a reverse read of the left charge trapping region 28 will result in significant current flow because the high voltage applied to drain region 16 will result in unperturbed electronic transfer in the pinch off region adjacent to right charge trapping region 26. Thus, the information stored in the right and left charge trapping regions 26 and 28 is read properly.
Similarly, if both the right and left charge trapping regions are programmed, a read operation in either direction will result in no significant current flow. Finally, if neither the right charge trapping region 26 nor the left charge trapping region 28 is programmed, then read operations in both directions will result in significant current flow.
It is well known that the structure of a conventional 1-bit floating gate memory transistor is similar to the structure of memory transistor 10; however, the nitride layer 20 is replaced with a conductive material (e.g., conductively doped polycrystalline silicon). Charge stored in this conductive material is not localized, such that only one bit is stored in the floating gate memory transistor.
As described in more detail below, the number of word lines determines the number of words in array 200, while the number of compare lines determines the number of the bits in each word.
It is understood by those of ordinary skill in the art that the structure of
Reference is now made to
The first embodiment of the present invention will now be described in detail, with reference to FIG. 4.
In the first embodiment, the number of words in NVCAM array 400 is equal to the number of word lines minus one, times ⅔ (e.g., ⅔×(10-1)=6 words), and the number of bits per word is equal to ½ of the number of compare lines (e.g., 6×½=3 bits/word). Thus, NVCAM array 400 stores six 3-bit words. More specifically, non-volatile memory transistors t00, t10, t20, t30, t40 and t50 store a first 3-bit word, WD1. Non-volatile memory transistors t02, t12, t22, t32, t42 and t52 store a second 3-bit word, WD2. Non-volatile memory transistors t03, t13, t23, t33, t43 and t53 store a third 3-bit word, WD3. Non-volatile memory transistors t05, t15, t25, t35, t45, and t55 store a fourth 3-bit word, WD4. Non-volatile memory transistors t06, t16, t26, t36, t46 and t56 store a fifth 3-bit word, WD5. Finally, non-volatile memory transistors t08, t18, t28, t38, t48 and t58 store a sixth 3-bit word, WD6.
The memory transistors in the second, fifth and eighth columns of array 200 are not used to store data values in the first embodiment. More specifically, the device terminals of the memory transistors in the second, fifth and eighth columns are all coupled to an si input terminal of one of sense amplifiers 301-306. As a result, these device terminals are all held at the reference voltage vr. Because there is no voltage difference between the device terminals of the memory transistors in the second, fifth and eighth columns, these memory transistors do not conduct. In one embodiment, the memory transistors in the second, fifth and eighth columns are programmed, thereby further prohibiting conduction in these memory transistors. The unused columns of the array are redundant. By studying the layout structure of virtual ground Flash arrays, it can be seen that removal of the redundant columns will add rather than save in area, so the redundant columns are not removed.
Table 1 below summarizes the connections for the six 3-bit words WD1-WD6 of NVCAM array 400.
TABLE 1 | ||||
Word | Source WL | Drain WL | Output | |
WD1 | W0 | W1 | D1 | |
WD2 | W3 | W2 | D2 | |
WD3 | W3 | W4 | D3 | |
WD4 | W6 | W5 | D4 | |
WD5 | W6 | W7 | D5 | |
WD6 | W9 | W8 | D6 | |
The first 3-bit word WD1 is stored as follows. Vertically-adjacent transistors t00 and t10 are used to store a first data bit and its complement, respectively. Similarly, vertically-adjacent transistors t20 and t30 are used to store a second data bit and its complement, respectively. Finally, vertically-adjacent transistors t40 and t50 are used to store a third data bit and its complement, respectively. The other 3-bit words WD2-WD6 are stored in a similar manner.
To store a value of "101" as word WD1, transistor t00 is programmed and transistor t10 is erased; transistor t20 is erased and transistor t30 is programmed; and transistor t40 is programmed and transistor t50 is erased. A bit of a word can be given a "Don't Care" value by programming both of the transistors used to represent the bit. For example, to store a "Don't Care" value in the first bit of word WD1, both of non-volatile memory transistors t00 and t10 are programmed. Negative logic is used in the described embodiments. Thus, erased memory transistors allow current to flow during a read operation, and programmed memory transistors prevent current flow during a read operation.
A 3-bit word to be compared (i.e., comparand word) is asserted on compare lines CL0-CL5 as comparand bit pairs C0-C0#, C1-C1# and C2-C2#. Thus, compare lines CL0, CL2 and CL4 are coupled to receive the three bits of the comparand word C0-C2, and compare lines CL1, CL3 and CL5 are coupled to receive the respective complementary bits C0#-C2#. For example, if the comparand word "100" is to be compared with the contents of array 200, the following signals, as defined by Table 2, will be asserted on compare lines CL0-CL5. Note that in the present disclosure, words are defined from least significant bit to most significant bit.
TABLE 2 | ||
Compare Line | Signal | |
CL0 | High | |
CL1 | Low | |
CL2 | Low | |
CL3 | High | |
CL4 | Low | |
CL5 | High | |
A bit of the comparand word can be given a "Don't Care" value by setting both of the signals of the comparand bit pair to logic low values. An applied "Don't Care" value will result in a match condition with the corresponding bits in array 200, regardless of the contents of array 200. For example, if the word "X0X" is to be compared with the contents of array 200, where "X" represents a "Don't Care" value, the following signals, as defined by Table 3, will be asserted on compare lines CL0-CL5.
TABLE 3 | ||
Compare Line | Signal | |
CL0 | Low | |
CL1 | Low | |
CL2 | Low | |
CL3 | High | |
CL4 | Low | |
CL5 | Low | |
In order for a non-volatile memory transistor in array 200 to be turned on (conducting), the gate of the memory transistor should be held at a logic high voltage, and the memory transistor should be in an erased state.
In order for a sense amplifier to provide a logic high output signal, one or more of the non-volatile memory transistors connected to the sense amplifier must be turned on. A sense amplifier providing a logic high output signal indicates a non-match condition. If this condition does not exist (i.e., none of the non-volatile memory transistors coupled to the sense amplifier is turned on), then the sense amplifier will provide a logic low output signal. A sense amplifier providing a logic low output signal indicates a match condition.
A match condition will exist for a particular word only if a logic low value is applied to the gate of each erased memory transistor associated with that word. Ignoring, for the moment, the "Don't Care" bits, this will only happen in two cases. First, the compare bit CN is at a logic high state, the complementary compare bit CN# is at a logic low state (i.e., the compare bit is a logic "1" value), and the status of the two corresponding non-volatile memory transistors are programmed and erased, respectively (i.e., the stored bit is a logic "1" value). Second, the compare bit CN is at a logic low state, the complementary compare bit CN# is at a logic high state (i.e., the compare bit is a logic "0" value), and the status of the two corresponding non-volatile memory transistors are erased and programmed, respectively (i.e., the stored bit is a logic "0" value).
Thus, a match condition will exist only if the compare bit is identical to the stored bit. A stored word will match a comparand word only if all of the bits in the stored word match the corresponding bits of the comparand word.
"Don't Care" bits, whether compared or stored, do not result in current flow through a corresponding sense amplifier. That is, when a comparand bit and it's complementary bit are both at logic low values, neither one of the corresponding memory transistors is turned on. Similarly, when the two memory transistors storing a bit are both programmed, neither one of these memory transistors will conduct, regardless of the voltages applied to the gates of these memory transistors. As a result, a match condition will occur as long as all of the other bits in the stored word match the corresponding bits of the comparand word.
A second embodiment of the present invention will now be described. Like the first embodiment, the second embodiment can use either conventional floating gate non-volatile memory transistors or 2-bit non-volatile memory transistors (with only one bit of the 2-bit non-volatile memory transistors being used).
In the second embodiment, the number of words in NVCAM array 500 is equal to the number of word lines minus one (e.g., (10-1)=9 words), and the number of bits per word is equal to ½ of the number of compare lines (e.g., 6×½=3 bits/word). Thus, NVCAM array 500 stores nine 3-bit words WD1-WD9. For example, non-volatile memory transistors t00, t10, t20, t30, t40 and t50 store a first 3-bit word, WD1. Note that in the second embodiment, a 3-bit word is represented by six bits (i.e., three bits plus three complementary bits) in a manner similar to the first embodiment.
The memory transistors in all of the columns of array 200 are used to store data values in the second embodiment. As described in more detail below, a comparison operation is divided into two consecutive compare phases. In the first compare phase, a first set of words (i.e., WD1-WD5) is compared with the comparand word. During the second compare phase, a second set of words (i.e., WD6-WD9) is compared with the comparand word. The functions of word lines W0-W9 are changed in the two compare phases.
The configuration of compare lines CL0-CL5 is similar to that used in the first embodiment. That is, a pair of compare lines is connected to each stored bit and the complement of the stored bit. Lines L1 and L2 are connected to the vi input terminals of sense amplifiers 502, 504, 505 and 507 as illustrated.
Table 4 below illustrates the voltages applied to lines L1 and L2 during the two compare phases, as well as the resulting voltages applied to word lines W0-W9.
TABLE 4 | ||
LINE | Phase 1 | Phase 2 |
W0 | Vr (SENSE) | Vr |
W1 | GND | GND |
W2 | GND | Vr (SENSE) |
W3 | Vr (SENSE) | Vr (SENSE) |
W4 | Vr (SENSE) | GND |
W5 | GND | GND |
W6 | GND | Vr (SENSE) |
W7 | Vr (SENSE) | Vr (SENSE) |
W8 | Vr (SENSE) | GND |
W9 | GND | GND |
L1 | GND | Vr |
L2 | Vr | GND |
Thus, during the first compare phase, the voltages applied to lines L1 and L2 configure sense amplifiers 501, 503, 504, 506 and 507 to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the first, third, fifth, seventh and ninth columns (i.e., words WD1-WD5) of array 200. The results of the first compare phase are latched into logic blocks LB1-LB5.
During the second compare phase, the voltages applied to lines L1 and L2 configure sense amplifiers 502, 503, 505 and 506 to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the second, fourth, sixth and eighth columns (i.e., words WD6-WD9) of array 200. The results of the second compare phase are latched into logic blocks LB6-LB9. As described above, a logic high output signal provided by a sense amplifier identifies a non-match condition. Thus, the logic blocks storing a logic high signal indicate a non-match condition, and the logic blocks storing a logic low signal indicate a match condition.
In a variation of the second embodiment, array NVCAM array 500 can be used to implement two separate NVCAM arrays, each of which has a single phase compare operation, with the restriction that only one array can be compared at a time. The first NVCAM array is defined to include the first, third, fifth, seventh and ninth columns of array 200 (i.e., words WD1-WD5). The second NVCAM array is defined to include the second, fourth, sixth and eighty columns of array 200 (i.e., words WD6-WD9). In this variation, the two NVCAM arrays share compare lines CL0-CL5. A comparison operation to the first NVCAM array is identical to the first compare phase described above. Logic blocks LB1-LB5 store the results of a comparison operation in the first NVCAM array. Similarly, a comparison operation to the second NVCAM array is identical to the second compare phase described above. Logic blocks LB6-LB9 store the results of a comparison operation in the second NVCAM array.
A third embodiment of the present invention will now be described. It should be noted that the first and second embodiments can use either conventional floating gate non-volatile memory transistors or 2-bit non-volatile memory transistors (with only one bit of the 2-bit non-volatile memory transistors being used). In contrast, the third embodiment requires 2-bit non-volatile memory transistors, which include left and right charge trapping regions that can be independently programmed and read as described above in
NVCAM array 600 is programmed in the following manner. In general, memory transistors in the first, fourth and seventh columns are programmed by programming current that flows in a first direction, and the third, sixth and eighth columns are programmed by programming current that flows in a second direction, opposite the first direction.
Thus, to program a logic "1" value in one of the memory transistors t00, t10, t20, t30, t40, t50 in the first column, the left charge trapping region of the transistor is programmed, while the right charge trapping region of the transistor is left in an erased state. Conversely, to program a logic "0" value in one of the memory transistors t00, t10, t20, t30, t40, t50 in the first column, the right charge trapping region of the transistor is programmed, while the left charge trapping region of the transistor is left in an erased state. To program a "Don't Care" value in any one of the memory transistors, both the left and right charge trapping regions are programmed. The memory transistors in the fourth and seventh columns are programmed using the same convention as the memory transistors in the first column.
To program a logic "1" value in one of the memory transistors t02, t12, t22, t32, t42, t52 in the third column, the right charge trapping region of the transistor is programmed, while the left charge trapping region of the transistor is left in an erased state. Conversely, to program a logic "0" value in one of the memory transistors t02, t12, t22, t32, t42, t52 in the third column, the left charge trapping region of the transistor is programmed, while the right charge trapping region of the transistor is left in an erased state. To program a "Don't Care" value in any one of the memory transistors, both the left and right charge trapping regions are programmed. The memory transistors in the sixth and eighth columns are programmed using the same convention as the memory transistors in the third column.
A comparison operation is performed as follows. Because both bits stored in a 2-bit non-volatile memory transistor cannot be read at the same time, a comparison operation is performed using two consecutive compare phases. During the first compare phase, the sense amplifiers 301-306 are connected in a first direction, and the comparand word C0-C5 is applied to array 100. During the second compare phase P2, the sense amplifiers 301-306 are connected in a second direction, and the complement of the comparand word (C0#-C5#) is applied to array 200.
A pair of arrows is located over each of the active columns of memory transistors. These arrows indicate the direction in which current flow is allowed during a read operation when logic "1" and logic "0" values are stored in the memory transistors of the column. Thus, when memory transistor t00 stores a logic "1" value (i.e., the left charge trapping region of transistor t00 is programmed and the right charge trapping region of transistor t00 is erased) current is able to flow from left to right through transistor t00 during a compare (read) operation. Conversely, when memory transistor t00 stores a logic "0" value (i.e., the right charge trapping region of transistor t00 is programmed and the left charge trapping region of transistor t00 is erased) current is able to flow from right to left through transistor t00 during a read (compare) operation.
During the first compare phase, switches 40-45 are controlled to enable a 6-bit comparand word C0-C5 to be applied to the compare lines CL0-CL5. Also during the first compare phase, switch 46 is controlled to connect sense amplifiers 301-306 to receive the vr voltage, and switch 47 is controlled to connect word lines W0, W3, W6 and W9 to receive the ground voltage. Under these conditions, current will flow through sense amplifier 301 only if the left charge trapping region of one of the memory transistors in the first column is erased (i.e., stores a logic "0" value), and the corresponding compare line has a logic high value (i.e., has a logic "1" value). That is, current will flow through sense amplifier 301 only if a non-match condition exists. Sense amplifiers 303 and 305 operate in the same manner as sense amplifier 301.
Also under these conditions, current will flow through sense amplifier 302 only if the right charge trapping region of one of the memory transistors in the second column is erased (i.e., stores a logic "0" value), and the corresponding compare line has a logic high value (i.e., has a logic "1" value). That is, current will flow through sense amplifier 302 only if a non-match condition exists. Sense amplifiers 304 and 306 operate in the same manner as sense amplifier 302. The results of the first compare phase are stored in logic blocks LB1-LB6.
During the second compare phase, switches 40-45 are controlled to enable the complement of the comparand word C0-C5 (i.e., C0#-C5#) to be applied to the compare lines CL0-CL5. Also during the second compare phase, switch 46 is controlled to connect sense amplifiers 301-306 to receive the ground voltage, and switch 47 is controlled to connect word lines W0, W3, W6 and W9 to receive the vr voltage. Under these conditions, current will flow through sense amplifier 301 only if the right charge trapping region of one of the memory transistors in the first column is erased (i.e., stores a logic "1" value), and the corresponding compare line has a logic high value (i.e., has a logic "0" value). That is, current will flow through sense amplifier 301 only if a non-match condition exists. Sense amplifiers 303 and 305 operate in the same manner as sense amplifier 301.
Also under these conditions, current will flow through sense amplifier 302 only if the left charge trapping region of one of the memory transistors in the second column is erased (i.e., stores a logic "1" value), and the corresponding compare line has a logic high value (i.e., has a logic "0" value). That is, current will flow through sense amplifier 302 only if a non-match condition exists. Sense amplifiers 304 and 306 operate in the same manner as sense amplifier 302. The results of the second compare phase are stored in logic blocks LB1-LB6.
Note that a "Don't Care" compare value can be applied to one of the compare lines by applying a logic "0" value to the compare line during both the first and second compare phases.
Logic blocks L1-L6 are simple sequential logic circuits that detect and store logic high output signals at the output terminals of sense amplifiers 301-306, respectively, during the first and second compare phases. As described above, the presence of a logic high output signal identifies a non-match condition. Thus, if a logic block does not detect a logic high output signal from its corresponding sense amplifier, then that logic block asserts a logic low output signal, thereby indicating the presence of a match condition.
A fourth embodiment of the present invention will now be described. Like the third embodiment, the fourth embodiment requires 2-bit non-volatile memory transistors, which include left and right charge trapping regions that can be independently programmed and read as described above in
In accordance with the fourth embodiment, array 200 is able to support eighteen 3-bit words. In general, these 3-bit words are located in array 200 as follows. A 3-bit word is represented by the six right charge trapping regions in each column of array 200. For example, a 3-bit word is represented by the right charge trapping regions of memory transistors t00, t10, t20, t30, t40 and t50. In addition, a 3-bit word is represented by the six left charge trapping regions in each column of array 200. For example, a 3-bit word is represented by the left charge trapping regions of memory transistors t00, t10, t20, t30, t40 and t50. Note that in the fourth embodiment, a 3-bit word is represented by six bits (i.e., three bits plus three complementary bits) in a manner similar to the first embodiment.
The configuration of compare lines CL0-CL5 is similar to that used in the first embodiment. That is, a pair of compare lines is connected to each stored bit and the complement of the stored bit. The word lines W0-W9 can be forced to the ground voltage or the Vr reference voltage by switches 61-63.
Table 5 below illustrates the configuration of switches 61-63 during the three compare phases, as well as the resulting voltages applied to word lines W0-W9.
TABLE 5 | |||
Phase 1 | Phase 2 | Phase 3 | |
W0 | GND (SENSE) | GND | Vr |
W1 | Vr | GND (SENSE) | GND (SENSE) |
W2 | GND (SENSE) | Vr | GND (SENSE) |
W3 | GND (SENSE) | GND (SENSE) | Vr |
W4 | Vr | GND (SENSE) | GND (SENSE) |
W5 | GND (SENSE) | Vr | GND (SENSE) |
W6 | GND (SENSE) | GND (SENSE) | Vr |
W7 | Vr | GND (SENSE) | GND (SENSE) |
W8 | GND (SENSE) | Vr | GND (SENSE) |
W9 | GND | GND (SENSE) | Vr |
SWITCH 61 | GND | GND | Vr |
SWITCH 62 | Vr | GND | GND |
SWITCH 63 | GND | Vr | GND |
Thus, during the first compare phase, switches 61-63 configure sense amplifiers 600, 603 and 606 to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the left charge trapping regions of the memory transistors in the first, fourth and seventh columns of array 200. This configuration is identified at the top of
Also during the first compare phase, sense amplifiers 602, 605 and 608 are configured to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the right charge trapping regions of the memory transistors in the second, fifth and eighth columns of array 200. This configuration is identified at the top of
The results of the first compare phase are latched into logic blocks LB1-LB6.
During the second compare phase, switches 61-63 configure sense amplifiers 601, 604 and 607 to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the left charge trapping regions of the memory transistors in the second, fifth and eighth columns of array 200. This configuration is identified at the top of
Also during the second compare phase, sense amplifiers 603, 608 and 609 are configured to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the right charge trapping regions of the memory transistors in the third, sixth and ninth columns of array 200. This configuration is identified at the top of
The results of the second compare phase are latched into logic blocks LB7-LB12.
During the third compare phase, switches 61-63 configure sense amplifiers 602, 605 and 608 to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the left charge trapping regions of the memory transistors in the third, sixth and ninth columns of array 200. This configuration is identified at the top of
Also during the third compare phase, sense amplifiers 601, 604 and 607 are configured to sense whether the comparand word on compare lines CL0-CL5 matches the contents of the right charge trapping regions of the memory transistors in the first, fourth and seventh columns of array 200. This configuration is identified at the top of
The results of the third compare phase are latched into logic blocks LB13-LB18. Logic blocks storing a logic low value identify matching values in NVCAM array 700, while logic blocks storing a logic high value identify non-matching values in NVCAM array 700.
A detailed example will now be given, to clarify the operation of the fourth embodiment. Memory transistors t00-t58 are generally designated as tij, where i is the row number and j is the column number in array 200.
In
Each memory transistor is referred to twice in
To compare a comparand word with the contents of NVCAM array 700, the comparand word is provided on compare lines CL0-CL5. More specifically, to provide logic "1" compare values at bit locations 0, 1 and 2, logic high values are applied to compare lines CL0, CL2 and CL4, respectively, and logic low values are applied to complementary compare lines CL1, CL3 and CL5, respectively. Similarly, to provide logic "0" compare values at bit locations 0, 1 and 2, logic low values are applied to compare lines CL0, CL2 and CL4, respectively, and logic high values are applied to complementary compare lines CL1, CL3 and CL5, respectively. To provide "Don't Care" compare values at bit locations 0, 1 and 2, logic low values are applied to compare lines CL0, CL2 and CL4, respectively, and logic low values are applied to complementary compare lines CL1, CL3 and CL5, respectively.
As described below, a comparand word having the bits "0X1" (from least significant bit to most significant bit) is compared with the contents of NVCAM array 700 as defined by
For example, during the first compare phase, the left charge trapping regions of memory transistors t00, t10, t20, t30, t40 and t50 (i.e., Word 1) are subject to a compare operation. Because only the C0# and C2 signals have logic high values, only transistors t10 and t40 have an effect on the compare operation. As defined above, the left charge trapping region of transistor t10 is programmed. As a result, transistor t10 does not conduct during the compare operation. As also defined above, the left charge trapping region of transistor t40 is erased. As a result, transistor t40 conducts during the compare operation. Sense amplifier 600 detects this current flow, and in response, provides a logic high signal to logic block LB1. This logic high signal is interpreted as a non-match condition for Word 1.
Also during the first compare phase, the left charge trapping regions of memory transistors t01, t11, t21, t31, t41 and t51 (i.e., Word 2) are subject to a compare operation. Because only the C0# and C2 signals have logic high values, only transistors t11 and t41 have an effect on the compare operation. As defined above, the right charge trapping region of transistor t11is programmed. As a result, transistor t11 does not conduct during the compare operation. As also defined above, the right charge trapping region of transistor t41 is programmed. As a result, transistor t41 does not conduct during the compare operation. Sense amplifier 602detects the lack of current flow, and in response, provides a logic low signal to logic block LB2. This logic low signal is interpreted as a match condition for Word 2. The comparison operations for Words 3-18 are carried out in the same manner as the comparison operations described above for Words 1 and 2. The comparison results for Words 1-6 are latched into logic blocks LB1-LB6, respectively, during the first compare phase. The comparison results for Words 7-12 are latched into logic blocks LB7-LB12, respectively, during the second compare phase. Finally, the comparison results for Words 13-18 are latched into logic blocks LB13-LB18, respectively, during the third compare phase.
A fifth embodiment of the present invention will now be described, again with reference to FIG. 7. The implementation of the fifth embodiment is very similar to the implementation of the fourth embodiment. The operation of the fifth embodiment is therefore described by pointing out the differences between the fifth embodiment and the fourth embodiment.
The purpose of the fifth embodiment is to allow the implementation of three separate NVCAM arrays, each of which has a single phase compare operation, with the restriction that only one array can be compared at a time. Thus, the first NVCAM array is defined to include the charge trapping regions accessed during the first compare phase of the fourth embodiment. The second NVCAM array is defined to include the charge trapping regions accessed during the second compare phase of the fourth embodiment. Finally, the third NVCAM array is defined to include the charge trapping regions accessed during the third compare phase of the fourth embodiment. Together, the three NVCAM arrays utilize all of the 2-bit non-volatile memory transistors in array 200.
In the fifth embodiment, the two-pole switches 61-63 change connections according to the CAM array being accessed, rather than according to the compare phase number. In addition, in the fifth embodiment, the three rows of logic blocks LB1-LB6, LB7-LB12 and LB13-LB18 latch match information corresponding to the first, second and third NVCAM arrays, respectively.
In the described embodiment, the three NVCAM arrays share compare lines CL0-CL5, and have three separate 6-bit output buses. Each NVCAM array is therefore a 6 word×3 bit array. For the more general case of three completely separate NVCAM arrays having three separate sets of compare lines, it is trivial to add multiplexers to form the shared compare line structure used by the fifth embodiment.
Referring now to
When the right charge trapping regions of the memory transistors in column N are programmed, programmed storage devices at columns M>N are prone to some amount of erase-disturb if their gates are held at 0 Volts. The condition of 0 Volts at the gate and a high voltage at the device terminals can cause tunneling of programming electrons. However, the duration of an erase operation is usually several orders of magnitude greater than the duration of a program operation, so that this problem is negligible, except for in very large arrays, which might need to be partitioned.
The entire array 200 can be erased at the same time. Alternately, array 200 can be erased by complete rows. During the erase operation, ground or a negative voltage is applied to the gates of the storage devices to be erased, and a high voltage (typically 10 V) is applied to all the word lines. This condition is maintained for a relatively long time (typically 1 second), until the programming electrons are removed from the floating gates/charge trapping regions.
Additional circuitry is required to perform the program and erase operations. One example of this circuitry is described in commonly owned, co-pending U.S. patent application Ser. No. 09/243,976 [TSL-016].
Program and erase verify operations can be done easily, because each memory transistor in each direction can be read separately, thanks to the orthogonal row and column addressing capability. For example, to verify that the left charge trapping region of memory transistor t43 has been erased, the following steps are performed.
First, compare line CL4 is held at a logic high voltage. As explained below, this logic high voltage is selected to be slightly lower than the voltage normally applied to the gate of memory transistor t43 during a read operation. Compare lines CL0-CL3 and CL5 are all held at the ground voltage.
The ground voltage is applied to word line W3, and the vr reference voltage is applied to word line W4. Word line W2 is held at 0 Volts, thereby avoiding disturb currents through memory transistor t42. The output of a sense amplifier (not shown) coupled to word line W3 is checked for a no-match condition, which indicates that the left charge trapping region of memory transistor t43 has been properly erased.
To verify that the left charge trapping region of memory transistor t43 has been properly programmed, a similar procedure is followed, except that the voltage of compare line C4 is held at a logic high voltage that is higher than the voltage that is normally applied to the gate of transistor t43 during a read operation. The output of the sense amplifier coupled to word line W3 is checked for a match condition, which indicates that the left charge trapping region of memory transistor t43 has been properly programmed.
Note that program and erase verify operations are performed in a similar manner for the other charge trapping regions of array 200. In addition, the program and erase verify operations described above can be easily expanded to perform the verification of full rows of memory transistors in parallel. The voltage applied to the compare line during the verification operations is selected to be higher or lower than the voltage normally used for a read operation to guarantee the required margins for the long-term retention of data in the memory transistor.
Although the invention has been described in connection with several embodiments, it is understood that this invention is not limited to the embodiments disclosed, but is capable of various modifications which would be apparent to a person skilled in the art. Thus, the invention is limited only by the following claims.
Patent | Priority | Assignee | Title |
11495298, | Sep 02 2021 | Macronix International Co., Ltd. | Three dimension memory device and ternary content addressable memory cell thereof |
11756620, | Sep 01 2021 | Macronix International Co., Ltd. | Content-addressable memory and analog content-addressable memory device |
12068030, | Jul 20 2021 | MACRONIX INTERNATIONAL CO , LTD | CAM cell, CAM device and operation method thereof, and method for searching and comparing data |
12159673, | Sep 01 2021 | Macronix International Co., Ltd. | Content-addressable memory and analog content-addressable memory device |
6788580, | Dec 21 2000 | Infineon Technologies LLC | Nonvolatile semiconductor storage device and data erasing method |
7133316, | Jun 02 2004 | Macronix International Co., Ltd. | Program/erase method for P-channel charge trapping memory device |
7411837, | Mar 05 2004 | Polaris Innovations Limited | Method for operating an electrical writable and erasable memory cell and a memory device for electrical memories |
7630253, | Apr 05 2006 | Infineon Technologies LLC | Flash memory programming and verification with reduced leakage current |
7965564, | Sep 18 2007 | GSI TECHNOLOGY INC | Processor arrays made of standard memory cells |
8031528, | Apr 05 2006 | Infineon Technologies LLC | Flash memory programming and verification with reduced leakage current |
8612619, | Mar 31 2006 | RPX Corporation | Method and apparatus for improved multicast streaming in wireless networks |
9390799, | Apr 30 2012 | Taiwan Semiconductor Manufacturing Company, Ltd. | Non-volatile memory cell devices and methods, having a storage cell with two sidewall bit cells |
Patent | Priority | Assignee | Title |
5808929, | Dec 05 1996 | Nonvolatile content addressable memory | |
5917743, | Oct 17 1997 | STMicroelectronics, Inc | Content-addressable memory (CAM) for a FLASH memory array |
6166938, | May 21 1999 | SanDisk Corporation | Data encoding for content addressable memories |
6256216, | May 18 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Cam array with minimum cell size |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 17 2000 | LAVI, YOAV | Tower Semiconductor LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011340 | /0080 | |
Dec 05 2000 | Tower Semiconductor Ltd. | (assignment on the face of the patent) | / | |||
Dec 28 2010 | Tower Semiconductor LTD | Elpida Memory, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025808 | /0718 | |
Apr 10 2012 | Elpida Memory, Inc | Apple Inc | SECURITY AGREEMENT | 028209 | /0477 | |
Jul 26 2013 | PS4 LUXCO S A R L | ELPIDA MEMORY INC | SECURITY AGREEMENT | 032414 | /0261 | |
Jul 26 2013 | Elpida Memory, Inc | PS4 LUXCO S A R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032899 | /0588 | |
Aug 29 2013 | PS4 LUXCO S A R L | PS5 LUXCO S A R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039818 | /0506 | |
Nov 12 2013 | PS5 LUXCO S A R L | LONGITUDE SEMICONDUCTOR S A R L | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 039793 | /0880 | |
Jan 14 2014 | Apple, Inc | Elpida Memory, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 032331 | /0637 | |
Jul 31 2018 | LONGITUDE SEMICONDUCTOR S A R L | Longitude Licensing Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 046865 | /0667 |
Date | Maintenance Fee Events |
Jun 15 2005 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 01 2009 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 06 2011 | ASPN: Payor Number Assigned. |
Apr 06 2011 | RMPN: Payer Number De-assigned. |
Mar 11 2013 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 15 2005 | 4 years fee payment window open |
Jul 15 2005 | 6 months grace period start (w surcharge) |
Jan 15 2006 | patent expiry (for year 4) |
Jan 15 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 15 2009 | 8 years fee payment window open |
Jul 15 2009 | 6 months grace period start (w surcharge) |
Jan 15 2010 | patent expiry (for year 8) |
Jan 15 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 15 2013 | 12 years fee payment window open |
Jul 15 2013 | 6 months grace period start (w surcharge) |
Jan 15 2014 | patent expiry (for year 12) |
Jan 15 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |