This invention incorporates by reference U.S. patent application Ser. No. 10/737,676, filed Dec. 15, 2003, and French application S.N. 03/10800, filed Sep. 15, 2003.
The present invention relates to integrated circuit memory architectures. More specifically, the invention relates to a new programming operation protocol and memory architecture for programmable memories allowing “intelligent programming.”
Data storage in a floating gate transistor is obtained by varying electrical charge that exists on the floating gate. To obtain a logical l value (erased state), electrons must be injected into the floating gate, which increases the threshold voltage of the floating gate transistor 32. To obtain a logical 0 value (written state), electrons must be extracted from the floating gate, which decreases the threshold voltage of the floating gate transistor 32. A mechanism referred to as Fowler Nordheim Tunneling is used for both erase and program operations on an EEPROM memory. This mechanism is very slow (in the millisecond range) and requires a high voltage source Vpp that is generated by a circuit within the EEPROM memory chip. The Vref line 40 is driven to Vpp during an erase operation and grounded during a write operation. The bit line 20 is left floating during an erase operation and connected to Vpp during a write operation.
Erasing a cell is obtained by applying a high voltage Vpp on the gate 36 of the floating gate transistor 32 (via word select device 11 and Vref line 40), and ground to the floating gate transistor's source 34 (by grounding source lines 35). To write the memory cell 30, Vpp must be applied to the drain of the floating gate transistor 32 (via bit line 20 and cell select transistor 31), the floating gate transistor's gate 36 must be grounded (via word select device 11 and Vref line 40), and the floating gate transistor's source 34 is left floating (by floating source lines 35).
If memory cells 30 share the same Vref line 40, multiple memory cells may be grouped into words and may be erased in parallel. Also, each bit (memory cell) may be written independently by driving its corresponding bit line 20 to Vpp.
Word programming is obtained in two steps. First the word is erased and all of the erased bits are set to a logic 1 value after erase. Secondly, all of the necessary bits in the word are written at the same time, changing all bits to a logic 0 value in order to program the targeted word data.
With reference to
The data retention characteristics of each memory cell 30 will depend on a capability of the memory cell 30 to reliably maintain voltage thresholds over time, due to an intrinsic floating gate charge loss. In addition, characteristics of a memory cell 30 may change after several erase and write cycles, resulting from a negative charge trapping phenomenon. These technical characteristics of the memory cell 30 make it difficult to guarantee an acceptable data retention capability.
Therefore, it is desirable to have a program window that is as wide as possible to compensate for characteristics of a programmable memory cell that may affect the integrity of data stored within a memory cell.
The present invention is a circuit to produce an automatically tuned programming pulse to compensate for a negative charge trapping phenomenon in the oxide of a floating gate transistor and to compensate for low supply voltage and temperature changes. The programming pulse is tuned according to programming conditions such as temperature and supply voltage. The memory is controlled as necessary to provide improved data reliability under a variety of conditions such as temperature and the number of times the floating gate transistor has been programmed. Using the tuned programming pulse results in better data retention capability even when using a part that has been repeatedly programmed. In addition, because the programming pulse is optimized, the power consumption is also optimized and the memory is stressed less. The present invention is also a method to program and verify a memory cell, using a read voltage that is different than a normal read voltage, after either an erase operation or write operation, and automatically adjusting the parameters of the programming pulse.
The present invention is a self-adaptive programming operation that tunes the programming pulse delay time used in an erase or write operation, based on a read operation and comparison to an expected logic value for the memory cell 30. Erase and write delays are tuned automatically to maintain an acceptable program window under a variety of conditions. Increasing the programming pulse delay on a cycled part is a method used to recover an acceptable program window and to recover desired memory cell retention characteristics. For example, another programming pulse is applied after a comparison failure, when charges trapped in the oxide of the floating gate transistor 32 make the programming mechanism less efficient. Endurance, data retention, and power consumption characteristics may also be improved by the present invention.
In an exemplary embodiment of the present invention, an automatic tuning of the number of programming pulses increases to compensate for an erase operation or write operation failure of any memory cell within a programmable EEPROM memory. With reference to
In the exemplary embodiment, sequencer 150 is a state machine used to implement an embodiment of a programming algorithm (details of the programming algorithm are described in detail with respect to
The content of at least one programmed memory cell 30 is verified automatically (see further details below) and a programming operation is completed when a verification of a programmed memory cell 30 is successful. A read margin mode test is used to verify the quality of a programming operation. A margin voltage reference is used in a read margin mode test. The voltage reference Vref is increased when reading OFF cells and decreased when reading ON cells and comparison to a normal read voltage reference. For example, a margin of approximately ±0.5 volts is used. Using a margin voltage reference during a read operation guarantees that the memory cell stays OFF when memory cell 30 is read with Vref+0.5V on its gate, and the memory cell stays ON when memory cell 30 is read with Vref−0.5V on its gate. During a verification operation, a word in the memory core (array) 101 is read using a margin mode by applying an internally generated Vref value by the margin Vref generator 154.
A programming operation that programs a logic value in at least one memory cell 30 is divided in three phases or operations: load, erase, and write.
Programming current for a single cell is very small, making programming several bits in parallel possible. To improve the programming speed of EEPROM memory, it is possible to erase or write several words in the same row or multiple words in a page at the same time. However, the data to be programmed must be loaded into a dedicated buffer (latch) before starting a parallel write operation. A column latch 110 buffer system is composed of one column latch 110 per bit line 20 and one column latch per Vref line 40. In an exemplary embodiment, there is a column latch 110 for each bit line 20 and a column latch 110 for each Vref line 40. A memory core 101 having a column latch 110 coupled to each bit line provides an erasure operation by word (one or more bits), and a selective write operation (by bit or by word).
The column latch 110 provides two functions. The column latch stores data and also brings Vpp to a corresponding bit line 20. Data to be programmed into a memory cell 30 is loaded into at least one column latch 110. A group of 2n bit latches and one Vref latch (or byte flag) store the data to be programmed on a targeted row. During a load operation, the Yaddress bus AddYld 171 is decoded by the Ydl-decoder 120. A data value is loaded into at least one word of column latches 110 coupled to the bit lines 20. A logical value (flag signal) is also stored in an associated Vref column latch. Words that will be used to program memory cells 30 are selected by using the flag signal loaded into the associated Vref column latches 110. Word lines are selected by an Xaddress on Xdecoder input 131, which is decoded by an Xdecoder 130. When all of the data words have been loaded, erase voltages are applied on selected words.
The latch circuit may be incorporated into the column latch 110 block shown in
During the load period, an input data on input Din 201 is input to the column latches 110 using the Yld decoder 120. A load control signal is applied to a gate 230 of the state latch pass transistor 220 is set to a logic 1 value in order to latch a data input value via Din 201 into at least one state latch 212. The loaded data is a logic 1 value to program a memory cell 30 that is OFF, and a logic 0 value to program a memory cell 30 that is ON. In addition, a logic 1 value is loaded into a Vref latch corresponding to each word to be programmed. The loading period ends when all the words at each desired address have been loaded one by one into each latch that corresponds to a memory cell 30 targeted for a programming operation. Address counter 173 is used to count or increment a memory core address as part of a verify operation. AddYint 172 may start from address location 1, and is decoded by both the load and read decoders 120, 140.
Next after completing a load operation, memory cells 30 are erased as 2n bit words in parallel. In the erasure stage, electrons are injected into the floating gate structure by holding the gates of floating gate transistor 32 (in
The required erase voltage Vpp is applied as a pulse having an applied duration. The applied duration is referred to as an erase time delay Terase. Application of the Vpp voltage pulse causes electrons to accelerate to the selected floating gates 320. The increase in electrons that are held in the floating gate increases the cell's voltage threshold Vth. The selected words are then erased and each selected bit is set to a logic value of 1. After the erase operation is completed, an erase verification operation is executed 300 as illustrated by the exemplary algorithm in
After an erase operation is completed, a write operation may be executed. During a write operation, the X decoder 130 (via word select device 11) applies Vpp on the word line(s) 10 selected by AddX on Xdecoder input 131. As shown in
When the write operation is completed, the write operation is then automatically verified. The written memory cell 30 is read and its value is compared with an expected data value stored in a corresponding latch.
A verification operation is performed after an erase operation or after a write operation has been performed. A verification operation reads at least one memory cell 30 and compares the contents of the memory cell 30 with an expected value. For an erase operation, the expected value of each memory cell is a logical 1 value. An erased word logic value should be equal to a group of 2n bits, each bit having a logical 1 value. For example, an eight bit word should have a hex value of FF after an erase operation. Erased words, for example, will be compared to the value FF. For a write operation, an expected value is the logical value that is stored in the column latch 110, 210 associated with each memory cell 30. Both the logical value that is stored in at least one column latch 110, 210 and the value that is stored in at least one memory cell 30 are read. When verifying a write operation, the logic value of the memory cell 30 is compared to the logic value that is stored in the corresponding column latch 110, 210.
In a memory cell 30 read operation, a reference voltage Vref is applied to the gate of floating gate transistor 32. The reference voltage may be a normal reference voltage or a margin reference voltage. The drain current of floating gate transistor 32, measured by sense circuits 105 (in
In an exemplary embodiment of a read operation, a reference voltage Vref is applied via word select device 11 to the gate 36 of each selected floating gate transistor 32. Additionally, voltage Vdd is applied to the gate of select transistor 31. A floating gate transistor 32 is selected by an activated word line 10 and by activated bit line 20. The bit lines 20 are connected to sense circuits 105 through the bit line select circuit 104. In an alternate embodiment for low voltage applications, twice the Vdd value is applied to the gate of select transistor 31. A voltage under 1 volt is applied to the drain of the word select transistor 11.
A verification process is executed when a memory word is read and compared to an expected logic value. For example when verifying whether a memory cell 30 has been properly erased, the expected word value is, for example, FF. In an exemplary embodiment, the comparison is performed via a dedicated comparator 103. The verification process is automatically executed after a word or plurality of words in the memory array have been erased or written. Comparator 103 (shown in
During a verification operation performed during both the erase and write operations, a cell is read using a dedicated margin mode operation and compared to an expected logic 1 value for erased cells or alternatively, the data stored in column latches 110 for written cells. The dedicated read margin mode ensures that memory cells 30 are programmed with enough margin to maintain a set logic value over time regardless of the floating gate transistor 32 that is susceptible to natural charge variations. To verify the quality of a programming operation, Vref is increased when reading OFF cells and decreased when reading ON cells. During the margin mode read operation, reference generator 154, as shown in
A verification operation may be performed using more than one method. A margin mode read operation verifies that the voltage threshold Vth of each cell is high enough to overcome any floating gate variations that are related to environmental conditions (for example, temperature) or to an undesired storage of electrons (for example, trapped oxide charges.
In
In one embodiment, speed is optimized in the verification operation. If the comparison result confirms that the threshold voltage Vth for a verified cell or word is correct, Addyint is incremented and the next erase and verification operation is performed on the next word 330. If the threshold voltage Vth for the verified cell or word is not correct, at least one cell is not well erased. When the verify procedure fails, the erase pulse is then applied 332 again to of all the words to be programmed—even to those that successfully passed a previous verify operation. Additional erase and verify 330 operations are performed until all of the cells pass verification or until a maximum number of erase pulses have been reached. When the previously failed cells subsequently pass verification, an erase time is optimized. If the erase time maximum is reached by the verify timer 160 (in
When the erase time has been optimized, the high voltage condition for a memory cell 30 erase has been applied to all the words to be programmed. Although this verification procedure quickly optimizes the erase time, words that have been previously erased will be erased again each time the program increments the erase time counter. The result may unnecessarily over-stress previously erased cells.
Referring again to
If a word fails a verification operation, the tag latch 212 is set to indicate a verification failure. The verification operation proceeds until all the words in memory have been verified. During a verification operation, any properly erased word will not be erased again during an application of a subsequent erase pulse 350. An erase pulse 350 will be applied to all the words in the memory core that have failed verification if at least one Vref column latch data is set, meaning that at least one word is not correctly erased. When a new erase pulse is applied 350, Vpp will not be applied to properly erased words because the corresponding Vref column latches have been set during the verification operation. The tag latch 224 state is maintained and will be used during the verification procedure of a subsequent write phase.
As illustrated in
If the latch and memory cells do not match, the comparison stops 431, indicating that at least one cell has not been correctly written. If a memory cell 30 fails the verification operation and a maximum number of verify iterations has been reached, the verify operation stops 431 and sequencer 150 (shown in
If the contents of the latch and memory cell comparison match, the address counter 173 (in
The proposed invention is the first architecture to provide an intelligent and automatic, self-adaptive EEPROM memory cell programming operation that performs a parallel-write operation. Using specific column latches, dedicated timers, and an internally controlled verify procedure, it is possible to reduce the number of pulses and time required to complete erase and write operations. Using this method, a verification operation adapts to programming conditions such as power supply and temperature variations, individual memory cell programming variations due to cell distributions across the array, and memory cell degradation after repeated erase and write cycles. In addition, the programming power consumption may be optimized, while ensuring reliable program operations over a variety of program conditions. Finally, if a memory cell programming issue occurs, it is detected and a dedicated memory program failure flag is set.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Those of skill in the art will recognize that the invention can be practiced with modification and alteration within the spirit and scope of the appended claims. Embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic described. Repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, although it may. Many other embodiments will be apparent to those of skill in the art upon reading an understanding the above description. For example, the present invention would apply to types programmable memory, other than an exemplary EEPROM. The description is thus to be regarded as illustrative instead of limiting. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which said claims are entitled.
Number | Date | Country | Kind |
---|---|---|---|
04 08930 | Aug 2004 | FR | national |
Number | Name | Date | Kind |
---|---|---|---|
5386388 | Atwood | Jan 1995 | A |
5467309 | Tanaka | Nov 1995 | A |
5537358 | Fong | Jul 1996 | A |
5627784 | Roohparvar | May 1997 | A |
5751637 | Chen | May 1998 | A |
6032248 | Curry | Feb 2000 | A |
6166962 | Chen et al. | Dec 2000 | A |
6191976 | Smayling | Feb 2001 | B1 |
6198662 | Chen et al. | Mar 2001 | B1 |
6219281 | Chen et al. | Apr 2001 | B1 |
6222768 | Hollmer et al. | Apr 2001 | B1 |
6249459 | Chen et al. | Jun 2001 | B1 |
6292394 | Cohen | Sep 2001 | B1 |
6353556 | Chen et al. | Mar 2002 | B1 |
6418054 | Hollmer | Jul 2002 | B1 |
6483751 | Chen et al. | Nov 2002 | B1 |
6834323 | Dover et al. | Dec 2004 | B1 |
20020031012 | Chen et al. | Mar 2002 | A1 |
Number | Date | Country |
---|---|---|
06068686 | Mar 1994 | JP |
Number | Date | Country | |
---|---|---|---|
20060039207 A1 | Feb 2006 | US |