CN102667943B - 通过加速的写入后读取来管理错误的非易失性存储器和方法 - Google Patents
通过加速的写入后读取来管理错误的非易失性存储器和方法 Download PDFInfo
- Publication number
- CN102667943B CN102667943B CN201080049014.2A CN201080049014A CN102667943B CN 102667943 B CN102667943 B CN 102667943B CN 201080049014 A CN201080049014 A CN 201080049014A CN 102667943 B CN102667943 B CN 102667943B
- Authority
- CN
- China
- Prior art keywords
- memory
- memory cell
- data
- group
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 397
- 238000000034 method Methods 0.000 title claims description 31
- 238000003860 storage Methods 0.000 claims abstract description 143
- 230000008569 process Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 18
- 238000007689 inspection Methods 0.000 claims description 14
- 230000015572 biosynthetic process Effects 0.000 claims 2
- 238000005070 sampling Methods 0.000 abstract description 2
- 210000004027 cell Anatomy 0.000 description 106
- 238000010586 diagram Methods 0.000 description 45
- 238000007667 floating Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 19
- 238000013461 design Methods 0.000 description 15
- 238000009826 distribution Methods 0.000 description 15
- 230000002708 enhancing effect Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000005611 electricity Effects 0.000 description 7
- 230000032683 aging Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000001915 proofreading effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000005728 strengthening Methods 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000005669 field effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 241001139376 Allas Species 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 101150053888 allA gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000013065 commercial product Substances 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000005283 ground state Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 description 1
- 101100379079 Emericella variicolor andA gene Proteins 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 244000131316 Panax pseudoginseng Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 241000562516 Thisbe Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 208000028626 extracranial carotid artery aneurysm Diseases 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010338 mechanical breakdown Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000013643 reference control Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在非易失性存储器中的数据错误不可避免地随使用和每个单元存储的位的更高密度而增加。该存储器被配置为具有以较少错误操作但具有较低密度存储的第一部分、以及以较高密度操作但更不强健存储的第二部分。错误管理提供在复制到第二部分之后对副本的读取和检查。如果该副本具有过多错误位,则其在第二或第一部分中的不同位置中重复。通过仅读取副本的样本来加速对该副本的读取和检查。从具有其自己的ECC并被估计为代表在正采样的副本之中的最差错误率的副本的子集中选择该样本。一个实施例具有从一组的每个多位存储器单元的一位中取出的样本。
Description
技术领域
本申请涉及诸如半导体闪存的可重编程的非易失性存储器系统的操作,且更具体地,涉及处理和有效管理存储器操作中的错误。
背景技术
能够非易失性地存储电荷的固态存储器、尤其是以被包装为小形状因子卡的EEPROM和快闪EEPROM的形式的固态存储器,近来已经变为在各种移动和手持设备、特别是信息用品和消费者电子产品中的存储的选择。不像也是固态存储器的RAM(随机存取存储器),闪存是非易失性的,且即使在掉电之后也维持其存储的数据。而且,不像ROM(只读存储器),闪存类似于盘存储设备而可重写。尽管有较高的成本,但闪存仍然逐渐用于大容量存储应用中。基于诸如硬盘和软盘的旋转磁介质的传统大容量存储器不适用于移动和手持环境。这是因为磁盘趋于大容量,易于产生机械故障,且具有高延迟时间和高功率需求。这些不期望的属性使得基于盘的存储器在大多数移动和便携式应用中不实际。另一方面,嵌入式和以可移除卡的形式的闪存由于其小尺寸、低功耗、高速度和高可靠性特性而理想地适用于移动和手持环境。
快闪EEPROM类似于EPROM(电可擦除可编程只读存储器)之处在于其是可以被擦除且使得新数据被写入或"编程"到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接)导电栅极。然后,控制栅极被提供在浮置栅极上。晶体管的阈值电压特性受浮置栅极上保留的电荷量控制。也就是说,对于在浮置栅极上的给定水平的电荷,存在必须在晶体管"导通"以允许在其源极和漏极区域之间导电之前施加到该控制栅极的对应电压(阈值)。具体地,诸如快闪EEPROM的闪存允许同时擦除存储器单元的各整个块。
浮置栅极可以保持一范围的电荷,且因此可以被编程到阈值电压窗内的任意阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的尺寸,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。该阈值窗通常取决于存储器器件的特征、操作条件和历史。在该窗内的每个不同的、可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。
在当前商业产品中快闪EEPROM阵列的每个存储元件普遍地通过以二进制模式操作来存储单个位的数据,其中,存储元件晶体管的两个范围的阈值电平被定义为存储电平。晶体管的阈值电平对应于其存储元件上存储的电荷电平的范围。除了缩小存储器阵列的尺寸以外,趋势是通过在每个存储元件晶体管中存储多于一位数据来进一步增加这种存储器阵列的数据存储的密度。这通过将多于两个阈值电平定义为每个存储元件晶体管的存储状态来实现,现在在商业产品中包括四个这种状态(每个存储元件2位数据)。也正实现每个存储元件的更多存储状态,比如16个状态。每个存储元件存储器晶体管具有其可以实际被操作的阈值电压的特定总范围(窗),且该范围被划分为为其定义的多个状态加上在这些状态之间的、允许它们彼此清楚地区分的余量。显然,存储器单元被配置以存储的位越多,其必须在其中操作的错误余量越小。
用作存储器单元的晶体管通常通过两个机制之一编程到"已编程"状态。在"热电子注入"中,施加到漏极的高电压加速电子穿过衬底沟道区域。同时,在施加到控制栅极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在"遂穿注入"中,相对于衬底,高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。虽然已经在历史上使用术语“编程”来描述通过向存储器单元的初始擦除的电荷存储单元注入电子以便改变存储器状态而向存储器的写入,但是现在与诸如"写入"或"记录"的更通用的术语可互换地使用。
可以通过多种机制来擦除存储器器件。对于EEPROM,可通过相对于控制栅极向衬底施加高电压以便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区(即,Fowler-Nordheim隧穿)而电擦除存储器单元。通常,EEPROM可逐字节擦除。对于快闪EEPROM,该存储器可一次全部或一次一个或多个最小可擦除块地被电擦除,其中,最小可擦除块可以由一个或多个扇区构成,且每个扇区可以存储512字节或更多的数据。
存储器器件通常包括可以被安装到卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件还与进行智能且较高级存储器操作和接口(interfacing)的控制器一起出现。
存在当今正使用的许多商业成功的非易失性固态存储器器件。这些存储器器件可以是快闪EEPROM,或可以使用其他类型的非易失性存储器单元。在美国专利号5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762中给出了快闪存储器及系统和制造它们的方法的例子。具体地,在美国专利号5,570,315、5,903,495、6,046,935中描述了具有NAND串结构的闪存器件。而且,还从具有用于存储电荷的介电层的存储器单元制造非易失性存储器器件。取代先前描述的导电浮置栅极元件,使用介电层。使用介电存储元件的这种存储器器件已经由以下描述:Eitan等人的“NROM:ANovelLocalizedTrapping,2-BitNonvolatileMemoryCell”,IEEEElectronDeviceLetters,vol.21,no.11,2000年11月,pp.543-545。ONO介电层穿过源极和漏极扩散之间的沟道而延伸。一个数据位的电荷被定位(localize)在与漏极相邻的介电层中,且另一数据位的电荷被定位在与源极相邻的介电层中。例如,美国专利第5,768,192和6,011,725号公开了具有夹在两个二氧化硅层之间的捕获电介质(trappingdielectric)的非易失性存储器单元。通过分开地读取电介质内的空间上分开的电荷存储区的二进制状态来实现多状态数据存储。
为了改善读取和编程性能,并行读取或编程在阵列中的多个电荷存储元件或存储器晶体管。因此,"一页"存储器元件被一起读取或编程。在现有存储器架构中,一行通常包含若干交织的页,或其可以组成一页。一页的所有存储器元件将一起被读取或编程。
写入的数据中的错误
在此说明的这些类型的存储器系统中以及在其他存储器系统中,包括磁盘存储系统,通过使用错误校正技术来维持被存储的数据的完整性。对于一次存储的数据的每个扇区或其他单元计算错误校正码(ECC),且该ECC与该数据一起存储。ECC最通常与用户数据的单元组一起存储,其中已经从该单元组计算了ECC。用户数据的单元组可以是扇区或多扇区页。当从存储器读取该数据时,使用ECC来确定被读取的用户数据的完整性。通常可以通过使用ECC来校正数据的单元组内的数据的错误位。
趋势是减小存储器系统的大小以便能够在该系统中放置更多的存储器单元以及使得该系统尽可能小以适应更小的主机设备。通过电路的更高集成以及配置每个存储器单元存储更多位数据的组合来增加存储器容量。这两种技术要求存储器以增加的更收紧的错误余量来操作。这又对校正错误的ECC提出更高的要求。
可以设计ECC来校正预定数量的错误位。其需要校正的位越多,该ECC将越复杂且更多计算量。为了质量保证,基于在存储器器件的寿命末期的预计最差情况单元错误率来设计传统ECC。因此,它们必须校正高达错误率的统计总体的远在尾端的最大数量的错误位。
随着快闪存储器老化,其错误率在该器件的寿命末期附近迅速增加。因此,仅需要为最差情况设计的强大ECC在存储器器件的寿命末期时应用其全部性能。
使用ECC来校正最差情况数量的错误位将消耗更大量的处理时间。其需要校正的位越多,所需的计算时间越多。存储器性能将降低。可以实现另外的专用硬件来在合理时间量进行ECC。这种专用硬件可能在控制器ASIC芯片上占据相当量的空间。另外,对于器件的大多数寿命时间,仅有余量地使用ECC,导致其大量开销被浪费且没有实现真正收益。
因此,需要提供高存储容量、不需要为最差情况设计的资源密集的ECC的非易失性存储器。
发明内容
从较高密度存储器部分向较低错误率存储器部分适应性重写数据来控制
错误率
根据本发明的一般方面,提供一种写入后读取错误管理,其中具有存储器单元的阵列的快闪存储器被配置有第一部分和第二部分。该第二部分以更高密度存储数据,但用比第一部分更小的错误余量来操作。为了有效存储,数据被写到第二部分。然后,在写入后读取操作中读回该数据来检查过量的错误位。如果错误位超过了预定量,则数据被重写到或保持在更少错误倾向的第一部分。这对由于将数据写到存储器而产生的错误位的最大数量施加了限制。在错误率的统计分布中,该限制表示对该分布的数量标准偏差的限制,以便可以忽略(具有更高错误率的)分布的远尾端(fartailend)。这允许设计更小和更有效的错误校正码(“ECC”)用于校正较小数量的错误位,由此改善存储器的性能并降低成本。
在一个优选实施例中,第一部分使每个存储器单元存储一位数据,且第二部分使每个存储器单元存储多于一位数据。
在替换的实施例中,第一部分用作用于到来的数据的缓存,因此输入数据的缓存副本被编程到该缓存中。然后,数据的第一副本被编程到第二部分中。如果写入后读取没有检测到第一副本中的过量错误,第一副本将被视为有效,且随后的读取将被导向访问第一副本。另一方面,如果写入后读取已检测到第一副本中的过量错误,在第一部分中的缓存的副本将替换第二部分中的第一副本作为有效数据。第一副本将变为废弃的,且随后访问将被导向该缓存的副本。
在优选实施例中,第一部分进一步被提供有第一区块和第二区块。到来的数据被缓存在第一部分的第一区块中,且该数据的第一副本被写到第二部分。然后,第二部分中的第一副本被读回以检查过量错误位。如果错误位超过预定量,到来的数据的第二副本被写到第一部分的第二区块。
根据另一优选实施例,存储器阵列被提供有在集成电路芯片上的数据锁存器集,通过将第一副本和缓存的副本加载到该数据锁存器集中并在该数据锁存器集处进行比较来实现在第一副本中的错误位的检查。
在替换实施例中,在写入后读取已检测到第一副本中的过量错误之后,第一部分中的缓存的副本将替换第二部分中的第一副本作为有效数据。第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新为对该缓存的副本的直接随后访问。
因此,当向存储器的高密度存储部分写入时,写入后读取检查错误率是否在规定的限制内。如果不是,则数据被重写到或保持在存储器的另一更小错误倾向的部分。相比高密度存储部分,更少错误倾向的部分通常具有每单元存储更少数据位的每个存储器单元。通过提供机制来控制并限制在向高密度存储器写入之后产生的错误,以及如果在高密度存储器中的副本具有过量错误则提供第二机会来重写具有更少错误的数据,ECC将需要校正的错误率的数量显著减少。以另外的写入后读取和对较低密度存储器部分的不频繁的另外的重写的微小开销获得该优点。
例如,存储器的高密度存储部分具有存储3位数据的每个存储器单元。更少错误倾向的部分具有存储1位数据的每个存储器单元。估计通过将错误率限制在三个标准偏差(3σ)内,而不是6σ的传统最差情况方式,ECC仅需要校正4位而不是42位。限制到3σ是预期总体的0.13%具有超过4位的错误率。带来的代价是,在具有多于4个错误位(总体的0.13%)的高密度存储器中写入的数据将简单地使得数据被重写到更低密度存储器来避免超过错误限制。相比较,在传统方式中,为最差情况设计的校正42位写错误的ECC一直携带大的管理开销,尽管大多数时间其仅需要校正少得多数量的位。
增强的写入后读取错误管理
在本发明的另一方面,实现增强的写入后读取错误管理。在存储器器件的寿命初期不使能写入后读取。在寿命初期存储器器件的错误率非常低,且不需要操作写入后读取。这避免浪费时间来进行写入后读取。由于存储器器件通过使用而老化,在器件的预定年龄时使能本发明的增强的写入后读取和错误管理。
在优选实施例中,通过随存储器单元的每个擦除块维持的热计数来确定存储器器件的年龄。该热计数跟踪耐用性和该擦除块通过擦除和编程操作而被循环的次数。无论何时擦除块的热计数超过预定热计数阈值时,增强的写入后读取错误管理将开始并操作直到存储器器件的寿命末期。
在本发明的另一方面的优选实施例中,存储器的高密度存储部分(D3)具有存储3位数据的每个存储器。存储器的更低错误倾向的低密度存储部分(Dl)具有存储1位数据的每个存储器单元。输入的数据首先阶段性存储(stage)在D1中,且随后将其折叠(fold,折叠存入)到D3中。当增强的写入后读取错误管理被使能时,读回D3中当前的填充的块;且如果错误率超过预定阈值,则当前D3块被拒绝,且进行重试,数据被重新折叠到新的D3块中。再次读回该新D3块,且检查该新D3块的过量错误率。如果新D3块通过了,则其具有良好的数据,且使得D1中的原始数据废弃。如果新D3块再次示出过量错误率,则再次丢弃该新D3块。如果在预定数量的重试之后过量错误率仍持续,则不试图进行进一步的重试,且放弃D1到D3折叠操作,原始数据保持在D1处。此时,该存储器器件被认为太老而不适于进一步的编程操作,且使得该存储器器件只读,以保留存储器器件中存储的现有数据的完整性。
加速的写入之后读取
根据本发明的另一方面,取代写入后读取每个存储器单元来检查写入了什么,这可能消耗大量时间和系统资源,而仅对存储器单元的小样本进行写入后读取,该小样本表示被写入的存储器单元的群体(population)。当该样本的写入后读取产生在预定值内的错误率时,该群体被认为通过了该检查。否则,先前写在该群体的单元上的数据被认为具有太多错误,且再次被重写到相同区域中的不同位置或者具有固有的较低错误率的存储器的另一区域。
非易失性存储器中的数据错误随着使用以及随着每单元存储的更高密度的数据位而不可避免地增加。存储器被配置为具有以较少错误操作但具有较低密度存储的第一部分、以及以较高密度操作但更不强健存储的第二部分。错误管理提供在复制到第二部分之后对副本的读取和检查。如果该副本具有过多错误位,则其在第二或第一部分中的不同位置中重复。通过仅读取副本的样本来加速对该副本的读取和检查。从具有其自己的ECC并被估计为代表在正采样的副本之中的最差错误率的副本的子集中选择该样本。
在一个实施例中,要检查的样本是写到一个字线上的一组单元的所有ECC页的子集。具体地,该子集是所有ECC页之中被估计具有最高错误率的ECC页。
在另一个实施例中,要检查的样本是写到一块中的一组单元的所有ECC页的子集。该块在其中的具有可一起擦除的所有单元。具体地,该子集是所有ECC页之中被估计具有最高错误率的ECC页。
附图说明
图1图示与体现本发明的特征的存储器器件通信的主机。
图2示意性地图示了非易失性存储器单元。
图3图示了存储器单元的NOR阵列的例子。
图4图示了被并行感测或编程的在例如NAND配置中组织的一页存储器单元。
图5A将图1所示的感测模块更详细地图示为包含跨过存储器单元的阵列的一堆p个感测模块。
图5B图示包括感测放大器的感测模块。
图6示意性地示出在可擦除块中组织的存储器阵列的例子。
图7图示具有每个单元处于两个可能状态之一的全体单元的二进制存储器。
图8图示具有每个单元处于八个可能状态之一的全体单元的多状态存储器。
图9示意性地图示包含ECC字段的数据页。
图10A示出全体的百分比在各种范围的标准偏差σ的错误率的正态分布。
图10B图示表格形式的图10A的分布。
图11是列出闪存的主要错误源的表格。
图12是示出在示例存储器器件的寿命初期和末期该示例存储器器件的估计的总错误的表格。
图13是图示必须设计传统的ECC来校正最差情况的总错误ETOT的表格。
图14A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。
图14B图示将数据页的第二副本重写到图14A的存储器阵列的第一部分中。
图15是图示根据图14A和图14B中描述的实施例的写入后读取和适应性重写的处理的流程图。
图16A图示根据本发明的优选实施例的被划分为两个部分且第一部分进一步被提供有缓存部分和重写部分的存储器阵列。
图16B图示根据写入后读取的优选实施例的页比较技术。
图16C图示在写入后读取确定了在第二部分中的数据页中的过量错误之后向第一部分的重写。
图17是图示根据图16A到图16C中描述的实施例的写入后读取和适应性重写的处理的流程图。
图18图示被组织为擦除块的存储器。
图19是图示当存储器器件已经老化到由热计数确定的预定程度时被使能的错误管理的流程图。
图20A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。
图20B图示其中图20A的D3块未通过写入后读取测试的另一例子。
图20C图示其中图20B的新的D3块再次未通过写入后读取测试的另一例子。
图21是图示与增强的写入后读取错误管理相关的示例参数的表格。该表格优选地被保持在存储器中存储的文件系统配置文件中。
图22A是图示应用于具有D1到D3折叠(folding)的存储器的EPWR错误管理的优选实施方式的流程图。
图22B更详细地图示增强的写入后读取的错误管理的取决于器件年龄的使能特征。
图22C更详细地图示增强的写入后读取错误管理的优选实施方式。
图23(0)-23(3)图示用优选的2位逻辑码(“LM”码)编码的4状态存储器的逻辑逐页编程。
图24A图示辨别用2位LM码编码的4状态存储器的较低位所需的读取操作。
图24B图示辨别用2位LM码编码的4状态存储器的较高位所需的读取操作。
图25(0)-25(4)图示用优选的3位逻辑码(“LM”码)编码的8状态存储器的编程。
图26A示意性地图示包含类似于图9所示的ECC字段的ECC页。
图26B图示构成数据页的多个ECC页。
图27是图示加速的PWR的一般实施例的流程图。
图28是图示图27所示的加速的PWR的优选实施例的流程图。
图29图示在已写入一个字线上的一组3位存储器单元之后为写入后读取所选择的样本。
具体实施方式
存储器系统
图1图示与其中体现本发明的特征的存储器器件通信的主机。主机80通常发送要在存储器器件90处存储的数据,或通过读存储器器件90来取得数据。存储器器件90包括由控制器102管理的一个或多个存储器芯片100。该存储器芯片100包括存储器单元的存储器阵列200,每个单元能够被配置为用于存储多位数据的多电平单元("MLC")。该存储器芯片还包括诸如感测模块480、数据锁存器430和I/O电路440的外围电路。芯片上控制电路110控制每个芯片的低级存储器操作。控制电路110是与外围电路合作以对存储器阵列200进行存储器操作的芯片上控制器。该控制电路110通常包括状态机112来提供存储器操作的芯片级控制。
在许多实施方式中,主机80经由控制器102与存储器芯片100通信和交互。该控制器102与存储器芯片协作,并控制和管理更高级的存储器操作。例如,在主机写入中,主机10发送要写到在从主机的操作系统的文件系统分配的逻辑扇区中的存储器阵列100的数据。在控制器中实现的存储器块管理系统对这些扇区阶段性存储(stage),并将它们映射并存储到存储器阵列的物理结构。
在2010年7月8日公布的美国专利申请公开号:2010/0172180Al中公开了优选的块管理系统,其全部公开通过参考合并于此。
固件60提供代码以实现控制器102的功能。错误校正码("ECC")处理器62在存储器器件的操作期间处理ECC。在另一实施例中,在主机内实现控制器102。
物理存储器结构
图2示意性地图示了非易失性存储器单元。存储器单元10可以由具有诸如浮置栅极或介电层的电荷存储单元20的场效应晶体管实现。存储器单元10还包括源极14、漏极16和控制栅极30。
存在当今正使用的许多商业成功的非易失性固态存储器器件。这些存储器器件可以使用不同类型的存储器单元,每个类型具有一个或多个电荷存储元件。典型的非易失性存储器单元包括EEPROM和快闪EEPROM。在美国专利第5,595,924号中给出了EEPROM单元和制造它们的方法的例子。在美国专利第5,070,032、5,095,344、5,315,541、5,343,063、5,661,053、5,313,421和6,222,762号中给出了快闪EEPROM单元、其在存储器系统中的使用和制造它们的方法的例子。具体地,在美国专利第5,570,315、5,903,495、6,046,935号中描述了具有NAND单元结构的存储器器件的例子。而且,使用介电存储元件的存储器器件已经由以下描述:Eitan等人的“NROM:ANovelLocalizedTrapping,2-BitNonvolatileMemoryCell”,IEEEElectronDeviceLetters,vol.21,no.11,2000年11月,543-545页和美国专利第5,768,192和6,011,725号。
实践中,通常通过当向控制栅极施加参考电压时感测跨过单元的源极和漏极的导电电流来读取该单元的存储器状态。因此,对于单元的浮置栅极上的每个给定的电荷,可以检测到针对固定参考控制栅极电压的相应导电电流。相反,阈值电压被定义为以给定的电荷将刚好导通该单元的在控制栅极上的电压。类似地,可编程到浮置栅极上的电荷的范围定义了对应的阈值电压窗或对应的导电电流窗。
或者,代替检测在划分的电流窗之间的导电电流,能够在控制栅极处在测试下为给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流通过位线的电容或已知电容器而放电的速率来实现针对阈值电流检测导电电流。
如可以从上述描述看出的,使得存储器单元存储的状态越多,其阈值窗划分得越精细。例如,存储器器件可以具有拥有范围从-1.5V到5V的阈值窗的存储器单元。这提供了6.5V的最大宽度。如果该存储器单元要存储16个状态,则每个状态可以在阈值窗中占据200mV到300mV。这将需要在编程和读操作中的更高的精度以便能够实现需要的分辨率。
存储器阵列200通常被组织为在行和列中排列且可由字线和位线寻址的二维阵列的存储器单元。可以根据NOR类型或NAND类型架构来形成该阵列。
图3图示了存储器单元的NOR阵列的例子。在存储器阵列200中,每行存储器单元通过其源极14和漏极16以菊链方式连接。该设计有时称为虚拟接地设计(virtualgrounddesign)。一行中的单元10使其控制栅极30连接到诸如字线42的字线。一列中的单元使其源极和漏极分别连接到诸如位线34和36的所选位线。
图4图示了被并行感测或编程的在例如NAND配置中组织的一页存储器单元。图4主要示出了存储器阵列200中的NAND串50的堆(bank)。NAND串50包括通过其源极和漏极菊链链接的一系列存储器晶体管(例如4、8、16个或更多)。一对选择晶体管S1、S2控制存储器晶体管链分别经由NAND串的源极端和漏极端与外部的连接。在存储器阵列中,当导通源极选择晶体管S1时,源极端耦合于源极线34。类似地,当导通漏极选择晶体管S2时,NAND串的漏极端耦合于存储器阵列的位线36。在该链中的每个存储器晶体管10担当存储器单元。其具有电荷存储元件20来存储给定量的电荷以便表示意图的存储器状态。每个存储器晶体管的控制栅极允许对读取和写入操作的控制。一行NAND串的对应存储器晶体管的控制栅极都连接到相同字线(比如WL0、WL1,……)。类似地,(分别经由选择线SGS和SGD访问的)每个选择晶体管S1、S2的控制栅极提供分别经由其源极端和漏极端对NAND串的控制访问。
当在编程期间读或验证在NAND串内的被寻址的存储器晶体管10时,经由公共字线向其控制栅极供应适当的电压。同时,通过对NAND串50中的剩余未寻址的存储器晶体管的控制栅极施加足够的电压来完全导通该剩余未寻址的存储器晶体管。以此方式,有效地创建了从各个存储器晶体管的源极到NAND串的源极端的导电路径,且类似地对于各个存储器晶体管的漏极到该单元的漏极端创建了导电路径。在美国专利第5,570,315、5,903,495、6,046,935号中描述了具有这样的NAND串结构的存储器器件。
诸如页70的"页"是被使得能够并行被感测或编程的一组存储器单元。这通过相应页的感测放大器来实现。例如,页70沿着一行,且通过施加到共同连接到字线WL3的、该页的单元的控制栅极的感测电压来感测。沿着每列,诸如单元10的每个单元可由感测放大器经由位线36来访问。以上所称的页是物理页存储器单元或感测放大器。这取决于上下文,在每个单元都存储的情况下。
感测电路和技术
图5A将图1所示的感测模块更详细地图示为包含跨过存储器单元的阵列的一堆p个感测模块。并行地工作的整堆p个感测模块480允许沿着一行的一组(或物理页)p个单元10被并行读取或编程。基本上,感测模块1将感测在单元1中的电流I1,感测模块2将感测在单元2中的电流I2,……,感测模块p将感测在单元p中的电流Ip,等等。该页的从源极线34流出到聚集节点CLSRC中且从那里流到地的总单元电流iTOT将是p个单元中的所有电流的总和。
在传统的存储器架构中,具有公共字线的一行存储器单元形成两个或多个页,其中,在一页中的存储器单元被并行读取和编程。在一行具有两页的情况下,一页被偶数位线访问,且另一页被奇数位线访问。一个物理页的感测电路在任一时间被耦合到偶数位线或耦合到奇数位线。
在当前生产的芯片中,物理页可以是64k或更大。在优选实施例中,组是一系列(arunof)整行单元。这是所谓的“全位线”架构,其中,该页由分别耦合于连续位线的一行连续的存储器单元构成。
图5B图示包括感测放大器的感测模块。感测放大器490检测单元的导电电流高于还是低于参考水平。感测的结果被锁存在对应的锁存器集430中(见图1)。
擦除块
在快闪存储器和其他类型存储器之间的一个重要差别是必须从已擦除状态编程单元。也就是说,浮置栅极必须首先清空电荷。然后,编程向浮置栅极添加回期望的电荷量。其不支持将电荷的一部分从浮置栅极移除以从较高的编程状态去往较低的编程状态。这意味着,更新的数据不能重写已有的数据,且必须被写到先前未写入的位置。
另外,擦除要将所有电荷从浮置栅极中清空,且通常花费相当多的时间。由于这个原因,这将很麻烦,且逐单元或甚至逐页地擦除是很慢的。实践中,存储器单元的阵列被划分为大量存储器单元块。如对于快闪EEPROM系统共同的,该块是擦除的单位。即,每个块包含一起被擦除的最小数量的存储器单元。
图6示意性地示出在可擦除块中组织的存储器阵列的例子。电荷存储存储器器件的编程仅会导致向其电荷存储元件添加更多的电荷。因此,在编程操作之前,必须移除(或擦除)在存储器单元的电荷存储元件中的已有电荷。当一起(即,在一次快闪中)电擦除整个单元阵列200、或该阵列的大量单元组时,诸如EEPROM的非易失性存储器被称为“快闪”EEPROM。一旦被擦除,然后,可以重新编程该组单元。可一起擦除的该组单元可以包括一个或多个可寻址的擦除单元300。擦除单元或块300通常存储一页或多页数据,页是编程和读取的最小单位,虽然可以在单个操作中编程或读多于一页。每页通常存储一个或多个数据扇区,扇区的尺寸由主机系统来限定。一个例子是遵循随磁盘驱动器建立的标准的512字节的用户数据加上关于用户数据和/或其所存储在的该块的管理开销信息的一些字节的扇区。
在图6所示的例子中,存储器阵列200中的各个存储器单元可由诸如WL0-WLy的字线42和诸如BL0-BLx的位线36来访问。该存储器被组织为擦除块,比如擦除块0、1……m..。也参考图5A和5B,如果NAND串50包含16个存储器单元,则该阵列中的第一堆NAND串将可由选择线44和诸如WL0到WL15的字线42来访问。擦除块0被组织为具有一起擦除的第一堆NAND串的所有存储器单元。在另一存储器架构中,可以一起擦除多于一堆的NAND串。
二进制(SLC)和多状态(MLC)存储器划分的例子
如之前所述,非易失性存储器的例子由场效应晶体管的阵列形成,每个场效应晶体管具有在其沟道区和其控制栅极之间的电荷存储层。电荷存储层或单元可以存储一范围的电荷,带来对于每个场效应晶体管的一范围的阈值电压。可能的阈值电压的范围跨度为阈值窗。当该阈值窗被划分为阈值电压的多个子范围或区时,每个可分辨的区用于表示存储器单元的不同存储器状态。可以由一个或多个二进制位来编码多个存储器状态。
图7图示具有每个单元处于两个可能状态之一的全体单元的二进制存储器。每个存储器单元的阈值窗被单个分界电平划分为两个不同区域。如图7(0)所示,在读取期间,在较低区域和较高区域之间的读取分界电平rV1用于确定单元的阈值电平位于哪个区域。如果该单元的阈值位于较低区域中则其处于"已擦除"状态中,且如果其阈值位于较高区域中则处于"已编程"状态。图7(1)图示存储器初始地具有处于"已擦除"状态中的所有其单元。图7(2)图示一些单元被编程到"已编程"状态。1位或二进制码用于编码这些存储器状态。例如,位值“1”表示“已擦除”状态,且“0”表示“已编程”状态。通常,通过施加一个或多个编程电压脉冲来进行编程。在每个脉冲之后,感测该单元来验证阈值是否已经移动超出验证分界电平vV1。具有这种存储器单元划分的存储器被称为"二进制"存储器或单电平单元("SLC")存储器。将看到,二进制或SLC存储器以宽的错误余量来操作,因为整个阈值窗仅被两个区域占据。
图8图示具有每个单元处于八个可能状态之一的全体单元的多状态存储器。每个存储器单元的阈值窗由至少七个分界电平划分为八个不同区域。如图8(0)所示,在读取期间,使用读取分界电平rV1到rV7来确定单元的阈值电平位于哪个区域。如果该单元的阈值位于最低区域中则其处于"已擦除"状态中,且如果其阈值位于较高区域中则处于多个"已编程"状态之一。图8(1)图示存储器初始地具有处于"已擦除"状态的所有其单元。图8(2)图示一些单元被编程到"已编程"状态。具有较低位、中间位和较高位的3位码可以用于表示八个存储器状态的每个。例如,分别由“111”、“011”、“001”、“101”、“100”、“000”、“010”和“110”表示“0”、“1”、“2”、“3”、“4”、“5”、“6”和“7”状态。通常,通过施加一个或多个编程电压脉冲来进行编程。在每个脉冲之后,感测该单元来验证该阈值是否已经移动超出作为验证分界电平vV1到vV7之一的基准。具有这种存储器单元划分的存储器被称为"多状态"存储器或多电平单元("MLC")存储器。
类似地,存储4位码的存储器将具有较低位、第一中间位、第二中间位和较高位,表示十六个状态的每个。通过至少15个分界电平来将阈值窗分界为十六个不同区域。
随着存储器的有限阈值窗被划分为更多区域,编程和读取的分辨率将必然变得更精细。因此,多状态或MLC存储器需要以与具有较少的区域的存储器相比更窄的错误余量来操作。换句话说,错误率随着在每个单元中存储的位数量而增加。通常,错误率随着每个单元中存储的位的数量而增加。通常,错误率随着阈值窗中的划分的区域的数量而增加。
通过错误校正码(“ECC”)的校正
快闪存储器容易出错。为了保证无错误的数据,实施错误校正码(“ECC”)来校正错误。
图9示意性地图示包含ECC字段的数据页。如结合图4和图5A描述的,通过并行工作的对应页的感测模块来并行编程和读取一个物理页的存储器单元。当每个存储器单元存储多位数据时,将存在与每个物理页相关的多个数据页。数据页70’包括用户部分72’和系统部分74’。用户部分72’用于存储用户数据。系统部分74’通常由存储器系统使用来存储系统数据。ECC被包括在系统数据中。对数据页计算ECC。通常,通过控制器102中的ECC处理器62计算ECC(见图1)。
在从主机接收数据时,一页数据阶段性存储在控制器102中,且通过ECC处理器62来计算其ECC76’。然后,并入了该ECC的数据页被写入到存储器阵列200。通常,当读取该数据页时,数据页被锁存在数据锁存器430中,且从I/O电路440移出到控制器102。在控制器102处,将该数据页的现有ECC与对读取的数据计算的ECC的第二版本相比较。ECC通常包括用于快速检测数据页中的任何错误的错误检测码("EDC")。如果EDC指示在读取的数据页中存在任何错误,则调用ECC来校正在读取的数据页中的出错位。
可以设计ECC来校正任何数量的错误位。其需要校正的位越多,该ECC将越复杂且越多计算量。为了质量保证,基于在存储器器件的寿命末期("EOL")的预期最差情况单元错误率("CER")来设计传统ECC。因此,它们需要校正高达统计错误总体的远在尾端的最大数量的错误位。
图10A示出全体的百分比在各种范围的标准偏差σ的错误率的正态分布。例如,总体的仅2.1%位于从2σ到3σ的范围内。总体的仅0.1%位于从3σ到4σ的范围内。
图10B图示表格格式的图10A的分布。可以看出,总体中的仅E-09或十亿分之一超出6σ。在该表格中的最后列示出了最差情况下的示例存储器器件的估计错误率。例如,总体的5%将具有1个错误位,总体的0.135%将具有4个错误位,且总体的十亿分之一将具有42个错误位。
考虑125个存储卡的样本。每个卡具有16GB的容量,每个数据页2KB。这达到每个页为2KB的十亿页的总数。为了保证125个存储卡的样本中没有一个页将在卡的寿命末期具有错误,将需要能够校正高达42位的ECC。
在存储器的寿命期间的错误
如上所述,通常设计ECC来校正预计的在存储器的可用寿命期间的任何错误。这些错误来自于大量源。
图11是列出快闪存储器的主要错误源的表格。图11(A)示出作为在写入页之后出现的位错误的来自写入后的错误EPW(NCYC)的第一源。在快闪存储器中,“编程”指将单元的阈值从已擦除状态增加的处理。该术语将与"写入"可交换地使用。错误率随着编程-擦除循环的数量NCYC而增加。在数据已被写到单元之后,尽管通过了验证操作,但是数据可能仍然由于两个原因而出错。
写之后的错误的第一原因是由于未被验证操作检测到的过编程(over-programming)。当要同时编程多个存储器单元时可能发生过编程。这是因为由于包括存储器单元的半导体器件的结构和操作中的小变化,每个存储器单元的特征不同;因此,通常将出现不同单元的编程速度方面的变化。这导致存储器单元比其他更快地变为已编程,且导致一些存储器单元将被编程到与意图的不同状态的可能性。多个存储器单元的更快编程可能导致过冲(over-shooting)期望的阈值电压电平范围,产生被存储的数据中的错误。
通常,当正编程数据时,该器件的编程-验证处理将检查存储器单元的编程的阈值电压是否高于将当前状态与相邻较低编程状态相分界的参考电平。但是,编程-验证不知道该编程的阈值电压高于该参考电平多少。因此,器件通常不保证对阈值电压的上限。一些器件进行检查来查看软编程处理(以下描述)是否将阈值电压升高得太高;但是,这些器件不进行检查来查看常规编程处理是否将阈值电压升高得太高。因此,将阈值电压升高得超出期望状态的范围的过编程可能不被察觉地发生。过编程可能导致存储器单元过冲到下一已编程状态,且因此存储不正确的数据。将在随后的读取操作中检测到该错误,其中,通常将相对于分界给定存储器状态的阈值范围的下限和上限来检查单元的编程的阈值。可以在美国专利第5,321,699、5,386,422、5,469,444、5,602,789、6,134,140、6,914,823和6,917,542号中找到关于过编程的更多信息。
写之后的错误的第二原因在于由于存储元件之间的场耦合而导致的在存储的电荷电平中的明显偏移。该耦合的程度必然随着存储器单元阵列的尺寸降低而增加,这由于集成电路制造技术的改进而发生。该问题在已在不同时间被编程的两组相邻单元之间最明显地发生。一组单元被编程以向对应于一个数据集的其存储元件添加一个水平的电荷。在用第二数据集编程第二组单元之后,由于电荷对与第一组存储元件电容性耦合的第二组存储元件的影响,因此从第一组单元的存储元件读取的电荷电平通常显得与已编程的不同。具体地,当被感测时,存储器单元将显得具有比其更少扰动时更高的阈值电平(或被更多编程)。这也已知为Yupin效应,且这在美国专利第5,867,429号中描述,该专利通过全部引用被合并于此。该专利描述了物理地相互隔离两组存储元件,或考虑当读取第一组存储元件时电荷对第二组存储元件的影响。
图11(B)示出作为由于在EOL处的数据保留而导致的位错误的错误EDR(T,NCYC)的第二源。该错误率随着温度T和编程-擦除循环的数量NCYC而增加。该数据错误由于该器件的历史。其通常涉及依赖于对环境、例如温度的存储器器件暴露的数据保留问题。随着时间,实际存储的电荷水平可能缓慢地泄漏掉,使得编程的阈值降低。
随着在每个存储器单元中存储的状态的数量增加,对存储元件上的已编程电荷电平的任何偏移的容忍度降低。由于随着在每个存储器单元存储元件上存储的状态的数量增加,必然使得为每个存储状态设计的电荷的范围更窄并被放置得更靠近地在一起,所以必须以增加的精确度来进行编程,且降低可以容忍的在存储电荷电平的任何编程后偏移的程度。当编程和读取一个单元时以及当读取、编程和擦除具有与该单元的某程度的电耦合的其他单元、比如相同列或行中的其他单元和共享一个线或节点的其他单元时,可以创建对在该单元中存储的电荷的实际干扰。
图11(C)示出作为由于读取干扰而导致的位错误的错误ERD(NR,NCYC)的第三源。该错误率随着读取的数量和编程-擦除循环的数量NCYC而增加。
对快闪存储器的一个重要考虑是随着其使用老化,其具有耐用性问题。当重复编程和擦除一个单元时,通过对电介质遂穿,电荷在浮置栅极20中来回进出。每次一些电荷可能变得被捕获在电介质中,且将修改单元的阈值。通过循环计数NCYC(也已知为"热计数")来测量单元已经历的编程-擦除循环的数量。通过重复循环,对于给定的擦除块,NCYC的值增加,使得该块中的单元的阈值窗逐渐变窄。因此,编程-擦除循环效应将显著影响图11中列出的所有错误源。
图12是示出在示例存储器器件的寿命的初期和末期该器件的估计的总错误的表格。图12(A)示出来自图11(A)到图11(C)中列出的三个源的总错误为ETOT(NCYC,NR)=EPW(NCYC)+EDR(T,NCYC)+ERD(NR,NCYC)。
图12(B)示出当该存储器相对较新(低NCYC)但已在85℃下烘烤了5年且已经被读取106次时的估计ETOT。对各个分量错误的估计是:EPW(1)~3,EDR(85℃,1)~2,且ERD(1M,1)~0。这些产生了总的估计错误ETOT(1,1M)=3+2+0=5位。
图12(C)示出了当存储器接近器件的寿命末期("EOL")时的估计ETOT。其特征为高编程-擦除循环(NCYC=10K),其他参数类似于图12(B)的参数。对各个分量错误的估计是EPW(10K)~10,EDR(85℃,10K)~10,且ERD(1M,10K)~1。这些产生了总的估计错误ETOT(10K,1M)=10+10+1=21位。
在图11和图12中描述的三个错误源中,通常,由于读取干扰而导致的错误ERD不如由于写入导致的错误EPW和由于数据保存而导致的错误EDR显著。可以通过周期性地在“读清洗(readscrub)”操作中刷新单元的阈值电平来减少数据保留错误。
为了校正可能在存储器中出现的各种错误,尤其是在写之后出现的错误,使用EEC(先前结合图9描述)。但是,使用ECC校正错误将消耗处理时间,且其需要校正的位越多,需要的计算时间越多。通过使用能够校正大量错误位的强ECC,存储器性能被降低。可以实施另外的专用硬件来在合理时间量内来进行ECC。这种专用硬件可能在控制器ASIC芯片上占据相当量的空间。
图13是图示传统的ECC必须被设计来校正最差情况总错误ETOT的表格。这将是具有高编程-擦除循环计数和数据保持规范的在寿命末期的器件。对于在图12(C)给出的例子,ECC必须能够校正至少21个错误位。
从较高密度存储器部分向较低错误率存储器部分适应性重写数据来控制
错误率
根据本发明的一般方面,具有存储器单元的阵列的快闪存储器被配置有第一部分和第二部分。该第二部分以更高密度存储数据,但用比第一部分更小的错误余量来操作。为了有效存储,数据被写到第二部分。然后,该数据被读回以检查过量的错误位。如果错误位超过了预定量,则该数据被重写到更少错误倾向的第一部分。这对由于将数据写到存储器而产生的错误位的最大数量施加了限制。在错误率的统计分布中,该限制表示对该分布的数量标准偏差的限制,以便可以忽略(具有更高错误率的)分布的远尾端。这允许设计更小和更有效的错误校正码(“ECC”)用于校正较少数量的错误位,由此改善存储器的性能并降低成本。
图14A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。存储器单元的阵列200被划分为第一部分410和第二部分420。第二部分420具有被配置为高密度存储的存储器单元,每个单元存储多位的数据。第一部分410具有被配置为较低密度存储的存储器单元,每个单元存储比第二部分更少数量的位。例如,相比于第二部分中的3位数据,第一部分中的存储器单元被配置以存储1位数据。鉴于先前的讨论,第一部分将以比第二部分宽得多的错误余量来操作。因此,第一部分中的存储器操作将具有比第二部分中的更少的错误。
题为“SelectiveOperationofaMulti-stateNon-volatileMemorySysteminaBinaryMode”的美国专利号第6,456,528号公开了一种快闪非易失性存储器,具有通常在多于两个状态中操作的存储器单元,但所选的存储器单元仅在两个状态中操作,以便在两状态操作期间提供增加的余量。这允许在两个状态中操作的存储器单元的更快的编程和更长的操作寿命,此时比起多状态操作提供的数据存储器的增加密度,更期望具有这些优点。US6,456,528的整个公通过参考合并于此。
当要向存储器阵列200写入到来的数据页时,为了效率和高容量,优选其被存储在高密度的第二部分中。因此,该数据页的第一副本被写到第二部分。
稍后,在"写入后读取"中读回该数据页的第一副本以确定是否存在任何错误。这通过与可能被缓存的原始副本的比较或通过检查ECC的EDC部分来实现。
确定在读取的副本中的错误位的数量是否超出了预定量。如果错误位的数量没有超出预定量,则在第二部分中存储的第一副本被认为有效。对数据页的随后读取将来自于第二部分中的第一副本,且将由控制器处的ECC来校正任何错误。
如先前结合图11所述的,在编程期间的验证处理仅检查欠编程(under-programming)而不检查过编程。因此,在已经编程-验证了数据页之后可能仍然存在错误。将采取针对所有分界电平的读操作(见图7和图8)来检测该数据页中的任何错误。另外,相邻单元的随后编程的Yupin效应可能干扰所考虑的数据页,且偏移视在的感测结果。因此,读回应该至少在可能对当前数据页具有显著Yupin影响的所有相邻单元的编程之后。在另一实施例中,读回是在包含所考虑的数据页的块中的所有单元都结束编程之后。
在美国专利第6,914,823、6,917,542和7,009,889号中也公开了“写入后读取”,它们的全部公开通过参考合并于此。
图14B图示将数据页的第二副本重写到图14A的存储器阵列的第一部分中。在写入后读取检测到数据页中的错误位的数量已经超过预定量之后,该数据页的第二副本被重写到第一部分。该第二副本是可能被缓存或在另一实施例中通过取得第一副本并用ECC校正错误位的原始数据的第二副本。
在第二副本被写到第一部分中之后,其将替换第二部分中的第一副本而作为有效副本。第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将被更新到对第二副本的直接的随后访问。
在一个优选实施例中,第一部分使每个存储单元存储一位数据,且第二部分使每个存储单元存储多于一位数据。
图15是图示根据图14A和图14B中描述的实施例的写入后读取和适应性重写的处理的流程图。
步骤500:将存储器配置为第一和第二部分,第一部分具有用比第二部分的错误余量更大的错误余量来操作的存储器单元。
步骤510:将一组输入数据的第一副本编程在第二部分中。
步骤520:在预定时间之后从第二部分中读取第一副本以检查错误。
步骤530:错误超出了预定数量的错误位?如果是,前进到步骤540。否则,前进到步骤550。
步骤540:将该组输入数据的第二副本编程在第一部分中。
步骤550:标识最后写入的副本作为有效数据用于随后的读取。
步骤560:该组输入数据完成存储在非易失性存储器中。
在替换的实施例中,第一部分用作用于到来的数据的缓存,因此输入数据的缓存副本被编程到该缓存中。然后,该数据的第一副本被编程到第二部分中。
如果写入后读取没有检测到第一副本中的过量错误,则第一副本将被视为有效,且随后的读取将被导向访问第一副本。
另一方面,如果写入后读取检测到第一副本中的过量错误,则在第一部分中的缓存的副本将替换第二部分中的第一副本而作为有效数据。该第一副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新为对缓存的副本的直接随后访问。
题为“Multi-stateNon-volatileFlashMemoryCapableofBeingitsOwnTwoStateWriteCache”的美国专利第5,930,167号公开了具有两个部分的快闪存储器阵列。第一部分被配置为每单元存储一位,且第二部分被配置为每单元存储多于一位。第一部分担当低密度写入缓存。到来的数据首先被缓存在该第一部分中。稍后,在后台,缓存的数据被传输到具有更高存储密度的第二部分。US5,930,167的整个通过参考合并于此。
在优选实施例中,第一部分进一步被提供有第一区块(section)和第二区块。到来的数据被缓存在第一部分的第一区块中,且该数据的第一副本被写到第二部分。然后,第二部分中的第一副本被读回以检查过量错误位。如果错误位超过预定量,则到来的数据的第二副本被写到第一部分的第二区块。
图16A图示根据本发明的优选实施例的被划分为两个部分且第一部分被提供有缓存区块和重写区块的存储器阵列。如图14A中,存储器单元的阵列200被划分为第一部分410和第二部分420。第二部分420具有被配置为高密度存储器的存储器单元,每个单元存储多位数据。第一部分410具有被配置为较低密度存储器的存储器单元,每个单元存储比第二部分更少数量的位。因此,第一部分用比第二部分更宽的错误余量来操作。
第一部分410进一步被提供有用于缓存到来的数据的第一区块411和用于存储来自第二部分的重写的第二区块412。
当要向存储器阵列200写入到来的数据页时,缓存的副本被缓存在第一部分410的第一区块411中。为了效率和高容量,第一副本优选存储在高密度的第二部分中。因此,该数据页的第一副本被写到第二部分。
根据另一优选实施例,存储器阵列被提供有在集成电路芯片上的数据锁存器集,通过将第一副本和缓存的副本加载到该数据锁存器集中并在该数据锁存器集处进行比较来实现对第一副本中的错误位的检查。
通过不在控制器处进行比较,数据无须被切出到控制器,因此可以节省很多时间。图1示出用于进行数据比较的在芯片上的数据锁存器430。
图16B图示根据写入后读取的优选实施例的页比较技术。在“写入后读取”中读回第二部分中的数据页的第一副本来确定是否存在任何错误。这通过与缓存的副本相比较来实现。
如果错误位的数量没有超出预定量,则在第二部分中存储的第一副本被认为有效。缓存的副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将更新到对该第一副本的直接随后访问。对数据页的随后读取将来自于第二部分中的第一副本,且将在控制器处通过ECC来校正任何错误。
图16C图示在写入后读取已确定在第二部分中的数据页中的过量错误之后对第一部分的重写。在写入后读取检测到第一副本的数据页中的错误位的数量超过了预定量之后,该数据页的第二副本被重写到第一部分410的第二区块412。第二副本取自缓存的副本。
在第二副本已被写到第一部分的第二区块412之后,其将替换第二部分中的第一副本。第一副本和缓存的副本将变为废弃的,且在控制器(见图1)的固件中实现的块管理系统中的目录将被更新为对第二副本的直接随后访问。
图17是图示根据图16A到图16C中描述的实施例的写入后读取和适应性重写的处理的流程图。
步骤600:将存储器配置为第一和第二部分,该第一部分具有用比第二部分的错误余量更大的错误余量来操作的存储器单元。
步骤602:将一组输入数据的缓存的副本编程在第一部分的第一区块中。
步骤610:将该组输入数据的第一副本编程在第二部分中。
步骤620:在预定时间之后从该第二部分中读取第一副本以检查错误。
步骤630:错误超出了预定数量的错误位?如果是,继续到步骤632。否则,继续到步骤650。
步骤632:从第一部分的第一区块中读取该组输入数据的缓存的副本。
步骤642:将缓存的副本作为该组输入数据的第二副本编程在第一部分的第二区块中。
步骤650:标识最后写入的副本作为有效数据用于随后的读取。
步骤660:该组输入数据完成存储在非易失性存储器中。
为了例示和描述的目的已经呈现了对本发明的以上详细描述。不意图穷举本发明或将其限制到所公开的精确形式。考虑到上述教导,许多修改和变化是可能的。选择所描述的实施例以便最佳地说明本发明的原理和其实际的应用,从而使得本领域技术人员能够在各种实施例中以及通过适合于所构思的具体用途的各种修改来最佳地使用本发明。意图本发明的范围由附于此的权利要求限定。
增强的写入后读取错误管理
在本发明的另一方面,实现增强的写入后读取错误管理。在存储器器件的寿命初期不使能写入后读取。在寿命初期存储器器件的错误率非常低,且不需要操作写入后读取。这避免浪费时间来进行写入后读取。由于存储器器件通过使用而老化,在器件的预定年龄时使能本发明的增强的写入后读取和错误管理。
在优选实施例中,通过随存储器单元的每个擦除块维持的热计数来确定存储器器件的年龄。该热计数跟踪耐用性和该擦除块通过擦除和编程操作而被循环的次数。无论何时擦除块的热计数超过预定热计数阈值时,增强的写入后读取错误管理将开始并操作直到存储器器件的寿命末期。
图18图示被组织为擦除块的存储器。如结合图6先前描述的,每个擦除块是一起被擦除的一组存储器单元。也如先前描述的,当重复编程和擦除一个单元时,通过在遂穿电介质,电荷在浮置栅极20(见图2)中来回进出。每次一些电荷可能变得被捕获在电介质中,且将修改单元的阈值。通过循环计数NCYC(也已知为"热计数")来测量单元已经历的编程-擦除循环的数量。通过重复循环,对于给定的擦除块,NCYC的值增加,该块中的单元的阈值窗逐渐变窄。图18图示其中在每个擦除块(m)中维持热计数NCYC(m)302的优选实施例。由于可编程的单元是一页,因此每个块的热计数可以存储在图9所示的数据页70'的系统数据区中。或者,热计数可以存储在存储器中的主控列表中。每次擦除一个块,其热计数递增一。
图19是图示当存储器器件已老化到由该热计数确定的预定程度时被使能的错误管理的流程图。
步骤700:提供被组织为存储器单元的擦除块的非易失性存储器,其中,每个擦除块的存储器单元一起被擦除,且随每个块的擦除/编程循环的数量而老化。
步骤710:提供用于校正与老化的存储器器件相关的错误的错误管理。在优选实施例中,该错误管理是先前描述的写入后读取的错误管理。
步骤720:通过维持记录了每个块经历的擦除/编程循环的数量的热计数来跟踪每个块的年龄。
步骤730:存储器块的热计数>预定热计数阈值?在优选实施例中,该预定热计数阈值由存储器中存储的文件系统配置文件中的参数Hot_count_threshold_EPWR给出(见图21)。如果大于,则前进到步骤740,否则前进到步骤750。
步骤740:对存储器的剩余寿命使能该错误管理。
步骤750:仍不使能该错误管理。
在本发明的另一方面的优选实施例中,存储器的高密度存储部分(D3)具有每个存储3位数据的存储器。存储器的更低错误倾向的低密度存储部分(Dl)具有每个存储1位数据的存储器单元。输入的数据首先阶段性存储(stage)在D1中,且随后将其折叠(fold,折叠存入)到D3中。当增强的写入后读取错误管理被使能时,读回D3中当前的填充的块;且如果错误率超过预定阈值,则当前D3块被拒绝,且进行重试,数据被重新折叠到新的D3块中。再次读回该新D3块,且检查该新D3块的过量错误率。如果新D3块通过了,则其具有良好的数据,且使得D1中的原始数据废弃。如果新D3块再次示出过量错误率,则再次丢弃该新D3块。如果在预定数量的重试之后过量错误率仍持续,则不试图进行进一步的重试,且放弃D1到D3折叠操作,原始数据保持在D1处。此时,该存储器器件被认为太老而不适于进一步的编程操作,且使得该存储器器件只读,以保留存储器器件中存储的现有数据的完整性。
图20A-20C图示在被配置有D1和D3部分的存储器中实施写入后读取错误管理的各种例子。在Gorobets等人在2009年12月18日提交的题为"MAINTAININGUPDATESOFMULTI-LEVELNONVOLATILEMEMORYINBINARYNON-VOLATILEMEMORY"的美国申请号12/642,584中也公开了被配置有D1和D3部分的存储器;其整个公开通过参考合并于此。
图20A图示根据本发明的优选实施例的被划分为两个部分的存储器阵列。存储器单元的阵列200(见图1)被划分为第一部分410和第二部分420。第二部分420具有被配置为高密度存储的存储器单元,每个单元存储多位数据。第一部分410具有被配置为较低密度存储的存储器单元,每个单元存储比第二部分更少数量的位。例如,第一部分中的存储器单元被配置以存储1位数据,相比于第二部分中的3位数据。每个单元存储1位数据的第一部分也将被称为D1,且每个单元存储3位数据的第二部分被称为D3。鉴于先前的讨论,第一部分将以比第二部分宽得多的错误余量来操作。因此,第一部分中的存储器操作将具有比第二部分中更少的错误。
在一个实施例中,第一部分410或D1进一步划分为第一区块411和第二区块412。
在步骤(1)中,在主机写入期间,输入数据首先被缓存在第一区块411中或直接被写到第二区块412。如果该输入数据被分段,则其首先被缓存在第一区块中。如果该输入数据是实质的一系列相继数据,则其被逐页直接写到第二区块412中。
在步骤(2)中,在任何情况下,输入数据最终在第二区块412中,其中写入的页被阶段性存储到虚拟D1块中,比如块m.1、m.2和m.3中。在其中每个块包含来自明确定义的一组逻辑地址的数据的方案中,虚拟块可能不对应于物理块,但仍具有被分布在若干物理D1块上的该组逻辑地址。
在步骤(3)中,随着数据逐页被写到D1中,当三个二进制页在D1中时,其可以被复制到D3中的单个3位页,这也称为从D1到D3的折叠。
通过实施增强的写入后读取错误管理(“EPWR”),在存储器寿命时间的某时,写入后读取错误管理将开始。
在步骤(4)中,在虚拟D1块m.l、m.2和m.3的完整页已被折叠到D3块m中之后,D3块m完成。然后,可以通过EPWR处理它,其中,D3块中的数据被读回且被检查ECC错误。如果ECC错误的数量小于如由在文件系统配置文件中设置的参数E_pw_check给出的那样的预定阈值,则在D3块中的数据被认为是有效的。然后,对应的D1页可以被安全替换且退休。
图20B图示其中图20A的D3块未通过写入后读取的测试的另一例子。步骤(1)到步骤(3)与图20A相同。
在步骤(4')中,当D3块中的数据被读回时,发现ECC错误的数量大于E_pw_check。这意味着在D3中的数据至多是临界的(marginal),且不能被使用。
在步骤(5)中,在现有D3块未通过写入后读取测试的情况下,EPWR通过将数据折叠到新D3块中来指定重试。
在步骤(6)中,新D3块中的数据经历另一写入后读取测试。如果其通过了该测试,则新D3块中的数据被视为有效。然后,对应的D1页可以被安全替换且退休。
图20C图示其中图20B的新D3块再次未通过写入后读取测试的另一例子。步骤(1)到步骤(5)与图20B相同。
在步骤(6')中,当新D3块中的数据被读回时,发现ECC错误的数量大于E_pw_check。这意味着在重试的D3块中的数据仍不良好,且不能被使用。
EPWR处理可以指定对另一D3块的进一步重试。重试的数量由文件系统配置文件中的参数EPWR_retries来设置。例如,如果EPWR_retries为1,则在新块未通过该测试之后该处理将结束。
在该情况下,在步骤(7)中,不能使用新D3块,而是文件系统将直接访问存在于D1中的对应数据。
图21是图示与增强的写入后读取管理相关的示例参数的表格。该表格优选地被维持在存储器中存储的文件系统配置文件中。
E_pw_check——在文件系统配置文件中设置的变量,用于指定在ECC位水平的哪个#,D3块被认为是高风险的,且需要重新开始到新D3块的D1到D3折叠。
ECC_threshold_SLC——用于维持相对其来比较的SLC阈值以便决定是否继续EPWR所需的在文件系统配置文件中的变量。
EPWR_enable_flag——在文件系统配置文件中控制。0=不设置(缺省);1=当使能EPWR时设置。
Hot_count_enable_flag——0=不被使能;1=被使能。
Hot_count_threshold_EPWR——在文件系统配置文件中设置的变量,用于指定在什么热计数水平,需要EPWR。如果所有D3块的热计数<热计数阈值,则即使EPWR使能标记是被使能,也不触发EPWR处理。
EPWR_verify_page_budget——在文件系统配置文件中设置的变量,用于指定可以在EPWR的1阶段期间读取多少页。
EPWR_retries——用于限制重试的数量的在文件系统配置文件中的变量。
D3_Block_max_retries——用于限制在寿命时间期间对D3块的重试的总数的在在文件系统配置文件中的变量。
图22A是图示应用于具有D1到D3折叠的存储器的EPWR错误管理的优选实施方式的流程图。
步骤800:开始。
步骤810:D1到D3折叠,其中,来自D1的三个二进制数据页的数据被编程到D3的一个第三页(tertiarypage),如结合图20A描述的。
步骤812:完全填充了D3块?如果完全填充了,则继续到步骤820,否则返回到步骤810。
步骤820:增强的写入之后读取错误管理("EPWR")被使能?在图22B中给出了取决于器件年龄的使能的更多细节。如果EPWR被使能,则在步骤830处理EPWR。如果不是,写入的D3块的完整性未知,但乐观地假设为良好。继续到步骤850。
步骤830:处理EPWR。在图22C中给出了EPWR的更详细实施方式。
步骤840:主要在较高级别处,EPWR进行D3块的写入后读取以及ECC错误率的测试。如果错误不超过E_pw_check(见图21),则D3块是良好的。继续到步骤850。否则,D3块中的数据不能被使用,且考虑将D1数据折叠到新D3块的重试。继续到步骤860。
步骤850:D3块被视为良好的,因此,可以使得D1中的数据的原始副本废弃且退休。
步骤860:基于图22C中详细的多个考虑来决定是否对新D3块重试。如果不允许重试,则继续到步骤870。否则,继续到步骤862(如图22C所示)。
步骤862:对新D3块重复D1到D3折叠。返回处理另一块。
步骤870:在D3块中的数据被视为坏的,因此必须从D1中的原始副本中访问数据。
步骤872:由于在试图重写D3块时的大量不成功重试之后到达该步骤,因此该存储器被视为接近其寿命末期。其被置于只读状态以防止由于编程操作而造成的任何数据讹误。继续到步骤890。
步骤890:完成。
图22B更详细地图示增强的写入后读取错误管理的取决于器件年龄的使能特征。在图22B中示出图22A中的步骤820进一步包括以下:
步骤822:检查EPWR_emable_flag(见图21)是否被使能。如果未被使能,则完全没有实现EPWR。缺省继续到步骤850,其中,D3块被视为良好。如果被使能,继续到步骤824以控制在存储器器件的某些老化之后是否应该开始EPWR。
步骤824:检查Hot_count_enable_flag(见图21)是否被使能。如果未被使能,从存储器器件的寿命初期实现EPWR。直接继续到步骤830来处理EPWR。如果该标记被使能,继续到步骤826,其控制EPWR应该何时开始。
步骤826:检查D3块中的任何一个是否具有超出Hot_count_threshold_EPWR中的值的热计数。如果未超过,则该存储器器件仍然较新(young),且不易于出现过量错误,继续到步骤850,且基本上EPWR被暂缓(onhold)。如果热计数超过该阈值,则当错误变得明显时,存储器器件到达年龄,且将得益于EPWR处理。继续到步骤830来处理EPWR。
图22C更详细地图示在增强的写入后读取错误管理的优选实施方式。在图22C中示出了图22A中的步骤830进一步包括以下:
步骤832:检查是否存在可用于进行D3块的写入后读取和可能的重试的处理时间。优选地,在先前中,从在前台执行主机命令期间的未使用的时间中取得可用时间。如果有必要,该处理可以被分割为更小的组块(chunks)以便更好地利用在每个主机命令期间的空闲时间。如果存在开始该处理的可用时间,则继续到步骤834,否则,继续到步骤838。
步骤834:开始该处理,或如果该处理已经开始但在中间(interim)被中断,继续该处理。
步骤836:从D3读取并转移出数据页到控制器,用于检查EDC(错误检测码)。继续到步骤838。
步骤840:EPWR进行D3块的写入后读取以及ECC错误率的测试。如果错误不超过E_pw_check(见图21),则D3块中被测试的页是良好的。继续到步骤842。如果该页被测试为坏的,则D3块中的数据不能被使用,且考虑将D1数据折叠到新D3块的重试。继续到步骤864。
步骤842:D3块中的所有页都已被测试?如果不,则继续到步骤844来处理下一页。如果整个块被测试为良好,则继续到步骤850。
步骤844:选择在D3块中的下一页。返回到步骤836。
步骤862:在试图重试之前,检查重试的数量是否超过设置的限制EPWR_retries(见图21)。如果未超过,则通过继续到步骤866来尝试重试。如果重试的数量超过了设置的限制,则存储器器件被视为在寿命末期,且控制继续到步骤870。
步骤866:在尝试重试之前的另一考虑是检查过量错误是否是D1中的数据固有的而不是由于从D1到D3的编程错误而导致的。首先检查D1数据的过量ECC错误。如果错误的数量超过预定阈值,比如ECC_threshold_SLC(见图21),则重试没有意义。返回步骤834来处理另一D3块。
但是,相反,如果实现以下描述的可选特征,则相反继续到可选的步骤868。另一方面,如果D1数据是良好的,在步骤869中继续尝试重试另一D3块。在另一实施例中,在步骤862之前进行步骤866。
图22C还图示了由具有虚线的框指示的可选特征。由步骤864和865图示用于检查块是否在其寿命时间期间经历了太多的重试的一个选项。如果是,则该块的物理完整性可能是有问题的,并且最好使该块退休以便其不再使用。当实施该选项时,从步骤862中的否开始的流程将进行到步骤864。
步骤864:D3块是否经历了多于参数Block_max_retires定义的阈值的重试。如果是,继续到步骤865来退休该块,否则,继续到步骤866以便进行进一步的重写决定。
步骤865:D3块在其寿命时间期间经历了太多重试而不被认为是强健的。其退休且从循环(circulation)中被拿出。然后,控制直接继续到步骤869来重写该D3块。
另一选项是,在D1数据不是很好的情况下,首先通过ECC对其校正,并在折叠到D3之前将其在D1中重新阶段性存储。当实施此选项时,从步骤866中的是开始的流程将进行到步骤868而不是834。
步骤868:通过ECC来校正有问题的D1数据,且在D1中重新阶段性存储。继续到步骤869。
加速的写入后读取
先前的章节描述了在数据被写入(也称为"编程")之后实际读回该数据的技术。该技术被称为"PWR"(写入后读取)。根据先前描述的本发明的一个方面,PWR技术是增强的且称为"EPWR"(增强的写入后读取)。在该情况下,仅当需要时启动PWR操作。例如,仅在存储器开始由于使用而发生更多错误之后开始PWR。这将减轻与PWR相关的一些管理开销。
根据本发明的另一方面,取代写入后读取每个存储器单元来检查写入了什么,这可能消耗大量时间和系统资源,而仅对存储器单元的小样本进行写 入后读取,该小样本表示具有类似错误率的存储器单元的群体(population)。当该样本的写入后读取产生在预定值内的错误率时,该群体被认为通过了该检查。否则,先前写在该群体的单元上的数据被认为具有太多错误,且再次被重写到相同区域中的不同位置或者具有固有的较低错误率的存储器的另一区域。
如先前描述,写入后读取检查不同于作为编程操作的部分的一般编程验证。在编程单元时,该单元经历逐脉冲的编程电压。在每个脉冲之间,该单元的编程阈值与参考读取阈值相比较。一旦检测到该单元的阈值被编程超过该参考读取阈值,就通过施加到该单元的位线的编程禁止电压将该单元锁定以不能进一步编程。因此,编程-验证仅保证该单元是否已经编程超过参考阈值,但不给出可能已发生的任何过编程的指示。对于MLC存储器的读取操作实际上检查编程的阈值是否在一对参考阈值之间。
在MLC存储器中,每个单元存储多于一位数据。例如,在D2存储器中,每个单元存储两位数据。该单元所支持的阈值窗被参考阈值划分为两半。当单元的编程的阈值位于第一半中时,其具有一位的值,例如“1”,且当位于第二半中时,其具有另一位的值,例如“0”。类似地,在D3存储器中,每个单元存储三位数据,且在D4存储器中,每个单元存储四位数据。通常,对于Dm存储器,每个单元存储m个位,且阈值窗被2m-1个参考阈值划分为2m个电压带。使用编码机制来给每个电压带分配m位码字。
2位或4状态存储器的示例优选“LM”编码
图23(0)-23(3)图示用优选的2位逻辑码(“LM”码)编码的4状态存储器的逻辑逐页编程。来自一页的每个存储器单元的2个码位形成两个逻辑页,每页从由该页的每个存储器单元贡献的一个码位中形成。可以通过较低页之后较高页的逐个逻辑页地进行编程。该码提供了容错(fault-tolerance),且减轻了BL-BL浮置栅极耦合(Yupin)效应。
图23(0)图示了4-状态存储器阵列的阈值电压分布。每个存储器单元的可能的阈值电压跨度是阈值窗,该阈值窗被划分为四个区域以界定四个可能的存储器状态“Gr”、“A”、“B”和“C”。“Gr”是接地状态,其是在收紧的分布内的已擦除状态,且“A”、“B”和“C”是三个逐渐编程的状态。在读取期间,这四个状态通过三个分界参考阈值DA、DB和DC来界定。
图23(3)图示了优选的2-位LM编码来表示四个可能的存储器状态。每个存储器状态(即“Gr”、“A”、“B”和“C”)分别由一对“较高、较低”码位来表示,即“11”、“01”、“00”和“10”。该LM编码不同于传统格雷码之处在于,对状态“A”和“C”,较高和较低位被反转。“LM”码已经在美国专利号6,657,891中公开,且益处在于通过避免需要电荷的大改变的编程操作来减小相邻浮置栅极之间的场效应耦合。如将在图23(2)和23(3)中看到的,每个编程操作导致电荷存储单元中电荷的温和改变,如从阈值电压VT的温和改变而显然的。
设计该编码以便2个码位"较低"和"较高"位可以被分开编程和读取。当编程较低位时,单元的阈值电平维持在阈值窗的"已擦除"区域中或者移动到阈值窗的"中下(lowermiddle)"区域。当编程较高位时,在这两个区域的任一个区域中的单元的阈值电平被进一步提高到在阈值窗的“较低中间(lowerintermediate)”区域中的略高的电平。
图23(1)和23(2)图示使用2位LM码的较低页编程。设计容错LM代码以避免任何随后的较高页编程经任何中间状态而过界(transit)。因此,如果较低位是"1",则第一轮较低页编程使得单元维持在“已擦除”或“Gr”状态,或者如果较低位是"0",则该单元被编程到“较低中间”状态。基本上,“Gr”或“接地”状态是通过具有被编程到阈值的恰当定义的范围内的深擦除状态而具有收紧的分布的"已擦除"状态。“较低中间”状态可以具有跨立在存储器状态“A”和“B”之间的阈值电压的宽分布。在编程期间,相对于诸如DA的粗略分界来验证该“较低中间”状态。
图23(2)和23(3)图示使用2位LM码的较高页编程。基于第一轮较低页编程来进行该较高页编程。给定的较高位可以代表取决于较低位的值的不同存储器状态。在第二轮编程中,如果单元具有作为"1"的较高位,而较低位处于"1",即(1,1),则不存在对该单元的编程,且该单元维持在“Gr”。如果较高位是"0",而较低位处于"1",即(0,1),则将该单元从“Gr”状态编程到“A”状态。在编程到“A”期间,相对于分界DVA进行验证。另一方面,如果单元具有作为"0"的较高位,而较低位处于"0",即(0,0),则将该单元从“较低中间”状态编程到"B"。相对于分界DVB进行编程验证。类似地,如果单元具有作为"1"的较高位,而较低位处于"0",即(1,0),则该单元将从“较低中间”状态编程到"C"。相对于分界DVC进行编程验证。由于较高页编程仅涉及从“Gr”状态或“较低中间”状态编程到下一相邻存储器状态,因此从一轮到另一轮没有大量电荷更改。而且,设计从“Gr”到粗略的“较低中间”状态的较低页编程来节省时间。
图24A图示辨别用2位LM码编码的4状态存储器的较低位所需的读取操作。解码将取决于较高页是否已被编程。如果较高页已被编程,则读取较低页将需要相对于分界阈值电压DB的一遍读取(onereadpass)readB。另一方面,如果还没有编程较高页,则较低页将被编程到"中间"状态(见图23(2)),且readB将导致错误。然而,读取较低页将需要相对于分界阈值电压DA的一遍读取readA。为了区分这两种情况,当正编程较高页时,在较高页中(通常在管理开销或系统区域中)写入标记(“LM”标记)。在读取期间,首先将假设已经编程了较高页,因此将进行readB操作。如果读取到LM标记,则该假设正确,且该读取操作完成。另一方面,如果第一读取没有产生标记,这将指示较高页还没有被编程,因此将需要通过readA操作来读取较低页。
图24B图示辨别用2位LM码编码的4状态存储器的较高位所需的读取操作。如从图中清楚的,较高页读取将需要2遍读取,分别相对于分界阈值电压DA和DC的readA和readC。类似地,如果较高页还没有被编程,则也可能由"中间"状态混淆较高页的解码。再次,LM标记将指示是否编程了较高页。如果还没有编程较高页,则读取的数据将被复位到“1”,指示较高页数据未被编程。
如果该读取如在“全序列”读取或“所有位”读取中那样要扫描过界定的状态的所有序列,则相对于分别由参考阈值电压DA、DB和DC界定的存储器状态"Gr"、"A"、"B"和"C"来进行该读取。由于通过全序列读取来区分所有可能的状态,因此不需要检查任何LM标记。在该读取模式中,一起确定所有位。
3位或8状态存储器的示例优选“LM”编码
2位LM码的例子可以类似地扩展到3位或更高数量的位。
图25(0)-25(4)图示用优选的3位逻辑码(“LM”码)编码的8状态存储器的编程。来自一页的每个存储器单元的3位形成三个逻辑页,且可以逐个逻辑页地进行编程。该码类似于先前描述的2位LM编码,且其扩展为3位以编码八个可能的存储器状态。图25(0)图示了8-状态存储器阵列的阈值电压分布。每个存储器单元的可能的阈值电压跨度为阈值窗,该阈值窗被划分为八个区域以界定八个可能的存储器状态"Gr"、"A"、"B"、"C"、"D"、"E"、"F"和"G"。"Gr"是接地状态,其是在收紧的分布内的已擦除状态,且"A"-"G"是七个逐渐编程的状态。在读取期间,这八个状态由七个分界参考阈值DA–DG界定。
图25(4)图示了优选的3-位LM编码以代表八个可能的存储器状态。这八个存储器状态的每个分别由“较高、中间、较低”的三个位来表示,即“111”、“011”、“001”、“101”、“100”、“000”、“010”和“110。”如将在图25(1)和25(4)中看到的,每个编程操作导致电荷存储单元中电荷的温和改变,如从阈值电压VT的温和改变而显然的。
设计该编码以便3个码位“较低”、“中间”和“较高”位可以被分开编程和读取。因此,如果较低位是"1",第一轮较低页编程使得单元维持在“已擦除”或“Gr”状态,或者如果较低位是"0",则该单元被编程到“较低中间”状态。基本上,“Gr”或“接地”状态是通过具有被编程在阈值的窄范围内的深擦除状态而具有收紧的分布的"已擦除"状态。“较低中间”状态可以具有跨立在存储器状态"B"和"D"之间的阈值电压的宽分布。在编程期间,可以相对于诸如DB的粗略分界参考阈值电平来验证“较低中间”状态。当编程中间位时,单元的阈值电平将从来源于较低页编程的两个区域之一开始,并移动到四个可能的区域之一。当编程较高位时,单元的阈值电平将从来源于中间页编程的四个区域之一开始,并移动到八个可能的存储器状态之一。
通常,并行编程一页存储器单元,每个存储器单元具有3个位。因此,该页存储器单元可以被视为具有3个逻辑数据页,每个逻辑数据页由该页的每个单元的一个码位贡献。因此,"较低位"页由该页的每个存储器单元的较低位形成,且"中间位"页由每个单元的中间位形成,且"较高位"页由该页的每个单元的较高位形成。
图25(1)和25(2)图示使用3位LM码的较低页编程。设计容错LM码以避免任何随后较高页编程经任何中间状态而过界。因此,如果较低位是"1",即(x,x,1),第一轮较低页编程使得单元维持在“已擦除”或“Gr”状态,或者如果较低位是"0",即(x,x,0),则该单元被编程到“较低中间”状态。基本上,“Gr”或“接地”状态是通过具有被编程在阈值的恰当定义的范围内的深擦除状态而具有收紧的分布的"已擦除"状态。“较低中间”状态可以具有跨立在存储器状态"B"和"D"之间的阈值电压的宽分布。在编程期间,相对于诸如DB的分界来验证“较低中间”状态。
图25(2)和25(3)图示使用3位LM码的中间页编程。基于第一轮较低页编程来进行该中间页编程。给定的中间位可以代表取决于较低位的不同存储器状态。在第二轮编程中,如果单元将具有作为"1"的中间位,而较低位处于"1",即(x,1,1),则不存在对该单元的编程,且该单元维持在"Gr"。如果中间位是"0",而较低位处于"1",即(x,0,1),则将该单元从"Gr"状态编程到跨立在"A"和"B"之间的第一“中间中等(middleintermediate)”状态。在编程到第一“中间中等”状态期间,相对于分界DVA来进行验证。另一方面,如果单元将具有作为"0"的中间位,而较低位处于"0",即(x,0,0),则将该单元从“较低中间”状态编程到跨立在"C"和"D"之间的第二“中间中等”状态。相对于分界DVC进行编程验证。类似地,如果单元将具有作为"1"的中间位,而较低页处于"0",即(x,1,0),则该单元将从“较低中间”状态被编程到跨立在"E"和"F"之间的第三“中间中等”状态。相对于分界DVE进行编程验证。
图25(3)和25(4)图示使用3位LM码的较高页编程。基于第一和第二轮、即较低和中间页编程来进行该较高页编程。给定的较高位可以代表取决于较低和中间位的不同存储器状态。在第三轮编程中,如果单元将具有作为"1"的较高位,而较低和中间位处于"1",即(1,1,1),则不存在对该单元的编程,且该单元维持在"Gr"。另一方面,如果较高位是"0",而较低和中间位处于"1",即(0,1,1),则将该单元从"Gr"状态编程到"A"状态。在编程到"A"期间,相对于分界DVA进行该验证。
类似地,如果单元将具有作为"0"的较高位,而较低和中间位分别处于"0"和"1",即(0,0,1),则该单元将从第一“中间中等”状态被编程到"B"。相对于分界DVB进行编程验证。如果单元将具有作为"1"的较高位,而较低和中间位分别处于"0"和"1",即(1,0,1),则该单元从第一“中间中等”状态被编程到"C"。相对于分界DVC进行编程验证。
类似地,如果单元将具有作为"1"的较高位,而较低和中间位分别处于"0"和"0",即(1,0,0),则该单元从第二“中间中等”状态被编程到"D"。相对于分界DVD进行编程验证。如果单元将具有作为"0"的较高位,而较低和中间位分别处于"0"和"0",即(0,0,0),则该单元从第二“中间中等”状态被编程到"E"。相对于分界DVE进行编程验证。
类似地,如果单元将具有作为"0"的较高位,而较低和中间位分别处于"1"和"0",即(0,1,0),则该单元从第三“中间中等”状态被编程到"F"。相对于分界DVF进行编程验证。如果单元将具有作为"1"的较高位,而较低和中间位分别处于"0"和"0",即(1,1,0),则该单元从第三“中间中等”状态编程到"G"。相对于分界DVG进行编程验证。
由于较高页编程仅涉及从"Gr"状态或“中间中等”状态之一到下一相邻存储器状态的编程,因此从一轮到另一轮没有大量电荷改变。这帮助减轻BL-BLYupin效应。
因此,将看到,可以一次一位地编程Dm(m=l,2,3,……)存储器,且也可以一次一位地读取。当字线WLn上的一组存储器单元被并行编程或读取时,将存在与该组相关的m个数据页,每个数据页对应于来自该组的每个单元的一位。在逐渐读取模式中,相对于参考阈值的子集来进行感测,且在每次感测时,仅从WLn中读取m个数据页之一,且将其转移出到控制器。在全序列读取模式中,相对于所有参考阈值来进行该感测,且在逐页转移出之前从WLn中读取所有m个数据页。
例如,在具有图4所示的NAND架构的存储器的情况下,每个NAND串具有n个存储器单元的菊链。在一个实施例中,一行这种NAND链形成图6所示的擦除块300。在图4中,并行对一页存储器单元、比如WL3上的页70进行操作。
图9示出了作为字线WLn上的m位存储器的m个数据页之一的数据页70’。如先前描述的,在另一优选实施例中,当具有越来越高的器件集成时,在共享ECC字段的一页中存在大于最佳数量的存储器单元,该页70被划分为更小的单位,由"ECC页"构成。
图26A示意性地图示包含类似于图9所示的ECC字段的ECC页。ECC页80包括用户部分82和系统部分84。用户部分82用于存储用户数据。系统部分84通常由存储器系统使用来存储系统数据。ECC被包括在系统数据中。为该ECC页计算ECC。通常,通过控制器102中的ECC处理器62(见图1)计算该ECC。在图26A和图9之间的不同在于,取代占用整个数据页70'的ECC页80,其是构成该数据页的几个ECC页之一。
图26B图示构成数据页的多个ECC页。诸如图4所示的数据页70’的数据页是由来自于WL上的一页单元的每个单元的逻辑位构成的数据集。通常,存在构成一个数据页的N个EEC页。例如,N=4,其中,存在构成一个数据页70’的4个EEC页80。
在从主机接收数据时,数据的EEC页被阶段性存储在控制器102中,且通过ECC处理器62(见图1)来计算其ECC86。然后,并入其自己的ECC的大量ECC页80然后被阶段性存储并写到存储器阵列200作为数据页70’。通常,当读取数据页70’时,该数据页被锁存在数据锁存器430中,且从I/O电路440移出到控制器102。在控制器102处,该数据页的每个ECC页将其ECC86与对读取的数据计算的ECC的第二版本相比较。ECC通常包括用于快速检测数据页中的任何错误的错误检测码(“EDC”)。如果EDC指示在读取的数据页中存在任何错误,则调用ECC来校正在读取的数据页中的出错位。该ECC被设计为校正高达预定最大数量的错误。实际上,在存储器的寿命中的任何给定时间,ECC可以具有校正少于预定最大值的预定数量的错误的预算。
对于2位存储器,每个单元存储2位数据,且将存在与图4的例子中的每个WL相关的2个数据页。如果每个数据页具有4个ECC页,则将存在被编程到WL中且要读出用于PWR检查的总共8个ECC页。
类似地,对于3位存储器,每个单元存储3位数据,且将存在与图4的例子中的每个WL相关的3个数据页。如果每个数据页具有4个ECC页,则将存在被编程到WL中且要读出用于PWR(写入后读取)检查的总共12个ECC页。
因此,将看到,对于3位存储器,在写入每个WL之后进行PWR检查可以涉及感测12个ECC页,然后运送到控制器用于ECC检查。如果ECC解码器发现12个ECC页中的任何一个超出了预定错误预算,则对该WL的写入被视为不可接受,且在不同WL处进行重试。例如,该写入被重写到相同的块中的或具有较高容错的诸如具有一位单元的存储器的一部分中的另一WL。
在3位存储器例子中,存在要感测的3个数据页。如从结合图25的描述中看到,将引起3个读取循环,对于每个数据页一个读取循环。每个读取循环将相对于一个或多个参考阈值来感测,且因此读取该WL将花费时间。另外,每个数据页具有4个ECC页,且需要连续将总共12个ECC页转移到控制器。该转移操作也将花费时间,可能比感测操作更多的时间。
对样本而非整个全体的PWR检查
在本发明的一般实施例中,通过仅检查已经写入的内容的子集来加速对已经写入的内容的写入后读取(PWR)检查。仅对写入的内容的样本进行该写入后读取检查。
图27是图示加速的PWR的一般实施例的流程图。
步骤900:提供多组存储器单元,每组中的存储器单元用于并行操作。
步骤902:将多个数据子集编程到第一组存储器单元中,每个数据子集被提供有ECC。
步骤910:选择被编程在第一组存储器单元中的数据的样本,该样本从编程到第一组中的所述多个数据子集中的一个数据子集中选择。
步骤920:读取所述样本。
步骤922:检查所述样本的错误。
步骤930:无论何时从所述样本检查到的错误多于预定数量的错误位时,将所述多个数据子集重新编程到第二组存储器单元中。
在一个实施例中,要检查的该样本是被写到字线上的一组单元的所有ECC页的子集。具体地,该子集是所有ECC页中被估计具有最高错误率的ECC页。
图28是图示图27所示的加速的PWR的优选实施例的流程图。除了步骤910被步骤910’替换之外,该处理类似于图27的处理。
步骤910’:选择被编程在所述第一组存储器单元中的数据的样本,该样本从被编程到第一组中的所述多个数据子集中的一个数据子集中选择,且所述样本是被编程到第一组中的所述多个数据子集之中被估计具有最高错误率的数据子集。
图29图示在字线上的一组3位存储器单元已被写入之后为写入后读取所选择的样本。在该3位存储器中,将存在被写到字线WL42的3个数据页,即,较低、中间和较高页。取决于界定存储器的阈值窗中的各个电压带的参考阈值的设计布置,数据页之一可能具有比另一个略高的错误率。例如,如果较高数据页具有在三个数据页中的估计的最高数据率,则其将被选择。如果所选数据页中的所有ECC页被估计具有相同错误率,则其足够来选择具有第一个被移出到控制器的位置的ECC页。而且,编码机制的选择也可以具有对错误率的容忍。例如,当编程的阈值偏移时,格雷码提供最小的位错误。取决于编码的选择,被存储在相同组的存储器单元中的各个数据页可以具有类似或不同的错误率。
实践中,在字线上的错误可能是由于类似于开路或具有不寻常的高电阻的电路中导致的裂缝(crack)的物理缺陷。如果在关注的单元和WL解码器之间出现缺陷,则该检查将示出错误。如果在单元的远离WL解码器的另一侧上出现缺陷,则该检查可能不能示出错误。因此,在沿着WL42的所有ECC页中,在最远离WL解码器40的WL的末端处的样本ECC页82很可能受该缺陷的影响,而不管该缺陷在WL上的位置。
因此,在其中存在被写到字线(WL)的多个数据页的优选实施例中,首先从具有最高估计的错误率的数据页中选择用于检查被写到该WL的数据的样本。另外,如果在所选数据页中存在多个ECC页,则为该样本选择位于最远离字线解码器的ECC页。
在另一个实施例中,要检查的样本是被写到一块中的一组单元的所有ECC页的子集。该块使得在其中的所有单元可一起擦除。具体地,该子集是所有ECC页中被评估具有最高错误率的ECC页。
例如,在图4所示的NAND存储器中,擦除块由一行NAND链构成。每个NAND链是通过其源极和漏极而菊链链接的16个存储器单元,一端终止于源极端,且另一端终止于漏极端。公知的是,最靠近源极端和漏极端的单元更有错误倾向。因此,对于这种块,应该选择字线WL1或WL16。在该情况下,优选地,样本是在最远离字线解码器的WL1末端处的ECC页。
在另一实施例中,其中,具有字线集的存储器单元块可作为擦除单位而擦除,且需要必须检查被写到该集的每个字线的数据,否则重写整个块,被估计具有最高错误率的该集的WL优选地首先被检查。以此方式,可能发生的任何错误将早被检测到,且该块的重写可以无延迟地开始。
因此,对于图4所示的NAND存储器,首先应该选择字线WL1和WL16来检查。
虽然对于被划分为具有每个存储1位数据的存储器单元的第一部分和具有每个存储3位数据的存储器单元的第二部分的存储器给出了例子,但是,本发明不限于该例子。
为了例示和描述的目的已经呈现了对本发明的以上详细描述。不意图穷举本发明或将其限制到所公开的精确形式。考虑到上述教导,许多修改和变化是可能的。选择所描述的实施例以便最佳地说明本发明的原理和其实际的应用,从而使得本领域技术人员能够在各种实施例中以及通过适合于所构思的具体用途的各种修改来最佳地使用本发明。意图本发明的范围由附于此的权利要求限定。
Claims (18)
1.一种操作非易失性存储器的方法,包括:
提供多组存储器单元,每组中的存储器单元用于并行操作;
将多个数据子集的原始副本编程到第一组存储器单元中,每个数据子集被提供有ECC;
通过以下步骤执行第一组存储器单元的后写入读取:
选择被编程在第一组存储器单元中的与具有相关联ECC的数据的子集对应的样本;
通过采用所述相关联ECC进行处理来检查所述样本的错误,以及
无论何时从所述样本中检查到的错误多于预定数量的错误位时,将所述多个数据子集的原始副本重新编程到第二组存储器单元中,并且其中所述第一组存储器单元和第二组存储器单元形成作为最小擦除单元的存储单元块。
2.根据权利要求1的方法,其中:
所述样本是被编程到第一组存储器单元中的所述多个数据子集之中被估计具有最高错误率的数据子集。
3.根据权利要求1的方法,其中:
所述第一组存储器单元的每个存储器单元存储n位数据;
所述将多个数据子集的原始副本编程到第一组存储器单元中包括将n个数据页存储到第一组存储器单元中,每个数据页由来自该第一组存储器单元中的每个存储器单元的一位构成。
4.根据权利要求3的方法,其中:
n等于3。
5.根据权利要求1的方法,其中:
所述检查所述样本的错误包括检查该样本的ECC来确定错误位的数量。
6.根据权利要求1的方法,还包括:
将所述非易失性存储器配置为第一和第二部分,第一部分具有以比第二部分更少的错误率但更低密度的存储来操作的存储器单元;且其中:
所述第一组存储器单元和第二组存储器单元处于第二部分中。
7.根据权利要求1的方法,还包括:
将所述非易失性存储器配置为第一和第二部分,第一部分具有以比第二部分更少的错误率但更低密度的存储来操作的存储器单元;且其中:
所述第一组存储器单元处于第二部分中;以及
所述第二组存储器单元处于第一部分中。
8.根据权利要求1的方法,其中:
所述存储器被进一步组织为多行NAND链;
每个NAND链是在源极端和漏极端处终止的一串菊链链接的存储器单元的列;以及
所述样本是在最靠近每个NAND链的源极端的存储器单元处存储的数据子集。
9.根据权利要求1的方法,其中:
所述存储器被进一步组织为多行NAND链;
每个NAND链是在源极端和漏极端处终止的一串菊链链接的存储器单元的列;以及
所述样本是在最靠近每个NAND链的漏极端的存储器单元处存储的数据子集。
10.一种非易失性存储器,包括:
多组存储器单元,每组中的存储器单元用于并行操作,在所述多组存储器单元中的第一组存储器单元中编程有数据的样本,该样本为被编程到第一组存储器单元中的多个数据子集中的一个数据子集;
编程电路,用于将所述多个数据子集的原始副本编程到第一组存储器单元中,每个数据子集被提供有ECC;
读取电路,用于读取包括相关联ECC的所述样本;
ECC解码器,用于通过采用相关联ECC进行处理来检查所述样本中的错误,以及
重新编程电路,用于无论何时从所述样本中检查到的错误多于预定数量的错误位时,将所述多个数据子集的原始副本重新编程到第二组存储器单元中,并且其中所述第一组存储器单元和第二组存储器单元形成作为最小擦除单元的存储单元块。
11.根据权利要求10的非易失性存储器,其中:
所述样本是被编程到第一组存储器单元中的所述多个数据子集之中被估计具有最高错误率的数据子集。
12.根据权利要求10的非易失性存储器,其中:
所述第一组存储器单元的每个存储器单元存储n位数据;
所述将多个数据子集的原始副本编程到第一组存储器单元中包括将n个数据页存储到第一组存储器单元中,每个数据页由来自第一组存储器单元中的每个存储器单元的一位构成。
13.根据权利要求12的非易失性存储器,其中:
n等于3。
14.根据权利要求10的非易失性存储器,其中:
所述ECC解码器检查该样本的ECC来确定错误位的数量。
15.根据权利要求10的非易失性存储器,还包括:
第一和第二部分,第一部分具有以比第二部分更少的错误率但更低密度的存储来操作的存储器单元;且其中:
所述第一组存储器单元和第二组存储器单元处于第二部分中。
16.根据权利要求10的非易失性存储器,还包括:
第一和第二部分,第一部分具有以比第二部分更少的错误率但更低密度的存储来操作的存储器单元;且其中:
所述第一组存储器单元处于第二部分中;以及
所述第二组存储器单元处于第一部分中。
17.根据权利要求10的非易失性存储器,其中:
所述存储器被进一步组织为多行NAND链;
每个NAND链是在源极端和漏极端处终止的一串菊链链接的存储器单元的列;以及
所述样本是在最靠近每个NAND链的源极端的存储器单元处存储的数据子集。
18.根据权利要求10的非易失性存储器,其中:
所述存储器被进一步组织为多行NAND链;
每个NAND链是在源极端和漏极端处终止的一串菊链链接的存储器单元的列;以及
所述样本是在最靠近每个NAND链的漏极端的存储器单元处存储的数据子集。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/607,522 US8214700B2 (en) | 2009-10-28 | 2009-10-28 | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US12/607,522 | 2009-10-28 | ||
US12/642,728 US8423866B2 (en) | 2009-10-28 | 2009-12-18 | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US12/642,728 | 2009-12-18 | ||
US12/874,064 | 2010-09-01 | ||
US12/874,064 US8634240B2 (en) | 2009-10-28 | 2010-09-01 | Non-volatile memory and method with accelerated post-write read to manage errors |
PCT/US2010/053813 WO2011056483A1 (en) | 2009-10-28 | 2010-10-22 | Non-volatile memory and method with accelerated post-write read to manage errors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667943A CN102667943A (zh) | 2012-09-12 |
CN102667943B true CN102667943B (zh) | 2016-05-18 |
Family
ID=43382376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080049014.2A Active CN102667943B (zh) | 2009-10-28 | 2010-10-22 | 通过加速的写入后读取来管理错误的非易失性存储器和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8634240B2 (zh) |
EP (1) | EP2494554B1 (zh) |
JP (1) | JP2013509651A (zh) |
KR (1) | KR101727349B1 (zh) |
CN (1) | CN102667943B (zh) |
TW (1) | TW201140604A (zh) |
WO (1) | WO2011056483A1 (zh) |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891298B2 (en) | 2011-07-19 | 2014-11-18 | Greenthread, Llc | Lifetime mixed level non-volatile memory system |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
US8423866B2 (en) * | 2009-10-28 | 2013-04-16 | SanDisk Technologies, Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8214700B2 (en) * | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8634240B2 (en) | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US20110153912A1 (en) * | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8305807B2 (en) | 2010-07-09 | 2012-11-06 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8514630B2 (en) | 2010-07-09 | 2013-08-20 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays: current based approach |
US8432732B2 (en) | 2010-07-09 | 2013-04-30 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays |
US8949686B1 (en) * | 2011-02-13 | 2015-02-03 | Apple Inc. | Protection against word line failure in memory devices |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8379454B2 (en) | 2011-05-05 | 2013-02-19 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US20130031431A1 (en) * | 2011-07-28 | 2013-01-31 | Eran Sharon | Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats |
US8750042B2 (en) | 2011-07-28 | 2014-06-10 | Sandisk Technologies Inc. | Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures |
US8726104B2 (en) | 2011-07-28 | 2014-05-13 | Sandisk Technologies Inc. | Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages |
US8775901B2 (en) | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
JP2013089082A (ja) * | 2011-10-19 | 2013-05-13 | Toshiba Corp | メモリコントローラ、半導体記憶システムおよびメモリ制御方法 |
US9081663B2 (en) * | 2011-11-18 | 2015-07-14 | Stec, Inc. | Optimized garbage collection algorithm to improve solid state drive reliability |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US8730722B2 (en) | 2012-03-02 | 2014-05-20 | Sandisk Technologies Inc. | Saving of data in cases of word-line to word-line short in memory arrays |
TWI463313B (zh) * | 2012-04-17 | 2014-12-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US8566671B1 (en) * | 2012-06-29 | 2013-10-22 | Sandisk Technologies Inc. | Configurable accelerated post-write read to manage errors |
US8867272B2 (en) * | 2012-07-24 | 2014-10-21 | Skymedi Corporation | Method of accessing a non-volatile memory |
JP5586666B2 (ja) | 2012-08-01 | 2014-09-10 | 力晶科技股▲ふん▼有限公司 | 不揮発性半導体記憶装置とその読み出し方法 |
JP2014059930A (ja) * | 2012-09-18 | 2014-04-03 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9164526B2 (en) | 2012-09-27 | 2015-10-20 | Sandisk Technologies Inc. | Sigma delta over-sampling charge pump analog-to-digital converter |
US9810723B2 (en) | 2012-09-27 | 2017-11-07 | Sandisk Technologies Llc | Charge pump based over-sampling ADC for current detection |
KR102025263B1 (ko) * | 2012-10-05 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 교정 방법 |
US8780635B2 (en) | 2012-11-09 | 2014-07-15 | Sandisk Technologies Inc. | Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory |
US8780632B2 (en) | 2012-11-09 | 2014-07-15 | Sandisk Technologies Inc. | De-duplication techniques using NAND flash based content addressable memory |
US9104551B2 (en) * | 2012-11-09 | 2015-08-11 | Sandisk Technologies Inc. | NAND flash based content addressable memory |
US8780633B2 (en) | 2012-11-09 | 2014-07-15 | SanDisk Technologies, Inc. | De-duplication system using NAND flash based content addressable memory |
US8817541B2 (en) | 2012-11-09 | 2014-08-26 | Sandisk Technologies Inc. | Data search using bloom filters and NAND based content addressable memory |
US8792279B2 (en) | 2012-11-09 | 2014-07-29 | Sandisk Technologies Inc. | Architectures for data analytics using computational NAND memory |
US8811085B2 (en) | 2012-11-09 | 2014-08-19 | Sandisk Technologies Inc. | On-device data analytics using NAND flash based intelligent memory |
US8780634B2 (en) | 2012-11-09 | 2014-07-15 | Sandisk Technologies Inc. | CAM NAND with OR function and full chip search capability |
US8634248B1 (en) | 2012-11-09 | 2014-01-21 | Sandisk Technologies Inc. | On-device data analytics using NAND flash based intelligent memory |
US8773909B2 (en) | 2012-11-09 | 2014-07-08 | Sandisk Technologies Inc. | CAM NAND with or function and full chip search capability |
US9466382B2 (en) | 2012-11-14 | 2016-10-11 | Sandisk Technologies Llc | Compensation for sub-block erase |
US8830717B2 (en) * | 2012-11-29 | 2014-09-09 | Sandisk Technologies Inc. | Optimized configurable NAND parameters |
US9032271B2 (en) | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
TWI474163B (zh) * | 2012-12-17 | 2015-02-21 | Hon Hai Prec Ind Co Ltd | 基本輸入輸出系統的存取系統及方法 |
US8988941B2 (en) | 2012-12-18 | 2015-03-24 | SanDisk Tehcnologies Inc. | Select transistor tuning |
US9075424B2 (en) | 2013-03-06 | 2015-07-07 | Sandisk Technologies Inc. | Compensation scheme to improve the stability of the operational amplifiers |
US9032264B2 (en) * | 2013-03-21 | 2015-05-12 | Kabushiki Kaisha Toshiba | Test method for nonvolatile memory |
US9218890B2 (en) | 2013-06-03 | 2015-12-22 | Sandisk Technologies Inc. | Adaptive operation of three dimensional memory |
US20150006784A1 (en) | 2013-06-27 | 2015-01-01 | Sandisk Technologies Inc. | Efficient Post Write Read in Three Dimensional Nonvolatile Memory |
US9063671B2 (en) | 2013-07-02 | 2015-06-23 | Sandisk Technologies Inc. | Write operations with full sequence programming for defect management in nonvolatile memory |
US9218242B2 (en) * | 2013-07-02 | 2015-12-22 | Sandisk Technologies Inc. | Write operations for defect management in nonvolatile memory |
WO2015002897A1 (en) * | 2013-07-02 | 2015-01-08 | Sandisk Technologies Inc. | Write operations for defect management in nonvolatile memory |
US9146850B2 (en) * | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
TWI512732B (zh) * | 2013-08-30 | 2015-12-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 |
US9142324B2 (en) | 2013-09-03 | 2015-09-22 | Sandisk Technologies Inc. | Bad block reconfiguration in nonvolatile memory |
US9165683B2 (en) | 2013-09-23 | 2015-10-20 | Sandisk Technologies Inc. | Multi-word line erratic programming detection |
US9501400B2 (en) | 2013-11-13 | 2016-11-22 | Sandisk Technologies Llc | Identification and operation of sub-prime blocks in nonvolatile memory |
US9043537B1 (en) | 2013-11-21 | 2015-05-26 | Sandisk Technologies Inc. | Update block programming order |
US9213601B2 (en) | 2013-12-03 | 2015-12-15 | Sandisk Technologies Inc. | Adaptive data re-compaction after post-write read verification operations |
US9244631B2 (en) | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
US9218886B2 (en) | 2013-12-10 | 2015-12-22 | SanDisk Technologies, Inc. | String dependent parameter setup |
US9785501B2 (en) * | 2014-02-18 | 2017-10-10 | Sandisk Technologies Llc | Error detection and handling for a data storage device |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9582205B2 (en) * | 2014-04-17 | 2017-02-28 | Sandisk Technologies Llc | Protection scheme with dual programming of a memory system |
US9323607B2 (en) * | 2014-04-29 | 2016-04-26 | Seagate Technology Llc | Data recovery once ECC fails to correct the data |
US8902652B1 (en) | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
US8886877B1 (en) | 2014-05-15 | 2014-11-11 | Sandisk Technologies Inc. | In-situ block folding for nonvolatile memory |
US9460809B2 (en) | 2014-07-10 | 2016-10-04 | Sandisk Technologies Llc | AC stress mode to screen out word line to word line shorts |
US9443612B2 (en) | 2014-07-10 | 2016-09-13 | Sandisk Technologies Llc | Determination of bit line to low voltage signal shorts |
US9484086B2 (en) | 2014-07-10 | 2016-11-01 | Sandisk Technologies Llc | Determination of word line to local source line shorts |
US9514835B2 (en) | 2014-07-10 | 2016-12-06 | Sandisk Technologies Llc | Determination of word line to word line shorts between adjacent blocks |
US9202593B1 (en) | 2014-09-02 | 2015-12-01 | Sandisk Technologies Inc. | Techniques for detecting broken word lines in non-volatile memories |
US9240249B1 (en) | 2014-09-02 | 2016-01-19 | Sandisk Technologies Inc. | AC stress methods to screen out bit line defects |
US9449694B2 (en) | 2014-09-04 | 2016-09-20 | Sandisk Technologies Llc | Non-volatile memory with multi-word line select for defect detection operations |
US9582358B2 (en) * | 2014-09-30 | 2017-02-28 | Sandisk Technologies Llc | Initialization scheme during dual programming of a memory system |
US9437321B2 (en) | 2014-10-28 | 2016-09-06 | Sandisk Technologies Llc | Error detection method |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US9679652B2 (en) * | 2015-05-04 | 2017-06-13 | Phison Electronics Corp. | Threshold based multi-level cell programming for reliability improvement |
US10332613B1 (en) * | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9875053B2 (en) | 2015-06-05 | 2018-01-23 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
US10289327B2 (en) | 2015-06-05 | 2019-05-14 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
TWI575531B (zh) | 2015-08-10 | 2017-03-21 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
US9659666B2 (en) | 2015-08-31 | 2017-05-23 | Sandisk Technologies Llc | Dynamic memory recovery at the sub-block level |
JP6538496B2 (ja) * | 2015-09-11 | 2019-07-03 | 東芝メモリ株式会社 | メモリシステム |
US9401216B1 (en) | 2015-09-22 | 2016-07-26 | Sandisk Technologies Llc | Adaptive operation of 3D NAND memory |
US9691473B2 (en) | 2015-09-22 | 2017-06-27 | Sandisk Technologies Llc | Adaptive operation of 3D memory |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
US9570160B1 (en) | 2015-10-29 | 2017-02-14 | Sandisk Technologies Llc | Non-volatile storage system with defect detetction and early programming termination |
US10048877B2 (en) * | 2015-12-21 | 2018-08-14 | Intel Corporation | Predictive memory maintenance |
US9698676B1 (en) | 2016-03-11 | 2017-07-04 | Sandisk Technologies Llc | Charge pump based over-sampling with uniform step size for current detection |
US9711227B1 (en) | 2016-04-28 | 2017-07-18 | Sandisk Technologies Llc | Non-volatile memory with in field failure prediction using leakage detection |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
US9703494B1 (en) * | 2016-09-26 | 2017-07-11 | Intel Corporation | Method and apparatus for protecting lower page data during programming in NAND flash |
US10141059B2 (en) * | 2016-11-30 | 2018-11-27 | Taiwan Semiconductor Manufacturing Co., Ltd. | Failure detection circuitry for address decoder for a data storage device |
US10185609B2 (en) * | 2016-12-22 | 2019-01-22 | Smart Modular Technologies, Inc. | Virtual timer for data retention |
US10074436B1 (en) * | 2017-06-13 | 2018-09-11 | Winbound Electronics Corp. | Memory device and data reading method thereof |
US10403385B2 (en) * | 2017-06-30 | 2019-09-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Apparatus for memory device testing and field applications |
CN107977282B (zh) * | 2017-12-20 | 2021-01-26 | 北京兆易创新科技股份有限公司 | 一种SPI-Nand读取数据页的方法及装置 |
CN108847267B (zh) * | 2018-05-23 | 2022-04-08 | 置富科技(深圳)股份有限公司 | 一种基于错误模式的闪存寿命测试方法 |
US10585625B2 (en) | 2018-07-12 | 2020-03-10 | Micron Technology, Inc. | Determination of data integrity based on sentinel cells |
US10769018B2 (en) * | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US11929127B2 (en) * | 2021-08-31 | 2024-03-12 | Micron Technology, Inc. | Selective data pattern write scrub for a memory system |
CN116737086B (zh) * | 2023-08-14 | 2023-11-17 | 江苏云途半导体有限公司 | 一种嵌入式非易失性存储器读写方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1223444A (zh) * | 1997-11-14 | 1999-07-21 | 日本电气株式会社 | 具有错误校验和校正电路的半导体存储器件 |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5070032A (en) * | 1989-03-15 | 1991-12-03 | Sundisk Corporation | Method of making dense flash eeprom semiconductor memory structures |
US5343063A (en) * | 1990-12-18 | 1994-08-30 | Sundisk Corporation | Dense vertical programmable read only memory cell structure and processes for making them |
US5602789A (en) * | 1991-03-12 | 1997-02-11 | Kabushiki Kaisha Toshiba | Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller |
KR960002006B1 (ko) * | 1991-03-12 | 1996-02-09 | 가부시끼가이샤 도시바 | 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치 |
US5313421A (en) * | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US6222762B1 (en) * | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5315541A (en) * | 1992-07-24 | 1994-05-24 | Sundisk Corporation | Segmented column memory array |
KR0169267B1 (ko) * | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
US5661053A (en) * | 1994-05-25 | 1997-08-26 | Sandisk Corporation | Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers |
DE69508034T2 (de) | 1994-10-25 | 1999-08-19 | Hewlett Packard Co | Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen |
US5671388A (en) * | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
DE69635105D1 (de) * | 1996-01-31 | 2005-09-29 | St Microelectronics Srl | Mehrstufige Speicherschaltungen und entsprechende Lese- und Schreibverfahren |
US5903495A (en) * | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
JP3200012B2 (ja) * | 1996-04-19 | 2001-08-20 | 株式会社東芝 | 記憶システム |
US5768192A (en) * | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
KR100272037B1 (ko) | 1997-02-27 | 2000-12-01 | 니시무로 타이죠 | 불휘발성 반도체 기억 장치 |
US6134140A (en) * | 1997-05-14 | 2000-10-17 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device with soft-programming to adjust erased state of memory cells |
US6768165B1 (en) * | 1997-08-01 | 2004-07-27 | Saifun Semiconductors Ltd. | Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping |
US5867429A (en) * | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6141388A (en) * | 1998-03-11 | 2000-10-31 | Ericsson Inc. | Received signal quality determination method and systems for convolutionally encoded communication channels |
US7333364B2 (en) | 2000-01-06 | 2008-02-19 | Super Talent Electronics, Inc. | Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory |
JP4323707B2 (ja) * | 2000-10-25 | 2009-09-02 | 富士通マイクロエレクトロニクス株式会社 | フラッシュメモリの欠陥管理方法 |
US6349056B1 (en) * | 2000-12-28 | 2002-02-19 | Sandisk Corporation | Method and structure for efficient data verification operation for non-volatile memories |
US6456528B1 (en) * | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US7554842B2 (en) * | 2001-09-17 | 2009-06-30 | Sandisk Corporation | Multi-purpose non-volatile memory card |
JP4063615B2 (ja) * | 2002-08-30 | 2008-03-19 | Necエレクトロニクス株式会社 | 不揮発性メモリおよびその書き込み処理方法 |
US7196931B2 (en) * | 2002-09-24 | 2007-03-27 | Sandisk Corporation | Non-volatile memory and method with reduced source line bias errors |
US6657891B1 (en) | 2002-11-29 | 2003-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device for storing multivalued data |
US6917542B2 (en) * | 2003-07-29 | 2005-07-12 | Sandisk Corporation | Detecting over programmed memory |
US6914823B2 (en) * | 2003-07-29 | 2005-07-05 | Sandisk Corporation | Detecting over programmed memory after further programming |
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
US7356755B2 (en) * | 2003-10-16 | 2008-04-08 | Intel Corporation | Error correction for multi-level cell memory with overwrite capability |
KR100719380B1 (ko) | 2006-03-31 | 2007-05-18 | 삼성전자주식회사 | 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템 |
US7009889B2 (en) * | 2004-05-28 | 2006-03-07 | Sandisk Corporation | Comprehensive erase verification for non-volatile memory |
US7428180B2 (en) * | 2006-01-25 | 2008-09-23 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices |
US7701797B2 (en) * | 2006-05-15 | 2010-04-20 | Apple Inc. | Two levels of voltage regulation supplied for logic and data programming voltage of a memory device |
JP2008077810A (ja) | 2006-09-25 | 2008-04-03 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR100858241B1 (ko) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법 |
US8122319B2 (en) | 2007-01-24 | 2012-02-21 | Charles I. Peddle | Page-based failure management for flash memory |
JP4510060B2 (ja) | 2007-09-14 | 2010-07-21 | 株式会社東芝 | 不揮発性半導体記憶装置の読み出し/書き込み制御方法 |
WO2009072102A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
KR101378349B1 (ko) * | 2008-01-30 | 2014-03-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 읽기 방법 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US7864578B2 (en) * | 2008-06-30 | 2011-01-04 | Kabushiki Kaisha Toshiba | Semiconductor memory repairing a defective bit and semiconductor memory system |
US7864587B2 (en) * | 2008-09-22 | 2011-01-04 | Micron Technology, Inc. | Programming a memory device to increase data reliability |
US8094500B2 (en) * | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
KR101581857B1 (ko) | 2009-08-06 | 2015-12-31 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 |
US8464106B2 (en) * | 2009-08-24 | 2013-06-11 | Ocz Technology Group, Inc. | Computer system with backup function and method therefor |
US8214700B2 (en) * | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8634240B2 (en) | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US8423866B2 (en) * | 2009-10-28 | 2013-04-16 | SanDisk Technologies, Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US20110153912A1 (en) * | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8725935B2 (en) * | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
-
2010
- 2010-09-01 US US12/874,064 patent/US8634240B2/en active Active
- 2010-10-22 EP EP10779105.5A patent/EP2494554B1/en not_active Not-in-force
- 2010-10-22 KR KR1020127012746A patent/KR101727349B1/ko active IP Right Grant
- 2010-10-22 JP JP2012536907A patent/JP2013509651A/ja not_active Withdrawn
- 2010-10-22 WO PCT/US2010/053813 patent/WO2011056483A1/en active Application Filing
- 2010-10-22 CN CN201080049014.2A patent/CN102667943B/zh active Active
- 2010-10-28 TW TW099137034A patent/TW201140604A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
CN1223444A (zh) * | 1997-11-14 | 1999-07-21 | 日本电气株式会社 | 具有错误校验和校正电路的半导体存储器件 |
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20110096601A1 (en) | 2011-04-28 |
KR20120093295A (ko) | 2012-08-22 |
KR101727349B1 (ko) | 2017-04-14 |
JP2013509651A (ja) | 2013-03-14 |
TW201140604A (en) | 2011-11-16 |
US8634240B2 (en) | 2014-01-21 |
EP2494554A1 (en) | 2012-09-05 |
WO2011056483A1 (en) | 2011-05-12 |
CN102667943A (zh) | 2012-09-12 |
EP2494554B1 (en) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667943B (zh) | 通过加速的写入后读取来管理错误的非易失性存储器和方法 | |
CN102667945B (zh) | 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 | |
CN103827971B (zh) | 具有使用多页的组合验证的加速的写入后读取的非易失性存储器的方法 | |
CN102667944B (zh) | 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法 | |
CN103814409A (zh) | 使用以二进制格式和多状态格式写入的数据的比较的非易失性存储器中的写入后读取 | |
US9165683B2 (en) | Multi-word line erratic programming detection | |
US8072805B2 (en) | Method and system of finding a read voltage for a flash memory | |
CN102918599B (zh) | 具有基本程序序列和写中止检测的非易失性存储器和方法 | |
US9229644B2 (en) | Targeted copy of data relocation | |
KR101835174B1 (ko) | 복수 워드라인의 동시적 감지 및 nand 고장의 검출 | |
US8775901B2 (en) | Data recovery for defective word lines during programming of non-volatile memory arrays | |
US8566671B1 (en) | Configurable accelerated post-write read to manage errors | |
KR20160137501A (ko) | 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍 | |
US8995184B2 (en) | Adaptive operation of multi level cell memory | |
US8730724B2 (en) | Common line current for program level determination in flash memory | |
US9342401B2 (en) | Selective in-situ retouching of data in nonvolatile memory | |
CN113010459A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US9053011B2 (en) | Selective protection of lower page data during upper page write | |
US8732391B2 (en) | Obsolete block management for data retention in nonvolatile memory | |
US11630726B2 (en) | Memory system and operating method thereof | |
US11307807B2 (en) | Memory system, memory controller, and method for operating memory system for determining read biases for read retry operation | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: texas Patentee before: Sandisk Corp. |