Programming method of memory device

文档序号:1695617 发布日期:2019-12-10 浏览:15次 中文

阅读说明:本技术 存储器装置的编程方法 (Programming method of memory device ) 是由 谢志昌 李永骏 陈弟文 于 2018-05-31 设计创作,主要内容包括:存储器装置的编程方法包括:以一编程电压与一编程码来编程一目标存储器单元;施加一第一验证电压与一第二验证电压于该目标存储器单元,并得到一第一读取数据与一第二读取数据;以及根据该编程码、该第一读取数据与该第二读取数据来判断该目标存储器单元是否通过一真正编程验证及/或一虚拟编程验证。(The programming method of the memory device includes: programming a target memory cell with a programming voltage and a programming code; applying a first verification voltage and a second verification voltage to the target memory cell to obtain a first read data and a second read data; and determining whether the target memory cell passes a true program verify and/or a dummy program verify according to the program code, the first read data and the second read data.)

1. A method of programming a memory device, comprising:

Programming a target memory cell with a programming voltage and a programming code;

Applying a first verification voltage and a second verification voltage to the target memory cell to obtain a first read data and a second read data; and

Determining whether the target memory cell passes a true program verify and/or a dummy program verify according to the program code, the first read data and the second read data.

2. The programming method of a memory device according to claim 1,

Obtaining a next program code by using an inverted data of the first read data, an inverted data of the second read data, or the program code; and

Whether to execute a programming operation on the target memory cell is determined according to a bit line electric potential of the target memory cell.

3. The method of programming a memory device according to claim 2, wherein if the program voltage applied does not reach a maximum program voltage, or the target memory cell fails the true program verification or the dummy program verification, the program voltage is increased and the program code is updated to the next program code, and the target memory cell is programmed with the increased program voltage and the next program code.

4. The method of programming a memory device according to claim 1, wherein the target memory cell is deemed to have passed the virtual program verify and the program operation for the target memory cell is stopped when a threshold voltage of the target memory cell does not exceed the second verify voltage but exceeds the first verify voltage.

5. The method of programming a memory device according to claim 1, wherein when a threshold voltage of the target memory cell has exceeded the second verify voltage, the target memory cell has passed the true program verify and the program operation for the target memory cell is stopped.

6. A method of programming a memory device, comprising:

Performing a program operation and a program-verify operation on a target memory cell, the program operation and the program-verify operation including: applying a plurality of programming voltages, a plurality of first verifying voltages and a plurality of second verifying voltages to the target memory cell, wherein a voltage difference between each of the first verifying voltages and each of the second verifying voltages has a time-dependent drift characteristic; and

Determining whether a threshold voltage of the target memory cell exceeds each of the first verify voltages and/or each of the second verify voltages to determine whether the target memory cell is successfully programmed.

7. The method of programming a memory device according to claim 6, wherein when the threshold voltage of the target memory cell does not exceed each of the second verify voltages but exceeds each of the first verify voltages, the target memory cell is deemed to have passed a dummy program verify and the program operation for the target memory cell is stopped.

8. The method of programming a memory device according to claim 6, wherein when the threshold voltage of the target memory cell has exceeded each of the second verify voltages, the target memory cell has passed a true program verify and the program operation for the target memory cell is stopped.

9. The method of programming a memory device according to claim 6, wherein whether to perform a programming operation on the target memory cell is determined according to a bitline voltage of the target memory cell.

Technical Field

The invention relates to a programming method of a memory device.

Background

The flash memory is one of nonvolatile memory devices. Applying programming voltage pulses to the memory cells can store data in the memory cells.

To tighten the threshold voltage distribution of the memory cells, during an Incremental Step Pulse Programming (ISPP), a Programming Step and one or more verification steps may be performed, wherein each Programming Pulse may increase the threshold voltage of the memory cell. Furthermore, between each program pulse of the ISPP, a Program Verify (PV) pulse may be further applied to verify whether a threshold voltage of the memory cell exceeds a verify voltage to check whether the programming is successful. Thereby, ISPP can be used to achieve threshold voltage distribution tightening.

In addition, the flash memory may have a time dependent drift (time dependent relaxation) characteristic. This characteristic makes it possible for the threshold voltage of a memory cell to drift downward or upward, causing the threshold voltage of the memory cell to become unverifiable and making the threshold voltage distribution broader.

Therefore, there is a need for a method of programming a memory device that can tighten the threshold voltage distribution of the memory cells.

Disclosure of Invention

An example of the present application provides a programming method of a memory device, including: programming a target memory cell with a programming voltage and a programming code; applying a first verification voltage and a second verification voltage to the target memory cell to obtain a first read data and a second read data; and determining whether the target memory cell passes a true program verify and/or a dummy program verify according to the program code, the first read data and the second read data.

Another example of the present disclosure provides a method of programming a memory device, comprising: performing a program operation and a program-verify operation on a target memory cell, the program operation and the program-verify operation including: applying a plurality of programming voltages, a plurality of first verifying voltages and a plurality of second verifying voltages to the target memory cell, wherein a voltage difference between each of the first verifying voltages and each of the second verifying voltages has a time-dependent drift characteristic; and determining whether a threshold voltage of the target memory cell exceeds each of the first verify voltages and/or each of the second verify voltages to determine whether the target memory cell is successfully programmed.

In order to better understand the above and other aspects of the present invention, the following detailed description of the embodiments is made with reference to the accompanying drawings, in which:

Drawings

FIG. 1 shows a flow chart of a programming method of a memory device according to a first embodiment of the disclosure.

FIG. 2 shows a schematic diagram of a programming sequence according to a first embodiment of the present disclosure.

FIG. 3 shows a distribution of threshold voltages of SLC memory cells.

FIG. 4 shows a flow chart of a programming method of a memory device according to a second embodiment of the disclosure.

FIG. 5 shows a schematic diagram of a programming sequence according to a second embodiment of the present disclosure.

Fig. 6 shows a threshold voltage distribution diagram of the MLC.

FIG. 7 shows a flow chart of a programming method of a memory device according to a third embodiment of the disclosure.

FIG. 8 shows a schematic diagram of a programming sequence according to a third embodiment of the present disclosure.

Fig. 9 shows the threshold voltage distribution graph of TLC.

[ notation ] to show

105, 405, 450, 705, 740: step (ii) of

P (0) to P (n + 2): programming voltage

VR1, VR2, VR1_ A, VR2_ a, …, VR1_ G, VR2_ G: verification voltage

L1-L8: curve line

605-: range of

Detailed Description

The technical terms in the specification refer to the common terms in the technical field, and if the specification explains or defines a part of the terms, the explanation of the part of the terms is based on the explanation or definition in the specification. Various embodiments of the present disclosure may have one or more technical features. One of ordinary skill in the art may selectively implement some or all of the features of any of the embodiments, or selectively combine some or all of the features of the embodiments, where possible.

Referring now to FIG. 1, therein is shown a flow chart of a method of programming a memory device in accordance with a first embodiment of the present disclosure. Fig. 1 may be applied to a Single-level cell (SLC).

As shown in FIG. 1, in step 105, data is input to a target memory cell of a plurality of memory cells to be programmed. For example, if all the memory cells of a page are to be programmed, all the memory cells of the page are programmed synchronously, but all the memory cells of the page are determined according to the potentials on the respective bit lines to perform the programming operation, wherein the potential of the bit line is 0V, and the programming operation is not performed if the potential of the bit line is Vcc (Vcc is the power provided by the system).

In step 110, the target memory cell is programmed with a programming voltage p (n) and a programming code pgmcode (n), where n is a positive integer and an initial value of n is, for example but not limited to, 0. Please refer to fig. 2 for the programming voltages p (n).

Fig. 2 shows a schematic diagram of a programming sequence according to a first embodiment of the disclosure. FIG. 3 shows the distribution of the threshold voltages of the SLC memory cells, wherein the curves L1-L8 represent the distribution of the threshold voltages obtained after applying different programming voltages. As shown in fig. 2 and 3, since the first embodiment of the present invention uses ISPP, the program voltages are increased, for example, but not limited to, by a fixed step. For example, within the range of programming voltages used for ISPP, each programming voltage is increased by 0.5V. That is, assuming that the program voltage P (n) is 17V, the program voltage P (n +1) is 17.5V. As shown in fig. 2, in the first embodiment, after applying the programming voltage P (n) once, the verifying voltages VR2 and VR1 are applied 2 times (i.e., the first embodiment belongs to 1P 2V). As described above, the program voltage P (n) is increased, and the verify voltages VR2 and VR1 are fixed.

how to determine the code to be written will be described below. For example, but not limited to, in the 1 st programming, the target memory cell is programmed with an initial programming voltage P (0) (n ═ 0) and an initial programming code PgmCode (0), wherein the programming code PgmCode (0) is determined by the data input in step 105.

Next, in step 115, verify voltages VR2 and VR1 are applied to the target memory cell to read the target memory cell, so as to obtain two read data.

In step 120, the next program code PgmCode (n +1) | INV (R1) | INV (R2) | PgmCode (n) (i.e., PgmCode (n +1) | { INV (R1) or INV (R2) or PgmCode (n)) }, where R1 and R2 represent data read with verify voltages VR1 and VR2, respectively, and INV (R1) and INV (R2) represent inverses of data read with verify voltages VR1 and VR2, respectively, if PgmCode (n +1) is logic 1, it represents that the target memory cell has passed virtual program verify (pseudo program verify) in detail, if PgmCode (n) is logic 0, if INV (R1) or R2 is at least one of INV (R2), that is logic 890, that is, it represents that the target memory cell has passed verification, that is, wherein VR2 represents that the target memory cell has passed verification, after ISPP, if the threshold voltage of the target memory cell has exceeded the lesser of the verify voltages VR1 and VR2, then the target memory cell is verified by virtual programming.

In addition, in the first embodiment of the present invention, the target memory cell can be verified/read by the verifying voltage VR2 first, and then by the verifying voltage VR1 (as shown in the programming sequence of fig. 2), wherein the verifying voltage VR2 can also be referred to as the true verifying voltage, and the verifying voltage VR1 can also be referred to as the virtual verifying voltage.

In the first embodiment, after applying the program voltage to the target memory cell, if the threshold voltage of the target memory cell exceeds the verify voltage VR2 (true verify voltage), it indicates that the target memory cell passes the true program verify. If the target memory cell has passed the true program verification, then in the first embodiment of the present case, the program operation for the target memory cell may be stopped.

In addition, after applying the program voltage to the target memory cell, if the threshold voltage of the target memory cell does not exceed the verify voltage VR2 (true verify voltage) but exceeds the verify voltage VR1 (virtual verify voltage), it indicates that the target memory cell has passed the virtual program verify but failed the true program verify. In the first embodiment of the present application, after applying the programming voltage to the target memory cell, if the threshold voltage of the target memory cell exceeds the verification voltage VR1 (virtual verification voltage), the threshold voltage of the target memory cell may drift upward due to a time-dependent drift characteristic at a later time point, so that the threshold voltage of the target memory cell changes from being lower than the verification voltage VR2 (true verification voltage) to being higher than the verification voltage VR2 (true verification voltage). Therefore, in the first embodiment, when the threshold voltage of the target memory cell is determined to exceed the verify voltage VR1 (the virtual verify voltage), the target memory cell is deemed to have passed the virtual program verify. If the target memory cell has passed the virtual program verification, the program operation on the target memory cell may be stopped in the first embodiment of the present case.

As described above, in the first embodiment of the present invention, the program voltage is not applied to the target memory cell that has passed the true program verification or the dummy program verification.

In step 125, it is determined whether the applied program voltage has reached the maximum program voltage, or whether all memory cells to be programmed have passed program verification. If step 125 is YES, the process ends. If step 125 is false, flow proceeds to step 130, where the programming voltage P (n) is increased (e.g., by a fixed step) to the programming voltage P (n +1), and the code PgmCode (n) is updated to the code PgmCode (n + 1). Thereafter, the process returns to step 110 to program the target memory cell with the programming voltage P (n +1) and the programming code PgmCode (n + 1).

In detail, in step 125, determining whether the maximum program voltage has been reached means whether the applied program voltage has reached the maximum program voltage within the program voltage range.

Furthermore, in step 125, "determining whether all memory cells to be programmed have passed program verify" refers to, for example, programming all memory cells of a page, determining whether the respective threshold voltages of all memory cells of the page have been higher than either VR2 or VR 1. If the respective threshold voltages of all memory cells of the page have been higher than either VR2 or VR1, then all memory cells of the page have passed program verification, so flow ends. If the respective threshold voltages of at least one memory cell of the page remain below VR2 and VR1, then the at least one memory cell fails program verification, so flow continues for memory cells that fail program verification to be programmed and verified.

In addition, in fig. 2 and 3, the real verification voltage VR2 is greater than the virtual verification voltage VR1, however, in other possible embodiments of the present disclosure, the real verification voltage VR2 may be less than or equal to the virtual verification voltage VR 1. This is also within the spirit of the present disclosure.

In addition, in step 115 of the flow of fig. 1, the real verification voltage VR2 is used for reading, and then the virtual verification voltage VR1 is used for reading. However, it is within the spirit of the present disclosure that the virtual verification voltage VR1 may be read first and then the real verification voltage VR2 may be read later.

In addition, in the first embodiment of the present disclosure, the difference between the verification voltages VR2 and VR1 may be related to the threshold voltage shift amount caused by the time-dependent shift characteristic.

As described above, to solve the time-dependent drift characteristic of the flash memory, the first embodiment of the present invention can be solved in the manner shown in fig. 1 to 3. Therefore, the implementation is easy to integrate with the existing circuit.

In the first embodiment, the threshold voltage distribution of the memory cell can be more tightly packed by the programming operation of 1P 2V.

second embodiment

Referring now to FIG. 4, therein is shown a flow chart of a method of programming a memory device in accordance with a second embodiment of the present disclosure. Fig. 4 may be applied to a double-level cell (MLC). Steps 405 and 410 are similar to steps 105 and 110 of fig. 1, and thus the description thereof is omitted.

FIG. 5 shows a schematic diagram of a programming sequence according to a second embodiment of the present disclosure. FIG. 6 shows a distribution of the threshold voltage of an MLC. In fig. 6, a range 605 represents an erased state. If the threshold voltage of the memory cell falls within range 605, it represents that the memory cell is programmed to the erased state (storing logic 11). The range 610 represents a first programmed state (programmed state), and if the threshold voltage of the memory cell falls within the range 610, the memory cell is programmed to the first programmed state (storing logic 10). Range 615 represents a second programmed state, and if the threshold voltage of the memory cell falls within range 615, it represents that the memory cell is programmed to the second programmed state (storing a logic 00). The range 620 represents the third programmed state, and if the threshold voltage of the memory cell falls within the range 620, it represents that the memory cell is programmed to the third programmed state (storing a logical 01).

As shown in fig. 5 and fig. 6, in the second embodiment, after the one-time programming voltage P (n) is applied, the verifying voltages VR2_ A, VR1_ A, VR2_ B, VR1_ B, VR2_ C and VR1_ C are applied (i.e., the second embodiment also belongs to 1P 2V). A verify voltage VR2_ A, VR1_ A, for example, can be used to verify whether the threshold voltage of a memory cell falls in range 610. A verify voltage VR2_ B, VR1_ B can be used, for example, to verify whether the threshold voltages of the memory cells fall within range 615. Verify voltage VR2_ C, VR1_ C can be used, for example, to verify whether the threshold voltage of a memory cell falls within range 620.

Of course, the program voltage P (n) is increasing, and the verify voltages VR2_ A, VR1_ A, VR2_ B, VR1_ B, VR2_ C and VR1_ C are fixed.

How to determine the code to be written will be described below. For example, but not limited to, in the 1 st programming, the memory cells are programmed with an initial programming voltage P (0) (n ═ 0) and an initial programming code PgmCode (0), wherein the programming code PgmCode (0) is determined by the data input in step 405.

Next, in step 415, verify voltages VR2_ A and VR1_ A are applied to the target memory cell to read the target memory cell, so as to obtain read data R2_ A and R1_ A.

In step 420, the next program code PgmCode (n +1) | INV (R1_ a) | INV (R2_ a) | PgmCode (n) (i.e., PgmCode (n +1) | { INV (R1_ a) or INV (R2_ a) or PgmCode (n) }, where R1_ a and R2A represent the data read with the verification voltages VR1_ a and VR2_ a, respectively, and INV (R1_ a) and INV (R2_ a) represent the inverse of the data read with the verification voltages VR 5966 _ a and 2_ a, respectively, if pgode (n +1) is logic 1, it represents that the target memory unit has passed the virtual program verification INV 27 _ INV 29 _ B, INV (R3642 _ B), INV 2_ B (R2_ INV _ 2_ C), and R465 _ INV (R2_ C) have the same meaning.

in addition, in the second embodiment of the present application, whether PgmCode (n +1) obtained in step 420 is to be used is determined according to the user data input in step 405. That is, if the user data is 10, which indicates that the memory cell should be programmed to 10 (range 610 of fig. 6), then the obtained PgmCode (n +1) of step 420 can be used to determine the next program code PgmCode (n +1) of the memory cell. Conversely, if the user data is not 10, then the resulting PgmCode (n +1) of step 420 is not used to determine the next code PgmCode (n +1) for the memory cell (i.e., the resulting PgmCode (n +1) of step 420 is skipped).

Similarly, steps 425, 430, 435, and 440 are similar to steps 415 and 420. Similarly, it is determined whether the PgmCode (n +1) obtained in step 430 is to be used according to the user data input in step 405. That is, if the user data is 00, which indicates that the memory cell should be programmed to 00 (range 615 in fig. 6), then the obtained PgmCode (n +1) of step 430 can be used to determine the next program code PgmCode (n +1) of the memory cell. Conversely, if the user data is not 00, then the resulting PgmCode (n +1) of step 430 is not used to determine the next code PgmCode (n +1) for the memory cell (i.e., the resulting PgmCode (n +1) of step 430 is skipped).

Similarly, it is determined whether the PgmCode (n +1) obtained in step 440 is to be used according to the user data input in step 405. That is, if the user data is 01, indicating that the memory cell should be programmed to 01 (range 620 in fig. 6), then the obtained PgmCode (n +1) of step 440 can be used to determine the next program code PgmCode (n +1) of the memory cell. Conversely, if the user data is not 01, then the resulting PgmCode (n +1) of step 440 is not used to determine the next code PgmCode (n +1) for the memory cell (i.e., the resulting PgmCode (n +1) of step 440 is skipped).

steps 445 and 450 are similar to steps 125 and 130 of fig. 1.

Similarly, in fig. 5 and fig. 6, the real verification voltage VR2_ a/VR2_ B/VR2_ C is greater than the virtual verification voltage VR1_ a/VR1_ B/VR1_ C, however, in other possible embodiments of the present invention, the real verification voltage VR2_ a/VR2_ B/VR2_ C may be less than or equal to the virtual verification voltage VR1_ a/VR1_ B/VR1_ C. This is also within the spirit of the present disclosure.

In addition, in steps 415, 425 and 435 of the flow of FIG. 4, the real verification voltage VR2_ A/VR2_ B/VR2_ C is used for reading, and then the virtual verification voltage VR1_ A/VR1_ B/VR1_ C is used for reading. However, it is within the spirit of the present disclosure that the virtual verification voltage VR1_ a/VR1_ B/VR1_ C may be read first and then the real verification voltage VR2_ a/VR2_ B/VR2_ C may be read later.

In the second embodiment, the threshold voltage distributions of the memory cells can be more tightly packed by the programming operation of 1P 2V.

Third embodiment

Referring now to fig. 7, therein is shown a flow chart of a method of programming a memory device in accordance with a third embodiment of the present disclosure. FIG. 7 may be applied to a Triple-level cell (TLC). Steps 705 and 710 are similar to steps 105 and 110 of FIG. 1, and therefore the description is omitted.

FIG. 8 shows a schematic diagram of a programming sequence according to a third embodiment of the present disclosure. FIG. 9 shows the distribution of the threshold voltage of TLC. In FIG. 9, the ranges 905 and 940 represent different states, respectively. For example, if the threshold voltage of a memory cell falls within range 915, it represents that the memory cell is programmed to logic 101, and so on.

As shown in fig. 8 and 9, in the third embodiment, after the one-time programming voltage P (n) is applied, multiple verifying voltages VR2_ A, VR1_ a, VR2_ G and VR1_ G are applied (i.e., the third embodiment also belongs to 1P 2V). Verify voltage VR2_ A, VR1_ a, for example, can be used to verify whether the threshold voltage of a memory cell falls within range 910, and so on.

Of course, the program voltage p (n) is increasing, and the verify voltages VR2_ A, VR1_ a,. ang., VR2_ G and VR1_ G are fixed.

how to determine the code to be written will be described below. For example, but not limited to, in the 1 st programming, the memory cells are programmed with an initial programming voltage P (0) (n ═ 0) and an initial programming code PgmCode (0), wherein the programming code PgmCode (0) is determined by the data input in step 705.

Next, in step 715, verify voltages VR2_ i and VR1_ i (i ═ a-G) are applied to the target memory cell to read the target memory cell, so as to obtain read data R2_ i and R1_ i.

In step 720, the next program code PgmCode (n +1) ═ INV (R1_ i) | INV (R2_ i) | PgmCode (n) (i.e., PgmCode (n +1) { INV (R1_ i) or INV (R2_ i) or PgmCode (n) }, where R1_ i and R2_ i respectively represent the data read with verification voltages VR1_ i and VR2_ i, and INV (R1_ i) and INV (R2_ i) respectively represent the inverse of the data read with verification voltages VR1_ i and VR2_ i, and if PgmCode (n +1) is logic 1, it represents that the target memory cell has passed the virtual program verification.

In the third embodiment, similarly, whether PgmCode (n +1) (i ═ a to G) obtained in step 720 is to be used or not is determined according to the input data, and the details thereof are as described in the second embodiment and will not be described again here. That is, if the user data is 110, which indicates that the memory cell should be programmed to 110 (range 910 of fig. 9), then the obtained PgmCode (n +1) (i ═ a) in step 720 can be used to determine the next program code PgmCode (n +1) of the memory cell, while the remaining pgmcodes (n +1) (i ═ B to G) are not used to determine the next program code PgmCode (n + 1') of the memory cell.

In step 725, it is determined whether i reaches an upper limit (G). If step 725 is false, i is updated in step 730 (i.e., if the previous i was A, it is updated to B, and so on). If step 725 is true, flow continues to step 735. Steps 735 and 740 are similar to steps 125 and 130 of fig. 1.

Similarly, in fig. 8 and 9, the real verifying voltage VR2_ i is greater than the virtual verifying voltage VR1_ i, however, in other possible embodiments of the present disclosure, the real verifying voltage VR2_ i may be less than or equal to the virtual verifying voltage VR1_ i. This is also within the spirit of the present disclosure.

in addition, in step 715 of the flowchart of fig. 7, the real verification voltage VR2_ i is read first, and then the virtual verification voltage VR1_ i is read. However, it is within the spirit of the present disclosure that the virtual verification voltage VR1_ i may be read first and then the real verification voltage VR2_ i may be read later.

In the third embodiment of the present case, the threshold voltage distributions of the plurality of memory cells can be made more compact by the programming operation of 1P 2V.

In addition, the above embodiments also provide: performing a program operation and a program-verify operation on the target memory cell, the program operation and the program-verify operation including: a plurality of program voltages p (n), a plurality of first verify voltages (e.g., VR1, VR1_ a.. VR1_ G, etc.), and a plurality of second verify voltages (e.g., VR2, VR2_ a.. VR2_ G, etc.) are applied to the target memory cell, which are described in detail above and will not be repeated herein.

In summary, although the present invention has been described with reference to the above embodiments, the present invention is not limited thereto. Various modifications and alterations can be made by those skilled in the art without departing from the spirit and scope of the invention. Therefore, the protection scope of the present invention is defined by the claims.

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种存储单元的编程方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!