The present disclosure relates generally to a method of programming a monolithic three-dimensional memory.
Read-write memories are built using transistors whose thresholds can be adjusted. Usually two different threshold states are used, a programmed state and an erase state. The mechanism to move one transistor from one threshold state to the other is usually Fower-Nordheim tunneling (even if in some cases, channel-hot electron injection is used in one of the two transitions). Since memories usually contain a large number of cells, and since different cells react differently to the programming and erasing operation, the program and erase distributions may be very wide and may not provide a distinction between a worst-case erased cell (at the very top of the erase distribution) and a worst case programmed cell (at the very bottom of the program distribution). It would be desirable to provide algorithms for three-dimensional (3-D) non-volatile memories, such that the program and erase distributions are compacted in order to provide a workable window. While this problem has been faced in connection with conventional Flash-based memories using single crystal two-dimensional (2-D) technology, this problem is even more dramatic in the case of 3-D memories. As an example, with TFT-based, SONOS-type read-write memory, there is intrinsic variation of polycrystalline grain size in the devices and the charge trapping mechanism limits the maximum and minimum threshold that can be achieved by programming or erasing.
Accordingly, there is a need for an improved method of programming and erasing 3-D memories.
The present disclosure is generally directed to a system and method of programming a 3-D memory. In a particular embodiment, the disclosure is directed to a method of programming a monolithic three-dimensional (3-D) memory having a plurality of levels of memory cells above a silicon substrate. The method includes initializing a program voltage and program time interval, selecting a memory cell to be programmed within the three-dimensional memory having the plurality of levels of memory cells, applying a pulse having the program voltage and the program time interval to the selected memory cell, performing a read after write operation with respect to the selected memory cell to determine a measured threshold voltage value; and comparing the measured threshold voltage value to a minimum program voltage. In response to the comparison between the measured threshold voltage value and the minimum program voltage, the method further includes selectively applying at least one subsequent program pulse to the selected memory cell.
In another embodiment, the disclosure is directed to a method of applying a plurality of program pulses to a plurality of memory cells within a monolithic three-dimensional memory having a plurality of levels of memory cells above a silicon substrate. The method includes applying a first program pulse of the plurality of program pulses to a first of the plurality of memory cells, and applying a second program pulse of the plurality of program pulses to a second of the plurality of memory cells while applying the first program pulse to the first of the plurality of memory cells. The first of the plurality of memory cells is located within a first substantially planar level of the three-dimensional memory and the second of the plurality of memory cells is located within a second substantially planar level of the three-dimensional memory. The first program pulse has a different program pulse voltage or time interval than the second program pulse.
In a further embodiment, the disclosure is directed to a method of erasing a block of memory within a monolithic three-dimensional memory device having a plurality of levels of memory cells above a silicon substrate. The method includes initializing an erase pulse with a pulse voltage and a pulse interval, applying the erase pulse to a block of memory, the block of memory including multiple word lines and memory cells, performing a memory operation to determine a measured voltage threshold value for each of the memory cells within the block of memory, determining whether the measured voltage threshold value for each of the memory cells within the block of memory is lower than a maximum voltage erase value, and selectively increasing the pulse voltage or the pulse interval of a subsequently applied erase pulse in response to determining that at least one of the measured voltage threshold values is more than the maximum voltage erase value.
In yet a further embodiment, the disclosure is directed to a method of erasing a block of memory within a monolithic memory having a plurality of planar levels, where each of the plurality of planar levels includes memory cells. The method includes applying a first erase pulse having a first pulse voltage and a first pulse interval to a selected block of a memory array, performing a memory read operation to determine a measured voltage threshold value for each of the plurality of memory cells within the selected block of the memory array, determining whether the measured voltage threshold values for each of the memory cells within the selected block of the memory array is lower than a maximum voltage erase value, and applying a second erase pulse to the selected block of the memory array. The second erase pulse has a second pulse voltage and a second pulse interval. The second erase pulse is applied to the selected block of the memory array in response to determining that at least one of the measured voltage threshold values is more than the maximum voltage erase value. The selected block of the memory array includes multiple word lines and includes a plurality of memory cells within one of the plurality of planar levels. The plurality of memory cells include modifiable conductance switch devices arranged in a plurality of series-connected NAND strings.
Referring to
The controller 102, such as a microprocessor, provides control signals to and retrieves data from a three-dimensional (3-D) monolithic non-volatile memory 110 over an interface 112. In a particular embodiment, the 3-D monolithic non-volatile memory 110 includes a vertically stacked memory array and related circuits, such as regulators, charge pumps, and other associated logic. The three-dimensional (3-D) memory 110 includes a plurality of levels of memory cells above a silicon substrate. In a particular embodiment, the 3-D memory cells include diode elements. In another embodiment, the memory cells include modifiable conductance switch devices arranged in a plurality of series-connected NAND strings. The 3-D memory may include TFT and may be a floating gate or SONOS based read-write non-volatile memory. Further details of various examples of suitable 3-D memory devices are provided in U.S. Pat. No. 6,034,882 and U.S. patent application Ser. Nos.: 09/927,648; 10/335,078; 10/729,831 and 10/335,089, all assigned to the instant assignee and incorporated herein by reference.
The program memory 108 includes memory operation instructions 126. The program memory 108 may be a two-dimensional memory such as a random access memory (RAM), an electrically erasable programmable read only memory (EEPROM), or a read only memory (ROM). Alternately, the program memory may be embedded within a portion of the 3-D memory. The memory operation instructions 126 may be instructions for providing a write or erase command that is executed by controller 102 in order to provide for a specific sequence of control signals communicated over interface 112 for performing a memory operation with respect to a selected memory cell within the three-dimensional non-volatile memory 110. In one embodiment, the sequence of program instructions provides built-in self tests.
During operation, a command is received at the user interface 120, such as from the pad 140, via input interface 122, or from the intra-chip interface 124. In a particular embodiment, the command is decoded at the user interface and a signal is provided to clock generator 104. The clock generator 104 provides a clocking signal 116 to controller 102. Controller 102 receives a decoded memory operation 132 from the user interface 120 and accesses the program memory 108 based on the decoded memory operation and retrieves and executes a sequence of memory operation instructions 126. In connection with execution of the particular memory operation instructions, a sequence of control signals are provided by the controller 102 over an interface 112 to access and apply pulse signals to the 3-D non-volatile memory 110. The control signals include address data to identify a particular memory cell or a block of memory cells within the 3-D memory 110. In a particular embodiment, the addressed memory cells may be located at a common level or at different levels within the 3-D memory.
Referring to
In a particular illustrative embodiment, the method further includes increasing the program time interval of the subsequent pulse in response to determining that the measured threshold voltage value is below the minimum program voltage, as illustrated at 214. In a particular embodiment, this step of increasing the program time interval is an optional feature of the method. Further, the method may include a step of incrementing a pulse counter associated with application of the subsequent pulse, at 216. A pulse counter, such as counter 106, can be used to count a total number of program pulses that has been applied to the memory cell and to determine when a maximum number of pulses have been applied. An example counter may be coupled to a controller that executes the programming method or may be embedded within the controller.
The pulse counter value may then be compared with a maximum pulse counter threshold, as shown at 218. The program voltage is increased in response to determining that the measured voltage is less than the minimum program voltage, as shown at 220. At some point in applying the sequence of pulses, either the minimum program voltage is reached or the maximum number of pulses is applied. The application of the sequence of pulse signals is then terminated and the method is completed, as shown at 222.
Referring to
The measured voltage threshold for the cell is compared to a minimum program voltage and the pulse counter is compared to a maximum number of pulses, as shown at decision step 310. If the measured voltage is not greater than the minimum program voltage or the pulse counter is not greater than the maximum number of pulses, then processing continues with decision step 312. At decision step 312, the program voltage is compared to a maximum program voltage. When the program voltage exceeds the maximum program voltage available, processing continues to decision step 316. However, when the program voltage does not exceed the maximum program voltage, then the program voltage VPGM is set equal to the previous program voltage plus a voltage program increment, “DV” for “delta voltage”, at 314. The delta voltage is an incremental voltage added to the previously applied voltage to increase the program voltage pulse in a step-wise fashion.
After the program voltage has been incremented, processing continues at decision step 316, where the time interval for the program pulse is compared to a maximum program pulse time interval. When the program pulse time interval does not exceed the maximum, the program voltage and/or the time interval may be increased, as shown at 318 and 320. In an alternative embodiment, the voltage and/or the time interval may be incremented only after a defined number of measurements have failed to exceed the maximum program voltage. In this situation, a change in the program voltage level or the time interval may be performed after a set number of pulses or periodically after a time period. As shown at 322, the pulse counter is incremented to track another applied program pulse and processing then returns for the loop, back to step 306.
Returning again to decision step 310, when either the voltage threshold measurement exceeds the minimum voltage program voltage or the number of pulses exceeds the maximum number of pulses, then the method continues to decision step 330, where the measured pulse count is compared to the maximum number of pulses. When the measured pulse count exceeds the maximum number of pulses, then the memory programming effort has failed, and an on the fly redundancy routine is executed, as shown at 332. When the measured pulse count does not exceed the maximum number of pulses, as determined at 330, then the method is completed and the pulse program has succeeded, as shown at 334. The selected memory cell has been successfully programmed.
In a particular illustrative embodiment, the minimum voltage threshold for a program voltage, VPGM is between 0 volts and 2 volts and in particular example may be 1.3 volts. The program voltage minimum, VPGMIN, may be in a range of 8 to 10 volts, with 9 volts as a particular example. The time interval for a maximum pulse, TPGMAX, is between 5 and 15 microseconds with 10 microseconds as a particular illustrative example. The maximum number of pulses, NPULSEMAX, may range between around 10 to 30 pulses with 20 as an illustrative example. The incremental voltage value DV may vary from around 0.25 volts to 1 volt with 0.5 volts as a particular example. The maximum program voltage, VPGMAX, may have a range from about 12 to 18 volts with 15 volts as a particular example, and the time increment, DT, may vary from 0 to 5 microseconds with 0 as a particular example. When the time increment, DT, is set to 0, all pulses have the same time interval and the time interval is not increased for any of the pulses. The time interval maximum, TPGMAX, may be set in a range between 10 microseconds and 100 microseconds with 10 microseconds as a particular example for implementation. The above illustrative values and ranges are merely examples and do not limit the scope of the present invention in any manner.
In addition, it should be understood that multiple cells can be programmed at the same time. As particular cells get programmed, no further program pulses are provided. Those cells that have not been programmed continue to receive new program pulses.
Referring to
In a particular embodiment, additional memory cells may be programmed using additional pulses and the memory may be a vertically stacked 3-D memory with two or more memory cell levels. In another illustrative embodiment, a third program pulse may be applied to a third of a plurality of memory cells within a third level within the 3-D memory. In a particular example, the first program pulse has an initial voltage value between 8 and 10 volts and subsequent pulses are applied that have a voltage value greater than the initial voltage value up to a maximum voltage value of around 18 volts. The additional program pulses may have an incremental voltage applied to increase from the initial voltage to the maximum voltage in a step-wise fashion. The time interval for an illustrative program pulse may be around 10 microseconds. The above illustrative values and ranges are merely examples and do not limit the scope of the present invention in any manner.
Referring to
Referring to
With the disclosed system, multiple blocks can be erased concurrently. As particular blocks get erased, no further erase pulses are provided to such blocks. Those blocks not erased continue to receive new erase pulses.
Referring to
Referring to decision step 706, it is determined whether all cells in the memory block have a measured voltage threshold value less than a maximum threshold voltage erase value or whether the pulse count is greater than a maximum pulse count. When all cells in the memory block do not have a voltage threshold less than the maximum voltage threshold erase value or the pulse count is not greater than the maximum pulse count then processing continues at decision step 708. In this scenario, the erase voltage is compared to a maximum erase voltage. When the erase voltage is less than the maximum erase voltage then the erase voltage is incremented by DV, as shown at 710. In the event that the erase voltage is greater than the maximum erase voltage then processing continues at decision step 712. The erase pulse time interval is compared to a maximum pulse time interval and if the erase pulse time interval is not greater than the maximum pulse time interval, then an erase voltage and/or time interval for the erase pulse may be incremented, as shown at steps 714 and 716. In addition, the pulse count NPULSE as shown in
Referring again to decision step 706, when all cells in the memory block have measured voltage threshold values less than the maximum erase voltage or when the pulse count has exceeded the maximum pulse count, then processing continues to decision step 720. At this decision step, if the pulse count has exceeded the maximum pulse count, then the erase operation has failed, as shown at 722. With an erase failure, operation processing then is provided to initiate a block redundancy operation. Where the pulse count does not exceed the maximum pulse count at decision step 720, then the erase operation has succeeded, as shown at step 724. Processing is completed since the erase operation has been successfully performed.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.