快闪存储器数据校正及擦除技术的制作方法

文档序号:6499471阅读:177来源:国知局
专利名称:快闪存储器数据校正及擦除技术的制作方法
技术领域
本发明一般来说涉及非易失性快闪存储器系统,更具体来说,涉及刷新及校正非易失性快闪存储器系统中、尤其是具有极大存储单元区块的存储器系统中所存储数据的技术。
背景技术
目前,有许多种商业上成功的非易失性存储器产品,尤其是小尺寸的非易失性存储器产品,其采用一形成于一个或一个以上集成电路芯片上的快闪EEPROM(电子可擦除可编程只读存储器)单元。一通常(但未必尽然)位于一单独集成电路芯片上的存储器控制器连接一以可装卸方式连接有所述卡的主机,并控制所述卡内的存储器储器阵列的操作。此一控制器通常包括一微处理器、某种非易失性只读存储器(ROM)、一易失性随机存取存储器(RAM)及一个或一个以上专用电路,例如一个可在将数据编程及读取数据期间在数据经过控制器时根据所述资料计算出一纠错码(ECC)的专用电路。某些市售卡为CompactFlashTM(CF)存储卡、多媒体存储卡(MMC)、安全数字(SD)存储卡、智能媒体存储卡、个人信息(P-Tag)存储卡及存储棒卡。主机包括个人计算机、笔记本型计算机、个人数字助理(PDA)、各种数据通信装置、数码相机、蜂窝式移动电话、便携式音频播放器、汽车音响系统、及类似类型的设备。除存储卡构建方案之外,此种类型的存储器也可嵌入于各种类型的主机系统内。
有两种通用存储单元阵列架构已付诸商业应用NOR及NAND。在一典型的NOR阵列中,各存储单元连接在沿列方向延伸的相邻位线源极与漏极扩散区之间,且控制栅极连接至沿存储单元排延伸的字线。一存储单元包括位于所述源极与漏极之间存储单元沟道区域的至少一部分上方的至少一个存储组件。所述存储组件上一经编程的电荷电平由此控制存储单元的操作特性,因而通过给所寻址的存储单元单元施加适当的电压即可读取所述存储单元。此等存储单元的实例、其在存储器系统中的应用及其制造方法阐述于美国第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053及6,222,762号专利中。
NAND阵列则利用如下构成的串联串多于两个(例如16个或32个)存储单元与一个或一个以上位于各单独位线与一参考电位之间的选择晶体管连接在一起构成存储单元列。各字线延伸跨穿大量所述列中的存储单元。在编程期间,通过如下方式来读取及验证一列中的一单独存储单元使所述串中的剩余存储单元均强导通,以使流经一个串的电流取决于所述所寻址存储单元中所存储的电荷电平。NAND架构阵列的实例及其作为存储器系统的一部分的操作可参见美国第5,570,315、5,774,397、6,046,935、及6,522,580号专利。
上文所提及专利中所述的现有快闪EEPROM阵列的电荷存储组件为最常用的导电浮动栅,其通常由经导电掺杂的多晶硅材料制成。适用于快闪EEPROM系统的另一类型的存储单元是利用一非导电介电材料代替导电浮动栅以非易失性方式来存储电荷。其中,由氧化硅、氮化硅及氧化硅(ONO)构成的三层式介电材料夹于一导电性控制栅与存储单元沟道上方一半导电性衬底的一表面之间。存储单元是通过如下方式进行编程将电子自存储单元沟道注入氮化物,电子在氮化物中被俘获并存储于一有限的区域中,且存储单元是通过将热空孔注入氮化物内而受到擦除。数种采用介电材料存储组件的特定存储单元结构及阵列阐述于已公开的美国第2003/0109093号专利申请案中。
如同在大多数集成电路应用中,对于快闪EEPROM存储单元阵列,也存在缩减构建某些集成电路功能所需的硅衬底面积的压力。人们不断地期望增大在既定硅衬底面积中可存储的数字数据量,以增大既定尺寸存储卡及其它类型封装的存储容量,或者既增大容量也减小尺寸。一种增大数据存储密度的方法是每一存储单元及/或每一存储单元或组件存储多于一个数据位。此可通过将一存储组件电荷电平电压范围的窗口划分成多于两种状态来实现。使用四种此种状态允许每一存储单元存储两个数据位,八种状态可使每一存储组件存储三个数据位,依此类推。使用浮动栅的多状态快闪EEPROM结构及其操作阐述于美国第5,043,940及5,172,338号专利中,使用介电浮动栅的结构则阐述于前述美国专利申请案第10/280,352号中。出于各种原因,一多状态存储单元阵列中的某些选定部分也可以两种状态(二进制)操作,其操作方式阐述于美国第5,930,167及6,456,528专利中。
一典型快闪EEPROM阵列中的各存储单元是划分成若干个可一同擦除的离散存储单元区块。换句话说,存储单元区块为擦除单位,即为可同时擦除的最小数量的存储单元。每一区块均通常存储有一个或一个以上数据页面,页面为最小编程及读取单位,尽管也可在不同的子阵列或平面中平行地编程或读取多于一个页面。每一页面通常存储有一个或一个以上数据扇区,扇区的尺寸是由主机系统来界定。一例示性扇区包括512个用户数据字节(遵循一针对磁盘驱动器制定的标准)加上一定数量字节的关于所述用户数据及/或存储有所述用户数据的区块的附加信息。此等存储器通常在每一区块中构造有16个、32个或更多个页面,且每一页面均存储有一个或仅数个主机数据扇区。
为提高在将用户数据编程入存储器阵列及自存储器阵列读取用户数据期间的平行性程度,所述阵列通常划分成若干个子阵列,所述子阵列通常称作平面,其包含其自身的数据寄存器及其它电路来容许并行操作,从而可同时将数据扇区编程至若干或所有平面中的每一平面,或同时自若干或所有平面中的每一平面读取数据扇区。一位于一单个集成电路上的阵列可在物理上划分成若干平面,或者每一平面均可由单独的一个或一个以上集成电路芯片构成。此一存储器构建方案的实例阐述于美国第5,798,968及5,890,192号专利中。
为进一步有效地管理存储器,可将各物理区块在逻辑上连接在一起构成虚拟区块或元块。换句话说,将每一元区块均界定为包括来自每一平面的一个区块。元区块的使用阐述于国际专利申请公开案第WO 02/058074中。元区块是由一主机逻辑区块地址标识为一供编程及读取数据的目的区块。同样地,一元区块中的所有区块均一同擦除。使用此等大区块及/或元区块的存储器系统中的控制器执行多种功能,其中包括在从主机接收的逻辑区块地址(LBA)与存储单元阵列内的物理区块编号(PBN)之间进行变换。所述区块中各单独页面通常由区块地址内的偏置量来标识。地址变换通常涉及到使用逻辑页面及一逻辑区块编号(LBN)的中间项。
存储于一元区块中的数据经常被更新,更新的可能性随元区块的数据容量而增大。一个逻辑元区块中已更新的扇区通常被写入另一物理元区块。作为同一编程操作的一部分,未经改变的扇区也通常自原始物理元区块复制至所述新的物理元区块,以合并所述数据。或者,未经改变的数据可保留在原始元区块中直至以后与已更新的数据合并至单个元区块内为止。
通常使用一已擦除区块公用池中所维护的某些额外区块来操作大区块或元区块系统。当正在更新少于一区块容量的一个或一个以上数据页面时,通常将已更新页面写入至所述公用池中的一已擦除区块,然后将未经改变的页面中的数据自原始区块复制至所述擦除公用池区块。所述技术的变体阐述于前述已公开的国际专利申请案第WO 02/058074中。随着时间的延长,由于主机数据文件被重写及更新,许多区块最后可能会仅有相对少量的页面包含有效数据而其余页面所包含的数据已不再为现行资料。为能够有效地利用阵列的数据存储容量,不时地从多个区块中的片断收集有效数据的各个逻辑上相关的数据页面并将它们合并至更少数量的区块中。所述过程通常称作“无用单元收集(garbage collection)”。
各单独的快闪EEPROM存储单元在一电荷存储组件或单元中存储有一定量的电荷来代表一个或一个以上数据位。存储组件的电荷电平可控制其存储单元的阈电压(通常称作VT),而所述阈电压用作读取所述存储单元的存储状态的基础。一阈电压窗口通常被划分成若干范围,其中每一范围均对应于存储单元的所述两或多种状态中的一种。所述范围由防护带加以间隔,防护带中包含一允许人们确定各单独存储单元的存储状态的标称感测电平。所述存储电平的确因电荷会干扰在邻近或其它相关的存储单元、页面或区块中所执行的编程、读取或擦除操作而出现偏移。举例而言,当对一组与一第二组存储单元共享一线路或电路的存储单元进行编程时,有可能干扰所述第二组的电荷电平。此种寄生干扰的最终结果是如果不对存储系统控制器的所述部分采取校正措施,则未操作的受影响区域中的数据可能会恶化,且在极端情况下,会超出与所述数据一同存储的任何纠错码(ECC)的校正能力。因而,此种数据恶化将会给用户造成数据损失,由此导致存储系统不可靠。一特定存储单元阵列中此等干扰的范围及性质取决于所述存储单元阵列的具体架构、结构及操作。
因此,有益的情况为,在干扰操作致使电荷电平完全偏移出其规定范围外从而导致读出错误数据之前,不时地将已偏移的电荷电平恢复至其状态范围的中心处。此一过程(称作资料刷新或擦除)阐述于美国第5,532,962及5,909,449号专利中。作为其另一方面,在使用纠错码(EEC)的存储器系统中,可通过使用ECC来纠正自所述存储器读取的一定数量的错误数据位,然后将已校正数据重写至所述存储器中一先前已擦除的部分中。重写数据会使每一所写入的存储单元阈电平均处于其指定状态范围内,因为数据编程通常会涉及交替地调节所存储电荷并读取验证所产生的存储单元阈电平,直至其达到代表所述存储单元中所存储数据的所需范围为止。

发明内容
一快闪存储器系统中可包含一全面擦除操作,以补偿因对一组存储单元执行编程、读取或擦除操作而对同一集成电路芯片上另一组存储单元的存储电平所造成的干扰。产生此等数据干扰的可能性会随存储单元阵列尺寸的缩减而升高。目前,为节约空间,存在着使若干组存储单元共享各种信号线的趋势,以至于一组存储单元可能会在编程、读取或擦除另一组存储单元期间重复地受到电压及/或电流的影响。而通过以一种经过组织的连续方式来擦除存储于所用存储单元组中的数据,即会明显减少所存储数据随时间的恶化。同时,当通过有顺序地将受干扰的电荷电平恢复至其所需电平来校正所述受干扰的电荷电平时,使得使用一更大数量的更小电压阈状态范围在每一存储单元中存储更大数量的位变得可行。
擦除操作需要读取已受到潜在干扰信号影响的区域中的数据,且如果确定所述数据确已受到干扰,则执行某种校正措施。可通过(举例而言)检查数据完整性,例如通过读取数据并获得对所述数据的ECC检查的结果来检测干扰。校正措施可能需要将数据重写于同一位置或一不同位置,且可涉及到一更高级缺陷或数据管理操作。
可使擦除操作自适应于所读取数据的完整性。举例而言,如果在存储单元阵列的一区域中发现其中一个或达到一阈值的资料错误,则可提高那个区域的擦除速率。反之,如果在一既定区域中未发现错误或仅发现比一阈值少的数个数据错误,则容许降低对所述既定区域的擦除速率。也可根据使用率水平及其它系统参数来修改擦除速率及位置。为实现维护数据完整性的需要与维护高系统性能水平的需要之间的平衡,计算这些及其它擦除特征。尤其会避免不可能提高数据完整性的擦除操作。
擦除操作较佳在存储器系统未在读取或写入数据时在后台执行。存储器系统可能会依赖主机来指示所述主机何时将不要求存储器存储或检索数据,以便可在所述时间期间执行一擦除操作。
即使在一特定擦除读取操作中检测到一个或一个以上数据错误,如果所述错误可在读取所述数据时由ECC校正,则也可确定不采取校正措施,以便维护系统性能。当各单独扇区中的用户数据及开销数据具有其自身的ECC时,与用户数据中的错误相比,更不可能容许对开销数据中的数据错误不加校正。
当在一正常状态下的擦除数据读取中的位错误太多以至于无法由ECC来校正时,可使用更宽松的参考状态来重新读取所述数据,以便读取那些其所存储电荷电平已偏移出正常范围之外的存储单元。在由ECC正确验证后,即可将所读取数据重写于正常电荷范围电平内。反之,当一数据擦除读取操作显示无错误时,可在更严格的参考状态下重读取所述数据,以便确定所存储数据的质量。换句话说,检测那些已偏移出其最佳范围外的电荷电平,以便可作为所述擦除校正措施的一部分将其重写回至此等范围内。
在那些使用可单独存储大量主机数据扇区的大存储单元区块或元区块的存储器系统中,可将一第一物理区块中在一擦除操作期间得到校正的一(若干)数据扇区重写至一第二区块中,并将所述第一区块的剩余数据扇区复制至所述第二区块中,此与上文所述的擦除集用存储器管理方法相一致。另一选择为,可使一区块或元区块专用于临时存储经擦除校正的数据扇区,直至出于某种其它原因(例如无用单元收集)需要移动其它与所述已校正扇区来自相同区块或元区块的数据扇区为止,此时可将所述经擦除校正的数据扇区与相同区块或元区块中的其它数据扇区重新组合。此可提高系统性能。
一旦确定需对某些规定数据采取校正措施,如果在当时采取校正措施可能会不利地影响系统性能,且如果在此后采取校正措施之前可在不采取校正措施(如果需要)情况下读取出所述数据,则可将所述措施延期。此时,会临时存储在延期时确定的所有已校正数据、地址及各种参数并在随后执行一被延期的校正措施时检索。在以大存储单元区块或元区块形式组织的系统中,可延期校正擦除措施,直至已排定对来自一既定区块或元区块的一既定数量的数据执行校正措施,在此种情况下,所述既定区块或元区块中的所有被延期的数据扇区同时得到校正。此可减少当所述既定区块或元区块的各数据扇区再次合并在一起时所发生的数据复制及重写操作的数量。
最后,如果发现一既定存储单元、存储单元列、存储单元区块、或某些其它存储单元单元需要频繁地擦除,则可在所述单元降级至其中所存储的数据已无法读出或校正之前将所述单元映像出所述系统。
上述特征可单独构建或以各种组合形式构建在一起,此视具体应用而定。在下文对本文所述擦除系统的例示性实例的说明中包含有所述擦除系统的其它方面、优点及特征,下文的说明应结合附图来阅读。本文所提及的所有专利、专利申请案、论文及其它公开案的全部内容均以引用方式并入本文中。


图1A及1B分别是共同操作的一非易失性存储器与一主机系统的方框图;图2图解说明图1A所示存储器阵列的一第一例示性组织;图3显示一其数据存储于图1A所示存储器阵列中的例示性主机数据扇区;图4图解说明图1A所示存储器阵列的一第二例示性组织;图5图解说明图1A所示存储器阵列的一第三例示性组织;图6显示图1A所示存储器阵列的第三例示性组织的一扩展形式;图7是具有一特定配置的图1A所示阵列的一组存储单元的电路图;图8是一图解说明一数据擦除操作中各主要步骤的流程图;图9是一擦除操作的更具体实例的流程图,其分几部分显示在图9A及9B的两个页面上;及图10显示一已编程存储单元组的电压阈值电平的分布。
具体实施例方式
存储器架构及其操作首先参见图1A,一快闪存储器包括一存储单元阵列及一控制器。在所示实例中,两个集成电路装置(芯片)11及13包含一存储单元阵列15及各逻辑电路17。所述逻辑电路17通过数据、命令及状态电路连接一位于一单独芯片上的控制器19,并也对阵列13提供寻址、数据传递及感测、及其它支持。存储器阵列芯片的数量可自一个至许多个,此视所提供的存储容量而定。或者,也可将所述控制器及一部分或整个阵列组合至一单个集成电路芯片上,但目前此种选择方案并不经济。
一典型的控制器19包括一微处理器21、一主要用于存储固件的只读存储器(ROM)23及一缓冲存储器(RAM)25,所述缓冲存储器25主要用于临时存储写入或读出存储器芯片11及13的用户数据。电路27与存储单元阵列芯片连接,而电路29则通过连接线31与一主机连接。在本实例中,通过使用专用于计算ECC码的电路33计算ECC码来确定数据的完整性。当正在将用户数据从主机传送至快闪存储器阵列以供存储时,所述电路会根据所述数据计算一ECC并将所述码存储于所述存储器中。当以后自所述存储器读取所述用户数据时,将再次经由电路33传送用户数据,由电路33使用同一算法来计算ECC并将所述码与所计算的与所述数据一起存储的码相比较。如果二者相匹配,则证明所述数据完整。而如果二者存在差异,则视所使用的特定ECC算法而定,可识别出并校正那些错误位,且最多识别出并校正由所述算法所支持的数量的错误位。
图1A所示存储器的连接线31与一主机系统的连接线31′相连接,所述主机系统的一实例显示于图1B中。数据是经由接口电路35在主机与图1A所示存储器之间传送。一典型的主机也包括一微处理器37、一用于存储固件码的ROM 39及RAM 41。其它电路及子系统43通常包括一大容量磁性数据存储磁盘驱动器、用于键盘的接口电路、一监测器及类似元件,此视特定的主机系统而定。此等主机的某些实例包括台式计算机、膝上型计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、MP3及其它音频播放器、数码相机、视频摄像机、电子游戏机、无线及有线电话装置、电话答录机、录音机、网络选路器及其它装置。
图1A所示存储器可构建为一包含有控制器及其所有存储器阵列电路装置的小封闭卡,所述封闭卡具有一可以可装卸方式与图1B所示主机相连的形式。换句话说,配对连接线31及31′允许断开所述卡并将其移至另一主机、或者通过将另一卡连接至所述主机而予以更换。另一选择为,可将存储器阵列装置封装于一能以电方式及机械方式与一包含有控制器及连接线31的卡相连的单独卡中。又一选择为,可将图1A所示存储器嵌入图1B所示主机内,其中连接线31及31′是永久制成。在此种情况下,存储器通常与其它组件一同容纳于所述主机的一外壳内。
对本说明所用的某些术语做出一定解释可能会有益。“扇区”是指在主机读取及写入操作期间所存取的可独立寻址的数据单元。一个资料扇区的尺寸通常为512个字节。
本文所用术语“存储器系统”是一种由一个或一个以上非易失性存储装置及向所述存储器存储及自所述存储器检索数据所需的硬件及/或软件组成。整个存储器系统功能的不同部分既可构建于一完全专用于数据存储的子系统上,也可构建于主机系统自身上。所述存储器系统可嵌入一主机系统中,或者可装卸,例如呈现一极小的卡形式。可装卸式存储器系统的各部分可自身为可装卸式,举例而言,如同存储媒体可自控制器部分上装卸那样。主机系统中专用于存储器系统中数据存储的任一部分也被视为存储器系统的一部分。除驻存于主机系统上的任何硬件之外,此种主机功能也可包括专门的软件库、驱动程序或应用程序。
在本文中,“主机系统”是指如下的系统其通常具有一除数据存储以外的功能,但其也连接至存储器系统或其中嵌入有一存储器系统。也可能会存在其唯一用途即是存储数据的主机系统。
本文所述用于刷新及擦除快闪存储器所存储数据的各种技术可构建于具有各种特定配置的系统中,所述系统的实例在图2-6中给出。图2显示一其中将各存储单元划归成若干区块的存储器阵列的一部分,其中每一区块中的各存储单元可作为一单一擦除操作的一部分来一同擦除(通常是同时擦除)。此种物理区块是最小擦除单位。
图2的单个存储单元区块的尺寸可各不相同,但一种市面上所采用的形式是在单个区块中包含单个数据扇区。此一数据扇区的内容显示于图3中。用户数据51通常为512个字节。除用户数据51之外,也具有开销数据,开销数据包括一根据用户数据计算出的ECC 53、若干关于扇区数据及/或关于编程有所述扇区的区块的参数55、一根据所述参数55计算出的ECC 57、及任何其它可能会包含的开销数据。所述参数55可包含一关于所述区块所经历的编程/擦除循环数的量值(“热计数值”),所述量值在每一循环或在一预设数量的循环之后更新。此种经历量值的一应用是定期地将各逻辑区块地址重映像至不同的物理区块地址,以便平均所有区块(平均读写)的使用。所述经历量值的另一应用是根据不同扇区所经历的循环数来改变电压及其它编程、读取及/或擦除参数。所述经历量值在识别拟擦除的区块的过程中的其它应用将在下文中予以阐述。
参数55也可包含一有关位值的指示,所述位值被赋予各存储单元存储状态中每一存储状态(通常称作其“循环移位”)。换句话说,将数据的逻辑状态映像至不同的物理存储状态。此也会在平均读写方面产生有益的效果。也可在用于指示现状(status)或状态(state)的参数55中包含一个或一个以上旗标。关于拟用于编程及/或擦除所述区块的电压电平的指示也可存储于所述参数55中,所述电压会在所述区块所经历的循环次数及其它因素出现变化时得到更新。开销参数55的其它实例包括所述区块内任意缺陷存储单元的标识,映像至所述物理区块内的数据区块的逻辑地址、及在所述主区块有缺陷情况下任一替代物理区块的地址。在任一存储器系统中所用的参数55的具体组合将因设计而异。此外,也可将某些或所有开销数据存储于专用于此一功能的物理区块中而非存储于包含用户数据的区块或所述开销数据的相关区块中。
与图2所示单一资料扇区块不同者是图4所示的多扇区物理区块。一例示性区块59(其仍为最小擦除单位)包含四个页面0-3,其中每一页面均为最小编程单位。在每一页面中均存储有一个或一个以上主机数据扇区,所述一个或一个以上主机数据扇区通常是与至少包含根据所述扇区的数据计算出的ECC的开销数据存储在一起,且可以是图3所示数据扇区的形式。当更新少于所有页面的数据时,通常将已更新数据存储于一来自一已擦除区块公用池的已擦除区块的一页面中,并将其余未改动的页面自原始区块复制至所述新区块中。然后,擦除所述原始区块。此种大区块管理技术的变化形式包括将已更新数据写入另一区块的一页面中而不将资料移出原始区块或擦除。此会产生多个具有相同逻辑地址的页面。其中,最新的资料页面是通过某些方便技术来识别,例如通过所记录的作为扇区或页面开销数据中一字段的编程时间来识别。
另一多扇区物理区块结构显示于图5中。在所述结构中,将整个存储单元阵列在物理上划分成两个或多个平面,图中显示四个平面0-3。其中每一平面均为一存储单元子阵列,其具有其自身的数据寄存器、读出放大器、寻址译码器及类似元件,以便能够基本独立于其它平面进行操作。所有平面均可设置于一单个集成电路装置上或多个装置上,其一实例是自一个或多个不同的集成电路装置构成每一平面。图5所示系统中的每一区块均包含16个页面P0-P15,其中每一页面的容量均为一个、两个或多个主机数据扇区及某些开销数据。
又一存储单元结构显示于图6中。其中,每一物理平面均包含大量存储单元区块。为提高操作的平行度,对不同平面内的区块进行逻辑链接以形成元区块。在图6中即说明一个此种元区块,所述元区块由平面0的区块3、平面1的区块1、平面2的区块1及平面3的区块2构成。每一元区块均可逻辑寻址,且存储器控制器会分配并跟踪构成各单独元区块的各区块。主机系统较佳地与一其数据单位等于各单独元区块容量的存储器系统连接。图6所示的此一逻辑数据区块61(举例而言)是由一逻辑区块地址(LBA)来标识,所述逻辑区块地址由控制器映像成构成所述元区块的各区块的物理区块编号(PBN)。所述元区块中的所有区块被一同擦除,且较佳同时编程及读取来自每一区块的各页。
有许多种不同的存储器阵列架构、配置及特定存储单元结构可用于构建上文根据图2-6所述的存储器。为说明几种干扰机理,在图7中显示一种NAND型存储器阵列中的一区块。其中,大量列取向的串联连接的存储单元串连接在一电压为VSS的共享源极65与位线BL0-BLN其中之一之间,所述位线BL0-BLN又与电路67相连,所述电路67包含地址译码器、驱动器、读取读出放大器及类似元件。具体而言,一此种串包含串联连接在位于所述串对置端处的选择晶体管77与79之间的电荷存储晶体管70,71..72及74。在本实例中,每一串均包含16个存储晶体管,但也可包含其它数量的晶体管。字线WL0-WL15延伸穿过每一串中的一个存储晶体管,并连接至电路81,所述电路81包含有所述字线的电压源驱动器及地址译码器。线83及84上的电压可控制将所述区块中的所有串通过其选择晶体管一同连接至电压源65及/或位线BL0-BLN。数据及地址是来自于存储器控制器。
所述区块的每一排电荷存储晶体管(存储单元)均构成一可共同编程及读取的页面。将一适当的电压施加至此一页面的字线(WL)来编程及读取其数据,同时选择施加至其余字线的电压以使其各自的存储晶体管导通。在编程或读取一排(页面)存储晶体管的过程中,未选定排上先前所存储的电荷电平可能会因电压施加于所有串两端及施加至其字线而受到干扰。
擦除过程的各个方面存在两个基本的擦除阶段读取阶段及校正措施阶段。擦除读取有别于其它系统读取之处在于其通常涉及到选择及读取存储器系统中既不与完成一特定主机操作直接相关也不与众多其它系统操作中任一操作(例如平均读写)直接相关的各区域的数据。擦除读取的另一明显特征在于系统并不自所读取数据收集有用信息,相反地,数据完整性检查结果是所述操作的目标。接下来对所述系统部分所采取的措施是在所述完整性检查的结果而非在(尤其是)数据自身指导下进行。如果数据未能通过所述完整性检查且因而需要采取校正措施,则接下来所述系统可能需要使用来自所读取数据(例如开销数据)的某些信息。并不完成一特定主机操作及并不自存储器获得任何有用数据的这些特征是擦除读取与所述系统所执行的其它数据读取之间的基本区别。
选择拟擦除读取的特定区域是根据存储装置的物理特征、以正常系统操作过程中所执行的读取、写入及擦除操作的位置及次数为指导来进行。一般而言,对存储器阵列中已因其它区域中的操作而暴露于电压、电流或串扰的区域执行擦除读取。或者,可使擦除读取的位置与其它存储器操作脱离,而使擦除读取的位置遵循一确定的或随机的顺序。然而,此可能会造成系统性能损失,因为需要执行更多次读取来获得对受干扰更严重区域的相同覆盖程度。
擦除读取的另一方面是选择何时执行擦除读取操作。一般而言,可响应于诸如以下任意数量的因素来启动擦除操作主机操作次数,物理读取、写入及/或擦除操作的次数,时间周期,主机的使用特性,或某些随机或伪随机序列,其中可使所述随机或伪随机序列的产生及检查与上述任一因素相联系。
擦除写入有别于其它系统写入之处在于其通常是在一擦除读取期间所读取数据未能通过完整性检查时执行。擦除写入仅在擦除读取情况下具有独特性。可执行的与擦除写入具有系统机理但并非针对所述特定目的实施的其它写入操作。在一实例中,写入操作可起因于在正常存储器系统操作过程中所执行的读取或写入操作之后未能通过完整性检查。在另一实例中,可在不进行擦除读取的情况下,出于刷新目的读取及重写数据,其中实施写入的决定并非基于数据完整性检查,而是基于某些其它因素。此一因素可以是在所述阵列中存在一具有高使用率或受影响率的区域,在此种情况下即可重写或移走所述区域中的数据。可以一确定的或随机的方式来连续移走或刷新数据。读取及重写数据可以是出于平均读写此一所期望目的,但也具有能以一克服干扰问题的方式刷新所述数据的意外益处。
实际上,当一数据单元满足其它擦除准则时,可使用所述数据单元的相对新鲜性来确定是否启动擦除所述数据单元的操作。换句话说,如果作为平均读写、数据合并(无用单元收集)、预擦除或其它操作的一部分,新近已将一数据单元再编程,则可跳过当前的擦除操作,因为那些资料新近已刷新过。可使用与各个数据单元一同存储的例如位于所述区块的开销数据的一部分中的经历计数值(“热计数值”)或时间戳记来维护所述数据单元的相对新鲜性。或者,可根据各物理区块中所存储数据的新鲜性将所述物理区块分组,其中将某一区块所属的组存储作为所述区块的开销数据。然后,可使用那些本应变为待擦除候选区块的相对新鲜性作为一因素来选择那些实际被擦除的区块。然后,通过将擦除操作限定至那些存储时间已足够长以致于其所存储电荷电平已受到严重干扰从而需要加以注意的数据单元来提高系统性能。
为监测所存储资料的相对新鲜性,可根据各逻辑区块或物理区块已再编程的新近程度将所述逻辑区块或物理区块有效地划分成若干组。可赋予整个存储器阵列内的所有区块或者所述阵列的一平面、区段或其它部分内的各区块一初始的相对热计数值,且每当将一区块再编程时,均可将所述相对热计数值更新至最近移动的组(set)或组群(group)的值。一旦有一定数量的区块处于最近再编程的组中,即可递增所述最近再编程组的值,并可将任何在随后再编程的区块更新至所述新组值。由此,可形成不同的组,使最近再编程的区块与最早再编程的区块之间存在一相对明显的区别。一般而言,容许一区块的相对热计数值翻转计数,从而能够使用一相对小数量的字段。
当利用相对热计数值时,当存在八个可能的值(例如在一具体实例中为值“0”至“7”)时,大致上所有区块均可开始于一基值“0”。可使用所述八个值中的七个值,而预留一个值以用于在代表最近编程的区块的值与标识那些含有最早数据的区块的值之间提供一空隙。在本实例中,被写入的区块接收一新值“1”,以表示其为最近编程的区块。一旦已将一定数量的区块更新至新值“1”,后续编程的区块即可接收一新值“2”。一旦已将值“2”赋予一定数量的区块,即可最终将值“3”赋予最新再编程的区块。此时,所述计数值将翻转,从而使最早使用的区块的值为“2”,最近编程的区块的值为“0”,并由值“1”在所述二者之间提供一空隙,从而明显地区分具有最早资料的区块与具有最新资料的区块。最终,具有最早值的所有区块均将通过主机写入、擦除、平均读写或其它机理而被重写。在上述实例中,此时值“2”将空缺,所述值可用作间隙,而值“1”可用于标识最近被写入的区块。当根据其它准则一区块变为拟接受擦除操作的候选区块时,如果其相对热计数值使其处于其中一个最近再编程的区块组中,则可不擦除所述区块。
另一选择为,可保持逻辑区块或物理区块或二者的绝对热计数值,在此种情况下,系统可较佳使用此等热计数值来做出擦除决定。换句话说,当将一区块再编程时,其绝对热计数值会递增、递减或者保持不变,以提供一关于所述区块已再编程总次数的指示。其中,具有指示大量再编程操作的绝对热计数值的区块通常比指示少数再编程操作的绝对热计数值的区块被更近地再编程。因此,可不擦除再编程次数较大的区块中所存储数据,因为所述数据不可能已受到明显干扰。
存在许多种可替代地实施的具体擦除算法及相关存储器操作。可由存储器系统控制器控制擦除操作,或者另一方式为在每一存储单元集成电路装置(芯片)上控制擦除操作,甚至可由主机部分地或完全地控制擦除操作。所述存储器系统可以可装卸方式与主机相连接,或者另一选择为,其可嵌入主机内。
可采用若干种不同方式实施擦除操作的读取阶段。可对擦除速率加以调谐,以使性能最佳化同时保持规定水平的数据完整性。举例而言,可对执行擦除操作的速率及每次所读取数据扇区的数量二者进行调谐。此种调谐操作可作为擦除算法的一部分而自动进行。举例而言,可使擦除操作的速率及位置与存储器不同区域中不均匀的受干扰率相匹配。也可将擦除读取延期,以将系统性能最佳化或满足特定的实时需要。
擦除读取的实施方式也存在各种替代方式。举例而言,可既使用标称参考电平也使用带余量的参考电平来读取一组数据。余量的量可针对所遇到的具体干扰机理。如果所读取数据无法由ECC来校正(举例而言),则一具有较宽余量的读取操作可能能够恢复所述数据。而如果可无错误地正常读出数据,则一具有较窄余量的读取即可提供关于所述数据的质量的信息。
在一擦除读取之后,决定是否采取校正措施。在此一决定可依据的诸多因素中包括一活动水平,所述活动水平是基于已检测到的错误位的数量及/或模式。
校正措施最通常包括在存储器中的相同或一不同位置重写读取数据。为使系统性能最佳化,或为满足具体的实时需求,可将此等擦除操作延期。校正措施可还包括在一擦除写入操作期间使数据旋转;换句话说,改变代表具体所存储数据的存储单元状态的原有状态。校正措施也可包括将认为易于受到干扰的存储单元、柱或其它结构映像出系统。
大多数主机协议均具有一连接至存储器系统的抽象接口,从而使所述存储器通常由主机按逻辑区块地址编号(LBA)来寻址。也存在其它的等效寻址模式,例如ATA主机协议中的柱面—磁头—扇区,但基本概念在于主机并不知晓存储器系统已存储有一既定主机数据扇区的物理位置。主机系统可得到一组线性相邻的独立逻辑区块地址,以在所述地址处存储及检索数据扇区。这些经抽象的主机协议通常要求在存储器系统上存在一控制器,以便控制存储器操作、执行映像功能、数据管理、错误恢复等等。使用这些经抽象的主机协议操作的存储器系统较佳依靠所述存储器系统中的控制器来执行擦除操作,因为主机通常并不知晓所述存储器系统的物理方面。
另一方面,某些主机协议具有一其中由主机自身执行存储器管理功能的接口。遵守所述协议的存储器系统即使具有控制器功能,也通常具有最少的控制器功能。可能存在可由存储器系统而非主机系统执行的不同的功能部分,例如(但不限于)ECC产生、ECC检查或ECC校正。在这些主机存储器所管理的协议中操作的存储器系统将通常依靠主机来执行擦除操作,因为所述存储器系统所具有的逻辑通常不足以执行擦除操作。
某些存储器系统具有一专用控制器,所述专用控制器的用途是操作存储器装置并执行存储器管理功能。其它存储器系统则不具有专用存储器控制器,而是依靠主机架构的某些部分来执行存储器管理操作。举例而言,可将一非易失性存储器装置直接连接至主机系统中的一通用微处理器,由软件来执行存储器管理功能。在此等不具控制器的存储器系统中,负责存储器管理操作的同一子系统较佳也执行擦除功能。
在不具有控制器的存储器系统中,也可将控制器功能整合在一非易失性存储器装置(集成电路芯片)自身中。在一极端的实例中,可将整个控制器整合在一存储器装置上。
存储器系统可嵌入主机系统中并在不同程度上将功能整合在通用主机子系统或具有其它功能的主机子系统内。在此等嵌式存储器系统中,通常遵循相同的主机协议,尽管也可能未必尽然。然而,作为一通用规则,需要使用相同的功能组来操作存储器系统。
尽管存储器系统通常是在一经抽象的主机协议情况下执行擦除操作,然而主机系统也可藉助使用一特殊命令或其它预定义的接口事务来启动此等系统中的擦除操作。构建此种功能的一原因可能在于主机系统最知晓那些将不存取存储器系统以存储或检索数据的时间周期,因而主机系统可在所述时间周期期间借机启动一擦除操作。通过此种方式,即可提高系统的总体可靠性且对性能的影响最小。用于启动擦除操作的机制可专门用于擦除目的,或者其也可为一通用机制,以将可供用于内务操作的时间通知存储器系统。在后一种情况中,擦除操作可是存储器系统在所述时间周期期间所执行的若干种操作中的一种。
因一既定存储器操作而受到影响的区域通常很大,因而每当执行一操作时即擦除整个受影响区域并不可行。一般而言,将仅选择擦除受影响区域的一部分,且擦除率的设定必须使擦除操作将在错误位数量及已偏移单元的电平超出存储器系统上可具有的任何恢复方案之前检测出受干扰最严重的区域。
擦除操作的执行率是一重要参数,其既影响数据完整性也影响存储器系统的性能。擦除速率愈高,则在错误位数量及已偏移单元的电平超出存储器系统上可具有的任何恢复方案之前在一数据区块中检测出受影响的单元的可能性即愈大。然而,擦除速率愈高,则存储器系统的性能降级即愈严重,因为此时专用于此操作的存储器及控制器时间量增大。为保证所期望的数据完整性水平且同时使所牺牲的性能尽可能小,将擦除速率最佳化为所需的最小裸速率,并带有任何被认为适当的防护带。执行擦除操作可采用的速率可以下述两种方式变化(1)选择执行擦除操作的时刻,及(2)选择每次拟擦除读取的扇区数量。
在产品的寿命期内维护数据完整性所需的擦除速率可有所变化。举例而言,随着存储单元的循环次数的增加,干扰率可能会增大或减小。假如在制造时设定为一固定的擦除速率,则为在存储器系统的寿命期内维护存储器系统的完整性,将须使用在存储器系统的寿命期内所需的最高速率。此会导致当使用一较低的速率即可满足要求时也使用一较高的擦除速率,致使所牺牲的存储器系统性能高于在存储器系统寿命期内某些时候所需的程度。存在数种在存储器系统寿命期内对擦除速率实施调谐的方法。
可在制造存储器系统时设定一可变的擦除速率。这样做的一种方法是提供一速率值表,所述速率值表使用任何会影响干扰率的尺度来设定不同的擦除速率。其一实例是一表包含对应于存储器阵列的各部分所经历的不同编程/擦除循环计数值的擦除速率。如果所述存储器系统保持有循环计数值,则根据所述阵列中一既定区域的最差情形循环计数值或平均循环计数值自所述表中选取所述擦除速率参数。
另一种方法是允许存储器系统根据先前擦除操作的结果来自行调节擦除速率。举例而言,如果存储器系统保持有一擦除操作日志并确定一极低百分比的擦除操作需要采取校正措施,则其可调低擦除读取的执行速率。反之,如果其确定一极高百分比的擦除操作需要采取校正措施,则其可调高擦除读取的执行速率。可供存储器系统调节擦除速率的另一尺度是在先前的擦除操作期间在各单独存储组件中检测到的偏移量或错误位数量。在任一上述情形中,所述系统均可使用每一新的结果来适应性地调节擦除速率参数,或者其可记录所述信息以供用于周期性调节。
目前存在若干种可用于选择何时执行一擦除操作的技术,所述技术的某些实例为(1)随机或伪随机,(2)根据主机操作的次数,(3)根据对存储器装置的操作次数,(4)根据时间间隔。可使用任一种上述方法来调谐擦除操作的执行速率。在下文中,假定所述擦除决定所需的任何参数均是在制造时提供。读取操作、写入操作及擦除操作可具有不同的频率参数,因为每一所述操作均可以不同的速率干扰存储器。
如果系统可得到或产生随机数(RN)或伪随机数(PRN),则可使用随机数(RN)或伪随机数(PRN)来确定擦除操作的频率。下文将阐述若干种使用一RN或PRN序列来决定是否执行擦除操作的方法。所有下述方法均假定以一定的定期间隔来检查RN,且根据对RN值的某种测试来决定执行擦除操作。
一种使用一随机数来确定擦除速率的方法是使用一屏蔽参数执行一RN或PRN的逻辑AND运算,所述屏蔽参数包含一定数量的设定为值1的位和其余设定为零的位。是否执行擦除操作的决定将依据所述AND运算的结果是零值还是非零值。一具有较多1的屏蔽参数产生零值的频率要低于一具有较多0的屏蔽值。下表显示在不同的八位屏蔽值情况下的近似擦除速率,其中假定在AND运算的结果为零时执行擦除操作。应注意,对于一真随机序列,仅值为1的位数量(而非所述值本身)影响擦除速率,因而所述表中的值仅为例示性值。

另一种相关方法是计算值1的一RN中的位数量,以确定是否执行擦除操作。同样,可将所述RN中的位数量与一表示一阈值的屏蔽或值进行比较。再一种方法则需要将一RN的值与一擦除速率参数的值加以比较。其中将根据所述RN是否在数值上超过所述阈值来决定是否执行擦除操作。举例而言,如果阈值为5,则RN会高于时间的5/256。
另一选择为,可使擦除速率与所执行的主机操作次数相联系。举例而言,可每N次主机读取、写入及/或擦除操作执行一次擦除操作,其中N为一用于设定擦除速率的速率参数。此外,也可使擦除速率与所执行的存储器操作次数相联系。举例而言,可每NR次读取、NW次写入及/或NE次擦除操作执行一次擦除操作,其中NR、NW及NE为用于设定擦除速率的速率参数。再一选择为,如果存储器系统包含一种量测时间间隔的方法,则可以一定的规则时间间隔T来执行擦除操作,其中T为一用于设定擦除速率的参数。
为保持存储器系统的性能,甚至在已决定执行一擦除操作后也可能期望延期一擦除读取。其原因可能包括实时因素。举例而言,主机可能会要求传送某一数据,而在某些时候将资源专用于擦除操作可能会影响存储器系统满足所保证数据频率的能力。为此,存储器系统可将各擦除操作参数排成队列,以供后续在执行擦除操作不会影响主机性能时再予以处理。所述擦除操作可被延期至以后主机命令处理中的某个时候、所述命令处理后的某个时候,或延期至下一主机命令。在此一情形中,会存储已决定的擦除操作参数并在以后对主机最为方便的时刻进行处理。
由于在一既定时刻可仅擦除存储器阵列中一受影响区域的一部分,因而实现正确覆盖的一个重要方面是在已决定执行一擦除时立即选择擦除位置。选择擦除位置通常涉及到对存储器装置实施读取、写入及/或擦除操作的位置。所述选择中蕴含着知晓一既定存储器操作将会在哪一区域上干扰其它存储组件。将拟擦除的区域与执行操作的区域相关联使得擦除操作最为有效,因为由此不会对存储器中不可能受到干扰的区域执行擦除操作。
一种选择拟擦除位置的方法需要使用一RN或PRN自受到一既定操作影响的区域中选择一位置。平均来说,受影响最大的区域将被选中擦除的机会最大。假定某些区域的选中将比其它区域更频繁且仅平均而言将实现均匀覆盖,则应调节擦除速率来补偿预期最差情形的随机数覆盖。
另一种选择拟擦除位置的方法需要确定性地移动穿过一受影响区域。然而,为保证完全覆盖,此种方法将要求既记录存储器操作也记录擦除操作。
如果记录对存储器执行的活动,则可得到一关于一既定区域受到潜在干扰操作的影响程度的量度。在已知此信息的条件下,存储器系统即可在所述记录中搜寻所受影响最大的区域,并将擦除操作限定至那些区域。所述方法可用于指导上述任一种方法来确定擦除速率及位置。通常可通过保持循环计数信息来跟踪编程/擦除循环。然而,一般而言,记录读取活动并不可行,因此所述方法可能不能用于跟踪读取操作影响。
另一选择为,可记录采取校正措施的位置并用其来指导确定那些较其它区域更易受到干扰或较其它区域受到更大影响的区域。存储器系统可使用所述信息来对拟擦除区域的选择进行加权,尤其是对于那些已较其它区域更频繁地要求采取校正措施的区域。
在未保持关于潜在的受干扰影响区域的知识的系统中,可使用随机方法或确定性方法而不依赖于此等知识。在此种情况下,不管主机活动在存储器系统中哪个地方导致发生操作,擦除操作均在整个存储器系统中执行。然而,擦除速率被调节得足够高,以保证覆盖充分。一般而言,此会极大地浪费资源,因为存储器系统中的某些区域所受影响将远大于其它区域,且所述区域较佳应作为首要的擦除操作焦点区域。
擦除操作的目的是在错误位数量及偏移存储单元的电平超过存储器系统上可具有的任何恢复方案之前检测出受干扰的存储组件。为此,通常期望在因受干扰而失去一既定电压阈电平的大部分防护带之前尽可能早地检测出干扰。
如上文在现有技术中所述,快闪存储器通常以离散状态或电荷存储电平范围存储数据,其中每一状态均通过某一防护带与其它状态相隔开。通常在每一状态之间均存在一标称的判别感测电平,如果一存储组件高于所述电平,即认为所述存储组件处于一种状态,而如果低于所述电平,即认为处于另一状态。当一既定存储组件受到干扰时,其已编程至或擦除的电平可能会开始偏移。如果所述存储组件的电平接近或交叉所述判别感测电平,则其会产生处于一状态的数据,所述状态不同于其原来编程至或擦除的状态。所述错误通常将表现为所述数据中的一个或一个以上位错误,且通常将藉助使用覆盖所述数据字段的ECC检测出来。
通过为读取条件留出余量或偏置读取条件以使所述判别感测电平进一步朝某种状态偏移,即使偏移量不会在标称读取条件下引起错误,也将感测出受干扰的存储组件处于错误状态。此使系统能够在所述偏移接近可在正常存储器系统操作期间引起错误的点之前检测出所述偏移。
如果已知干扰机理是以一特定方式影响数据存储电平,则可通过朝预期的电平偏移量留出读取条件余量来将目标确定为检测那些特定的干扰机理。尽管理想的情形将是在单组余量条件下通过一单次读取操作确定出预期的干扰机理,然而,通常此可能无法实现。可能会需要在不同条件下执行多次读取操作。举例而言,存在于一存储器中的不同干扰机理可能会使存储组件的编程或擦除程度加深。高于及低于一判别电平的存储组件均可能朝所述判别电平偏移,在此种情况下,可能需要首先检查是否有存储电平自一种状态朝一判别电平偏移,然后再检查是否有存储电平自另一状态朝所述判别电平偏移。
有两种单独的数据质量量度可用作阈值来确定是否应采取校正措施(1)藉助使用ECC检测数据错误,及(2)尽管几乎未检测到或确实未检测到数据错误,然而可在电荷存储电平引起数据读取错误之前检测到电荷存储电平的偏移。
如上文所述,为瞄准某些预期的干扰机理,或仅检查所存储电平是否具有足够的余量,可使擦除读取条件带有余量。不管所读取的数据处于标称条件还是处于带余量条件,均可根据在擦除读取操作期间所检测到的错误位数量来决定是否采取校正措施。举例而言,如果错误位的数量低于系统的ECC校正能力,则系统可决定延期采取校正措施,或者完全忽略所述错误。
除使用错误位数量作为阈值来启动校正措施外,系统也可根据诸如错误位模式等其它因素来做出校正决定。举例而言,ECC校正能力可能对位错误模式敏感,或者,位错误模式可指示出非易失性存储器中一特定的已知干扰机理。也可能会存在其它使阈值依基位错误模式的原因。位错误模式通常是在ECC校正操作期间显现出来。
出于保证性能的目的,即使在已决定需采取校正措施时,也可能会延期采取擦除校正措施。其原因可包括实时因素。举例而言,主机可能会要求传送某一数据,而在某些时候将资源专用于擦除校正措施可能会影响存储器系统满足所保证数据速率的能力。为此目的,存储器系统可将各擦除校正措施操作参数排成队列,以供后续在执行擦除校正措施不会影响主机性能时再予以处理。所述擦除校正措施操作可延期至此后主机命令处理中的某个时候、所述命令处理后的某个时候,或延期至下一主机命令。主要一点是擦除操作参数将得到存储并随后在对主机而言最为方便时加以处理。
存在两种明显不同的存储器架构极端,其中每一架构均会引出将主机数据映像至存储器装置上的物理位置及管理及存取已编程数据的不同方法。所述两种架构之间的基本区别是关于最小擦除单元的尺寸及其与主机协议数据扇区的尺寸的关系。
如果最小擦除单元的尺寸接近主机数据扇区的尺寸,则可构建一直接寻址方案,在所述直接寻址方案中,通常将一既定主机数据扇区映像至主机将所述既定主机数据扇区写入至的同一物理位置。在此一方案中,通常在将所述替代数据写入先前内容的位置上之前,自所述物理位置擦除先前内容。如果最小擦除单元的尺寸大于一主机扇区的尺寸,则所述重写操作可能需要执行读取-修改-写入操作。在所述寻址方案中,可将主机扇区重映像至存储系统中的其它位置,但此通常仅作为一缺陷管理操作的一部分在扇区重指定期间进行或出于某些其它系统可靠性目的而进行。在此种映像之后,所述主机扇区将通常保持映像至所述新的物理位置,直至出现某些其它重指定事件。在此一直接地址映像方案中,因干扰而引起的校正措施操作通常需要擦除确定已受干扰的物理位置处的内容,然后将所述内容重写至同一位置。对于在重写期间出现的任何错误,均以一种与系统所采用的一般异常处置方式相一致的方式来处置,所述异常处置方式包括(但不限于)重擦除及重写,重指定,改变擦除或写入参数等等。
另一方面,如果最小擦除单元的尺寸远大于主机扇区的尺寸,则通常构建一擦除-集用寻址方案。此一寻址方案也可使用也具有一小的最小擦除单元的存储器来构建。在一擦除-集用方案中,通常将各主机扇区划归成若干逻辑区块,然后将所述逻辑区块映像成物理擦除单元。一既定的主机数据扇区由一擦除单元内的其它主机数据扇区所环绕。当主机写入一既定的数据扇区时,读取环绕目标扇区的所有扇区、擦除所述区块并随后再将所有扇区写回至所述擦除单元且使所述一个主机扇区包含新数据是不切实际的。为避免此等过多的内务操作,一擦除-集用方案通常保持有一定数量的处于已擦除状态的擦除单元,以供用于在写入新版本的数据时容纳所述新版本数据。出于数据管理目的,各扇区通常是一起组成若干逻辑组,且一般而言,系统将力图保持各扇区在同一逻辑组中的物理接近性。可将若干擦除单元组合构成一称作元区块或虚拟区块的逻辑结构,此通常是出于实现高写入平行性的目的。一般而言,来自主机的新数据将写入一已擦除位置。有时,将来自同一逻辑组的尚未被新数据替换的其它扇区复制至同一元区块中,或者与新近写入的数据一同复制至另一元区块中。此后,一旦一既定元区块中或一擦除单元中的所有数据均已得到替换或复制至其它位置,即会擦除所述元区块或擦除单元,并将其视为已擦除的擦除单元公用池的一部分。在此一擦除-集用寻址方案中,因一干扰而引起的校正措施通常需要将受影响的数据复制至存储器系统上的另一位置,并伴随系统为获得正常存储器行为所需的任何数据合并。
然而,可将在一擦除操作期间需要采取校正措施的数据以与因主机活动或一般数据管理而引起的写入操作不同的方式来对待。可将数据写入一专门的位置,所述专门的位置预留用于容纳所述数据一较短的时间,直至系统能方便地将其与在逻辑上邻近的数据合并为止,所述区域即可预留,也可在需要时分配。在某些情况下,所述系统也可仅擦除及将数据重写至同一位置。举例而言,如果驻存于物理区块中的其它数据甚少或未驻存其它数据,则可将其它数据永久性地移至其它位置,或者在擦除期间暂时存储于其它位置(可能是存储于易失性存储器中),并与需要采取校正措施的数据一同写回。对于在数据写入期间出现的任何错误,均以一种与系统所采用的一般异常处置方式相一致的方式来处置,所述异常处置方式包括(但不限于)重写,重指定、写入一新位置、改变擦除或写入参数、使数据极性受迫旋转等等。
某些单独的存储组件、存储组件组或其它结构可能会比其它存储组件、存储组件组或结构更易受到干扰。作为可能的此等结构及分组的一实例,快闪存储器中各存储组件可布置成共享一共用漏极、源极或栅极线,且由于工艺中的变化,这样一组相连的存储组件可能会经受超出平均的更强的潜在干扰信号的影响。同样,在用于形成所述阵列的工艺中的变化,某些单独存储组件可能会比其它存储组件更易受到影响。可将存储系统设计成永久性地映像除去或重指定所述被认为易受干扰影响的区域。在一极端情况中,可在第一次出现一擦除校正措施操作时重映像任何存储组件或其它结构。举例而言,如果具有冗余存储组件,则可映像除去那些含有需进行ECC校正的位的存储组件。在其它实施例中,可记录校正措施操作的位置并在此后加以分析,以用于此后重映像各存储组件或存储组件分组目的。所述分析可涉及一既定分组已需要采取校正措施操作的次数的阈值。在某些情况中,可能需要使用关于所述存储器装置的物理方面的知识来分析所记录数据,以便检测预期物理结构(例如相连的存储组件)的存在。对存储组件或存储组件分组实施重映像的方式取决于存储器系统的构建方式。举例而言,一包含一逻辑扇区的物理区域可包含冗余的存储组件,以便替换被映像除去的存储组件。在另一实例中,如果一整个扇区或扇区组需要采用校正措施操作,则映像除去所述整个扇区或扇区组。
擦除操作可在主机操作的后台中或者在两次主机操作之间执行。可能需要根据主机所请求的操作类型来改变擦除操作的行为。举例而言,在执行一主机读取命令期间可能不便于进行擦除校正措施操作,在此种情况下,可将校正措施操作延期至一对存储器系统而言更方便的时刻。
一种可避免干扰的替代方法是先不检查确定数据是否错误即移走已可能受到干扰影响的数据。目前存在许多种用于选择移走数据的频率及位置的方法,上文已对大多数方法进行了说明。
擦除操作的一般性实施例图8所示流程图概示一例示性快闪存储器擦除算法中的各主要步骤。在第一步骤91中,监测存储器系统的活动,以确定何时发生一擦除操作触发事件。此一触发事件可为一个或一个以上如下事件1.当在所述阵列中一既定区块或一其它单元内发生一可能会干扰其它单元的电荷电平的数据读取、数据写入或擦除操作时。所述操作的强度及/或持续时间可能对确定是否触发一擦除操作、以及所述阵列对干扰的敏感性(例如当存储器以其中界定各状态的电荷电平范围较窄的多状态方式操作时)较为重要。
2.当一既定单元的正常系统读取操作读取具有至少一个或预设数量个位错误的数据时。
3.当余量读取(其参考电平被设定成读取出一比正常读取操窄的编程分布)显示尽管不存在位错误、但经编程的存储单元的阈电平并非最佳时。
4.自最末次擦除操作起经过一预定的时间间隔后。
5.当主机启动一擦除操作时。
总体目标是足够频繁地执行擦除操作,以在受干扰的数据变得多至超过存储器系统中可具有的任何恢复方案(ECC及类似方案)之前检测出受干扰数据。
一旦检测到一擦除触发事件,即在下一步骤93中确定在存储器阵列内执行擦除操作的位置。可根据如下来确定例示性候选位置1.位于既定单元外的区块或其它单元,其在读取、写入或擦除操作期间施加有电压或电流且与所述既定单元共享位线、字线或其它信号线;2.位于所述既定单元外的其它单元,其具有信号线与所述既定单元的那些信号线进行现场耦合,因而二者之间存在串扰。
3.对所述其它单元是编程还是擦除可决定其是否潜在地受到所述既定单元操作的影响。
4.受到潜在影响的单元可取决于所述操作是读取操作、写入操作还是擦除操作。
5.如果在对既定单元执行一正常的系统读取操作时在所读取数据中发现错误,则标识所述既定单元以对其进行一擦除操作。
6.可使用各候选区块中数据的相对新鲜性来除去那些新近已重写的候选区块。
在识别出作为待擦除候选区块的存储区块或其它单元后,未必接着执行擦除操作。如下一步骤95所示,在某些情况下,可将擦除操作的启动延期,所述情况的实例为1.为使系统性能最佳化或为满足存储器系统的实时操作需要,可将擦除读取操作延期。
2.自调谐擦除可动态地调节擦除操作的执行速率,以使保持性能与保持数据完整性达到最佳平衡。
3.可部分地根据各个被识别为可能受影响的单元的特性来确定执行一擦除操作的紧急性,所述特性(例如)为各单元的经历水平(编程/擦除循环的次数)及触发所述擦除操作的事件的类型。
4.可进一步将一擦除触发事件限定为以一确定性、随机性或伪随机性方式发生(a)在一规定数量的主机操作之后;(b)在一规定数量的物理读取、写入及/或擦除操作之后;(c)在一规定时间周期之后;(d)根据主机的使用特性;或(e)一随机或伪随机序列,可使所述随机或伪随机序列的产生及检查与任一上述项相联系。
在下一步骤97中,选择在步骤93中被标识为待擦除候选区块的区块或其它单元的全部或仅一部分进行擦除操作。选择准则包括1.可选择在任一操作中将被标识为有待擦除的所确定单元的数量,以平衡擦除操作所用时间对系统性能的影响与保持数据完整性的需要。
2.保持此种平衡的方式可以是识别出若干单元以供进行当前的擦除操作,所识别单元取决于存储器的使用期限、所识别单元所经历的编程/擦除循环次数、触发所述擦除操作的事件类型、及对所识别单元中的数据采取必要校正措施的历史。
3.一擦除操作中所包含单元的数量可取决于存储器的使用期限、既定单元所经历的编程/擦除循环次数及触发所述擦除操作的事件类型。
4.或者,通过以一种与正常使用率不相关的方式遵循一确定性、随机性或伪随机性序列来选择比所有所识别单元少的单元来进行擦除操作。
接下来,如步骤99所示,根据下述方式自所选单元读取数据(擦除读取)1.擦除读取操作并不与完成任一特定主机操作或与其它系统操作(例如平均读写)直接相关,但通常以与正常数据读取操作相同的方式来执行。
2.在如下特定情形中可执行余量读取操作(以不同于正常数据读取操作中参考电平的参考电平来读取)(a)作为对其中错误太多以致无法通过ECC来校正的数据的第二读取操作,其中所述第二读取操作中的参考电平放宽,从而读取出一宽于正常读取操作的编程分布(或者也可在下文所述数据校正步骤107中执行);或(b)当预计将由触发事件引发的特定干扰机构可能会使所编程电平明显偏移时,初始读取操作可为一具有更宽参考电平的余量读取操作;或(c)作为对其中无位错误或仅有少量位错误因而可由ECC校正的数据的第二读取操作以识别出作为已偏离最佳电平的电荷电平存储的数据,其中所述第二读取操作的参考电平缩紧,从而读取出一比正常读取操作窄的分布。(余量读取操作将在下文中参照图10进一步阐述)。
3.作为读取一区块的数据的一部分,也读取开销数据。如果在标头中存储有数据的相对新鲜性,则可使用所述相对新鲜性来识别新近重写因而无需擦除的区块。
在下一步骤101中,评价所读取数据的完整性。作为擦除读取操作的一部分,可根据自存储器单元读取的用户数据计算出一ECC,并将所述ECC与先前在编程期间所计算并与所述用户数据一同存储的ECC相比较。只要不存在位错误或仅存在少量错误因而可由ECC加以校正,即无需执行上文所述的具有放宽的参考电平的第二余量读取操作。
一可视需要执行的附加读取操作是读取跟踪存储单元的电平,以查看其所存储的值是否已改变。为建立用于读取存储单元的参考电平,通常均包含有跟踪存储单元。
一旦读取出数据并已知所读取数据中的错误数量(如果有),即在下一步骤103中确定采取校正措施是否既有必要也可取。某些考虑因素如下1.一种方法是校正具有任何数量位错误的数据,由此会使擦除操作更明显地影响存储器系统性能。
2.另一种方法是放弃校正所述数据,除非数据位错误的数量超过某一单元读取阈值N,由此会降低擦除操作对性能的影响。
3.也可使用通过比较各ECC而确定的错误数据位的模式来确定校正所述数据是否可取。
4.较佳不擦除新近重写(具有相对高的新鲜度)的数据。
一般而言,当确定是否校正错误数据时,较佳使完成擦除操作对性能的影响与所述错误对于当前及未来数据完整性的严重性达到平衡。
在下一步骤105中,确定是执行擦除校正措施操作还是将其延期至一后续时间。在做出此一决定时所考虑的一因素与在步骤95中所考虑因素相同,亦即延期,以满足存储器系统此时的特定实时操作需求。一般而言,如果此后完成所述擦除操作将对系统性能造成比当前时刻完成所述擦除操作低的影响,则较佳延期所述擦除操作。通常不希望中断控制器的正常处理操作来执行一擦除操作,特别是在因拟由ECC校正的错误数量很大、需要合并数据及类似原因而使得所述擦除操作将比通常情况耗用更长的时间时尤其如此。当延期时,由擦除读取操作所读取的数据、其地址、由ECC分析所确定的任何错误及在前面步骤中形成的其它擦除操作参数会暂时得到存储。此后,当对系统性能的影响降低时,即会读取所述数据及参数并完成所述擦除操作。
当将要完成擦除操作时,在下一步骤107中校正所述数据。在本实例中,通过使用ECC来校正数据。如果未作为上文所述步骤99的一部分执行余量读取操作,则如果一正常读取操作或擦除读取操作所产生的错误位多于所用ECC可校正的数量,可能需要执行一或多次余量读取操作(其中参考电平放宽,以读取一比先前读取操作期间所用编程分布宽的编程分布)来恢复所述数据。然后,在步骤109中,采取适当的校正措施。此可包括在原先读出所述数据的相同位置处重写已校正数据。当然,此需要首先擦除其中会重写入所述数据的区块,在图2所示存储器结构中,由于每一已校正数据扇区均填满一存储单元区块,因而此可能可行。但在图5及6所示的大区块存储器结构中,此并不有效,除非有足够的已得到校正的校正数据扇区需要使用在逻辑上连续的地址来重写从而填满或接近填满一区块。
或者,也可将已校正数据重写至一与先前在擦除操作中读出所述数据的位置不同的位置内。当存储器结构是利用如图5及6所示的大存储区块时,如果拟重写的数据少于一区块的容量,则可采用上文所述的擦除公用池技术或其它大区块管理技术。举例而言,校正一包含16个、32个或更多个页面的区块中的仅一或两个页面中的资料并不罕见。对于此等情况,可在所述阵列的一个或一个以上平面中将某一区块专用于临时存储所述一或数页已校正数据。然后,在方便时,例如在由存储器正常操作期间的其它因素启动的数据合并期间,将所重写数据与存储于原始区块中页面内的未校正数据相组合。或者,也可在所述专用区块变满时、或在数据的各主题页面已写入所述专用区块后一预设定时间量之后、或者在其它对于系统操作而言方便的时刻启动此种合并。
可方便地利用一或若干共用指定物理区块临时存储来自诸多其它区块中各页面的数据擦除重写且此后再将所重写页面的数据与来自其原始区块中其它页面的数据相合并。举例而言,将来自区块1及2的页面的擦除重写数据临时存储于一临时区块3中。此后,将区块1的擦除重写数据自区块3复制至一已擦除区块4内,并也将区块1中其余未经改动的页面复制至区块3内,以合并映像至物理区块1内的数据。然后,在另一已擦除区块5中执行相同的操作,以在其中合并存储于区块3中的区块2的擦除重写资料与来自区块2的未经改动的资料页面。
在图6所示利用元区块的系统中,既可在每一平面中均具有一个此等专用区块来存储来自所述平面中其它区块的重写数据,也可在整个系统中具有一单个专用区块以将来自任一平面中所有页面的已校正数据均写入所述专用区块中。所选取的具体操作取决于各单独区块中的页面数量、整个存储器阵列中的页面数量、及关于那些其数据将通过擦除过程而得到校正的页面的预期数量及频率的预报。一其结构及/或操作使其易于受到干扰的存储器阵列将需要具有比其它存储器阵列更多的专用区块。如果擦除读取操作未发现数据错误但正在执行擦除操作以便将已偏移的存储电压电平移回至其状态范围的中点,则仅重写所读取数据,因为此时显然不需要进行校正。
使用某些存储器系统的方式几乎不会引起干扰。因此仅偶尔地执行擦除过程,因为几乎不存在将被识别的触发事件。此外,也可行的情况为不管所擦除数据最初驻存于哪些物理区块中,均将相对少量的重写数据一起永久性地存储于一个或一个以上指定物理区块中。在此种情况下,并不作为擦除过程中的一步骤将所擦除数据的页面重组合入具有其它在逻辑上相邻的数据的页面的物理区块内。校正措施的另一要点是使用一不同于最初写入时的旋转来重写所校正数据。举例而言,可将一四状态系统的四种模拟存储状态范围最初指定为分别表示00,01,10及11,而在重写时则指定为表示11,10,01及00。所述转换是由存储器控制器使用保存作为开销数据或其它数据的一部分的具体旋转数据或以其他方式在读取数据时实施。数据旋转可有利地应用于对已校正数据及不需要校正的数据二者的重写。
可包含的另一校正措施要点是映像除去那些在历史上所受干扰影响远大于平均影响的存储器页面或区块。此是通过监测所述阵列中各页面、区块、平面及/或其它所定义区域中的数据错误数量来检测。当然,应小心防映射除去因除更易受干扰影响之外的其它原因(例如由于某一区块受到较平均情况更多或不同的使用)而经历数据错误的页面或区块。
擦除算法通常是由存储器控制器来控制,但也可由主机来控制。当由存储器控制器控制时,将所述算法编码成存储器系统固件,所述存储器系统固件通常是在存储器操作期间由微处理器21(图1A)自控制器RAM 25执行。
所使用的具体擦除算法取决于存储器系统、尤其是存储装置11及13(图1A)的某些特性。所述特性的实例如下(a)存储于编程存储器单元(通常为一页面)中的主机数据扇区的数量;(b)存储单元存储状态的数量及指定用于每一存储状态的阈范围的广度;(c)编程操作单元(通常为一页面)是包括单个还是多个主机数据扇区;(d)一擦除单元(通常为一区块)中编程操作单元(通常为一页面)的数量;及(e)存储单元的密度以及一个单元中的操作在另一单元中引起数据干扰的广度及具体趋势。
擦除操作的具体实施例在图9所示流程图中显示一擦除算法的一更具体的实施例。一般而言,利用与上文所述相同的处理步骤,但所述实施方案显示得更为详细,其中包括参照图10针对一四状态系统实例(在每一物理电荷存储单元中存储2个位)所述的余量擦除读取操作。所述处理操作的两个入口点显示于图9中的115处(当检测到一擦除触发事件时)及117处(当接收到一执行被延期的擦除操作的命令时)。
在步骤115中,按上文针对图8中步骤91所述,监测所述存储器是否发生一擦除触发事件。同样地,在步骤119中,确定待擦除的候选存储单元是否擦除,此与针对图8中步骤93所述者相同。然后,类似于步骤95,在图9所述步骤121中确定是否应因此时需要执行的其它系统操作而延期对任一所述候选单元的擦除操作。如果应延期,则如在123处所示,临时存储候选存储单元的地址及其它所需数据,所述过程会等待其它更高优先权系统操作结束后再继续执行。另一选择为,可延期完成所述擦除操作,直至在步骤117中自主机接收到或存储器控制器产生一后续专门命令,如同在所述过程中后续发生延期时的情形。当在步骤123中存储用于已延期擦除操作的数据后,按步骤124所做决定,结束所执行的特定擦除操作,除非仍存在更多的待擦除单元。如果存在更多的待擦除单元,则所述处理过程转回步骤119。
在下一步骤125中,执行与图8所示步骤97相同的功能,即选择待擦除的候选存储单元。图9中的各后续步骤是每次针对其中一个所选单元执行。在下一步骤126中,将读取断点电平及其它读取条件首先设定至正常读取电平。然后,在步骤127中,在所设定条件下对所述存储单元中的一第一存储单元执行擦除读取操作,此对应于图8中的步骤99。后续各步骤均是对所述同一单元执行,然后一循环129转回至步骤127以依序处理下一所选单元,直至所述单元已全部得到擦除。当然,如果在一特定操作中仅选择一个单元进行擦除,则不存在回环129。
当在步骤127中使用在步骤126中所设定的读取余量完成擦除读取操作后,在步骤131中确定是否存在任何数据错误,此与图8中的步骤101相同。如果存在错误,则在下一步骤133中确定所述错误是否可校正。当使用ECC来确定数据完整性时,所述步骤133会确定在所读取数据单元中坏位的数量是否处于当前所用特定ECC算法的校正能力以内。如果所述错误可校正,则在下一步骤135中确定校正操作是否既有必要也可取,此对应于图8中的步骤103。步骤135可简单至仅确定错误但可校正位的数量是否小于一1或极少数位的阈值,如果是,则可确定不采取校正措施。
步骤135中的决定也可受到所述数据及其ECC是用户数据还是开销数据的影响。如参照图3所述,开销数据可具有其自身的ECC。当确实如此时,可在步骤131及133中单独检查用户数据及开销数据的完整性,且甚至可通过将用户数据及其ECC视为一个单元且将开销数据及其ECC视为另一数据单元(尽管其可能存储于同一页面中)经由具有返回129的完整循环来每次一个地处理用户数据及开销数据。尽管各开销数据ECC及用户数据ECC的用途通常相同,然而所述过程的操作可更严格地保持开销数据的完整性。此是一在维护系统性能(过量的擦除操作会使系统性能降级)与长期保持所存储数据的完整性(此是擦除操作的设计目标)之间实现平衡的实例。
如果步骤135中的决定是应对所关心数据单元中的可校正错误实施校正,则在下一步骤137中询问是否应将资料校正延期。举例而言,如果在所读取数据中存在过多的坏位以致于其校正所耗用的时间将多于所述阶段中可用的时间,则较佳将擦除操作延期。如果不延期,则在步骤139中校正所述错误,此与图8中的步骤107相同。在下一步骤140中,询问是否应将校正措施延期。如果重写所述数据的操作也因一必要的合并(其将耗用的时间将多于可用时间)而涉及到移动其它数据,则通常将擦除操作延期。如果未延期,则在步骤141中根据在上文中阐述图8所示一般实施例时所述的多个重写选项之一来重写所校正数据。在成功地重写所校正数据单元后,在步骤143中确定是否还存在步骤125中选中的任何其它待擦除的存储单元。如果存在,则在步骤145中依序递进至下一单元,且所述处理过程经由循环129返回至步骤127来处理所述新单元。
至此,已对图9所示流程图的主路径阐述完毕。但当某些所述问题的解答不同于上文所述时,会沿所述主路径引入许多分支。拟阐述的第一个此种分支是当所讨论单元中存在的数据位错误过多以致于无法由ECC校正时自步骤133引出。如步骤151所示,此时,将读取阈电平设定为不同于步骤127中擦除读取操作所用的电平,然后在步骤153中,使用所述不同的阈电平再次读取所述单元的数据。此一带余量读取操作显示于图10中。
图10中使用一以四种状态来操作快闪存储器阵列中各单独存储组件的实例。所述图显示一存储单元内存储组件的数量在四个阈电压电平范围中每一范围内的分布(不存在干扰)。其中,在各存储状态阈电平范围之间保持有阈电压防护带155,156及157,在所述防护带内的任何单元中均不存在数据。此是一在将一存储单元的各状态编程并加以验证后即立即存在的人们所期望的编程条件。但当随后编程、读取及/或擦除其它单元时,所述数据可能会受到干扰。所述干扰表现为阈电平在一侧或另一侧偏移至邻近的防护带内。对于每一状态分布内一较小比例的存储单元,可能会发生此种情况,或者整个分布可偏移或伸展至邻近防护带内,此视干扰的性质而定。
对于正常读取操作,使用以各自的防护带155、156及157为中心的断开点电平159、160及161。换句话说,将所读取存储单元的阈电平与所述断开点电平相比较,以确定其存储状态。当一状态内存储单元的阈电平跨过一防护带偏移穿过一断开点电平时,即会出现错误。举例而言,当状态1中存储单元的阈电平偏移降低直至其低于断开点电平159时,即会读出那些存储单元是处于状态0。同样地,如果状态1中存储单元的阈电平偏移升高直至其高于断开点电平160时,一正常读取操作即会显示那些存储单元是处于状态2。然后,通过ECC过程识别此等读取数据错误。但当此等错误过多以致于ECC无法校正时,会通过步骤151及153(图9)使用各状态之间的不同断开点电平实施一第二读取操作。断开点电平159、160及161是在其各自防护带内沿一因干扰引起的预期存储阈电平偏移量的方向偏移,因而此时偏移的电平处于其受干扰之前所处的防护带的同一侧上。
在如此重读取所述数据后,在步骤165中藉助使用ECC来确定是否仍存在任何数据错误。如果不存在,则所述处理过程进行至主处理路径中的步骤135,包括确定是否应将数据校正及重写操作延期。而如果在步骤165中发现仍存在资料错误,则在下一步骤167中确定其是否可由ECC校正。如果可由ECC校正,则所述处理过程也跳转至主处理路径中的步骤135。
但如果通过步骤167发现所述数据错误无法校正,则可使用甚至不同的断开点电平来执行又一读取操作。在一步骤169,确定是否存在任何其余的未经尝试的宽松读取条件。如果存在,则在步骤170中递进重试条件,且所述处理过程返回至步骤151及153,以使用此种新条件来读取数据。但如果不存在所提供的更多不同读取条件,则所讨论阵列单元中的数据必须保持带有其不可校正的错误。由此,即确定对所述单元的擦除操作已失败。其一结果可以是将所有有效数据复制至一新的存储器系统中并然后舍弃当前的存储器。另一结果是仅通过一存储于开销数据或其它数据中的旗标将所述单元标记为坏单元,然后进行至步骤143,以继续擦除其它阵列单元。此时,所述单元中的数据丢失。由于曾作为原始编程操作的一部分验证所述数据最初处于其正确的阈电平范围,因而干扰操作随时间累积的此一可能的结果表明频繁地实施擦除足以防止此种不利后果的合意性。
返回至步骤135,如果在所述步骤中确定校正所述数据既无必要也不可取,则所述处理过程跳转至步骤143,以继续对任何其它所识别的单元执行擦除操作。然后,也返回至步骤137及140,如果确定应将所述数据的校正或重写操作延期,则在步骤171中存储所读取数据、其地址、ECC及任何错误位标识及其它先前所确定数据,然后,所述处理过程跳转至步骤143。然后,如下文所述,当轮到完成已延期的措施操作时,读取所述数据。
然后,返回至步骤131,在确定不存在数据错误后,下一操作可以是通过跳转至步骤143而不再对当前单元的数据执行任何处理。但进一步检查及调节甚至自其读取有效数据的存储单元的存储电平也可为合意之举。此包括使用不同于最初读取操作中所用断开点电平来执行再读取操作,以便识别任何其中所存储电荷电平已移至针对各状态所界定的电平之间防护带内的存储单元(参见图10),即使那些电平尚未穿过一断开点电平进而引起一正常读取数据错误。在一步骤172中,确定是否存在任何尚未尝试的此种读取条件。如果存在,则在步骤173中选择新的断开点电平及/或其它擦除读取条件。然后,所述处理过程返回至步骤126,在步骤126中设定那些读取条件并随后在步骤127中使用那些条件执行读取。在所述读取操作中所用的断开点电平被(举例而言)偏移至图10中防护带155、156及157的边缘。如果在步骤131中,藉助使用ECC确定存在数据错误,则错误数据位表示电荷电平已偏移至防护带内。因此最好在首先确定是否应将数据校正及重写操作延期之后校正并重写所述数据,由此使所存储电荷电平自防护带移出至图10所示的其所需状态分布内。
如果在步骤131中使用更具限制性的余量确定所读取数据中不存在错误,则对当前数据单元的处理即告结束。然后,在步骤172中确定是否有尚未对所述数据单元尝试的更多的所界定擦除读取条件。如果有,则可使用更为严格的断开点电平再次读取所述数据。换句话说,可使用可在步骤172中得到的一第一组替代读取条件第二次读取所述数据,其中各断开点电平仅沿其各自的防护带偏移一部分路程,然后,使用在步骤172中所选的一第二组替代读取条件的断开点电平第三次重复所述操作,其中所述第二组替代读取条件的断开点电平更进一步朝防护带边缘移动以进一步精细调节所述电荷存储电平(如果需要)。可根据实际尽量多地提供此类额外的擦除读取条件。
返回步骤135,在步骤135中,可确定不加校正地接受一定程度的数据错误,应注意,此与上文刚刚所述的由步骤172及173分支对未含有错误的存储数据所实施调节的精确性不一致。因此,如果使用所述处理分支,则步骤135很可能不容许不加校正地接受错误数据。
当在步骤143中确定确实已擦除当前所识别的所有待擦除数据单元后,可视需要将所述数据单元中任何已表现出其数据特别易受干扰者映像出所述系统。在步骤185中,确定是否存在任何应移除出所述系统的此种物理性存储器单元,如果有,则在步骤187中将所述单元映像出所述系统。然后,擦除操作即告结束。
然而,如果已将数据校正及/或重写延期,则存储器控制器或主机系统将对此进行注释。在一适当的时刻,当不存在待决的更高优先权存储器操作时,即可完成对已局部擦除单元的擦除操作,所述操作开始于步骤117。然后,在步骤191中,读取在步骤171中为一个单元存储的数据、ECC及其它信息。如果来自所述单元的数据需要校正,则在步骤193中校正。然后,在步骤195中,重写校正数据。如果不再存在其它需要完成的已局部完成的擦除操作,则在步骤197中确定此种情况,然后执行步骤185或者结束所述处理过程。而如果尚存在其它待完成的单元,则所述处理在步骤199中递进至下一单元,然后对来自那些单元的数据重复步骤191,193及195。
如果在步骤123中存储候选存储单元的地址以供延期擦除,则所述处理操作可自动返回以在控制器没有要执行的更高优先权操作时一次一个地继续已延期单元的擦除操作。由于延期步骤121在图9所示处理过程中如此早,因而返回至一届时已延期的单元会使所述处理过程自步骤125重新开始并沿所述路径按上文所述继续。也可在步骤137或140之一中将此一单元的校正及/或重写操作再次延期。
结论尽管上文是参照本发明的例示性实施例来阐述本发明的各种方面,然而应了解,本发明应在随附权利要求书的整个范围内受到保护。
权利要求
1.一种操作一组织成若干子阵列的快闪存储器单元阵列的方法,所述子阵列包含多个由可共同擦除的一最小数量的存储单元组成的区块,且所述区块存储有若干数据单元,所述方法包括识别何时所述区块的一第一区块中所述数据单元的至少一个中所存储的数据已发生一擦除触发事件;自所述第一区块读取所述已识别的至少一个数据单元;校正自所述第一区块读取的所述数据中的任何错误,以提供经校正的第一区块数据;将所述经校正的第一区块数据作为至少一个数据单元写入至所述区块中的一第二区块;及此后,将所述第一区块中未经校正的数据单元复制至所述第二区块内,藉此在所述第二区块中合并原来位于所述第一区块中的经校正的数据单元及未经校正的数据单元。
2.如权利要求1所述的方法,其还包括在将所述经校正的第一区块数据写入至所述第二区块内之前,将所述经校正的第一区块数据临时存储于一第三区块中。
3.如权利要求2所述的方法,其还包括识别何时所述区块中一第四区块所存储的所述数据单元的至少之一已发生一干扰事件;自所述第四区块读取所述所识别的至少一个数据单元;校正自所述第四区块读取的所述数据中的任何错误,以提供经校正的第四区块数据;将所述经校正的第四区块数据临时存储于所述第三区块中,并在此后将所述经校正的第四区块数据作为至少一个数据单元写入至一第五区块;此后,将所述第四区块中未经校正的数据单元复制至所述第五区块内,藉以在所述第五区块中合并原来位于所述第四区块中的经校正的数据单元及未经校正的数据单元。
4.如权利要求1所述的方法,其中所述擦除触发事件包括一干扰所述第一区块中存储的所述数据单元的所述至少一个的事件。
5.如权利要求1所述的方法,其还包括在读取所述数据之后但在校正其任何错误之前,暂停所述操作,直至其它更高优先权操作得到执行。
6.如权利要求1所述的方法,其还包括在校正其任何错误之后但在写入所述经校正的数据之前,暂停所述操作,直至其它更高优先权操作得到执行。
7.一种操作一快闪存储器单元阵列的方法,其包括识别何时存储于所述阵列内至少一个位置中的数据已发生一擦除触发事件;读取存储于所述阵列内所述至少一个位置中的所述数据;临时存储关于所述至少一个位置及自其读取的所述数据的信息;在仍存储所述信息时,将其它数据编程至所述阵列内除所述至少一个位置外的至少若干位置中,或自所述阵列内除所述至少一个位置外的至少若干位置读取其它数据;此后,确定在自所述阵列中所述至少一个位置读取的所述读取数据中是否存在任何错误;利用所述所存储信息,校正自所述阵列中所述至少一个位置读取的所述数据中的任何错误;及将所述经校正的数据写入所述阵列内。
8.如权利要求7所述的方法,其中所述擦除触发事件包括一干扰所述第一区块中存储的所述数据单元中至少一个的事件。
9.一种操作一快闪存储器单元阵列的方法,其包括识别何时存储于所述阵列内至少一个位置中的数据已发生一擦除触发事件;读取存储于所述阵列内所述至少一个位置中的所述数据;此后,确定在自所述阵列中所述至少一个位置读取的所述读取数据中是否存在任何错误;校正自所述阵列中所述至少一个位置读取的所述数据中的任何错误;临时存储所述经校正的数据;在仍存储所述经校正的数据时,将其它数据编程至所述阵列内除所述至少一个位置外的至少若干位置中,或自所述阵列内除所述至少一个位置外的至少若干位置读取其它数据;及此后,将所述经校正的数据写入所述阵列内。
10.如权利要求9所述的方法,其中所述擦除触发事件包括一干扰所述第一区块中存储的所述数据单元的至少一个的事件。
11.一种操作一具有一存储单元阵列的可擦除及可再编程非易失性存储器系统的方法,所述存储单元阵列被组织成若干区块,所述区块由可共同擦除的一最小数量的存储单元构成且包括复数个各自存储有一个或一个以上数据单元的页面,所述方法包括响应于发生复数个预定义事件中的至少一个事件,识别至少一个区块中至少一个页面有待擦除;使用一第一组读取条件读取存储于所述至少一个页面中的数据;确定在所述读取数据中是否存在任何错误,且如果存在,则确定所述错误是否可校正;响应于确定所述读取数据中的所述错误无法校正,使用一第二组读取条件来重读取存储于所述至少一个页面中的所述资料;确定在所述重读取数据中是否存在任何错误,且如果存在,则确定所述错误是否可校正;响应于正在排定的其它存储器活动,进一步延期关于所述读取数据或重读取数据的措施;在完成所述其它存储器活动后且响应于确定所述读取数据或重读取数据中的所述错误可校正,校正此等错误以提供经校正的数据;及将所述经校正的数据写入一不同于所述一个区块的第二区块中的至少一个第二页面内。
12.如权利要求11所述的方法,其还包括将未经改动的资料自不同于所述一个区块的所述至少一个区块内的页面复制至所述第二区块内。
全文摘要
为维护快闪存储器中所存储的易受到存储器内邻近区域中操作干扰的数据的完整性,在数据恶化至无法恢复有效数据之前,由干扰事件促成对数据的读取、校正及重写。当存储器系统具有其它高优先权操作要执行时,通过延期执行某些校正措施操作来平衡维护数据完整性与维护系统性能之间有时相互矛盾的需要。在一利用极大擦除单元的存储器系统中,所述校正过程是以一种按照有效重写数据量远少于一擦除单元容量的方式来执行。
文档编号G06F11/10GK1882918SQ200480033197
公开日2006年12月20日 申请日期2004年9月28日 优先权日2003年10月3日
发明者卡洛斯·J·冈萨雷斯, 凯文·M·康利 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1