PSEUDO BLOCK OPERATION MODE IN 3D NAND
A 3D NAND stacked non-volatile memory device, comprising: a string comprising a plurality of non-volatile storage elements, the string comprises a channel and extends vertically through layers of the 3D stacked non-volatile memory device, and the plurality of storage elements are subdivided into different groups based on group assignments, each group of the different groups comprises multiple adjacent storage elements of the plurality of storage elements; and a control circuit in communication with the string, the control circuit, to perform a Pseudo Block Operation Mode.
Latest SanDisk Technologies Inc. Patents:
This application claims the benefit of U.S. Provisional Application No. 61/835,259, entitled “Pseudo Block Operation Mode in 3D NAND,” by Costa, filed on Jun. 14, 2013, incorporated herein by reference.
BACKGROUNDThe present disclosure relates to techniques for operating memory cells in a 3D-non-volatile memory device.
Recently, ultra high density storage devices have been proposed using a 3D stacked memory structure sometimes referred to as a Bit Cost Scalable (BiCS) architecture. For example, a 3D NAND stacked memory device can be formed from an array of alternating conductive and dielectric layers. A memory hole is drilled in the layers to define many memory layers simultaneously. A NAND string is then formed by filling the memory hole with appropriate materials. A straight NAND string extends in one memory hole, while a pipe- or U-shaped NAND string (P-BiCS) includes a pair of vertical columns of memory cells which extend in two memory holes and which are joined by a bottom back gate. Control gates of the memory cells are provided by the conductive layers.
Like-numbered elements refer to common components in the different figures.
Techniques are provided for operating storage elements in a 3D stacked non-volatile memory device. The memory device is operated in a pseudo block operation mode in embodiments. The device includes vertically oriented NAND strings, in embodiments. A given NAND string is a part of multiple different pseudo blocks, in accordance with embodiments. Given that the NAND strings may be vertically oriented in different layers of the 3D stacked memory device, this results in the pseudo block assignment being based on which layer a storage element is in. A pseudo block typically contains (parts of) multiple NAND strings.
In some 3D stacked non-volatile memory devices the storage elements are formed in “memory holes” that are drilled in the stacked structure. The diameter of a memory hole may be narrower at the lower layers, for at least some fabrication techniques. This narrowing of the memory holes can have an impact on a variety of performance factors. In one embodiment, the pseudo blocks are assigned based on the size of the memory holes. However, note that even if the memory holes at different layers have the same size, pseudo block operation can still be used, for at least some operations.
Various operations are possible in a pseudo block operation mode. Those operations include, but are not limited to, pseudo block program and erase operation, pseudo block read disturb operation, pseudo block endurance operation, and pseudo block boosting voltage (VPASS) operation.
As noted, a given NAND string may reside in different pseudo blocks. In one embodiment, storage elements on a NAND string in a given pseudo block are erased together. However, storage elements on that NAND string that are in other pseudo blocks are not erased at that time. If those other storage elements are currently in a programmed state, they remain in the programmed state when the other portion of the NAND string is erased. In other words, storage elements in one pseudo block are erased while storage element in other pseudo blocks may remain programmed.
One benefit of such an operation is that the size of the unit that is erased/programmed can be more convenient for operation of the memory device, as compared to erasing/programming units that are based on entire NAND strings. For example, the pseudo blocks permit smaller units to be erased/programmed, which increases the flexibility from the perspective of system applications.
Another benefit of such an operation is that different program parameters and/or different erase parameters can be used for different pseudo blocks. For example, pseudo blocks at different levels of the 3D stacked memory device can have different program and/or erase conditions. This can reduce erase time. This can also reduce the maximum erase voltage, which can reduce stress on the storage elements. The stress reduction can improve storage element reliability and improve data retention.
It is possible for read disturb to have a different impact on storage elements at different levels of the 3D stacked memory device. As one possibility, storage elements that were formed in smaller memory holes could suffer more severe read disturb, compared to those formed in larger memory holes. In one embodiment of pseudo block read disturb operation, a metric that describes total read time of storage elements is kept for each pseudo block. This metric could simply be the number of times the pseudo block was read. When the metric reaches a threshold, the pseudo block could be re-programmed, marked as bad, etc. Pseudo blocks at different levels of the 3D stacked memory device can be allotted different maximum allowed reads. This allows the impact of read disturb to be minimized without relaxing the read disturb specification for all storage elements.
It is possible for endurance of storage elements at different levels of the 3D stacked memory device to be different. Endurance here is referring to the number of erase/program cycles. One possible explanation for this is that endurance may be a function of memory hole size, which as noted, may itself be a function of the layer. For some devices, storage elements that were formed in a smaller memory hole have better endurance. In one embodiment of pseudo block endurance operation, the number of erase/program cycles is kept for each pseudo block. A pseudo block may be marked as failed when a maximum allowed number of erase/program cycles is reached. Pseudo blocks at different levels of the 3D stacked memory device may have different endurance thresholds. This allows the impact of storage elements having different endurance to be minimized without relaxing the endurance specification for all storage elements.
For some programming operations, the channel potentials of unselected NAND strings are boosted to prevent program disturb. This can involve applying a boosting voltage to the control gate of unselected storage elements. The ability of the boosting voltage to boost the channel potential may be a function of the layer of the 3D stacked memory device. For some devices, the boosting ability is worse if the size of the memory hole is larger. On the other hand, boosting voltage disturb can be worse for smaller memory holes. In one embodiment, the magnitude of a boosting voltage depends on the pseudo block. For example, pseudo blocks at lower layers (and having smaller memory holes) may have a lower boosting voltage.
In one possible approach, 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 control circuitry 110 cooperates with the read/write circuits 128 to perform memory operations on the memory array 126, and includes a state machine 112, an on-chip address decoder 114, and a power control module 116. The state machine 112 provides chip-level control of memory operations. The on-chip address decoder 114 provides an address interface between that used by the host or a memory controller to the hardware address used by the decoders 124 and 132. The power control module 116 controls the power and voltages supplied to the word lines and bit lines during memory operations. It can includes drivers for word line layers and word line layer portions, drain- and source-side select gate drivers (referring, e.g., to drain- and source-sides or ends of a string of memory cells such as a NAND string, for instance) and source lines. The sense blocks 130 can include bit line drivers, in one approach.
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 array 126, can be thought of as at least one control circuit. For example, a control circuit may include any one of, or a combination of, control circuitry 110, state machine 112, decoders 114/132, power control module 116, sense blocks 130, read/write circuits 128, and controller 122, and so forth.
In another embodiment, a non-volatile memory system uses dual row/column decoders and read/write circuits. Access to the memory array 126 by the various peripheral circuits is implemented in a symmetric fashion, on opposite sides of the array, so that the densities of access lines and circuitry on each side are reduced by half. Thus, the row decoder is split into two row decoders and the column decoder into two column decoders. Similarly, the read/write circuits are split into read/write circuits connecting to bit lines from the bottom and read/write circuits connecting to bit lines from the top of the memory array 126. In this way, the density of the read/write modules is reduced by one half.
Other types of non-volatile memory in addition to NAND flash memory can also be used.
For each block, the word line layer is divided into two word line layer portions 202 and 204. Each block includes a slit pattern. A slit refers, e.g., to a void which extends vertically in the stack, typically from an etch stop layer at the bottom to at least a top layer of the stack. The slit can be filled with insulation to insulate words line layer portions from one another. A slit 206 is a single continuous slit which extends in a zig-zag pattern in the block so that the block is divided into 5b, which are insulated from one another. This approach can provide greater flexibility in controlling the memory cells since the word line layer portions can be driven independently.
Each block includes rows of columnar, e.g., vertical, memory holes or pillars, represented by circles. Each row represents a vertical group of columns in the figure. The memory holes extend vertically in the stack and include memory cells such as in a vertical NAND string. Example columns of memory cells along a line 220 include C0 to C11. The figure represents a simplification, as many more rows of memory holes will typically be used, extending to the right and left in the figure. Also, the figures are not necessarily to scale. The columns of memory cells can be arranged in subsets such as sub-blocks.
The drawings are not to scale and do not show all memory columns. For example, a more realistic block might have 12 memory columns in the y direction as shown, but a very large number such as 32 k memory columns in the x direction, for a total of 384 k memory columns in a block. With U-shaped NAND strings, 192 k NAND strings are provided in this example. With straight NAND strings, 384 k NAND strings are provided in this example. Assume there are four memory cells per column, so there are 384 k×4=1,536 k or 1,536,000 total cells in the set.
A portion 210 of the block 200 is described further below in connection with
The source line SL0 is connected to the source ends 240 and 242 of two adjacent memory strings NS0 and NS1. The source line SL0 is also connected to other sets of memory strings which are behind NS0 and NS1 in the x direction. Recall that additional U-shaped NAND strings in the stack 230 extend behind the U-shaped NAND strings depicted in the cross-section, e.g., along the x-axis, in a SGD line direction. The U-shaped NAND strings NS0 to NS3 are each in a different SGD line subset, but are in a common BL subset.
The slit 206 from
Short dashed lines depict memory cells and select gate transistors, as discussed further below. A region 236 of the stack is shown in greater detail in
When a memory cell is programmed, electrons are stored in a portion of the CTL which is associated with the memory cell. For example, electrons are represented by “−” symbols in the CTL 297 for MC303. These electrons are drawn into the CTL from the channel, and through the TNL. The threshold voltage of a memory cell is increased in proportion to the amount of stored charge.
During an erase operation, as discussed further below, a voltage in the channel is raised due to gate-induced drain leakage (GIDL). The voltage of the one or more selected word line layers is then driven down to a reduced level such as 0 V to create an electric field across the TNL which causes holes to be injected from the memory cell's body to the CTL, resulting in a large VTH downshift toward an erase-verify level, Vv_erase. This process can be repeated in successive iterations until a verify condition is met, as discussed further below. For unselected word lines, the word lines remain at an elevated level so that the electric field across the TNL is relatively small, and no, or very little, hole tunneling will occur. Memory cells of the unselected word lines will experience little or no VTH downshift, and as a result, they will not be erased.
One or more dummy transistors on each side can be used to avoid disturbs. One or more dummy transistors can optionally be provided between groups as well.
Five pseudo blocks (PB1-PB5) are represented in
In this example, there are five pseudo blocks, but there could be more or fewer. In this example, most of the pseudo blocks are the same size, although one is smaller. That is, PB1-PB4 each occupy five memory cell layers, whereas PB5 occupies four memory cell layers. All of the pseudo blocks could be the same size. All of the pseudo blocks could be different sizes. There is no limit to the possibilities in how many pseudo blocks are used and their sizes. However, note that having pseudo blocks that are about the same size is possibly a benefit from the perspective of simplifying system performance.
Note that
The four depicted NAND strings in
Referring back to
Ten pseudo blocks (PB1A, PB1B, PB5B) are represented in
Note that
Straight NAND strings, such as depicted in
Step 502 assigns storage elements in a NAND string to pseudo blocks.
In step 504, control logic operates the 3D NAND in pseudo block operation mode. In one embodiment, a control circuit performs operations on a pseudo block level. Performing an operation on a pseudo block level means that either the operation is performed on that pseudo block and not on other pseudo blocks in the block or the operation is somehow dependent on the pseudo block in which it is performed. Thus, in one embodiment, performing an operation on a pseudo block level includes performing the operation (e.g., erase, program) on that pseudo block but not on other pseudo blocks in the block. Performing operations on a pseudo block level includes performing operations (e.g., applying starting erase voltage, applying boosting voltage, checking a read disturb parameter, checking an endurance parameter) in a way that depends on which pseudo block the operation is performed in, for one embodiment. Examples of pseudo block operations include, but are not limited to, pseudo block program and erase operation, pseudo block read disturb operation, pseudo block endurance operation, and pseudo block boosting voltage (Vpass) operation. Pseudo block operation mode is not limited to these examples.
Pseudo Block Program and Erase OperationIn 2D NAND memory devices, the p-well substrate is biased at a high voltage to erase the storage elements (memory cells). Note that the NAND strings are typically formed in the substrate, such that by applying the erase voltage to the substrate while, for example, grounding the control gates, the memory cells can be erased. In contrast, the NAND strings in a 3D stacked non-volatile memory device such as BiCS are not formed in a substrate (see, for example,
One approach to erasing in a 3D stacked non-volatile memory device is to generate gate induced drain leakage (GIDL) current to charge up the channel, raise the channel potential to an erase voltage, and maintain this channel potential during erase. Therefore, the erase speed is affected by channel charging up time and erase performance is impacted by interactions between channel potential, tunneling speed, and GIDL current. Further, the tunneling speed is also affected by variations in the diameter of the memory hole. The erase process thus has a layer dependent pattern.
The erase speed and depth can vary along a string due to factors such as variations in a potential drop in the channel relative to a driven end of a string of storage elements and variations in the diameter of the memory hole. A potential drop occurs when holes are diverted from the channel and tunnel through a tunneling layer to a charge trapping layer of the storage elements. The holes recombine with electrons there to reduce the charge in the charge trapping layer, thereby erasing the storage elements.
Storage elements which are further from the driven end, e.g., the drain side or source side of a NAND string, will experience a larger potential drop which slows their erase speed. Regarding the memory hole, its diameter can vary due to process variations. In some cases, the memory hole is vertical and tapered, becoming smaller at the bottom. A smaller diameter results in a stronger field and a faster erase speed.
In step 604, the pseudo block is erased while not erasing other pseudo blocks in the block. This includes erasing a part of a NAND string, while not erasing other parts of the NAND string, in one embodiment. Note that other pseudo blocks in the block may remain programmed after the erase of the pseudo block is competed. In one embodiment, the entire pseudo block is erased prior to programming.
In step 606, the pseudo block is programmed. As noted, the programming can occur well after the erasing. Also, it is not required that the entire pseudo block be programmed at the same time.
The x-axis indicates a threshold voltage and the y-axis indicates a number of storage elements. In this example, there are four data states (each represented by a threshold voltage distribution): an initial (deep) erased state distribution 601, a soft programmed erased state (E) distribution 603, an A state distribution 605, a B state distribution 607 and a C state distribution 609. Memory devices with additional data states, e.g., eight or sixteen data states, can also be used. The distribution 601 is realized after the erase operation when storage elements are typically over-erased, past the erase state distribution 603. In the erase operation, one or more erase pulses are applied to the NAND string at its source and/or drain ends, until the threshold voltage of the storage elements being erased transitions below an erase-verify level, Vv_erase which can be 0 V or close to 0 V, in one approach. Once the erase operation is completed for a pseudo block, the soft programming operation can be optionally performed, in which one or more positive voltage pulses are applied to the control gates of the storage elements, such as via a word line, to increase the threshold voltages of some or all of the storage elements in the distribution 601 above a soft programming (SPGM) verify level, Vv_spgm, to the erased state distribution 603. This avoids a deep erased state.
The soft programming operation advantageously results in a narrow erase state distribution 603. Once the soft programming operation is complete, programming to higher data states can occur, such as to states A, B and C using verify levels VvA, VvB and VvC, respectively. A subsequent read operation can use the levels VreadA, VreadB and VreadC.
However, another factor in erase speed is the memory hole diameter.
In the example of
In one approach, the levels of Verase_min are a function layer of the 3D stacked memory. Note that the memory hole size decreases at the lower layers of some 3D stacked memory device, for at least some fabrication techniques. Thus, the levels of Verase_min are a function of memory hole size, in one approach. In one approach, the levels of Verase are a function of distance from a driven end of a NAND string although other variations are possible. An optimal assignment of Verase_min level for a group can be determined from tests.
A reasonable approximation is to have Verase_min be smaller for smaller memory holes, and larger for larger memory holes. Another factor in Verase_min may, optionally, be the distance of the pseudo block from where the erase voltage is applied. The value for Verase_min may be different for a one-sided erase than for a two sided erase.
Portions of other NAND strings in the selected pseudo block could also be selected for erase. For example, referring to
Generally, an erase operation can include multiple erase-verify iterations which are performed until a verify condition is met, at which point the erase operation ends (see
Step 616 sets status=erase for the storage elements on the selected NAND string that are in the selected pseudo block. For example, referring to
Step 618 sets status=inhibit for the storage elements in the unselected pseudo blocks. For example, pseudo blocks PB2-PB5 (see
Step 621 initializes an erase voltage (Verase) to a starting value. This starting value depends on which pseudo block is being erased, in one embodiment.
Step 622 charges the channel of the string by applying the erase voltage to the string, setting a control gate voltage for each storage element with status=erase to encourage erasing, and floating or setting a control gate voltage for each storage element with status=inhibit to discourage erasing. For example, a control gate voltage at a relatively high level (e.g., 10-15 V) discourages erasing by creating a small potential difference across the tunneling layer.
A control gate voltage at or slightly above, for example, 0 V encourages erasing by creating a large potential difference across the tunneling layer, between the channel and the control gate, which encourages further tunneling. See, e.g.,
Step 623 performs an erase-verify test for storage elements in the selected pseudo block (for the selected NAND string). The erase-verify test can be performed concurrently for the different storage elements on the string in the pseudo block. For example, this can involve applying a common erase-verify control gate voltage (Vv_erase) to the control gate of each storage element in the selected pseudo block while detecting the current through the string.
Note that storage elements on the selected NAND string that are in other (unselected) pseudo blocks could be in the programmed state or in the erased state. For example, these storage elements could be in any of states E, A, B C, for a four state example (see
If the current of the string is above a reference current, indicating the string is conductive, the erase-verify test is passed.
Step 624 sets status=inhibit if the selected NAND string passed the erase-verify test. Note this refers to the portion of the selected NAND string that is in the selected pseudo block. The erase status=erase is continued if the selected NAND string does not pass the erase-verify test.
Decision step 626 determines if Verase is at Verase max. If the answer is “yes,” the erase operation ends unsuccessfully at step 627. If the answer is “no,” Verase is stepped up at step 628 and another iteration is performed at step 622.
The erase operation of
In one embodiment of a one-sided erase, the bit line is the driven end. This is a factor in the source side storage elements having a slower erase speed since they are furthest from the driven end. However, the memory hole size may also be a factor in the erase speed.
In the examples of
When Vbl is at Vgidl, holes are generated at the SGD drain edge so that the channel is charged from the bit line end of the NAND string. Similarly, when Vsl is at Vgidl, holes are generated at the SGS drain edge so that the channel is also charged from the source line end of the NAND string. Vgidl is a voltage which is at or above a minimum voltage for creating GIDL. When Vbl is raised to Verase, charging of the channel continues from the bit line end. Similarly, when Vsl is raised to Verase, charging of the channel continues from the source line end.
From t4-t6 (waveform 702), Vsgd and/or Vsgs (selected string) is raised to Verase−Vgidl (e.g., 20−8=12 V). Since Vbl and/or Vsl is raised to Verase at this time, the junction of the SGD and/or SGS transistor is still reversed biased at Vgidl (since Verase−(Verase−Vgid1))=Vgidl. As a result, electron-hole pairs will continue to be generated and the channel will be charged to a higher potential.
For an unselected string, Vsgd and/or Vsgs is raised to Verase−Vrev (e.g., 20−2=18 V). Vrev is a reverse bias such as 2 V which is maintained on the select gate. For one-sided erase of an unselected string, Vsgd is raised to Verase−Vrev (e.g., 20−2=18 V).
For the inhibited groups (status=inhibit), the control gate voltages can be set to an inhibit level (Vinhibit) or floated (waveform 706) to discourage erasing of the associated storage elements. Specifically, for an unselected word line, the control gate can be floated or driven at a higher bias such as 12 V. If the channel potential reaches 20 V during erase, the WL is biased at 12 V. Therefore, the gated junction of a data WL sees 8 V, which is large enough to generate GIDL to help expedite charging up the channel to speed up the erasing of the remaining groups of storage elements with status=erase. During the pre-charge step, an unselected WL can be biased at Vgidl, which is the same as Vbl.
The control gate voltages from t2-t3 are configured at a level which discourages erase of the associated storage elements, while the control gate voltages from t3-t6 are configured at a level which encourages erase of the associated storage elements. To discourage erase of a storage element, the control gate voltage should be sufficiently high to discourage tunneling of holes into a charge trapping layer of the storage element. To encourage erase of a storage element, the channel voltage should be sufficiently higher than the control gate voltage to encourage tunneling.
In either case, the control gate voltages can be at a level which encourages charging of the channel through GIDL throughout the erase operation. For example, the control gate voltages from t2-t3 can be floated or driven at a level such as 8 V which is to minimize reverse bias stress on a memory cells' junction. Specifically, when Vbl is biased at 8 V to pre-charge the channel, the maximum channel potential is 8 V. If Vwl/Vcg is biased at 8 V, memory cell's junction sees 0 V. Because the maximum channel potential is 8 V, the channel potential is not high enough to erase the memory cell. Therefore, we bias Vcg at 8V at that time to minimize the reverse bias stress time on a memory cell's junction. The control gate voltages can be driven at Vss from t6-t7.
In one approach, all of the storage elements on the selected NAND string and in the selected pseudo block are verified at the same time. There is no need to verify storage elements in the unselected pseudo blocks, as they are not undergoing erase.
It may be possible to verify each storage element separately. For example, the verify voltage could be applied to a single word line, while all other word lines have the pass voltage (e.g., Vread) applied.
The erase operation may be a one-side erase operation or a two-sided erase operation.
The drain side includes a SGD transistor 1005 with a control gate 1006 and a channel region 1007. The drain side also includes storage elements 1010, 1015, 1020, 1025 and 1030, control gates 1011, 1016, 1021, 1026 and 1031, CTL regions 1013, 1018, 1023, 1028 and 1033, and channel regions 1012, 1017, 1022, 1027 and 1032, respectively.
The source side includes a SGS transistor 1055 with a control gate 1056 and a channel region 1057. The source side also includes storage elements 1060, 1065, 1070, 1075 and 1080, control gates 1061, 1066, 1071, 1076 and 1081, CTL regions 1063, 1068, 1073, 1078 and 1083, and channel regions 1062, 1067, 1072, 1077 and 1082, respectively.
A back gate 1035 has a control gate 1036 and a channel region 1037.
Representative holes are depicted in the channel layers as circles with a “+” sign and representative electrons are depicted in the channel layers as circles with a “−” sign. As discussed previously, electron-hole pairs are generated by a GIDL process. Initially, during an erase operation, the electron-hole pairs are generated at the SGD and SGS transistors. The holes move away from the driven ends, thereby charging the channel. The electrons move toward the bit line due to the positive charge there. Subsequently, during the erase period of each storage element, additional holes are generated by GIDL at junctions which are formed in the channel for the storage element. However, holes are also removed from the channel as they tunnel to the CTL regions.
In this example, storage elements 1060, 1065, 1070, 1075 on the source side and storage elements 1010, 1015, 1020, 1025 on the drain side are being erased. This is represented by the arrows showing charge moving towards the CTL regions. However, storage elements 1080 and 1030 are not being erased, as they are part of a different pseudo block.
The voltage on the control gates of unselected storage elements (e.g., 1030, 1080) is high enough to generate GIDL, in one embodiment. However, the voltage is not so high that these unselected storage elements are erased. Thus, storage elements in unselected pseudo blocks are not erased. However, these storage elements may help to generated GIDL. Note that although only two unselected storage elements are depicted in
Electrons are also generated by the GIDL process. Initially, during the erase operation, the electrons are generated at the SGD and SGS transistors and move toward the driven ends. Subsequently, during the erase period of each storage element, additional electrons are generated by GIDL at junctions which are formed in the channel for the storage element.
In the drain side, example electrons 1040 and 1041 move toward the bit line. Electron 1040 is generated at the SGD transistor and electron 1041 is generated at a junction of the storage element 1015 in the channel region 1017. Also, in the drain side, example holes including a hole 1042 move away from the bit line as indicated by arrows. The hole 1042 is generated at a junction of the storage element 1015 in the channel region 1017 and can tunnel into the CTL region 1018 as indicated by arrow 1043.
In the source side, example electrons 1045 and 1049 move toward the source line. Electron 1045 is generated at the SGS transistor and electron 1049 is generated at a junction of the storage element 1065 in the channel region 1067. Also, in the source side, example holes including a hole 1047 move away from the source line as indicated by the arrow. The hole 1047 is generated at a junction of the storage element 1065 in the channel region 1067 and can tunnel into the CTL region 1068 as indicated by arrow 1048.
In step 632, a counter (“n”) of the NAND string number is initialized. In step 634, memory cells on string “n” within the selected pseudo block are programmed. There is no required order in which the memory cells should be programmed. As one example, the memory cells are programmed from the source end of the NAND string downward for this pseudo block. Then, the memory cells are programmed from the drain end of the NAND string downward for this pseudo block. Using
As another example, programming alternates between the source side and the drain side of the NAND string, working downward. Using
Note that when programming NAND string 1, there can be other NAND strings in the pseudo block that are associated with other bit lines that are also undergoing programming. For example, referring to
In step 636, a determination is made whether there are more NAND strings in the pseudo block to program. Note that these other NAND strings may be associated with the same bit line as string 1. Referring to
This process will test memory cells on one word line at a time. In step 842, the word line number “n” is initialed to 0. In step 844, a program pulse is applied to memory cells on WLn. A single pulse may be used. However, using multiple pulses is not precluded.
In step 846, the threshold voltage of storage elements associated with WLn is recorded. In one technique, the storage elements are sensed at various levels to determine the threshold voltage within a suitable level of granularity. Step 846 could record one or more values that is representative of the threshold voltages. For example, an average Vt (median, mode, etc.) could be recorded. Any other statistical technique could be used to record a value representative of the Vts.
In step 848, the word line count (n) is incremented. Assuming that there are more word lines to process, control passes to step 844, to apply a program pulse to the next word line. Eventually, threshold voltages that are representative of each word line are recorded.
In step 852, the word lines are grouped into pseudo blocks based on the recorded Vts.
In step 842, the word line number “n” is initialed to 0. In step 862 a pulse count is initialized to “1”. In step 864, a program pulse is applied to memory cells on WLn. A single pulse may be used. However, using multiple pulses is not precluded.
In step 866, the storage elements associated with WLn are sensed to determine whether their Vt is at a target Vt. In step 868, the pulse number is recorded for memory cells that have reached the target Vt. Step 870 determines whether there are more cells to test. If so, the pulse count is incremented in step 872. Control then passes to step 864 to apply the next program pulse. Eventually, when enough memory on this word line reach the target Vt (not all have to pass), control passes to step 874, to determine whether there are more word lines to test. If so, then control passes to step 842 to increment the word line count. Eventually all of the word lines are tested and control passes to step 876.
In step 876, the word lines are grouped into pseudo blocks based on how many pulses it took memory cells on each word line to reach the target Vt. Any statistical technique can be used to characterize the pulse count for a given word line (e.g., median, mean, etc.).
The techniques of
In step 920, program conditions are applied. These program conditions may include, but are not limited to, a program voltage applied to the selected word line. Other program conditions such as voltages to selected bit lines, unselected bit lines, unselected word lines, and select gates may be applied in step 920. For example, a program enable voltage (e.g., 0V) can be applied to selected bit lines, whereas a program inhibit voltage (e.g., Vdd) may be applied to unselected bit lines. In one embodiment, boosting voltages are applied to unselected word lines. The magnitude of the boosting voltages depends on the pseudo block in which the boosting voltage is applied, in one embodiment. Further details are described below.
In step 922, a verification process is performed. Note that when a particular memory cell has been verified as being programmed to its intended state, it may be locked out from further programming. The memory cell can be inhibited from further programming while boosting the NAND string channel, in one embodiment.
In step 924, it is determined whether memory cells have verified that their threshold voltages are at the final target voltage for that memory cell. Note that it is not required that every memory cell for a given state is verified to be at the appropriate threshold voltage. Error correction is able to correct for some memory cells being above their target threshold voltage. Error correction is able to correct for some memory cells being over-programmed to a Vt that is lower than the target Vt distribution. Step 924 is referring to all states having completed programming.
If verification passes, the programming process is completed successfully (status=pass) in step 926. If all of the memory cells are not all verified, then it is determined whether the program counter (PC) is less than a maximum value such as 20. If the program counter (PC) is not less than max (step 928), then the program process has failed (step 930). If the program counter (PC) is less than a maximum value (e.g., 20), then the program counter (PC) is incremented by 1 and the program voltage is stepped up to the next pulse in step 932. Subsequent to step 932, the process loops back to step 920 and the next set of program conditions are applied to the memory cells.
Pseudo Block Read Disturb OperationOne operation that is performed in a pseudo block operation mode is a pseudo block read disturb operation. The read disturb characteristics may vary between storage elements in a 3D memory device. As one possibility, the size of the memory hole affects read disturb characteristics. In one embodiment, storage elements are grouped into pseudo blocks based on read disturb characteristics. For example, those with similar read disturb characteristics may be grouped together. This grouping can minimize the negative impact of read disturb without relaxing the entire specification. Some pseudo blocks will be able to withstand a greater number or reads (or read time) than others. Therefore, a higher endurance pseudo block can be operated longer than a lower endurance pseudo block.
For some 3D memory devices, read disturb is worse for storage elements having smaller memory holes.
In one embodiment, reads are typically performed one word line at a time. The read count may be of how many times a word line was read in the pseudo block. It is not required that a separate count be made of each of the word lines. Rather, the count can be cumulative for all of the word lines in the pseudo block. Other techniques can be used to accumulate a count of reads in the pseudo block.
In step 1124, a determination is made whether the read access time for given pseudo block is greater than a threshold for that pseudo block. This threshold could be expressed as a number of reads. Each pseudo block may have its own threshold. For example, referring to
Step 1126 is to take an action for the pseudo block in the event that the threshold is exceeded. One option is to mark the pseudo block as a bad block such that it is no longer used. Its data can be transferred to another block. Another option is to re-program the pseudo block.
In step 1134, the total access time for the pseudo block is incremented. This is achieved by incrementing a counter of the number of read accesses, in one embodiment. This counter may be re-set whenever the pseudo block is re-programmed.
In step 1136, the total read time is compared to a total read time threshold for this pseudo block. The total read time threshold is expressed as a maximum allowed number of read accesses in one embodiment. If the total read time exceeds the threshold, then the pseudo block is re-programmed in step 1138. Otherwise, the process ends.
One operation that is performed in a pseudo block operation mode is a pseudo block endurance operation. Endurance refers to how many erase/program cycles that a storage element can endure. The tunnel oxide is one component that may be damaged. For some 3D memory device, a storage element having a smaller memory hole has better endurance. For some 3D memory device, erase damages the storage element more than program.
For some 3D memory devices, a larger erase voltage is needed to successfully erase storage elements having larger memory holes. Recall that
In step 1204, a determination is made whether the cycle number for a given pseudo block is greater than a threshold for that pseudo block. Each pseudo block may have its own endurance threshold. For example, referring to
Step 1206 is to make the pseudo block as failed, in response to the endurance threshold for the pseudo block having been exceeded.
One operation that is performed in a pseudo block operation mode is a pseudo block boosting operation. Boosting refers to boosting the channel potential of strings that are inhibited from programming during a programming operation. Boosting the channel potential helps to reduce or prevent program disturb. Boosting involves applying a boosting voltage to word lines that are not selected for programming. There are many different boosting schemes.
For some 3D memory devices boosting is less effective for storage elements having larger memory holes. Note that for an architecture such as depicted in
Since for some 3D memory devices, a larger memory hole may have worse boosting, the boosting voltage depends on the memory hole size, in one embodiment. This may be achieved by having the boosting voltage depend on the pseudo block.
A larger boosting voltage (VPASS) can be used to increase the channel potential. However, using a larger VPASS may result in greater VPASS disturb. VPASS disturb refers to the impact of VPASS on storage elements that are already programmed. Storage elements having a smaller memory hole may suffer more from VPASS disturb than those with larger memory holes. This effect may be similar to how read disturb may be worse for storage elements having a smaller memory hole.
Moreover, by using a smaller VPASS for smaller memory holes, the read disturb specification can be met for all memory cells without relaxing the read disturb specification. In other words, a larger VPASS can be used for larger memory holes while still meeting the read disturb specification.
In step 1306, the pseudo block is programmed using pseudo block dependent boosting voltages. Step 1306 includes applying a boosting voltage to a control gate of an unselected non-volatile storage element on the NAND string that is not selected for programming. That is, the boosting voltage is applied to an unselected word line. The magnitude of the boosting voltage depends on location of the unselected non-volatile storage element (and hence the unselected word line) on the NAND string.
For purposes of illustration, the following is one example boosting scheme. It will be understood that other boosting schemes can benefit from a pseudo block dependent VPASS operation.
Note that it is not required that all of the boosting voltages have their value depend on the pseudo block. As one example, the boosting voltages Vpass2 and Vpass3 have their values depend on the pseudo block in which the boosting voltage is applied. However, Vpass1, VGP1/2 and VISO are not dependent on the pseudo block. However, any of Vpass1, VGP1/2 and VISO could depend on the pseudo block in which they are applied.
The following table shows one possible scheme for a pseudo block dependent Vpass3. In this example, Vpass3 is a nominal value. The pseudo blocks refer to an example such as in
The following table shows one possible scheme for a pseudo block dependent Vpass2. In this example, Vpass2 is a nominal value. The pseudo blocks refer to an example such as in
One embodiment disclosed herein includes a 3D NAND stacked non-volatile memory device, comprising a plurality of NAND strings and a control circuit in communication with the NAND strings. Each NAND string comprises a plurality of non-volatile storage elements. Each NAND string comprises a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device. The block is divided into pseudo blocks that each comprise a portion of each of the NAND strings. Each of the NAND strings is a member of each of the pseudo blocks. The control circuit operates in a pseudo block operation mode that performs operations on a pseudo block level.
One embodiment disclosed herein includes a method of operating a 3D NAND stacked non-volatile memory device comprising a plurality of NAND strings in a block. Each NAND string comprises a plurality of non-volatile storage elements. Each NAND string comprises a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device. The block is divided into pseudo blocks that each comprise a portion of each of the NAND strings. Each of the NAND strings is a member of each of the pseudo blocks. The method comprises performing operations on a pseudo block level.
One embodiment disclosed herein includes a 3D NAND stacked non-volatile memory device, comprising a plurality of NAND strings and a control circuit in communication with the NAND strings. The NAND string comprises a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device. The control circuit is configured to perform an erase of a portion of the NAND string while leaving other non-volatile storage elements on the NAND string programmed.
One embodiment disclosed herein includes a 3D NAND stacked non-volatile memory device, comprising a plurality of NAND strings and a control circuit in communication with the NAND strings. The control circuit is configured to apply a boosting voltage to a control gate of an unselected non-volatile storage element on the NAND string that is not selected for programming A magnitude of the boosting voltage depends on location of the unselected non-volatile storage element on the NAND string.
The foregoing detailed description of embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
Claims
1. A three-dimensional (3D) NAND stacked non-volatile memory device, comprising:
- a plurality of NAND strings in a block, each NAND string comprising a plurality of non-volatile storage elements, each NAND string comprising a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device, wherein the block comprises pseudo blocks that each comprise a portion of each of the NAND strings, wherein each of the NAND strings is a member of each of the pseudo blocks; and
- a control circuit in communication with the NAND strings, the control circuit is configured to operate in a pseudo block operation mode that performs operations on the plurality of NAND strings on a pseudo block level.
2. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- erase all non-volatile storage elements in a first pseudo block in the block without erasing storage elements in any of the other pseudo blocks in the block, wherein non-volatile storage elements in at least one of the other pseudo blocks in the block remain programmed after erasing all the non-volatile storage elements in the first pseudo block.
3. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- erase all non-volatile storage elements on a first NAND string of the plurality of NAND strings that are in a first pseudo block in the block without erasing any storage elements on the first NAND string that are in any of the other pseudo blocks in the block.
4. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- program all storage elements in a first pseudo block in the block prior to programming any storage element in at least one other pseudo block in the block.
5. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- erase the storage elements using different starting erase voltages for different pseudo blocks in the block.
6. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- for each of the pseudo blocks in the block, record access times to read the non-volatile storage elements in the respective pseudo block; and
- determine whether the access time for each respective pseudo block exceeds a limit for the respective pseudo block.
7. The 3D NAND stacked non-volatile memory device of claim 6, wherein at least two of the pseudo blocks have a different limit.
8. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- for each of the pseudo blocks in the block, record the number of program/erase cycles for the respective pseudo block; and
- determine whether the number of program/erase cycles for each respective pseudo block exceeds a limit for the respective pseudo block.
9. The 3D NAND stacked non-volatile memory device of claim 8, wherein at least two of the pseudo blocks have a different limit.
10. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- apply a boosting voltage to a control gate of non-volatile storage elements in the block that are not selected for programming whose magnitude depends on which pseudo block that the non-volatile storage element to which the boosting voltage is applied is in.
11. The 3D NAND stacked non-volatile memory device of claim 1, wherein each of the non-volatile storage elements is characterized by a memory hole size, the plurality of storage elements are associated with the pseudo blocks based on memory hole size.
12. The 3D NAND stacked non-volatile memory device of claim 1, wherein the control circuit is configured to subdivide the non-volatile storage elements in the block into the pseudo blocks based on a program speed of the respective non-volatile storage elements.
13. A method of operating a three-dimensional (3D) NAND stacked non-volatile memory device comprising a plurality of NAND strings in a block, each NAND string comprising a plurality of non-volatile storage elements, each NAND string comprising a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device, wherein the block comprises pseudo blocks that each comprise a portion of each of the NAND strings, wherein each of the NAND strings is a member of each of the pseudo blocks, the method comprising:
- performing operations associated with the plurality of NAND strings in the Mock on a pseudo block level.
14. The method of claim 13, wherein performing operations on a pseudo block level comprises:
- erasing non-volatile storage elements in a first pseudo block in the block without erasing storage elements in any of the other pseudo blocks in the block, including erasing all non-volatile storage elements on a first NAND string of the plurality of NAND strings that are in a first pseudo block in the block without erasing any storage elements on the first NAND string that are in any of the other pseudo blocks in the block, wherein non-volatile storage elements on the first NAND string in at least one of the other pseudo blocks in the block remain programmed after erasing all the non-volatile storage elements on the first NAND string in the first pseudo block.
15. The method of claim 13, wherein the block is associated with a plurality of bit lines, a group of the plurality of NAND strings are associated with a first bit line of the bit lines, the group includes a first NAND string, wherein performing operations on a pseudo block level comprises:
- programming the storage elements associated with the first NAND string that in a first pseudo block in the block without programming any storage elements on the first NAND string in the other pseudo blocks in the block; and
- then programming the storage elements associated with remaining NAND strings associated with the first bit line that are in the first pseudo block without programming any storage elements on the remaining NAND strings in the other pseudo blocks in the block.
16. The method of claim 13, wherein performing operations on a pseudo block level comprises:
- erasing the storage elements using different starting erase voltages for different pseudo blocks in the block.
17. The method of claim 13, wherein performing operations on a pseudo block level comprises:
- for each of the pseudo blocks in the block, recording access times to read the non-volatile storage elements in the respective pseudo block; and
- determining whether the access time for each respective pseudo block exceeds a limit for the respective pseudo block, wherein at least two of the pseudo blocks have a different limit for the access time.
18. The method of claim 13, wherein performing operations on a pseudo block level comprises:
- for each of the pseudo blocks in the block, recording the number of program/erase cycles for the respective pseudo block; and
- determining whether the number of program/erase cycles for each respective pseudo block exceeds a limit for the respective pseudo block, wherein at least two of the pseudo blocks have a different limit for the program/erase cycles.
19. The method of claim 13, wherein performing operations on a pseudo block level comprises:
- applying a boosting voltage to a control gate of non-volatile storage elements in the block that are not selected for programming whose magnitude depends on which pseudo block that the non-volatile storage element to which the boosting voltage is applied is in.
20. The method of claim 13, further comprising subdividing the non-volatile storage elements in the block into the pseudo blocks based on a programming speed of the respective non-volatile storage elements.
21. A three dimensional (3D) NAND stacked non-volatile memory device, comprising:
- a NAND string comprising a plurality of non-volatile storage elements, the NAND string comprises a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device; and
- a control circuit in communication with the NAND string, wherein the control circuit is configured to perform an erase of a portion of the NAND string while leaving other non-volatile storage elements on the NAND string programmed.
22. The 3D NAND stacked non-volatile memory device of claim 21, wherein the control circuit is configured to apply voltages to control gates of non-volatile storage elements that are unselected for erase that generates GIDL in the channel.
23. A three dimensional (3D) NAND stacked non-volatile memory device, comprising:
- a NAND string comprising a plurality of non-volatile storage elements, the NAND string comprises a channel that extends vertically through layers of the 3D NAND stacked non-volatile memory device, wherein the NAND string comprises memory cells that reside in a memory hole in the layers; and
- a control circuit in communication with the NAND string, the control circuit is configured to apply a boosting voltage to a control gate of an unselected non-volatile storage element on the NAND string that is not selected for programming, a magnitude of the boosting voltage depends on location of the unselected non-volatile storage element on the NAND string, wherein a magnitude of the boosting voltage for a given memory cell depends on a size of the memory hole associated with the given memory cell.
24. The 3D NAND stacked non-volatile memory device of claim 23, wherein the magnitude of the boosting voltage is larger for memory cells associated with larger memory holes.
25. The 3D NAND stacked non-volatile memory device of claim 23, wherein the magnitude of the boosting voltage is progressively smaller as the size of the memory hole is smaller.
26. The three-dimensional stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- perform an operation on a first of the pseudo blocks and not on other pseudo blocks associated with the plurality of NAND strings in the block.
27. The three-dimensional stacked non-volatile memory device of claim 1, wherein the control circuit configured to operate in the pseudo block operation mode comprises the control circuit configured to:
- perform an operation with respect to a first non-volatile storage element of a first of the plurality of NAND strings that is dependent on the pseudo block with which the first non-volatile storage element is associated.
28. The method of operating a three-dimensional stacked of claim 13, wherein the performing operations associated with the plurality of NAND strings in the block on the pseudo block level comprises:
- performing an operation on a first of the pseudo blocks and not on other pseudo blocks associated with the plurality of NAND strings in the block.
29. The method of operating a three-dimensional stacked of claim 13, wherein the performing operations associated with the plurality of NAND strings in the block on the pseudo block level comprises:
- performing an operation with respect to a first non-volatile storage element of a first of the plurality of NAND strings that is dependent on the pseudo block in which the first non-volatile storage element resides.
Type: Application
Filed: Jan 10, 2014
Publication Date: Dec 18, 2014
Applicant: SanDisk Technologies Inc. (Plano, TX)
Inventors: Xiying Costa (San Jose, CA), Alexander Kwok-Tung Mak (Los Altos Hills, CA), Chris Avila (Saratoga, CA), Gautam Dusija (San Jose, CA), Man Mui (Santa Clara, CA)
Application Number: 14/152,848
International Classification: G11C 16/10 (20060101); G11C 16/16 (20060101); G11C 16/04 (20060101);