Adaptive erase methods for non-volatile memory

A method includes an erase of a plurality of blocks of memory cells in which the memory cells within a block are simultaneously erased. The erase of each block of the plurality of blocks is performed using an erase pulse applied multiple times. The erase pulse is applied to the plurality of blocks in parallel. An erase verify is performed after each application of the erase pulse. After a number applications of the erase pulse, it is determined if a condition comprising one of a group consisting of any memory cell has been more erased than a first predetermined amount and any memory cell has been erased less than a second predetermined amount has been met. If the condition has been met, erasing is continued by applying the erase pulse to the block having the memory cell with the condition independently of the other blocks of the plurality of blocks.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates in general to non-volatile memories, and more specifically to a system and method for adaptively erasing non-volatile memory.

2. Description of the Related Art

During a typical erase operation of a non-volatile memory (NVM) block, such as erasable programmable read only memories (EPROMs), electrically erasable programmable read only memories (EEPROMs), block erasable EEPROMs (e.g., “Flash” memories), etc., a pre-program procedure is first performed to raise the threshold voltages of the memory cells of the memory block to a level at or above a program verify voltage. For the erase operation, the pre-program procedure is followed by a Fowler-Nordheim (FN) erase procedure to lower the threshold voltages of the memory cells of the memory block to a level at or below an erase verify voltage. During the conventional FN erase procedure, however, the resulting distribution may include memory cells which have been over erased, which results in increased column leakage. Furthermore, the problem of column leakage increases as the memory cells are further scaled, causing, for example, a subsequent program procedure to fail due to lowered drain bias, or a read procedure to fail since the over-erased memory cells may prevent sense amplifiers from distinguishing between an erased cell and a programmed cell. A soft program procedure may be used after the FN erase procedure to compress the distribution of the erased cells so as to reduce the column leakage.

A memory device is typically addressed by blocks of one or more different sizes. The FN erase procedure may be performed serially on one block at a time, or in parallel on several blocks simultaneously. For small blocks (e.g., blocks with 64 Kbytes or less), the erase operation time is dominated by the FN erase procedure. For large blocks (e.g., blocks with 128 Kbytes or more), the erase operation time is dominated by the soft program procedure. To speed up the erase operation for multiple blocks, if the blocks are always erased in parallel during the FN erase step, there is a risk that the number of over-erased bits will increase resulting in an increase in the amount of time required to soft program, potentially increasing the overall time required for the total erase operation time. However, if selected blocks are always serially erased in the FN erase step, an unnecessarily longer erase time will be required, especially when erasing small blocks.

DETAILED DESCRIPTION

Systems and methods are disclosed that optimize the time required to perform erase operations when memory blocks of different sizes are selected for FN erase followed by soft program to reduce memory device leakage due to over-erased cells resulted from the FN erase procedures. A memory controller or other suitable logic determines whether to perform parallel erase of the blocks or serial erase of the blocks during the FN erase procedure. The decision of whether parallel or serial erase is performed can be based on the size of selected block and the threshold voltage movement of the bits in the selected blocks. The blocks selected for the erase operation may be sorted into clusters of blocks having a predetermined size. Serial FN erase procedure can be used across the different clusters, while the parallel FN erase procedure can be used on the blocks within each cluster. Within each cluster, the threshold voltage movement of the bits in the cluster will be checked to determine if parallel FN erase can continue or switch to serial FN erase on the blocks within each cluster. Adaptively selecting between parallel and serial FN erase procedures within a cluster improves FN erase time without incurring a time penalty for the following soft program procedure and hence improving the total erase operation time.

FIG. 1is a block diagram of an integrated circuit100including a non-volatile memory (NVM)103according to one embodiment. In the illustrated embodiment, the integrated circuit (IC)100may implement a System On Chip (SOC) or the like which includes at least one processor101coupled to the NVM103via an appropriate interface105, such as a bus or the like with multiple signals or bits. The IC100may include other circuits, modules or devices, such as other memory devices (not shown), other functional modules (not shown), and external interfaces, such as input, output or input/output (I/O) ports or pins or the like (not shown). In one alternative embodiment, the NVM103is integrated on the IC100alone without any other devices. In another alternative embodiment, the processor101, NVM103and interface105are part of a larger system on the IC100.

FIG. 2is a more detailed block diagram of the NVM103according to one embodiment coupled to the interface105. The NVM103includes an NVM array201, a row decoder203coupled to the NVM array201, column logic205coupled to the NVM array201, and a NVM controller207coupled to the interface105, the NVM array201, the column logic205, and the row decoder203. The column logic205incorporates a column decoder and sense amplifiers (not shown) and each interface is shown with multiple signals or bits. The NVM controller207controls program and erase procedures of the NVM array201through the row decoder203and the column logic205, such as in response to the processor(s)101as communicated through the interface105or other interfaces. The NVM controller207accesses memory cells within the NVM array201by providing a row address to the row decoder203and a column address to the column logic205. Data is written into or read from the NVM array201via the column logic205. The NVM controller207also drives source and well voltages (via corresponding switches and controllers, not shown) to the NVM array201.

Shown within NVM controller207are charge pumps209, threshold voltage (Vt) monitor211, and erase parallelism control logic215. Charge pumps209can include a negative charge pump that provides erase gate voltage, a positive charge pump that provides program gate voltage and erase well voltage, and a drain pump that provides program drain voltage, to the cells in NVM array201. The charge pumps209also provide the verify gate voltage to Vt monitor211. The Vt monitor211provides indicators of whether parallel or serial FN erase can be performed to erase parallelism control logic215. Erase parallelism control logic215partitions the selected blocks in the memory array201into clusters of predetermined size, and then use the indicators from Vt monitor211to determine the blocks in each cluster to be FN erased serially or in parallel, as further described herein in the description ofFIG. 3.

The NVM array201incorporates one or more blocks of memory cells in which each memory block has a selected block size, such as, for example, 16 kilobytes (kB), 32 kB, 64 kB, 128 kB, 256 kB, etc. Memory cells in NVM array201typically have a gate (G) terminal, a drain (D) terminal and a source (S) terminal along with isolated wells including a pwell (PW) and an nwell (NW). In one embodiment, each memory block is organized into rows and columns of the memory cells. The gate terminal of each row of memory cells is coupled to a corresponding one of multiple wordlines coupled to the row decoder203. The drain terminal of each column of memory cells is coupled to a corresponding one of multiple bit lines coupled to the column logic205. The source terminal and wells (PW and NW) of each memory cell are driven or controlled by the NVM controller207.

As shown, the NVM array201includes at least one memory cell array202that is configured to allow erase procedures to be performed serially or in parallel. For instance, the memory array202is configured to allow a serial or parallel erase procedure to be performed on all the blocks, or a combination of serial and parallel erase procedures on groups of blocks. Memory array202is shown with dashed lines for clusters225,227each including a portion of the memory blocks217,219,221,223in memory array202.

When erasing multiple blocks, for instance, blocks217-223, NVM controller207can partition the NVM blocks217-223selected for erase into clusters225,227, and adaptively enable FN parallel or serial erase based on the movement of the threshold voltage (Vt) of bits during FN erase step within the cluster. Parallel FN erase can initially be used by default within each cluster. The cluster size is predetermined for each particular NVM technology. For instance, typical cluster size can be 256 Kbytes or 512 Kbytes. The threshold voltage (Vt) of the bits in the cluster can be checked during parallel FN erase after a predetermined number of erase pulses, i.e., reaching an interim erase pulse count. If the threshold voltage of any bit in the cluster is lower than a predetermined limit (indicating existence of fast erase bits), or if the threshold voltage of any bit is higher than another predetermined limit (indicating existence of slow erase bits), the controller207can switch to serial FN erase of the blocks in the cluster. Otherwise parallel FN erase of the blocks in the cluster continues. Such adaptive FN erase of the blocks within a cluster will be done for one cluster at a time until all clusters have completed FN erase.

The memory cells in memory array201can be implemented according to any one of several configurations, such as semiconductor configurations, layered silicon-metal nano crystals, etc. In one embodiment, each memory cell is implemented on a silicon substrate or the like. In one embodiment, the pwell of each memory cell is isolated from a P substrate with the nwell. A pair of n+ type doped regions (not shown) are formed in the pwell forming the drain and source terminals of each memory cell. Each memory cell further includes a stacked gate structure or the like, including an oxide layer (not shown) formed on the pwell, a floating gate (not shown) provided on the oxide layer, a dielectric layer (not shown) provided on the floating gate, and a control gate (not shown) provided on the dielectric layer forming a gate terminal. The pwell is generally coupled to a ground voltage Vss and the nwell is generally coupled to a source voltage Vdd except during FN erase pulses as described herein. The voltage level of Vdd and duration of pulses depends upon the particular implementation.

FIG. 3is a flowchart diagram of an erase operation300generally performed by the NVM controller207ofFIG. 2in accordance with one embodiment for the memory blocks217-223within the NVM array201ofFIG. 2. In process302, erase operation300begins by transitioning to process304to determine whether a pre-program verify procedure has passed. The pre-program verify operation can include determining whether a pre-program operation is required to bring the cells in selected blocks of the NVM array201to a pre-program level. The pre-program threshold voltage level will depend on the configuration/technology of the transistors that form the memory cells.

If the pre-program verify operation is not fully successful, process304determines that the pre-program verify operation has not passed and transitions to process306. Process306iteratively applies one or more pre-program pulses to the cells which failed pre-program verify in the selected blocks of the NVM array201until process304determines that the pre-program verify operation is successful on all the memory cells in the selected blocks.

Once the pre-program verify operation passes, process304transitions to process308to partition the blocks selected for the erase operation into clusters. Each cluster has the same total number of bytes and may comprise two or more blocks having the same size or different sizes. One or more clusters may be formed that include block(s) that do not fit in another cluster. For example, each cluster may have a total size of 512 Kbytes, with a first cluster that includes eight 16 Kbyte blocks, and three 128 Kbyte blocks. Another cluster may include two 256 Kbyte blocks. Other cluster sizes and combinations of block sizes in a cluster can be used. If the size of the remaining blocks is less than 512 Kbytes, they can be included in a cluster with a smaller size.

Once the clusters are formed in process308, process312performs an adaptive block erase procedure to erase the blocks within each cluster, as further described inFIG. 4herein. Process312then transitions to process314to perform soft program verify and determine whether the soft program verify operation has passed or failed for the selected blocks of the NVM array201. If the soft program operation has passed, process314transitions to process318to finish the erase operation for the selected blocks of the NVM array201. If the soft program operation has failed, however, process314transitions to process316to apply a soft program pulse to the memory cells in the selected blocks of the NVM array201. Process316then transitions back to process314to perform soft program verify and determine whether the memory cells now pass the soft program verify operation.

FIG. 4is a flowchart diagram of an embodiment of process312for adaptively erasing a cluster of NVM blocks that can be performed by NVM controller207ofFIG. 2. In process402, the default erase operation is set to parallel FN erase by setting a parallel erase flag (ParallelEraseFlag) to 1, in which all the blocks in a cluster are erased simultaneously, and the erase pulse count is initialized to zero. Process404includes initializing the current address for the parallel FN erase operation to the first address in the cluster. Process406determines whether an erase verify operation passes at the current address. The erase verify operation will pass when the threshold voltage of the memory cells at the current address are at or below an erase verify voltage at which the memory cell can be considered erased. If the erase verify procedure passed in process406, process408determines whether the current address is the last address in the cluster. If so, the FN erase procedure for the cluster completes and process408transitions to continue with a soft program operation in process314ofFIG. 3. If not, process408transitions to process410to increment the current address and then to process406to determine whether erase verify passes at the new current address.

If process406determines that the erase verify did not pass for the current address, process412determines whether an interim erase pulse count has been reached. If the interim erase pulse count has not been reached, process412transitions to process414to determine whether a maximum erase pulse count has been reached. If the maximum erase pulse count has not been reached, process414transitions to process416to determine if ParallelEraseFlag is equal to 1. If yes, process416transitions to process430which applies a parallel FN erase pulse on the blocks in the cluster and increments the erase pulse count. If not, process416transitions to process460to perform serial FN erase on the blocks in the cluster, as further described herein.

Referring back to process412, if the interim erase pulse count is reached, process418performs a threshold voltage verify operation to determine whether the threshold voltage level of any of the memory cells in the cluster is below a predetermined minimum or low threshold voltage (Vt_low). Process420checks whether the result of process418indicates that the threshold voltage of all the memory cells in the cluster is above the minimum threshold voltage. If the threshold voltage of all the memory cells in the cluster is not above the minimum threshold voltage, process420transitions to process426to set ParallelEraseFlag to 0, to indicate to switch to using serial FN erase operation instead of parallel FN erase operation for subsequent application of FN erase pulse(s). Then process426transitions to process460to perform serial FN erase on the blocks in the cluster.

If the threshold voltage of all the memory cells in the cluster is above the minimum threshold voltage, process420transitions to process422to determine whether the threshold voltage level of any of the memory cells in the cluster is above a predetermined maximum or high threshold voltage (Vt_high). Process424checks whether the result of process422indicates that the threshold voltage of all the memory cells in the cluster is below the maximum threshold voltage. If the threshold voltage of all the memory cells in the cluster is not below the maximum threshold voltage, process424transitions to process426to set ParallelEraseFlag to 0, to indicate to switch to using serial FN erase operation instead of parallel FN erase operation for subsequent application of FN erase pulse(s). Then process426transitions to process460to perform serial FN erase on the blocks in the cluster, as further described herein.

If process420determines the threshold voltage of all the memory cells in the cluster is above the minimum threshold voltage and process424determines the threshold voltage of all the memory cells in the cluster is below the maximum threshold voltage, then process424transitions to process430to apply a parallel FN erase pulse on the blocks in the cluster.

Referring again to process414, if the maximum erase pulse count has been reached, process414transitions to process428to indicate that the erase operation has failed.

FIG. 5is a flowchart diagram of an embodiment of process460for serial FN erase of the NVM blocks in a cluster. Process460starts with process462initializing the current block to the first block in the cluster, followed by process464which initializes the current address to the first address in the current block. Process464transitions to process466to determine whether an erase verify operation passes at the current address. If the erase verify procedure passed in process466, process468determines whether the current address is the last address in the current block. If so, the FN erase procedure for the current block completes and process468transitions to process470to determine if the current block is the last block in the cluster. If not, process468transitions to process472to increment the current address and then to process466to determine whether erase verify passes at the new current address. If process470determines the current block is the last block in the cluster, the FN erase procedure for the cluster completes and process470transitions to continue with a soft program operation in process314ofFIG. 3. If not, process470transitions to process474to increment the current block and then to process464to perform the erase verify for the new block.

If the erase verify procedure failed in process466, the process476determines whether a maximum erase pulse count for the current block has been reached. If the maximum erase pulse count has not been reached, process478applies an FN erase pulse on the current block and increments the erase pulse count for the current block. If the maximum erase pulse count has been reached, process476transitions to process480to indicate that the erase operation has failed.

FIG. 6is a diagram of an example of possible threshold voltage distributions for a cluster of memory cells in the NVM array201ofFIG. 2during various operational phases in an erase operation. Curve502shows a threshold voltage distribution of memory cells in programmed state with threshold voltages of all the memory cells above a predetermined program verify threshold voltage after the pre-program procedure. Curves504,506and508are corresponding to different cases when the interim erase pulse count has been reached. Curve504shows a threshold voltage distribution of the memory cells in a first failing interim erase state where the threshold voltage of some of the bits cells is above the predetermined high threshold voltage (Vt_high). Curve506shows a threshold voltage distribution of the memory cells in a second failing interim erase state where the threshold voltage of some of the bits cells is below a predetermined low threshold voltage (Vt_low). Curve508shows a normal distribution of the memory cells in an interim erase state where the threshold voltage of all of the bit cells is below the predetermined high threshold voltage and above the predetermined low threshold voltage. The values for the predetermined high and low threshold voltages can be based on the technology used to fabricate the memory cells. For curve508, parallel FN erase continues within the cluster, while for failing cases represented for example by curves504or506or both, FN erase transitions to serial FN erase within the cluster.

By now it should be appreciated that systems and methods have been disclosed that adaptively adjust between using parallel and serial FN erase procedures for selected blocks of memory cells in an NVM array. In some embodiments, methods of performing an erase of a plurality of blocks (217,219,221,223) of memory cells are disclosed. The memory cells within a block are simultaneously erased and the erase of each block of the plurality of blocks is performed using an erase pulse applied multiple times. The erase pulse can be applied to the plurality of blocks in parallel and performing an erase verify (406) after each application of the erase pulse. After a predetermined number applications of the erase pulse, the method can determine (418+420,422+424) if a condition comprising one of a group consisting of any memory cell has been more erased than a first predetermined amount and any memory cell has been erased less than a second predetermined amount has been met. If the determining finds the condition has been met, the erasing can be continued by applying the erase pulse to the block having the memory cell with the condition independently (426) of the other blocks of the plurality of blocks.

In another aspect, the continue erasing can be further characterized by applying the erase pulse to each block independently of the other blocks.

In another aspect, the continue erasing can be performed serially (426) on the plurality of blocks.

In another aspect, the condition can comprise a memory cell having been erased more (418+420) than the first predetermined amount.

In another aspect, the condition can comprise a memory cell having been erased less (422+424) than the second predetermined amount.

In another aspect, the performing the erase can further comprise performing a soft program operation (314+316) after all of the memory cells have passed an erase verify.

In another aspect, the performing the soft program operation can ensure that all of the memory cells are erased between a predetermined minimum amount of erasing and a predetermined maximum amount of erasing.

In another aspect, the performing the erase can further comprise performing a pre-program operation (304+306) prior to applying the erase pulse.

In another aspect, the method can include performing an erase of a second plurality of blocks (308) of memory cells after performing the erase of the plurality of blocks. The erase pulse can be applied to the second plurality of blocks in parallel and an erase verify can be performed after each application of the erase pulse. After a predetermined number of applications of the erase pulse to the second plurality of blocks, the method can determine if a second condition comprising one of a group consisting of any memory cell in the second plurality of blocks has been more erased than a first predetermined amount and any memory cell in the second plurality of blocks has been erased less than a second predetermined amount has been met. If the second condition has been met, the erasing continues by applying the erase pulse to the block in the second plurality having the memory cell with the second condition independently of the other blocks in the second plurality of blocks.

In another aspect, the applying the erase pulse can be further characterized by the erase pulse having a predetermined voltage and duration.

In further embodiments, methods of performing an erase of a plurality of blocks (217,219,221,223) of memory cells are provided. The memory cells within a block are simultaneously erased and the erase of each block of the plurality of blocks is performed using an erase pulse applied multiple times. The erase pulse (416) is applied to the plurality of blocks in parallel (402+404) and an erase verify (406) is performed after each application of the erase pulse. After a predetermined number applications of the erase pulse (412), the method can determine (418+420) if any memory cell has been more erased than a first predetermined amount. If a memory cell has been erased more than the first predetermined amount, the erasing can be continued by applying the erase pulse to the block having the memory cell that has been erased more than the first predetermined amount independently (426) of the other blocks of the plurality of blocks.

In another aspect, the method can further comprise, after the predetermined number applications of the erase pulse, determining if any memory cell has been erased less than a second predetermined amount. If a memory cell has been erased less (422+424) than the second predetermined amount, the erasing can continue by applying the erase pulse to the block having the memory cell that has been erased less than the second predetermined amount independently of the other blocks of the plurality of blocks.

In another aspect, the continue erasing by applying the erase pulse to the block having the memory cell that has been erased more than the first predetermined amount can be further characterized as applying the erase pulse to each block of the plurality of blocks independently (426) of the other blocks.

In another aspect, the continue erasing by applying the erase pulse to the block having the memory cell that has been erased less than the second predetermined amount can be further characterized as applying the erase pulse to each block of the plurality of blocks independently of the other blocks.

In another aspect, the method can further comprise continuing erasing by applying the erase pulse to the plurality of blocks in parallel (416) and performing an erase verify after each application of the erase pulse if none of the memory cells have a condition comprising one of a group consisting of having been erased less than the second predetermined amount and having been more erased than the first predetermined amount.

In still further embodiments, methods of performing an erase of a plurality of blocks (217,219,221,213) of memory cells are disclosed. The memory cells within a block are simultaneously erased and the erase of each block of the plurality of blocks is performed using an erase pulse applied multiple times. The erase pulse (416) is applied to the plurality of blocks in parallel and an erase verify (406) is performed after each application of the erase pulse. After a predetermined number applications of the erase pulse, the method includes determining if any memory cell has been less erased than a first predetermined amount. If a memory cell has been erased less than the first predetermined amount, erasing is continued by applying the erase pulse (426) to the block having the memory cell that has been erased less than the first predetermined amount independently of the other blocks of the plurality of blocks.

In another aspect, the continue erasing by applying the erase pulse to the block having the memory cell that has been erased less than the first predetermined amount is further characterized as applying the erase pulse to each block (426) of the plurality of blocks independently of the other blocks.

In another aspect, the method can further comprise, after the predetermined number applications of the erase pulse, determining if any memory cell has been erased more than a second predetermined amount. If a memory cell has been erased more than the second predetermined amount (418+420), erasing is continued by applying the erase pulse to the block having the memory cell that has been erased more than the second predetermined amount independently of the other blocks of the plurality of blocks. The erase pulse (416) continues to be applied to the plurality of blocks in parallel and an erase verify performed after each application of the erase pulse if none of the memory cells have been erased more than the second predetermined amount or less than the second predetermined amount.

In another aspect, the method can further comprise performing pre-programming (304,306) before applying the erase pulse and soft programming after erasing all of the memory cells have passed an erase verify.

In another aspect, the method can include performing an erase of a second plurality of blocks of memory cells after performing the erase of the plurality of memory cells including applying the erase pulse (416) to the second plurality of blocks in parallel. After a predetermined number (412) of applications of the erase pulse to the second plurality of blocks, the method can further include determining if a second condition comprising one of a group consisting of any memory cell in the second plurality has been more erased than a first predetermined amount and any memory cell in the second plurality has been erased less than a second predetermined amount has been met. If the determining finds the second condition has been met, erasing can continue by applying the erase pulse (416) to the block in the second plurality of blocks having the memory cell with the second condition independently (426) of the other blocks in the second plurality of blocks.

Also for example, in one embodiment, the illustrated elements of systems disclosed herein are circuitry located on a single integrated circuit or within a same device. Alternatively, the systems may include any number of separate integrated circuits or separate devices interconnected with each other. Also for example, a system or portions thereof may be soft or code representations of physical circuitry or of logical representations convertible into physical circuitry. As such, a system may be embodied in a hardware description language of any appropriate type.

Although the present disclosure has been described in considerable detail with reference to certain preferred versions thereof, other versions and variations are possible and contemplated. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present disclosure without departing from the spirit and scope of the disclosure as defined by the appended claims.

Although the present disclosure has been described in considerable detail with reference to certain preferred versions thereof, other versions and variations are possible and contemplated. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present disclosure without departing from the spirit and scope of the disclosure as defined by the appended claims.