1. Field of the Invention
This disclosure relates to non-volatile memory.
2. Description of the Related Art
Semiconductor memory has become increasingly popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Electrically Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories. With flash memory, also a type of EEPROM, the contents of the whole memory array, or of a portion of the memory, can be erased in one step, in contrast to the traditional, full-featured EEPROM.
Both traditional EEPROM and flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate. The floating gate is positioned between the source and drain regions. A control gate is provided over and insulated from the floating gate. The threshold voltage (VTH) of the transistor thus formed is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate.
Some EEPROM and flash memory devices have a floating gate that is used to store two ranges of charges and, therefore, the memory element can be programmed/erased between two states, e.g., an erased state and a programmed state. Such a flash memory device is sometimes referred to as a binary flash memory device because each memory element can store one bit of data.
A multi-state (also called multi-level) flash memory device is implemented by identifying multiple distinct allowed/valid programmed threshold voltage ranges. Each distinct threshold voltage range corresponds to a predetermined value for the set of data bits encoded in the memory device. For example, each memory element can store two bits of data when the element can be placed in one of four discrete charge bands corresponding to four distinct threshold voltage ranges.
Typically, a program voltage VPGM applied to the control gate during a program operation is applied as a series of pulses that increase in magnitude over time. In one possible approach, the magnitude of the pulses is increased with each successive pulse by a predetermined step size, e.g., 0.2-0.4 V. VPGM can be applied to the control gates of flash memory elements. In the periods between the program pulses, verify operations are carried out. That is, the programming level of each element of a group of elements being programmed in parallel is read between successive programming pulses to determine whether it is equal to or greater than a verify level to which the element is being programmed. For arrays of multi-state flash memory elements, a verification step may be performed for each state of an element to determine whether the element has reached its data-associated verify level. For example, a multi-state memory element capable of storing data in four states may need to perform verify operations for three compare points.
U.S. Pat. No. 7,073,103, entitled “Smart Verify For Multi-State Memories,” incorporated herein by reference in its entirety, describes a process for minimizing the number of sequential verify operations for each program/verify/lockout step of a write sequence. Initially, only the lowest state of the multi-state range to which selected storage elements are programmed is checked during the verify phase. Once the first storage state is reached by one or more of the selected elements, the next state in a sequence of multi-states is added to the verify process. This next state can either be added immediately upon the fastest elements reaching the preceding state in the sequence, or after a delay of several program pulses. The adding of states to the set being checked in the verify phase continues through the rest of the set of multi-states in sequence, until the highest state has been added. Additionally, lower states can be removed from the verify set as all of the selected storage elements bound for these levels verify successfully to those target values and are locked out from further programming. Note that this technique may require that more than one state be verified following each programming pulse.
While methods for improving the verify technique are known, a need still exists for further improvements which are applicable to different programming schemes.
Methods and devices for simultaneously verifying or reading multiple states in non-volatile storage are disclosed. Technology disclosed herein reduces the time for non-volatile storage operations such as program verify, and read in non-volatile.
Methods and devices for efficiently reducing or eliminating cross-coupling effects in non-volatile storage are disclosed. Technology disclosed herein reduces the time it takes to program or read while reducing or eliminating cross-coupling effects.
Methods and devices for efficiently performing reads at a number of voltages to search for the threshold voltage of a memory cell are disclosed. Technology disclosed herein reduces the time is takes to determine “soft bits.”
In one embodiment, memory cells on different NAND strings that are read at the same time are tested for different threshold voltage levels. For example, a memory cell on one NAND string is tested to determine whether its threshold voltage is above a first voltage level, whereas a memory cell on another NAND string is tested to determine whether its threshold voltage is above a second voltage level. As a specific example, one memory cell is tested to determine if its threshold voltage is above the voltage level associated with one data state, whereas, the other memory cell is tested to determine if its threshold voltage is above the voltage level associated with another data state. Therefore, in a memory array that programs memory cells to multiple bits per memory cell, more than one data state can be tested at a time.
In one embodiment, the technique is used during a verify operation associated with programming memory cells to multiple data states. By verifying multiple data states at a time, the programming sequence is sped up. For example, one or more programming pulses are applied to the memory cells with the goal of eventually programming some memory cells to one state and others to a different state (in all there might be 4, 5, 6, 7, 8, 9, . . . , 16, or more states). Then, a verify operation is performed to determine whether the memory cells were programmed to their respective intended states as a result of the one or more programming pulses. By verifying multiple states with the same verify operation, time may be saved. In some embodiments, the same voltage is applied to the gates of the memory cells that are being verified for different threshold voltages.
In one embodiment, memory cells are tested for different threshold voltages by applying different gate-to-source voltages to memory cells being tested for different threshold voltages. One embodiment involves biasing a common source line of a NAND string to a first voltage and causing one voltage to a first set of bit lines and a different voltage to a second set of bit lines. The first set of bit lines are associated with NAND strings having a memory cell being programmed to a first state and the second set of bit lines are associated with NAND strings having a memory cell being programmed to a second state. However, the same voltage is applied to the gates of the memory cells being programmed. The bit line voltages may be lower than the common source line such that, in effect, the side of the memory cell nearest the source line functions as the drain and the side of the memory cell nearest its bit line functions as the source. Therefore, the memory cell's current flows from the source line to its bit line. This technique may therefore be referred to as “reverse sensing” in that the current flows in the opposite direction as is commonly done to sense memory cells on a NAND string.
In one embodiment, memory cells are tested for different threshold voltages by applying different drain to source voltages to the memory cells. One embodiment involves biasing a common source line of a NAND string to a first voltage and causing one voltage to a first set of bit lines and a different voltage to a second set of bit lines. The first set of bit lines are associated with NAND strings having a memory cell being programmed to a first state and the second set of bit lines are associated with NAND strings having a memory cell being programmed to a second state. However, the same voltage is applied to the gates of the memory cells being programmed. The different bit line voltages cause different drain-to-source voltages for memory cells being tested for different threshold voltages. The drain voltage of at least some of the memory cells is sufficiently high to cause drain induced barrier lowering (DIBL), which alters the threshold voltage of the memory cell. For example, the goal may be to verify that the threshold voltage of a first memory cell is at least 3.0V and the threshold voltage of a second memory cell is at least 3.5V. In fact, the first memory cell may have a threshold voltage of 3.0V and the second memory cell may have a threshold voltage of 3.5V without any DIBL effect. By creating sufficient DIBL to lower the threshold voltage of the second memory cell from 3.5V to 3.0V, the threshold voltage of both memory cells can be tested using the same gate to source voltage. As an example, under the foregoing conditions, a Vgs of 3.0V may cause both memory cells to turn on, thereby verifying memory cells having different threshold voltages at the same time. Note this means that the same voltage is applied to the gates of the memory cells that are being verified for different threshold voltages.
In one embodiment, a different amount of compensation for cross-coupling affects is applied to memory cells on different NAND strings that are read at the same time. The compensation may be based on the threshold voltage of one or more neighbor memory cells. For example, a memory cell on one NAND string receives a first amount of cross-coupling compensation, whereas a memory cell on another NAND string that is being read at the same time receives a second amount of cross-coupling compensation. As a specific example, the different NAND strings have a different amount of voltage applied across them to achieve a different amount of cross-coupling compensation. In one embodiment, different memory cells have a different Vgs during read to achieve a different amount of cross-coupling compensation. In one embodiment, different memory cells have a different Vds during read to achieve a different amount of cross-coupling compensation.
In one embodiment, a different amount of compensation for cross-coupling affects is applied to memory cells on different NAND strings during the verify stage of programming. The compensation may be based on the intended state to which a neighbor memory cell is to be programmed at a later time. For example, a memory cell on one NAND string receives a first amount of cross-coupling compensation, whereas a memory cell on another NAND string that is being verified at the same time receives a second amount of cross-coupling compensation. As a specific example, the different NAND strings have a different amount of voltage applied across them to achieve a different amount of cross-coupling compensation. In one embodiment, different memory cells have a different Vgs during verify to achieve a different amount of cross-coupling compensation. In one embodiment, different memory cells have a different Vds during verify to achieve a different amount of cross-coupling compensation.
In one embodiment, a search for the threshold voltage is performed efficiently by performing reads at different threshold voltages at the same time. For example, a read is performed at the center of a window that covers a range of threshold voltages of interest. This read may be performed on many memory cells on a selected word line. Then, based on the outcome of the read, another read is performed at multiple threshold voltages. For example, if a given memory cell's threshold voltage is determined to be higher than the center of the window, then that cell is read at the midpoint between the center and the top of the window. On the other hand, if a given memory cell's threshold voltage is determined to be lower than the center of the window, then that cell is read at the midpoint between the bottom of the window and the center. In effect, a binary search is performed for the threshold voltage. In one embodiment, different NAND strings have a different amount of voltage applied across them to read for different threshold voltages at the same time to speed up the search. In one embodiment, different memory cells have a different Vgs to read for different threshold voltages at the same time to speed up the search. In one embodiment, different memory cells have a different Vds to read for different threshold voltages at the same time to speed up the search.
In one embodiment, soft bits are efficiently determined by performing reads at different threshold voltages at the same time. Determining soft bits allows the threshold voltage of the memory cells to be determined to a finer level of granularity. As one example, if there are four data states, initially three separate reads may be performed with each read being at a point between two adjacent data states. These initial reads do not determine the soft bits, but instead may make an initial assignment of the threshold voltage of each memory cell to one data state. Then, two reads may be performed together at offsets from each of the first reads. For example, one read is at V−Δ and the other at V+Δ during the same read operation. The data from these reads may be used to determine “soft bits,” which may be provided to an ECC correction algorithm. In one embodiment, different NAND strings have a different amount of voltage applied across them to read for V−Δ and V+Δ at the same time. In one embodiment, different memory cells have a different Vgs to read for V−Δ and V+Δ at the same time. In one embodiment, different memory cells have a different Vds to read for read for V−Δ and V+Δ at the same time.
One example of a memory system suitable for implementing embodiments uses a NAND flash memory architecture, which includes connecting multiple transistors in series between two select gates. The transistors connected in series and the select gates are referred to as a NAND string.
For example, NAND string 320 includes select gates 322 and 327, and storage elements 323-326, NAND string 340 includes select gates 342 and 347, and storage elements 343-346, NAND string 360 includes select gates 362 and 367, and storage elements 363-366. Each NAND string is connected to the source line by its select gates (e.g., select gates 327, 347 or 367). A selection line SGS is used to control the source side select gates. The various NAND strings 320, 340 and 360 are connected to respective bit lines 321, 341 and 361, by select transistors in the select gates 322, 342, 362, and so forth. These select transistors are controlled by a drain select line SGD. In other embodiments, the select lines do not necessarily need to be in common among the NAND strings; that is, different select lines can be provided for different NAND strings. WL3 is connected to the control gates for storage elements 323, 343 and 363. WL2 is connected to the control gates for storage elements 324, 344 and 364. WL1 is connected to the control gates for storage elements 325, 345 and 365. WL0 is connected to the control gates for storage elements 326, 346 and 366. As can be seen, each bit line and the respective NAND string comprise the columns of the array or set of storage elements. The word lines (WL3, WL2, WL1 and WL0) comprise the rows of the array or set. Each word line connects the control gates of each storage element in the row. Or, the control gates may be provided by the word lines themselves. For example, WL2 provides the control gates for storage elements 324, 344 and 364. In practice, there can be thousands of storage elements on a word line.
In some embodiments, the voltage applied to the bit line is greater than the voltage applied to source when reading a memory cell on the NAND string. In some embodiments, the voltage applied to the bit line is less than the voltage applied to source when reading a memory cell on the NAND string. For consistency of discussion, the source line will always be referred to as a source line regardless of whether the voltage applied to it is less than or greater than the voltage applied to the bit line.
Each storage element can store data. For example, when storing one bit of digital data, the range of possible threshold voltages (VTH) of the storage element is divided into two ranges which are assigned logical data “1” and “0.” In one example of a NAND type flash memory, the VTH is negative after the storage element is erased, and defined as logic “1.” The VTH after a program operation is positive and defined as logic “0.” When the VTH is negative and a read is attempted, the storage element will turn on to indicate logic “1” is being stored. When the VTH is positive and a read operation is attempted, the storage element will not turn on, which indicates that logic “0” is stored. A storage element can also store multiple levels of information, for example, multiple bits of digital data. In this case, the range of VTH value is divided into the number of levels of data. For example, if four levels of information are stored, there will be four VTH ranges assigned to the data values “11”, “10”, “01”, and “00.” In one example of a NAND type memory, the VTH after an erase operation is negative and defined as “11”. Positive VTH values are used for the states of “10”, “01”, and “00.” The specific relationship between the data programmed into the storage element and the threshold voltage ranges of the storage element depends upon the data encoding scheme adopted for the storage elements.
When programming a flash storage element, a program voltage is applied to the control gate of the storage element, and the bit line associated with the storage element is grounded. Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the VTH of the storage element is raised. To apply the program voltage to the control gate of the storage element being programmed, that program voltage is applied on the appropriate word line. As discussed above, one storage element in each of the NAND strings share the same word line. For example, when programming storage element 324 of
In one approach, the substrate 440 employs a triple-well technology which includes a p-well region 432 within an n-well region 434, which in turn is within a p-type substrate region 436. The NAND string and its non-volatile storage elements can be formed, at least in part, on the p-well region. A source supply line 404 with a potential of VSOURCE is provided in addition to a bit line 426 with a potential of VBL. Voltages, such as body bias voltages, can also be applied to the p-well region 432 via a terminal 402 and/or to the n-well region 434 via a terminal 403. During a read or verify operation, a control gate voltage VCGRV is provided on a selected word line, in this example, WL4, which is associated with storage element 416. Further, recall that the control gate of a storage element may be provided as a portion of the word line. For example, WL0, WL1, WL2, WL3, WL4, WL5, WL6 and WL7 can extend via the control gates of storage elements 408, 410, 412, 414, 416, 418, 420 and 422, respectively. A pass voltage, VREAD is applied to the remaining word lines associated with NAND string 400. VSGS and VSGD are applied to the select gates 406 and 424, respectively.
Note that the direction current flow along the NAND string may depend on the relative magnitudes of VSOURCE to VBL. For example, if VBL is greater than VSOURCE, then the current may flow from the bit line to the source. In such an example, source/drain region 430 may serve as the drain of memory cell 408 and as the source of memory cell 410. However, if VBL is less than VSOURCE, then the current may flow from the source line to the bit line. In such an example, source/drain region 430 may serve as the source of memory cell 408 and as the drain of memory cell 410. Thus, whether a source/drain region 430 functions as the source or as the drain of a given memory cell may depend on the relative magnitudes of VSOURCE to VBL. As previously mentioned, the source line will be referred to herein as a source line regardless of whether VSOURCE is less than or greater than VBL. Moreover, the voltage applied to the source line will be referred to herein as VSOURCE regardless of whether VSOURCE is less than or greater than VBL.
Control circuitry 220 cooperates with the read/write circuits 230A and 230B to perform memory operations on the memory array 200. The control circuitry 220 includes a state machine 222, an on-chip address decoder 224 and a power control module 226. The state machine 222 provides chip-level control of memory operations. The on-chip address decoder 224 provides an address interface to convert between the address that is used by the host or a memory controller to the hardware address used by the decoders 240A, 240B, 242A, and 242B. The power control module 226 controls the power and voltages supplied to the word lines and bit lines during memory operations. In one embodiment, power control module 226 includes one or more charge pumps that can create voltages larger than the supply voltage.
In one embodiment, one or any combination of control circuitry 220, power control circuit 226, decoder circuit 224, state machine circuit 222, decoder circuit 242A, decoder circuit 242B, decoder circuit 240A, decoder circuit 240B, read/write circuits 230A, read/write circuits 230B, and/or controller 244 can be referred to as one or more managing circuits.
In another embodiment, the bit lines are divided into odd bit lines and even bit lines. In an odd/even bit line architecture, memory cells along a common word line and connected to the odd bit lines are programmed at one time, while memory cells along a common word line and connected to even bit lines are programmed at another time.
Sense module 480 comprises sense circuitry 470 that determines whether a conduction current in a connected bit line is above or below a predetermined threshold level. In some embodiments, sense module 480 includes a circuit commonly referred to as a sense amplifier. Sense module 480 also includes a bit line latch 482 that is used to set a voltage condition on the connected bit line. For example, a predetermined state latched in bit line latch 482 will result in the connected bit line being pulled to a state designating program inhibit (e.g., Vdd).
Common portion 490 comprises a processor 492, a set of data latches 494 and an I/O Interface 496 coupled between the set of data latches 494 and data bus 471. Processor 492 performs computations. For example, one of its functions is to determine the data stored in the sensed memory cell and store the determined data in the set of data latches. The set of data latches 494 is used to store data bits determined by processor 492 during a read operation. It is also used to store data bits imported from the data bus 471 during a program operation. The imported data bits represent write data meant to be programmed into the memory. I/O interface 496 provides an interface between data latches 494 and the data bus 471.
During read or sensing, the operation of the system is under the control of state machine 222 that controls the supply of different control gate voltages to the addressed cell. As it steps through the various predefined control gate voltages corresponding to the various memory states supported by the memory, the sense module 480 may trip at one of these voltages and an output will be provided from sense module 480 to processor 492 via bus 472. At that point, processor 492 determines the resultant memory state by consideration of the tripping event(s) of the sense module and the information about the applied control gate voltage from the state machine via input lines 493. It then computes a binary encoding for the memory state and stores the resultant data bits into data latches 494. In another embodiment of the core portion, bit line latch 482 serves double duty, both as a latch for latching the output of the sense module 480 and also as a bit line latch as described above.
It is anticipated that some implementations will include multiple processors 492. In one embodiment, each processor 492 will include an output line (not depicted in
During program or verify, the data to be programmed is stored in the set of data latches 494 from the data bus 471. The program operation, under the control of the state machine, comprises a series of programming voltage pulses (with increasing magnitudes) applied to the control gates of the addressed memory cells. Each programming pulse may be followed by a verify process to determine if the memory cell has been programmed to the desired state. Processor 492 monitors the verified memory state relative to the desired memory state. When the two are in agreement, processor 492 may set the bit line latch 482 so as to cause the bit line to be pulled to a state designating program inhibit. This inhibits the cell coupled to the bit line from further programming even if it is subjected to programming pulses on its control gate. In other embodiments the processor initially loads the bit line latch 482 and the sense circuitry sets it to an inhibit value during the verify process.
Data latch stack 494 contains a stack of data latches corresponding to the sense module. In one embodiment, there are 3-5 (or another number) data latches per sense module 480. In one embodiment, the latches are each one bit. In some implementations (but not required), the data latches are implemented as a shift register so that the parallel data stored therein is converted to serial data for data bus 471, and vice versa. In one embodiment, all the data latches corresponding to the read/write block of m memory cells can be linked together to form a block shift register so that a block of data can be input or output by serial transfer. In particular, the bank of read/write modules is adapted so that each of its set of data latches will shift data in to or out of the data bus in sequence as if they are part of a shift register for the entire read/write block.
Additional information about the read operations and sense amplifiers can be found in (1) U.S. Pat. No. 7,196,931, “Non-Volatile Memory And Method With Reduced Source Line Bias Errors,”; (2) U.S. Pat. No. 7,023,736, “Non-Volatile Memory And Method with Improved Sensing,”; (3) U.S. Patent Application Pub. No. 2005/0169082; (4) U.S. Pat. No. 7,196,928, “Compensating for Coupling During Read Operations of Non-Volatile Memory,” and (5) United States Patent Application Pub. No. 2006/0158947, “Reference Sense Amplifier For Non-Volatile Memory,” published on Jul. 20, 2006. All five of the immediately above-listed patent documents are incorporated herein by reference in their entirety.
At the end of a successful programming process (with verification), the threshold voltages of the memory cells should be within one or more distributions of threshold voltages for programmed memory cells or within a distribution of threshold voltages for erased memory cells, as appropriate.
Read reference voltages, Vra, Vrb and Vrc, are also provided for reading data from storage elements. By testing whether the threshold voltage of a given storage element is above or below Vra, Vrb and Vrc, the system can determine the state, e.g., programming condition, the storage element is in.
Further, verify reference voltages, Vva, Vvb, and Vvc are provided. When programming storage elements to the A-state, B-state or C-state, the system will test whether those storage elements have a threshold voltage greater than or equal to Vva, Vvb or Vvc, respectively. In one embodiment, “verify low” reference voltages, Vval, Vvbl, and Vvcl are provided. Similar “verify low” reference voltages could also be used in embodiments with a different number of states.
In full sequence programming, storage elements can be programmed from the Erased-state directly to any of the programmed states A, B or C. For example, a population of storage elements to be programmed may first be erased so that all storage elements in the population are in the Erased-state. A series of program pulses such as depicted in
One example of a slow programming mode uses low (offset) and high (target) verify levels for one or more data states. For example, VvaL and Vva are offset and target verify levels, respectively, for the A-state, and VvbL and Vvb are offset and target verify levels, respectively, for the B-state. During programming, when the threshold voltage of a storage element which is being programmed to the A-state as a target state (e.g., an A-state storage element) exceeds VvaL, its programming speed is slowed, such as by raising Vbl to a level, e.g., 0.6-0.8 V, which is between a nominal program or non-inhibit level, e.g., 0 V and a full inhibit level, e.g., 2-3 V. This provides greater accuracy by avoiding large step increases in threshold voltage. When the threshold voltage reaches Vva, the storage element is locked out from further programming. Similarly, when the threshold voltage of a B-state storage element exceeds VvbL, its programming speed is slowed, and when the threshold voltage reaches Vvb, the storage element is locked out from further programming. In one approach, a slow programming mode is not used for the highest state since some overshoot is typically acceptable. Instead, the slow programming mode can be used for the programmed states, above the erased state, and below the highest state.
Moreover, in the example programming techniques discussed, the threshold voltage of a storage element is raised as it is programmed to a target data state. However, programming techniques can be used in which the threshold voltage of a storage element is lowered as it is programmed to a target data state. Programming techniques which measure storage element current can be used as well. The concepts herein can be adapted to different programming techniques.
In one embodiment, different voltages are applied between the gate and source of memory cells while reading or verifying memory cells. For example, in order to verify different threshold voltages during the same verify operation different voltages are applied between the gate and source of memory cells. As another example, in order to apply different amounts of compensation for cross-coupling effects different voltages are applied between the gate and source of memory cells. In one embodiment, a memory cell on one NAND string is tested to determine if its threshold voltage is at least at Vva at the same time that a memory cell on another NAND string is tested to determine if its threshold voltage is at least at Vvb. At this same time, a third memory cell on a third NAND string may be tested to determine whether its threshold voltage is above Vvc.
Applying Different Conditions to Different Selected Memory Cells
Switches S2 and S5 may be closed such that VD−VS appears across one string. Alternatively, switches 51 and S6 may be closed such that (VD−Δ)−(VS−Δ) or VD−VS appears across that string. Therefore, the Vds of the selected memory cell will be about the same with either switch configuration. However, Vgs will be Vcgry−VD for one and Vcgry−VD+Δ for the other. Therefore, Vgs can be altered without altering Vds. Switches S3, S4, S7, and S8 can be used in a similar manner for the other string of memory cells. Therefore, a different Vgs can be applied to the strings while applying the same Vcgry to the selected word line. Consequently, two different threshold voltages can be tested for while applying the same Vcgry to the selected word line.
The NAND strings are electrically connected at one end by a common source line. At the other end, each NAND string is electrically connected to a separate bit line. The word lines that electrically connect gates of a row of memory cells are not shown so as to not obscure the diagram. The memory cells that are associated with the selected word line are selected for reading or verifying. That is, each of these memory cells is to have its threshold voltage compared to some reference voltage during a verify (or read) operation. Different memory cells may have their threshold voltages compared to at least two different reference voltages. For example, referring briefly to
Referring again to
One group of memory cells have their bit lines biased to Vd, whereas another group of memory cell have their bit lines biased to Vd+Δ. For example, memory cells that are being tested for one threshold voltage have their bit lines biased to Vd, whereas memory cells that are being tested for a different threshold voltage have their bit lines biased to Vd+Δ. Note that in this example, each memory cell on the selected word line experiences the same gate to source voltage. That is, all selected memory cells have the same gate voltage and the NAND strings are joined by the common source line. However, their drain to source voltages may be different due to the different voltages applied to the bit lines. The Vt of the cell is measured depending on Vds of the voltage bias.
Note that a memory cell's threshold voltage may be a function of the drain voltage. For example, the phenomena referred to as drain induced barrier lowering (DIBL) may alter a field effect transistor's (FET) threshold voltage. For some devices, an increase in drain voltage decreases threshold voltage. For some devices, an increase in the drain voltage increases the depletion region which has the effect of lowering the threshold voltage.
In one embodiment, some bit lines have a voltage applied that causes little or no DIBL to the selected memory cell. Such memory cells will turn on if their threshold voltage is less than Vgs. However, other bit lines have a greater voltage applied thereto, which causes sufficient DIBL to effectively lower the threshold voltage of the selected memory cell. Therefore, those memory cells may turn on even if their actual threshold voltage is slightly less than Vgs.
The following example will be used to illustrate. Some memory cells may be tested to determine whether their threshold voltage is less than 3.0V and others may be tested to determine whether their threshold voltage is less than 3.5V. A voltage of 3.0V may be applied to the selected word line and a read pass voltage to unselected word lines. The common source line may be grounded. The bit lines of memory cells that are being tested for a threshold voltage of 3.0V are biased to a voltage that is intended to cause little or no DIBL. The bit lines of memory cells that may be being tested for a threshold voltage of 3.5V may be biased to a voltage that is intended to cause an amount of DIBL to lower the threshold voltage by about 0.5V, at least under the assumption that their threshold voltage without DIBL is near 3.5V. Therefore, the memory cells being tested for a threshold voltage of 3.5V will turn on if their threshold voltage is below 3.5V, but will not turn on if their threshold voltage is above 3.5V, given that 3.0V is applied to the selected word line. Note that other memory cells could be tested for still another threshold voltage by applying a different voltage to the bit line to cause a different shift in threshold voltage due to DIBL.
In step 901, a suitable voltage to apply across is NAND string is determined. In one embodiment, this amounts to determining whether to apply Vs or Vs−Δ to a given bit line. In one embodiment, this amounts to determining whether to apply Vd or Vd+Δ to a given bit line. Note that three or more different voltages could be applied across the NAND strings. Further details of determining a suitable voltage difference are discussed below.
In step 902, a first voltage difference is caused across a first NAND string. For example, Vs is applied to the bit line while a voltage greater than Vs is applied to the source line. Therefore, the conduction current (if any) may flow from source line to bit line. As another example, Vd is applied to the bit line while a voltage less than Vd (e.g., ground) is applied to the source line. Therefore, the conduction current (if any) may flow from bit line to the source line. In one embodiment, the first NAND string has a memory cell that is being verified at a first threshold level. For example, a determination is being made whether its threshold voltage is greater than Vva.
In 904, a second voltage difference is caused across a second NAND string. For example, Vs−Δ is applied to the bit line while a voltage greater than Vs−Δ is applied to the source line. Since the source line is common for all bit lines, the source line voltage will be same as in step 902. As another example, Vd+Δ is applied to the bit line while a voltage less than Vd+Δ (e.g., ground) is applied to the source line. In one embodiment, the second NAND string has a memory cell that is being verified at a second threshold level. For example, a determination is being made whether its threshold voltage is greater than Vvb.
In optional step 906, a third voltage difference is caused across a third NAND string. For example, Vs−2Δ is applied to the bit line while a voltage greater than Vs−2Δ is applied to the source line. As another example, Vd+2Δ is applied to the bit line while a voltage less than Vd+2Δ (e.g., ground) is applied to the source line. In one embodiment, the third NAND string has a memory cell that is being verified at a third threshold level. For example, a determination is being made whether its threshold voltage is greater than Vvc.
Steps 902, 904, and 906 may be performed together. Note that there may be thousands of selected memory cells along the selected word line. Therefore, step 902 may be applied to many different NAND strings at the same time. Likewise, steps 904 and 906 (if performed) may be performed on many different NAND strings.
In step 908, a read reference voltage is applied to a selected word line while causing the first and second voltage differences. For example, Vcgry may be applied to the selected word line while Vsource is applied to the common source line and either Vs or Vs−Δ is applied to the bit line. Alternatively, Vcgry may be applied to the selected word line while Vsource is applied to the common source line and either Vd or Vd−Δ is applied to the bit line. Therefore, a single reference voltage may be applied to the gates of the selected memory cells.
In step 910, a first condition of the first non-volatile storage element is sensed in response to the first voltage difference and read voltage to determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage. For example, the conduction current of a memory cell is sensed to determine whether the threshold voltage is greater than Vva.
In step 912, a second condition of the second non-volatile storage element is sensed in response to the second voltage difference and read voltage to determine whether the threshold voltage of the second non-volatile storage element is above or below a second reference voltage. The second reference voltage may be different from the first reference voltage. For example, the conduction current of a memory cell is sensed to determine whether the threshold voltage is greater than Vvb. Note that it is not required that the first and second reference voltages are verify levels. For example, the first reference voltage might be Vva+Δ and the second reference voltage might be Vva−Δ. Also note that it is not required that the first and second reference voltages be different. For example, the process of
In optional step 914, a third condition of the third non-volatile storage element is sensed in response to the third voltage difference and read voltage to determine whether the threshold voltage of the third non-volatile storage element is above or below a third reference voltage. In one embodiment, the third reference voltage is different from both the first and second reference voltages. For example, the conduction current of a memory cell is sensed to determine whether the threshold voltage is greater than Vvc.
The sense module 480 has a current sink 1130, current source 1230, current sense 1132, and control circuitry 1134. Current sink 1130 may be used for reverse sensing and may include 1 to n different bit line voltage setups to apply different voltages to the bit line. Current source 1230 may be used for forward sensing and may also include 1 to n different voltage setups to apply different voltages to the bit line. The control circuit 1134 controls switch S11 connects the current sink 1130 to the bit line. The control circuit 1134 controls switch S13 connects the current source 1230 to the bit line. The control circuit 1134 controls switch S12 to connect the current sense 1132 to the bit line. In one embodiment, the control circuitry 1134 connects the current sink 1130 to the bit line to sink IchargeB to reduce the voltage to a target voltage. The current sense is one implementation of sense circuitry 470 of the sense module of
The control circuit 1134 receives data, which is used to determine what voltage level the bit line should be charged to. In one embodiment, the data is based on the reference level is being verified. For example, the data might indicate whether Vva, Vvb, Vvc or another reference level is being verified. In one embodiment, the data is based on the amount of cross-coupling compensation that is desired. For example, the data might indicate whether a low or high amount of compensation is desired. In one embodiment, the cross-coupling compensation is based on a neighbor memory cell's Vt. In one embodiment, the cross-coupling compensation is based on the state to which neighbor memory cell is being programmed. Therefore, the data may indicated the neighbor's actual or intended data state, which based on the Vt. Further details are discussed below. In one embodiment, the data is based on a previous reading of the memory cell being read. For example, the data could indicate whether the memory cell was previously determined to have a threshold voltage above/below a target Vt.
In step 1204, a suitable voltage is determined to apply to the bit line based on the state being verified. In one embodiment, the control circuitry 1134 determines the appropriate voltage to apply to the bit line. Note that in this embodiment it is assumed that all memory cells are connected by a common source line. Therefore, determining a voltage to apply to the bit line, in effect, determines a voltage to apply across the NAND strings. Further details of one embodiment of determining and controlling the bit line voltage are described below.
In step 1214, a suitable voltage is determined to apply to the bit line to compensate for cross-coupling due to the neighbor's Vt. In one embodiment, the control circuitry 1134 determines the appropriate voltage to apply to the bit line. For example, the input data might be whether the neighbor's threshold voltage is “high” or “low.” If it is high, then a first voltage is to be applied to the bit line to achieve a first amount of compensation for cross-coupling. If it is low, then a second voltage is to be applied to the bit line to achieve a second amount of compensation for cross-coupling.
In step 1224, a suitable voltage is determined to apply to the bit line to compensate for cross-coupling due to the later programming of the neighbor. In one embodiment, the control circuitry 1134 determines the appropriate voltage to apply to the bit line. For example, the input data might be whether the neighbor's threshold voltage will be “high” or “low.” If it will be high, then a first voltage is to be applied to the bit line to achieve a first amount of compensation for cross-coupling. If the neighbor's threshold voltage will be will be low, then a second voltage is to be applied to the bit line to achieve a second amount of compensation for cross-coupling.
In step 1234, a suitable voltage to apply to the bit line is determined based on the previous reading for the Vt. For example, assume that the previous reading determined whether the threshold voltage was above or below a target Vt. One voltage to apply to the bit line might be able to test for the target threshold voltage+Δ. Another voltage to apply to the bit line might be able to test for the target threshold voltage−Δ. If the previous reading indicated that the threshold voltage was below the target, then a voltage is applied to test for the target threshold voltage−Δ. If the previous reading indicated that the threshold voltage was above the target, then a voltage is applied to test for the target threshold voltage+Δ.
In step 1402, a voltage is applied to a common source line. For example, referring to
In step 1404, Vs is applied to bit lines of a first group of memory cells. The first group may include memory cells whose threshold voltage is being compared to a first voltage level. The first group may include memory cells for which a first amount of cross-coupling compensation is desired. As an example, Vs might be 2.1V if Vsource is 2.5V. To establish Vs, the control circuitry 1134 may close first close switch S13 to connect the current source 1230 to the bit line. Then, the control circuitry 1134 closes switch S11 to connect the current sink 1130 to the bit line to achieve the target voltage. The control circuitry 1134 may determine when the bit line is at Vs and may disconnect the current sink 1130 from the bit line to hold the bit line at Vs.
In step 1406, Vs−Δ is applied to bit lines associated with a second group of memory cells. The second group may include memory cells whose threshold voltage is being compared to a second voltage level. The second group may include memory cells for which a second amount of cross-coupling compensation is desired. As an example, Vs−Δ might be 2.1V if Vsource is 2.5V. To establish Vs−Δ, the control circuitry 1134 may close first close switch S13 to connect the current source 1230 to the bit line. Then, the control circuitry 1134 closes switch S11 to connect the current sink 1130 to the bit line to achieve the target voltage. The control circuitry 1134 may determine when the bit line is at Vs−Δ and may disconnect the current sink 1130 from the bit line to hold the bit line at Vs−Δ. Note that steps 1404 and 1406 may be performed together.
In step 1412, a voltage is applied to a common source line. For example, referring to
In step 1414, Vd is applied to bit lines of a first group of memory cells. The first group may include memory cells whose threshold voltage is being compared to a first voltage level. The first group may include memory cells for which a first amount of cross-coupling compensation is desired. As an example, Vd might be 1.6V if Vsource is 1.2V. In this example, Vds will be about 0.4V. To establish Vd, the control circuitry 1134 may close switch S21 to connect the current source 1230 to the bit line. The control circuitry 1134 may determine when the bit line is at Vd and may disconnect the current source 1230 from the bit line to hold the bit line at Vd.
In step 1416, Vd+Δ is applied to bit lines associated with a second group of memory cells. The second group may include memory cells whose threshold voltage is being compared to a second voltage level. The second group may include memory cells for which a second amount of cross-coupling compensation is desired. The voltage Vd+Δ causes a sufficient amount of DIBL to alter (e.g., lower) the threshold voltage of the memory cells by the difference between the first and second voltage levels. As an example, Vd+Δ may be about 2.0V with Vsource being 1.2V. Therefore, Vds may be about 0.8V. To establish Vd+Δ, the control circuitry 1134 may close switch S21 to connect the current source 1230 to the bit line. The control circuitry 1134 may determine when the bit line is at Vd+Δ and may disconnect the current source 1230 from the bit line to hold the bit line at Vd+Δ. Note that steps 1414 and 1416 may be performed together.
In step 1510, the program voltage (Vpgm) is set to an initial value. For example, in some embodiments, the staircase wave form of
In step 1522, a verification process is performed. The verification process may verify more than one state at a time. Referring to
In step 1524, it is determined whether all of the memory cells have verified that their threshold voltages are at the final target voltage for that memory cell. If so, the programming process is completed successfully (status=pass) in step 1526. If all of the memory cells are not all verified, then it is determined whether the program counter (PC) is less than a maximum value such as 20. If the program counter (PC) is not less than max (step 1528), then the program process has failed (step 1530). If the program counter (PC) is less than a maximum value (e.g., 20), then the program counter (PC) is incremented by 1 and the program voltage is stepped up to the next pulse in step 1530. Subsequent to step 1530, the process loops back to step 1520 and the next program pulse is applied to the memory cells.
In step 1602, the common source line is biased to Vsource. As an example, the source line is biased to 2.5V.
In step 1604, first and second bit lines are biased to different voltages. The first group contains bit lines that are to have Vs applied to the bit line. The second group contains bit lines that are to have Vs−Δ applied to the bit line. There may also be a third group that contains bit lines that are to have Vs applied. For example, bit lines for memory cells being programmed to the A-, C-, E-, and G-state may be put into the first group. Bit lines for memory cells being programmed to the B-, D-, and F-state may be put into the second group. Bit lines for memory cells that are to stay erased may be put into the third group. In one embodiment, one of the bit lines from the first group (e.g., the A-state) and one of the bit lines from the second group (e.g., the B-state) may be being verified at a time. During step 1604, all the bit lines in the first group may be biased to Vs, all of the bit lines in the second group may be biased to Vs−Δ, and all of the bit lines in the third group may be biased to Vsource.
In step 1606, voltages are applied to the source side select gate (SGS) and the drain side select gate (SGD). As an example, SGS and SGD are biased to Vsource+Vt, where threshold voltage is the threshold voltage of the SGS transistor.
In step 1608, Vread is applied to unselected word lines. In step 1610, a suitable read voltage is applied to the selected word line. Referring to
In step 1612, the bit lines of memory cells to be verified are sensed. If the threshold voltage of a memory cell being verified is below its target state it should turn on and conduct a sizeable current, which may be detected. For example, the current sense 1132 of
If there are more states to verify (step 1614), then the process returns to step 1610. In step 1610, the voltage on the selected word line is again set to the level that is appropriate for the states being verified. For example, the voltage may be changed to the level labeled “C/D” in
When all states are verified, the process completes. Note that it is not an absolute requirement that all states be verified. For example, early in the programming process it might not be necessary to verify the highest states. Therefore, the process could end without raising the selected word line voltage to the levels “E/F” and “G.” Likewise, later in the programming process it might not be necessary to verify the lowest states. Therefore, the process could skip raising the selected word line voltage to the levels “A/B.” Note that for any memory cell that is verified to have reached its intended state, programming may be locked out such that it is not affected by further programming pulses.
Note that while
Also note that while step 1604 contemplates biasing bit lines that are verified by applying different voltages to the selected word line, this is not required. For example, when verifying the A-state and the B-state, it is not required that the bit lines for the other states are biased to Vs and Vs+Δ. Instead, those bit lines could be biased to Vsource. Then, after verifying the A-state and the B-state, a different set of bias conditions could be applied to the bit lines to verify the C-state and the D-state.
When discussing
In the process of
In step 1702, the common source line is biased to Vsource. As an example, the source line is biased to 2.5V. In step 1704, bit lines are biased at an appropriate voltage for the states to be verified. For example, bit lines for the erase state, A-state, B-state, and C-state each receive a different bias. In one embodiment, the bit lines for the erase state receive the highest bias, A-state the next highest bias, B-state the next highest bias, and C-state receive the lowest bias. For example, bit lines for the erase state are biased to 2.5V, bit lines for the A-state are biased to 2.0V, bit lines for the B-state are biased to 1.5V, and bit lines for the C-state are biased to 1.0V.
In one embodiment, the bit line verify is performed on an even bit line/odd bit line basis. For example, during one performance of process of
In step 1706, a voltage is applied to the drain side select gate (SGD). As an example, SGD is biased to Vsource+Vt, where threshold voltage is the threshold voltage of the SGD transistor. Note that at this time, SGS is held at a relatively low value such as ground. This low value prevents the NAND strings from conducting a current.
In step 1708, Vread may be applied to unselected word lines. In step 1710, a suitable read (or verify) voltage is applied to the selected word line. The read voltage should be sufficient such to verify the memory cells being verified for the C-state. For example, if the threshold voltage for the C-state is 3.0V, then 4.0V may be applied to the selected word line. Recall that 1.0V was applied to the bit lines for memory cells being programmed to the C-state in this example. Therefore, Vgs for the C-state memory cells will be 3.0V. Note that Vgs for memory cells being verified for the A-state and B-state may be high enough for those memory cells to turn on. However, because the signal applied to SGS is low at this time, none of the NAND strings conduct a current. Referring to
In step 1712, the source side select gate is raised to a level that is sufficient to allow NAND strings having a memory cell being verified for the C-state to conduct. Referring to
In step 1714, the bit lines of memory cells being programmed to the C-state are sensed. If the threshold voltage of a memory cell being verified is below its target state it should turn on and conduct a sizeable current, which may be detected. For example, the current sense 1132 of
In step 1715, the voltage of the bit lines of memory cells being verified for the C-state may be raised. For example, the bit line voltage is raised to 2.5V. This may help to prevent punch-through conduction during later steps of the process. As another alternative, the bit lines may be floated.
In step 1716, the voltage applied to SGS is raised to a level that is sufficient to allow conduction of NAND strings having a memory cell being verified for the B-state. Referring to
In step 1718, the bit lines of memory cells being programmed to the B-state are sensed. If the threshold voltage of a memory cell being verified is below its target state it should turn on and conduct a sizeable current, which may be detected. For example, the current sense 1132 of
In step 1719, the voltage of the bit lines of memory cells being verified for the B-state may be raised. For example, the bit line voltage is raised to 2.5V. This may help to prevent punch-through conduction during later steps of the process. As another alternative, the bit lines may be floated.
In step 1720, the voltage applied to SGS is raised to a level that is sufficient to allow conduction of NAND strings having a memory cell being verified for the A-state. Referring to
In step 1722, the bit lines of memory cells being programmed to the A-state are sensed. If the threshold voltage of a memory cell being verified is below its target state it should turn on and conduct a sizeable current, which may be detected. The possible conduction current (Icell) is shown as a dashed line. For example, the current sense 1132 of
The NAND string in
Applying Different Amounts of Cross-Coupling Compensation
Sensing schemes disclosed herein for verifying multiple states can be used for cross-coupling compensation during programming or reading. Cross-coupling compensation can be used to compensate for shifts in the apparent charge stored on a floating gate which can occur because of the coupling of an electric field based on the charge stored in adjacent floating gates. This floating gate to floating gate coupling phenomena is described in U.S. Pat. No. 5,867,429, which is incorporated herein by reference in its entirety. The floating gate to floating gate coupling phenomena occurs most pronouncedly between sets of adjacent memory cells that have been programmed at different times. For example, a first memory cell is programmed to add a level of charge to its floating gate that corresponds to one set of data. Subsequently, one or more adjacent memory cells are programmed to add a level of charge to their floating gates that correspond to a second set of data. After the one or more of the adjacent memory cells are programmed, the charge level read from the first memory cell appears to be different than programmed because of the effect of the charge on the adjacent memory cells being coupled to the first memory cell. The coupling from adjacent memory cells can shift the apparent charge level being read a sufficient amount to lead to an erroneous reading of the data stored.
In one embodiment, during a read operation, the bit line of each memory cell along the selected word line is biased according to the read Vt of the memory cell on a neighboring word line or according to the estimated state of the neighboring cell given its read Vt. Note that the actual state to which the neighboring cell was programmed may not be known. Also, the induced cross-coupling by the neighboring cell may be a function of its present threshold voltage and not of its programmed state. In one embodiment, during programming, the bit line of each memory cell along the selected word line is biased according to the intended state of the memory cell on the neighboring word line.
In the following description the term “target word line” refers to the word line having memory cells that are ultimately to be read. The target word line may also be referred to as WLn. In step 2002, the memory cells on a word line that neighbors the target word line are read to determine at least a high threshold voltage group and a low threshold voltage group. For example, the memory cells on WLn+1 are read to determine at least a high threshold voltage group and a low threshold voltage group. For example, memory cells in the erased state or A-state may be considered low threshold voltage group and those in either the B-state or C-state may be considered to be high threshold voltage group. It is not required that the exact state of each memory cell be determined. For example, a single read may be performed to determine whether the threshold voltage is above or below Vrb (see
In steps 2004 and 2006, appropriate voltages are applied to bit lines to compensate for the effect of the neighbor memory cell's threshold voltage when the selected memory cell is read. For example, if the neighbor memory cell is in the low threshold voltage group, then Vs might be applied to the bit line. On the other hand, if the neighbor memory cell is in the high threshold voltage group, then Vs−Δ might be applied to the bit line. Memory cells having Vs−Δ applied to them may experience an apparent upward shift of their threshold voltage by Δ during read. Therefore, Δ may be chosen based on the expected shift due to cross-coupling due to the neighbor memory cell having a high Vt. In one embodiment, Vd and Vd+Δ are applied to the bit lines.
In step 2008, Vcgry is applied to the selected word line and Vread is applied to the unselected word lines. The voltage Vcgry may be selected to create a Vgs for selected memory cells that is suitable to test for a target Vt. For example, Vgs may be Vcgrv−Vs for memory cells having a neighbor with a low Vt. In this case, Vcgry−Vs might equal a threshold voltage that is being tested for. The Vgs for memory cells having a neighbor with a high threshold voltage may be Vcgry−(Vs−Δ). This Vgs may also test whether the threshold voltage of the selected memory cell is approximately the target Vt, given the compensation for the cross-coupling effect.
In step 2010, the bit lines are sensed to determine whether the selected memory cells have a threshold voltage that is above/below the target Vt. The process may be repeated for other target threshold voltages. However, the initial step of determining the states of the neighbors need not be repeated.
In one embodiment, cross-coupling compensation is performed during programming. For example, WLs may be programmed one after another such that WLn+1 is programmed after WLn. In one embodiment, prior to programming a block of memory cells they are erased. Therefore, during programming of target memory cells on WLn, the memory cells in WLn+1 are erased. Consequently, when WLn+1 is programmed, the read threshold voltage of cells in WLn may be shifted up as a function of the threshold voltage of the neighboring cells in WLn+1. In order to compensate for this voltage shift, the verify level used when programming a target memory cell on WLn can be adjusted based on the intended state of the neighboring cells in WLn+1 (which is indicative to their threshold voltage after they will be programmed). For example, if the neighboring memory cell on WLn+1 is going to remain in the erase state, then a “nominal” verify level “V” is used when verifying the target memory cell on WLn during its programming. On the other hand, if the neighboring memory cell on WLn+1 is going to be programmed to another states (e.g., the A-, B-, or C-state), then a verify level of V−Vs may be applied to the bit line during verify of the target memory cell. The voltage Vs is a value that should compensate for expected cross coupling induced apparent threshold voltage shift due to the later programming of the neighbor memory cells. Therefore, the voltage that is applied to the bit line may be a function of the state to which the neighbor memory cell will be programmed.
Reading Soft Bits
In one embodiment, soft bits are read by reading simultaneously at different threshold voltages. Reading soft bits can be used to boost ECC error correction capability.
In one embodiment, first seven sense operations are done at read thresholds Vr1, Vr2, . . . , Vr7. These first seven sense operations may be performed sequentially with each sense operation reading at one of the voltages. Then, seven additional sense operations may be performed with each individual sense operation sensing at two different threshold voltages. For example, one sense operation senses at Vr1+Δ and at Vr1−Δ, then another senses at Vr2+Δ and at Vr2−Δ, and so on. Various techniques disclosed herein may be used to simultaneously sense the two different threshold voltages. This reduces the number of sense operations that are used.
In step 2204, an additional sense operation is performed for each of the “n” sense operations. Each of the additional sense operations includes simultaneously sensing a first group of non-volatile storage elements in the subset that have a threshold voltage greater than the “nth” reference voltage at a first offset voltage from the “nth” reference voltage while sensing a second group of non-volatile storage elements in the subset having a threshold voltage less than the “nth” reference voltage at a second offset voltage from the “nth” reference voltage. For example, memory cells that have a threshold voltage greater than Vr1 are sensed at Vr1+Δ while memory cells that have a threshold voltage greater than Vr1 are sensed at Vr1−Δ. This is repeated for the other seven locations (Vr2, Vr3, . . . Vr7). Note that each of these sense operations in step 2204 simultaneously senses two different threshold voltages.
In one embodiment, sensing at the first offset voltage from the “nth” reference voltage includes applying a first voltage difference across NAND strings having non-volatile storage elements in the first group and sensing first conditions of non-volatile storage elements in the first group to determine whether the threshold voltages of non-volatile storage elements in the first group is above or below the first offset from the “nth” reference voltage. Furthermore, sensing at the second offset voltage from the “nth” reference voltage includes applying a second drain-to-source voltage difference across NAND strings having non-volatile storage elements in the second group and sensing second conditions of non-volatile storage elements in the second group to determine whether the threshold voltages of non-volatile storage elements in the second group is above or below the second offset from the “nth” reference voltage.
In one embodiment, sensing at the first offset voltage from the “nth” reference voltage includes applying a first gate-to-source voltage difference to non-volatile storage elements in the first group and sensing first conditions of non-volatile storage elements in the first group in response to the first gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the first group is above or below the first offset from the “nth” reference voltage. Furthermore, sensing at the second offset voltage from the “nth” reference voltage includes applying a second gate-to-source voltage difference to non-volatile storage elements in the second group and sensing second conditions of non-volatile storage elements in the second group in response to the second gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the second group is above or below the second offset from the “nth” reference voltage.
In one embodiment, sensing at the first offset voltage from the “nth” reference voltage includes applying a first drain-to-source voltage difference to non-volatile storage elements in the first group and sensing first conditions of non-volatile storage elements in the first group in response to the first drain-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the first group is above or below the first offset from the “nth” reference voltage. Furthermore, sensing at the second offset voltage from the “nth” reference voltage includes applying a second drain-to-source voltage difference to non-volatile storage elements in the second group and sensing second conditions of non-volatile storage elements in the second group in response to the second drain-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the second group is above or below the second offset from the “nth” reference voltage.
Performing a Binary Search
In one embodiment, a binary search for the threshold voltages of memory cells is efficiently performed by sensing for more than one threshold voltage at a time.
In step 2302, sensing is performed at the midpoint of the window, which will be referred to as “W/2.” This step may involve applying a read voltage to the selected word line while applying the same conditions to all of the selected bit lines.
In step 2304, bit lines are biased at one of two different levels to sense at W/4 and 3 W/4. If a memory cell had a threshold voltage below W/2, then it is sensed at W/4. If a memory cell had a threshold voltage above W/2, then it is sensed at 3 W/4. Note that step 2304 applies a voltage to the bit line that was determined based on a previous reading of the threshold voltage of the memory cell. In one embodiment, the different bit line bias conditions cause a different Vgs for different memory cells to allow testing for different threshold voltages. In one embodiment, the different bit line bias conditions cause a different Vds for different memory cells to allow testing for different threshold voltages. In one embodiment, the different bit line bias conditions cause different voltages across different NAND strings to allow testing for different threshold voltages.
In step 2306, sensing is performed at W/4 and 3 W/4. In step 2306, both levels (W/4 and 3 W/4) are tested for with the same operation. For example, a read voltage may be applied to the selected word line while different bias conditions are applied to the two groups of bit lines. That is, for one group of memory cells are determination is made whether their threshold voltage is above/below W/4 and for a second group of memory cells are determination is made whether their threshold voltage is above/below 3 W/4. These determinations may be made at the same time. For example, the determinations may be made by sensing some condition of the bit lines after applying the read voltage to the selected word line.
In step 2308, bit lines are biased at one of four different levels to sense at W/8, 3 W/8, 5 W/8, and 7 W/8. If a memory cell had a threshold voltage below W/4, then it is sensed at W/4. If a memory cell had a threshold voltage between W/4 and W/2, then it is sensed at 3 W/8. If a memory cell had a threshold voltage between W/2 and 3 W/4, then it is sensed at 5 W/8. If a memory cell had a threshold voltage above 3 W/4, then it is sensed at 7 W/8. Therefore, a binary search is performed for the threshold voltage of each memory cell. Note that step 2308 applies a voltage to the bit line that was determined based on a previous reading of the threshold voltage of the memory cell.
In one embodiment, the different bit line bias conditions cause a different Vgs for different memory cells to allow testing for different threshold voltages. In one embodiment, the different bit line bias conditions cause a different Vds for different memory cells to allow testing for different threshold voltages. In one embodiment, the different bit line bias conditions cause different voltages across different NAND strings to allow testing for different threshold voltages. Note that it is not required that all four conditions be tested for at the same time. Instead two conditions could be tested for at a time. For example, W/8 and 3 W/8 could be tested for in one operation and 5 W/8 and 7 W/8 could be tested for in another operation.
In step 2310, sensing is performed at W/8, 3 W/8, 5 W/8, and 7 W/8. That is, for one group of memory cells are determination is made whether their threshold voltage is above/below W/8, for a second group of memory cells are determination is made whether their threshold voltage is above/below 3 W/8, for a third group of memory cells are determination is made whether their threshold voltage is above/below 5 W/8, and for a fourth group of memory cells are determination is made whether their threshold voltage is above/below 7 W/8. These determinations may be made at the same time. For example, the determinations may be made by sensing some condition of the bit lines after applying a read voltage to the selected word line. The search can continue in a similar manner to determine the threshold voltage at a finer level of granularity.
A separate copy of the sense circuit can be provided for each bit line, for every other bit line, or otherwise. However, by operating sense circuits associated with different bit lines in a different manner, different bit line biases can be established. Therefore, different sense circuit can test for different threshold voltages at the same time. As another example, different sense circuits can provide different amounts of cross-coupling compensation to different memory cells on a selected word line. One or more control circuits can communicate commands to each sense circuit to configure them, as well as to exchange data, such as read and write data.
The sense circuit can provide three different voltages to a bit line. For example, the sense circuit can pre-charge the bit line to one of three different voltages prior to sensing a condition of the bit line to read or verify the selected memory cell. Referring briefly to
The transistors in the sense circuits herein may include nMOSFETs (nMOSs) and pMOSFETs (pMOSs), for instance. Briefly, the sense circuit includes bit line bias transistors, which help to establish the three different voltages on the bit line 2468. The sense circuit also includes sense bias transistors connected to a sense node (SEN). The sense bias transistors provide two different paths for sensing the bit line 2468. The sense circuit includes FLAG transistors that input a signal FLG and output INV. The sense circuit includes LATCH transistors that input a signal LAT and output INT. Details will be described below.
A bit line 2468 is connected to the sense circuit. The bit line 2468 communicates with a BLS transistor 2470 and a BLC (bit line clamp) transistor 2472, which is coupled to a COM path. The BLS transistor 2472 may be a high-voltage transistor which can isolate the sense circuit, which may include low voltage transistors, from high voltages of the memory array. During sensing, BLS transistor 2472 is conductive. In one embodiment, the BLC transistor 2472 can clamp a voltage on the bit line 2468 by control its gate voltage and supply of a sufficiently high voltage such as Vdd on the drain of the transistor.
In one embodiment, a reference voltage is applied to the control gate of a memory cell being read. If the reference voltage is greater than the threshold voltage of the memory cell, then the memory cell will turn on and conduct current between its source and drain. If the reference voltage is not greater than the threshold voltage of the memory cell, then the memory cell will not turn on and will not conduct current between its source and drain. In many implementations, the on/off may be a continuous transition so that the memory cell will conduct different currents in response to different control gate voltages. If the memory cell is on and conducting current, the conducted current will cause the voltage on node SEN to change, effectively altering the voltage across capacitor 2450. If the voltage on node SEN changes to a predetermined level during a predetermined sensing period, then sense amplifier reports that the memory cell turned on in response to the control gate voltage.
The sense circuit contains sense bias transistors 2456, 2458, 2460, and 2462, which connect the bit line 2468 to the sense node SEN. Sense transistors 2456 and 2460 are connected to the bit line through transistors 2472 and 2470. Sense transistors 2458 and 2462 are connected to SEN. Sense bias transistors 2456 and 2458 provide one path between transistor 2472 and SEN. Sense bias transistors 2460 and 2462 provide a second path between transistor 2472 and SEN. The sense node (SEN) is connected to sense capacitor 2450, which is connected to a CLK signal. Signals INV, INT, XXP1, and XXP2 are applied to the gates of the sense transistors to control sensing. Further details are discussed below in connection with
The sense node (SEN) is connected to the COM path (and hence to BLC transistor 2472) via transistor 2454, which has signal XXO applied to its gate. The sense node (SEN) is also connected to transistor 2448, which has signal HHL applied to its gate. Transistor 2448 is connected to Vsense, which is a voltage that SEN is set to just prior to sensing. For example, Vsense could be ground. Sense node SEN is connected to the node BUS, which outputs a value indicative of whether the memory cell turned on. Specifically, SEN node is connected to the gate of transistor 2446. Transistor 2446 is connected to BUS through transistors 2145 and 2430. Therefore, signal STR may be applied to transistor 2415 and signal NCO may be applied to transistor 2430 to connect/disconnect SEN from BUS.
The sense circuit includes bit line bias transistors 2402, 2404, 2406, 2408, 2412, and 2412. Briefly, these transistors are used to bias the bit line to one of three different voltages. These transistors are controlled by signals INT, INV, FLA, FLB, FLC, and FLG. The signals INT and INV, are input from the output of FLAG and LATCH, respectively. Signals FLA, FLB, and FLC correspond to which of the three voltages that the bit line is to be biased. In one embodiment, control circuitry generates FLA, FLB, and FLC. Further details are discussed below.
As mentioned, FLAG inputs FLG and outputs INV. In one embodiment, the initial value for INV is established by establishing a signal on BUS and turning on transistors 2430 and 2416 in order to establish FLG. Note that transistor 2430 is controlled by NCO and transistor 2416 is controlled by FCO. Signals STF and FRB are applied to transistors 2420 and 2422 to generate INV from FLG. Note the INV may be the opposite of FLG.
As mentioned, LATCH inputs LAT and outputs INT. In one embodiment, the initial value for INT is established by establishing a signal on BUS and turning on transistors 2430 and 2444 to establish LAT. Note that transistor 2444 is controlled by LCO. Signals STL and PRS may be used to generate INT from LAT.
The table below provides example values for FLG, INV, LAT, and INT for operation in
The sense transistors also have signals FLA, FLB, and FLC applied to gates of transistors 2410, 2408, and 2406, respectively. These signals may be common to many sense circuits. The timing for these signals are depicted in the timing diagram in
Operation of
In order to prevent the medium and low voltage paths from conducting, Vdd may be applied to transistors 2402 and 2404. Recall that INT may be applied to the gate of transistor 2402 and INV may be applied to the gate of transistor 2404. Because, INT and INV are both Vdd, Vdd may be applied to the gates of transistors 2402 and 2404. Therefore, transistors 2402 and 2404 will not conduct.
Operation with respect to
Operation of the medium voltage path is as follows for
Operation of the low voltage path for
Operation with respect to
Operation of the low voltage path is as follows for
Operation of the medium voltage path is as follows for
Referring briefly to
Operation of the circuit of
Operation of the circuit of
Note that for the high-voltage case sensing may not be desired. For example, unselected bit lines might be charged to the high voltage. As previously mentioned, both INV and INT may be high (e.g., Vdd) for the high voltage case. Since INV is at the gate of transistor 2456 and INT is at the gate of transistor 2460, both sense bias paths will be shut off. Therefore, SEN is not affected by the bit line.
Bit Line Pre-Charge Phase
At time t1, the signals BLC and BLY are raised to high, which turn on transistors 2472 and 2474 respectively. Therefore, the bit line 2466 is connected to the bit line bias transistors, as well as other elements in the sense circuit. Also at time t1, the signals FLA, FLB, and FLC go low. This allows the high-, medium-, and low-voltage paths to be on/off depending on the values for FLG, INV, and INT. Initially, the value for FLG may be low, which turns on transistor 2412. Therefore, the high-voltage path may be conductive at this time. However, at this time INV and INT may be high such that the medium- and low-voltage paths will be off. This allows the bit line to pre-charge through the high-voltage path to Vdd (e.g., 2.5V).
Next, initial values for FLG, LAT, INT and INV are established. Table I depicts example values for that may be used to help establish the high-, medium-, and low-voltage on the bit line. At time t2, the signal FCO briefly goes high until time t3. The signal NCO may also go high at this time. This allows a signal from the BUS to set FLG. At time t4, the signal LCO briefly goes high until time t5. The signal NCO may also be high at this time. This allows a signal from the BUS to set LAT. As previously discussed, INV and INT are generated by FLAG and LATCH based on FLG and LAT, respectively.
The values for FLG, INV, and INT are applied to gates of the bit line bias transistors, as depicted in
Sensing Phase
Signal HLL goes high from time t6 until time t7. This briefly turns on the HLL transistor 2448 to establish an initial voltage at SEN at the beginning of a sense operation. In one embodiment, SEN is pulled to ground.
Signals XXP1 and XXP2 begin to go low at time t8. By time t9, signals XXP1 and XXP2 are low. Recall that signals XXP1 and XXP2 are input to sense bias transistors 2458 and 2462, respectively. By this time, INV and INT will be established for the desired bit line voltage condition. Therefore, operation of the sense bias transistors is as described in connection with
At time t9, the sense node (SEN) begins to react based on a condition of the bit line. As previously discussed the bit line will conduct a current whose magnitude depends, at least in part, on the threshold voltage of the selected memory cell. The conduction current (if any) travels in the direction depicted in
The SEN node is depicted as rising at three different rates. The rate of increase may depend in part on the difference in voltage between the bit line and SEN. Therefore, in general, the rate of increase may be faster for the medium-voltage bit line case than for the low-voltage bit line case. The rate of increase may also depend in part on the magnitude of the memory cell conduction current. The lines labeled A and B correspond to the cases where the memory cell conduction current is high. Line A corresponds to the medium-voltage bit line case. Line B corresponds to the low-voltage bit line case. Therefore, line A goes up at a higher rate than line B. The line labeled C corresponds to the cases where the memory cell conduction current is low. Only one line (C) is depicted for the low conduction current cases; however, there may be some difference in the rate of increase depending on the bit line voltage.
At time t10, signals XXP1 and XXP2 begin to go high again to stop the cap 2450 from charging up further. By time t11, signals XXP1 and XXP2 are again high. At time t11, CLK and FCO go high. Note when CLK goes high, that the voltage at SEN may be affected by CLK (see
Latch Phase
The strobe signal STR is brought high between time t12 and t13. Because FCO is on, the voltage from SEN is inversely passed to FLG through STR and FCO. The value of FLG may be stored in FLAG latch. At time t11 FCO is brought back low. Note that LCO could also be brought high to pass the signal from SEN to LAT. This value may then be stored in LATCH.
Read Out Phase
Finally, in a read out phase at t14, the control signal NCO at the transfer gate 2430 allows the signal SEN to be read out to the readout BUS. The cell passed either A or B state will be latched into FLAG. The data may be sorted out when the data is shifted out through NCO to a logic processor. The data may be selected based on the program data stored in the data latches outside of the sense amplifier. For example, if it is A state program data, the FLG latch data high is an indication that the cell threshold voltage passed state A. If the data is B state program data, the FLG latch data high is a indication that the cell passed state B.
One embodiment is a method for operating non-volatile storage that includes a plurality of NAND strings of non-volatile storage elements. The method includes causing a first voltage difference across a first NAND string of the plurality of NAND strings that includes a first non-volatile storage element and causing a second voltage difference across a second NAND string of the plurality of NAND strings that include a second non-volatile storage element. The second voltage difference is different from the first voltage difference. The second voltage difference is caused at the same time that the first voltage difference is caused. A read voltage is applied to a word line that is associated with the first non-volatile storage element and the second non-volatile storage element while causing the first and second voltage differences. A first condition of the first non-volatile storage element is sensed in response to the first voltage difference and read voltage to determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage. A second condition of the second non-volatile storage element is sensed in response to the second voltage difference and read voltage to determine whether the threshold voltage of the second non-volatile storage element is above or below a second reference voltage. In one embodiment, the first reference voltage is different from the second reference voltage. In one embodiment, the first reference voltage is the same as the second reference voltage.
With some slight modifications, the sense circuit of
Referring again to
From Table II, FLG=Vdd, INV=0, and INT=Vdd for the low voltage case. Since FLG is Vdd, transistor 2412 will be off. Therefore, conduction is prevented on the high voltage path. Transistor 2404 will be on because INV causes 0V on the gate of transistor 2404. FLB, which may be about 2.1V, is applied to transistor 2808. Therefore, transistor 2808 will conduct until the bit line voltage reaches 1.5V. Consequently, transistors 2808 and 2404 increase the bit line voltage until it reaches about 1.5V. Since, INT=Vdd for the low-voltage case, transistor 2402 will be off.
From Table II, FLG=Vdd, INV=0, and INT=0 for the medium-voltage case. Since FLG may have a value of Vdd, transistor 2412 will be off. Transistor 2402 is on because INT causes 0V to the gate of transistor 2402. Signal FLC, which may be about 2.7V, is applied to the gate of transistor 2806. Therefore, transistor 2806 will conduct until the bit line voltage reaches 2.1V. Consequently, transistors 2402 and 2806 increase the bit line voltage until it reaches about 2.1V. Note that transistor 2404 may conduct because INV, which is applied to its gate is 0V. Transistor 2408 will have 2.1V applied to its gate as a result of signal FLB. Therefore, transistor 2808 can conduct a current until the bit line reaches 1.5V. However, after the bit line reaches 1.5V, transistor 2808 turns off. Therefore, transistor 2808 may assist some in charging the bit line, but will not impact the ability of transistor 2806 to control the bit line voltage.
Bit Line Pre-Charge Phase
At time t1, the signals BLC and BLY are raised to high, which turn on transistors 2472 and 2474 respectively. Therefore, the bit line 2466 is connected to the bit line bias transistors, as well as other elements in the sense circuit. Also at time t1, the signal FLA begins to transition to low (e.g., 0V), and FLB and FLC begin to transition to high (e.g., 2.1V and 2.7V respectively). This allows the high-, medium-, and low-voltage paths to be on/off depending on the values for FLG, INV, and INT.
Next, initial values for FLG, LAT, INT and INV are established. Table II depicts example values for that may be used to help establish the high-, medium-, and low-voltage on the bit line for forward sensing. At time t2, the signal FCO briefly goes high until time t3. This allows a signal from the BUS to set FLG. The values for FLG, INV, and INT are applied to gates of the bit line bias transistors, as depicted in
First Sensing Phase
Signal HLL goes high from time t4 until time t5. This briefly turns on the HLL transistor 2448 to establish an initial voltage at SEN at the beginning of a sense operation. In one embodiment, Vsense is a high voltage to raise SEN to a high voltage.
Signal XX0 begins to go high at time t5 and returns to low by time t6. In one embodiment, XX0 is raised to FLB+200 mV. When XX0 is high, the sense node (SEN) is connected to the bit line. At time t5, the sense node (SEN) begins to react based on a condition of the bit line. As previously discussed, the bit line will conduct a current whose magnitude depends, at least in part, on the threshold voltage of the selected memory cell. The conduction current (if any) travels in the forward direction depicted in
The SEN node is depicted as falling at three different rates. The rate of decrease may depend in part on the difference in voltage between the bit line and SEN. Therefore, in general, the rate of decrease may be faster for the medium-voltage bit line case than for the low-voltage bit line case. The rate of decrease may also depend in part on the magnitude of the memory cell conduction current. The lines labeled A and B correspond to the cases where the memory cell conduction current is high. Line A corresponds to the low-voltage bit line case. Line B corresponds to the medium-voltage bit line case. Therefore, line A goes down at a faster rate than line B. The line labeled C corresponds to the cases where the memory cell conduction current is low. Only one line (C) is depicted for the low conduction current cases; however, there may be some difference in the rate of increase depending on the bit line voltage.
Latch Phase
By time t6, signal XX0 is down to low again to stop the capacitor 2450 from discharging further. At time t7, CLK and FCO go high. The CLK signal couples up the SEN node such that a SEN voltage of certain level will turn on transistor 2446 in order to differentiate non-conducting memory cells from conducting memory cells.
The strobe signal STR is brought high between time t8 and t9. Because FCO is on, the voltage from SEN is inversely passed to FLG through STR and FCO. The value of FLG may be stored in FLAG latch. At time t9 FCO and CLK are brought back low.
Second Sensing Phase
Signal HLL goes high again from time t9 until time t10. This briefly turns on the HLL transistor 2448 to re-establish an initial voltage at SEN at the beginning of a sense operation. In one embodiment, Vsense is a high voltage to raise SEN to a high voltage.
Signal XX0 begins to go high at time t10 and returns to low by time t11. In one embodiment, XX0 is raised to FLC+200 mV. At time t10, the sense node (SEN) begins to react based on a condition of the bit line. By time t11, signal XX0 is down to low again to stop the capacitor 2450 from discharging further.
Latch Phase
At time t12, CLK and LCO go high. The strobe signal STR is brought high between time t12 and t13. Because LCO is on, the voltage from SEN is inversely passed to LATCH through STR and LCO. The value of LAT may be stored in LATCH latch. At time t13 LCO and CLK are brought back low.
Read Out Phase
Similar to the timing diagram of
One embodiment is a method for operating non-volatile storage that includes the following. A first voltage is established on a common source line that is electrically connected to a plurality of NAND strings of non-volatile storage elements that are programmed to at least four states. A second voltage, which is lower than the first voltage, is established on a first bit line that is associated with a first NAND string of the plurality of NAND strings, the first NAND string includes a first non-volatile storage element. A third voltage, which is lower than the first voltage, is established on a second bit line that is associated with a second NAND string of the plurality of NAND strings. The second voltage is different from the first voltage. The second NAND string includes a second non-volatile storage element. A fourth voltage is established on a word line that is associated with the plurality of NAND strings. The fourth voltage is established while the second voltage and the third voltage are established on the first and second bit lines. A first condition of the first non-volatile storage element is sensed in response to establishing the fourth voltage on the word line to determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage. A second condition of the second non-volatile storage element is sensed in response to establishing the fourth voltage on the word line to determine whether the threshold voltage of the second non-volatile storage element is above or below a second reference voltage. In one embodiment, the first reference voltage is different from the second reference voltage. In one embodiment, the first reference voltage is the same as the second reference voltage.
One embodiment is method for operating non-volatile storage that includes a plurality of NAND strings of non-volatile storage elements. The method includes the following. A determination of whether the threshold voltage of a first non-volatile storage element that is associated with a first NAND string of the plurality of NAND strings is above or below a first reference voltage within a voltage range is made. A determination of whether the threshold voltage of a second non-volatile storage element that is associated with a second NAND string of the plurality of NAND strings is above or below the first reference voltage is made. A determination of a first voltage difference to apply across the first NAND string based on the threshold voltage of the first non-volatile storage element is made. A determination of second voltage difference to apply across the second NAND string based on the threshold voltage of the second non-volatile storage element is made. The first voltage difference is different than the second voltage difference. The first voltage difference is caused across the first NAND string while causing the second voltage difference across the second NAND string. A read voltage is applied to a word line that is associated with the first non-volatile storage element and the second non-volatile storage element while causing the first and second voltage differences. A first condition of the first non-volatile storage element is sensed in response to the first voltage difference and read voltage to determine whether the threshold voltage of the first non-volatile storage element is above or below a second reference voltage within the voltage range. A second condition of the second non-volatile storage element is sensed in response to the second voltage difference and read voltage to determine whether the threshold voltage of the second non-volatile storage element is above or below a third reference voltage within the voltage range, the third reference voltage is different from the second reference voltage.
One embodiment is a method for operating non-volatile storage that includes a plurality of NAND strings of non-volatile storage elements that are programmed to “n+1” data states. Each data state corresponding to a range of threshold voltages; adjacent data states have overlapping ranges of threshold voltages. The non-volatile storage elements each have a gate and a source. The method includes performing “n” sense operations at “n” references voltages that fall within the overlapping ranges of threshold voltages between each of the data states to determine whether the threshold voltage of each non-volatile storage element in a subset of the non-volatile storage elements is greater or less than each of the “n” references voltages. An additional sense operation is performed for each of the “n” sense operations. Each of the additional sense operations includes simultaneously sensing a first group of non-volatile storage elements in the subset having a threshold voltage greater than the “nth” reference voltage at a first offset voltage from the “nth” reference voltage while sensing a second group of non-volatile storage elements in the subset having a threshold voltage less than the “nth” reference voltage at a second offset voltage from the “nth” reference voltage. The first and second offsets are different. Sensing is performed at the first offset voltage from the “nth” reference voltage, which includes applying a first gate-to-source voltage difference to non-volatile storage elements in the first group and sensing first conditions of non-volatile storage elements in the first group in response to the first gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the first group is above or below the first offset from the “nth” reference voltage. Sensing is performed at the second offset voltage from the “nth” reference voltage, which includes applying a second gate-to-source voltage difference to non-volatile storage elements in the second group and sensing second conditions of non-volatile storage elements in the second group in response to the second gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the second group is above or below the second offset from the “nth” reference voltage.
One embodiment includes non-volatile storage device that includes a plurality of NAND strings of non-volatile storage elements. The NAND strings include a first NAND string having a first non-volatile storage element and a second NAND string having a second non-volatile storage element. The non-volatile storage device includes a plurality of word lines associated with the plurality of NAND strings and one or more managing circuits in communication with the non-volatile storage elements. The one or more managing circuits cause a first voltage difference across the first NAND string. The one or more managing circuits cause a second voltage difference across the second NAND string. The second voltage difference is different from the first voltage difference. The second voltage difference is caused at the same time that the first voltage difference is caused. The one or more managing circuits apply a read voltage to a first of the word lines while causing the first and second voltage differences. The one or more managing circuits sense a first condition of the first non-volatile storage element in response to the first voltage difference and read voltage to determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage. The one or more managing circuits sense a second condition of the second non-volatile storage element in response to the second voltage difference and read voltage to determine whether the threshold voltage of the second non-volatile storage element is above or below a second reference voltage. In one embodiment, the first reference voltage is different from the second reference voltage. In one embodiment, the first reference voltage is the same as the second reference voltage.
One embodiment is a non-volatile storage device including a plurality of NAND strings of non-volatile storage elements. The NAND strings include a first NAND string having a first non-volatile storage element and a second NAND string having a second non-volatile storage element. The non-volatile storage device further includes a plurality of bit lines, a first of the bit lines is associated with the first NAND string, a second of the bit lines is associated with a second of the NAND strings. The non-volatile storage device further includes a plurality of word lines associated with the plurality of NAND strings and a common source line that is electrically connected to the plurality of NAND strings. The non-volatile storage device further includes one or more managing circuits in communication with the non-volatile storage elements. The one or more managing circuits establish a first voltage on the common source line. The one or more managing circuits establish a second voltage on the first bit line, the one or more managing circuits establish a third voltage on the second bit line. The second voltage is different from the third condition. The second voltage is less than the first voltage. The third voltage is less than the first voltage. The one or more managing circuits establish a fourth voltage on a selected word line. The fourth voltage is established while the second voltage and the third voltage are established on the first and second bit lines. The one or more managing circuits sense a first condition of the first non-volatile storage element in response to establishing the fourth voltage on the selected word line to determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage. The one or more managing circuits sense a second condition of the second non-volatile storage element in response to establishing the fourth voltage on the selected word line to determine whether the threshold voltage of the second non-volatile storage element is above or below a second reference voltage. In one embodiment, the first reference voltage is different from the second reference voltage. In one embodiment, the first reference voltage is the same as the second reference voltage.
One embodiment is a non-volatile storage device including a plurality of NAND strings of non-volatile storage elements. The NAND strings include a first NAND string having a first non-volatile storage element and a second NAND string having a second non-volatile storage element. The non-volatile storage device further includes a plurality of word lines associated with the plurality of NAND strings. The non-volatile storage device further includes one or more managing circuits in communication with the non-volatile storage elements. The one or more managing circuits determine whether the threshold voltage of the first non-volatile storage element is above or below a first reference voltage within a voltage range. The one or more managing circuits determine whether the threshold voltage of the second non-volatile storage element is above or below the first reference voltage. The one or more managing circuits determine a first voltage difference to apply across the first NAND string based on the threshold voltage of the first non-volatile storage element. The one or more managing circuits determine a second voltage difference to apply across the second NAND string based on the threshold voltage of the second non-volatile storage element, the first voltage difference is different than the second voltage difference, the one or more managing circuits cause the first voltage difference across the first NAND string while causing the second voltage difference across the second NAND string. The one or more managing circuits apply a read voltage to a selected word line that is associated with the first non-volatile storage element and with the second non-volatile storage element while causing the first and second voltage differences. The one or more managing circuits sense a first condition of the first non-volatile storage element in response to the first voltage difference and read voltage to determine whether the threshold voltage of the first non-volatile storage element is above or below a second reference voltage within the voltage range, the one or more managing circuits sense a second condition of the second non-volatile storage element in response to the second voltage difference and read voltage to determine whether the threshold voltage of the second non-volatile storage element is above or below a third reference voltage within the voltage range, the third reference voltage is different from the second reference voltage.
One embodiment includes a non-volatile storage device including a plurality of NAND strings of non-volatile storage elements. The NAND strings include a first NAND string having a first non-volatile storage element and a second NAND string having a second non-volatile storage element, the non-volatile storage elements each having a gate and a source. The non-volatile storage device includes a plurality of word lines associated with the plurality of NAND strings and one or more managing circuits in communication with the non-volatile storage elements. The one or more managing circuits program the non-volatile storage elements to “n+1” data states, each data state corresponding to a range of threshold voltages, adjacent data states having overlapping ranges of threshold voltages. The one or more managing circuits perform “n” sense operations at “n” references voltages that fall within the overlapping ranges of threshold voltages between each of the data states to determine whether the threshold voltage of each non-volatile storage element in a subset of the non-volatile storage elements is greater or less than each of the “n” references voltages. The one or more managing circuits perform an additional sense operation for each of the “n” sense operations. Each of the additional sense operations includes simultaneously sensing a first group of non-volatile storage elements in the subset having a threshold voltage greater than the “nth” reference voltage at a first offset voltage from the “nth” reference voltage while sensing a second group of non-volatile storage elements in the subset having a threshold voltage less than the “nth” reference voltage at a second offset voltage from the “nth” reference voltage. The first and second offsets are different. The one or more managing circuits sense at the first offset voltage from the “nth” reference voltage includes applying a first gate-to-source voltage difference to non-volatile storage elements in the first group and sensing first conditions of non-volatile storage elements in the first group in response to the first gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the first group is above or below the first offset from the “nth” reference voltage. The one or more managing circuits sense at the second offset voltage from the “nth” reference voltage, which includes applying a second gate-to-source voltage difference to non-volatile storage elements in the second group and sensing second conditions of non-volatile storage elements in the second group in response to the second gate-to-source voltage difference to determine whether the threshold voltages of non-volatile storage elements in the second group is above or below the second offset from the “nth” reference voltage.
The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
This application is a divisional application of U.S. patent application Ser. No. 12/732,121, entitled “SIMULTANEOUS MULTI-STATE READ OR VERIFY IN NON-VOLATILE STORAGE,” filed Mar. 25, 2010, now U.S. Pat. No. 8,233,324, which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5163021 | Mehrotra et al. | Nov 1992 | A |
5543738 | Lee et al. | Aug 1996 | A |
5838612 | Calligaro et al. | Nov 1998 | A |
6069821 | Jun et al. | May 2000 | A |
7002843 | Guterman et al. | Feb 2006 | B2 |
7020026 | Guterman et al. | Mar 2006 | B2 |
7073103 | Gongwer et al. | Jul 2006 | B2 |
7280408 | Guterman et al. | Oct 2007 | B2 |
7349264 | Mokhlesi et al. | Mar 2008 | B2 |
7414887 | Guterman et al. | Aug 2008 | B2 |
7460406 | Mokhlesi et al. | Dec 2008 | B2 |
7778106 | Mokhlesi | Aug 2010 | B2 |
7843726 | Roohparvar et al. | Nov 2010 | B2 |
8040725 | Kang | Oct 2011 | B2 |
20040213031 | Hosono et al. | Oct 2004 | A1 |
20050162913 | Chen | Jul 2005 | A1 |
20070121383 | Chen et al. | May 2007 | A1 |
20070147141 | Shibata | Jun 2007 | A1 |
20100074015 | Chandrasekhar et al. | Mar 2010 | A1 |
20110007568 | Chang et al. | Jan 2011 | A1 |
20110235420 | Sharon et al. | Sep 2011 | A1 |
Number | Date | Country |
---|---|---|
1814123 | Jan 2007 | EP |
2008063970 | May 2008 | WO |
Entry |
---|
Office Action Restriction dated Jan. 19, 2012, U.S. Appl. No. 12/732,121, filed Mar. 25, 2010, 8 pages. |
Response to Office Action Restriction dated Feb. 15, 2012, U.S. Appl. No. 12/732,121, filed Mar. 25, 2010, 24 pages. |
International Search Report and Written Opinion of the International Searching Authority dated Jul. 6, 2011, PCT Application No. PCT/US2011/029256, filed Mar. 21, 2011, 10 pages. |
Response to European Office Action (Written Opinion of the International Searching Authority) dated May 23, 2013, European Patent Application No. 11713909.7, filed Mar. 21, 2011, 18 pages. |
Number | Date | Country | |
---|---|---|---|
20120250415 A1 | Oct 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12732121 | Mar 2010 | US |
Child | 13491166 | US |