US9460799B1 - Recovery of partially programmed block in non-volatile memory - Google Patents
Recovery of partially programmed block in non-volatile memory Download PDFInfo
- Publication number
- US9460799B1 US9460799B1 US14/951,347 US201514951347A US9460799B1 US 9460799 B1 US9460799 B1 US 9460799B1 US 201514951347 A US201514951347 A US 201514951347A US 9460799 B1 US9460799 B1 US 9460799B1
- Authority
- US
- United States
- Prior art keywords
- block
- volatile storage
- unprogrammed
- fail bit
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
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/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/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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Definitions
- the present disclosure is directed to non-volatile memory technology.
- Semiconductor memory is widely used in various electronic devices such as cellular telephones, digital cameras, personal digital assistants, medical electronics, mobile computing devices, and non-mobile computing devices.
- Semiconductor memory may comprise non-volatile memory or volatile memory.
- a non-volatile memory allows information to be stored and retained even when the non-volatile memory is not connected to a source of power (e.g., a battery).
- Examples of non-volatile memory include flash memory (e.g., NAND-type and NOR-type flash memory) and Electrically Erasable Programmable Read-Only Memory (EEPROM).
- Some non-volatile storage elements have a charge storage region for storing information.
- a dielectric charge-trapping material that stores a charge which represents a data state.
- Another example is a conductive floating gate that stores a charge which represents a data state.
- the non-volatile storage element may take the form a transistor with a control gate. A blocking layer of dielectric material may reside between the charge storage region and the control gate.
- the non-volatile storage element may have a tunnel dielectric between the charge storage region and channel region.
- a program voltage VPGM is applied to the control gate during a program operation to change the amount of charge in the charge storage region, which impacts the threshold voltage (V T ) of the non-volatile storage element.
- Each data state can be represented by a unique range in the threshold voltage (V T ). In this manner one, two, or more bits of information may be stored per non-volatile storage element.
- a non-volatile storage element Once a non-volatile storage element has been programmed, it is important that its programming state can be read back with a high degree of reliability.
- the sensed programming state can sometimes vary from the intended programming state due to factors such as program disturb and data retention issues.
- Program disturb refers to the unintentional change to the V T of a non-volatile storage element while programming another non-volatile storage element.
- the V T of the memory cell can drop over time due to charge leakage, which is referred to as a data retention issue. As one example, charge in the charge storage region could leak to the control gate over time, dropping the V T of the memory cell.
- ECC error correction control
- FIGS. 1A and 1B depict energy band diagrams of memory cells to help explain the charge trapping in the tunnel dielectric region.
- FIG. 2A is a perspective view of a 3D stacked non-volatile memory device.
- FIG. 2B is a functional block diagram of a memory device such as the 3D stacked non-volatile memory device of FIG. 2A .
- FIG. 2C is a block diagram of a memory structure having two planes.
- FIG. 3A is a diagram of a NAND string.
- FIG. 3B is an equivalent circuit diagram of the NAND string of FIG. 3A .
- FIG. 3C is a block diagram of an example of three NAND strings in a block of non-volatile storage elements.
- FIG. 3D is a block diagram of an array of NAND flash memory cells arranged into blocks.
- FIG. 4A depicts a top view of a portion of a block of memory cells.
- FIG. 4B depicts a cross sectional view of a portion of a block of memory cells.
- FIG. 4C depicts a view of the select gate layers and word line layers.
- FIG. 4D is a cross sectional view of a vertical column of memory cells.
- FIGS. 5A and 5B are cross-sectional and perspective views of a three-dimensional NAND memory array.
- FIG. 6 is a flow chart describing one embodiment of a process for making and operating a non-volatile memory system.
- FIG. 7 is a flow chart describing one embodiment of a process for programming data into a block of memory cells.
- FIG. 8 depicts an example set of threshold voltage distributions and describes a process for programming non-volatile memory.
- FIG. 9 shows programming pulses with a set of verify pulses between the programming pulses.
- FIG. 10 is a flow chart describing one embodiment of a process for performing programming on memory cells.
- FIG. 11 is a flowchart of one embodiment of a process for programming data into non-volatile storage elements including a recovery of a partially programmed block.
- FIG. 12 is a flowchart of one embodiment of a process of a recovery operation.
- FIGS. 13 are 14 are flowchart of different embodiments of recovery operations for a partially programmed block.
- FIG. 15 depicts a flowchart of an example erase process that may be used in a recovery operations for a partially programmed block.
- a non-volatile memory system uses an improved technique to program partially programmed memory blocks.
- a partially programmed memory block refers to a group of memory cells that are erased together, and then only a region of the block is programmed leaving a region the block erased after completion of a program request. For example, after a programming request is complete, memory cells in some region of the block are still in the erased state. Note that memory cells in a partially programmed block may sit in the erased state for a significant amount of time. For example, first all of the memory cells in the block are erased. Then, the erased memory cells in some region of the block are programmed in response to a program request, leaving memory cells in another region of the block still erased after the program request is complete.
- memory cells associated with one or more word lines are programmed to satisfy the program request, leaving memory cells associated with other word lines still erased.
- the region of the block that contains the still erased (or unprogrammed) memory cells may be referred to as an “open region” of the block.
- a block that contains an open region may be referred to as a “partially programmed block.” It is possible for considerable time to pass before data is written to the open region of the partially programmed block. Over time, changes may occur to the unprogrammed memory cells (e.g., the erased memory cells) in the open region of the block that can detrimentally impact operating the partially programmed block.
- charges could become trapped in the tunnel dielectric region of the erased memory cells in the open region of the partially programmed block. These charges can impair programming. For example, the fail bit count when programming the memory cells in the open region may increase. The trapped charges can also negatively impact data retention of memory cells in the open region after they have been programmed. Thus, by stating that memory cells remain in the erased state for a “significant amount of time,” it is meant that the memory cells remain erased long enough for there to be some measurable negative impact to accurately programming or reading the memory cells.
- FIGS. 1A and 1B depict energy band diagrams of memory cells to help explain the charge trapping in the tunnel dielectric region.
- FIG. 1A is for a 2D memory cell.
- FIG. 1B is for a 3D memory cell.
- the 2D memory cell has a channel region 72 , tunnel dielectric region 74 , first floating gate region 76 , second floating gate region 78 , first blocking layer 80 , second blocking layer 82 , third blocking layer 84 , and control gate 86 .
- the channel region 72 may be silicon.
- the tunnel dielectric region 74 may be silicon oxide.
- the first floating gate region 76 may be heavily doped polysilicon.
- the second floating gate region 78 may also be heavily doped polysilicon.
- the first blocking layer 80 may be silicon oxide.
- the second blocking layer 82 may be silicon nitride.
- the third blocking layer 84 may be silicon oxide.
- the control gate 86 may be a metal, such as tungsten.
- the 3D memory cell in FIG. 1B has a channel region 91 , first tunnel dielectric region 92 , second tunnel dielectric region 93 , third tunnel dielectric region 94 , first charge storage region 95 , second charge storage region 96 , first blocking layer 97 , second blocking layer 98 , and control gate 99 .
- the channel region 91 may be silicon.
- the first tunnel dielectric region 92 may be silicon oxide.
- the second tunnel dielectric region 93 may be silicon nitride.
- the third tunnel dielectric region 94 may be silicon oxide.
- the first charge storage region 95 may be silicon nitride.
- the second charge storage region 96 may be silicon nitride.
- the first blocking layer 97 may be silicon oxide.
- the second blocking layer 98 may be silicon oxide.
- the control gate 99 may be a metal, such as tungsten.
- electrons from the channel ( 72 or 91 ) may be attracted to a tunnel dielectric region due to, for example, electrostatic potential.
- the trapped charges in the tunnel dielectric region can raise the threshold voltage of the memory cell. This can make the erase tail of the erase distribution worse. For example, the upper tail of the erase distribution can shift towards the V T of the lowest programmed state.
- the foregoing problems can be worse for 3D memory cells.
- Some 3D memory cells have a higher neutral V T than some 2D memory cells.
- the foregoing problems can be worse for a memory cell having a higher neutral V T .
- a higher neutral V T may make it easier for electrons to tunnel from the channel into the tunnel dielectric.
- some 3D memory cells have a cylindrical shape.
- the cylindrical shape results in a cylindrical electrical field.
- the foregoing problems can be worse for memory cells having a cylindrical electrical field.
- a cylindrical electrical field for the 3D case in FIG. 1B may make it easier for electrons to tunnel into the tunnel dielectric.
- Programming the 3D memory cell may involve storing electrons in the charge storage regions 95 , 96 , which raises the V T . Note that these additional electrons in the charge storage regions 95 , 96 may affect the electrons trapped in the dielectric regions 92 , 93 , and/or 94 . If some of the electrons trapped in the dielectric regions 92 , 93 , and/or 94 were to leak back to the channel 91 , this could lower the V T , resulting in a data retention issue.
- a fail bit count with respect to programming the memory cells is performed. If the fail bit count is above a threshold, then a recovery operation is performed with respect to other memory cells in the partially programmed block.
- the recovery operation may alleviate the condition that caused the high fail bit count. For example, the recovery operation may remove charges that are trapped in the tunnel dielectric of memory cells in the open region of the partially programmed block.
- One example of a recovery operation is to perform an erase operation. Note that this erase operation may be performed on memory cells in the open region that are already erased. The erase operation may remove trapped charges from the tunnel dielectric. In a sense, this “resets” the memory cells. Thus, the memory cells can now be programmed more effectively. Also, data retention issues may be resolved.
- techniques disclosed herein are applied in a 3D stacked non-volatile memory device.
- the following is one example of a 3D stacked non-volatile memory device.
- Embodiments disclosed herein are not limited to this 3D example.
- Embodiments disclosed herein are not limited to 3D memory.
- techniques disclosed herein may also be used in 2D memory, such as but not limited to, 2D NAND.
- Embodiments are not limited to NAND.
- other types of memory cells including, but not limited to NOR, have tunnel dielectrics in which charges may become trapped while the memory cell is erased.
- FIG. 2A is a perspective view of a three dimensional (3D) stacked non-volatile memory device.
- the memory device 100 includes a substrate 101 .
- On and above the substrate are example blocks BLK 0 and BLK 1 of memory cells (non-volatile storage elements).
- peripheral area 104 with support circuits for use by the blocks.
- Substrate 101 can also carry circuits under the blocks, along with one or more lower metal layers which are patterned in conductive paths to carry signals of the circuits.
- the blocks are formed in an intermediate region 102 of the memory device.
- In an upper region 103 of the memory device one or more upper metal layers are patterned in conductive paths to carry signals of the circuits.
- Each block comprises a stacked area of memory cells, where alternating levels of the stack represent word lines. While two blocks are depicted as an example, additional blocks can be used, extending in the x- and/or y-directions.
- the length of the plane in the x-direction represents a direction in which signal paths for word lines extend (a word line or SGD line direction)
- the width of the plane in the y-direction represents a direction in which signal paths for bit lines extend (a bit line direction).
- the z-direction represents a height of the memory device.
- FIG. 2B is a functional block diagram of an example memory device such as the 3D stacked non-volatile memory device 100 of FIG. 2A .
- Memory device 100 includes one or more memory die 108 .
- Each memory die 108 includes a three-dimensional memory structure 126 of memory cells (such as, for example, a 3D array of memory cells), control circuitry 110 , and read/write circuits 128 .
- the memory structure 126 is addressable by word lines via a row decoder 124 and by bit lines via a column decoder 132 .
- the read/write circuits 128 include multiple sense blocks SB 1 , SB 2 , . . . , SBp (sensing circuitry) and allow a page of memory cells to be read or programmed in parallel.
- a controller 122 is included in the same memory device 100 (e.g., a removable storage card) as the one or more memory die 108 . However, in other systems, the controller is in a different memory device 100 from the memory die 108 . In some embodiments, one controller 122 will communicate with multiple memory die 108 . In other embodiments, each memory die 108 has its own controller. Commands and data are transferred between the host 140 and controller 122 via a data bus 120 , and between controller 122 and the one or more memory die 108 via lines 118 . In one embodiment, memory die 108 includes a set of input and/or output (I/O) pins that connect to lines 118 .
- I/O input and/or output
- Memory structure 126 may comprise one or more arrays of memory cells including a 3D array.
- the memory structure may comprise a monolithic three dimensional memory structure in which multiple memory levels are formed above (and not in) a single substrate, such as a wafer, with no intervening substrates.
- the memory structure may comprise any type of non-volatile memory that is monolithically formed in one or more physical levels of arrays of memory cells having an active area disposed above a silicon substrate.
- the memory structure may be in a non-volatile memory device having circuitry associated with the operation of the memory cells, whether the associated circuitry is above or within the substrate.
- a three dimensional memory structure may be vertically arranged as a stack of multiple two dimensional memory device levels.
- two dimensional arrays may be formed separately and then packaged together to form a non-monolithic memory device having multiple layers of memory.
- non-monolithic stacked memories can be constructed by forming memory levels on separate substrates and then stacking the memory levels atop each other. The substrates may be thinned or removed from the memory device levels before stacking, but as the memory device levels are initially formed over separate substrates, the resulting memory arrays are not monolithic three dimensional memory arrays.
- multiple two dimensional memory arrays or three dimensional memory arrays may be formed on separate chips and then packaged together to form a stacked-chip memory device.
- a three dimensional memory array may be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in the y direction) with each column having multiple memory elements.
- the columns may be arranged in a two dimensional configuration, e.g., in an x-y plane, resulting in a three dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes.
- Other configurations of memory elements in three dimensions can also constitute a three dimensional memory array.
- the memory elements may be coupled together to form a NAND string within a single horizontal (e.g., x-y) memory device level.
- the memory elements may be coupled together to form a vertical NAND string that traverses across multiple horizontal memory device levels.
- the non-volatile storage elements are arranged as a vertically oriented NAND strings.
- Other three dimensional configurations can be envisioned wherein some NAND strings contain memory elements in a single memory level while other strings contain memory elements which span through multiple memory levels.
- Three dimensional memory arrays may also be designed in a NOR configuration, in a ReRAM configuration, a ferroelectric random access memory (“FRAM”), and magnetoresistive random access memory (“MRAM”), as well as other semiconductor elements capable of storing information.
- the memory devices can be formed from passive and/or active elements, in any combinations.
- passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity switching storage element, such as an anti-fuse or phase change material, and optionally a steering element, such as a diode or transistor.
- active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements containing a charge storage region, such as a floating gate, conductive nanoparticles, or a charge storage dielectric material.
- Control circuitry 110 cooperates with the read/write circuits 128 to perform memory operations (e.g., erase, program, read, and others) on memory structure 126 , and includes a state machine 112 , an on-chip address decoder 114 , and a power control module 116 .
- the state machine 112 provides chip-level control of memory operations.
- Code and parameter storage 113 may be provided for storing operational parameters and software.
- state machine 112 is programmable by the software stored in code and parameter storage 113 . In other embodiments, state machine 112 does not use software and is completely implemented in hardware (e.g., electronic circuits).
- the on-chip address decoder 114 provides an address interface between addresses used by host 140 or memory controller 122 to the hardware address (ADDR) used by the decoders 124 and 132 .
- Power control module 116 controls the power and voltages supplied to the word lines and bit lines during memory operations. It can include drivers for word line layers (discussed below) in a 3D configuration, select transistors (e.g., SGS and SGD transistors, described below) and source lines. Power control module 116 may include charge pumps for creating voltages.
- the sense blocks include bit line drivers.
- An SGS transistor is a select gate transistor at a source end of a NAND string
- an SGD transistor is a select gate transistor at a drain end of a NAND string.
- control circuitry 110 Any one or any combination of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, read/write circuits 128 , and controller 122 can be considered a managing circuit that performs the functions described herein.
- the (on-chip or off-chip) controller 122 may comprise a processor 122 c and storage devices (memory) such as ROM 122 a and RAM 122 b .
- the storage devices comprises code such as a set of instructions, and the processor 122 c is operable to execute the set of instructions to provide the functionality described herein.
- processor 122 c can access code from a storage device in the memory structure, such as a reserved area of memory cells connected to one or more word lines.
- FIG. 2C is a block diagram explaining one example organization of memory structure 126 , which is divided into two planes 279 . Each plane is then divided into M blocks. In one example, each plane has about 2000 blocks. However, different numbers of blocks and planes can also be used.
- FIG. 3A is a top view showing one NAND string 301 .
- FIG. 3B is an equivalent circuit thereof.
- the NAND string depicted in FIGS. 3A and 3B includes four transistors 10 , 12 , 14 and 16 in series between a first select gate 12 and a second select gate 22 .
- Select gate 12 connects the NAND string to bit line 26 .
- Select gate 22 connects the NAND string to source line 28 .
- Select gate 12 is controlled by applying appropriate voltages to control gate 20 CG via selection line SGD.
- Select gate 22 is controlled by applying the appropriate voltages to control gate 22 CG via selection line SGS.
- Each of the transistors 10 , 12 , 14 and 16 includes a control gate and a charge storage region, forming the gate elements of a memory cell.
- the charge storage regions are conductive floating gates.
- the charge storage regions are dielectric charge storage regions.
- transistor 10 includes control gate 10 CG and charge storage region 10 CSR.
- Transistor 12 includes control gate 12 CG and a charge storage region 12 CSR.
- Transistor 14 includes control gate 14 CG and charge storage region 14 CSR.
- Transistor 16 includes a control gate 16 CG and a charge storage region 16 CSR.
- Control gate 10 CG is connected to word line WL 3
- control gate 12 CG is connected to word line WL 2
- control gate 14 CG is connected to word line WL 1
- control gate 16 CG is connected to word line WL 0 .
- the charge storage regions (CSR) can be a charge trapping material including a dielectric charge trapping material, which can be, for example, silicon nitride.
- the charge storage regions (CSR) can include a conductive material such as doped polysilicon or a metallic material that is patterned into multiple electrically isolated portions (e.g., floating gates).
- FIGS. 3A and 3B show four memory cells in the NAND string, the use of four transistors is only provided as an example.
- a NAND string can have fewer 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.
- Other types of non-volatile memory in addition to NAND flash memory can also be used in accordance with embodiments.
- FIG. 3C depicts three NAND strings such as shown in FIGS. 3A-3B in a block BLK 0 .
- BLK 0 includes a number of NAND strings NS 0 , NS 1 , NS 2 , . . . and respective bit lines, e.g., BL 0 , BL 1 , BL 2 . . . in communication with respective sense amplifiers SA 0 , SA 1 , SA 2 , . . .
- BLK 0 comprises a set of non-volatile storage elements.
- Each NAND string is connected at one end to a select gate drain (SGD) transistor, and the control gates of the SGD transistors are connected via a common SGD line.
- the NAND strings are connected at their other end to a select gate source (SGS) transistor which, in turn, is connected to a common source line (SL).
- SGS select gate source
- SL common source line
- a number of word lines WL 0 -WL 63 extend between the SGS and SGD transistors.
- WL 0 is an edge word line which is adjacent to the source side (SS) of the block and WL 63 is an edge word line which is adjacent to the drain side (DS) of the block.
- NAND string NS 0 includes storage elements 301 , . . . , 302 - 306 , . . . , 307 with respective control gates CG 63 , . . . CG 32 -CG 28 , . . . CG 0 , an SGS transistor 308 with a control gate CGsgs and a SGD transistor 300 with a control gate CGsgd.
- NAND string NS 1 includes storage elements 311 , . . . , 312 - 316 , . . . , 317 , an SGS transistor 318 and a SGD transistor 310 .
- NAND string NS 2 includes storage elements 321 , . . .
- NAND strings NS 0 , NS 2 , . . . are even numbered, and NAND strings NS 1 , NS 3 (not shown), . . . are odd numbered.
- bit lines BL 0 , BL 2 , . . . are even numbered, and the NAND strings BL 1 , BL 3 (not shown), . . . are odd numbered.
- the storage elements can store user data and/or non-user data.
- FIG. 3D is a block diagram of an array 126 of NAND flash memory cells including BLK 0 of FIG. 3C and additional blocks BLK 1 and BLK 2 .
- a bit line (BL) is coupled to the drain terminal of the drain select gate for the NAND string.
- a source line (SL) may connect all the source terminals of the source select gates of the NAND strings (e.g., at SE 0 of NS 0 ).
- the array of storage elements is divided into a large number of blocks (e.g., BLK 0 -BLK 2 ) of storage elements, where each block includes a set of one or more NAND strings in communication with a common set of word lines, SGS line and SGD line. Each NAND string is also in communication with a respective bit line.
- BLK 0 includes NAND strings NS 0 , NS 1 , . . . , NSn- 1 in communication with BL 0 , BL 1 , . . . BLn- 1 , respectively, and with WL 0 -WL 63 SGS and SGD.
- BLK 1 includes NAND strings NSa 0 , NSa 1 , . . .
- BLK 2 includes NAND strings NSb 0 , NSb 1 , . . . , NSbn- 1 in communication with BL 0 , BL 1 , . . . BLn- 1 , respectively, and with WL 0 b -WL 63 b , SGSb and SGDb.
- Each block can contain the minimum number of memory cells that are erased together, although multiple blocks may be erased simultaneously. Smaller units of cells may be erased together in some implementations. For example, a partial block erase is performed in some embodiments.
- Each block is typically divided into a number of pages.
- a page is the smallest unit of programming.
- One or more pages of data are stored in storage elements associated with one word line, in one embodiment.
- a word line of memory cells may contain several interleaved pages or it may constitute one page. All storage elements of a page will be read or programmed together.
- a page can store user data from one or more sectors.
- a sector is a logical concept used by the host as a convenient unit of user data; it typically does not contain overhead data, which is confined to the controller.
- Overhead data may include an Error Correction Code (ECC) that has been calculated from the user data of the sector.
- ECC Error Correction Code
- a portion of the controller calculates the ECC when data is being programmed into the array, and also checks it when data is being read from the array.
- the ECCs and/or other overhead data are stored in different pages, or even different blocks, than the user data to which they pertain.
- a sector of user data is typically 512 bytes, corresponding to the size of a sector in magnetic disk drives. Overhead data is typically an additional 16-20 bytes.
- a large number of pages form a block, anywhere from 8 pages, for example, up to 32, 64 or more pages.
- a row of NAND strings comprises a block.
- FIG. 4A is a block diagram depicting a top view of a portion of one block from memory structure 126 .
- the portion of the block depicted in FIG. 4A corresponds to portion 405 in block 2 of FIG. 2C .
- the block depicted in FIG. 4A extends in the direction of arrow 431 and in the direction of arrow 433 .
- the memory array will have 48 layers. Other embodiments have less than or more than 48 layers. However, FIG. 4A only shows the top layer.
- FIG. 4A depicts a plurality of circles that represent the vertical columns.
- Each of the vertical columns include multiple select transistors and multiple memory cells.
- each vertical column implements a NAND string. More details of the vertical columns are provided below. Since the block depicted in FIG. 4A extends in the direction of arrow 431 and in the direction of arrow 433 , the block includes more vertical columns than depicted in FIG. 4A .
- FIG. 4A also depicts a set of bit lines 412 .
- FIG. 4A shows twenty four bit lines because only a portion of the block is depicted. It is contemplated that more than twenty four bit lines connected to vertical columns of the block. Each of the circles representing vertical columns has an “x” to indicate its connection to one bit line.
- the block depicted in FIG. 4A includes a set of local interconnects 402 , 404 , 406 , 408 and 410 that connect the various layers to a source line below the vertical columns.
- Local interconnects 402 , 404 , 406 , 408 and 410 also serve to divide each layer of the block into four regions; for example, the top layer depicted in FIG. 4A is divided into regions 420 , 430 , 440 and 450 .
- the four regions are referred to as word line fingers that are separated by the local interconnects.
- the word line fingers on a common level of a block connect together at the end of the block to form a single word line.
- the word line fingers on the same level are not connected together.
- a bit line only connects to one vertical column in each of regions 420 , 430 , 440 and 450 .
- each block has sixteen rows of active columns and each bit line connects to four rows in each block.
- all of four rows connected to a common bit line are connected to the same word line (via different word line fingers on the same level that are connected together); therefore, the managing circuit uses the source side select lines and the drain side select lines to choose one (or another subset) of the four to be subjected to a memory operation (program, verify, read, and/or erase).
- FIG. 4A shows each region having four rows of vertical columns, four regions and sixteen rows of vertical columns in a block, those exact numbers are an example implementation. Other embodiments may include more or less regions per block, more or less rows of vertical columns per region and more or less rows of vertical columns per block.
- FIG. 4A also shows the vertical columns being staggered. In other embodiments, different patterns of staggering can be used. In some embodiments, the vertical columns are not staggered.
- FIG. 4B depicts a portion of an embodiment of three dimensional memory structure 126 showing a cross-sectional view along line AA of FIG. 4A .
- This cross sectional view cuts through vertical columns 432 and 434 and region 430 (see FIG. 4A ).
- the structure of FIG. 4B includes two drain side select layers SGD 1 and SGD 1 ; two source side select layers SGS 1 and SGS 2 ; four dummy word line layers DWLL 1 a , DWLL 1 b , DWLL 2 a and DWLL 2 b ; and thirty two word line layers WLL 0 -WLL 31 for connecting to data memory cells.
- Oher embodiments can implement more or less than two drain side select layers, more or less than two source side select layers, more or less than four dummy word line layers, and more or less than thirty two word line layers.
- Vertical columns 432 and 434 are depicted protruding through the drain side select layers, source side select layers, dummy word line layers and word line layers.
- each vertical column comprises a NAND string.
- substrate 101 below the vertical columns and the layers listed below is substrate 101 , an insulating film 454 on the substrate, and source line SL.
- the NAND string of vertical column 432 has a source end at a bottom of the stack and a drain end at a top of the stack.
- FIG. 4B show vertical column 432 connected to Bit Line 414 via connector 415 .
- Local interconnects 404 and 406 are also depicted.
- drain side select layers SGD 1 and SGD 1 ; source side select layers SGS 1 and SGS 2 ; dummy word line layers DWLL 1 a , DWLL 1 b , DWLL 2 a and DWLL 2 b ; and word line layers WLL 0 -WLL 31 collectively are referred to as the conductive layers.
- the conductive layers are made from a combination of TiN and Tungsten.
- other materials can be used to form the conductive layers, such as doped polysilicon, metal such as Tungsten or metal silicide.
- different conductive layers can be formed from different materials.
- dielectric layers DLO-DL 19 Between conductive layers are dielectric layers DLO-DL 19 .
- dielectric layers DL 10 is above word line layer WLL 26 and below word line layer WLL 27 .
- the dielectric layers are made from SiO 2 .
- other dielectric materials can be used to form the dielectric layers.
- the memory cells are formed along vertical columns which extend through alternating conductive and dielectric layers in the stack. In one embodiment, the memory cells are arranged in NAND strings.
- the word line layer WLL 0 -WLL 31 connect to memory cells (also called data memory cells).
- Dummy word line layers DWLL 1 a , DWLL 1 b , DWLL 2 a and DWLL 2 b connect to dummy memory cells.
- a dummy memory cell also referred to as a non-data memory cell, does not store user data, while a data memory cell is eligible to store user data. Thus, data memory cells may be programmed.
- Drain side select layers SGD 1 and SGD 1 are used to electrically connect and disconnect NAND strings from bit lines.
- Source side select layers SGS 1 and SGS 2 are used to electrically connect and disconnect NAND strings from the source line SL.
- FIG. 4C depicts a perspective view of the conductive layers (SGD 1 , SGD 1 , SGS 1 , SGS 2 ; DWLL 1 a , DWLL 1 b , DWLL 2 a , DWLL 2 b , and WLL 0 -WLL 31 ) for the block that is partially depicted in FIG. 4C .
- local interconnects 401 , 404 , 406 , 408 and 410 break up each conductive layers into four regions.
- drain side select gate layer SGD 1 (the top layer) is divided into regions 420 , 430 , 440 and 450 .
- word line layer WLL 31 is divided into regions 460 , 462 , 464 and 466 .
- the regions are referred to as word line fingers; for example, word line layer WLL 31 is divided into word line fingers 460 , 462 , 464 and 466 .
- FIG. 4D depicts a cross sectional view of region 442 of FIG. 4B that includes a portion of vertical column 432 .
- the vertical columns are round and include four layers; however, in other embodiments more or less than four layers can be included and other shapes can be used.
- vertical column 432 includes an inner core layer 470 that is made of a dielectric, such as SiO 2 . Other materials can also be used.
- Surrounding inner core 470 is polysilicon channel 471 . Materials other than polysilicon can also be used. Note that it is the channel 471 that connects to the bit line.
- Surrounding channel 471 is a tunneling dielectric 472 .
- tunneling dielectric 472 has an ONO structure.
- Surrounding tunneling dielectric 472 is charge trapping layer 473 , such as (for example) a specially formulated silicon nitride that increases trap density.
- FIG. 4D depicts dielectric layers DLL 11 , DLL 12 , DLL 13 , DLL 14 and DLL 15 , as well as word line layers WLL 27 , WLL 28 , WLL 29 , WLL 30 , and WLL 31 .
- Each of the word line layers includes a word line region 476 surrounded by an aluminum oxide layer 477 , which is surrounded by a blocking oxide (Sift) layer 478 .
- the physical interaction of the word line layers with the vertical column forms the memory cells.
- a memory cell comprises channel 471 , tunneling dielectric 472 , charge trapping layer 473 , blocking oxide layer 478 , aluminum oxide layer 477 and word line region 476 .
- word line layer WLL 31 and a portion of vertical column 432 comprise a memory cell MC 1 .
- Word line layer WLL 30 and a portion of vertical column 432 comprise a memory cell MC 2 .
- Word line layer WLL 29 and a portion of vertical column 432 comprise a memory cell MC 3 .
- Word line layer WLL 28 and a portion of vertical column 432 comprise a memory cell MC 4 .
- Word line layer WLL 27 and a portion of vertical column 432 comprise a memory cell MC 5 .
- V T threshold voltage
- FIGS. 5A-5B depict a three-dimensional NAND stacked non-volatile memory device including an array of alternating conductive and dielectric layers disposed above a substrate as may also be used in accordance with one embodiment.
- a memory hole is drilled in the layers to define many memory layers simultaneously.
- a NAND string is then formed by filling the memory hole with appropriate materials. Control gates of the memory cells are provided by the conductive layers.
- Each NAND string has a first “drain” end coupled via a drain-side select gate transistor (“SGD”) to a bit line, and a second “source” end coupled via a source-side select gate transistor (“SGS”) to a common source conductor.
- SGD and SGS may be used to selectively couple the drain and source ends, respectively, of a NAND string to the bit line and source line, respectively.
- FIG. 5A illustrates a TCAT (Terabit Cell Array Transistor) array 50 a
- FIG. 5B illustrates a BiCS (Bit Cost Scalable) array 50 b
- TCAT array 50 a includes a NAND string 52 a disposed above a substrate 54 a
- NAND string 52 a has a drain end 56 a coupled via SGD 58 a to a bit line 60 a , and a source end 62 a coupled via SGS 64 a to a source line 66 a
- BiCS array 110 b includes a NAND string 112 b disposed above a substrate 114 b
- NAND string 52 b has a drain end 56 b coupled via SGD 58 b to a bit line 60 b , and a source end 62 b coupled via SGS 64 b to a source line 66 b.
- Select gates SGD 116 a and SGS 120 a , and SGD 16 b and SGS 120 b are implemented above substrates 114 a and 114 b , respectively.
- SGD 116 a and SGS 120 a , and SGD 116 b and SGS 120 b consume a significant amount of area.
- Other 3D NAND non-volatile memory devices may include select gate transistors (SGD or SGS) disposed in the substrate below the NAND strings.
- 3D NAND memory arrays may include buried word lines as selector devices of select gate transistors (SGD or SGS).
- FIG. 6 is a flow chart describing one embodiment of a process for operating a non-volatile storage system. This process pertains to programming one or more word lines in a block.
- the block may be a completely open block or a partially programmed block.
- Various steps the process may by performed by the managing circuity, such as one or more of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, and/or read/write circuits 128 .
- a request for programming is received from the Host, the Controller or other entity.
- the request could be to store one or more pages of data.
- This request does not necessarily identify the block to be programmed. For example, a request from the host might not specify the block.
- step 504 the controller 122 (or state machine or other entity) will identify a block and one or more word lines to program the page(s) of data. For ease of explanation, it will be assumed that the request can be satisfied by programming no more than one block. Step 504 may include the controller 122 identifying a block that is already partially programmed. Of course, in some cases the data is stored into a block that is completely unprogrammed. Step 504 is not required to be performed by the controller.
- Step 506 is a check to determine whether the word line(s) in the block into which the data is to be programmed is/are erased. Note that for a partially programmed block, some word lines may be erased and others programmed. By a word line being erased, it is meant that the memory cells associated with the word line are erased. In one embodiment, controller 122 performs step 506 . However, step 506 is not required to be performed by the controller.
- the block is erased in step 508 , if needed.
- the system does not erase valid data in step 508 .
- this data is saved prior to the erase.
- the controller 122 sends a command to the memory die, instructing it which block to erase. Note that this step may erase the entire block, even if request can be satisfied by programmed just a region of the block. Erasing in 2D NAND is typically different than 3D NAND. The following describes how memory cells can be programmed in 2D NAND. In 2D NAND, the memory cells of one block may reside within the same p-well.
- Memory cells in 2D NAND are erased in one embodiment by raising the p-well to an erase voltage (e.g., 15-20 V) for a sufficient period of time and grounding or applying a low bias, e.g., 1 V, on the word lines of a selected block while the source and bit lines are floating. In blocks that are not selected to be erased, word lines are floated. Due to capacitive coupling, the unselected word lines, bit lines, select lines, and the common source line are also raised to a significant fraction of the erase voltage thereby impeding erase on blocks that are not selected to be erased.
- an erase voltage e.g. 15-20 V
- a low bias e.g. 1 V
- a strong electric field is applied to the tunnel oxide layers of selected memory cells and the selected memory cells are erased as electrons of the floating gates are emitted to the substrate side, typically by Fowler-Nordheim tunneling mechanism. As electrons are transferred from the floating gate to the p-well region, the threshold voltage of a selected cell is lowered. Erasing can be performed on the entire memory array, on individual blocks, or another unit of memory cells.
- One implementation of an erase process includes applying several erase pulses to the p-well and verifying between erase pulses whether the NAND strings are properly erased.
- One approach to erasing in a 3D stacked non-volatile memory device is to generate gate induced drain leakage (GIDL) current to charge up the NAND string channel, raise the channel potential to an erase voltage, and maintain this channel potential during erase.
- the memory device includes NAND strings which have a drain-side select gate (SGD) transistor on one end and a source-side select gate (SGS) transistor on the other end.
- SGD drain-side select gate
- SGS source-side select gate
- the erase may be a “one-sided erase” or a “two-sided erase.”
- GIDL gate-induced drain leakage
- Vdg drain-to-gate voltage
- step 510 at least a portion of the data received for the request is programmed into memory cells into the identified region of the block.
- controller 122 sends a command to a memory die 108 , instructing it which block and word line(s) to program. This command may instruct the memory die to program more than one word line.
- Step 512 is a check to determine if more data needs to be written to complete the request from step 502 . If so, the next word line is programmed by repeating step 510 . The check of step 512 may be performed by memory die 108 .
- step 514 the data can be read.
- the dashed line between steps 512 and 514 indicates that there can be an unpredictable amount of time between the steps. Note that the steps of the process of FIG. 6 (as well as the other processes in the other Figures) need not be performed by the same entity, or in the same order as depicted.
- the block that was written may be partially programmed. This block may or may not have been erased in step 508 . If another request is received at a later time to program data into an open region of such a partially programmed block, it is not required to erase the block, since the erase of step 508 erased the entire block. Thus, it is possible to write to the open region without an additional erase. However, note that considerable time may pass until the next request is received to program data into the now partially programmed block. Hence, memory cells in such a partially programmed block may sit in the erased state for a significant time.
- FIG. 7 illustrates example threshold voltage distributions for the memory cell array when each memory cell stores one bit of data. Other embodiments, however, may use more than one bit of data per memory cell (e.g., such as two, three, or four bits of data per memory cell).
- FIG. 7 shows two threshold voltage distributions (corresponding to two data states).
- the first threshold voltage distribution (data state) E represents memory cells that are erased.
- the second threshold voltage distribution (data state) P represents memory cells that are programmed.
- the curved arrow indicates the programming process where some memory cells are programmed to go from E to P.
- memory cells in data state E store a logical “1” and memory cells in data state P store a logical “0.”
- the threshold voltages in E are negative and the threshold voltages in P are positive.
- FIG. 7 also depicts a read reference voltage Vr and verify reference voltage Vv.
- FIG. 8 illustrates example threshold voltage distributions for the memory cell array when each memory cell stores three bits of data. Other embodiments, however, may use more or less than three bits of data per memory cell (e.g., such as three bits of data per memory cell).
- each memory cell stores three bits of data; therefore, there are eight valid threshold voltage distributions, also called data states: S 0 , S 1 , S 2 , S 3 , S 4 , S 5 , S 6 and S 7 .
- data state S 0 is below 0 volts and data states S 1 -S 7 are above 0 volts. In other embodiments, all eight data states are above 0 volts, or other arrangements can be implemented.
- the threshold voltage distribution for S 0 is wider than for S 1 -S 7 .
- S 0 is for erased memory cells. Data is programmed from S 0 to S 1 -S 7 .
- Each data state corresponds to a unique value for the three data bits stored in the memory cell.
- Other mapping of data to states S 0 -S 7 can also be used.
- 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 threshold voltage distribution, only one bit will be affected. However, in other embodiments, Gray code is not used.
- all of the bits of data stored in a memory cell are stored in the same logical page.
- each bit of data stored in a memory cell corresponds to different logical pages.
- a memory cell storing three bits of data would include data in a first page, data in a second page and data in a third page.
- all of the memory cells connected to the same word line would store data in the same three pages of data.
- the memory cells connected to a word line can be grouped into different sets of pages (e.g., by odd and even bit lines, or by other arrangements).
- the memory cells will be erased to state S 0 .
- the memory cells can be programmed to any of states S 1 -S 7 .
- memory cells can be programmed from the erased state S 0 directly to any of the programmed states S 1 -S 7 .
- a population of memory cells to be programmed may first be erased so that all memory cells in the population are in erased state S 0 .
- FIG. 8 shows a set of verify target levels Vv 1 , Vv 2 , Vv 3 , Vv 4 , Vv 5 , Vv 6 , and Vv 7 .
- These verify levels are used as comparison levels (also known as target levels and/or compare levels) during the programming process. For example, when programming memory cells to state S 1 , the system will check to see if the threshold voltages of the memory cells have reached Vv 1 . If the threshold voltage of a memory cell has not reached Vv 1 , then programming will continue for that memory cell until its threshold voltage is greater than or equal to Vv 1 . If the threshold voltage of a memory cell has reached Vv 1 , then programming will stop for that memory cell.
- Verify target level Vv 2 is used for memory cells being programmed to state S 2 .
- Verify target level Vv 3 is used for memory cells being programmed to state S 3 .
- Verify target level Vv 4 is used for memory cells being programmed to state S 4 .
- Verify target level Vv 5 is used for memory cells being programmed to state S 5 .
- Verify target level Vv 6 is used for memory cells being programmed to state S 6 .
- Verify target level Vv 7 is used for memory cells being programmed to state S 7 .
- FIG. 8 also shows a set of read compare levels Vr 1 , Vr 2 , Vr 3 , Vr 4 , Vr 5 , Vr 6 , and Vr 7 . These read compare levels are used as comparison levels during the read process. By testing whether the memory cells turn on or remain off in response to the read compare levels Vr 1 , Vr 2 , Vr 3 , Vr 4 , Vr 5 , Vr 6 , and Vr 7 being separately applied to the control gates of the memory cells, the system can determine for which states that memory cells are storing data.
- the selected word line is connected to a voltage (one example of a reference signal), a level of which is specified for each read operation (e.g., see read compare levels Vr 1 , Vr 2 , Vr 3 , Vr 4 , Vr 5 , Vr 6 , and Vr 7 , of FIG. 8 ) or verify operation (e.g. see verify target levels Vv 1 , Vv 2 , Vv 3 , Vv 4 , Vv 5 , Vv 6 , and Vv 7 of FIG. 8 ) in order to determine whether a threshold voltage of the concerned memory cell has reached such level.
- a voltage one example of a reference signal
- the conduction current of the memory cell is measured to determine whether the memory cell turned on (conducted current) in response to the voltage applied to the word line. If the conduction current is measured to be greater than a certain value, then it is assumed that the memory cell turned on and the voltage applied to the word line is greater than the threshold voltage of the memory cell. If the conduction current is not measured to be greater than the certain value, then it is assumed that the memory cell did not turn on and the voltage applied to the word line is not greater than the threshold voltage of the memory cell.
- the unselected memory cells are provided with one or more read pass voltages at their control gates so that these memory cells will operate as pass gates (e.g., conducting current regardless of whether they are programmed or erased).
- the conduction current of a memory cell is measured by the rate it discharges or charges a dedicated capacitor in the sense amplifier.
- the conduction current of the selected memory cell allows (or fails to allow) the NAND string that includes the memory cell to discharge a corresponding bit line. The voltage on the bit line is measured after a period of time to see whether it has been discharged or not. Note that the technology described herein can be used with different methods known in the art for verifying/reading. Other read and verify techniques known in the art can also be used.
- the program voltage applied to the control gate includes a series of pulses that are increased in magnitude with each successive pulse by a predetermined step size (e.g. 0.2 v, 0.3 v, 0.4 v, or others). Between pulses, some memory systems will verify whether the individual memory cells have reached their respective target threshold voltage ranges. For example, FIG. 10 shows a portion of a signal applied to the control gates of a plurality of memory cells connected to a common word line. FIG. 9 shows programming pulses 557 , 558 and 559 , with a set of verify pulses between the programming pulses. When performing full sequence programming in one embodiment, the verification process between programming pulses will test for each of the threshold voltage distribution (data states) S 1 -S 7 . Therefore, FIG.
- a predetermined step size e.g. 0.2 v, 0.3 v, 0.4 v, or others.
- one or more of the verify operations can be skipped (and, therefore one or more of the verify pulses can be skipped) because the verify operation is not necessary or superfluous. For example, if none of the memory cells being programmed according to FIG. 0 have reached Vv 2 , there is no reason to verify at Vv 7 .
- FIG. 10 is a flow chart describing one embodiment of a process for performing programming on memory cells connected to a common word line to one or more targets (e.g., data states or threshold voltage ranges).
- the process of FIG. 10 can be performed one or multiple times during step 510 of FIG. 6 .
- the process of FIG. 10 can be used to program memory cells from erased data state E to programmed data state P of FIG. 7 ; from data state S 0 of FIG. 8 to any of data states S 1 -S 7 performing full sequence programming, and any stage of a multi-stage programming process.
- the process in FIG. 10 may be performed for each word line separately during a programming operation.
- FIG. 10 may be performed for each stage of programming at each word line.
- control circuitry 110 such as one or more of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, and/or read/write circuits 128 .
- the program voltage applied to the control gate during a program operation is applied as a series of program pulses. Between programming pulses are a set of verify pulses to perform verification, as depicted (for example) in FIG. 9 .
- the magnitude of the program pulses is increased with each successive pulse by a predetermined step size.
- the programming voltage (Vpgm) is initialized to the starting magnitude (e.g., ⁇ 12-16V or another suitable level) and a program counter PC maintained by state machine 222 is initialized at 1.
- a program pulse of the program signal Vpgm is applied to the selected word line (the word line selected for programming).
- the group of memory cells being programmed concurrently are all connected to the same word line (the selected word line).
- the unselected word lines receive one or more boosting voltages (e.g., ⁇ 7-11 volts) to perform boosting schemes known in the art. If a memory cell should be programmed, then the corresponding bit line is grounded. On the other hand, if the memory cell should remain at its current threshold voltage, then the corresponding bit line is connected to VDD to inhibit programming.
- the program pulse is concurrently applied to all memory cells connected to the selected word line so that all of the memory cells connected to the selected word line are programmed concurrently. That is, they are programmed at the same time (or during overlapping times). In this manner all of the memory cells connected to the selected word line will concurrently have their threshold voltage change, unless they have been locked out from programming.
- the appropriate memory cells are verified using the appropriate set of target (compare) levels to perform one or more verify operations.
- the verification process is performed by applying the testing whether the threshold voltages of the memory cells selected for programming have reached the appropriate verify compare voltage (Vv 1 , Vv 2 , Vv 3 , Vv 4 , Vv 5 , Vv 6 , and Vv 7 ). Note that this test may verify whether the memory V T is at least at the proper verify level. However, this test does not typically test for over-programmed memory cells.
- step 576 it is determined whether enough of the memory cells have reached their target threshold voltages (pass). If so, the programming process is complete because enough of selected memory cells were programmed and verified to their target states. Thus, process concludes with a status of pass, in step 578 .
- the process may complete even a predetermined number of the memory cells fail to reach their verify level. In one embodiment, the predetermined number is based on the number of bits that can be corrected by ECC during a read process for the page of memory cells. If the number of failed cells is less than or equal to the predetermined limit, than the programming process can stop. In this situation, enough memory cells programmed correctly such that the few remaining memory cells that have not been completely programmed can be corrected using ECC during the read process.
- the predetermined limit can be less than the number of bits that can be corrected by ECC during a read process to allow for future errors.
- the predetermined limit can be a portion (pro-rata or not pro-rata) of the number of bits that can be corrected by ECC during a read process for the page of memory cells.
- the limit is not predetermined. Instead, it changes based on the number of errors already counted for the page, the number of program-erase cycles performed or other criteria.
- step 580 the program counter PC is checked against the program limit value (PL). Examples of program limit values include 20 and 30; however, other values can be used. If the program counter PC is not less than the program limit value PL, then the program process is considered to have failed and a status of FAIL is reported in step 582 . Also, the block recovery operation is performed in step 588 .
- PL program limit value
- step 584 the process continues at step 584 during which time the Program Counter PC is incremented by 1 and the program voltage Vpgm is stepped up to the next magnitude.
- the next pulse will have a magnitude greater than the previous pulse by a step size (e.g., a step size of 0.1-0.4 volts).
- step 584 the process loops back to step 572 and another program pulse is applied to the selected word line.
- FIG. 11 is a flowchart of one embodiment of a process 1100 for programming data into non-volatile storage elements (or memory cells) in a partially programmed block of a non-volatile storage device. Note that this process 1100 assumes that there are one or more partially programmed blocks in the non-volatile storage device. Thus, prior to this process 1100 , data has already been programmed into at least one of the blocks, resulting in one or more partially programmed blocks. A considerable amount of time may pass between the initial programming of the partially programmed blocks and performance of the process 1100 . It is possible for charge to become trapped in the tunnel dielectric of the non-volatile storage elements of partially programmed blocks. Process 1100 performs a recovery operation that can reduce or eliminate the trapped charge in the tunnel dielectric.
- Process 1100 refers to actions that occur at a memory die 108 , in one embodiment. However, some of the actions could occur elsewhere. Various steps of process 1100 may by performed by the managing circuitry, such as one or more of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, and/or read/write circuits 128 .
- the managing circuitry such as one or more of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, and/or read/write circuits 128 .
- a request to program data into the non-volatile storage device is received.
- This request is to program one or more pages of data, in one embodiment.
- the amount of data to be programmed can vary. The data could be less than a block of memory cells can hold. The data could be more than one block of memory cells can hold.
- the controller 122 receives a request from the host 140 .
- the request may specifies one or more pages of data to write. This request does not necessarily specify which block in the memory array to write.
- step 1104 a partially programmed block is selected for programming at least a portion of the data.
- step 1104 includes the controller 122 selecting a partially programmed block that will satisfy the request from the host 140 .
- the controller 122 may have logic that determines what block should be selected for programming, in one embodiment.
- the controller 122 formulates a program request to the memory die 108 based on a request from the host 140 .
- the program request from the controller 122 might specify a die (or logical unit number), a block number, as well as a page.
- the request from the controller 122 to the memory die 108 is compliant with a version of the Open NAND Flash Interface (ONFI). However, the request is not required to be ONFI compliant. Also, the request is not required to be to program NAND Flash. That is, the memory array is not required to be NAND Flash.
- step 1104 may also include the memory die 108 selecting a particular block based on the command from the controller 122 . Also note that considerable time may have passed since other memory cells in the partially programmed block were programmed.
- step 1106 data is programmed to an open word line in the selected partially programmed block. For example, one or more pages of data are programmed into memory cells associated with an open word line in the selected partially programmed block.
- step 1108 a determination is made whether a recovery operation of the partially programmed block should be made.
- step 1108 includes determining whether a fail bit count is above a threshold.
- step 1108 may include determining a fail bit count (FBC) with respect to programming the data to the open word line.
- the FBC refers to how many memory cells were not programmed to their intended state. The FBC may be determined as soon as the programming operation is complete. If the FBC is too high, this may be an indication that a recovery operation should be performed on the partially programmed block.
- step 1108 includes an optional erratic program detection (EPD) test.
- EPD erratic program detection
- Erratic program detection tests for whether memory cells were programmed to their intended state.
- the EPD test may determine whether memory cells are over-programmed and/or under-programmed.
- An example of an over-programmed memory cell is one with a V T above the read reference level for the next highest state. For example, of the memory cell was supposed to be programmed to the S 3 state, but its V T is greater than Vr 4 (see FIG. 8 ), the memory cell is over-programmed.
- An example of an under-programmed memory cell is one with a V T below the read level for its state.
- EPD makes a count of memory cells that were not programmed to their intended state. This may be referred to as a fail bit count (FBC).
- FBC fail bit count
- step 1108 may determine whether EPD passes. This step may compare the FBC with a pre-determined number of memory cells that are allowed to fail the test. If the EPD test passes, then the process may continue at step 1118 . Step 1118 will be discussed below. If EPD fails, then a block recovery operation is performed in step 1110 . The block recovery operation reduces or eliminates charged trapped in the tunnel dielectric of memory cells, in one embodiment. Further details are discussed below.
- Step 1110 includes performing the recovery operation.
- the recovery operation is performed on memory cells in the open region of the block other than those that were just programmed, in one embodiment.
- the recovery operation may remove trapped charge from the tunnel dielectric of the memory cells. This can place the memory cells into better condition such that programming and data retention is improved.
- the recovery operation includes performing one or more erase operations at least in the open region of the block, in one embodiment. Further details are discussed below.
- step 1114 is performed to determine whether the recovery operation was successful.
- Step 1114 may include analyzing a FBC after waiting some period of time after the recovery operation was performed. Note that data retention problems typically do not appear until some time after programming is complete. Thus, even if programming completes with a fairly low FBC, there still could be a data retention problem. As discussed above, the partially programmed block may have some electrons trapped in the tunnel dielectric region of the memory cells. If the recovery operation does not remove enough of the trapped electrons, there might be a data retention problem. Step 1114 tests for a data retention problem in one embodiment.
- step 1114 an FBC is determined for test data. If the FBC is too high, then this indicates that the recovery operation was not successful. In this case, the block is retired (step 1116 ).
- a successful block recovery operation may result in some dummy data pattern being written into at least a region of the partially programmed block.
- the partially programmed block has been recovered such that it is available for storing data, it is not necessarily used at this time.
- process 1100 may select a different block at step 1124 for finishing the original request from step 1102 . This could include selecting a different partially programmed block, as was done in step 1104 .
- the block recovery process transfers the valid data from the partially programmed block to a different block. In this case, programming may continue with that partially programmed block. Also note that in this case, the data that was to be programmed in the previous iteration of step 1106 might not have been programmed yet.
- Process 1200 in FIG. 12 is a flowchart that shows one embodiment of steps 1108 , 1110 , 1114 , and 1116 of process 1100 .
- Various steps of process 1200 may by performed by the managing circuitry, such as one or more of control circuitry 110 , state machine 112 , decoders 114 / 124 / 132 , storage 113 , power control module 116 , sense blocks SB 1 , SB 2 , . . . , SBp, and/or read/write circuits 128 .
- Steps 1202 , 1204 , and 1208 each test a FBC against some threshold.
- the FBC refers pertains to the data that was written in step 1106 of process 1100 .
- the three thresholds are progressively larger. That is, Limit A ⁇ Limit B ⁇ Limit C.
- the FBC is determined by performing erratic program detection. If the FBC is less than Limit A, then step 1118 is performed. This means that the programming was successful and that a recovery operation is not needed.
- step 1206 is performed.
- step 1206 the open region of the partially programmed block is filled with a dummy pattern. This can prevent problems associated with charges trapped in the tunnel dielectric from becoming worse. Recall that the memory cells in the open region of the block are in the erased state prior to step 1206 . These memory cells may have some amount of charges trapped in their dielectric regions. However, the relatively low FBC may be an indicator that the number of trapped charges are not notably severe. Rather than stressing the block with an erase operation, step 1206 takes the gentler approach of writing the dummy pattern. Note that the dummy pattern results in charges being stored in the charge storage region of the memory cells. The dummy pattern may prevent or reduce further charges from becoming trapped in the tunnel dielectrics of the memory cells.
- step 1206 the block is ready for further operations.
- the block is marked as ready for a new operation, in step 1207 .
- This may include the controller 122 storing information that indicates the status of the block.
- the data that has already been programmed may remain in place in the partially programmed block. If it is desired to erase the data in the block and write new data therein, the block will be in good condition for such operations.
- the erase operation that normally occurs prior to writing new data will be able to remove most or all of the relatively small amount of charges trapped in the dielectric regions.
- the process may continue at step 1124 of process 1100 . That step will select another block for programming in order to complete the original program request. Note that it is not required that a partially programmed block be selected.
- step 1208 compares the FBC with Limit C. If the FBC is equal to or greater than Limit B, but less than Limit C, then the process 1200 goes to step 1210 .
- Steps 1210 - 1414 describe another recovery option. This recovery option is somewhat more aggressive than step 1206 .
- Step 1210 includes copying the data from the partially programmed block to some other location. One possibility is to select a completely open block to copy the data to, which in effect replaces the present partially programmed block. Another possibility is to copy the data to a partially programmed block. Still another possibility is to copy the data to some temporary location, such as RAM in the controller.
- the partially programmed block is erased, in step 1212 .
- the erase may be a “soft erase”. Erasing the memory cells may place stress on them. The soft erase reduces the amount of stress. The soft erase may reduce the stress by not erasing the memory cells as deeply. This can be accomplished by using lower voltages, fewer erase pulses, etc. For normal erase procedures, an erase verify is performed. However, the erase verify may be skipped in step 1212 .
- step 1214 a dummy pattern is written to the block.
- the block is then marked as ready for further operations, in step 1215 .
- This may include the controller 122 adding the block to a list of blocks that are ready for accepting new data. For example, the block can now be erased and more data can be written to it. One possibility is to restore the data that was just moved. However, instead the block can simply be returned to a list of blocks that are entirely open.
- the dummy pattern may be left in the block to help prevent charges from becoming trapped in the tunnel dielectrics of the memory cells.
- process 1200 may go to step 1124 of process 1100 .
- step 1216 is performed.
- Steps 1216 - 1222 describe another recovery option. Note that these steps are one way to handle a still more severe trapped charge problem than steps 1210 - 1214 .
- Steps 1216 - 1220 may be similar to steps 1216 - 1222 . These steps copy the data from the partially programmed block to another location (step 1216 ), erase the block (step 1218 ), and write a dummy pattern to the block (step 1220 ). The erase may be a soft erase. A difference with this recovery process is that steps 1218 - 1220 may be repeated, using a different dummy pattern each time.
- step 1222 tests to determine whether an additional dummy pattern should be written.
- One possibility is for there to be a pre-determined number of dummy patterns. In other words, the erase and dummy pattern loop may be repeated a pre-determined number of time.
- One possibility is for the number of loops to depend on the FBC.
- Steps 1224 - 1228 describes a way to determine whether the recovery process was successful.
- the process waits some period of time to allow a data retention problem to show up. This may be referred to as a “data retention time”.
- a reason why the memory cell may have a data retention problem is due to charges in the tunnel dielectric going back to the channel.
- the data retention time may be a sufficient amount of time to allow charges to leave the tunnel dielectric and create a data retention problem. Any suitable length of time may be used for the “data retention time.”
- the data retention ⁇ time is tracked based on program/erase cycle information for blocks related to the partially programmed block.
- the device keeps track of the number of program/erase cycles for each block.
- the controller could average the program/erase cycles for all of the blocks on the same die as the partially programmed block, the same plane as the partially programmed block, the same memory device as the partially programmed block, etc. The average number of program/erase cycles could serve as a good indicator of how much time has passed.
- Step 1224 step may include writing some test data to a group of memory cells, waiting, and then testing a FBC.
- Step 1228 compares the FBC to Limit D (or a data retention fail bit threshold). Limit D may higher, lower, or the same as the other Limits (A, B, C). If the FBC is less than limit D, then the block is added to the list of blocks that are available for a new operation. For example, the controller may add the block to a list of blocks that are completely open, in step 1227 . Whether the partially programmed block is successfully recovered or not, the process may continue with step 1124 .
- step 1226 Another option if the FBC is greater than Limit D in step 1226 is to return to step 1218 to erase the block again. This could be repeated one more times, before determining that the block should be retired (in step 1228 ).
- Process 1200 could be modified by skipping some of the steps. For example, process 1200 might be modified by dropping steps 1204 and 1206 , which in effect drops the recovery option of filling the block with the dummy pattern. Another example is to drop steps 1208 - 1414 . Other modifications are possible.
- FIG. 13 is a flowchart of one embodiment of a process 1300 of a recovery operation.
- Process 1300 can be used in step 1110 of process 1100 .
- Step 1302 is a comparison of the FBC to some threshold.
- the FBC refers to the one from programming the memory cells in step 1106 . If the FBC is less than the threshold, then the open region of the block is filled with a dummy pattern, in step 1304 .
- Step 1304 is similar to step 1206 .
- At least the unprogrammed region of the block is erased, in step 1306 .
- One example of erasing at least the unprogrammed region of the block was described with respect to steps 1210 - 1214 .
- Another example was described with respect to steps 1216 - 1222 .
- Step 1306 performs a partial block erase in a 3D non-volatile memory, in one embodiment.
- One approach to erasing in a 3D non-volatile memory is to generate gate induced drain leakage (GIDL) to charge up the NAND string channel, raise the channel potential to an erase voltage, and maintain this channel potential during erase.
- the memory device includes NAND strings that have a drain-side select gate SGD transistor and a source-side select gate SGS transistor.
- the erase may be a one-sided erase or a two-sided erase.
- GIDL gate-induced drain leakage
- FIG. 14 is a flowchart of one embodiment of a process of a recovery operation.
- Process 1400 can be used in step 1110 of process 1100 .
- Step 1402 is a comparison of the FBC to a lower threshold.
- the FBC refers to the one from programming the memory cells in step 1106 . If the FBC is less than the lower threshold, then no recovery of the partially programmed block is performed. If the FBC is above the lower threshold, the FBC is compared to a higher threshold in step 1404 . If the FBC is above the lower threshold, but less than the higher threshold, then a less aggressive recovery process is performed, in step 1406 . If the FBC is equal to or greater than the higher threshold, then a more aggressive recovery process is performed, in step 1408 .
- An example of the less aggressive recovery process is steps 1210 - 1214 of process 1200 in which a single erase operation is performed.
- An example of the more aggressive recovery process is steps 1216 - 1222 of process 1200 in which a multiple erase operations are performed.
- the more aggressive recovery process may be more suitable when the charge trapping process is more severe. However, the more aggressive recovery process may create more stress and may increase write amplification. Conversely, the less aggressive recovery process may be more suitable when the charge trapping process is less severe. The less aggressive recovery process may result is less stress and may reduce write amplification.
- Process 1200 contains other examples of recovery processes in which one is less aggressive than the other.
- step 1206 may be considered to be less aggressive than steps 1210 - 1214 .
- step 1206 may be considered to be less aggressive than steps 1216 - 1222 .
- FIG. 15 depicts a flowchart of an example erase process that may be used during a partial block recovery operation.
- This erase process may be used for 3D NAND.
- This process may be used for a partial block erase. Note that this process provides for a gentle or “soft” erase procedure. Note that this is just one example of an erase process; there are many ways to erase 3D NAND.
- subsets of memory cells can be independently inhibited from being further erased in a remainder of an erase operation, once the subsets reach a verify condition. As a result, problems relating to over-erase can be reduced or avoided. Once a subset of memory cells meets a verify condition, the memory cells will not see the subsequent erase signals. This approach can tighten erase distributions, avoid over-stressing the verified memory cells, prevent deep-erased memory cells and minimize a transverse field.
- Step 1500 begins the erase operation for a set of cells comprising one type of subset.
- the set may be a block of cells, for instance.
- the set could be a portion of the block of cells, such as the open word lines.
- Status data can be maintained for each subset indicating whether the subset has a status of “inhibited,” which indicates that the subset is to be inhibited from further erasing in the erase portion of a successive erase iteration of the erase operation, or a status of “uninhibited,” which indicates that the subset is not to be inhibited from further erasing in the erase portion of a successive erase iteration of the erase operation (that is, the subset is to continue to undergo erasing).
- the status data can be maintained by the on-chip control circuitry 110 or the off-chip controller 122 , for instance, and updated based on results of a verify test of each erase iteration.
- Step 1502 initializes Verase, the peak voltage which is applied to a bit line in a one-sided erase operation, or to both a bit line and a source line in a two-sided erase operation.
- the verify test indicates which memory cells have a Vth below a verify voltage, Vv-erase.
- a memory cell is considered to pass the verify test when its Vth is below Vv-erase, and a memory cell is considered to fail the verify test when its Vth is not below Vv-erase.
- a fail bit count can be provided which indicates a number of memory cells in a subset which fail the verify test.
- a pass bit count can be provided which indicates a number of memory cells in a subset which pass the verify test.
- step 1514 considers the result of the verify test for a subset.
- the result can indicate the number of fail bits in the subset, for instance.
- a respective verify condition e.g., a first verify condition
- the status of the subset is set to inhibited.
- the subset of memory cells e.g., a first subset
- the status of the subset remains as uninhibited.
- the respective verify condition may be met, e.g., when the number of fail bits in the subset is less than a maximum allowable number.
- step 1514 is repeated for the next subset. If decision step 1518 is false, step 1522 , discussed previously, is reached.
- One embodiment disclosed herein includes a non-volatile storage device, comprising a plurality of blocks that comprise non-volatile storage elements, and managing circuitry in communication with the non-volatile storage elements.
- the managing circuitry is configured to program a set of non-volatile storage elements in a block that comprises programmed non-volatile storage elements and unprogrammed non-volatile storage elements.
- the managing circuitry is configured to determine a fail bit count of programming the set of non-volatile storage elements.
- the managing circuitry is configured to perform a recovery operation that involves unprogrammed non-volatile storage elements in the block other than those in the set in response to determining that the fail bit count exceeds a threshold.
- One embodiment disclosed herein includes a method comprising receiving a programming request; programming a first unprogrammed word line in a partially programmed block in response to the programming request, wherein the partially programmed block has a programmed region with one or more word lines programmed and an unprogrammed region with one or more word lines unprogrammed; determining a fail bit count of programming the first unprogrammed word line; and performing a recovery operation with respect to a second unprogrammed word line in the partially programmed block in response to determining that the fail bit count exceeds a threshold.
- a non-volatile storage device comprising a plurality of word lines, a plurality of NAND strings of non-volatile storage elements arranged in blocks, wherein each of the NAND strings is associated with the plurality of word lines, and managing circuitry in communication with the plurality of word lines and with the plurality of NAND strings.
- the managing circuitry selects a partially programmed block of the non-volatile storage elements to program.
- the partially programmed block comprises programmed word lines and unprogrammed word lines.
- the managing circuitry programs non-volatile storage elements associated with a first unprogrammed word line in the partially programmed block.
- the managing circuitry determines a fail bit count of programming the first unprogrammed word line.
- the managing circuitry performs an erase operation of the unprogrammed word lines in the partially programmed block in response to the fail bit count being greater than a threshold.
- One embodiment disclosed herein include a three-dimensional non-volatile storage device comprising a three-dimensional memory array and managing circuitry.
- the three-dimensional memory array comprises a plurality of word lines and a plurality of non-volatile storage elements arranged in blocks.
- the managing circuitry is in communication with the plurality of word lines and with the plurality of non-volatile storage elements.
- the managing circuitry receives a request to program data into the three-dimensional memory array.
- the managing circuitry selects a partially programmed block of the non-volatile storage elements to program the data into.
- the partially programmed block comprises programmed word lines and unprogrammed word lines.
- the managing circuitry programs the data into non-volatile storage elements associated with a first unprogrammed word line in the partially programmed block.
- the managing circuitry determines a fail bit count of programming the first unprogrammed word line.
- the managing circuitry performs a recovery operation that involves a second unprogrammed word line in the partially programmed block in response to determining that the fail bit count exceeds a threshold.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/951,347 US9460799B1 (en) | 2015-11-24 | 2015-11-24 | Recovery of partially programmed block in non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/951,347 US9460799B1 (en) | 2015-11-24 | 2015-11-24 | Recovery of partially programmed block in non-volatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US9460799B1 true US9460799B1 (en) | 2016-10-04 |
Family
ID=56995140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/951,347 Expired - Fee Related US9460799B1 (en) | 2015-11-24 | 2015-11-24 | Recovery of partially programmed block in non-volatile memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US9460799B1 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170278584A1 (en) * | 2016-03-22 | 2017-09-28 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US9852065B1 (en) * | 2016-06-28 | 2017-12-26 | Intel Corporation | Method and apparatus for reducing data program completion overhead in NAND flash |
US20190056994A1 (en) * | 2017-08-16 | 2019-02-21 | Western Digital Technologies, Inc. | Non-volatile storage with wear-adjusted failure prediction |
US20190066818A1 (en) * | 2017-08-22 | 2019-02-28 | Sandisk Technologies Llc | Determination of fast to program word lines in non-volatile memory |
US10275307B2 (en) | 2017-03-09 | 2019-04-30 | Hewlett Packard Enterprise Development Lp | Detection of error patterns in memory dies |
US20190341094A1 (en) * | 2018-03-16 | 2019-11-07 | Micron Technology, Inc. | Techniques and devices for canceling memory cell variations |
CN110473585A (en) * | 2019-07-31 | 2019-11-19 | 珠海博雅科技有限公司 | A kind of replacement method, device, equipment and storage medium for wiping failed storage unit |
US20190371418A1 (en) * | 2018-05-31 | 2019-12-05 | SK Hynix Inc. | Memory device, operating method thereof and memory system including the memory device |
US10706938B2 (en) | 2017-06-07 | 2020-07-07 | Samsung Electronics Co., Ltd. | Storage device and operating method for applying a program voltage to erased word line to close open memory block |
US10734084B2 (en) | 2018-05-31 | 2020-08-04 | Western Digital Technologies, Inc. | Scheme to reduce read disturb for high read intensive blocks in non-volatile memory |
CN111696616A (en) * | 2019-03-14 | 2020-09-22 | 西部数据技术公司 | Leak memory hole repair at manufacturing joint |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US11081196B2 (en) * | 2019-12-05 | 2021-08-03 | Sandisk Technologies Llc | Non-volatile memory with erase verify skip |
CN113692623A (en) * | 2021-06-30 | 2021-11-23 | 长江存储科技有限责任公司 | Data protection for three-dimensional NAND memory |
US20220013177A1 (en) * | 2020-04-28 | 2022-01-13 | Yangtze Memory Technologies Co., Ltd. | Memory device and erasing and verification method thereof |
US20220076757A1 (en) * | 2020-09-04 | 2022-03-10 | Micron Technology, Inc. | Read disturb scan for unprogrammed wordlines |
US11386969B1 (en) | 2021-02-16 | 2022-07-12 | Western Digital Technologies, Inc. | Method and system for improving word line data retention for memory blocks |
WO2023217281A1 (en) * | 2022-05-13 | 2023-11-16 | 华为技术有限公司 | Repair method in phase change storage apparatus, and phase change storage apparatus and electronic device |
US20240020037A1 (en) * | 2022-07-14 | 2024-01-18 | Micron Technology, Inc. | Apparatus with memory block management and methods for operating the same |
US20240105271A1 (en) * | 2022-09-28 | 2024-03-28 | Sandisk Technologies Llc | Preventing erase disturb in nand |
US12026384B2 (en) | 2022-08-26 | 2024-07-02 | Western Digital Technologies, Inc. | Open block relocation |
US12033707B2 (en) * | 2019-06-17 | 2024-07-09 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080316816A1 (en) | 2007-06-25 | 2008-12-25 | Lin Jason T | Systems for programming multilevel cell nonvolatile memory |
US20110182121A1 (en) * | 2010-01-28 | 2011-07-28 | Deepanshu Dutta | Data recovery for non-volatile memory based on count of data state-specific fails |
US20130250688A1 (en) * | 2012-03-26 | 2013-09-26 | Wenzhou Chen | Selected word line dependent programming voltage |
US8743615B2 (en) | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
US8787088B2 (en) | 2012-06-29 | 2014-07-22 | Sandisk Technologies Inc. | Optimized erase operation for non-volatile memory with partially programmed block |
US8947958B2 (en) * | 2012-10-09 | 2015-02-03 | Freescale Semiconductor, Inc. | Latent slow bit detection for non-volatile memory |
US8964480B2 (en) | 2013-07-01 | 2015-02-24 | Sandisk Technologies Inc. | Detecting programmed word lines based on NAND string current |
US20150268871A1 (en) | 2014-03-19 | 2015-09-24 | Lsi Corporation | Read disturb handling in nand flash |
-
2015
- 2015-11-24 US US14/951,347 patent/US9460799B1/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080316816A1 (en) | 2007-06-25 | 2008-12-25 | Lin Jason T | Systems for programming multilevel cell nonvolatile memory |
US20110182121A1 (en) * | 2010-01-28 | 2011-07-28 | Deepanshu Dutta | Data recovery for non-volatile memory based on count of data state-specific fails |
US8743615B2 (en) | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
US20130250688A1 (en) * | 2012-03-26 | 2013-09-26 | Wenzhou Chen | Selected word line dependent programming voltage |
US8787088B2 (en) | 2012-06-29 | 2014-07-22 | Sandisk Technologies Inc. | Optimized erase operation for non-volatile memory with partially programmed block |
US8947958B2 (en) * | 2012-10-09 | 2015-02-03 | Freescale Semiconductor, Inc. | Latent slow bit detection for non-volatile memory |
US8964480B2 (en) | 2013-07-01 | 2015-02-24 | Sandisk Technologies Inc. | Detecting programmed word lines based on NAND string current |
US20150268871A1 (en) | 2014-03-19 | 2015-09-24 | Lsi Corporation | Read disturb handling in nand flash |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10388393B2 (en) * | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US20170278584A1 (en) * | 2016-03-22 | 2017-09-28 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US9852065B1 (en) * | 2016-06-28 | 2017-12-26 | Intel Corporation | Method and apparatus for reducing data program completion overhead in NAND flash |
US20170371779A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Method and apparatus for reducing data program completion overhead in nand flash |
US10275307B2 (en) | 2017-03-09 | 2019-04-30 | Hewlett Packard Enterprise Development Lp | Detection of error patterns in memory dies |
US10706938B2 (en) | 2017-06-07 | 2020-07-07 | Samsung Electronics Co., Ltd. | Storage device and operating method for applying a program voltage to erased word line to close open memory block |
US20190056994A1 (en) * | 2017-08-16 | 2019-02-21 | Western Digital Technologies, Inc. | Non-volatile storage with wear-adjusted failure prediction |
US10802911B2 (en) * | 2017-08-16 | 2020-10-13 | Western Digital Technologies, Inc. | Non-volatile storage with wear-adjusted failure prediction |
US20190066818A1 (en) * | 2017-08-22 | 2019-02-28 | Sandisk Technologies Llc | Determination of fast to program word lines in non-volatile memory |
US10249382B2 (en) * | 2017-08-22 | 2019-04-02 | Sandisk Technologies Llc | Determination of fast to program word lines in non-volatile memory |
US11380381B2 (en) | 2018-03-16 | 2022-07-05 | Micron Technology, Inc. | Techniques and devices for canceling memory cell variations |
US10878874B2 (en) * | 2018-03-16 | 2020-12-29 | Micron Technology, Inc. | Techniques and devices for canceling memory cell variations |
US20190341094A1 (en) * | 2018-03-16 | 2019-11-07 | Micron Technology, Inc. | Techniques and devices for canceling memory cell variations |
KR20190136494A (en) * | 2018-05-31 | 2019-12-10 | 에스케이하이닉스 주식회사 | Memory device and operating method thereof and memory system |
CN110556152A (en) * | 2018-05-31 | 2019-12-10 | 爱思开海力士有限公司 | Memory device, operating method thereof, and memory system including the same |
US10734084B2 (en) | 2018-05-31 | 2020-08-04 | Western Digital Technologies, Inc. | Scheme to reduce read disturb for high read intensive blocks in non-volatile memory |
US11373717B2 (en) * | 2018-05-31 | 2022-06-28 | SK Hynix Inc. | Verification of an excessively high threshold voltage in a memory device |
US10783974B2 (en) * | 2018-05-31 | 2020-09-22 | SK Hynix Inc. | Verification of an excessively high threshold voltage in a memory device |
US20190371418A1 (en) * | 2018-05-31 | 2019-12-05 | SK Hynix Inc. | Memory device, operating method thereof and memory system including the memory device |
CN111696616B (en) * | 2019-03-14 | 2023-10-24 | 西部数据技术公司 | Repair of leakage memory holes at manufacturing joints |
DE102019134289B4 (en) | 2019-03-14 | 2024-06-20 | Western Digital Technologies, Inc. | REPAIR OF LEAKY STORAGE HOLES AT THE MANUFACTURING JOINT |
CN111696616A (en) * | 2019-03-14 | 2020-09-22 | 西部数据技术公司 | Leak memory hole repair at manufacturing joint |
US12033707B2 (en) * | 2019-06-17 | 2024-07-09 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
CN110473585A (en) * | 2019-07-31 | 2019-11-19 | 珠海博雅科技有限公司 | A kind of replacement method, device, equipment and storage medium for wiping failed storage unit |
US11081196B2 (en) * | 2019-12-05 | 2021-08-03 | Sandisk Technologies Llc | Non-volatile memory with erase verify skip |
US20220013177A1 (en) * | 2020-04-28 | 2022-01-13 | Yangtze Memory Technologies Co., Ltd. | Memory device and erasing and verification method thereof |
US12100456B2 (en) | 2020-04-28 | 2024-09-24 | Yangtze Memory Technologies Co., Ltd. | Memory device and erasing and verification method thereof |
US11676665B2 (en) * | 2020-04-28 | 2023-06-13 | Yangtze Memory Technologies Co., Ltd. | Memory device and erasing and verification method thereof |
US20220076757A1 (en) * | 2020-09-04 | 2022-03-10 | Micron Technology, Inc. | Read disturb scan for unprogrammed wordlines |
US11676666B2 (en) * | 2020-09-04 | 2023-06-13 | Micron Technology, Inc. | Read disturb scan for unprogrammed wordlines |
US11386969B1 (en) | 2021-02-16 | 2022-07-12 | Western Digital Technologies, Inc. | Method and system for improving word line data retention for memory blocks |
US11721402B2 (en) | 2021-02-16 | 2023-08-08 | Western Digital Technologies, Inc. | Method and system for improving word line data retention for memory blocks |
CN113692623A (en) * | 2021-06-30 | 2021-11-23 | 长江存储科技有限责任公司 | Data protection for three-dimensional NAND memory |
WO2023217281A1 (en) * | 2022-05-13 | 2023-11-16 | 华为技术有限公司 | Repair method in phase change storage apparatus, and phase change storage apparatus and electronic device |
US20240020037A1 (en) * | 2022-07-14 | 2024-01-18 | Micron Technology, Inc. | Apparatus with memory block management and methods for operating the same |
US12039178B2 (en) * | 2022-07-14 | 2024-07-16 | Micron Technology, Inc. | Apparatus with memory block management and methods for operating the same |
US20240338137A1 (en) * | 2022-07-14 | 2024-10-10 | Micron Technology, Inc. | Apparatus with memory block management and methods for operating the same |
US12026384B2 (en) | 2022-08-26 | 2024-07-02 | Western Digital Technologies, Inc. | Open block relocation |
US20240105271A1 (en) * | 2022-09-28 | 2024-03-28 | Sandisk Technologies Llc | Preventing erase disturb in nand |
US12087371B2 (en) * | 2022-09-28 | 2024-09-10 | Sandisk Technologies Llc | Preventing erase disturb in NAND |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9460799B1 (en) | Recovery of partially programmed block in non-volatile memory | |
US9418751B1 (en) | Pre-program detection of threshold voltages of select gate transistors in a memory device | |
US10026487B2 (en) | Non-volatile memory with customized control of injection type of disturb during program verify for improved program performance | |
US10014063B2 (en) | Smart skip verify mode for programming a memory device | |
US9548129B2 (en) | Word line look ahead read for word line to word line short detection | |
US10074440B2 (en) | Erase for partially programmed blocks in non-volatile memory | |
US9496040B2 (en) | Adaptive multi-page programming methods and apparatus for non-volatile memory | |
US10283208B2 (en) | Word line dependent pass voltages in non-volatile memory | |
US10553298B1 (en) | Non-volatile memory with countermeasure for select gate disturb | |
US7463532B2 (en) | Comprehensive erase verification for non-volatile memory | |
US9747992B1 (en) | Non-volatile memory with customized control of injection type of disturb during read operations | |
KR101368375B1 (en) | Erased sector detection mechanisms | |
US9449698B1 (en) | Block and zone erase algorithm for memory | |
US9236139B1 (en) | Reduced current program verify in non-volatile memory | |
US10734084B2 (en) | Scheme to reduce read disturb for high read intensive blocks in non-volatile memory | |
US11398285B2 (en) | Memory cell mis-shape mitigation | |
US9570160B1 (en) | Non-volatile storage system with defect detetction and early programming termination | |
KR20160096082A (en) | Write scheme for charge trapping memory | |
TW201523625A (en) | Bad block reconfiguration in nonvolatile memory | |
US9704595B1 (en) | Self-detecting a heating event to non-volatile storage | |
US20230268015A1 (en) | Self-diagnostic smart verify algorithm in user mode to prevent unreliable acquired smart verify program voltage | |
US11894072B2 (en) | Two-side staircase pre-charge in sub-block mode of three-tier non-volatile memory architecture | |
US11972804B2 (en) | Techniques for checking vulnerability to cross-temperature read errors in a memory device | |
CN117672312A (en) | Sub-block state dependent device operation | |
US11636905B2 (en) | Temperature compensation for unselected sub-block inhibit bias for mitigating erase disturb |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COSTA, XIYING;LEE, DANA;ZHOU, ZHENMING;REEL/FRAME:037166/0579 Effective date: 20151124 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES LLC, TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:SANDISK TECHNOLOGIES INC;REEL/FRAME:038812/0954 Effective date: 20160516 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20241004 |