VERIFY SCHEME FOR ReRAM
Circuitry coupled to a programmable element comprising metal oxide is configured to execute a program-verify operation including: an initial cycle of a program operation and a verify operation, and subsequent cycles. The initial cycle includes an initial instance of the program operation to establish a cell resistance of the programmable element, and an initial instance of the verify operation to determine whether the cell resistance of the memory cell is within the target resistance range. At least one of the subsequent cycles includes an additional pulse having a second polarity to the programmable element, and a subsequent instance of the verify operation. The first polarity of the initial program pulse and the second polarity of the additional pulse have opposite polarities. A subsequent instance of the program operation includes applying a subsequent program pulse having the first polarity to the programmable element.
Latest MACRONIX INTERNATIONAL CO., LTD. Patents:
- 3D MEMORY DEVICE AND METHOD OF FORMING SEAL STRUCTURE
- Memory device and operating method thereof
- Analog content addressable memory device, analog content addressable memory cell and method for data searching and comparing thereof
- Manufacturing method of memory device
- Memory device with vertically separated channels
This application claims the benefit of U.S. Provisional Patent Application No. 62/161,112 filed 13 May 2015. The application is incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to high density memory arrays based on RRAM devices, and particularly relates to a verify scheme for such devices.
2. Description of Related Art
Resistive random access memory (RRAM) is a type of nonvolatile memory that includes metal oxide material which changes resistance between two or more stable resistance ranges by application of electrical pulses at levels suitable for implementation in integrated circuits. The resistance can be read and written via random access. The access lines coupled to the memory cells are connected to circuitry to perform operations, such as SET and RESET operations, which change the state of the memory element in order to store or erase data.
If the data is not stored successfully, the conventional approach then strengthens the operation conditions, such as greater amplitude and/or longer pulse duration. Such stronger operation conditions, however, stress and damage the memory element, which makes the device less reliable over repeated use.
It is desirable to provide a new verification scheme for RRAMs to reduce stress and damage to the memory element.
SUMMARYIn various embodiments of the technology, after a program verify operation fails, follow-on pulses do not have to increase in amplitude for successful programming. Because the amplitude does not have to increase, the memory devices undergo less stress and are more reliable. In various embodiments of the technology, after a program verify operation fails, a pulse with a polarity opposite to the polarity of the program pulse is applied after the failed program verify operation and prior to the subsequent program pulse.
One aspect of the technology is an integrated circuit, comprising a programmable element comprising metal oxide, and circuitry coupled to the programmable element and configured to execute a program-verify operation.
The program-verify operation includes (i) an initial cycle of a program operation and a verify operation, and then (ii) subsequent cycles of the program operation and the verify operation, responsive to the cell resistance of the programmable element not being within the target resistance range after the initial cycle.
The initial cycle of the program operation and the verify operation includes an initial instance of the program operation to establish a cell resistance of the programmable element. The initial instance of the program operation includes applying an initial program pulse having a first polarity to the programmable element cell. Then the initial cycle includes an initial instance of the verify operation to determine whether the cell resistance of the programmable element is within a target resistance range.
The subsequent cycles of the program operation and the verify operation, are iterated until the cell resistance of the programmable element is within the target resistance range. At least one of the subsequent cycles includes an additional pulse having a second polarity to the programmable element. The first polarity of the initial program pulse and the second polarity of the additional pulse have opposite polarities. The subsequent cycle(s) include a subsequent instance of the program operation including applying a subsequent program pulse having the first polarity to the programmable element. Then the subsequent cycle(s) include a subsequent instance of the verify operation to determine whether the cell resistance of the programmable element is within the target resistance range.
In some embodiments of the integrated circuit, the subsequent cycles of the program operation and the verify operation, are iterated until the cell resistance of the programmable element memory cell is within the target resistance range or a maximum number is performed of cycles of the program operation and the verify operation.
In some embodiments of the integrated circuit, the initial program pulse and the subsequent program pulse are reset pulses. In some embodiments of the integrated circuit, the initial program pulse and the subsequent program pulse are set pulses.
In some embodiments of the integrated circuit, a first magnitude of the initial program pulse is at least as large as later magnitudes of program pulses of the program operation of the subsequent cycles.
In some embodiments of the integrated circuit, another program operation includes another initial cycle of the program operation and the verify operation followed by further subsequent cycles of the program operation and the verify operation.
In some embodiments of the integrated circuit, a cumulative pass rate of the program operation after at least one of the subsequent cycles exceeds 97%.
In some embodiments of the integrated circuit, the programmable element has a programmable resistance.
Another aspect of the technology is an integrated circuit, comprising an array of memory cells and programmable elements comprising metal oxide, and circuitry coupled to the memory cells in the array. The circuitry is configured to execute a program-verify operation on at least a first memory cell in the array, as disclosed herein.
In some embodiments of the integrated circuit, a first subset of the array of memory cells is programmed to within the target resistance range after only the initial cycle of the program operation and the verify operation, and a second subset of the array of memory cells is programmed to within the target resistance range after the initial cycle of the program operation and the verify operation and at least one of the subsequent cycles of the program operation and the verify operation. A first mean resistance of the first subset of the array of memory cells is at least as large as a second mean resistance of the second subset of the array of memory cells.
In some embodiments of the integrated circuit, a first resistance distribution results from the program-verify operation being performed on the memory cells in the array with reset pulses, and a second resistance distribution results from the program-verify operation being performed on the memory cells in the array with set pulses. An open resistance window separates a lower 99.5% of the first resistance distribution and a lower 99.5% of the second resistance distribution. In some embodiments, this open resistance window occurs despite an overlap between the first resistance distribution and the second resistance distribution after only the initial cycle of the program operation and the verify operation.
In some embodiments of the integrated circuit, despite a first magnitude of the initial program pulse is at least as large as later magnitudes of program pulses of the program operation of the subsequent cycles, a cumulative pass rate for the memory cells in the array increases with an additional one of the subsequent cycles of the program operation and the verify operation.
Yet another aspect of the technology is a method, comprising:
-
- executing a program-verify operation on at least a first memory cell comprising a programmable element comprising metal oxide in a memory array of an integrated circuit, including: (i) performing an initial cycle of a program operation and a verify operation, and (ii) performing subsequent cycles of the program operation and the verify operation, as disclosed herein.
A selected memory cell undergoes multiple cycles of programming reset and verify operations. In each cycle, a programming reset operation occurs, followed by a verify operation which reads the selected memory cell.
With the shown graph, four cycles of programming reset and verify operations are shown as 2, 4, 6, and 8. With each subsequent cycle, the magnitude of the programming reset pulse increases after a failed verify, to perform incremental step pulse programming (ISPP). The programming pulse names RESET1, RESET2, RESET3, and RESET4 indicate the increasing magnitudes. A positive slope trend line 10 connects the tops of the programming pulses, indicating the increasing magnitudes.
An initial cycle includes RESET1 programming operation pulse 12 followed by verify operation 22. After the initial cycle fails programming, a subsequent cycle includes opposite polarity pulse 24, RESET1 programming operation pulse 14, and then verify operation 26. After the subsequent cycle fails programming, another subsequent cycle includes opposite polarity pulse 28, RESET1 programming operation pulse 16, and then verify operation 30. The same programming pulse name RESET1 indicates the nonincreasing magnitudes of the programming pulses. The flat trend line 20 connects the tops of the programming pulses, indicating the nonincreasing magnitudes. In the shown embodiment, a single opposite polarity pulse is shown. In other embodiments, multiple opposite polarity pulses can precede the subsequent program pulse.
An initial cycle includes SET1 programming operation pulse 32 followed by verify operation 42. After the initial cycle fails, a subsequent cycle includes opposite polarity pulse 44, SET1 programming operation pulse 34, and then verify operation 46. After the subsequent cycle fails, another subsequent cycle includes opposite polarity pulse 48, SET1 programming operation pulse 36, and then verify operation 50. The same programming pulse name SET1 indicates the nonincreasing magnitudes for the programming pulses. The flat trend line 40 connects the tops of the programming pulses, indicating the nonincreasing magnitudes of the programming pulses. In the shown embodiment, a single opposite polarity pulse is shown. In other embodiments, multiple opposite polarity pulses can precede the subsequent program pulse.
In
In
In one embodiment, the initial reset pulse and subsequent reset pulses are a bias in a range of 1.2 V to 5 V, for example 2.3 V, applied to the bit line 122 of
In another embodiment, the initial set pulse and subsequent set pulses are in a range from 40 to 350 microamperes, such as 126 microamperes, in a range from 10 nanoseconds to 10 microseconds, for example about 800 nanoseconds. The opposite polarity pulse has an example bias of 2.3 V applied to the bit line 122 of
In various embodiments, the pulse amplitude and width can be modulated to optimize the resistance distribution. Also, the reverse pulse magnitude can be smaller in order to reduce the device stress. For example in RESET1, the pulse amplitude or width of the programming operation pulse 12 could be larger, equal or smaller than the pulse amplitude or width of the programming operation pulse 14. Likewise, the pulse amplitude or width of the programming operation pulse 32 could be larger, equal or smaller than the pulse amplitude or width of the programming operation pulse 34 in SET1.
The memory element can comprise materials such as a metal oxide, including tungsten oxide (WOx), hafnium oxide (HfOx), titanium oxide (TiOx), tantalum oxide (TaOx), titanium nitride oxide (TiNO), nickel oxide (NiOx), ytterbium oxide (YbOx), aluminum oxide (AlOx), niobium oxide (NbOx), zinc oxide (ZnOx), copper oxide (CuOx), anadium oxide (VOx), molybdenum oxide (MoOx), ruthenium oxide (RuOx), copper silicon oxide (CuSiOx), silver zirconium oxide (AgZrO), aluminum nickel oxide (AlNiO), aluminum titanium oxide (AlTiO), gadolinium oxide (GdOx), gallium oxide (GaOx), zirconium oxide (ZrOx), chromium doped SrZrO3,chromium doped SrTiO3, PCMO, or LaCaMnO, etc.
Trace 302 shows the array resistance distribution after one reset programming pulse, without further adjustment of resistance values. Trace 304 shows the array resistance distribution after one set programming pulse, without further adjustment of resistance values. Slight overlap of about 3% exists between the high resistance state following the reset pulse, and the low resistance state following the set pulse.
The traces indicated generally by 310 shows the low resistance state distribution of the array after one set programming pulse, without further adjustment of resistance values. The traces indicated generally by 312 shows the high resistance state distribution of the array after one reset programming pulse, without further adjustment of resistance values. Trace 314 shows the initial resistance distribution of the array. No resistance window exists between the high probability portion of traces 310 and the low probability portion of traces 312. Thus program verify is required to open a resistance windows between the low and high resistance states.
The traces indicated generally by 316 show the low resistance state distribution of the array after set programming. The traces indicated generally by 318 show the high resistance state distribution of the array after reset programming. Trace 320 shows the initial resistance distribution of the array. In trace groups 316 and 318, ISPP increases the strength of programming after each pulse, which stresses the resistive memory element of the memory cells. As a result, the low probability portion of traces 319 shows damage by bending towards the low resistance direction.
The vertical axis with resistance of the reset state is shared between
Many of the figures generally indicate that the resistance of a particular memory cell which results from a particular programming operation is unpredictable. Many of the figures also generally indicate that the resistance distribution of the overall memory array which results from a particular programming operation is predictable.
Accordingly, when program verify indicates a failed programming attempt, the cause is understood to be not so much a defective memory cell, but an unfavorable statistical result. So ISPP with increasing magnitudes of programming pulses is unnecessary, as opposed to applying nonincreasing magnitudes of programming pulses.
In
In
In
Each graph of the resistance distribution in
A lower program verify threshold 402 separates memory cells which pass program verify 408, from memory cells which fail program verify 406. A higher program verify threshold 404 separates memory cells which pass program verify 410, from memory cells which fail program verify 412.
Resistance distribution 414 corresponds to a memory array which undergoes an initial cycle of programming and program verify. Resistance distribution 416 corresponds to a memory array which undergoes a subsequent cycle of programming and program verify. Resistance distribution 416 is composed of the memory cells which fail program verify in resistance distribution 414. Resistance distribution 418 corresponds to a memory array which undergoes another subsequent cycle of programming and program verify. Resistance distribution 418 is composed of the memory cells which fail program verify in resistance distribution 416.
Each resistance distribution in
Traces 430 and 432 show the low resistance state distribution of the array after set programming. Trace 430 shows the low resistance state resistance distribution prior to program verify, and trace 432 shows the low resistance state resistance distribution after program verify. Due to program verify, the high resistance portion of trace 430 is adjusted downwards to below lower program verify threshold 438.
Traces 434 and 436 show the high resistance state distribution of the array after reset programming. Trace 434 shows the high resistance state resistance distribution prior to program verify, and trace 436 shows high low resistance state resistance distribution after program verify. Due to program verify, the low resistance portion of trace 434 is adjusted upwards to above higher program verify threshold 440. The program verify thresholds, or resistance trimming boundaries, are 30 kilohms and 100 kilohms, so the resistance window is 70 kilohms wide.
The left vertical axis shows pass bit number, which indicates the number of memory cells that pass program verify after a particular shot, or cycle of programming and program verify. The left vertical axis supports the bar chart of memory cells which pass program verify after SET and RESET cycles. Bars 450 and 458 show, for set and reset programming respectively, the number of memory cells that pass program verify after shot #1. Bars 452 and 460 show, for set and reset programming respectively, the number of memory cells that pass program verify after shot #2. Bars 454 and 462 show, for set and reset programming respectively, the number of memory cells that pass program verify after shot #3. Bars 456 and 464 show, for set and reset programming respectively, the number of memory cells that pass program verify after shot #4. Because most of the memory cells successful pass verify after a particular shot, each successive shot is applied to fewer and fewer remaining memory cells which have not been programmed successfully yet, as indicated by the decreasing bar heights in the log scale.
The right vertical axis shows the cumulative pass rate after a particular shot, or cycle of programming and program verify. The right vertical axis corresponds to the curves 466 and 468 which are the cumulative pass rates for set and reset shots respectively.
Trace 484 shows the low resistance state distribution of the array after set programming. Due to program verify, the trace 484 is below lower program verify threshold 490. Trace 486 shows the high resistance state distribution of the array after reset programming. Due to program verify, trace 486 is above higher program verify threshold 492. The program verify thresholds, or resistance trimming boundaries 490 and 492 leave a resistance window 494. The resistance window 494 is open tail-to-tail, or for over 99.99% of the array.
A controller 534 implemented in this example, using a bias arrangement state machine, controls the application of bias arrangement supply voltages 536, such as read voltages, program voltages such as set and reset, and program verify voltages such as for set and reset. Controller 534 may be implemented using special-purpose logic circuitry as known in the art. In alternative embodiments, controller 534 comprises a general-purpose processor, which may be implemented on the same integrated circuit to execute a computer program to control the operations of the device. In yet other embodiments, a combination of special-purpose logic circuitry and a general-purpose processor may be utilized for implementation of controller 534.
While the present technology is disclosed by reference to the preferred embodiments and examples detailed herein, it is to be understood that these examples are intended in an illustrative rather than in a limiting sense. It is contemplated that modifications and combinations will readily occur to those skilled in the art, which modifications and combinations will be within the spirit of the technology and the scope of the following claims.
Claims
1. An integrated circuit, comprising:
- a programmable element comprising metal oxide; and
- circuitry coupled to the programmable element, the circuitry configured to execute a program-verify operation including: (i) an initial program-verify cycle including: applying an initial program pulse having a first polarity to the programmable element to establish a cell resistance of the programmable element; and then determining whether the cell resistance of the programmable element is within a target resistance range; and then (ii) subsequent program-verify cycles performed if the cell resistance of the programmable element is not within the target resistance range, iterated until the cell resistance of the programmable element is within the target resistance range, wherein at least one of the subsequent program-verify cycles to establish the cell resistance of the programmable element within the target range includes: applying an opposite polarity pulse having a second polarity to the programmable element, the first polarity and the second polarity having opposite polarities; and applying a subsequent program pulse having the first polarity to the programmable element; and then determining whether the cell resistance of the programmable element is within the target resistance range.
2. The integrated circuit of claim 1, wherein the initial program pulse and the subsequent program pulse are reset pulses.
3. The integrated circuit of claim 1, wherein the initial program pulse and the subsequent program pulse are set pulses.
4. The integrated circuit of claim 1, wherein a first magnitude of the initial program pulse is at least as large as a later magnitude of the subsequent program pulse.
5. The integrated circuit of claim 1, wherein another program-verify operation includes another initial program-verify cycle followed by further subsequent program-verify cycles.
6. The integrated circuit of claim 1, wherein the programmable element has a programmable resistance.
7. The integrated circuit of claim 1, wherein the subsequent program-verify cycles are iterated until the cell resistance of the programmable element is within the target resistance range or a maximum number of program-verify cycles is performed.
8. An integrated circuit, comprising:
- an array of memory cells having programmable elements comprising metal oxide; and
- circuitry coupled to the memory cells in the array, the circuitry configured to execute a program-verify operation on at least a first memory cell in the array, including: (i) an initial program-verify cycle including: applying an initial program pulse having a first polarity to the first memory cell to establish a cell resistance of the memory cell; and then determining whether the cell resistance of the first memory cell is within a target resistance range; and then (ii) subsequent program-verify cycles performed if the cell resistance of the memory cell is not within the target resistance range, the subsequent cycles iterated until the cell resistance of the first memory cell is within the target resistance range, wherein at least one of the subsequent program-verify cycles to establish the cell resistance of the programmable element within the target range includes: applying an opposite polarity pulse having a second polarity to the first memory cell, the first polarity and the second polarity having opposite polarities; and applying a subsequent program pulse having the first polarity to the first memory cell; and then determining whether the cell resistance of the first memory cell is within the target resistance range.
9. The integrated circuit of claim 8, wherein a first subset of the array of memory cells is programmed to within the target resistance range after only the initial program-verify cycle, and
- wherein a second subset of the array of memory cells is programmed to within the target resistance range after the initial program-verify cycle and at least one of the subsequent program-verify cycles, and
- wherein a first mean resistance of the first subset of the array of memory cells is at least as large as a second mean resistance of the second subset of the array of memory cells.
10. The integrated circuit of claim 8, wherein, a first magnitude of the initial program pulse is at least as large as a later magnitude of the subsequent program pulse, and a cumulative pass rate for the memory cells in the array increases with an additional one of the subsequent program-verify cycles.
11. The integrated circuit of claim 8, wherein the initial program pulse and the subsequent program pulse are reset pulses.
12. The integrated circuit of claim 8, wherein the initial program pulse and the subsequent program pulse are set pulses.
13. The integrated circuit of claim 8, wherein a first magnitude of the initial program pulse is at least as large as a later magnitude of the subsequent program pulse.
14. The integrated circuit of claim 8, wherein another program-verify operation includes another initial program-verify cycle followed by further subsequent program-verify cycles.
15. The integrated circuit of claim 8, wherein the memory cells of the array have a plurality of programmable resistances.
16. A method, comprising:
- executing a program-verify operation on at least a first memory cell comprising a programmable element comprising metal oxide in a memory array of an integrated circuit, including: (i) performing an initial program-verify cycle including: applying an initial program pulse having a first polarity to the first memory cell to establish a cell resistance of the first memory cell; and then determining whether the cell resistance of the first memory cell is within a target resistance range; and then (ii) performing subsequent program-verify cycles if the cell resistance of the first memory cell is not within the target resistance range, the subsequent program-verify cycles iterated until the cell resistance of the first memory cell is within the target resistance range, wherein at least one of the subsequent program-verify cycles to establish the cell resistance of the programmable element within the target range includes: applying an opposite polarity pulse having a second polarity to the first memory cell, the first polarity and the second polarity having opposite polarities; and applying a subsequent program pulse having the first polarity to the first memory cell; and then determining whether the cell resistance of the first memory cell is within the target resistance range.
17. The method of claim 16, wherein the initial program pulse and the subsequent program pulse are reset pulses.
18. The method of claim 16, wherein the initial program pulse and the subsequent program pulse are set pulses.
19. The method of claim 16, wherein the first memory cell has a programmable resistance.
20. The method of claim 16, wherein a first magnitude of the initial program pulse is at least as large as a later magnitude of the subsequent program pulse.
21. The integrated circuit of claim 1, wherein the at least one subsequent program-verify cycle includes only one step to determine whether the cell resistance of the first memory cell is within the target range.
22. The integrated circuit of claim 8, wherein the at least one subsequent program-verify cycle includes only one step to determine whether the cell resistance of the first memory cell is within the target range.
23. The method of claim 16, wherein the at least one subsequent program-verify cycle includes only one step to determine whether the cell resistance of the first memory cell is within the target range.
Type: Application
Filed: Oct 7, 2015
Publication Date: Nov 17, 2016
Applicant: MACRONIX INTERNATIONAL CO., LTD. (HSINCHU)
Inventors: YU-YU LIN (Hsinchu), FENG-MIN LEE (HSINCHU)
Application Number: 14/877,740