KR20100050471A - Intelligent control of program pulse duration - Google Patents
Intelligent control of program pulse duration Download PDFInfo
- Publication number
- KR20100050471A KR20100050471A KR1020107001506A KR20107001506A KR20100050471A KR 20100050471 A KR20100050471 A KR 20100050471A KR 1020107001506 A KR1020107001506 A KR 1020107001506A KR 20107001506 A KR20107001506 A KR 20107001506A KR 20100050471 A KR20100050471 A KR 20100050471A
- Authority
- KR
- South Korea
- Prior art keywords
- programming
- pulses
- applying
- duration
- volatile storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
Abstract
To program the set of nonvolatile storage elements, a set of programming pulses is applied to the control gate (or other terminal) of the nonvolatile storage elements. The programming pulses have a constant pulse width and increasing magnitude until the maximum voltage is reached. At that point, the increase in the magnitude of the programming pulses stops, and the programming pulses are applied in a manner that provides a change in the duration of the programming signal between verify operations. In one embodiment, for example, after the pulses reach their maximum magnitude, the pulse width increases. In another embodiment, after the pulses have reached their maximum magnitude, a plurality of program pulses are applied between the verify operations.
Description
The present invention relates to nonvolatile storage technology.
Semiconductor memory is becoming more and more widely used in various electronic devices. For example, non-volatile semiconductor memory may include cellular telephones, digital cameras, personal digital assistants (PDAs), mobile computing devices, and non-mobile computing devices. mobile computing devices) and other devices. Electronic Erasable Programmable Read Only Memory (EEPROM) and flash memory are one of the most widely used nonvolatile semiconductor memories.
Both the EEPROM and the flash memory are located on top of the channel region in the semiconductor substrate and use a floating gate insulated from the channel region. The floating gate is located between the source region and the drain region. A control gate is provided over the floating gate and is insulated from the floating gate. The threshold voltage of the transistor is controlled by the amount of charge retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on and conduction between the source and drain occurs is controlled by the level of charge on the floating gate. Thus, the memory cell (which may include one or more transistors) may be programmed and / or erased by changing the level of charge on the floating gate to change the threshold voltage.
Each memory cell can store data (analog or digital). When storing one bit of digital data (called a binary memory cell), the possible threshold voltages of the memory cell are divided into two ranges assigned to logic data " 1 " and " 0 ". In one example of a NAND type flash memory, the threshold voltage after the memory cell is erased is negative and is defined as logic " 1. " After programming, the threshold voltage is positive and defined as logic "0". When the threshold voltage is negative and a read is attempted by applying 0 volts to the control gate, the memory cell is turned on to indicate that
Memory cells may also store multiple levels of information (called multi-state memory cells). In the case of storing multiple levels of data, the range of possible threshold voltages is divided by the number of data levels. For example, if four levels of information are stored, there may be four threshold voltage ranges assigned to the data values "11", "10", "01" and "00". As an example of a NAND type memory, the threshold voltage after the erase operation is negative and is defined as "11". Positive threshold voltages are used for the states of "10", "01" and "00". If eight levels of information (or state) are stored in each memory cell (e.g., for three bits of data), the data values "000", "001", "010", "011", There may be eight threshold voltage ranges assigned to "100", "101", "110" and "111". The specific relationship between the data programmed into the memory cell and the threshold voltage levels of the memory cell depends on the data encoding scheme adopted for the memory cells. For example, US Pat. No. 6,222,762 and US Patent Application Publication No. 2004/0255090 describe various data encoding schemes for multi-state flash memory cells, which are incorporated herein by reference in their entirety. Included. In one embodiment, data values are assigned to threshold voltage ranges using Gray code assignment, and if one of the floating gate's threshold voltages incorrectly shifts to a neighboring physical state, only one bit is affected. Receive. In some embodiments, the data encoding scheme may be changed for other word-lines, or the data encoding scheme may change over time, or data bits for arbitrary word lines may be It may be inverted to reduce even wear and data pattern sensitivity on the memory cell. Different encoding schemes can be used.
When programming a flash memory device, such as an EEPROM, or a NAND flash memory device, a program voltage is generally applied to the control gate and the bit line is grounded. Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate is negatively charged and the threshold voltage of the memory cell is raised, leaving the memory cell in a programmed state. For more information on programming, see US Pat. No. 6,859,397, entitled "Source Side Self Boosting Technique For Non-Volatile Memory," and US Patent Application Publication No. 2005/0024939, entitled "Detecting Over Programmed Memory." "), All of which are incorporated herein by reference in their entirety.
In general, the program voltage applied to the control gate during a program operation is applied in a series of pulses. In many embodiments, the magnitude of the pulses increases to a predetermined step size in the form of each successive pulse.
Because multi-state memory cells have multiple ranges of possible threshold voltages, some memory cells need to be programmed to higher threshold voltages as compared to binary memory cells. Larger magnitude programming pulses are needed to program the memory cells to higher threshold voltages. Additionally, as techniques for more sophisticated structures are applied, it can be more difficult to maintain the same cell coupling ratio, which results in larger voltages for the programming pulses to achieve the same programming effect. It is necessary. However, the voltage of the programming pulses is limited by practical constraints in the design of the charge pump on the memory chip, and by several factors including junction and oxide breakdown.
Thus, higher voltage programming pulses are needed, but there is a limit to the maximum voltage achievable.
The technique signed herein relates to an intelligent way to control the duration of program pulses applied to the memory cell (s). For example, if there are memory cells in which the programming signal has reached its maximum voltage but still has not terminated programming, controlling the duration of program pulses applied to the memory cell (s) to ensure effective programming continues. Intelligent methods can be used. One example of an intelligent way to control the duration of program pulses applied to the memory cell (s) includes using wider program pulses. Another example uses a plurality of consecutive program pulses between verification operations. Other intelligent ways to control the duration of program pulses can also be used. In addition, an intelligent scheme for controlling the duration of program pulses can also be used in situations other than the previously signed situation.
One embodiment includes applying a programming signal to a nonvolatile storage element. Applying the program signal includes applying programming pulses having a constant pulse width to the non-volatile storage device prior to one or more pulses reaching a maximum magnitude, and one or more pulses reaching a maximum magnitude. Thereafter thereafter applying one or more programming pulses to the non-volatile storage element that provide a change in the duration of the programming signal between verify operations.
One embodiment includes applying a programming signal to a plurality of nonvolatile storage elements as a set of pulses, and performing one or more verify operations to determine whether the nonvolatile storage elements are properly programmed. Applying a programming signal to the plurality of nonvolatile storage elements as the set of pulses applies pulses with increasing duration and constant magnitudes between verify operations before one or more pulses reach their maximum magnitude. It includes. Also, applying a programming signal to a plurality of nonvolatile storage elements as the set of pulses includes changing the duration of the programming signal between verify operations after one or more pulses have reached the maximum magnitude. do.
One embodiment includes applying programming pulses to the nonvolatile storage device having increasing magnitude and constant pulse width until one or more pulses reach their maximum magnitude. This procedure also includes applying programming pulses with increasing pulse widths to the nonvolatile storage element after one or more pulses have reached the maximum magnitude.
One embodiment includes applying programming pulses to the nonvolatile storage device having increasing magnitude and constant pulse width until one or more pulses reach their maximum magnitude. This procedure also includes applying one or more groups of different numbers of programming pulses to the nonvolatile storage element after one or more pulses have reached the maximum magnitude. Each group is applied between verify operations.
Some example embodiments include a plurality of nonvolatile storage elements and one or more management circuits in communication with the nonvolatile storage elements. The one or more management circuits perform the procedures described herein.
1 is a top view of a NAND string.
2 is an equivalent circuit diagram of the NAND string.
3 is a block diagram of a nonvolatile memory system.
4 is a block diagram illustrating an embodiment of a memory array.
5 is a block diagram illustrating an embodiment of a sense block.
6 shows an exemplary set of threshold voltage distributions and shows a procedure for programming a nonvolatile memory.
7A-7I illustrate various threshold voltage distributions and illustrate a procedure for programming a nonvolatile memory.
8 is a table illustrating an example of a procedure of programming a nonvolatile memory.
9 is a flow chart describing one embodiment of a procedure for programming a nonvolatile memory.
10 is a flow chart describing one embodiment of a procedure for programming nonvolatile memory elements.
11A is a flow diagram illustrating one embodiment of a procedure for increasing the duration of a program voltage.
11B is a flow chart describing one embodiment of a procedure for increasing the duration of a program voltage.
11C is a flow chart describing one embodiment of a procedure for increasing the duration of a program voltage.
12 and 13 show exemplary waveforms.
14 is a table providing data for an exemplary programming signal.
15 and 16 show exemplary waveforms.
One example of a flash memory system uses a NAND structure, which includes arranging a plurality of transistors in series between two select gates. Transistors and select gates connected in series are referred to as a NAND string. 1 is a top view of one NAND string. 2 is an equivalent circuit thereof. The NAND string shown in FIGS. 1 and 2 includes four
Note that while FIGS. 1 and 2 show four memory cells within a NAND string, the use of four memory cells is provided only as an example. The NAND string may have fewer than four memory cells, or may have more than four memory cells. For example, some NAND strings may include 8 memory cells, 16 memory cells, 32 memory cells, 64 memory cells, 128 memory cells, and the like. The description herein is not limited to any particular number of memory cells in the NAND string.
A typical architecture for a flash memory system that uses a NAND structure includes several NAND strings. Each NAND string is connected to a source line by a source select gate controlled by a select line SGS and to an associated bit line by a drain select gate controlled by a select line SGS. Each bit line and the respective NAND string (s) connected to the bit line via bit line contacts constitute columns of an array of memory cells. Bit lines are shared with a plurality of NAND strings. In general, the bit lines are arranged in a direction perpendicular to the word lines on top of the NAND strings and are connected to one or more sense amplifiers.
Related examples of NAND type flash memories and their operation are provided in the following US patent / patent application, all of which are incorporated herein by reference. US Patent No. 5,570,315, US Patent No. 5,774,397, US Patent No. 6,046,935, US Patent No. 6,456,528, and US Patent Publication No. US2003 / 0002348. The description herein may also apply to other types of flash memory and other types of nonvolatile memory in addition to NAND.
In addition to NAND flash memory, other types of nonvolatile storage devices may also be used. For example, a so-called TANOS structure (TaN-Al 2 O 3 -SiN-SiO 2 on a silicon substrate), which is basically a memory cell that uses trapping of charge in a nitride layer (instead of a floating gate) Consisting of laminated layers) can also be used with the present invention. Another memory cell is published in the paper (Chan et al., Titled "A True Single- Transistor Oxide-Nitride-Oxide EEPROM Device", IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93- 95). A three-layer dielectric formed of silicon oxide, silicon nitride, and silicon oxide (“ONO”) is sandwiched between the conductive control gate and the semiconductive substrate over the memory cell channel. The cell is programmed by injecting electrons from the cell channel into the nitride, where the electrons are trapped and stored in a confined region. This stored charge changes the threshold voltage of a portion of the channel of the cell in a detectable manner. The cell is erased by injecting hot holes into nitride. In addition, the article (author: Nozaki et al., Title: "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application", IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497 -501, which describes a similar cell in a split-gate configuration, wherein the doped polysilicon gate extends over a portion of the memory cell channel to separate select transistors. select transistor). The above two articles are hereby incorporated by reference in their entirety. The programming techniques described in the paragraph (title: section 1.2 of "Nonvolatile Semiconductor Memory Technology", author: William D. Brown and Joe E. Brewer, IEEE Press, 1998) (which are also incorporated herein by reference) are also genetic It is described as applicable to the charge-trapping devices of. Other types of memory devices may also be used.
3 shows a
The
In one embodiment,
4 illustrates an exemplary structure of the
The block includes a set of NAND strings accessed through bit lines (eg, bit lines BL0-BL69623) and word lines WL0, WL1, WL2 and WL3. 4 shows four memory cells connected in series to form a NAND string. Although four cells are shown as contained within each NAND string, more or less than four may be used (e.g., 16, 32, 64, 128 or other numbers of memory cells on the NAND string). May be present). One terminal of the NAND string is connected to the corresponding bit line through the drain select gate (connected to the select gate drain line (SGD)), and the other terminal is connected through the source select gate (connected to the select gate source line (SGS)). Is connected to the source line.
In yet another embodiment, the bit lines are divided into odd bit lines and even bit lines. In odd / even bit line architectures, memory cells along a common word line and connected to odd bit lines are programmed at any time, while along a common word line and at even bit lines. The connected memory cells are programmed at another time.
Each block is usually divided into several pages. In one embodiment, a page is a unit of programming. One or more pages of data are generally stored within one row of memory cells. For example, one or more pages of data may be stored in memory cells connected to a common word line. A page can store one or more sectors. A sector includes user data and overhead data (which is also called system data). In general, the overhead data includes an error correction code (ECC) and header information calculated from user data of a sector. The controller (or other component) calculates the ECC when data is being programmed into the array and checks the ECC when the data is being read from the array. Alternatively, ECCs and / or other overhead data are stored in pages, or other blocks, different from the user data to which they belong. The sector of user data is typically 512 bytes, which corresponds to the size of the sector in the magnetic disk drive. Multiple pages (from approximately eight pages, for example up to 32, 64, 128, or more pages) form a block. Different sized blocks, pages and sectors may also be used.
5 is a block diagram of individual sensing blocks 300 partitioned into a core portion and a
The
During reading or sensing, the operation of the system is under the control of the
As expected, some embodiments may include a plurality of
The data latch
During program or verification, the data to be programmed is stored in the set of data latches 494 from the
In some embodiments (but not necessarily), the data latches are implemented as a shift register such that parallel data stored therein is converted to serial data for the
For further information on sensing operations and sense amplifiers, see (1) US Patent Application Publication No. 2004/0057287, entitled "Non-Volatile Memory And Method With Reduced Source Line Bias Errors", March 25, 2004. Published), (2) US Patent Application Publication No. 2004/0109357, entitled "Non-Volatile Memory And Method with Improved Sensing," published 10 June 2004, (3) US Patent Application Publication No. 2005/0169082, (4) US Patent Publication No. 2006/0221692, entitled "Compensating for Coupling During Read Operations of Non-Volatile Memory", inventor: Jian Chen, filed Apr. 2005, 2005, and (5) US patent application Ser. No. 11 / 321,953, entitled "Reference Sense Amplifier For Non-Volatile Memory", inventors: Siu Lung Chan and Raul-Adrian Cernea, filed Dec. 28, 2005. The five patent documents listed above are hereby incorporated by reference in their entirety.
At the end of a successful programming procedure (with verification), where appropriate, the threshold voltages of the memory cells must be within one or more distributions of threshold voltages for programmed memory cells or within the distribution of threshold voltages for erased memory cells. . 6 shows an example threshold voltage distribution (or data state) for a memory cell array when each memory cell stores three bits of data. However, other embodiments may use more or less than 3 bits of data per memory cell (eg, 4 bits of data or more than 4 bits of data per memory cell).
In the example of FIG. 6, each of the memory cells stores three bits of data, and thus there are eight valid data states S0-S7. In one embodiment, data state S0 is below zero volts and data states S1-S7 are above zero volts. In another embodiment, all eight data states are above zero volts, or other arrangements may be configured. In one embodiment, the threshold voltage distribution SO is wider than the distribution S1-S7 distribution.
Each data state corresponds to an eigenvalue for three bits stored in a memory cell. In one embodiment, S0 = 111, S1 = 110, S2 = 101, S3 = 100, S4 = 011, S5 = 010, S6 = 001 and S7 = 000. Other mappings of data to states S0-S7 can also be used. In one embodiment, the bits of all data stored in the memory cell are stored in the same logic page. In another embodiment, each bit of data stored in a memory cell corresponds to a different page. Thus, memory cells that store three bits of data will contain data in the first page, second page, and third page. In some embodiments, all of the memory cells connected to the same word line may store data in the same three data pages. In some embodiments, memory cells connected to a word line may be grouped in different sets of pages (eg, by odd and even bit lines).
In some conventional devices, memory cells may be erased in state SO. From state SO, the memory cells can be programmed to any of states S1-S7. In one embodiment, known as full sequence programming, memory cells may be programmed directly from the erase state SO to any of the programming states S1-S7. For example, a group of memory cells to be programmed may be erased first, so that all memory cells in that group are in an erased state SO. Some memory cells are programmed from state S0 to state S1, while other memory cells from state S0 to state S2, from state S0 to state S3, and state S0 to state S0. From S4, from state S0 to state S5, from state S0 to state S6, and from state S0 to state S7. Full sequence programming is schematically illustrated with the seven bent arrows of FIG. 6.
7A-7I disclose another procedure for programming a non-volatile memory, which, for any particular memory cell, writes adjacent memory cells for previous pages after that write for that particular page. By writing to a particular memory cell, the effect of floating gate to floating gate coupling is reduced. 7A-7I is a three step programming procedure. Prior to the first step, the memory cells are erased and are in the erase threshold distribution of state SO.
In the procedures of Figures 7A-7I, each memory cell stores three bits of data, and each bit is assumed to be in a different page. The first bit of data (the leftmost bit) is associated with the first page. The middle bit is associated with the second page. The rightmost bit is associated with the third page. The correlation between data and data states is S0 = 111, S1 = 110, S2 = 101, S3 = 100, S4 = 011, S5 = 010, S6 = 001 and S7 = 000. However, other embodiments may use other data encoding schemes.
When programming the first page (as described in FIG. 7A), if the bit should be data “1”, the memory cell remains in state SO (threshold voltage distribution 502). If the bit should be data "0", then the memory cell is programmed to state S4 (threshold voltage distribution 504). After adjacent memory cells are programmed, capacitive coupling between adjacent floating gates can cause the width of state S4 to be widened, as shown in FIG. 7B. The width of the state SO can also be widened, but there is enough margin between S0 and S1 to ignore the effect. More information regarding capacitive coupling between adjacent floating gates can be found in US Pat. No. 5,867,429 and US Pat. No. 6,657,891, all of which are incorporated herein by reference in their entirety.
When programming the second page (see FIG. 7C), if the memory cell is in state S0 and the second page bit is data "1", the memory cell remains in state S0. In some embodiments, the programming procedure for the second page tightens the threshold voltage distribution 501 to a new S0. If the memory cell was in state S0 and the data to be written to the second page is "0", the memory cell is moved to state S2 (threshold voltage distribution 506). State S2 has a verify point (lowest voltage) of C * . If the memory cell is in state S4 and the data to be written to the memory cell is "1", the memory cell is in S4. However, as shown in FIG. 7C, state S4 is tightened by moving memory cells from
After adjacent memory cells have been programmed, states S2, S4, and S6 become wider due to floating gate to floating gate coupling, as shown by
7E, 7F, 7G and 7H illustrate the programming of the third page. Although one graph can be used to illustrate the programming, it is described as four graphs to facilitate visual readout. After the second page is programmed, the memory cells are in either of states SO, S2, S4 or S6. 7E shows that the memory cell in state SO is programmed for the third page. 7F shows that the memory cell in state S2 is programmed for the third page. 7G shows that the memory cell in state S4 is programmed for the third page. 7H shows that the memory cell in state S6 is programmed for the third page. FIG. 7I shows the threshold voltage distributions after the procedure of FIGS. 7E, 7F, 7G and 7H have been performed (simultaneously or sequentially) on a group of memory cells.
If the memory cell is in state S0 and the third page data is "1", the memory cell remains in state S0. If the data for the third page is "0", the threshold voltage for the memory cell is raised to be in state S1, in which case the verification point is B (see Figure 7E).
If the memory cell is in state S2 and the data to be written to the third page is "1", the memory cell will remain in state S2 (see Fig. 7F). However, some programming may be performed to tighten the
If the memory cell is in state S4 and the data to be written to the third page is "1", the memory cell will remain in state S4 (see Fig. 7G). However, some programming may be performed to tighten the
If the memory cell is in state S6 and the data to be written to the third page is "1", the memory cell will remain in state S6 (see Fig. 7H). However, there may be some programming that causes the
8 shows an example of a sequence for programming any set or page of memory cells. This table provides the order of programming for the four word lines WL0, WL1, WL2 and WL3 in FIG. 4. However, this table can be configured to accommodate more or less than four word lines. The first page of memory cells coupled to WL0 is programmed, the first page of memory cells coupled to WL1 is programmed, the second page of memory cells coupled to WL0 is programmed, and then the first page of memory cells coupled to WL2 The page is programmed, then the second page of memory cells connected to WL1 is programmed, and so on.
9 is a flowchart illustrating a programming procedure for programming memory cells connected to a selected word line. In one embodiment, the procedure of FIG. 9 is used to program a block of memory cells. In one embodiment of the procedure of FIG. 9, the memory cells are preprogrammed (step 550) to maintain uniform wear on the memory cells. In one embodiment, the memory cells are preprogrammed in
In
In
10 is a flowchart of a procedure for performing programming on memory cells connected to a common word line. The procedure of FIG. 10 may be performed once or several times during
In general, the program voltage applied to the control gate during a program operation is applied in a series of program pulses. There is a set of verify pulses between the programming pulses to enable verify. In many embodiments, the magnitude of the program pulses is increased by a predetermined step size in the form of each successive pulse. In
In
If, at
If at
If, at
One purpose of
Step 624 also includes incrementing the program counter. After
Step 612 of FIG. 10 includes performing one or more verify operations. In general, during a verify operation and a read operation, the selected word line is connected to any voltage, and its level is determined by each read and verify operation to determine whether the threshold voltage of the corresponding memory cell has reached such a level. For example, see B, C, D, E, F, G, and H of FIG. 7I). After applying the word line voltage, the conduction current of the memory cell is measured to determine whether the memory cell is turned on in response to the voltage applied to the word line. If the conduction current is measured to be greater than a certain value, the memory cell is turned on and the voltage applied to the word line is assumed to be greater than the threshold voltage of the memory cell. If the conduction current is not measured to be greater than a certain value, the memory cell is not turned on and it is assumed that the voltage applied to the word line is not greater than the threshold voltage of the memory cell.
There are many ways to measure the conduction current of a memory cell during a read or verify operation. In one example, the conduction current of the memory cell is measured at the rate of discharging or charging the dedicated capacitor in the sense amplifier. In another example, the conduction current of the selected memory cell may cause the NAND string comprising the memory cell to discharge (or not be able to discharge) the corresponding bit line. The voltage on the bit line is measured after a certain time to see if the bit line is discharged or not.
11A-11C are flowcharts illustrating various embodiments in which the duration of a program signal is increased. That is, each of the flowcharts of FIGS. 11A-11C provides an example of a procedure performed as part of
The embodiment of FIG. 11A includes using wider pulses after reaching the maximum program voltage. In
12 schematically illustrates an example of a programming signal according to the embodiment of FIG. 11A.
As described above, there are one or more verify pulses between programming pulses. For example, seven verify pulses can be used at the magnitudes of B, C, D, E, F, G and H volts (see FIG. 7I). These verify pulses are not shown in FIG. 12 to facilitate drawing reading. However, in FIG. 13, three of the
14 is a table providing another example of a programming signal according to the embodiment of FIG. 11A. This table provides example magnitudes and pulse widths for the programming signals. The table of FIG. 14 also provides an average threshold voltage Vth for a group of memory cells that are programmed from an erased state. As can be seen in Figure 14, prior to reaching a maximum program voltage of 23.25 volts, the program pulses are increasing in size by a fixed step size of 0.25 volts, while maintaining a constant pulse width of 10.00 Hz The average threshold voltage is increased by 0.25 volts. After reaching the maximum program voltage of 23.25 volts, the magnitude of the program pulse remains 23.25 volts, but the pulse width of the program pulse is increasing, so the average threshold voltage continues to increase by 0.25 volts.
In one embodiment, it should be noted that
11B provides another embodiment of performing
In
FIG. 11C provides another embodiment of executing
15 schematically illustrates an example of a programming signal according to the embodiment of FIG. 11C.
Verify operations are performed between sets of program pulses (eg 870/872 is one set and 874/875/878 is an example of sets), and no verify operation is performed within the sets of program pulses. . Thus, this embodiment makes the duration of the valid program signal longer by using a plurality of program pulses between verify operations. For example, between
In an alternative embodiment to the pulse signal of FIGS. 11C and 15, each set of pulses (eg, 870/872 is one set and 874/875/878 is an example of sets) each has its own set of magnitudes. In combination with its magnitude, the combined duration of the pulses in the set provides the desired programming amount. In one embodiment, the magnitude of the number of pulses in the set and the number of pulses in the set may be determined from user configurable parameters (see FIG. 11B) and / or achieve a constant programming amount within each set. (And, optionally, this is also the same programming amount as each pulse 850-868).
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 these embodiments. Many modifications and variations are possible in light of the above teaching. The above-described embodiments are chosen to best explain the principles of the present invention and their practical applications, whereby those skilled in the art will be suitable for the particular use desired, and in various embodiments, also in various modifications. Together with them, they are chosen to enable the best possible use. It is intended that the scope of the invention be defined by the claims appended hereto.
Claims (25)
And applying a programming signal to the non-volatile storage device, wherein applying the programming signal comprises: programming pulses having a constant pulse width before the one or more pulses reach a maximum magnitude; Applying to and applying one or more programming pulses to the non-volatile storage device providing a change in duration of the programming signal between verify operations after one or more pulses have reached their maximum magnitude. How to program a non-volatile storage characterized by.
Programming pulses having a constant pulse width are applied in increasing magnitude.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses with varying pulse widths. How to.
Applying one or more programming pulses to the nonvolatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses with increasing pulse widths. How to program.
Applying one or more programming pulses to the nonvolatile storage device providing a change in the duration of the programming signal comprises applying one or more programming pulses having pulse widths that change to a constant value. How to program nonvolatile storage.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses having pulse widths that vary with a variable value. How to program a non-volatile storage characterized by.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses with pulse widths that increase to a constant value. How to program volatile storage.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses with increasing pulse widths to varying values. How to program nonvolatile storage.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal comprises applying one or more programming pulses with increasing pulse widths and the maximum magnitude. How to program nonvolatile storage.
Storing a set of customizable pulse width parameters,
Applying one or more programming pulses to the non-volatile storage element providing a change in the duration of the programming signal may include one or more programming pulses having increasing pulse widths based on the stored customizable pulse width parameter set. A method for programming non-volatile storage, comprising applying.
Applying one or more programming pulses to the non-volatile storage element providing a change in the duration of the programming signal comprises applying a plurality of pulses between verify operations. Way.
Applying one or more programming pulses to the non-volatile storage element providing a change in the duration of the programming signal comprises applying a plurality of pulses at the maximum magnitude between verify operations. How to program volatile storage.
Applying one or more programming pulses to the nonvolatile storage element providing a change in duration of the programming signal includes applying one or more groups of different numbers of programming pulses to the nonvolatile storage element, each Wherein a group of s is applied between the verify operations.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal,
Determining how many program verify cycles were performed within the current time period, and
Applying any number of programming pulses to the nonvolatile storage device based on the determination.
Applying the programming signal,
(a) applying a pulse to the control gate of the nonvolatile storage element,
(b) performing one or more verify operations on the non-volatile storage element;
(c) determining whether a maximum voltage has been used for the programming signal;
(d) if the maximum voltage has not yet been used for the programming signal, repeating steps (a) to (c) with a higher magnitude pulse, and
(e) if said maximum voltage has been used for said programming signal, comprising repeating steps (a) through (c) with one or more pulses of longer duration; How to program it.
A nonvolatile storage element; And
One or more management circuits in communication with the non-volatile storage element,
The one or more management circuits may program the nonvolatile storage element by applying a programming signal to the nonvolatile storage element, and applying the programming signal has a constant width before one or more pulses reach a maximum magnitude. Applying one or more programming pulses to the nonvolatile storage device and providing a change in the duration of the programming signal between verify operations after one or more pulses have reached their maximum magnitude. Non-volatile storage system comprising applying to the storage element.
And said programming pulses having said constant width are applied by said one or more management circuits in increasing magnitude.
Applying one or more programming pulses to the nonvolatile storage element providing a change in the duration of the programming signal comprises the one or more management circuits applying one or more programming pulses with varying pulse widths. Non-volatile storage system.
Applying one or more programming pulses to the nonvolatile storage element providing a change in duration of the programming signal includes the one or more management circuits applying one or more programming pulses with increasing pulse widths. Non-volatile storage system.
Applying one or more programming pulses to the nonvolatile storage element providing a change in the duration of the programming signal is such that the one or more management circuits apply one or more programming pulses having pulse widths that increase to a variable value. Non-volatile storage system comprising a.
Applying one or more programming pulses to the non-volatile storage element providing a change in duration of the programming signal means that the one or more management circuits apply one or more programming pulses with pulse widths that increase to a constant value. Non-volatile storage system comprising a.
Applying one or more programming pulses to the nonvolatile storage element providing a change in the duration of the programming signal is such that the one or more management circuits apply one or more programming pulses with increasing pulse widths and the maximum magnitude. Non-volatile storage system comprising a.
Applying one or more programming pulses to the nonvolatile storage element providing a change in duration of the programming signal comprises the one or more management circuits applying a plurality of pulses between verify operations. Non-volatile storage system.
Applying one or more programming pulses to the nonvolatile storage element providing a change in duration of the programming signal indicates that the one or more management circuits apply a plurality of pulses at the maximum magnitude between verify operations. Non-volatile storage system comprising a.
And the nonvolatile storage element is a flash memory device.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/766,583 US7630249B2 (en) | 2007-06-21 | 2007-06-21 | Intelligent control of program pulse duration |
US11/766,583 | 2007-06-21 | ||
US11/766,580 US7580290B2 (en) | 2007-06-21 | 2007-06-21 | Non-volatile storage system with intelligent control of program pulse duration |
US11/766,580 | 2007-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100050471A true KR20100050471A (en) | 2010-05-13 |
Family
ID=40156678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107001506A KR20100050471A (en) | 2007-06-21 | 2008-06-18 | Intelligent control of program pulse duration |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2160735A4 (en) |
JP (1) | JP2010530596A (en) |
KR (1) | KR20100050471A (en) |
CN (1) | CN101779250B (en) |
TW (1) | TWI378457B (en) |
WO (1) | WO2008157606A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101635504B1 (en) | 2009-06-19 | 2016-07-04 | 삼성전자주식회사 | Program method of non-volatile memory device with three-dimentional vertical channel structure |
US8432740B2 (en) * | 2011-07-21 | 2013-04-30 | Sandisk Technologies Inc. | Program algorithm with staircase waveform decomposed into multiple passes |
JP2013041654A (en) * | 2011-08-19 | 2013-02-28 | Toshiba Corp | Nonvolatile storage device |
KR101989792B1 (en) | 2012-11-01 | 2019-06-17 | 삼성전자주식회사 | Memory system including nonvolatile memory and method for operating nonvolatile memory |
DK3059227T3 (en) * | 2013-10-16 | 2019-08-26 | Fujifilm Corp | SALT OF A NITROGEN CONTAINING HETEROCYCLIC COMPOUND OR CRYSTAL THEREOF, PHARMACEUTICAL COMPOSITION AND FLT3 INHIBITORS |
JP2017168156A (en) * | 2016-03-14 | 2017-09-21 | 東芝メモリ株式会社 | Semiconductor storage device |
TWI604449B (en) * | 2016-08-31 | 2017-11-01 | 旺宏電子股份有限公司 | Memory device and programming method thereof |
US10283511B2 (en) * | 2016-10-12 | 2019-05-07 | Ememory Technology Inc. | Non-volatile memory |
CN110189783B (en) * | 2019-04-15 | 2021-04-06 | 华中科技大学 | Multi-value programming method and system of nonvolatile three-dimensional semiconductor memory device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3410747B2 (en) * | 1992-07-06 | 2003-05-26 | 株式会社東芝 | Nonvolatile semiconductor memory device |
JP3621501B2 (en) * | 1995-03-29 | 2005-02-16 | 株式会社東芝 | Nonvolatile semiconductor memory device |
EP0830684B1 (en) * | 1995-06-07 | 2004-08-25 | Macronix International Co., Ltd. | Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width |
JPH1027491A (en) * | 1996-07-12 | 1998-01-27 | Denso Corp | Method for measuring writing threshold value of nonvolatile memory |
WO2003073433A1 (en) * | 2002-02-28 | 2003-09-04 | Renesas Technology Corp. | Nonvolatile semiconductor memory device |
US6882567B1 (en) * | 2002-12-06 | 2005-04-19 | Multi Level Memory Technology | Parallel programming of multiple-bit-per-cell memory cells on a continuous word line |
KR100525910B1 (en) * | 2003-03-31 | 2005-11-02 | 주식회사 하이닉스반도체 | Method of programming a flash memory cell and method of programing an NAND flash memory using the same |
US6870772B1 (en) * | 2003-09-12 | 2005-03-22 | Renesas Technology Corp. | Nonvolatile semiconductor memory device |
US7023739B2 (en) * | 2003-12-05 | 2006-04-04 | Matrix Semiconductor, Inc. | NAND memory array incorporating multiple write pulse programming of individual memory cells and method for operation of same |
US7020026B2 (en) * | 2004-05-05 | 2006-03-28 | Sandisk Corporation | Bitline governed approach for program control of non-volatile memory |
KR100626377B1 (en) * | 2004-06-07 | 2006-09-20 | 삼성전자주식회사 | Non-volatile memory device capable of changing increment of program voltage according to mode of operation |
KR100705220B1 (en) * | 2005-09-15 | 2007-04-06 | 주식회사 하이닉스반도체 | Erasing and Programming methods of a flash memory device for increasing program speed of the flash memory device |
-
2008
- 2008-06-18 TW TW97122758A patent/TWI378457B/en not_active IP Right Cessation
- 2008-06-18 CN CN200880100547.1A patent/CN101779250B/en active Active
- 2008-06-18 EP EP08771368A patent/EP2160735A4/en not_active Withdrawn
- 2008-06-18 WO PCT/US2008/067347 patent/WO2008157606A1/en active Application Filing
- 2008-06-18 JP JP2010513379A patent/JP2010530596A/en active Pending
- 2008-06-18 KR KR1020107001506A patent/KR20100050471A/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP2160735A4 (en) | 2011-04-20 |
WO2008157606A1 (en) | 2008-12-24 |
TWI378457B (en) | 2012-12-01 |
CN101779250B (en) | 2014-01-08 |
CN101779250A (en) | 2010-07-14 |
JP2010530596A (en) | 2010-09-09 |
TW200907976A (en) | 2009-02-16 |
EP2160735A1 (en) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7619930B2 (en) | Dynamic verify based on threshold voltage distribution | |
EP2348511B1 (en) | Variable program for non-volatile storage | |
EP2467854B1 (en) | Selective memory cell program and erase | |
JP5439488B2 (en) | Improved data retention of the last word line in non-volatile memory arrays | |
US7768834B2 (en) | Non-volatile storage system with initial programming voltage based on trial | |
US8406063B2 (en) | Programming non-volatile storage with synchonized coupling | |
KR101600551B1 (en) | Programming non-volatile memory with high resolution variable initial programming pulse | |
US7630249B2 (en) | Intelligent control of program pulse duration | |
WO2008083131A2 (en) | Method for programming with initial programming voltage based on trial | |
WO2011062917A1 (en) | Data coding for improved ecc eddiciency in a nonvolatile storage system | |
WO2014137651A1 (en) | Non-volatile storage with process that reduces read disturb on end wordlines | |
WO2014120943A1 (en) | Adaptive initial program voltage for non-volatile memory | |
KR20100050471A (en) | Intelligent control of program pulse duration | |
WO2014011627A1 (en) | Programming method to tighten threshold voltage width with avoiding program disturb | |
WO2014163995A1 (en) | Non-volatile storage with shared bit lines and programmable select transistors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |