USPatent applicationPatented

Non-volatile memory device and method for programming non-volatile memory device

Granted 19 Oct 2021 · no office action yet

Assignee: Taiwan Semiconductor Manufacturing Company

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Win-San Khwa · Examiner: Vu A Le · AU 2825 · TC 2800

Application· this page
16/885,288
filed 28 May 2020
Publication
Not published
not published
Patent
US 11,152,066
granted 19 Oct 2021

Life of the application

6 dated events
⤢ drag to zoom20202022202420262028203020322034203620382040ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A non-volatile memory device and a method for programming a non-volatile memory device are provided. The non-volatile memory device includes a memory array and a memory controller. The memory array includes a plurality of memory cells. The memory controller is configured to regulate a programming operation by applying a program pulse generated according to a set pulse and a reset pulse to each of the memory cells. The memory controller determines whether a memory cell resistance of each of the memory cells is within a target range and apply the program pulse to each of the memory cells until the memory cell resistances of all of the memory cells are within the target range.

Description

8 parts
›BACKGROUND

Non-volatile memory device is commonly used to store the data. The data may be programmed into the non-volatile memory device by applying a plurality of voltage pulses to the non-volatile memory device by applying a plurality of voltage pulses to the non-volatile memory device. One method of programming the non-volatile memory device is an incremental step pulse programming method, which is also known as ISPP. When programming the non-volatile memory device using the ISPP method, two different pulses, which includes a set pulse and a reset pulse, are used to make a memory cell resistance of the non-volatile memory device be within a target range. The set pulse has small amplitude with long period, and when the set pulse is applied to the non-volatile memory device, a memory cell resistance of the non-volatile memory device decreases. On the other hand, the reset pulse has large amplitude with small period, and when the reset pulse is applied to the non-volatile memory device, the memory cell resistance of the non-volatile memory device increases.

By using the ISPP method to program the non-volatile memory device, some memory cells in the non-volatile memory device may be more responsive than other memory cells in the non-volatile memory device. Therefore, variation in the memory cells results in the memory cell resistance of all of the memory cells in the non-volatile memory device not achieving the target range at the same time. As such, some memory cells, which are more responsive, needs to wait until all the memory cells in the non-volatile memory device reaches the target range. Accordingly, programming the non-volatile memory device is slow and inefficient.

Along with the requirement of fast and efficient programming in the non-volatile memory device, it is desirable to develop the non-volatile memory device in this technical field.

›BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.

FIG. 1 illustrates a block diagram of a non-volatile memory device according to an exemplary embodiment of the disclosure.

FIG. 2 illustrates a program pulse for a non-volatile memory device according to an exemplary embodiment of the disclosure.

FIG. 3 illustrates a flowchart for programming a non-volatile memory device according to an exemplary embodiment of the disclosure.

FIG. 4 illustrates a flowchart for programming a non-volatile memory device according to another exemplary embodiment of the disclosure.

FIG. 5 illustrates a flowchart for programming a non-volatile memory device according to another exemplary embodiment of the disclosure.

FIG. 6 illustrates a flowchart for programming a non-volatile memory device according to yet another exemplary embodiment of the disclosure.

FIG. 7 illustrates a flowchart for programming a non-volatile memory device according to yet another exemplary embodiment of the disclosure.

FIG. 8A a memory cell resistance of a plurality of memory cells in the memory array in the non-volatile memory device according to an exemplary embodiment of the disclosure.

FIG. 8B a programming operation in the non-volatile memory device according to an exemplary embodiment of the disclosure.

FIG. 9 illustrates a flowchart for programming a non-volatile memory device according to yet another exemplary embodiment of the disclosure.

FIG. 10 illustrates a flowchart for generating a program pulse for a programming operation in a non-volatile memory device according to yet another exemplary embodiment of the disclosure.

›DESCRIPTION OF THE EMBODIMENTS · 1 of 6

The following disclosure provides many different embodiments, or examples, for implementing different features of the present disclosure. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.

Further, spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. The spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. The apparatus may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein may likewise be interpreted accordingly.

FIG. 1 illustrates a block diagram of a non-volatile memory device according to an exemplary embodiment of the disclosure. Referring to FIG. 1 , the non-volatile memory device 100 includes a memory array 110 and a memory controller 120 .

The non-volatile memory device 100 is, for example, a resistive non-volatile memory device. In some embodiments, the non-volatile memory device is phase-change random access memory (PCRAM).

In some embodiment, the non-volatile memory device 100 is Mask ROM, PROM, EPROM, or EEPROM, and the type of non-volatile memory device 100 is not limited in this disclosure.

The memory array 110 includes a plurality of memory cells arranged at an intersection of a plurality of rows (also known as word lines WL) and a plurality of columns (also known as bit lines BL).

The memory controller 120 is configured to regulate a programming operation by applying a program pulse to each of the memory cells. The program pulse is a voltage pulse with an amplitude with M number of steps, where M is a positive integer. The program pulse is generated according to a set pulse and a reset pulse. The memory controller 120 also regulates an erasing operation and a reading operation in addition to the programming operation.

In some embodiments, the program pulse is a current pulse, thus the type of the program pulse applied in the programming operation is not limited in this disclosure.

The memory controller 120 determines a memory cell resistance R CELL of each of the memory cells in the memory array 110 with a target range and applies a program pulse to each of the memory cells in the memory array 110 . The target range of the non-volatile memory device 100 is in the range of 20 Kohm to 5 Mohm. In specific, the memory controller 120 determines whether the memory cell resistance R CELL of each of the memory cells falls within an error margin of the target resistance, that is, the target range.

In one example, the error margin of the target resistance is 10% of the target resistance.

In another example, the error margin of the target resistance is a predetermined range and is determined by a user or an external device. It is noted that, the error margin of the target resistance is not limited in the disclosure.

In some embodiments, when the memory cell resistance R CELL of each of the memory cells is greater than the target range, the memory controller 120 applies the program pulse to the memory cells in the memory array 110 . In other words, the program pulse behaves as a set pulse, which results in decreasing the memory cell resistance R CELL of the memory cells in the memory array 110 .

On the other hand, when the memory cell resistance R CELL of each of the memory cells in the memory array 110 are within the target range, the memory controller 120 stops applying the program pulse to the memory cells in the memory array 110 .

Moreover, when the memory cell resistance R CELL of each of the memory cells is less than the target range, the memory controller 120 applies the program pulse to the memory cells in the memory array 110 . In other words, the program pulse behaves as a reset pulse in this condition, which results in decreasing the memory cell resistance R CELL of the memory cells in the memory array 110 .

FIG. 2 illustrates a program pulse for a non-volatile memory device according to an exemplary embodiment of the disclosure. In FIG. 2 , the horizontal axis illustrates the time and the vertical axis illustrates a programming current I PGM corresponding to a program pulse.

In FIG. 2 , a set pulse 211 having N steps (N=8) is shown, in which the number of steps in the set pulse 211 is an example and the amplitude of the set pulse 211 is corresponding to the programming current I PGM .

In some embodiments, the number of steps N in the set pulse 211 is not limited.

Referring to FIG. 2 , a reset pulse 212 with one step is shown and the amplitude of the reset pulse 212 is greater than the amplitude of the set pulse 211 . In other words, the set pulse 211 has small amplitude with long period. On the other hand, the reset pulse 212 has large amplitude with small period.

With reference to FIG. 1 , when the set pulse 211 is applied to a plurality of memory cells in a memory array 110 , the memory cell resistance R CELL decreases. On the contrary, when the reset pulse 212 is applied to the memory cells in the memory array 110 , the memory cell resistance R CELL increases.

›DESCRIPTION OF THE EMBODIMENTS · 2 of 6

In FIG. 2 , the set pulse 211 corresponds to N steps while the program pulse 213 corresponds N/2 steps, and an amplitude of the program pulse 213 is between an amplitude of the set pulse 211 and an amplitude of the reset pulse 212 . In some embodiments, the program pulse 213 includes a portion of a plurality of steps in the set pulse 211 and an amplitude of the program pulse 213 is between an amplitude of the set pulse 211 and an amplitude of the reset pulse 212 . In another aspect, the program current I PGM corresponds to the program pulse 213 is adjusted. The difference between a plurality of program currents of the plurality of steps in the program pulse is equal to a ratio of a program current of the set pulse 211 to a number of the steps in the set pulse 211 . That is, the difference between the program currents of the plurality of the steps is determined as ΔI=I PGM /N.

FIG. 3 illustrates steps for programming a non-volatile memory device 100 as shown in FIG. 1 . In step S 301 , the memory controller 120 is configured to regulate a programming operation by applying a program pulse to each of a plurality of memory cells in the memory array 110 .

In step S 302 , the memory controller 120 respectively checks whether a memory cell resistance R CELL of each of the memory cells in the memory array 110 is within a target range.

When the memory cell resistance R CELL of the memory cell in the memory array 110 is greater than the target range, the memory controller 120 applies the program pulse 213 with reference to FIG. 2 , to the memory cells in step S 303 . During this period, the program pulse 213 behaves as a set pulse 211 with reference to FIG. 2 . In other words, the memory cell resistance R CELL of the memory cells decreases by applying the program pulse 213 during this period.

On the other hand, when the memory cell resistance R CELL of the memory cells in the memory array 110 is within the target range, in step S 304 , the memory controller 120 stops applying the program pulse 213 to the memory cells.

When the memory cell resistance R CELL of each of the memory cells is less than the target range, in step S 305 , the memory controller 120 applies the program pulse to the memory cells in the memory array 110 . During this period, the program pulse 213 behaves as a reset pulse 212 with reference to FIG. 2 . In other words, the memory cell resistance R CELL of the memory cells increases by applying the program pulse 213 . It is noted that, the same pulse (i.e. the program pulse) is applied to the memory cells in the memory array 110 instead of applying the set pulse and the reset pulse in the programming operation in the memory cells.

In step S 306 , the memory controller 120 determines whether all of the memory cells in the memory array 110 are checked. It is noted that, checking each of the memory cells in the memory array 110 is comparing each of the memory cell resistance R CELL of the memory cell with the target range. If there is a memory cell in the memory array 110 not checked, the programming operation return to step S 302 . If all of the memory cells in the memory array 110 are checked, the programming operation proceeds to step S 307 .

In step S 307 , the memory controller 120 determines whether the memory cell resistances of all of the memory cells in the memory array 110 are fallen within the target range. If the memory cell resistances of all of the memory cells in the memory array 110 are fallen within the target range, the memory controller 120 finishes the programming operation in the memory device 100 in step S 309 . On the other hand, if there are memory cells in the memory array 110 having memory cell resistances not fallen within the target range, the memory controller 120 performs the next programming operation on the memory device 100 in step S 308 and returns the programming operation to step S 302 .

FIG. 4 illustrates steps for programming a non-volatile memory device 100 as shown in FIG. 1 . In step S 401 , the memory controller 120 determines at least one memory cell in the memory array 110 is in a high resistance state, which is also known as the HRS state. If the memory cell is in the HRS state, the memory controller 120 performs a programming operation, by applying a program pulse 213 , with reference to FIG. 2 to the memory cell in step S 402 .

During the programming operation, the memory controller 120 compares a memory cell resistance R CELL of the memory cell with a lower resistance threshold R TH,LOWER , in step S 403 . If the memory cell resistance R CELL is less than R TH,LOWER , the memory controller 120 determines whether the memory cell reaches the maximum program strength in step S 405 . If the memory cell does not reach the maximum program strength, the memory controller increases the program strength by applying the program pulse 213 to the memory cell in step S 406 and returns the programming operation to step S 402 .

On the other hand, if the memory cell resistance R CELL is not smaller than R TH,LOWER , the memory controller 120 proceeds to a next step by comparing the memory cell resistance R CELL with a upper resistance threshold R TH,UPPER in step S 404 . If the memory cell resistance R CELL is greater than the R TH,UPPER , the memory controller 120 proceeds to step S 405 . On contrary, if the memory cell resistance R CELL is not greater than the R TH,UPPER , the memory controller stops performing the programming operation on the memory cell in the memory array 120 .

If it is determined the memory cell reaches the maximum program strength in step S 405 , the memory controller 120 determines whether the memory cell reaches the maximum iteration in the programming operation in step S 407 . If the memory cell reaches the maximum iteration, then the memory controller 120 stops performing the programming operation on the memory cell in the memory array 120 . On the other hand, if the memory cell does not reach the maximum iteration, the memory controller 120 resets the programming operation in the memory device 100 in step S 408 . In other words, memory controller 120 starts the programming operation with the weaker strength, increases the iteration counter for the memory cell in the memory array 110 and returns back to step S 401 .

›DESCRIPTION OF THE EMBODIMENTS · 3 of 6

FIG. 5 illustrates steps included in programming a non-volatile memory device 100 as shown in FIG. 1 . With reference to FIG. 5 , the steps S 501 and S 502 are respectively similar to steps S 401 and S 402 in FIG. 4 , thus the detailed descriptions of steps S 501 and S 502 are omitted herein.

During the programming operation, the memory controller 120 compares a memory cell resistance R CELL of the memory cell with a lower resistance threshold R TH,LOWER , in step S 503 . If the memory cell resistance R CELL is not greater than the R TH,LOWER , the memory controller 120 determines whether the memory cell reaches the maximum program strength in step S 505 . If the memory cell does not reach the maximum program strength, the memory controller increases the program strength by applying the program pulse 213 , with reference to FIG. 2 to the memory cell in step S 506 and returns the programming operation to step S 502 .

On the other hand, if the memory cell resistance R CELL is greater than the R TH,LOWER , the memory controller 120 proceeds to a next step by comparing the memory cell resistance R CELL with a upper resistance threshold R TH,UPPER in step S 504 . If the memory cell resistance R CELL is not less than the R TH,UPPER , the memory controller 120 proceeds to step S 505 . On contrary, if the memory cell resistance R CELL is less than the R TH,UPPER , the memory controller stops performing the programming operation on the memory cell in the memory array 120 .

If it is determined the memory cell reaches the maximum program strength in step S 505 , the memory controller 120 determines whether the memory cell reaches the maximum iteration in the programming operation in step S 507 . If the memory cell reaches the maximum iteration, then the memory controller 120 stops performing the programming operation on the memory cell in the memory array 120 . On the other hand, if the memory cell does not reach the maximum iteration, the memory controller 120 resets the programming operation in the memory device 100 in step S 508 . In other words, memory controller 120 starts the programming operation with the weaker strength, increases the iteration counter for the memory cell in the memory array 110 and returns back to step S 501 .

FIG. 6 illustrates steps for programming a non-volatile memory device 100 as shown in FIG. 1 . With reference to FIG. 6 , the steps S 601 and S 602 are respectively similar to steps S 401 and S 402 in FIG. 4 , thus the detailed description of steps S 601 and S 602 are omitted herein.

During the programming operation, the memory controller 120 compares a memory cell resistance R CELL of the memory cell with a upper resistance threshold R TH,UPPER , in step S 603 . If the memory cell resistance R CELL is greater than the R TH,UPPER , the memory controller 120 determines whether the memory cell reaches the maximum program strength in step S 605 . If the memory cell does not reach the maximum program strength, the memory controller increases the program strength by applying the program pulse 213 , with reference to FIG. 2 to the memory cell in step S 606 and returns the programming operation to step S 602 .

On the other hand, if the memory cell resistance R CELL is not greater than the R TH,UPPER , the memory controller 120 proceeds to a next step by comparing the memory cell resistance R CELL with a lower resistance threshold R TH,LOWER in step S 604 . If the memory cell resistance R CELL is less than the R TH,LOWER , the memory controller 120 proceeds to step S 605 . On contrary, if the memory cell resistance R CELL is not less than the R TH,LOWER , the memory controller stops performing the programming operation on the memory cell in the memory array 120 .

If it is determined the memory cell reaches the maximum program strength in step S 605 , the memory controller 120 determines whether the memory cell reaches the maximum iteration in the programming operation in step S 607 . If the memory cell reaches the maximum iteration, then the memory controller 120 stops performing the programming operation on the memory cell in the memory array 120 . On the other hand, if the memory cell does not reach the maximum iteration, the memory controller 120 resets the programming operation in the memory device 100 in step S 608 . In other words, memory controller 120 starts the programming operation with the weaker strength, increases iteration counter for the memory cell in the memory array 110 and returns back to step S 601 .

FIG. 7 illustrates steps for programming a non-volatile memory device 100 as shown in FIG. 1 . With reference to FIG. 7 , the steps S 701 and S 702 are respectively similar to steps S 401 and S 402 in FIG. 4 , thus the detailed description of steps S 701 and S 702 are omitted herein.

During the programming operation, the memory controller 120 compares a memory cell resistance R CELL of the memory cell with a upper resistance threshold R TH,UPPER , in step S 703 . If the memory cell resistance R CELL is not less than the R TH,UPPER , the memory controller 120 determines whether the memory cell reaches the maximum program strength in step S 705 . If the memory cell does not reach the maximum program strength, the memory controller increases the program strength by applying the program pulse 213 , with reference to FIG. 2 to the memory cell in step S 706 and returns the programming operation to step S 702 .

On the other hand, if the memory cell resistance R CELL is less than the R TH,UPPER , the memory controller 120 proceeds to a next step by comparing the memory cell resistance R CELL with a lower resistance threshold R TH,LOWER in step S 704 . If the memory cell resistance R CELL is not greater than the R TH,LOWER , the memory controller 120 proceeds to step S 705 . On contrary, if the memory cell resistance R CELL is greater than the R TH,LOWER , the memory controller stops performing the programming operation on the memory cell in the memory array 120 .

If it is determined the memory cell reaches the maximum program strength in step S 705 , the memory controller 120 determines whether the memory cell reaches the maximum iteration in the programming operation in step S 707 . If the memory cell reaches the maximum iteration, then the memory controller 120 stops performing the programming operation on the memory cell in the memory array 120 . On the other hand, if the memory cell does not reach the maximum iteration, the memory controller 120 resets the programming operation in the memory device 100 in step S 708 . In other words, memory controller 120 starts the programming operation with the weaker strength, increases the iteration counter for the memory cell in the memory array 110 and returns back to step S 701 .

›DESCRIPTION OF THE EMBODIMENTS · 4 of 6

FIG. 8A illustrates a variation of memory cell resistances of memory cells in a non-volatile memory device according to an exemplary embodiment of the disclosure. In FIG. 8A , the horizontal axis illustrates a program pulse while the vertical axis illustrates the memory cell resistances R CELL of the memory cells in the memory array corresponding to a program pulse.

In this embodiment, two memory cells cell- 1 and cell- 2 are used to compare the memory cell resistance R CELL of the memory cells corresponding to the program pulse 213 , with reference to FIG. 2 . It is noted that, the cell- 1 is more responsive to the program pulse 212 than the cell- 2 . In other words, by applying the same program pulse to the cell- 1 and the cell- 2 , the cell- 1 is more responsive to reach a target range than the cell- 2 . In detail, when the program pulse 213 is applied to the cell- 1 and the cell- 2 , the variation curve 801 of the memory cell resistance corresponding to the cell- 1 is more responsive than the variation curve 802 of the memory cell resistance corresponding to the cell- 2 .

It is noted that the behavior of the variation curve 801 and the variation curve 802 , shows that when the program pulse 213 is applied to the cell- 1 and the cell- 2 , the memory cell resistance R CELL decreases at first, which behaves as a set pulse 211 . Then, the memory cell resistance R CELL increases with respect to the program pulse 213 . In other words, during this period, the program pulse 213 behaves as a reset pulse 212 . It is noted that, the variation curve 801 and the variation curve 802 is a u-shape curve. In specific, the variation curve 801 and the variation curve 802 decreases at first and then increases with respect to the program pulse 213 .

FIG. 8B illustrates a programming operation in memory cells in a memory array according to an exemplary embodiment of the disclosure. Referring to FIG. 1 , two memory cells cell- 1 , cell- 2 are used to determine the programming operation in the memory array 110 in this embodiment. It is noted that, the cell- 1 is more responsive than the cell- 2 . In FIG. 8B , the horizontal axis illustrates a program sequence in the programming operation and the vertical axis illustrates a memory cell resistance R CELL of the memory cells in the memory array corresponding to a program pulse.

With reference to the program sequence in FIG. 8B , during stage S 1 , the memory controller 120 first determines whether the memory cell resistances R CELL of the cell- 1 and the cell- 2 are within a target range. As the memory cell resistances R CELL of the cell- 1 and the cell- 2 are greater than the target range, the memory controller 120 applies a program pulse to the cell- 1 and the cell- 2 . During this stage, the program pulse behaves like a set pulse, which reduces the memory cell resistance R CELL of the cell- 1 and the cell- 2 . It is noted that due to the cell- 1 is more responsive than the cell- 2 , the memory cell resistance R CELL of the cell- 1 goes towards the target range much faster than the memory cell resistance R CELL of the cell- 2 .

During stage S 2 , the memory controller 120 first determines whether the memory cell resistances R CELL of the cell- 1 and the cell- 2 are within the target range. As the determination results shows that the memory cell resistances R CELL of the cell- 1 and the cell- 2 are greater than the target range, the memory controller 120 applies the program pulse 213 , with reference to FIG. 2 to reduce the memory cell resistances R CELL of the cell- 1 and the cell- 2 further to make the memory cell resistances R CELL of the cell- 1 and the cell- 2 close the target range. During this stage, the program pulse also behaves as the set pulse 211 to reduce the memory cell resistances R CELL of the cell- 1 and the cell- 2 .

In stage S 3 , the memory controller 120 first determines whether the memory cell resistances R CELL of the cell- 1 and the cell- 2 are within the target range. As the determination results shows that the memory cell resistances R CELL of the cell- 1 and the cell- 2 are greater than the target range, the memory controller 120 applies the program pulse 213 to reduce the memory cell resistances R CELL of the cell- 1 and the cell- 2 further to make the memory cell resistances R CELL of the cell- 1 and the cell- 2 close the target range. It is noted that the stage S 3 is similar to stage S 2 .

In stage S 4 , the memory controller 120 first determines whether the memory cell resistances R CELL of the cell- 1 and the cell- 2 are within the target range. As the determination results shows that the memory cell resistance R CELL of the cell- 1 is less than the target range and the memory cell resistance R CELL of the cell- 2 is greater than the target range, the memory controller 120 applies the program pulse to the cell- 1 to reduce the decreasing of the memory cell resistance R CELL of the cell- 1 to make the memory cell resistance R CELL of the cell- 1 close to the target range. On the other hand, the memory controller 120 applies the program pulse 213 to the cell- 2 to decrease the memory cell resistance R CELL of the cell- 2 to make the memory cell resistance R CELL of the cell- 2 close to the target range. In other words, the program pulse 213 behaves as a reset pulse 212 in the cell- 1 , thereby reducing the decreasing of the memory cell resistance R CELL of the cell- 1 . On contrary, the program pulse 213 behaves as the set pulse 211 in the cell- 2 , thereby decreasing the memory cell resistance R CELL of the cell- 2 .

In stage S 5 , the memory controller 120 first determines whether the memory cell resistances R CELL of the cell- 1 and the cell- 2 within the target range. As the determination results shows that the memory cell resistance R CELL of the cell- 1 is less than the target range and the memory cell resistance R CELL of the cell- 2 is greater than the target range, the memory controller 120 applies the program pulse to the cell- 1 to increase the memory cell resistance R CELL of the cell- 1 to make the memory cell resistance R CELL of the cell- 1 close to the target range. On the other hand, the memory controller 120 applies the program pulse 213 to the cell- 2 to decrease the memory cell resistance R CELL of the cell- 2 to make the memory cell resistance R CELL of the cell- 2 close to the target range. In other words, the program pulse 213 behaves as a reset pulse 212 in the cell- 1 , thereby increasing the memory cell resistance R CELL of the cell- 1 . On contrary, the program pulse 213 behaves as the set pulse 211 in the cell- 2 , thereby decreasing the memory cell resistance R CELL of the cell- 2 .

›DESCRIPTION OF THE EMBODIMENTS · 5 of 6

After the memory controller 120 applies the program pulse 213 respectively to the cell- 1 and the cell- 2 , both the memory cell resistances R CELL of the cell- 1 and the cell- 2 finally reach the target range. It is noted that the memory controller 120 keeps applying the program pulse 213 to the cell- 1 and the cell- 2 until the memory cell resistances R CELL of the cell- 1 and the cell- 2 reach the target range. By applying the same program pulse 213 to the memory cells in the memory array 110 , a waiting time of the memory cells in the non-volatile memory device 100 to reach the target range is avoided, and therefore the programming operation in the non-volatile memory device 100 is improved and the efficiency is enhanced.

FIG. 9 illustrates a method for programming a non-volatile memory device comprising a plurality of memory cells and a memory controller, the method includes following steps:

In step S 901 , the memory controller 120 selects at least one of the memory cells in the memory array 110 with reference to FIG. 1 .

In step S 902 , the memory controller 120 performs a programming operation on the memory cells by applying a program pulse 213 generated according to a set pulse and a reset pulse to each of the memory cells.

In step S 903 , the memory controller 120 determines whether a memory cell resistance R CELL of each of the memory cells is within a target range. In other words, the memory controller 120 compares the memory cell resistance R CELL of each of the memory cells in the memory array 110 with the target range.

Based on the determination result, in step S 904 , the memory controller 120 applies the program pulse 213 , with reference to FIG. 2 to each of the memory cells until the memory cell resistances R CELL of all of the memory cells are within the target range.

By applying the same program pulse 213 to the memory cells in the memory array 110 , waiting time of the memory cells in the non-volatile memory device 100 to reach the target range is avoided, and therefore the programming operation in the non-volatile memory device 100 is improved and the efficiency is enhanced.

FIG. 10 illustrates a flowchart of a method for generating a program pulse for a programming operation in a non-volatile memory device, the method includes following steps:

In step S 1001 , the memory controller 120 determines a plurality of steps in the program pulse from a plurality of steps in a set pulse.

In step S 1002 , the memory controller 120 determines an amplitude of the program pulse to be between an amplitude of the set pulse and an amplitude of a reset pulse with reference to FIG. 2 .

In step S 1003 , the memory controller 120 determines a program current corresponding to each of the steps in the program pulse. In some embodiments, a difference between a plurality of program currents of the plurality of steps in the program pulse is equal to a ratio of a program current of the set pulse to a number of the steps in the set pulse. That is, the difference between the program currents ΔI of the plurality of the steps is determined as ΔI=I PGM /N.

In step S 1004 , the memory controller 120 generates the program pulse according to the determined steps, the determined amplitude and the determined program current. In some embodiments, the memory controller 120 generates the program pulse 213 by adjusting the program pulse 213 to be between the set pulse 211 and the reset pulse 212 with reference to FIG. 2 , in which the set pulse 211 corresponds to N steps, and the program pulse 213 corresponds to N/2 steps.

By determining the program pulse in the programming operation of the non-volatile memory device instead of using the set pulse and the reset pulse to decrease or increase the memory cell resistances of the memory cells, waiting time of the memory cells in the non-volatile memory device to reach the target range is avoided.

In accordance with some embodiments, the non-volatile memory device that includes a memory array and a memory controller is introduced. The memory array includes a plurality of memory cells. The memory controller is configured to regulate a programming operation by applying a program pulse generated according to a set pulse and a reset pulse to each of the memory cells. The memory controller determines whether a memory cell resistance of each of the memory cells is within a target range and apply the program pulse to each of the memory cells until the memory cell resistances of all of the memory cells are within the target range.

In accordance with some embodiments, a method for programming a non-volatile memory device that includes a plurality of memory cells and a memory controller is provided, and the method includes the steps of: selecting at least one of the memory cells in a memory array; performing a programming operation on the memory cells by applying a program pulse generated according to a set pulse and a reset pulse to each of the memory cells; determining whether a memory cell resistance of each of the memory cells is within a target range; and applying the program pulse to each of the memory cells until the memory cell resistances of all of the memory cells are within the target range.

In accordance with some embodiments, a method of generating a program pulse for a programming operation in a non-volatile memory device is provided, and the method includes the steps of: determining a plurality of steps in the program pulse from a plurality of steps in a set pulse; determining an amplitude of the program pulse to be between an amplitude of the set pulse and an amplitude of a reset pulse; determining a program current corresponding to each of the steps in the program pulse, wherein a difference between the program currents of the steps in the program pulse is equal to a ratio of a program current of the set pulse to a number of the steps in the set pulse; and generating the program pulse according to the determined steps, the determined amplitude and the determined program current.

›DESCRIPTION OF THE EMBODIMENTS · 6 of 6

The foregoing has outlined features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions and alterations herein without departing from the spirit and scope of the present disclosure.

Claims as granted

20 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

2 codes
IPC · International Patent Classification
Section G — Physics
  • G11C13/00
  • G11C11/00

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomApr 2020Jul 2020Oct 2020Jan 2021Apr 2021Jul 2021Oct 2021USPTOApplicantNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
1.4 y
509 days filing → grant
Office actions
0
none on record
Examiner
Vu A Le
art unit 2825 · TC 2800
Citations: 2 back · 1 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20202022202420262028203020322034203620382040Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock