This disclosure relates to nonvolatile memory.
Flash memory is a class of nonvolatile integrated circuit memory technology. A memory cell of a flash memory device includes a charge storage structure such as a floating gate or a dielectric charge trapping layer. Data is stored in a memory cell of a flash memory device by controlling the amount of charge stored in the charge storage structure. The amount of stored charge sets a threshold voltage for the memory cell in the flash memory device that is associated with a value of the stored data.
Data can be programmed into a flash memory cell by applying program voltage pulses to the flash memory cell, causing charge to be stored in the charge storage structure of the cell. Data can be erased from a flash memory cell by applying erase voltage pulses to the flash memory cell, causing charge to be removed from the charge storage structure of the cell.
Sometimes after subjecting a flash memory cell to erase voltage pulses, the flash memory cell can be over-erased with its threshold voltage value being too low or even negative. Because of the excessively low threshold voltage value, the over-erased memory cell can be conductive even when it is not selected for a read operation. Read operations on other memory cells sharing the same bit line with the over-erased memory cell can fail due to leakage current caused by the conductive over-erased memory cell.
A flash memory device can be partitioned into erasable blocks. An erase operation on an erasable block applies erase voltage pulses to memory cells in the erasable block and verifies that data in all memory cells in the erasable block have been erased. As part of the erase operation, a soft program sequence is performed on the erasable block after the erase and erase verify sequence by applying program voltage pulses to correct over-erased memory cells in the erasable block.
A flash memory device can support an erase suspend command. The erase suspend command causes the flash memory device to suspend an erase operation on an erasable block and allow another operation such as a read operation to proceed. Before suspending the erase operation, a soft program sequence could be performed on the erasable block to correct over-erased memory cells in the erasable block. However, the typical operation time for the soft program sequence is about one to a few milliseconds, which is much longer than the latency requirement (of about 10 microseconds) for the erase suspend command.
For an erasable block undergoing an erase operation interrupted by an erase suspend command, a negative voltage can be applied to the erasable block to reduce leakage from over-erased memory cells in the erasable block, as describe in U.S. Pat. No. 8,482,987, titled Method and Apparatus for the Erase Suspend Operation. The method for applying a negative voltage to reduce leakage from over-erased memory cells described in U.S. Pat. No. 8,482,987 can have shorter latency time in response to an erase suspend command than using a soft program sequence to correct over-erased memory cells. However, the method for applying a negative voltage to reduce leakage from over-erased memory cells requires negative voltage pump circuits that can increase die area and cost.
It is therefore desirable to provide for a low-latency method for reducing leakage from over-erased memory cells in an erasable block undergoing an erase operation interrupted by an erase suspend command. It is also desirable that the implementation of the low-latency method does not significantly increase die size and cost.
The present technology provides a circuit comprising a nonvolatile memory array comprising a plurality of blocks of memory cells, each block comprising a plurality of sectors of memory cells; and control logic, the control logic configured to respond to an erase command identifying a block in the plurality of blocks in the array, to erase the plurality of sectors of the identified block, and to determine whether there are over-erased cells in each sector.
Also described is a circuit comprising a nonvolatile memory array; and control logic, the control logic being configured to:
A method is also described for an erase operation on a nonvolatile memory array with low-latency erase suspend is described. The nonvolatile memory array comprises a plurality of blocks of memory cells, each block comprising a plurality of sectors of memory cells. The method includes, in response to an erase command identifying a block in the plurality of blocks in the array, erasing the plurality of sectors in the identified block, and determining whether there are over-erased cells in each sector. The method includes recording the over-erased cells for the sector. The method also includes responsive to suspend before a soft program pulse for the sector, applying a correction pulse to the recorded cells.
Other aspects and advantages of the present technology can be seen on review of the drawings, the detailed description and the claims, which follow.
A detailed description of embodiments of the present technology is provided with reference to the Figures.
An address decoder 161 is coupled to the array 160 via lines 162. Addresses are supplied on bus 165 to the address decoder 161. The address decoder 161 can include word line decoders, bit line decoders, and other suitable decoders that decode the supplied addresses and select corresponding memory cells in the array 160.
Bit lines in the array 160 are coupled via lines 164 to a page buffer 163, which in turn are coupled to other peripheral circuitry 174 via lines 173.
Peripheral circuitry includes circuits that are formed using logic circuits or analog circuits that are not part of the array 160, such as the address decoder 161, controller 169, biasing arrangement supply voltage block 168, and so on. In this example, the block 174 labeled other peripheral circuitry can include input-output (I/O) circuits, cache memory, error-code-correction (ECC) circuits, and other circuit components on the memory 175, such as a general purpose processor or special-purpose application circuitry, or a combination of modules providing system-on-a-chip functionality supported by the array 160. Data is supplied via the lines 173 to I/O ports or to other data destinations internal or external to the memory 175. Data to and from the array 160 can be stored (cached) in the cache memory. The ECC circuit can perform ECC functions (e.g., parity check) on the cached data to ensure integrity of the data to and from the array 160.
The controller 169, implemented for example as a state machine, provides signals to control the application of bias arrangement supply voltage generated or provided through the voltage supply, or supplied in block 168, to carry out the various operations described herein. These operations include erase operations, read operations, and program operations. These operations also include low-latency erase suspend operations described herein. The controller is coupled to the address decoder 161, the page buffers 163, and the other peripheral circuitry 174. The controller can be implemented using special-purpose logic circuitry as known in the art. In other embodiments, the controller comprises a general-purpose processor, which may be implemented on the same memory 175, which executes 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 the controller.
The page buffer 163 is coupled to bit lines of the array 160, and can include one or more storage elements (e.g., latches) for each bit line connected. The controller 169 can cause the address decoder 161 to select and couple specific memory cells in the array 160 via respective connecting bit lines to the page buffer 163, and cause the page buffer 163 to store data that is written to or read from these specific memory cells.
Instead of a single threshold voltage value, a group of memory cells can have a range or distribution of threshold voltages because each memory cell has different transistor characteristics and experiences a different environment (e.g., different electric fields). The width of a threshold voltage distribution of memory cells in a block of memory cells (corresponding to a target of an erase command) can be reduced by partitioning the block into multiple sectors of memory cells. For example, each block (e.g., Block #2) in
The method of
In response to the erase command, the controller 169 executes an erase operation on the block of memory cells. As part of the erase operation, the controller 169 first executes a pre-program sequence on the block (Step 302). The pre-program sequence programs memory cells in the erase unit to approximately the same threshold voltage range, so that the subsequent erase and erase verify sequences are applied to memory cells having similar threshold voltages.
As part of the erase operation on the block of memory cells, the controller 169 executes an erase sequence and an erase verify sequence on the block. The controller 169 starts executing an erase sequence and an erase verify sequence in this example by setting a sector index identifying a first erase sector (e.g., Sector(0) illustrated in
The goal of erasing a sector of memory cells is to move the cell threshold voltage distribution from being above a level corresponding to the programmed state to being below a level corresponding to the erased state. More particularly, the goal of erasing the sector of memory cells is to move the threshold voltage distribution to being below a first erase verify level EV illustrated in
In addition, after each erase pulse is applied to the sector, threshold voltages of the memory cells in the sector are verified against a second erase verify level VL. Note that the second erase verify level VL is lower than the first erase verify level EV, for at least the last erase pulse in the sequence. The second erase verify level VL is used to identify memory cells in the sector with threshold voltages that are lower than an expected threshold for cells after a particular erase pulse in an erase sequence, and for the at least some cycles that expected threshold is below the first verify level EV (i.e., already erased). The memory cells identified by the second erase verify level VL, or so-called fast cells, are more likely to require a soft program pulse to increase the threshold voltage as indicated by arrow 401, to avoid the over erased condition. An identifier of the cell, such as an offset address, is stored in a register that is readable by the controller, at least for the duration of the sector erase process. For example,
In the example of
The controller 169 executes an erase sequence and an erase verify sequence on the sector of memory cells. As part of the erase sequence, the controller 169 causes the biasing arrangement supply voltage block 168 to apply an erase pulse to memory cells in the sector (Step 504). The erase pulse decreases threshold voltages of the memory cells in the sector.
After the erase pulse is applied to the memory cells in the sector, the controller 169 executes the erase verify sequence on the sector. The controller 169 first determines whether the SPV flag is set to 0 (Step 506). If it has been set to 0 (such as when a fast cell or cells have already been identified in the current sector), then the controller 169 proceeds to Step 512 to verify that all the memory cells in the sector have been erased at a first erase verify level EV, as will be described later.
As part of the erase verify sequence, if the SPV flag is not set to 0 (i.e., the SPV flag is set to 1), then after the current erase pulse the controller 169 identifies fast cells in the erase sector that have threshold voltages below a second erase verify level VL. The controller 169 performs one or more soft program verify (SPV) steps which are configured to identify fast cells in the sector.
At Step 507, the controller 169 initializes the second erase verify level VL (e.g., VL=1.3V lower than the first erase verify level). As described with
At Step 510, the controller 169 determines whether there are any memory cells in the sector with a threshold voltage lower than the second erase verify level VL. If all memory cells in the erase sector have threshold voltages higher than the second erase verify level VL (i.e., none are conducting), the controller 169 then proceeds to Step 512 to verify that all the memory cells in the sector have been erased at the first erase verify level EV.
If any memory cells in the sector are found having threshold voltages lower than the second erase verify level VL (i.e., they are conducting under the word line voltage bias of the second erase verify level VL) at Step 510, the controller 169 then proceeds to identify one or more of these cells having threshold voltages lower than the second erase verify level VL. Instead of identifying all memory cells in the sector having threshold voltages lower than the second erase verify level VL, the controller 169 identifies a subset (e.g., one, two, or five) of memory cells (fast cells) having threshold voltages lower than the second erase verify level VL. The number of cells identified is a design tradeoff based because it is easier to manage and record one or a few fast cells at a time without significantly increasing die area and cost.
In the example of
At Step 518, the controller 169 records the address or other identifier of the identified fast cell in the registers 191. At Step 520, the controller 169 sets the SPV flag to 0, indicating a fast cell in the erase sector has been identified, and is a candidate for soft program in the event of an erase suspend operation. Then, the controller 169 proceeds to Step 512.
At step 512, the controller 169 verifies all the memory cells in the erase sector have been erased at the first erase verify level EV. A voltage bias of the first erase verify level EV is applied (e.g., by the biasing arrangement supply voltage block 168) to word lines of the sector. A memory cell is determined as erased if its threshold voltage is lower than the first erase verify level EV and would conduct under the word line voltage bias for a read.
At Step 522, the controller 169 determines whether all the memory cells in the sector have been erased at the first erase verify level EV (e.g., 5V). If all memory cells in the erase sector have threshold voltage less than the first erase verify level EV and thus conduct under the word line voltage bias, the controller 169 determines that all memory cells in the erase sector are erased. The controller 169 then proceeds to the soft program step at Step 524. If not all the memory cells in the erase sector are verified as erased at the first erase verify level EV (i.e., some are not conducting under the word line voltage bias), the controller 169 repeats the erase and erase verify sequences, including identifying one or more fast cells, as indicated by the loop-back to Step 504, until all the memory cells in the erase sector are verified as erased at the first erase verify level EV.
After all memory cells in the sector are determined as erased at Step 522, the controller 169 proceeds to execute a soft program sequence to correct over-erased memory cells in the sector (Step 524). The soft program sequence can include identifying over-erased cells at a third erase verify level. The third erase verify level is lower than the first erase level EV. For example, the first erase verify level can be 5V, while the third erase verify level can be 3V. The soft program sequence also includes correcting the identified over-erased cells by applying a sequence of soft program voltage pulses (e.g., by the biasing arrangement supply voltage block 168) to the identified over-erased memory cells in the sector. The soft program voltage pulses increase the threshold voltage of the over-erased memory cells (thus making them less likely to be conducting or causing current leakage during normal read bias conditions applied to other memory cells).
In response to the erase suspend command, the controller 169 determines the current step of the erase operation on the block (Step 604). The controller 169 can safely stop execution of the erase operation on the block in a manner that depends on the current step. At Step 606, the controller 169 determines whether the current step is part of erase and erase verify sequences performed on a sector of the block (i.e., Step 306 of
If the current step is part of the erase and erase verify sequences on a sector of the block, the controller 169 completes the erase verify sequence on the sector, if the erase verify has not already been completed (Step 607). The erase verify can be executed only over the current sector, rather than the whole block.
At Step 608, the controller 169 determines whether the SPV flag had been set to 0, indicating that one or more fast cells had been identified in the sector that is currently being erased. If the SPV flag is 1, the controller 169 then can proceed to suspend the erase operation on the block (Step 620). If there are fast cells identified in the erase sector (i.e., SPV flag is set to 0), then the controller 169 accesses the registers 191 to look up the addresses for the identified fast cells (Step 610). At Step 612, the controller 169 executes a weak program sequence to correct the identified fast cells only. The weak program sequence includes applying one or more voltage pulses (e.g., by the biasing arrangement supply voltage block 168) to the identified fast cells. The voltage pulses of the weak program sequence increase the threshold voltages of the identified fast cells, such that the fast cells are less likely to be conducting (causing current leakage) during normal read bias conditions applied to other memory cells. After the weak program sequence completes, the controller 169 proceeds to suspend the erase operation on the block (Step 620). After the erase operation on the block is suspended at Step 620, the controller 169 (or other modules in the memory 175) can safely proceed with another operation on the memory 175.
Since the weak program operation (Step 612) takes only about several microseconds, the erase suspend operation illustrated by the method of
Before proceeding to suspend the erase operation on the block at Step 620, the controller 169 can store in the registers 191 a status indicator indicating the step in the erase operation on the block that is being suspended. For example, the status indicator can indicate the step before the erase operation suspension is the pre-program sequence (Step 302 of
The controller 169 also determines whether there are over-erased cells in each sector. As described above with
The controller 169 can cause the biasing arrangement supply voltage 168 to apply a soft program pulse to the sector (e.g., Step 524 of
A method for forming a memory, comprises providing a nonvolatile memory array comprising a plurality of blocks of memory cells, each block comprising a plurality of sectors of memory cells; and providing control logic configured to respond to an erase command identifying a block in the plurality of blocks in the array, to erase the plurality of sectors of the identified block, and to determine whether there are over-erased cells in each sector.
While the present technology is disclosed by reference to the preferred embodiments and examples detailed above, 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.
Number | Name | Date | Kind |
---|---|---|---|
5229632 | Yoshikawa | Jul 1993 | A |
5341330 | Wells et al. | Aug 1994 | A |
5568419 | Atsumi | Oct 1996 | A |
5587947 | Chang | Dec 1996 | A |
5680350 | Lee | Oct 1997 | A |
5699298 | Shiau et al. | Dec 1997 | A |
5790456 | Haddad | Aug 1998 | A |
5805501 | Shiau et al. | Sep 1998 | A |
5822252 | Lee | Oct 1998 | A |
6055190 | Lu et al. | Apr 2000 | A |
6252803 | Fastow et al. | Jun 2001 | B1 |
6483752 | Hirano | Nov 2002 | B2 |
6493266 | Yachareni et al. | Dec 2002 | B1 |
6628545 | Li | Sep 2003 | B1 |
6654287 | Visconti | Nov 2003 | B2 |
6714457 | Hsu et al. | Mar 2004 | B1 |
6735125 | Hirano | May 2004 | B2 |
6834012 | He et al. | Dec 2004 | B1 |
7009881 | Noguchi | Mar 2006 | B2 |
7180779 | Telecco et al. | Feb 2007 | B2 |
7180781 | Abedifard et al. | Feb 2007 | B2 |
7266019 | Taoka et al. | Sep 2007 | B2 |
7339828 | Hasegawa et al. | Mar 2008 | B2 |
7463525 | Zheng et al. | Dec 2008 | B2 |
7489560 | Chang et al. | Feb 2009 | B2 |
7630253 | Melik-Martirosian et al. | Dec 2009 | B2 |
7633811 | Fang et al. | Dec 2009 | B2 |
7649782 | Eguchi et al. | Jan 2010 | B2 |
7697341 | Cha et al. | Apr 2010 | B2 |
8027196 | Wong | Sep 2011 | B1 |
8130550 | Confalonieri | Mar 2012 | B1 |
8482987 | Yu et al. | Jul 2013 | B2 |
8717813 | Kuo et al. | May 2014 | B2 |
20050099857 | Yuan et al. | May 2005 | A1 |
20070140015 | Kawamura | Jun 2007 | A1 |
20070242519 | Ito et al. | Oct 2007 | A1 |
20080144389 | Chen et al. | Jun 2008 | A1 |
20090290423 | Kim et al. | Nov 2009 | A1 |
20100128525 | Mokhlesi | May 2010 | A1 |
20100172188 | Chen et al. | Jul 2010 | A1 |
20110273936 | Yu et al. | Nov 2011 | A1 |
20120057410 | Yu et al. | Mar 2012 | A1 |
20120201082 | Choy et al. | Aug 2012 | A1 |
20120262988 | Kuo et al. | Oct 2012 | A1 |
Number | Date | Country |
---|---|---|
101430935 | May 2009 | CN |
9744792 | Nov 1997 | WO |
02067268 | Aug 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20160042796 A1 | Feb 2016 | US |