WO2007149678A2 - Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory - Google Patents
Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory Download PDFInfo
- Publication number
- WO2007149678A2 WO2007149678A2 PCT/US2007/069713 US2007069713W WO2007149678A2 WO 2007149678 A2 WO2007149678 A2 WO 2007149678A2 US 2007069713 W US2007069713 W US 2007069713W WO 2007149678 A2 WO2007149678 A2 WO 2007149678A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- volatile storage
- storage element
- state
- data
- programmed
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5634—Reference cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
Definitions
- the present invention relates to programming non-volatile memory.
- Non-volatile semiconductor memory devices have become more popular for use in various electronic devices.
- non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices.
- Electrical Erasable Programmable Read Only Memory (EEPROM), including flash EEPROM, and Electronically Programmable Read Only Memory (EPROM) are among the most popular non-volatile semiconductor memories.
- FIG. 1 is a top view showing one NAND string.
- Figure 2 is an equivalent circuit thereof.
- the NAND string depicted in Figures 1 and 2 includes four transistors 100, 102, 104 and 106 in series and sandwiched between a first select gate 120 and a second select gate 122.
- Select gate 120 connects the NAND string to bit line 126.
- Select gate 122 connects the NAND string to source line 128.
- Select gate 120 is controlled by applying appropriate voltages to control gate 120CG via selection line SGD.
- Select gate 122 is -2-
- Each of the transistors 100, 102, 104 and 106 includes a control gate and a floating gate, forming the gate elements of a memory cell.
- transistor 100 includes control gate IOOCG and floating gate 100FG.
- Transistor 102 includes control gate 102CG and a floating gate 102FG.
- Transistor 104 includes control gate 104CG and floating gate 104FG.
- Transistor 106 includes a control gate 106CG and a floating gate 106FG.
- Control gate IOOCG is connected to word line WL3
- control gate 102CG is connected to word line WL2
- control gate 104CG is connected to word line WLl
- control gate 106CG is connected to word line WLO.
- Figures 1 and 2 show four memory cells in the NAND string, the use of four transistors is only provided as an example.
- a NAND string can have less than four memory cells or more than four memory cells.
- some NAND strings will include eight memory cells, 16 memory cells, 32 memory cells, etc. The discussion herein is not limited to any particular number of memory cells in a NAND string.
- a typical architecture for a flash memory system using a NAND structure will include several NAND strings.
- Figure 3 shows three NAND strings 202, 204 and 206 of a memory array having many more NAND strings.
- Each of the NAND strings of Figure 3 includes two select transistors or gates and four memory cells.
- NAND string 202 includes select transistors 220 and 230, and memory cells 222, 224, 226 and 228.
- NAND string 204 includes select transistors 240 and 250, and memory cells 242, 244, 246 and 248.
- Each string is connected to the source line by one select gate (e.g. select gate 230 and select gate 250).
- a selection line SGS is used to control the source side select gates.
- the various NAND strings are connected to respective bit lines by select gates 220, 240, etc., which are controlled by select line SGD. In other embodiments, the select lines do not necessarily need to be in common.
- Word line WL3 is connected to the control -3-
- Word line WL2 is connected to the control gates for memory cell 224 and memory cell 244.
- Word line WLl is connected to the control gates for memory cell 226 and memory cell 246.
- Word line WLO is connected to the control gates for memory cell 228 and memory cell 248.
- a bit line and respective NAND string comprise a column of the array of memory cells.
- the word lines (WL3, WL2, WLl and WLO) comprise the rows of the array. Each word line connects the control gates of each memory cell in the row.
- word line WL2 is connected to the control gates for memory cells 224, 244 and 252.
- Each memory cell can store data (analog or digital).
- the range of possible threshold voltages of the memory cell typically referred to as a binary memory cell, is divided into two ranges which are assigned logical data "1" and "0.”
- the threshold voltage is negative after the memory cell is erased, and defined as logic "1.”
- the threshold voltage after a program operation is positive and defined as logic "0.”
- the threshold voltage is negative and a read is attempted by applying 0 volts to the control gate, the memory cell will turn on to indicate logic one is being stored.
- a multi-state memory cell can also store multiple levels of information, for example, multiple bits of digital data. In the case of storing multiple levels of data, the range of possible threshold voltages is divided into the number of levels of data. For example, if four levels of information are stored, there will A-
- the threshold voltage after an erase operation is negative and defined as "11.” Three different positive threshold voltages are used for the states of "10", "01", and "00.”
- the specific relationship between the data programmed into the memory cell and the threshold voltage ranges of the cell depends upon the data encoding scheme adopted for the memory cells. For example, U.S. Patent No. 6,222,762 and U.S. Patent Application No. 10/461,244, "Tracking Cells For A Memory System,” filed on June 13, 2003, both of which are incorporated herein by reference in their entirety, describe various data encoding schemes for multi-state flash memory cells. Additionally, embodiments in accordance with the present disclosure are applicable to memory cells that store more than two bits of data.
- a first memory cell can be programmed to add a level of charge to its floating gate that corresponds to a set of data.
- one or more adjacent memory cells are programmed to add a level of charge to their floating gates that correspond to a set of data.
- the charge level read from the first memory cell may appear to be different than when it was programmed because of the effect of the charge on the adjacent memory cell(s) being coupled to the first memory cell.
- the coupling from adjacent memory cells can shift the apparent charge level being read from a selected memory cell by a sufficient amount to lead to an erroneous reading of the stored data.
- Non-volatile memory read operations can compensate for floating gate coupling when the apparent threshold voltage of a memory cell may have shifted.
- a memory cell of interest can be read using a reference value based on a level of charge read from a neighboring memory cell. Misreading the neighboring cell may have greater effects in particular programming methodologies, and more specifically, when reading the neighboring cell for particular states or charge levels in those methodologies.
- memory cells are programmed to create a wider margin between particular states where misreading a neighboring cell is more detrimental.
- memory cells are read in one embodiment by compensating for floating gate coupling based on the state of a neighboring cell when reading at certain reference levels but not when reading at other reference levels, such as those where a wider margin has been created.
- a method of reading non-volatile storage in response to receiving a request to read a first non-volatile storage element, reads a second non-volatile storage element adjacent the first non-volatile storage element.
- a first reference is applied to read the first nonvolatile storage element at a level between a first programmed state and a second programmed state
- a second reference is applied to read the first non-volatile storage element at a level between the second programmed state and the third programmed state.
- Data of the first non-volatile storage element is determined using a result of applying the first reference at a first level and a result of applying the second reference at a second level when the second nonvolatile storage element is in a first subset of the physical states.
- determining data of the first non-volatile storage element uses a result of applying the first reference at the first level and a result of applying the second reference at a third level.
- a non-volatile memory system in one embodiment that includes a first group of memory cells from a set of memory cells that are programmed together, a second group of memory cells from the set, and a third group of memory cells from the set.
- the first group is programmed to a first programmed state associated with a first range of threshold voltages and the second group of is programmed to a second programmed state associated with a second range of threshold voltages.
- the first and second ranges of threshold voltages define a first margin of a first size between the first programmed state and the second programmed state.
- the third group is programmed to a third programmed state associated with a third range of threshold voltages.
- the second and third ranges of threshold voltages define a second margin between the second programmed state and the third programmed state of a second size smaller than the first size.
- Figure 1 is a top view of a NAND string.
- Figure 2 is an equivalent circuit diagram of the NAND string of Figure 1.
- Figure 3 is a circuit diagram depicting three NAND strings.
- Figure 4 is a block diagram of one embodiment of a non-volatile memory system.
- Figure 5 illustrates an exemplary organization of a memory array.
- Figure 6 depicts a program voltage signal in accordance with one embodiment.
- Figure 7 depicts an exemplary set of threshold voltage distributions and a full sequence programming process.
- Figure 8 depicts an exemplary set of threshold voltage distributions and a two-pass programming process.
- Figure 9A depicts exemplary threshold voltage distributions for a group of memory cells connected to a first word line before being programmed.
- Figure 9B depicts exemplary threshold voltage distributions for a group of memory cells connected to a second word line adjacent the first word line of Figure 9A after being programmed.
- Figure 1OA depicts the threshold voltage distributions for the group of memory cells of Figure 9A after being programmed.
- Figure 1OB depicts the threshold voltage distributions for the group of memory cells of Figure 9B after programming the group of memory cells depicted in Figure 1OA.
- Figure 11 depicts the threshold distributions of the memory cells of Figure 1OB with offset read reference voltages used to compensate for floating gate coupling.
- Figures 12A-12C depict exemplary threshold voltage distributions for a group of memory cells and a programming process that programs a select page of data for the group of memory cells after programming previous pages for adjacent groups of memory cells to reduce floating gate coupling effects.
- Figures 13A-13B depict the effects of floating gate coupling for memory cells programmed according to the process of Figures 12A-12C and exemplary read reference voltages that are used to compensate for the floating gate coupling.
- Figure 14 illustrates a programming and reading technique in accordance with one embodiment and the threshold voltage distributions of a group of memory cells programmed according to the programming technique.
- Figure 15 is a flowchart describing one embodiment of a process for programming non-volatile memory to create a larger margin between select memory states.
- Figure 16 is a flowchart describing one embodiment of a process for verifying programming of non-volatile memory to create a larger margin between select memory states.
- Figure 17 is a flowchart describing one embodiment of a process for reading non-volatile memory.
- Figure 18 is a flowchart describing one embodiment of a process for reading upper page data from non-volatile memory cells.
- Figure 19 is a flowchart describing one embodiment of a process for reading data without using compensation.
- Figure 20 is a flowchart describing one embodiment of a process for reading data while using compensation for floating gate coupling.
- Figure 21 is a flowchart describing one embodiment of a process for reading upper page data using compensation for floating gate coupling. -10-
- FIG. 4 is a block diagram of one embodiment of a flash memory system that can be used to implement one or more embodiments of the present disclosure. Other systems and implementations can be used.
- Memory cell array 302 is controlled by column control circuit 304, row control circuit 306, c- source control circuit 310 and p-well control circuit 308.
- Column control circuit 304 is connected to the bit lines of memory cell array 302 for reading data stored in the memory cells, for determining a state of the memory cells during a program operation, and for controlling potential levels of the bit lines to promote or inhibit programming and erasing.
- Row control circuit 306 is connected to the word lines to select word lines, to apply read voltages, to apply program voltages combined with the bit line potential levels controlled by column control circuit 304, and to apply an erase voltage.
- C-source control circuit 310 controls a common source connected to the memory cells.
- P-well control circuit 308 controls the p-well voltage.
- the data stored in the memory cells are read out by the column control circuit 304 and are output to external I/O lines via data input/output buffer 312.
- Program data to be stored in the memory cells are input to the data input/output buffer 312 via the external I/O lines, and transferred to the column control circuit 304.
- the external I/O lines are connected to controller 318.
- Column control circuitry 304 can include a plurality of sense blocks 320, each associated with one or more bit lines for performing sense operations. For example, a single sense block may be associated with eight bit lines and include one common portion and eight separate sense modules for the individual bit lines.
- a single sense block may be associated with eight bit lines and include one common portion and eight separate sense modules for the individual bit lines.
- the sense modules 320 determine whether a conduction current in a connected bit line or other parameter is above or below a predetermined threshold level.
- the sense module can determine the data stored in a sensed memory cell and store the determined data in a data latch stack 322.
- the data latch stack 322 is used to store data bits determined during read operations. It is also used to store data bits programmed into memory during a program operation.
- the data latch stack 322 for each sense module 320 includes three data latches.
- a sense module can also include a bit line latch that is used to set a voltage condition on the connected bit line. For example, a predetermined state latched in the bit line latch can result in the connected bit line being pulled to a state designating program inhibit (e.g., Vdd).
- Command data for controlling the flash memory device is input to controller 318.
- the command data informs the flash memory of what operation is requested.
- the input command is transferred to state machine 316 which is part of control circuitry 315.
- State machine 316 controls column control circuit 304, row control circuit 306, c-source control 310, p-well control circuit 308 and data input/output buffer 312.
- State machine 316 can also output status data of the flash memory such as READY/BUSY or PASS/FAIL.
- Controller 318 is connected to or connectable with a host system such as a personal computer, a digital camera, or personal digital assistant, etc. It communicates with the host that initiates commands, such as to store or read data to or from the memory array 302, and provides or receives such data. Controller 318 converts such commands into command signals that can be interpreted and executed by command circuits 314 which are part of control circuitry 315. Command circuits 314 are in communication with state machine 316. Controller 318 typically contains buffer memory for the user data being written to or read from the memory array. -12-
- One exemplary memory system comprises one integrated circuit that includes controller 318, and one or more integrated circuit chips that each contain a memory array and associated control, input/output and state machine circuits.
- the memory system may be embedded as part of the host system, or may be included in a memory card (or other package) that is removably inserted into the host systems.
- a memory card may include the entire memory system (e.g. including the controller) or just the memory array(s) with associated peripheral circuits (with the controller or control function being embedded in the host).
- the controller can be embedded in the host or included within the removable memory system.
- a NAND flash EEPROM is described that is partitioned into 1,024 blocks.
- the data stored in each block can be simultaneously erased.
- the block is the minimum unit of cells that are simultaneously erased.
- Memory cells are erased by raising the p- well to an erase voltage (e.g. 20 volts) and grounding the word lines of a selected block.
- the source and bit lines are floating. Erasing can be performed on the entire memory array, separate blocks, or another unit of cells. Electrons are transferred from the floating gate to the p-well region and the threshold voltage becomes negative (in one embodiment).
- each block in the example of Figure 5 there are 8,512 columns.
- Each block is typically divided into a number of pages which can be a unit of programming. Other units of data for programming are also possible and contemplated.
- individual pages may be divided into segments and the segments may contain the fewest number of cells that are written at one time as a basic programming operation.
- One or more pages of data are typically stored in one row of memory cells. -13-
- each block of the example in Figure 5 there are 8,512 columns that are divided into even columns and odd columns.
- the bit lines are divided into even bit lines (BLe) and odd bit lines (BLo).
- bit lines are divided into even bit lines (BLe) and odd bit lines (BLo).
- BLe even bit lines
- BLo odd bit lines
- FIG 5 shows four memory cells connected in series to form a NAND string. Although four cells are shown to be included in each NAND string, more or less than four can be used (e.g., 16, 32, or another number).
- One terminal of the NAND string is connected to a corresponding bit line via a first select transistor or gate (connected to select gate drain line SGD), and another terminal is connected to c-source via a second select transistor (connected to select gate source line SGS).
- a set of memory cells that are simultaneously selected can store more than one page of data.
- bit lines are not divided into odd and even bit lines. Such architectures are commonly referred to as all bit line architectures. In an all bit line architecture, all the bit lines of a block are simultaneously selected during read and program operations. Memory cells -14-
- the select gates of a selected block are raised to one or more select voltages and the unselected word lines (e.g., WLO, WLl and WL3) of the selected block are raised to a read pass voltage (e.g. 4.5 volts) to make the transistors operate as pass gates.
- the selected word line of the selected block (e.g., WL2) is connected to a reference voltage, a level of which is specified for each read and verify operation in order to determine whether a threshold voltage of the concerned memory cell is above or below such level. For example, in a read operation of a one bit memory cell, the selected word line WL2 is grounded, so that it is detected whether the threshold voltage is higher than OV.
- the selected word line WL2 is connected to 0.8V, for example, so that as programming progresses it is verified whether or not the threshold voltage has reached 0.8V.
- the source and p-well are at OV during read and verify.
- the selected bit lines (BLe) are pre-charged to a level of, for example, 0.7V. If the threshold voltage is higher than the read or verify level, the potential level of the concerned bit line (BLe) maintains the high level, because of the associated non-conductive memory cell. On the other hand, if the threshold voltage is lower than the read or verify level, the potential level of the concerned bit line (BLe) decreases to a low level, for example less than 0.5V, because of the conductive memory cell.
- Other current and voltage sensing techniques can be used in accordance with embodiments.
- state machine 316 steps through various predefined control gate reference voltages corresponding to the various memory states.
- the sense module will -15-
- a processor in the sense module can determine the resultant memory state by consideration of the tripping event(s) and information about the applied control gate voltage from the state machine.
- a binary encoding for the memory state is computed and stored in the data latches.
- data to be programmed to a set of cells can be stored in the set of data latches 322 for each bit line.
- the drain and p-well of the memory receive OV while the control gates of the addressed memory cells receive a series of programming pulses with increasing magnitudes.
- the magnitudes of the pulses in the series range from 12V to 24V. In other embodiments, the range can be different, for example, having a starting level higher than 12V.
- verify operations are carried out between programming pulses.
- the programmed level of each cell being programmed in parallel is read between each programming pulse to determine whether or not it has reached or exceeded a verify level for the state to which it is being programmed.
- the verify level can be a target minimum threshold voltage for cells in the corresponding memory state.
- One means of verifying programming tests conduction at specific compare points. Cells verified to be sufficiently programmed are locked out to inhibit further programming. The voltage of a verified cells bit line is raised from OV to Vdd (e.g., 2.5 volts) for subsequent programming pulses to terminate the programming process for those cells. In some cases, the number of pulses is limited (e.g. 20 pulses) and if a given memory cell is not sufficiently programmed by the last pulse, an error is assumed
- Figure 6 depicts a program voltage signal in accordance with one embodiment.
- This signal has a set of pulses with increasing magnitudes.
- the magnitude of the pulses is increased with each pulse by a predetermined step size.
- an exemplary step size is 0.2 volts (or 0.4 volts).
- program pulses are the verify pulses.
- the signal of Figure 6 assumes a four state memory cell, therefore, it includes three verify pulses.
- the first verify pulse 334 is depicted at a OV verify voltage level.
- the second verify pulse 336 follows the first verify pulse at the second verify voltage level.
- the third verify pulse 338 follows the second verify pulse 336 at the third verify voltage level.
- a multi-state memory cell capable of storing data in eight states may need to perform verify operations at seven compare points.
- seven verify pulses are applied in sequence to perform seven verify operations at seven verify levels between two consecutive programming pulses. Based on the seven verify operations, the system can determine the state of the memory cells.
- One means for reducing the time burden of verifying is to use a more efficient verify process, for example, as disclosed in: U.S. Patent Application Serial No. 10/314,055, entitled “Smart Verify for Multi-State Memories,” filed December 5, 2002; U.S. Patent Application Serial No. 11/259,799, entitled “Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify, filed October 27, 2005; and U.S. Patent Application Serial No. 11/260,658, entitled “Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify,” filed October 27, 2005, all of which are incorporated herein by reference in their entirety.
- 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.
- Figure 7 illustrates threshold voltage distributions for a group of memory cells when each memory cell stores two bits of data.
- Figure 7 shows a first threshold voltage distribution E for -17-
- the threshold voltages in the E distribution are negative and the threshold voltages in the A, B and C distributions are positive.
- Each distinct threshold voltage range of Figure 7 corresponds to predetermined values for the set of data bits.
- the specific relationship between the data programmed into the memory cell and the threshold voltage levels of the cell depends upon the data encoding scheme adopted for the cells.
- data values are assigned to the threshold voltage ranges using a gray code assignment so that if the threshold voltage of a floating gate erroneously shifts to its neighboring physical state, only one bit will be affected.
- gray coding is not used.
- One example assigns "11" to threshold voltage range E (state E), “10” to threshold voltage range A (state A), “00” to threshold voltage range B (state B) and "01” to threshold voltage range C (state C).
- Figure 7 shows four states, embodiments in accordance with the present disclosure can also be used with other multi-state structures including those that include more or less than four states.
- Figure 7 shows three read reference voltages, Vra, Vrb and Vrc, for reading data from memory cells.
- Figure 7 also shows three verify reference voltages, Vva, Vvb and Vvc spaced equally from one another.
- the verify voltages define the range of threshold voltages assigned to a particular physical state and the forbidden ranges therebetween. The verify levels are spaced to provide sufficient margin between the highest threshold voltage in one state and the lowest threshold voltage in the next state. A naturally occurring larger margin exists between erased sate E and first programmed state A.
- FIG 7 further depicts full sequence programming.
- memory cells are programmed from the erased state E directly to any of the programmed states A, B or C.
- a population of memory cells to be programmed may first be erased so that all the memory cells are in erased state E.
- a series of program voltage pulses is then applied to the control gates of the selected memory cells to program the memory cells directly into states A, B or C. While some memory cells are being programmed from state E to state A, other memory cells are being programmed from state E to state B and/or from state E to state C.
- Figure 8 illustrates an example of a two-pass technique of programming multi-state memory cells that store data for two different pages: a lower page and an upper page.
- states are depicted: state E (11), state A (10), state B (00) and state C (01).
- state E both pages store a "1.”
- state A the lower page stores a "0" and the upper page stores a "1.”
- state B both pages store "0.”
- state C the lower page stores "1" and the upper page stores "0.”
- bit patterns may also be assigned.
- the cell's threshold voltage level is set according to the bit to be programmed into the lower logical page. If that bit is a logic "1," the threshold voltage is not changed since it is in the appropriate state as a result of having been earlier -19-
- the threshold level of the cell is increased to be state A, as shown by arrow 450. That concludes the first programming pass.
- the cell's threshold voltage level is set according to the bit being programmed into the upper logical page. If the upper logical page bit is to store a logic "1,” then no programming occurs since the cell is in one of the states E or A, depending upon the programming of the lower page bit, both of which carry an upper page bit of "1.” If the upper page bit is to be a logic "0,” then the threshold voltage is shifted. If the first pass resulted in the cell remaining in the erased state E, then in the second phase the cell is programmed so that the threshold voltage is increased to be within state C, as depicted by arrow 454.
- the memory cell is further programmed in the second pass so that the threshold voltage is increased to be within state B, as depicted by arrow 452.
- the result of the second pass is to program the cell into the state designated to store a logic "0" for the upper page without changing the data for the lower page.
- a system can be set up to perform full sequence writing if enough data is written to fill up an entire page. If not enough data is written for a full page, then the programming process can program the lower page with the data received. When subsequent data is received, the system will then program the upper page.
- the system can start writing data using the two-pass technique and then convert to full sequence programming mode if enough data is subsequently received to fill up an entire (or most of a) word line's memory cells. More details of such an embodiment are disclosed in U.S. Patent Application titled "Pipelined Programming of Non- Volatile Memories Using Early Data," Serial No. 11/013,125, filed on December 14, 2004, inventors Sergy Anatolievich Gorobets and Yan Li, incorporated herein by reference in its entirety. -20-
- Floating gate coupling can cause unrecoverable errors during read operations which may necessitate the performance of error recovery during reading.
- the charge stored on the floating gate of a memory cell can undergo an apparent shift because of electrical field coupling from charge stored at a neighboring memory cell's floating gate or other charge storage region (e.g., dielectric charge storage region). While in theory the electric field from a charge on the floating gate of any memory cell in a memory array can couple to the floating gate of any other memory cell in the array, the effect is most pronounced and noticeable with adjacent memory cells.
- Adjacent memory cells may include neighboring memory cells that are on the same bit line, neighboring memory cells on the same word line, or neighboring memory cells that are on both a neighboring bit line and neighboring word line, and thus, adjacent from each other in a diagonal direction.
- the apparent shift in charge can result in errors when reading the memory state of a memory cell.
- rows of memory cells are programmed starting with the word line (WLO) adjacent to the source side select gate line.
- Programming proceeds sequentially thereafter by word line (WLl, WL2, WL3, etc.) through the strings of cells such that at least one page of data is programmed in an -21-
- adjacent word line (WLn+ 1) after completing programming (placing each cell of the word line into its final state) of the preceding word line (WLn).
- This pattern of programming results in an apparent shift of the threshold voltage of memory cells after they have been programmed due to floating gate coupling. For every word line except the last word line of a string to be programmed, an adjacent word line is programmed subsequent to completing programming of the word line of interest. The negative charge added to the floating gates of memory cells on the adjacent, later programmed word line raises the apparent threshold voltage of the memory cells on the word line of interest.
- Figures 9A- 1OB depict the effects of floating gate coupling for a set of memory cells programmed using full sequence programming as depicted in Figure 7.
- Figure 9B depicts the threshold voltage distributions for a set of memory cells of selected word line WLn after being programmed.
- Distribution 500 depicts the actual threshold voltage distribution of cells at WLn in erased (not programmed) state E
- distribution 505 depicts the actual threshold voltage distribution of cells at WLn programmed to state A
- distribution 510 depicts the actual threshold voltage distribution of cells at WLn programmed to state B
- distribution 520 depicts the actual threshold voltage distribution of cells at WLn programmed to state C.
- the set of memory cells could include each memory cell of a selected row or word line WLn or just the cells of WLn connected to a particular type of bit line (even or odd).
- Figure 9A depicts the threshold voltage distribution for the memory cells of an adjacent word line WLn+ 1 before programming.
- the cells of WLn+ 1 are programmed after programming the cells of WLn. Because each cell at WLn+ 1 is erased and not yet programmed, they cause no adverse floating gate coupling effects on the cells of WLn. More importantly, they are in the same state as they were when programming WLn so that the cells of WLn have apparent threshold voltages equal to the level verified during programming. -22-
- Figure 1OA depicts the threshold voltage distribution for the set of memory cells of WL n+I after being programmed.
- the memory cells have been programmed from the erased threshold voltage distribution E to programmed threshold voltage distributions A, B, and C.
- the charge placed on the floating gates of the memory cells of word line WL n+I after programming word line WL n may alter the memory state of the memory cells of WL n as seen by the memory system during sensing.
- An electrical field associated with the charges on the floating gates of word line WL n+ I will couple to the floating gates of the memory cells at word line WL n .
- the electrical field will cause an apparent shift in the threshold voltage of the memory cells at WL n .
- Figure 1OB depicts the apparent threshold voltage distributions for the memory cells at word line WL n after programming WL n+I .
- Each programmed state is depicted with four different corresponding threshold voltage distributions.
- the overall distribution for each physical state can be broken down into four individual distributions based on the state to which adjacent memory cells at word line WL n+I were programmed.
- Each memory cell at word line WL n having an adjacent memory cell at WL n+I (on the same bit line) programmed to state A will experience a first level of shift in its apparent threshold voltage.
- Each cell at WL n having an adjacent cell at WL n+I in state B will experience a second, larger shift in apparent threshold voltage.
- Each cell having an adjacent cell at WL n+I in state C will experience a third, even larger shift.
- distribution 502 depicts the threshold voltages for those cells having an adjacent memory cell on word line WL n+I that remained in erased state E after programming.
- Distribution 504 depicts the threshold voltages for cells having an adjacent cell at word line WL n+I that was programmed to state A.
- Distribution 506 depicts the threshold voltages for cells having an adjacent cell at word line WL n+I that was programmed to state B.
- Distribution 508 depicts the threshold voltages for the memory cells having an adjacent cell at word line WL n+I that was programmed to state C.
- the memory cells at WL n programmed to the other states experience similar coupling effects. Accordingly, four individual threshold voltage distributions are also depicted for states B and C.
- the memory cells at word line WL n programmed to state B will appear to have four different threshold voltage distributions 512, 514, 516, and 518 based upon the subsequently programmed state of adjacent memory cells at word line WL n+I .
- the memory cells of WL n programmed to state C will likewise have four different distributions 522, 524, 526, and 528.
- the coupling effects are also experienced by the erased memory cells of WL n .
- the shifts are not depicted because the naturally occurring margin between erased state E and state A is generally sufficient that shifting does not cause errors in reading erased cells. However, the effects exist and the disclosed techniques can address those as well.
- Figure 11 depicts a reading technique that can be used to address some of the apparent shifts in threshold voltages illustrated in Figure 1OB.
- Figure 11 depicts the four distributions for each state of the cells at WL n depicted in -24-
- Figure 1OB have been condensed to distributions 530, 540, and 550 representing the cumulative effects of coupling on the population of memory cells.
- Distribution 530 represents the cells of WL n in state A after programming WL n+I
- distribution 540 represents the cells of WL n in state B after programming WL n+I
- distribution 550 represents the cells of WL n in state C after programming WL n+I .
- Distribution 530 includes the individual distributions 502-508,
- distribution 540 includes the individual distributions 512- 518 and distribution 550 includes the individual distributions 522-528.
- the data of word line WL n+I can also be read, and if the data on word line WL n+I has disturbed the data on WL n , the read process for WL n can compensate for that disturb.
- state or charge level information for the memory cells at word line WL n+I can be determined in order to select appropriate read reference voltages for reading individual memory cells of word line WL n .
- Figure 11 depicts individual read reference voltages for reading WL n based on the state of an adjacent memory cell at word line WL n+I .
- different offsets e.g., OV, 0.1V, 0.2V, 0.3V
- the results of sensing at different offsets selected as a function of the state of a memory cell on a neighboring word line.
- the memory cells at word line WLn are sensed using each of the different read reference voltages.
- the results from sensing at an appropriate one of the read reference voltages can be selected based upon the state of an adjacent memory cell at word line WLn+ 1.
- the read operation for WLn+ 1 determines the actual data stored at WLn+ 1, while in other embodiments, the read operation for WLn+ 1 only determines the charge levels of these cells, which may or may not accurately reflect the data stored at WLn+1. In some embodiments, the levels and/or the number of levels used to read WLn+1 may not be exactly the same as those used to read WLn. Some approximation of the floating gate threshold value can be sufficient for -25-
- the results of reading at WLn+ 1 can be stored in latches 322 at each bit line to be used when reading WLn.
- a read operation can first be performed for the word line of interest WLn at the nominal read reference voltage levels Vra, Vrb, and Vrc which do not compensate for any coupling effects.
- the results of reading at the nominal reference levels are stored in the appropriate latches for bit lines with memory cells where the neighboring cell at WLn+ 1 was determined to be in state E. For other bit lines, the data is disregarded and the WLn+ 1 data maintained.
- a read operation is then performed for word line WLn using a first set of offsets to the read reference voltages.
- the read process can use Vral (Vra + 0. IV), Vrbl (Vrb + 0.1V) and Vrcl (Vrc + 0.1V).
- the results from using these reference values are stored for bit lines with memory cells having neighboring memory cells at WL n+I in state A.
- a read operation is then performed with a second set of offsets using read reference levels Vra2 (Vra + 0.2V), Vrb2 (Vrb + 0.2V) and Vrc2 (Vrc + 0.2V).
- the results are stored in latches for bit lines with memory cells having neighbors at WL n+I in state B.
- a read operation is performed for word line WL n with a third set of offsets using reference levels Vra3 (Vra + 0.3V), Vrb3 (Vrb + 0.3V) and Vrc3 (Vrc + 0.3V) and the results stored for those bit lines having memory cells with neighboring cells at WL n+I in state C.
- Vra3 Vra + 0.3V
- Vrb3 Vrb + 0.3V
- Vrc3 Vrc + 0.3V
- the different offsets to the nominal read reference voltages can be selected as a function of the state of a memory cell on the adjacent word line.
- a set of offset values could include a OV offset corresponding to an adjacent cell in state E, a 0. IV offset corresponding to an adjacent cell in state A, a 0.2V offset corresponding to an adjacent cell in state B, and a 0.3V offset -26-
- the offset values will vary according to implementation.
- the offset values are equal to the amount of shift in apparent threshold voltage that results from an adjacent cell being programmed to a corresponding state.
- 0.3V may represent the shift in apparent threshold voltage for a cell at WL n when an adjacent cell at WL n+I is subsequently programmed to state C.
- the offset values need not be the same for every reference voltage.
- the offset values for the Vrb reference voltage may be OV, 0. IV, 0.2V, and 0.3V while those for the Vrc reference voltage may be OV, 0.15V, 0.25V and 0.35V.
- the increment in offsets need not be the same for every state.
- a set of offsets in one embodiment could include OV, 0.1V, 0.3V, and 0.4V for adjacent cells in states E, A, B, and C, respectively.
- reading with a plurality of individual read reference levels for a given state and selecting the results based on the state of an adjacent memory cell can be expected to reduce the effects of floating gate charge coupling by about 50 percent.
- the threshold voltage distributions for a word line of memory cells as read by a sense module can be effectively narrowed by about 50 percent using these techniques.
- Figures 12A-12C disclose a process for programming non-volatile memory that reduces floating gate to floating gate coupling by, for any particular memory cell, writing to that particular memory cell with respect to a particular page subsequent to writing to adjacent memory cells for previous pages.
- each cell stores two bits of data per memory cell, using four data states. Erased state E stores data 11, state A stores data 01, state B stores data 10, and state C stores data 00. Other encodings of data to physical data states can also be used.
- Each memory cell stores a portion of two logical pages of data.
- State A is encoded to store bit 0 for the upper page and bit 1 for lower page
- state B is encoded to store bit 1 for the upper page and bit 0 for the lower page
- state C is encoded to store bit 0 for both pages.
- the lower page data for memory cells at a word line WLn are programmed in a first step depicted in Figure 12A and upper page data for the cells is programmed in a second step depicted in Figure 12C. If the lower page data is to remain data 1 for a cell, then the cell's threshold voltage remains at state E during the first step. If the data is to be programmed to 0, then the threshold voltage of the memory cell is raised to state B'.
- State B' is an interim state B having a verify level Vvb', which is lower than Vvb.
- the neighboring memory cells at adjacent word line WL n+I will be programmed with respect to their lower page.
- the lower page for memory cells at WL2 in Figure 3 may be programmed after the lower page for memory cells at WLl.
- Floating gate coupling may raise the apparent threshold voltage of memory cell 226 if the threshold voltage of memory cell 224 is raised from state E to state B' after programming memory cell 226.
- the cumulative coupling effect on the memory cells at WLn will widen the apparent threshold voltage distribution of threshold voltages for the cells, as depicted as in Figure 12B. The apparent widening of the threshold voltage distribution can be remedied when programming the upper page for the word line of interest.
- Figure 12C depicts the process of programming the upper page for the cell at WLn. If a memory cell is in erased state E and its upper page bit is to remain at 1, the memory cell remains in state E. If the memory cell is in state E and its upper page data bit is to be programmed to 0, the threshold voltage of the memory cell is raised to be within the range for state A. If the memory cell was in intermediate threshold voltage distribution B' and its upper page data is to remain 1, the memory cell is programmed to final state B. If the memory cell is in intermediate threshold voltage distribution B' and its upper page data is to -28-
- Figures 12A-12C provide an example with respect to four data states and two pages of data, the concepts taught by Figures 12A-12C can be applied to other implementations with more or less than four states and different numbers of pages.
- Figure 13A depicts the effects of floating gate coupling for the programming technique of Figures 12A-12C and Figure 13B depicts a read method using compensation offsets to overcome some of these effects.
- the memory cells of word line WLn+ 1 adjacent world line WLn are programmed during a second pass to program their upper page data as shown in Figure 12C. During this second pass, memory cells are programmed from either state E to state A, or from intermediate state B' to state B or state C.
- the memory cells of the word line of interest WLn are depicted in Figure 13 A and were programmed with respect to their upper page after the lower page for the memory cells at word line WLn+ 1 were programmed. Therefore, the upper page programming depicted in Figure 12C is the only programming to affect the apparent threshold voltage for the memory cells at word line WLn.
- the memory cells of word line WLn+ 1 programmed from state E to state A undergo a similar change in threshold voltage as the cells programmed from intermediate state B' to state C.
- Memory cells of adjacent word line WLn+ 1 that are programmed from intermediate state B' to state B do not undergo a significant increase in threshold voltage and cause little effect on the apparent threshold voltage of cells at WLn.
- the memory cells of WLn programmed to state A are represented by individual distributions 652, 654, -29-
- the memory cells at WLn programmed to state B are represented by individual distributions 662, 664, 666, and 668 corresponding to the state B cells having a neighboring cell at WLn+1 in state E, in state B, in state A, and in state C, respectively.
- the memory cells of WLn programmed to state C are represented by individual distributions 672, 674, 676, and 678 corresponding to the state C cells having a neighboring cell at WLn+1 in state E, in state B, in state A, and in state C, respectively.
- some memory cells of WLn may have their apparent threshold voltages shifted close to or beyond the read reference voltages Vrb or Vrc. This may cause read errors.
- the described coupling effects are applicable to the WLn erased distribution, and the disclosed technology is equally applicable thereto. The effects on erased cells are not principally described because of the natural margin between state E and state C.
- Figure 13B depicts offsets for the read reference levels that can be used with the programming technique of Figures 12A-12C.
- distributions 652, 654, 656, and 658 are depicted in a single combined distribution 651
- distributions 662, 664, 666, and 668 are depicted in combined distribution 661
- distributions 672, 674, 676, and 678 are depicted in combined distribution 671.
- Distributions 650, 660, and 670 represent the cells of WLn before programming upper page data at WLn+1.
- the similar effects of coupling from cells on an adjacent word line programmed to state A or state C are grouped together to form a single offset for each of these state levels.
- Misreads of an adjacent word line when attempting to determine an appropriate offset for reading a cell of interest can actually prove more problematic for cells programmed with the technique of Figures 12A-12C.
- a misread of a memory cell at word line WLn+ 1 when applying the state B read reference voltage Vrb If the memory cell at WLn+ 1 is programmed to state A and is misread as being in state B, the results of the read operation for the corresponding memory cell at word line WLn using the nominal read reference voltages will be selected and reported. No compensation for floating gate coupling is used since it is determined that the cell at WLn+ 1 is in state B and thus, only underwent a minor change in threshold voltage after programming WLn.
- the memory cell at WLn+ 1 will likely exhibit a strong influence on the apparent threshold voltage of the cell at WLn. It is likely that the cell at WLn+ 1 is at the upper end of the state A distribution, which is why it was misread. Thus, the memory cell at WLn+ 1 has undergone a large change in charge at its floating gate when being programmed from state E to the upper end of state A. The large change in charge stored by the cell at WLn+ 1 will cause a significant shift in the apparent threshold voltage of the cell at WLn. No compensation for this shift is used, however, because of the misread at WLn+1. Thus, it is possible, or even likely, that the memory cell at WLn will be misread as a result of the WLn+1 misread.
- the memory cell has a threshold voltage at the lower end of the state B distribution.
- the memory cell will have undergone very little change in threshold voltage after programming the memory cells at WLn+ 1. Consequently, very little or no shift in the apparent threshold voltage of the corresponding cell at WLn will occur.
- the results of the read operation at WLn for the corresponding memory cell will select results from reading at compensated reference levels. Because the memory cell of interest has not experienced a significant shift in apparent threshold voltage, selecting the results when the compensated reference levels are used may cause a misread or error at WLn.
- a shifted verification level is used when programming one or more selected states, such as state B, to create a larger margin between certain states for improved sensing accuracy.
- offset compensated read reference levels are not used at the level corresponding to the wider margin, but are used at other levels in order to provide a more efficient read for higher performance.
- Figure 14 depicts the threshold voltage distributions for a set of memory cells programmed in accordance with one embodiment of the present disclosure. Distributions 678, 680, 684, and 688 depict the set of memory cells after being programmed but before programming the cells at adjacent word line WLn+ 1.
- a shifted program verification level Vvbl is used in Figure 14 when programming memory cells to state B.
- the embodiment of Figure 14 may be used when programming according to the technique shown in Figures 12A-12C. Verify level Vvbl is higher than that of Vvb in the traditional operation shown in Figure 12C so that a larger margin is created between state A and state B.
- the highest threshold voltage of any memory cell in state A remains the same as in the traditional technique.
- the lowest threshold voltage of any cell in state B is shifted in the positive direction.
- the increased verification level when programming memory cells to state B increases the margin between state A and state B.
- the margin 683 between states A and B is larger than the margin 685 between states B and C. Consequently, misreads are less likely to occur when sensing at the state B reference voltage level Vrb.
- Distributions 682, 686, and 690 illustrate the effects of floating gate coupling after a neighboring word line WL n+I is programmed (e.g., as illustrated in Figure 12C).
- the Vrb read level is well spaced between the apparent A state distribution 682 and apparent B state distribution 686. Consequently, misreads are less likely to occur since even after the coupling effects from neighboring word lines are considered, the Vrb read level does not overlap the threshold voltage of any cell intended to be in state A.
- the reference level Vrb is shifted from the traditional level used (e.g., Vrb in Figure 12C) by an amount corresponding to the shift in program verify level Vvbl from its nominal value Vvb shown in Figure 12C. Because -33-
- Vrb can be shifted well beyond the highest threshold voltage of any memory cell in state A, the single reference value Vrb can be used during reading and no compensations applied.
- offsets for the read reference voltages are not used when reading at the state B level in one embodiment.
- offsets to the read reference voltage are only used for the highest state, state C.
- the larger margin between state A and state B that exists by virtue of the higher verification level permits accurate reading at the state B level without directly compensating for floating gate coupling.
- This technique not only reduces misreads, it also improves read times because additional reads at offset levels are only used at select states.
- only one additional sense operation is performed. In addition to improving performance and read times the reduced number of sense operations decreases the complexity and size of cache circuitry needed to maintain data regarding adjacent memory cells when sensing a selected memory cell.
- the following read reference and program verification levels can be used in one embodiment when implementing the technique of Figure 14.
- the margin between state A and state B in one exemplary system may be expected to be on the order of 0.7V, and about the same as the margin between state B and state C.
- a shifted verify level for state B would result in such a system having a margin between state A and state B on the order of 0.7V, and a margin between state B and state C on the order of 0. IV.
- Figure 15 is a flowchart describing one embodiment of a method for programming non-volatile memory to achieve unequally sized margins as depicted in Figure 14.
- the programming method depicted in Figure 15 can be used to program a group of memory cells in parallel, such as those connected to a single word line.
- Figure 15 can also be used to program select memory cells of a word line such as in an odd/even bit line architecture.
- a first set of iterations from step 860 through step 882 is used to program a first logical page for a group of memory cells and a second iteration through steps 860-882 can be used to program a second logical page for the group of memory cells.
- Step 850 The memory cells to be programmed are erased at step 850.
- Step 850 can include erasing more memory cells than those to be programmed (e.g., in blocks or other units).
- soft programming is performed to narrow the distribution of erased threshold voltages for the erased memory cells. Some memory cells may be in a deeper erased state than necessary as a result of the erase process. Soft programming can apply small programming pulses to move the threshold voltage of the erased memory cells closer to the erased verify level. This will provide a narrower distribution for the erased memory cells.
- a data load command is issued by controller 318 and input to command circuits 314, allowing data to be input to data input/output buffer 312.
- the input data is recognized as a command and latched by state machine 316 via a command latch signal, not illustrated, input to command circuits 314.
- address data designating the page address is input to row controller 306 from the host.
- the input data is recognized as a page address and latched via state machine 316, effected by the address latch signal input to command circuits 314.
- the page of program data for the addressed page is -35-
- data input/output buffer 312 for programming. For example 532 bytes of data could be input in one exemplary embodiment.
- the input data is latched in the appropriate registers for the selected bit lines. In some embodiments the data is also latched in a second register for the selected bit lines to be used for the verify operations.
- a program command is issued by the controller and input to data input/output buffer 312. The command is latched by state machine 316 via the command latch signal input to command circuits 314.
- the data latched in step 858 is programmed into the selected memory cells controlled by state machine 316.
- the program voltage signal is applied to the appropriate word line corresponding to the page or other unit of cells being programmed.
- Vpgm the programming pulse voltage level is initialized to the starting pulse (e.g., 12V) and a program counter PC maintained by state machine 316 is initialized at zero.
- the first Vpgm pulse is applied to the selected word line. If logic zero is stored in a particular data latch indicating that the corresponding memory cell should be programmed, then the corresponding bit line is grounded. On the other hand, if logic 1 is stored in the particular latch indicating that the corresponding memory cell should remain in its current data state, the corresponding bit line is connected to V DD to inhibit programming.
- the states of the selected memory cells are verified.
- the process depicted in Figure 15 has proceeded according to well known techniques.
- the process includes a novel technique to create unequally spaced margins that facilitate more accurate reads of select levels.
- a larger margin is created between two programmed states.
- the larger margin is created between lower level states while the highest state remains in its nominal position.
- verifying is performed so that a larger margin exists between state B and state A.
- the highest level state or higher level states may also be shifted in the positive direction by using larger verify voltages at those levels.
- shifting the distributions to an overall higher positive voltage can be unacceptable in some implementations where the voltage levels (e.g., Vpgm) are to be kept to a certain maximum level for such reasons as minimizing program disturb, etc.
- Unequally spaced verify levels are used at step 866 in one embodiment to create unequal margins.
- the verify level Vvbl for the second programmed state B is spaced from the verify level for the first programmed state, state A, by a different amount than that by which the verify level for the third programmed state, state C, is separated from the verify level for the second program state, state B.
- the verify levels Vva, Vvb and Vvc define the lowest minimum threshold voltage for their particular states.
- step 868 After sensing with the reference voltages applied, it is checked whether all of the data latches are storing logic 1 at step 868. If so, the program process is complete and successful because all selected memory cells were programmed and verified to their target states. A status of pass is reported at step 876. If it is determined at step 868 that not all of the data latches are storing logic 1, the process continues at step 872 where the program counter PC is checked against a program limit value. One example of a program limit value is 20 although other values can be used in various embodiments. If the program counter PC is not less than 20 then it is determined at step 874 whether the number of unsuccessfully programmed memory cells is less than or equal to a predetermined number. If the number of unsuccessfully programmed cells is equal to or less than this number then the process is flagged as passed and a status of pass is reported at step 876. The bits that are not successfully programmed can be corrected using error correction during the read process. If -37-
- the program process is flagged as failed and a status of fail is reported at step 878. If the program counter PC is less than 20 then the V pgm level is increased by the step size and the program counter PC is incremented at step 880. After step 880, the process loops back to step 864 to apply the next V pgm pulse.
- step 866 includes the use of unequally spaced verify levels so that unequally spaced margins exist for programmed memory cells.
- Figure 16 depicts one embodiment of step 866 of Figure 15.
- the first programmed state verify level Vva is applied.
- the bit lines are sensed with Vva applied to the memory cell at each bit line.
- the results are stored for cells that are to be programmed to state A.
- Step 886 can include setting the data latch for a bit line to a logic 1 to indicate that programming is to continue for that memory cell or to logic 0 indicating that the memory cell is at or above its target level and programming for that memory cell should be stopped.
- the second programmed state verify level Vvbl is applied to each memory cell being verified.
- Verify level Vvbl is spaced from verify level Vva by a first amount.
- Vva and Vvbl can be separated from one another by an amount equal to about 0.8V.
- the bit lines are sensed with Vvbl applied to each memory cell. The results are stored at 892 by indicating in the data latch for each bit line whether the corresponding memory cell has reached its target level.
- the third verify level Vvc is applied for the third programmed state. Verify level Vvc is spaced from verify level Vvbl by a second amount which is different from the first amount separating Vva and Vvbl.
- the spacing between verify levels Vvbl and Vvc is less than that between verify levels Vva and Vvbl.
- the bit lines are sensed with Vvc applied to each memory cell.
- the results are stored for the cells to be -38-
- state C for example, by indicating in a data latch whether the cells should undergo further programming.
- the unequally spaced verify levels result in a margin of a first size between states A and B and a margin of a second size between states B and C.
- the margin between states A and B is larger than that between states B and C because of the shifted Vvb verify level.
- Figure 17 is a flowchart depicting an overall process for reading data performed in response to a request to read a particular one or more pages or other groupings of data.
- the process of Figure 17 can be performed as part of a data recovery operation after detecting errors in response to a tradition read process.
- any perturbation from floating gate coupling due to programming the lower page of neighboring cells is corrected when programming the upper page of the cell of interest. Therefore, when attempting to compensate for the floating gate coupling effects from neighboring cells, the process need only consider the coupling effects due to programming the upper page of neighboring cells.
- the upper page data for the subsequently programmed word line neighboring the word line of interest is read. If the upper page of the neighboring word line is not programmed as determined at step 904, the word line or page of interest is read without compensating for floating gate coupling effects at step 908. If the upper page of the neighboring word line is programmed, the page of interest is read at step 906 using compensation for floating gate coupling effects. In some embodiments, reading the cells of the neighboring word line results in a determination of charge levels on the neighboring word line, which may or may not accurately reflect the data stored thereon. -39-
- a memory array reserves a set of memory cells to store one or more flags. For example, a column of memory cells can be used to store flags indicating whether the lower page of the respective rows of memory cells has been programmed and another column to store flags indicating whether the upper page for the respective rows of memory cells has been programmed. By checking an appropriate flag, it can be determined whether the upper page for the neighboring word line has been programmed. More details about such a flag and the process for programming can be found in United States Patent No. 6,657,891, Shibata et al, "Semiconductor Memory Device For Storing Multi-Valued Data," incorporated herein by reference in its entirety.
- Figure 18 describes one embodiment of a process for reading the upper page data for a neighboring word line that can be used at step 902 of Figure 17.
- Read reference voltage Vrc is applied to the word line at step 910, and at step 912, the bit lines are sensed as described above. The results of sensing are stored in the appropriate latches at step 914. Reading first at Vrc is chosen to uniquely determine upper page data since lower page data will normally already have been written to WL n+I and reading at Vra or Vrb will not guarantee a unique result since intermediate distribution B' ( Figure 12B) may overlap these values.
- step 916 the flag indicating upper page programming associated with the page being read is checked. If the flag is not set as determined at step 918, the process terminates with the conclusion that the upper page is not programmed at step 920. If the flag is set, it is assumed that the upper page is programmed.
- Read reference voltage Vrb is applied to the word line associated with the page being read at step 922.
- step 924 the bit lines are sensed and the results stored in the appropriate latches at step 926.
- step 928 read reference voltage Vra is applied.
- step 930 the bit lines are sensed and the results are stored in the appropriate latches at step 932.
- each of the memory cells being read is determined based on the results of sensing steps 912, 924 and 930.
- the data values can be stored in the appropriate data latches at step 936 for eventual communication to the user.
- the upper page and lower page data are determined using well known logic techniques that depend on the specific state coding chosen. For the exemplary coding described in Figures 12A-12C the lower page data is Vrb* (the complement of the value stored when reading at Vrb), and the upper page data is Vra* OR (Vrb AND Vrc*).
- the process of Figure 18, though here described as being used to read WL n+I can also be used to read WL n as described below.
- Figure 19 is a flowchart describing an embodiment for reading data of a word line of interest when compensating for floating gate coupling from a neighboring word line is not needed (step 908 of Figure 17).
- step 950 it is determined whether the upper page or lower page associated with the word line of interest is being read. If the lower page is being read, read reference voltage Vrb is applied to the appropriate word line at step 952.
- step 954 the bit lines are sensed, and at step 956 the results stored in the appropriate latches.
- a flag is checked to determine if the page of interest contains upper page data. If there is no flag set, any programmed data will be in the intermediate state B'.
- Vrb does not produce any accurate sensing result so the process continues at step 960 where Vra is applied to the word line.
- the bit lines are re- sensed at step 962, and at step 964, the results are stored.
- a data value to be stored is determined. In one embodiment, if the memory cell turns on with Vrb (or Vra) applied to the word line, then the lower page data is "1.” Otherwise, the lower page data is "0.”
- upper page reading at step 970 includes the same method described in Figure 18, which includes reading the flag and all three states since an unwritten upper page may be addressed for reading, or another reason. -41-
- Figure 20 is a flowchart describing one embodiment of a process for reading data while compensating for floating gate coupling, such as can be performed at step 906 of Figure 17. It is determined at step 966 whether to use an offset to compensate for floating gate coupling. Step 966 is performed separately for each bit line. The data from the neighboring word lines is used to determine which bit lines need to use the offset. If a neighboring cell is in state E or B the memory cell at the word line being read does not need a compensation applied during sensing. If the cell at WL n+I is in state E, it hasn't contributed any coupling because its threshold voltage is the same as before the word line of interest was written.
- Vrb is applied to the word line associated with the page being read at step 968. Reading at Vrb is sufficient to determine lower page data for the encoding shown in Figures 12A-12C.
- the bit lines are sensed, and at step 970, the results are stored in the appropriate latches for the bit lines. As shown in Figure 14, no compensation offsets are applied at the Vrb level so step 969 is the only lower page sensing performed. Because the cells are programmed to create a larger margin between state A and State B, an accurate read can be achieved without compensating for coupling.
- the data for the lower page is determined at step 971. If a cell turned on in response to Vrb, then the lower page data is 1; otherwise, the lower page data is 0. At step 972, the lower page data is stored in the appropriate latches for communication to the user.
- FIG. 21 is a flowchart describing an upper page read using offset read reference levels.
- read reference voltage Vrc is applied to the word line -42-
- bit lines are sensed at step 975 and the results are stored in the appropriate latches at step 976.
- Vrc plus an offset e.g. 0. IV
- the bit lines are sensed and at step 979, the results of sensing at step 978 are used to overwrite the results stored in step 976 for any bit line in which the offset is required.
- Vrb is applied to the word line and at step 981, the bit lines are sensed.
- the results of sensing at step 981 are stored at step 982.
- Vra is applied to the word line associated with the page being read at step 983.
- the bit lines are sensed at step 984 and at step 985 the results are stored in the appropriate latches.
- the naturally occurring margin between state E and state A is assumed to be sufficient such that an offset associated with Vra is not necessary. In other embodiments, offsets for the Vra level can be used.
- the data values are determined at step 986 and at step 987, the data values are stored in the appropriate data latches for communication to the user. In other embodiments the order of reading (Vrc, Vrb, Vra) may be changed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007800094350A CN101405812B (en) | 2006-06-19 | 2007-05-25 | Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory |
JP2009516620A JP4912460B2 (en) | 2006-06-19 | 2007-05-25 | Detecting individual size margin in nonvolatile memory read operation improvement and detection by compensation in selected state |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/425,116 | 2006-06-19 | ||
US11/425,111 | 2006-06-19 | ||
US11/425,116 US7352628B2 (en) | 2006-06-19 | 2006-06-19 | Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory |
US11/425,111 US7606084B2 (en) | 2006-06-19 | 2006-06-19 | Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007149678A2 true WO2007149678A2 (en) | 2007-12-27 |
WO2007149678A3 WO2007149678A3 (en) | 2008-04-10 |
Family
ID=38834213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/069713 WO2007149678A2 (en) | 2006-06-19 | 2007-05-25 | Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP4912460B2 (en) |
KR (2) | KR101020812B1 (en) |
CN (1) | CN102306501B (en) |
TW (2) | TWI336080B (en) |
WO (1) | WO2007149678A2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010002945A1 (en) | 2008-07-01 | 2010-01-07 | Lsi Corporation | Methods and apparatus for intercell interference mitigation using modulation coding |
WO2010039866A1 (en) | 2008-09-30 | 2010-04-08 | Lsi Corporation | Methods and apparatus for soft data generation for memory devices |
US8429500B2 (en) | 2010-03-31 | 2013-04-23 | Lsi Corporation | Methods and apparatus for computing a probability value of a received value in communication or storage systems |
US20130176778A1 (en) * | 2011-03-14 | 2013-07-11 | Lsi Corporation | Cell-level statistics collection for detection and decoding in flash memories |
US8504885B2 (en) | 2010-03-31 | 2013-08-06 | Lsi Corporation | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems |
US8775913B2 (en) | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
KR101541710B1 (en) | 2008-12-31 | 2015-08-12 | 샌디스크 테크놀로지스, 인코포레이티드 | Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations |
US9292377B2 (en) | 2011-01-04 | 2016-03-22 | Seagate Technology Llc | Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values |
US9898361B2 (en) | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7639532B2 (en) * | 2007-10-10 | 2009-12-29 | Micron Technology, Inc. | Non-equal threshold voltage ranges in MLC NAND |
US7800956B2 (en) * | 2008-06-27 | 2010-09-21 | Sandisk Corporation | Programming algorithm to reduce disturb with minimal extra time penalty |
JP2012069192A (en) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | Memory system |
CN102347069B (en) * | 2011-05-26 | 2013-04-03 | 忆正存储技术(武汉)有限公司 | Programming method for multi-layered flash memory array and switching control method thereof |
US9030870B2 (en) * | 2011-08-26 | 2015-05-12 | Micron Technology, Inc. | Threshold voltage compensation in a multilevel memory |
US8934306B2 (en) * | 2012-03-06 | 2015-01-13 | Micron Technology, Inc. | Memory and sense parameter determination methods |
US9146850B2 (en) * | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US11443175B2 (en) * | 2018-07-11 | 2022-09-13 | Silicon Storage Technology, Inc. | Compensation for reference transistors and memory cells in analog neuro memory in deep learning artificial neural network |
US11081189B1 (en) * | 2020-02-25 | 2021-08-03 | Micron Technology, Inc. | Charge loss compensation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867429A (en) * | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6657891B1 (en) * | 2002-11-29 | 2003-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device for storing multivalued data |
US20040136220A1 (en) * | 2002-10-29 | 2004-07-15 | Guy Cohen | Method circuit and system for determining a reference voltage |
US20050117401A1 (en) * | 2002-01-18 | 2005-06-02 | Jian Chen | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222762B1 (en) * | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5870335A (en) * | 1997-03-06 | 1999-02-09 | Agate Semiconductor, Inc. | Precision programming of nonvolatile memory cells |
US6781877B2 (en) * | 2002-09-06 | 2004-08-24 | Sandisk Corporation | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
JP3935139B2 (en) * | 2002-11-29 | 2007-06-20 | 株式会社東芝 | Semiconductor memory device |
JP3878573B2 (en) * | 2003-04-16 | 2007-02-07 | 株式会社東芝 | Nonvolatile semiconductor memory device |
JP3913704B2 (en) * | 2003-04-22 | 2007-05-09 | 株式会社東芝 | Nonvolatile semiconductor memory device and electronic device using the same |
US6956770B2 (en) * | 2003-09-17 | 2005-10-18 | Sandisk Corporation | Non-volatile memory and method with bit line compensation dependent on neighboring operating modes |
US6888758B1 (en) * | 2004-01-21 | 2005-05-03 | Sandisk Corporation | Programming non-volatile memory |
US7020017B2 (en) * | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7173859B2 (en) * | 2004-11-16 | 2007-02-06 | Sandisk Corporation | Faster programming of higher level states in multi-level cell flash memory |
JP4177847B2 (en) * | 2006-01-06 | 2008-11-05 | 株式会社東芝 | Nonvolatile semiconductor memory device |
-
2007
- 2007-05-25 KR KR1020087023382A patent/KR101020812B1/en active IP Right Grant
- 2007-05-25 KR KR1020107019325A patent/KR101041595B1/en active IP Right Grant
- 2007-05-25 CN CN201110112129.8A patent/CN102306501B/en not_active Expired - Fee Related
- 2007-05-25 WO PCT/US2007/069713 patent/WO2007149678A2/en active Application Filing
- 2007-05-25 JP JP2009516620A patent/JP4912460B2/en not_active Expired - Fee Related
- 2007-05-29 TW TW096119147A patent/TWI336080B/en not_active IP Right Cessation
- 2007-05-29 TW TW099133735A patent/TWI451422B/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867429A (en) * | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US20050117401A1 (en) * | 2002-01-18 | 2005-06-02 | Jian Chen | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
US20040136220A1 (en) * | 2002-10-29 | 2004-07-15 | Guy Cohen | Method circuit and system for determining a reference voltage |
US6657891B1 (en) * | 2002-11-29 | 2003-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device for storing multivalued data |
Non-Patent Citations (1)
Title |
---|
JUNG T-S ET AL: "A 117-MM2 3.3-V ONLY 128-MB MULTILEVEL NAND FLASH MEMORY FOR MASS STORAGE APPLICATIONS" IEEE JOURNAL OF SOLID-STATE CIRCUITS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 31, no. 11, November 1996 (1996-11), pages 1575-1583, XP000691441 ISSN: 0018-9200 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010002948A1 (en) * | 2008-07-01 | 2010-01-07 | Lsi Corporation | Methods and apparatus for soft demapping and intercell interference mitigation in flash memories |
WO2010002941A1 (en) | 2008-07-01 | 2010-01-07 | Lsi Corporation | Methods and apparatus for read-side intercell interference mitigation in flash memories |
WO2010002945A1 (en) | 2008-07-01 | 2010-01-07 | Lsi Corporation | Methods and apparatus for intercell interference mitigation using modulation coding |
US8462549B2 (en) | 2008-07-01 | 2013-06-11 | Lsi Corporation | Methods and apparatus for read-side intercell interference mitigation in flash memories |
TWI501238B (en) * | 2008-07-01 | 2015-09-21 | Lsi Corp | Methods and apparatus for intercell interference mitigation using modulation coding |
TWI497522B (en) * | 2008-07-01 | 2015-08-21 | Lsi Corp | Methods and apparatus for read-side intercell interference mitigation in flash memories |
US8788923B2 (en) | 2008-07-01 | 2014-07-22 | Lsi Corporation | Methods and apparatus for soft demapping and intercell interference mitigation in flash memories |
US8797795B2 (en) | 2008-07-01 | 2014-08-05 | Lsi Corporation | Methods and apparatus for intercell interference mitigation using modulation coding |
US8830748B2 (en) | 2008-09-30 | 2014-09-09 | Lsi Corporation | Methods and apparatus for soft data generation for memory devices |
WO2010039866A1 (en) | 2008-09-30 | 2010-04-08 | Lsi Corporation | Methods and apparatus for soft data generation for memory devices |
KR101541710B1 (en) | 2008-12-31 | 2015-08-12 | 샌디스크 테크놀로지스, 인코포레이티드 | Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations |
US8429500B2 (en) | 2010-03-31 | 2013-04-23 | Lsi Corporation | Methods and apparatus for computing a probability value of a received value in communication or storage systems |
US8775913B2 (en) | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
US8504885B2 (en) | 2010-03-31 | 2013-08-06 | Lsi Corporation | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems |
US9292377B2 (en) | 2011-01-04 | 2016-03-22 | Seagate Technology Llc | Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values |
US9898361B2 (en) | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
US10929221B2 (en) | 2011-01-04 | 2021-02-23 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories utilizing data from additional pages or wordlines |
US20130176778A1 (en) * | 2011-03-14 | 2013-07-11 | Lsi Corporation | Cell-level statistics collection for detection and decoding in flash memories |
US9502117B2 (en) * | 2011-03-14 | 2016-11-22 | Seagate Technology Llc | Cell-level statistics collection for detection and decoding in flash memories |
Also Published As
Publication number | Publication date |
---|---|
KR20100111735A (en) | 2010-10-15 |
KR20080111458A (en) | 2008-12-23 |
CN102306501B (en) | 2014-03-19 |
TWI336080B (en) | 2011-01-11 |
CN102306501A (en) | 2012-01-04 |
KR101020812B1 (en) | 2011-03-09 |
WO2007149678A3 (en) | 2008-04-10 |
TW201124991A (en) | 2011-07-16 |
JP2009541910A (en) | 2009-11-26 |
JP4912460B2 (en) | 2012-04-11 |
TW200805381A (en) | 2008-01-16 |
KR101041595B1 (en) | 2011-06-15 |
TWI451422B (en) | 2014-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7606084B2 (en) | Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory | |
US7352628B2 (en) | Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory | |
JP4912460B2 (en) | Detecting individual size margin in nonvolatile memory read operation improvement and detection by compensation in selected state | |
EP2181446B1 (en) | Reducing the impact of interference during programming | |
EP2100307B1 (en) | Margined neighbor reading for non-volatile memory read operations including coupling compensation | |
US7173859B2 (en) | Faster programming of higher level states in multi-level cell flash memory | |
US7489542B2 (en) | Systems for variable reading in non-volatile memory | |
EP2561511B1 (en) | Programming non-volatile storage includng reducing impact from other memory cells | |
US7606070B2 (en) | Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation | |
US7518923B2 (en) | Margined neighbor reading for non-volatile memory read operations including coupling compensation | |
EP2165338B1 (en) | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing | |
EP2078303B1 (en) | Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell | |
CN102385924A (en) | Starting program voltage shift with cycling of non-volatile memory | |
EP2311040A1 (en) | Compensating for coupling during read operations in non-volatile storage | |
EP2005437B1 (en) | Reducing the impact of program disturb during read |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07797759 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200780009435.0 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020087023382 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009516620 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07797759 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020107019325 Country of ref document: KR |