Reducing widening of threshold voltage distributions in a memory device due to temperature change

Apparatuses and techniques are described for programming a memory device with reduced temperature-based changes in the threshold voltage distribution (Vth). Different memory cells can have different values of a temperature coefficient, Tco, and high-Tco memory cells may tend to be at the lower tail of a Vth distribution. The memory cells are programmed using a first set of verify voltages which are temperature-independent. If the temperature at the time of the programming is less than a specified temperature, the high-Tco memory cells are identified and programmed further in a second pass using a second set of verify voltages which are temperature-dependent. Further, the second pass is configured to provide a narrower Vth distribution width than the first program pass. The second pass may use a smaller program pulse step size and/or an elevated bit line voltage.

BACKGROUND

The present technology relates to the operation of memory devices.

Semiconductor memory devices have become more popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices.

A charge-storing material such as a floating gate or a charge-trapping material can be used in such memory devices to store a charge which represents a data state. A charge-trapping material can be arranged vertically in a three-dimensional (3D) stacked memory structure, or horizontally in a two-dimensional (2D) memory structure. One example of a 3D memory structure is the Bit Cost Scalable (BiCS) architecture which comprises a stack of alternating conductive and dielectric layers.

A memory device includes memory cells which may be arranged in series, in NAND strings (e.g., NAND chains), for instance, where select gate transistors are provided at the ends of a NAND string to selectively connect a channel of the NAND string to a source line or bit line. However, various challenges are presented in operating such memory devices.

DETAILED DESCRIPTION

Apparatuses and techniques are described for performing a program operation in a memory device, where the program operation reduces temperature-based changes in the threshold voltage distribution (Vth) of memory cells.

In some memory devices, memory cells are joined to one another such as in NAND strings in a block or sub-block. Each NAND string comprises a number of memory cells connected in series between one or more drain-end select gate transistors (referred to as SGD transistors), on a drain-end of the NAND string which is connected to a bit line, and one or more source-end select gate transistors (referred to as SGS transistors), on a source-end of the NAND string or other memory string or set of connected memory cells which is connected to a source line. Further, the memory cells can be arranged with a common control gate line (e.g., word line) which acts a control gate. A set of word lines extends from the source side of a block to the drain side of a block. Memory cells can be connected in other types of strings and in other ways as well.

In a 3D memory structure, the memory cells may be arranged in vertical NAND strings in a stack, where the stack comprises alternating conductive and dielectric layers. The conductive layers act as word lines which are connected to the memory cells. Each NAND string may have the shape of a pillar which intersects with the word lines to form the memory cells.

The memory cells can include data memory cells, which are eligible to store user data, and dummy or non-data memory cells which are ineligible to store user data. A dummy memory cell may have the same construction as a data memory cell but is considered by the controller to be ineligible to store any type of data including user data. A dummy word line is connected to a dummy memory cell. One or more dummy memory cells may be provided at the drain and/or source ends of a string of memory cells to provide a gradual transition in the channel voltage gradient.

During a programming operation, the memory cells are programmed according to a word line programming order. For example, the programming may start at the word line at the source side of the block and proceed to the word line at the drain side of the block. In one approach, each word line is completely programmed before programming a next word line. For example, a first word line, WL0, is programmed using one or more programming passes until the programming is completed. Next, a second word line, WL1, is programmed using one or more programming passes until the programming is completed, and so forth. A programming pass may include a set of increasing program voltages which are applied to the word line in respective program loops or program-verify iterations, such as depicted inFIG. 10. Verify operations may be performed after each program voltage to determine whether the memory cells have completed programming. When programming is completed for a memory cell, it can be locked out from further programming while programming continues for other memory cells in subsequent program loops.

The memory cells may also be programmed according to a sub-block programming order, where memory cells connected to a word line are programmed in one sub-block, then a next sub-block and so forth.

Each memory cell may be associated with a data state according to write data in a program command. Based on its data state, a memory cell will either remain in the erased state or be programmed to a programmed data state. For example, in a one bit per cell memory device, there are two data states including the erased state and the programmed state. In a two-bit per cell memory device, there are four data states including the erased state and three higher data states referred to as the A, B and C data states. In a three-bit per cell memory device, there are eight data states including the erased state and seven higher data states referred to as the A, B, C, D, E, F and G data states (seeFIG. 8). In a four-bit per cell memory device, there are sixteen data states including the erased state and fifteen higher data states. The data states may be referred to as the S0-S15data states where S0is the erased state. Each data state can be represented by a range of threshold voltages (Vth) in the memory cells.

After the memory cells are programmed, the data can be read back in a read operation. A read operation can involve applying a series of read voltages to a word line while sensing circuitry determines whether cells connected to the word line are in a conductive (turned on) or non-conductive (turned off) state. If a cell is in a non-conductive state, the Vth of the memory cell exceeds the read voltage. The read voltages are set at levels which are expected to be between the threshold voltage levels of adjacent data states. Moreover, during the read operation, the voltages of the unselected word lines are ramped up to a read pass level or turn on level which is high enough to place the unselected memory cells in a strongly conductive state, to avoid interfering with the sensing of the selected memory cells.

However, the Vth of a memory cell can change due to temperature. The change in Vth with temperature can be expressed by a temperature coefficient, Tco, which is typically negative. For example, an increase in temperature will result in a decrease in Vth, and a decrease in temperature will result in an increase in Vth. An example Tco is −2 mV/C. The temperature at which the memory cells will be read after being programmed is typically unknown, so that large changes in temperature after programming can result in large changes in Vth. This, in turn, can cause read errors. The problem is particular severe for 3D memory devices and for multi-level memory cells with many data states such as 8 or 16 data states.

Techniques provided herein address the above and other issues. The techniques are based on an observation that different memory cells can have different values of Tco. For example, in a NAND string with a polysilicon channel, the density of grain boundary traps can vary within a NAND string and across different NAND strings. In particular, memory cells with a higher density of grain boundary traps tend to have a higher Tco magnitude. These variations may be due to non-uniformities in the fabrication process and tend to be randomly distributed. These memory cells also tend to have a larger short-term data retention loss, which is a measure of an amount of charge loss in a relatively short time period due to factors such as detrapping at the grain boundary traps.

A larger data retention loss in a given time period is associated with a faster charge loss. Detrapping can also occur at an oxide tunneling layer of a memory cell.

During a program operation, in some cases, the high-Tco memory cells tend to be at the lower tail of a Vth distribution of memory cells which are being programmed to a given assigned data state. The high-Tco memory cells may be at the lower tail because their charge loss occurs relatively soon after a verify test in a program loop. Thus, a high-Tco memory cell may pass a verify test, indicating its Vth is above a verify voltage, but the Vth may subsequently quickly decrease. The Vth of normal-Tco memory cells may decrease some time after the Vth decrease of the high-Tco memory cells. The normal-Tco memory cells may be considered to be remaining memory cells, other than the high-Tco memory cells, in a set of memory cells being programmed.

The techniques described herein leverage this knowledge to identify the high-Tco memory cells and program them based on the current temperature. For example, the high-Tco memory cells may be programmed to a relatively low or high level if the current temperature is relatively high or low, respectively. The case of programming at a low temperature and reading at a high temperature is particularly problematic, since this tend to lead to more Vth widening than the case of programming at a high temperature and reading at a low temperature. In one embodiment, the high-Tco memory cells undergo further programming compared to normal-Tco memory cells when it is relatively cold such that the temperature is below a specified level, and the high-Tco memory cells do not undergo further programming compared to normal-Tco memory cells when the temperature is above the specified level.

In one aspect, a program operation involves first and second passes. In the first pass, the memory cells are programmed using a first set of verify voltages which may be temperature-independent. In the second pass, the high-Tco memory cells are identified and programmed further using a second set of verify voltages which may be temperature-dependent. Further, the second pass is configured to provide a narrower Vth distribution width than a Vth distribution width of the first program pass. For example, the second pass may use a smaller program pulse step size and/or an elevated bit line voltage which slows down the programming of the high-Tco memory cells. The second set of verify voltages may be fixed, or they may be a function of temperature such as a decreasing function of temperature. That is, when the temperature is relatively low, the second set of verify voltages are relatively high and when the temperature is relatively high, the second set of verify voltages are relatively low. The second set of verify voltages are higher than the first set of verify voltages, for one or more assigned data states, for instance.

The high-Tco memory cells at the lower tail of the Vth distribution may be identified after the first pass by sensing the memory cells using the first set of verify voltages. In one example, the high-Tco memory cells are identified as memory cells which passed their respective verify test using the first set of verify voltages during the first pass, but subsequently experience detrapping and no longer pass the respective verify test.

In another aspect, the program operation involves one program pass, e.g., a single program pass. The program pass transitions from using a temperature-independent verify voltage to a using a temperature-dependent verify voltage, for one or more assigned data states. The transition may occur when the memory cells initially reach a lockout state using a first set of verify voltages, for instance.

In another aspect, the high-Tco memory cells are in the upper tail of a Vth distribution. In this case, the remaining memory cells can undergo further programming so that their Vth encompasses the Vth of the high-Tco memory cells.

These and other features are discussed further below.

FIG. 1Ais a block diagram of an example memory device. The memory device100, such as a non-volatile storage system, may include one or more memory die108. The memory die108includes a memory structure126of memory cells, such as an array of memory cells, control circuitry110, and read/write circuits128. The memory structure126is addressable by word lines via a row decoder124and by bit lines via a column decoder132. The read/write circuits128include multiple sense blocks51,52, . . .53(sensing circuitry) and allow a page of memory cells to be read or programmed in parallel. Typically a controller122is included in the same memory device100(e.g., a removable storage card) as the one or more memory die108. The controller may be separate from the memory die. Commands and data are transferred between the host140and controller122via a data bus120, and between the controller and the one or more memory die108via lines118.

The control circuitry110cooperates with the read/write circuits128to perform memory operations on the memory structure126, and includes a state machine112, an on-chip address decoder114, a power control module116(power control circuit), a temperature-sensing circuit117, and a verify voltage setting circuit119. A storage region113may be provided, e.g., for operational parameters and software/code. In one embodiment, the state machine is programmable by the software. In other embodiments, the state machine does not use software and is completely implemented in hardware (e.g., electrical circuits).

The on-chip address decoder114provides an address interface between that used by the host or a memory controller to the hardware address used by the decoders124and132. The power control module116controls the power and voltages supplied to the word lines, select gate lines, bit lines and source lines during memory operations. It can include drivers for word lines, SGS and SGD transistors and source lines. See alsoFIG. 3. The sense blocks can include bit line drivers, in one approach. The temperature-sensing circuit117can detect a temperature of the memory device at the time of a program operation, for example, for use by the verify voltage setting circuit. The verify voltage setting circuit can set verify voltages for one or more assigned data states at a specified time in a one-pass or multi-pass program operation. SeeFIG. 1Bfor an example implementation of the temperature-sensing circuit andFIGS. 9C, 9G, 13A and 13Bfor an example implementation of how the verify voltage setting circuit can set verify voltages based on temperature. The temperature-sensing circuit and the verify voltage setting circuit may include hardware, software and/or firmware for performing the processes described herein.

In some implementations, some of the components can be combined. In various designs, one or more of the components (alone or in combination), other than memory structure126, can be thought of as at least one control circuit which is configured to perform the techniques described herein including the steps of the processes described herein. For example, a control circuit may include any one of, or a combination of, control circuitry110, state machine112, decoders114and132, power control module116, sense blocks51,52, . . . ,53, read/write circuits128, controller122, and so forth.

The off-chip controller122(which in one embodiment is an electrical circuit) may comprise a processor122c, storage devices (memory) such as ROM122aand RAM122band an error-correction code (ECC) engine245. The ECC engine can correct a number of read errors.

A memory interface122dmay also be provided. The memory interface, in communication with ROM, RAM and processor, is an electrical circuit that provides an electrical interface between controller and memory die. For example, the memory interface can change the format or timing of signals, provide a buffer, isolate from surges, latch I/O and so forth. The processor can issue commands to the control circuitry110(or any other component of the memory die) via the memory interface122d.

The storage device comprises code such as a set of instructions, and the processor is operable to execute the set of instructions to provide the functionality described herein. Alternatively or additionally, the processor can access code from a storage device126aof the memory structure, such as a reserved area of memory cells in one or more word lines.

For example, code can be used by the controller to access the memory structure such as for programming, read and erase operations. The code can include boot code and control code (e.g., a set of instructions). The boot code is software that initializes the controller during a booting or startup process and enables the controller to access the memory structure. The code can be used by the controller to control one or more memory structures. Upon being powered up, the processor122cfetches the boot code from the ROM122aor storage device126afor execution, and the boot code initializes the system components and loads the control code into the RAM122b. Once the control code is loaded into the RAM, it is executed by the processor. The control code includes drivers to perform basic tasks such as controlling and allocating memory, prioritizing the processing of instructions, and controlling input and output ports.

Generally, the control code can include instructions to perform the functions described herein including the steps of the flowcharts discussed further below, and provide the voltage waveforms including those discussed further below. A control circuit can be configured to execute the instructions to perform the functions described herein.

A NAND memory array may be configured so that the array is composed of multiple strings of memory in which a string is composed of multiple memory elements sharing a single bit line and accessed as a group. Alternatively, memory elements may be configured so that each element is individually accessible, e.g., a NOR memory array. NAND and NOR memory configurations are examples, and memory elements may be otherwise configured.

The semiconductor memory elements located within and/or over a substrate may be arranged in two or three dimensions, such as a 2D memory structure or a 3D memory structure.

As a non-limiting example, a 3D memory structure may be vertically arranged as a stack of multiple 2D memory device levels. As another non-limiting example, a 3D 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 2D configuration, e.g., in an x-y plane, resulting in a 3D arrangement of memory elements with elements on multiple vertically stacked memory planes. Other configurations of memory elements in three dimensions can also constitute a 3D memory array.

Typically, in a monolithic 3D memory array, one or more memory device levels are formed above a single substrate. Optionally, the monolithic 3D memory array may also have one or more memory layers at least partially within the single substrate. As a non-limiting example, the substrate may include a semiconductor such as silicon. In a monolithic 3D array, the layers constituting each memory device level of the array are typically formed on the layers of the underlying memory device levels of the array. However, layers of adjacent memory device levels of a monolithic 3D memory array may be shared or have intervening layers between memory device levels.

2D arrays may be formed separately and then packaged together to form a non-monolithic memory device having multiple layers of memory. For example, 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 3D memory arrays. Further, multiple 2D memory arrays or 3D memory arrays (monolithic or non-monolithic) may be formed on separate chips and then packaged together to form a stacked-chip memory device.

One of skill in the art will recognize that this technology is not limited to the 2D and 3D exemplary structures described but covers all relevant memory structures within the spirit and scope of the technology as described herein and as understood by one of skill in the art.

FIG. 1Bdepicts an example of the temperature-sensing circuit117ofFIG. 1A. The circuit includes pMOSFETs131a,131band134, bipolar transistors133aand133band resistors R1, R2and R3. I1, I2and I3denote currents. Voutput is a temperature-based output voltage provided to an analog-to-digital (ADC) converter129. Vbg is a temperature-independent voltage. A voltage level generation circuit135uses Vbg to set a number of voltage levels. For example, a reference voltage may be divided down into several levels by a resistor divider circuit.

The ADC compares Voutput to the voltage levels and selects a closest match among the voltage levels, outputting a corresponding digital value (VTemp) to the processor122c. This is data indicating a temperature of the memory device. ROM fuses123store data which correlates the matching voltage level to a temperature, in one approach. The processor then uses the temperature to set temperature-based parameters in the memory device such as by using the verify voltage setting circuit119.

Vbg, is obtained by adding the base-emitter voltage (Vbe) across the transistor131band the voltage drop across the resistor R2. The bipolar transistor133ahas a larger area (by a factor N) than the transistor133b. The PMOS transistors131aand131bare equal in size and are arranged in a current mirror configuration so that the current I1and I2are substantially equal. We have Vbg=Vbe+R2×I2and I1=Ve/R1so that I2=Ve/R1. As a result, Vbg=Vbe+R2×kT ln(N)/R1×q, where T is temperature, k is Boltzmann's constant and q is a unit of electric charge. The source of the transistor134is connected to a supply voltage Vdd and the node between the transistor's drain and the resistor R3is the output voltage, Voutput. The gate of the transistor134is connected to the same terminal as the gates of transistors131aand131band the current through the transistor134mirrors the current through the transistors131aand131b.

FIG. 2is a block diagram depicting one embodiment of the sense block51ofFIG. 1. An individual sense block51is partitioned into one or more core portions, referred to as sense circuits180-183or sense amplifiers, and a common portion, referred to as a managing circuit190. In one embodiment, there will be a separate sense circuit for each bit line/NAND string and one common managing circuit190for a set of multiple, e.g., four or eight, sense circuits. Each of the sense circuits in a group communicates with the associated managing circuit via data bus172. Thus, there are one or more managing circuits which communicate with the sense circuits of a set of storage elements.

The sense circuit180, as an example, comprises sense circuitry170that performs sensing by determining whether a conduction current in a connected bit line is above or below a predetermined threshold level. Sense circuit180also includes a bit line latch184that is used to set a voltage condition on the connected bit line. For example, a predetermined state latched in the bit line latch will result in the connected bit line being pulled to a state designating program inhibit (e.g., 1.5-3 V). As an example, a flag=0 can inhibit programming, while flag=1 does not inhibit programming.

The managing circuit190comprises a processor192, four example sets of data latches194-197and an I/O Interface196coupled between the set of data latches194and data bus120. One set of data latches, e.g., comprising individual latches LDL, MDL, UDL and LO, can be provided for each sense circuit. In some cases, additional data latches may be used. LDL stores a bit for a lower page of data, MDL stores a bit for a lower page of data, UDL stores a bit for an upper page of data and LO stores a bit indicated whether a memory cell is locked out. See alsoFIGS. 15A-16D and 17A-18B. This is in an eight-level or three-bits per storage element memory device. One additional data latch per bit line can be provided for each additional data bit per storage element.

The processor192performs computations, such as to determine the data stored in the sensed storage element and store the determined data in the set of data latches. Each set of data latches194-197is used to store data bits determined by processor192during a read operation, and to store data bits imported from the data bus120during a program operation which represent write data meant to be programmed into the memory. I/O interface196provides an interface between data latches194-197and the data bus120.

During reading, the operation of the system is under the control of state machine112that controls the supply of different control gate voltages to the addressed storage element. As it steps through the various predefined control gate voltages corresponding to the various memory states supported by the memory, the sense circuit180may trip at one of these voltages and a corresponding output will be provided from sense circuit180to processor192via the data bus172. At that point, processor192determines the resultant memory state by consideration of the tripping event(s) of the sense circuit and the information about the applied control gate voltage from the state machine via input lines193. It then computes a binary encoding for the memory state and stores the resultant data bits into data latches194-197. In another embodiment of the managing circuit190, bit line latch serves double duty, both as a latch for latching the output of the sense circuit180and also as a bit line latch as described above.

During program or verify operations for memory cells, the data to be programmed (write data) is stored in the set of data latches194-197from the data bus120, in the LDL, MDL and UDL latches, in a three-bit per storage element implementation. An additional latch LO may be used, e.g., to identify lower tail memory cells which are to be programmed using temperature-dependent verify voltages.

The program operation, under the control of the state machine, comprises a series of programming voltage pulses applied to the control gates of the addressed storage elements. Each program voltage is followed by a read back (verify) to determine if the storage element has been programmed to the desired memory state. In some cases, processor192monitors the read back memory state relative to the desired memory state. When the two are in agreement, the processor192sets the bit line latch so as to cause the bit line to be pulled to a state designating program inhibit. This inhibits the storage element coupled to the bit line from further programming even if program pulses appear on its control gate. In other embodiments the processor initially loads the bit line latch and the sense circuitry sets it to an inhibit value during the verify process.

Each set of data latches194-197may be implemented as a stack of data latches for each sense circuit. In one embodiment, there are three data latches per sense circuit180. In some implementations, the data latches are implemented as a shift register so that the parallel data stored therein is converted to serial data for data bus120, and vice versa. All the data latches corresponding to the read/write block of storage elements can be linked together to form a block shift register so that a block of data can be input or output by serial transfer. In particular, the bank of read/write circuits is adapted so that each of its set of data latches will shift data in to or out of the data bus in sequence as if they are part of a shift register for the entire read/write block.

The data latches identify when an associated storage element has reached certain mileposts in a program operations. For example, latches may identify that a storage element's Vth is below a particular verify level. The data latches indicate whether a storage element currently stores one or more bits from a page of data. For example, the LDL latches can be used to store a lower page of data. An LDL latch is flipped (e.g., from 0 to 1) when a lower page bit is stored in an associated storage element. A UDL latch is flipped when an upper page bit is stored in an associated storage element. This occurs when an associated storage element completes programming, e.g., when its Vth exceeds a target verify level such as VvA, VvB or VvC.

FIG. 3depicts an example implementation of the power control module116ofFIG. 1Afor providing voltages to blocks of memory cells. In this example, the memory structure126includes a set410of four related blocks, BLK_0to BLK_3, and another set411of four related blocks, BLK_4to BLK_7. The blocks can be in one or more planes. The row decoder124ofFIG. 1Aprovides voltages to word lines and select gates of each block via pass transistors422. The row decoder provides a control signal to pass transistors which connect the blocks to the row decoder. In one approach, the pass transistors of each set of blocks are controlled by a common control gate voltage. Thus, the pass transistors for a set of block are either all on or off at a given time. If the pass transistors are on, a voltage from the row decoder is provided to the respective control gate lines or word lines. If the pass transistors are off, the row decoder is disconnected from the respective control gate lines or word lines so that the voltage floats on the respective control gate lines or word lines.

For instance, a control gate line412is connected to sets of pass transistors413,414,415and416, which in turn are connected to control gate lines of BLK_4, BLK_5, BLK_6and BLK_7, respectively. A control gate line417is connected to sets of pass transistors418,419,420and421, which in turn are connected to control gate lines of BLK_0, BLK_1, BLK_2and BLK_3, respectively.

Typically, program or read operations are performed on one selected block at a time and on one selected sub-block of the block. An erase operation may be performed on a selected block or sub-block. The row decoder can connect global control lines402to local control lines403. The control lines represent conductive paths. Voltages are provided on the global control lines from a number of voltage drivers. Some of the voltage drivers may provide voltages to switches450which connect to the global control lines. Pass transistors424are controlled to pass voltages from the voltage drivers to the switches450.

The voltage drivers can include a selected data word line (WL) driver447, which provides a voltage on a data word line selected during a program or read operation, a driver448for unselected data word lines, and dummy word line drivers449-449cwhich provide voltages on dummy word lines. For example, the dummy word line drivers449,449a,449band449cmay provide voltages on the control gate layers or word line layers WLDD0, WLDD1, WLDS1and WLDS0, respectively, inFIG. 6A, during a refresh operation as described herein.

The voltage drivers can also include separate SGS and SGD drivers for each sub-block. For example, SGS drivers445,445a,445band445c, and SGD drivers446,446a,446band446ccan be provided for SB0, SB1, SB2and SB3, respectively, such as inFIGS. 7, 8 and 11A. In another option, one SGS driver is common to the different sub-blocks in a block.

The various components, including the row decoder, may receive commands from a controller such as the state machine112or the controller122to perform the functions described herein.

The well voltage driver430provides a voltage Vs1to the well region611ain the substrate, via control lines432. In one approach, the well region433is common to the blocks. A set of bit lines442is also shared by the blocks. A bit line voltage driver440provides voltages to the bit lines. In a stacked memory device such as depicted inFIG. 4 to 7, sets of connected memory cells may be arranged in NAND strings which extend vertically upward from the substrate. The bottom (or source end) of each NAND string is in contact with the well region, and the top end (or drain end) of each NAND string is connected to a respective bit line, in one approach.

FIG. 4is a perspective view of a memory device500comprising a set of blocks in an example 3D configuration of the memory structure126ofFIG. 1A. On the substrate are example blocks BLK0, BLK1, BLK2and BLK3of memory cells (storage elements) and peripheral areas with circuitry for use by the blocks. The peripheral area504runs along an edge of each block while the peripheral area505is at an end of the set of blocks. The circuitry can include voltage drivers which can be connected to control gate layers, bit lines and source lines of the blocks. In one approach, control gate layers at a common height in the blocks are commonly driven. The substrate501can also carry circuitry under the blocks, and one or more lower metal layers which are patterned in conductive paths to carry signals of the circuitry. The blocks are formed in an intermediate region502of the memory device. In an upper region503of the memory device, one or more upper metal layers are patterned in conductive paths to carry signals of the circuitry. Each block comprises a stacked area of memory cells, where alternating levels of the stack represent word lines. In one possible approach, each block has opposing tiered sides from which vertical contacts extend upward to an upper metal layer to form connections to conductive paths. While four blocks are depicted as an example, two or more blocks can be used, extending in the x- and/or y-directions.

In one possible approach, the blocks are in a plane, and the length of the plane, in the x-direction, represents a direction in which signal paths to word lines extend in the one or more upper metal layers (a word line or SGD line direction), and the width of the plane, in the y-direction, represents a direction in which signal paths to bit lines extend in the one or more upper metal layers (a bit line direction). The z-direction represents a height of the memory device. The blocks could also be arranged in multiple planes.

FIG. 5depicts an example transistor650. The transistor comprises a control gate CG, a drain D, a source S and a channel CH and may represent a memory cell or a select gate transistor, for example.

FIG. 6Adepicts an example cross-sectional view of a portion of the block BLK0ofFIG. 4. The block comprises a stack610of alternating conductive and dielectric layers. In this example, the conductive layers comprise two SGD layers, one SGS layer, two source side dummy word line layers (or word lines) WLDS1and WLDS0, two drain side dummy word line layers WLDD1and WLDD0, and eleven data word line layers (or data word lines) WLL0-WLL10. WLL0is a source side data word line and WLDS1is a dummy word line layer which is adjacent to the source side data word line. WLDS0is another dummy word line layer which is adjacent to WLDS1. WLL10is a drain side data word line and WLDD1is a dummy word line layer which is adjacent to the drain side data word line. WLDD0is another dummy word line layer which is adjacent to WLDD1. The dielectric layers are labelled as DL1-1L19. Further, regions of the stack which comprise NAND strings700nand710nare depicted. Each NAND string encompasses a memory hole618or619which is filled with materials which form memory cells adjacent to the word lines. Region622of the stack is shown in greater detail inFIG. 6B.

The stack includes a substrate611. In one approach, a portion of the source line SL comprises a well region611aas an n-type source diffusion layer or well in the substrate. The well region is in contact with a source end of each string of memory cells in a block. An erase pulse may be applied to this layer in an erase operation The n-type well region611ais formed in a p-type well region611b, which in turn is formed in an n-type well region611c, which in turn is formed in a p-type semiconductor substrate611d, in one possible implementation. The n-type source diffusion layer may be shared by all of the blocks in a plane, in one approach.

NAND string700nhas a source-end613at a bottom616bof the stack616and a drain-end615at a top616aof the stack. Metal-filled slits617and620may be provided periodically across the stack as interconnects which extend through the stack, such as to connect the source line to a line above the stack. The slits may be used during the formation of the word lines and subsequently filled with metal. A portion of a bit line BL0is also depicted. A conductive via621connects the drain-end615to BL0.

In one approach, the block of memory cells comprises a stack of alternating control gate and dielectric layers, and the memory cells are arranged in vertically extending memory holes in the stack.

In one approach, each block comprises a terraced edge in which vertical interconnects connect to each layer, including the SGS, WL and SGD layers, and extend upward to horizontal paths to voltage drivers.

FIG. 6Bdepicts a close-up view of the region622of the stack ofFIG. 6A. Memory cells are formed at the different levels of the stack at the intersection of a word line layer and a memory hole. In this example, SGD transistors718and717are provided above dummy memory cells716and715and a data memory cell714. These SGD transistors are at the drain end of the NAND string.

A number of layers can be deposited along the sidewall (SW) of the memory hole630and/or within each word line layer, e.g., using atomic layer deposition. For example, each pillar685or column which is formed by the materials within a memory hole can include a blocking oxide layer663, a charge-trapping layer664or film such as silicon nitride (Si3N4) or other nitride, a tunneling layer665(e.g., a gate oxide), a channel660(e.g., comprising polysilicon), and a dielectric core666(e.g., comprising silicon dioxide). A word line layer can include a metal barrier661and a conductive metal662such as Tungsten as a control gate. For example, control gates690-694are provided. In this example, all of the layers except the metal are provided in the memory hole. In other approaches, some of the layers can be in the control gate layer. Additional pillars are similarly formed in the different memory holes. A pillar can form a columnar active area (AA) of a NAND string.

Each NAND string or set of connected transistors comprises a channel which extends continuously from one or more source-end select gate transistors to one or more drain-end select gate transistors. For example, the channels700a,710a,720aand730aextend continuously in the NAND strings700n,710n,720nand730n, respectively. The channel700aextends continuously in the NAND strings700nfrom the SGS transistor701to the SGD transistors717and718. The channel700ais continuous in that it is uninterrupted and can therefore provide a continuous conductive path in the NAND string.

When a memory cell is programmed, electrons are stored in a portion of the charge-trapping layer which is associated with the memory cell. These electrons are drawn into the charge-trapping layer from the channel, and through the tunneling layer. The Vth of a memory cell is increased in proportion to the amount of stored charge. During an erase operation, the electrons return to the channel.

Each of the memory holes can be filled with a plurality of annular layers comprising a blocking oxide layer, a charge trapping layer, a tunneling layer and a channel layer. A core region of each of the memory holes is filled with a body material, and the plurality of annular layers are between the core region and the word line in each of the memory holes.

The NAND string can be considered to have a floating body channel because the length of the channel is not formed on a substrate. Further, the NAND string is provided by a plurality of word line layers above one another in a stack, and separated from one another by dielectric layers.

While the above example is directed to a 3D memory device with vertically extending NAND strings, the techniques provided herein are also applicable to a 2D memory device in which the NAND strings extend horizontally on a substrate. Both 2D and 3D NAND strings may have a polysilicon channel with grain boundary traps. Moreover, the techniques may be applied to memory devices with other channel materials as well.

FIG. 7depicts an example view of NAND strings in the block BLK0which is consistent withFIGS. 4 and 6A. The NAND strings are arranged in sub-blocks of the block in a 3D configuration. Each sub-block includes multiple NAND strings, where one example NAND string is depicted. For example, SB0, SB1, SB2and SB3comprise example NAND strings700n,710n,720nand730n, respectively. The NAND strings have data word lines, dummy word lines and select gate lines consistent withFIG. 6A. Each sub-block comprises a set of NAND strings which extend in the x direction and which have a common SGD line or control gate layer. The NAND strings700n,710n,720nand730nare in sub-blocks SB0, SB1, SB2and SB3, respectively. Programming of the block may occur based on a word line programming order. One option is to program the memory cells in different portions of a word line which are in the different sub-blocks, one sub-block at a time, before programming the memory cells of the next word line. Another option programs all of the memory cells in one sub-block, one word line at a time, before programming the memory cells of the next sub-block. The word line programming order may start at WL0, the source-end word line and end at WLL10, the drain-end word line, for example.

One or more SGD transistors are provided at the drain-end of each NAND string, and one or more SGS transistors are provided at the source-end of each NAND string. The SGD transistors in SB0, SB1, SB2and SB3may be driven by separate control lines SGD0(0) and SGD1(0), SGD0(1) and SGD1(1), SGD0(2) and SGD1(2), and SGD0(3) and SGD1(3), respectively, in one approach. In another approach, all of the SGD transistors in a sub-block are connected and commonly driven. The SGS transistors in SB0, SB1, SB2and SB3may be driven by separate control lines SGS(0), SGS(1), SGS(2) and SGS(3), respectively. In another approach, all of the SGS transistors in a block are connected and commonly driven.

FIG. 8depicts example Vth distributions of a set of memory cells with and without charge loss. The vertical axis depicts a number of memory cells on a logarithmic scale, and the horizontal axis depicts a Vth of the memory cells on a linear scale. In one approach, at a start of a program operation, the memory cells are all initially in the erased state as represented by the Vth distribution800. After the program operation is successfully completed, the memory cells assigned to the Er state are represented by the Vth distribution800a. The Vth distribution is upshifted due to program disturb.

The memory cells which are programmed to the A, B, C, D, E, F and G using verify voltages of VvA1, VvB1, VvC1, VvD1, VvE1, VvF1and VvG1, respectively, are represented by the Vth distributions801,802,803,804,805,806and807, respectively. The “1” notation indicates that this is a first set of verify voltages. Each verify voltage in the first set of verify voltages is a first verify voltage for a respective data state. A second set of verify voltages VvA2, VvB2, VvC2, VvD2, VvE2, VvF2and VvG2is also depicted for reference. Each verify voltage in the second set of verify voltages is a second verify voltage for a respective data state. The second verify voltages may be used for further programming of a portion of a set of memory cells as described further below.

These Vth distributions are obtained just after completion of the program operation, and assume that no significant charge loss occurred. The verify voltages are used in the program-verify tests of the memory cells. Read voltages VrA, VrB, VrC, VrD, VrE, VrF and VrG can be used for reading the states of the memory cells in a read operation. These verify voltages and read voltages are examples of control gate read levels of the selected word line voltage.

Due to charge loss, the Vth of the data memory cells can shift lower, as represented by the Vth distributions811,812,813,814,815,816and817for the A, B, C, D, E, F and G states, respectively. The time at which the Vth downshift occurs after programming can vary. In some cases, the charge loss occurs relatively quickly after a verify pulse. These memory cells with a fast charge loss tend to be at the lower tail of a Vth distribution. The Vth downshift due to charge loss also tends to be greater for the higher data states.

In an erase operation, the data memory cells transition from the Vth distributions of the programmed data states, e.g., states A-G, to the erased state. The erase operation includes an erase phase in which the memory cells are biased for erasing followed by an erase-verify test. The erase-verify test can use an erase verify voltage, VvEr, which is applied to the word lines.

The Er-G states are examples of assigned data states, and the A-G states are examples of programmed data states, in this eight state example. The number of data states could be higher or low than eight data states.

The example ofFIG. 8can be modified by further programming as described herein. In one embodiment, the further programming is for high-Tco memory cells which are at the lower tail of a Vth distribution of a data state. In another possible embodiment, the high-Tco memory cells are at the upper tail of a Vth distribution of a data state, and the further programming is for the remaining, normal-Tco memory cells.

FIG. 9Adepicts a plot of Vth versus temperature (T), showing a decrease in Vth for high-Tco memory cells with temperature-based programming (dashed lines), and for normal Tco-memory cells without temperature-based programming (solid lines), when the high-Tco memory cells are programmed to a higher median Vth (Vmc) than a median Vth (Vm) of the normal-Tco memory cells at a low temperature.

The plot901represents a median threshold voltage distribution for the remaining memory cells, which are not subject to a temperature based adjustment in the verify voltage during programming, in one approach. The Vth distribution of these memory cells has a width (such as a three sigma width) extending from a lower bound denoted by the plot902to an upper bound denoted by a plot900. The plot904represents a median Vth for the lower tail memory cells, which are subject to a temperature based adjustment in the verify voltage during programming. The Vth distribution of these memory cells has a narrower width compared to the remaining memory cells and is contained within the plots903and905as upper and lower bounds, respectively.

The temperature ranges from a minimum value, Tmin, such as −30° C. to a maximum value, Tmax, such as +85° C. Further, an example cold temperature, Tc, may be 0 C and an example hot temperature, Th, may be 40 C. A memory device is subject to varying temperatures based on the environment in which it is located. The slope of the plots is the Tco. As mentioned, Tco is typically negative such that Vth decreases as T increases. The slope magnitude of plot904for the high-Tco memory cells is greater than the slope magnitude of plot901for the normal-Tco memory cells.

In one example, assume that programming of a set of memory cells occurs at T=Tmin, e.g., a cold temperature. Further, the high-Tco memory cells are programmed to have a median Vth of Vmc and the normal-Tco memory cells are programmed to have a lower median Vth of Vm. Further, assume the memory cells are read later at Tmax, e.g., a hot temperature. Since the high-Tco cells have a larger magnitude Tco, their median Vth will decrease more than the decrease in the median Vth of the normal-Tco memory cells. However, the higher median Vth at the time of programming provides a sufficient margin so that the Vth width of the high-Tco memory cells remains within the Vth width of the remaining cells. In particular, the lower boundary (plot905) of the Vth width of the high-Tco memory cells does not fall below the lower boundary (plot902) of the Vth width of the remaining cells. As a result, the overall Vth width is not widened by the fact that the set of memory cells includes high-Tco memory cells. Essentially, the Vth width is reduced compared to the case where the high-Tco memory cells do not undergo temperature-based programming, as depicted inFIG. 9B. The rightward arrows inFIGS. 9A and 9Bindicate that the temperature increases after programming.

FIG. 9Bdepicts a plot of Vth versus temperature (T), as a comparison toFIG. 9A, but where the high-Tco memory cells do not undergo temperature-based programming. The plot914represents a median Vth for the high-Tco memory cells. The Vth distribution of these memory cells is contained within upper and lower bounds represented by plots913and915, respectively. The plots901-903are the same as inFIG. 9A. In this example, the Vth range of the high_Tco memory cells is below the Vth range of the remaining memory cells, so that the overall Vth width at Tmin is wider compared toFIG. 9A. The high-Tco memory cells are at the lower tail of the overall Vth distribution for a data state. As the temperature increases, the Vth range of high-Tco memory cells falls further below the Vth range of the normal-Tco memory cells. As a result, the overall Vth width increases further at Tmax. This is an undesired widening of the Vth distribution which can result in read errors.

FIG. 9Cdepicts example plots of a median Vth as a function of temperature for high-Tco memory cells, consistent withFIG. 9A. Generally, the median Vth of a set of memory cells with an assigned data state can be controlled by setting the verify voltage and other programming parameters such as program pulse magnitude and step size. In one embodiment, the median Vth of the lower tail memory cells can be set higher when programming at lower temperatures than when programming at higher temperatures, to avoid widening of the Vth distribution when reading occurs at higher temperatures.

The median Vth is depicted in a larger scale than that used inFIG. 9Ato show more detail. One option for setting the median Vth is depicted by plots930and932, which provide a step change in the median Vth at a specified temperature such as Tc. In this option, the median Vth is set to a relatively high level of Vmc when the temperature is relatively low, e.g., Tmin<T<Tc.

Another option involves a ramp change in the median Vth rather than a step change, as depicted by the plot931. Plot931involves a ramp from Vmc to Vm when T changes from Tmin to Tc. A ramp change can provide a more precise setting of the Vth as a function of the temperature at the time of programming. Also, the amount of additional programming performed can be minimized. Other options are possible as well.

The right side vertical axis depicts a verify voltage which is proportional to the median Vth. For a given assigned data state, the median Vth and the verify voltage are a decreasing function of temperature. That is, when the temperature is relatively low, the median Vth and the verify voltage are relatively high and when the temperature is relatively high, the median Vth and the verify voltage are relatively low.

Another option is to adjust the magnitude of the decreasing function of the temperature to be relatively greater when a number of program-erase cycles of the set of memory cells is relatively greater. This approach provides an adjustment based on the fact that a larger number of P-E cycles is associated with a larger Vth downshift due to charge loss. Thus, Vmc can be relatively higher when the number of P-E cycles is relatively higher.

FIG. 9Ddepicts a plot of Vth versus temperature (T), showing an increase in Vth for high-Tco memory cells without temperature-based programming (dashed lines), and for normal Tco-memory cells without temperature-based programming (solid lines), where the memory cells are programmed at a high temperature. This example is similar toFIG. 9Abut represents the case of programming at Tmax and reading at Tmin. The plot924represents a median Vth for the high-Tco, lower-tail memory cells. The Vth distribution of these memory cells is contained within upper and lower bounds represented by plots923and925, respectively. The plot921represents a median Vth for the remaining, normal-Tco memory cells. The Vth distribution of these memory cells is contained within upper and lower bounds represented by plots920and922. Additionally, assume the normal-Tco memory cells are programmed to a median Vth of Vm at Tmax. Initially, the Vth range of the high-Tco memory cells is below the Vth range of the normal-Tco memory cells so that the overall Tco is relatively large. However, as the temperature decreases, the Vth range of the high-Tco memory cells merges with the Vth range of the normal-Tco memory cells so the overall Vth distribution width advantageously decreases. Accordingly, in some embodiments, further programming is not used when the temperature at the time of programming exceeds a specified temperature such as Th because the Vth range will not widen when a read occurs.

The leftward arrows inFIG. 9D-9Findicate that the temperature decreases after programming.FIG. 9Edepicts a plot of Vth versus temperature (T), showing an increase in Vth for high-Tco memory cells without temperature-based programming (dashed lines), and for normal Tco-memory cells without temperature-based programming (solid lines), where the memory cells are programmed at a high temperature, and where the high-Tco memory cells are at the upper tail of the overall Vth distribution. In some cases, the high-Tco memory cells could be at the upper tail of the overall Vth distribution of a set of memory cells being programmed rather than at the lower tail, as in the examples ofFIGS. 9A, 9B and 9D.

The plot934represents a median Vth for the high-Tco, upper-tail memory cells. The Vth distribution of these memory cells is contained within upper and lower bounds represented by plots933and935, respectively. The plot920-922are repeated fromFIG. 9D. Additionally, assume the normal-Tco memory cells are programmed to a median Vth of Vm at Tmax. Initially, the Vth range of the high-Tco memory cells is above the Vth range for the normal-Tco memory cells. As the temperature decreases, the Vth range of the high-Tco memory cells increases further above the Vth range for the normal-Tco memory cells so that the overall Vth distribution becomes even wider. A solution to this issue is depicted inFIG. 9F.

FIG. 9Fdepicts a plot of Vth versus temperature (T), as a comparison toFIG. 9E, but where the normal Tco-memory cells (which have a Vth represents by the solid lines) undergo temperature-based programming to encompass a Vth distribution of the high-Tco memory cells (which have a Vth represents by the dashed lines), which do not undergo temperature-based programming.

The plots933-935are the same as inFIG. 9E. Additionally, the plot941represents a median Vth for the remaining, normal-Tco memory cells. The Vth distribution of these memory cells is contained within upper and lower bounds represented by plots940and942. The normal-Tco memory cells are initially programmed to a median Vth (Vm), as inFIG. 9E, and then further programmed to a higher median Vth of Vmh. As a result, the Vth range of the normal-Tco is shifted higher to encompass the high-Tco, upper tail memory cells. Subsequently, as the temperature decreases, the Vth range of the high-Tco memory cells remains within the Vth range for the normal-Tco memory cells so that the overall Vth distribution advantageously remains relatively narrow. Note that read voltages can be optimized based on the Vth range of the set of memory cells being programmed. For example, a read voltage can be shifted higher as the overall Vth distribution is shifted higher.

In another possible solution to the problem depicted inFIG. 9E, the high-Tco, upper tail memory cells could be erased to move the Vth into the range of the normal-Tco memory cells.

FIG. 9Gdepicts example plots of a median Vth as a function of temperature for normal-Tco memory cell, consistent withFIG. 9F. The median Vth of the normal-Tco memory cells in a set of memory cells can be set higher when programming at higher temperatures than when programming at lower temperatures, to avoid widening of the Vth distribution when reading occurs at lower temperatures.

The median Vth is depicted in a larger scale than that used inFIG. 9Fto show more detail. One option for setting the median Vth is depicted by plots950and952, which provide a step change in the median Vth at a specified temperature such as Th. In this option, the median Vth is set to a relatively high level of Vmh when the temperature is relatively high, e.g., Tmax>T>Th.

Another option involves a ramp change in the median Vth rather than a step change, as depicted by the plot951. Plot951involves a ramp from Vmh to Vm when T changes from Tmax to Th.

The right side vertical axis depicts a verify voltage which is proportional to the median Vth. For a given assigned data state, the median Vth and the verify voltage are an increasing function of temperature. That is, when the temperature is relatively low, the median Vth and the verify voltage are relatively low and when the temperature is relatively high, the median Vth and the verify voltage are relatively high.

Another option is to adjust the magnitude of the increasing function of the temperature to be relatively greater when a number of program-erase cycles of the set of memory cells is relatively greater. Thus, Vmh can be relatively higher when the number of P-E cycles is relatively higher.

The examples ofFIG. 9A-9Ginvolve one assigned data state as an example. The Vth range will vary for the different assigned data states. Further, the examples involved programming and reading at the extreme temperatures of Tmin and Tmax. A more typical example might involve reading at intermediate temperatures between Tc and Th.

Also, inFIGS. 9A, 9B and 9D-9F, the differences in the Tco slopes is emphasized for clarity. In practice, the difference in Tco between the high-Tco memory cells may be smaller than what is depicted.

In some embodiments, further programming of high-Tco memory cells is not used when the programming occurs during intermediate temperatures because the amount of widening of the Vth range is limited compared to the case of programming at a cold or hot temperature, e.g., below Tc or above Th, respectively.

FIG. 10depicts an example of memory cells connected to a selected word line WLn, where some of the memory cells (dotted lines) have a high-Tco and remaining memory cells have a normal-Tco (solid lines). As mentioned, some portion of the memory cells in a set of memory cells which is being programmed will have a relatively high-Tco, and these memory cells can typically be identified based on their Vth being in the lower tail of the Vth distribution of the set of memory cells, in some embodiments. In this simplified example, the set of memory cells1000includes 32 memory cells which are connected to a selected word line, WLn. For simplicity, the assigned data states are arranged one after the other in a series although, in practice, the assigned data states are usually randomly distributed among a set of memory cells. Additionally, one in four memory cells is considered to be a high-Tco memory cell. The set of memory cells1000includes Er-state memory cells1001-1004, A-state memory cells1005-1008, B-state memory cells1009-1012, C-state memory cells1013-1016, D-state memory cells1017-1020, E-state memory cells1021-1024, F-state memory cells1025-1028and G-state memory cells1029-1032.

The high-Tco memory cells (shown by boxes with dotted lines) are the memory cells1001,1005,1009,1013,1017,1021,1025and1029. The normal-Tco memory cells, or remaining memory cells in the set of memory cells (shown by boxes with solid lines) are the memory cells1002-1004,1006-1008,1010-1012,1014-1016,1018-1020,1022-1024,1026-1028and1030-1032.

The set of memory cells1000represents all of the memory cells involved in a program operation. A set of memory cells could also refer to memory cells of a particular assigned data state.

FIG. 11Adepicts the D-state Vth distribution814ofFIG. 8, including a portion814aat a lower tail of the Vth distribution, having Vth<VvD1, and a remaining portion814b, having Vth>VvD1. The portion814arepresents one portion of a set of memory cells, such as the high-Tco memory cells in the set (e.g., memory cells1001,1005,1009,1013,1017,1021,1025and1029in the set1000ofFIG. 10). The remaining portion814brepresents a remaining portion of a set of memory cells, such as the normal-Tco memory cells in the set (e.g., memory cells1002-1004,1006-1008,1010-1012,1014-1016,1018-1020,1022-1024,1026-1028and1030-1032in the set1000ofFIG. 10).

The D-state Vth distribution is shown as an example, and the principles discussed can apply to other data states as well. Among the memory cells assigned to the D state, the memory cells in the portion814aare the lower tail or high-Tco memory cells and the memory cells in the remaining portion814bare the remaining or normal-Tco memory cells, in one embodiment. One option is to sense the memory cells using the verify voltage VvD1, which is the normal D-state verify voltage, to identify the lower tail memory cells. Another option is to sense the memory cells using another verify voltage (other than VvD1). During the sensing, the lower tail memory cells will be conductive and the remaining memory cells will be non-conductive. The lower tail memory cells can be considered to be those memory cells with a Vth in the lower 1-30% of a set of memory cells of a given assigned data state, for example.

In one embodiment, for a given data state, the lower tail memory cells are detected after the memory cells assigned to the data state have reached the lockout state. Thus, the lower tail memory cells will be those which experience a Vth downshift after reaching lockout. The lower tail memory cells are not necessarily slow programming memory cells, but can have different program speeds. Further, these lower tail memory cells will be high-Tco memory cells which have relatively fast detrapping, e.g., a relatively large short-term data retention loss compared to the remaining memory cells. The lower tail memory cells may detrap right after the verify test finishes. These cells tend to have more grain boundary traps, which explains why they have larger Tco.

In one option, discussed further below such as inFIG. 15A-15C, the memory cells are sensed after a program pass to identify the lower tail memory cells. The lower tail memory cells but not the remaining memory cells are then subject to further programming in another program pass using temperature-based verify voltages. In another option, discussed further below such as inFIG. 16, the memory cells are programmed in one program pass, where the programming includes a first number of program loops in which the memory cells of an assigned data state reach a lockout state using a temperature-independent verify voltage. A sensing operation is then performed to identify the lower tail memory cells, and a second number of program loops is performed in which the lower tail memory cells are further programmed and again reach the lockout state using a temperature-dependent verify voltage. Further, the second number of program loops may provide a slower programming of the lower tail memory cells (compared to the programming speed in the first number of program loops) to achieve a narrower Vth distribution of the lower tail memory cells (compared to the Vth distribution width for the remaining memory cells), as discussed. The normal speed and slow speed programming can be provided separately for each of the different data states.

FIG. 11Bdepicts Vth distributions814cand814dwhich are obtained by programming of the lower tail memory cells ofFIG. 11Ausing a verify voltage of VvDc1or VvDc2, respectively.

After the programming, the median Vth of the lower tail memory cells (Vmc) may be above the median Vth of the remaining memory cells (Vm). VvDc1or VvDc2can be a decreasing function of temperature such that VvDc1or VvDc2is relatively high when temperature is relatively low. In another approach, the median Vth of the lower tail memory cells is aligned with the median Vth of the remaining memory cells. VvDc1or VvDc2could be independent of the current temperature in this approach. VvDc1and VvDc2are both greater than VvD1.

The Vth distribution portion814bis shown as being cutoff at the lower tail but will generally have a Gaussian shape as detrapping occurs continuously, including after programming.

The Vth distribution of the lower tail memory cells should not be higher than the Vth distribution of the remaining memory cells or this can cause widening at the upper tail of the overall Vth distribution.

In the case of programming at a high temperature, it is possible to omit the option to identify and further program the lower tail memory cells. Although, one advantage of the further programming of the lower tail memory cells is to narrow the overall Vth distribution width.

FIG. 11Cdepicts a downshift in the D-state Vth distribution ofFIG. 11Bdue to programming at a low temperature and reading at a high temperature. As mentioned, programming at a low temperature and reading at a high temperature results in a Vth downshift due to Tco. Moreover, the Vth distribution is also widened since the lower tail cells (which have faster detrapping) tend to have larger magnitude Tco. In particular, the Vth distribution portion814btransitions to the Vth distribution portion814b1, the Vth distribution portion814ctransitions to the Vth distribution portion814c1. An additional Vth distribution815represents a comparison case which would occur if the low tail memory cells were not programmed to the Vth distribution portion814cinFIG. 11B. This comparison case has additional undesirable Vth widening at the lower tail.

FIG. 11Ddepicts the D-state Vth distribution814ofFIG. 8, including a portion824aat an upper tail of the Vth distribution, having Vth>VD2, and a remaining portion824b, having Vth<VD2. This example is relevant to a scenario in which memory cells with a Vth in the upper tail of a Vth distribution of a set of memory cells have a higher magnitude Tco than remaining memory cells in the set of memory cells, as mentioned, e.g., in connection withFIG. 9E-9G. VD2is not a verify voltage in this example, but identifies the lower bound of the upper tail. The upper tail memory cells can be considered to be those memory cells with a Vth in the upper 1-30% of a set of memory cells of a given assigned data state, for example.

The portion824arepresents one portion of a set of memory cells, such as the high-Tco memory cells in the set (e.g., memory cells1001,1005,1009,1013,1017,1021,1025and1029in the set1000ofFIG. 10). The portion824brepresents memory cells, such as the normal-Tco memory cells in the set (e.g., memory cells1002-1004,1006-1008,1010-1012,1014-1016,1018-1020,1022-1024,1026-1028and1030-1032in the set1000ofFIG. 10).

The memory cells of the portion824bmay comprise more than half, e.g., more than 70% of the set of memory cells. The memory cells of this portion are a subset of the set of memory cells which has a threshold voltage below a specified level (VD2). The subset of the set of memory cells may comprises more than half of the set of memory cells. The portion824ais a remaining portion of the set of memory cells, which has a threshold voltage above the specified level.

FIG. 1Edepicts Vth distributions824cand824dwhich are obtained by programming the remaining portion824bofFIG. 11Dusing a verify voltage of VvDh1or VvDh2, respectively. The memory cells of the portion824aare not further programmed. Instead, the memory cells of the remaining portion824bare programmed using one or more program loops. This approach is opposite to the vase of the high-Tco memory cells being at the lower tail, where the high-Tco memory cells undergo further programming.

The program loops can include a verify test which uses a lower verify voltage VvDh1to achieve a median Vth of Vm for both the Vth distributions824aand824c. Or, a higher verify voltage VvDh2can be used to achieve a higher median Vth of Vmh>Vm for the Vth distribution824d. VvDh1and VvDh2are both greater than VvD1.

FIG. 11Fdepicts an upshift in the D-state Vth distributions ofFIG. 11Edue to programming at a high temperature and reading at a low temperature. As mentioned, programming at a high temperature and reading at a low temperature results in a Vth upshift due to Tco. Moreover, the Vth distribution may also be widened such as in the case of high-Tco memory cells at the upper tail of a Vth distribution. In particular, the Vth distribution portion824ctransitions to the Vth distribution portion814b2, and the Vth distribution portion824atransitions to the Vth distribution portion814h2. An additional Vth distribution816represents a comparison case which would occur if the programming ofFIG. 11Eis not used. This comparison case has additional undesirable Vth widening at the upper tail.

FIG. 12Adepicts a voltage signal in a program pass, such as a first program pass in a multi-pass program operation, or as the sole program pass of a one pass program operation. The horizontal axis denotes a program loop number, ranging from1-18, and the vertical axis denotes voltage. During a program operation, program loops are performed for a selected word line in a selected block. A program loop comprises a program portion in which a program voltage or pulse is applied to the selected word line followed by a verify portion in which a verify signal or pulse is applied to the selected word line while one or more verify tests, referred to as program-verify tests, are performed for the associated memory cells. Other than the erased state, each assigned state has a verify voltage which is used in the verify test for the state in a program operation.

The voltage signal1200includes a series of program voltages, including an initial program voltage1201, which are applied to a word line selected for programming. In this example, the voltage signal includes program voltages which increase stepwise in amplitude in one or more program loops of a programming pass using a fixed or varying step size. This is referred to as incremental step pulse programming, where the program voltage (Vpgm) starts at an initial level, Vpgm_init1, and increases in a step in each successive program loop, for instance, until the program operation is completed. A fixed normal step size of dVpgm1is depicted. A successful completion occurs when the threshold voltages of the selected memory cells reach the verify voltages of the assigned data states.

A program operation can include a single programming pass or multiple programming passes, where each pass uses incremental step pulse programming, for instance.

The verify signal in each program loop, including example verify signal1202, can include one or more verify voltages, based on the assigned data states which are being verified for the program loop. The verify tests can encompass lower assigned data states and then midrange assigned data states and then higher assigned data states as the program operations proceeds. The example verify signals depict three verify voltages as a simplification.

All memory cells may initially be in the erased state at the beginning of the program operation, for instance. After the program operation is completed, a Vth distribution similar to that inFIG. 8is achieved, and the data can be read from the memory cells using read voltages which are between the Vth distributions. At the same time, a read pass voltage, Vpass (e.g., 8-10 V), also referred to as pass voltage or turn on voltage, is applied to the remaining word lines. By testing whether the Vth of a given memory cell is above or below one or more of the read reference voltages, the system can determine the data state which is represented by a memory cell. These voltages are demarcation voltages because they demarcate between Vth ranges of different data states.

Moreover, the data which is programmed or read can be arranged in pages. For example, with four data states, or two bits per cell, two pages of data can be stored. An example encoding of bits for the Er, A, B and C states is 11, 10, 00 and 01, respectively, in the format of upper page (UP) bit/lower page (LP) bit. A lower page read may use VrA and VrC and an upper page read may use VrB.

With eight data states, or three bits per cell, three pages of data can be stored. An example encoding of bits for the Er, A, B, C, D, E, F and G states is 111, 110, 100, 000, 010, 011, 001 and 101, respectively. In each three-bit sequence, the UP bit is followed by the MP bit and then the LP bit. The data of the lower, middle and upper pages can be determined by reading the memory cells using read voltages of VrA and VrE; VrB, VrD and VrF; and VrC and VrG, respectively.

FIG. 12Bdepicts an example of verify voltages used in different program loops, consistent withFIGS. 12A and 15A, where one set of verify voltages (one verify voltage per assigned data state) is used in a program pass. The horizontal bars ofFIGS. 12B and 12Care time-aligned with the program loop axis ofFIG. 12A. The set of verify voltages1210includes VvA1, VvB1, VvC1, VvD1, VvE1, VvF1and VvG1used in program loops1-7,2-9,4-10,5-12,7-14,8-16and10-18, respectively. This is an example of a first set of verify voltages.

FIG. 12Cdepicts an example of verify voltages used in different program loops, consistent withFIGS. 12A and 16, where first and second sets of verify voltages (two verify voltages per assigned data state) are used in a program pass, and the second sets of verify voltages are temperature-based. The set of verify voltages1220includes VvA1, VvB1, VvC1, VvD1, VvE1, VvF1and VvG1used in a first set of program loops1-5,2-7,4-8,5-9,7-10,8-11and10-14, respectively. This is an example of a first set of verify voltages. The set of verify voltages1220also includes VvA2, VvB2, VvC2, VvD2, VvE2, VvF2and VvG2used in a second set of program loops6-8,8-10,9-11,10-12,11-13,12-15and15-18, respectively. This is an example of a second set of verify voltages. The verify voltages VvA1-VvG1may be the same as inFIG. 8, for example.

For an assigned data state, a sensing operation to identify the lower tail memory cells may be performed when transitions from the verify voltage of the first set to the verify voltage of the second set. For example, a sensing operation (denoted by an “S” inFIG. 12Cand performed in a sense period1220a) may be performed at the end of program loop5,7,8,9,10,11and14and before the beginning of program loop6,8,9,10,11,12and15, respectively, for the A, B, C, D, E, F and G states, respectively. The sensing operation can be for one or more data states. SeeFIGS. 12G and 12Hfor example voltage signals used in program loops9and10, respectively.

FIG. 12Ddepicts a voltage signal in a program pass, such as a second program pass in a multi-pass program operation, which follows the voltage signal ofFIG. 12A, consistent withFIG. 15C. The horizontal axis denotes a program loop number, ranging from1-22, and the vertical axis denotes voltage. The second program pass may provide a fine (narrower Vth distribution) programming of the lower tail memory cells as compared to a coarse (wider Vth distribution) programming of the remaining memory cells in the first program pass. That is, a control circuit may be configured to provide a narrower threshold voltage distribution width for one portion of the set of memory cells than for a remaining portion of the set of memory cells.

For this reason, there may be more program loops used in the second program pass than in the first, in one example. The initial program pulse magnitude, Vpgm_init may be lower than Vpgm_init1, for example. The step size dVpgm2may also be smaller than dVpgm1. Another option to provide a narrow Vth distribution width is to increase a bit line voltage (Vbl) of the selected NAND strings which are being programmed. For example, Vbl=1.0 V may be used as compared to Vbl=0 V in the first program pass. This elevated bit line voltage can be a positive voltage which is lower than a Vbl such as 2-3 V which is used to lockout a NAND string from further programming. This elevated Vbl provides a slower programming which results in a narrow Vth distribution width.

The voltage signal1250includes a series of program voltages, including an initial program voltage1251, which are applied to the selected word line. The program voltage (Vpgm) starts at an initial level, Vpgm_init1, and increases using a fixed step size of dVpgm2, for instance. The verify signal in each program loop, including example verify signal1252, can include one or more verify voltages, based on the assigned data states which are being verified for the program loop.

FIG. 12Edepicts an example of verify voltages used in different program loops, consistent withFIG. 12A, where one set of temperature-based verify voltages (one verify voltage per assigned data state) is used in the second program pass for programming lower tail memory cells, and where the sensing of the lower tail memory cells occurs at a start of the second program pass. The horizontal bars ofFIG. 12Eare time-aligned with the program loop axis ofFIG. 12D. The set of verify voltages1260includes VvA2, VvB2, VvC2, VvD2, VvE2, VvF2and VvG2used in program loops1-9,3-11,5-13,7-15,9-17,11-19and13-22, respectively. This is an example of a second set of verify voltages. In one approach, after the first program pass and before the second program pass, e.g., at a start of the second program pass, a sensing operation occurs for each assigned programmed data state (as denoted by the sense period1260awith an “S”) to identify the lower tail memory cells. SeeFIG. 12K. These lower tail memory cells are programmed in the second program pass. In one approach, remaining memory cells (memory cells other than the lower tail memory cells) are not programmed in the second program pass.

FIG. 12Fdepicts the example verify voltages ofFIG. 12E, where the sensing of the lower tail memory cells occurs just before a program loop, for each programmed data state. In this example set of verify voltages1270, the sensing of the lower tail memory cells occurs at different times in the second program pass, just before a program loop in which verify operations are performed for a given data state. For example, the sensing occurs to identify the lower tail memory cells of the A, B, C, D, E, F and G states occurs just before program loop1,3,5,7,9,11and13, respectively. SeeFIGS. 12I and 12Jfor example voltage signals used in program loops6and7, respectively. A sensing period1270ais also depicted inFIG. 12I.

FIG. 12Gdepicts an example voltage signal1221in program loop9(PL9) ofFIG. 12C, consistent with the sense period1220a. The voltage signal is applied to the selected word line and includes a program pulse1221a(Vpgm), a verify signal1221bused in verify tests and a sensing voltage1221c(in the sense period1220a) used for sensing D state lower tail memory cells. The verify voltages are VvB2, VvC2and VvD1. The B and C state memory cells are therefore verified using a voltage in a second set of verify voltages and the D state memory cells are verified using a voltage in a first set of verify voltages. Additionally, the verify test for the B and C state memory cells is limited to the lower tail B and C state memory cells which have a program status in their latches, while the verify test for the D state memory cells is for all D state memory cells which have a program status in their latches. The sensing voltage1221cmay or may not be considered to be part of PL9.

FIG. 12Hdepicts an example voltage signal1222in program loop10(PL10) ofFIG. 12C. The voltage signal includes a program pulse1222a(Vpgm) and a verify signal1222b. The verify voltages are VvB2, VvC2and VvD2. The B, C and D state memory cells are therefore verified using a voltage in the second set of verify voltages. Additionally, the verify test for the B, C and D state memory cells is limited to the lower tail B, C and D state memory cells which have a program status in their latches.

FIG. 12Idepicts an example voltage signal1271in program loop6(PL6) ofFIG. 12F, consistent with the sense period1270a. The voltage signal includes a program pulse1271a(Vpgm), a verify signal1271bused in verify tests and a sensing signal1271cor pulse (in the sense period1270a) used for sensing D state lower tail memory cells. The verify voltages are VvA2, VvB2and VvC2. The A, B and C state memory cells are therefore verified using a voltage in a second set of verify voltages. Additionally, the verify test for the A, B and C state memory cells is limited to the lower tail A, B and C state memory cells which have a program status in their latches.

FIG. 12Jdepicts an example voltage signal1272in program loop7(PL7) ofFIG. 12F. The voltage signal includes a program pulse1272a(Vpgm) and a verify signal1272b. The verify voltages are VvA2, VvB2, VvC2and VvD2. The A, B, C and D state memory cells are therefore verified using a voltage in a second set of verify voltages. Additionally, the verify test for the A-D state memory cells is limited to the lower tail A-D state memory cells, respectively, which have a program status in their latches.

FIG. 12Kdepicts an example voltage signal in the sense period1260aofFIG. 12E. in this example, a verify signal1260bincludes verify voltages of VvA1-VvG1. The sensing operation can identify the lower tail memory cells of each of the programmed data states in this example.

FIG. 13Adepicts an example plot of verify voltages versus data states, including a first set of verify voltages (solid lines) for initial programming of a set of memory cells, and a second set of verify voltages for further programming of lower-tail memory cells (dash-dot lines), where there is a constant increment between the first and second sets of verify voltages. As mentioned, the verify voltage for the further programming of the lower tail memory cells can be higher than the verify voltage for the initial programming of a set of memory cells (which includes the lower tail memory cells and remaining memory cells) when the initial programming occurs when the memory device is cold. Further, as mentioned, the verify voltage for the further programming can be a decreasing function of temperature. This example provides a simpler implementation thanFIG. 13Bbecause the second set of verify voltages can be easily calculated using a common increment from the first set of verify voltages for each assigned data state.

FIG. 13Bdepicts an example plot of verify voltages versus data states, including a first set of verify voltages (solid lines) for initial programming of a set of memory cells, and a second set of verify voltages for further programming of lower-tail memory cells (dotted lines), where the increment between the first and second sets of verify voltages is an increasing function of the data state. In this example, the verify voltage for the further programming of the lower tail memory cells can be an increasing function of the data state as well as a decreasing function of temperature.

This example provides a custom increment between the first and second sets of verify voltages for each assigned data state. The increment can be larger for higher data states to account for an expected larger amount of charge loss. In this example, an amount by which the second verify voltage (in the second set of verify voltages) exceeds the first verify voltage (in a first set of verify voltages) is relatively large when the assigned data state is a relatively high assigned data (e.g., states E, F and G) state among a plurality of assigned data states (e.g., states Er-G). The first and second sets of verify voltages may be consistent withFIG. 8.

FIG. 14depicts an example program operation which minimizes Vth widening due to temperature changes. Step1400includes performing first programming for a set of memory cells using a first set of verify voltages of assigned data states. The first programming may result in a normal Vth distribution width which does not use a slowdown measure such as a reduced program pulse step size or an elevated bit line voltage. The first programming could include a first program pass as inFIGS. 12A and 12B, or a first set of program loops, as inFIGS. 12A and 12C.

Step1401includes, after the first programming, identifying memory cells in the set of memory cells to undergo further programming, for one or more assigned data states. See, e.g.,FIGS. 11A and 11D. The identified memory cells could include, e.g., the memory cells1001,1005,1009,1013,1017,1021,1025and1029inFIG. 10. Step1402includes selecting a second set of verify voltages which are higher than the first set of verify voltages for the assigned data states, e.g., based on a decreasing function of temperature. See, e.g.,FIGS. 9C, 9G, 13A and 13B. Step1403includes performing second programming for the identified memory cells, but not for remaining memory cells, using the second set of verify voltages, thereby providing a narrow Vth distribution. The second programming could include a second program pass as inFIGS. 12D and 12E. The remaining memory cells could include the memory cells could1002-1004,1006-1008,1010-1012,1014-1016,1018-1020,1022-1024,1026-1028and1030-1032ofFIG. 10.

FIG. 15Adepicts an example of a first program pass in a multi-pass program operation, consistent withFIG. 14. Step1500begins a first program pass. Step1501sets an assigned data state in latches of the selected memory cells. See, e.g.,FIG. 17A-18B. For example, a host device may identify assigned data states in a program command which is received by the external controller122. The controller in turn communicates with the circuitry110to execute the program command, including writing data into the latches which identifies the assigned data states. Step1502begins a program loop. Step1503includes reading the latches of the selected memory cells, e.g., to determine whether the memory cells are in a lockout or program state. Step1504includes setting bit line voltages to inhibit programming of memory cells with the lockout state, e.g., by setting Vbl=2-3 V, and to allow programming of memory cells with the program state, e.g., by setting Vbl=0 V. Vbl=0 V provides a normal speed programming of the memory cells with a normal Vth distribution width. Step1505includes applying a program pulse to the set of memory cells, e.g., via the selected word line. Step1506includes performing verify tests for the selected memory cells using a first set of verify voltages. Step1507includes updating the latches based on results of the verify tests. For example, the latches can be changed from the program state to the lockout state when the verify test is passed.

A decision step1508determines if there is a next program loop. If this is true, step1509includes stepping up Vpgm with a normal step size and a next program loop begins at step1502. If decision step1508is false, step1510denotes the end of the first program pass. The program pass may end when all or nearly all of the selected memory cells pass their respective verify test.

FIG. 15Bdepicts an example implementation of step1401ofFIG. 14, which can follow the first program pass ofFIG. 15A. Step1520includes sensing the memory cells using sense voltages of the assigned data states, such as discussed in connection withFIG. 11A, where the sense voltage for the D state could be VvD1, for instance. Step1521includes setting the latches to the lockout state for memory cells which are sensed as being non-conductive. Step1522includes setting the latches to the program state for memory cells which are sensed as being conductive.

FIG. 15Cdepicts an example of a second program pass in a multi-pass program operation which follows the first pass ofFIG. 15A, consistent withFIG. 14. Step1530begins a second program pass. Step1530aincludes sensing the memory cells to identify memory cells to be further programmed, and updating the latches of these identified memory cells to the program state. In one approach, step1530aoccurs when the temperature is below a specified level (e.g., Tc), this step can identify lower tail memory cells for each of the programmed data states A-G, for example, where the lower tail memory cells are the memory cells to be further programmed. In one embodiment, the sensing occurs when the high-Tco memory cells have a Vth downshift and before many of the normal-Tco memory cells have a Vth downshift, so that the lower tail memory cells will primarily include high-Tco memory cells.

In another embodiment, step1530aoccurs when the temperature is above a specified level (e.g., Th). In this case, step1530acan identify the upper tail memory cells for each of the programmed data states A-G, for example, where the remaining memory cells are the memory cells to be further programmed.

The latches of the identified memory cells are set to a program state and the latches of the remaining memory cells remain in a lockout state. Step1531begins a program loop. Step1532includes reading the latches of the selected memory cells, e.g., to determine whether the memory cells are in a lockout or program state. Step1533includes setting bit line voltages to inhibit programming of memory cells with the lockout state, e.g., by setting Vbl=2-3 V, and to allow programming of memory cells with the program state, e.g., by setting Vbl=1 V. Vbl=1 V provides a slow speed programming of the identified memory cells to achieve a narrow Vth distribution width. Step1534includes applying a program pulse to the set of memory cells. Step1535includes performing verify tests for the selected memory cells using a second set of verify voltages. Step1536includes updating the latches based on results of the verify tests.

A decision step1537determines if there is a next program loop. If this is true, step1538includes stepping up Vpgm with a small step size and a next program loop begins at step1531. If decision step1537is false, step1539denotes the end of the first program pass. A next program loop occurs when some of the memory cells have not yet reached the lockout state. In some cases, the second program pass is completed when no more than a specified number of memory cells, such as 1% of the memory cells, remain in the program state and have not reached the lockout state, for each programmed data state.

FIG. 16depicts an example of a program pass in a one-pass program operation, consistent withFIG. 14. Step1600begins the program pass. Step1601sets an assigned data state in latches of the selected memory cells. Step1602begins a program loop. Step1603includes reading the latches of the selected memory cells, e.g., to determine whether the memory cells are in a lockout or program state. Step1604includes setting bit line voltages to inhibit programming of memory cells with the lockout state, e.g., by setting Vbl=2-3 V, and to allow programming of memory cells with the program state, e.g., by setting Vbl=0 V for a normal programming speed or Vbl=1 V for a slow speed programming, respectively. Initially, Vbl=0 V may be used until the verify test is passed for a data state using a verify voltage in a first set of verify voltages, as mentioned in connection with step1606. Subsequently, Vbl=1 V may be used. Step1605includes applying a program pulse to the set of memory cells. Subsequently, either step1606or1607can be followed for each data state. Step1606is followed if all (or nearly all) of the memory cells have not reached the lockout state using a verify voltage in a first set of verify voltages. Step1607is followed if all (or nearly all) of the memory cells have reached the lockout state using the verify voltage in the first set of verify voltages.

Step1606includes performing verify tests using a respective verify voltage in a first set of verify voltages. Step1608includes updating the latches based on results of the verify tests. At step1609, if the verify test of step1606indicates that the memory cells have all reached the lockout state for the first time when being verified using a verify voltage in a first set of verify voltages, the memory cells assigned to the data state are sensed to identify the memory cells to be further programmed. Step1609also includes updating the latches to the program state to indicate that identified memory cells should undergo further programming using a temperature-based verify voltage, e.g., a verify voltage in a second set of verify voltages. That is, the latches will be updated from the lockout state to the program state for the identified memory cells while the latches of the remaining memory cells remain in the lockout state.

As inFIG. 15C, step1530a, with T<Tc, the sensing of step1609may occur when the high-Tco memory cells with a particular assigned data state have a Vth downshift and before many of the normal-Tco memory cells with the particular assigned data state have a Vth downshift, so that the lower tail memory cells will primarily include high-Tco memory cells of the particular assigned data state, in one embodiment.

Step1607involves performing verify tests using a respective verify voltage in a second set of verify voltages. In some cases, in a given program loop, step1606is performed for memory cells assigned to one data state, and step1607is performed for memory cells assigned to another data state. Step1607ainvolves updating the latches based on results of the verify tests of step1607. The latches are updated from the program state to the lockout state for memory cells which pass a verify test.

A decision step1610determines if there is a next program loop. If this is true, step1611includes stepping up Vpgm with a small or normal step size (when the condition is not met or met, respectively) and a next program loop begins at step1602. If decision step1610is false, step1612denotes the end of the first program pass. The narrow Vth distribution can be achieved by using the normal step size throughout the program pass while using an elevated Vbl to slow down programming for memory cells of data states for which the condition of step1606is met. Since all selected memory cells received the same program pulse, this approach avoids slowing down the programming of the memory cells of data states for which the condition of step1606is not yet met.

FIG. 17Adepicts an example of bit values in latches at a start of a program pass, consistent withFIG. 14-16. As mentioned, e.g., in connection withFIGS. 2 and 15A-16, a set of latches can be associated with each NAND string and thus with each selected memory cell being programmed. A bit combination stored in the latches can identify the assigned data state and/or indicate that the memory cell is in a lockout or program state. The bit combinations of 111, 110, 100, 000, 010, 011, 001 and 101 identify the Er, A, B, C, D, E, F and G states, respectively, as assigned data states. The bit combination of 111 also identifies the lockout state. During programming, when the memory cells reach their respective lockout state, the bit combination can be changed to 111 as indicated inFIG. 17B

FIG. 17Bdepicts bit values in latches at a completion of a program operation, consistent withFIG. 17A. As mentioned, the bit combination 111 denotes the lockout state.

FIG. 18Adepicts an example of bit values in latches at a start of a first program pass, consistent withFIG. 14-16. This example adds the LO bit to identify a lockout or program status. During a first program pass, for example, the LO bit may be changed from 0 to 1, for example, when the respective memory cell reaches the lockout state using the first set of verify voltages. At the end of the first pass, the sensing ofFIG. 15Boccurs. The LO bit can be changed from 1 (lockout) to 0 (program) for the memory cells to be further programmed. Subsequently, in the second program pass, the LP, MP and UP latches continue to identify the assigned data state so that the memory cells with LO=0 can be verified against the appropriate verify voltage in the second set of verify voltages. The memory cells with LO=1 can remain in the lockout state in the second program pass.

Or, during a single pass program operation, the LO bit may be changed from 0 to 1, for example, when the respective memory cell reaches the lockout state using the first set of verify voltages. A sensing operating then occurs, as in step1609ofFIG. 16. Based on the sensing, some of the memory cells may remain in the lockout state and other memory cells may have a Vth below the sense voltage and therefore be identified for further programming. The LO bit can be changed from 1 (lockout) to 0 (program) for these identified memory cells. Subsequently, the LP, MP and UP latches continue to identify the assigned data state so that the memory cells with LO=0 can be verified against the appropriate verify voltage in the second set of verify voltages, and the memory cells with LO=1 can remain in the lockout state.

FIG. 18Bdepicts an example of bit values in latches at a completion of the program operation, consistent withFIGS. 14-16 and 18A. When all of the memory cells have passed the respective verify test, the LO bits will be 1's.

In one implementation, an apparatus comprises: a set of memory cells arranged in NAND strings, the set of memory cells having an assigned data state; a temperature-sensing circuit configured to provide an output indicative of a temperature; and a control circuit configured to program the set of memory cells using a first verify voltage of the assigned data state and in response to determining that the temperature is below a specified temperature, identify one portion of the set of memory cells having a threshold voltage at a lower tail of a threshold voltage distribution of the set of memory cells, and program the one portion of the set of memory cells but not a remaining portion of the set of memory cells using a second verify voltage of the assigned data state, wherein the second verify voltage is higher than the first verify voltage.

In another implementation, a method comprises: performing a first set of program loops for a set of memory cells, the set of memory cells have an assigned data state represented by a threshold voltage distribution after the first set of program loops; identifying a first subset of the memory cells at a lower tail of the threshold voltage distribution; and performing a second set of program loops for the first subset of the memory cells, wherein a verify voltage used in the second set of program loops is higher than a verify voltage used in the first set of program loops, and an amount by which the verify voltage used in the second set of program loops is higher than the verify voltage used in the first set of program loops is based on a temperature.

In another implementation, an apparatus comprises: a set of memory cells, the memory cells are arranged in NAND strings, each NAND string comprising a polysilicon channel, the set of memory cells comprises selected memory cells; means for providing an output indicative of a temperature; means for determining that the temperature is above a specified temperature; means for programming the set of memory cells using a first verify voltage, the set of memory cells having a threshold voltage distribution; means for identifying a subset of the set of memory cells which has a threshold voltage below a specified level, in response to the means for determining that the temperature is above the specified temperature; and means for further programming the subset of the set of memory cells without further programming of a remaining portion of the set of memory cells, in response to the means for determining that the temperature is above the specified temperature, the remaining portion has a threshold voltage above the specified level.

The subset of the set of memory cells may be further programmed to a threshold voltage distribution which encompasses a threshold voltage distribution of the remaining portion of the set of memory cells. The subset of the set of memory cells may be further programmed to a median threshold voltage distribution which exceeds a median threshold voltage distribution of the remaining portion of the set of memory cells. The subset of the set of memory cells may comprise more than half of the set of memory cells.

The means for providing an output indicative of a temperature and the means for determining that the temperature is below a specified temperature may include the temperature-sensing circuit117ofFIGS. 1A and 1B.

The means for programming the set of memory cells and the means for further programming memory cells may include the controller122, control circuitry110, including the power control module116, sense blocks51-53, verify voltage setting circuit119, row decoder124and read/write circuits128ofFIGS. 1A and 2, or other logic hardware, and/or other executable code stored on a computer readable storage medium or device. Other embodiments may include similar or equivalent means.

The means for identifying memory cells may include the controller122, control circuitry110, including the power control module116, sense blocks51-53, row decoder124and read/write circuits128ofFIGS. 1A and 2, or other logic hardware, and/or other executable code stored on a computer readable storage medium or device. Other embodiments may include similar or equivalent means.

The means for further programming may provide a smaller program pulse step size (e.g., dVpgm2) than the means for programming the set of memory cells (which uses a larger program pulse step size of dVpgm1). The means for further programming may provide a higher voltage for bit lines (e.g., 1 V) connected to the set of memory cells than the means for programming the set of memory cells (which uses a smaller Vbl of, e.g., 0 V).

The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The described embodiments were chosen in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.