用于动态读取的清除技术的制作方法

文档序号:6497368阅读:124来源:国知局
用于动态读取的清除技术的制作方法
【专利摘要】对于使用动态读取的存储器系统,当存储器系统正进行在扫描需要被清除的存储器块时的读取而不是主机读取时,禁用动态读取。当进行主动的主机读取时,如果可校正的错误量超过阈值,则该块被标记用于稍后重新检查,在那时动态读取被禁用。在其他实施例中,刷新还是淘汰存储器块的决定是基于所使用的动态读取值的集合。在使用动态读取值的表的存储器系统中,该表被配置为除了用于不同动态读取情况的读取参数之外还包括如何处置读取错误(淘汰,刷新)。细化地,读取情况编号可以用于对被选择用于刷新或淘汰的块排定优先级。在要使得读取清除更精确的情况下,可以应用多个动态读取情况。此外,可以智能地选择应用哪些情况。
【专利说明】用于动态读取的清除技术
【技术领域】
[0001]本申请大体涉及非易失性闪存系统的操作,更具体地,涉及刷新(refresh)和校正其中、特别是具有大的存储器单元块的存储器系统中存储的数据。
【背景技术】
[0002]存在现今正使用的特别是小型规模卡形式的许多商业上成功的非易失性存储器,它们采用在一个或多个集成电路芯片上形成的快闪EEPR0M(电可擦除可编程只读存储器)的阵列。通常但是不是必须在单独的集成电路芯片上的存储器控制器与该卡可移除地连接到的主机相接口并且控制该卡内的存储器阵列的操作。这样的控制器通常包括微处理器、一些非易失性只读存储器(ROM)、易失性随机存取存储器(RAM)和诸如在数据的编程和读取期间在数据经过控制器时从该数据计算错误校正码(ECC)的电力的一个或多个专用电路。一些商业上可获得的的卡是CompactFlashTM(CF)卡、多媒体卡(MMC)、安全数字(SD)卡、智能媒体卡、人员标签(personnel tag, P-Tag)和记忆棒卡。主机包括个人计算机、笔记本计算机、个人数字助理(PDA)、各种数据通信设备、数字相机、蜂窝电话、便携式音频播放器、车载音响系统以及类似类型的设备。除了存储卡实现方式之外,可替换地,此类型的存储器可以嵌入到各种类型的主机系统中。
[0003]两种常用的存储器单元阵列架构已经发现了商业应用,NOR和NAND。在通常的NOR阵列中,存储器单元连接在相邻位线源和在列方向延伸的漏极扩散之间,控制栅极连接到沿着单元的行延伸的字线。存储器单元包括至少一个位于源极和漏极区域之间的单元的至少一部分上的存储组件。存储组件上的电荷的被编程水平因此控制单元的操作特性,然后可以通过向被寻址的存储器单元施加适当的电压来读取单元。这样的单元、其在存储器系统中的使用以及其制造方法的例子在美国专利申请第5,070, 032,5, 095,344,5, 315,541、5,343,063 和 5,661,053,5, 313,421 和 6,222,762 号中给出。
[0004]NAND阵列利用与在各个位线和参考电势之间的一个或多个选择向晶体管连接的多于两个的、比如16个或32个存储器单元的系列串以形成单元的列。字线跨过大量的这些列内的单元而延伸。在编程期间通过致使串中的其余单元硬导通(turn on hard)而使得流经串的电流依赖于被寻址的单元中存储的电荷水平而读取和验证列内的各个单元。在美国专利第5,570,315,5, 774,397,6, 046,935和6,522,580号中找到作为存储器系统的部分的NAND架构阵列及其操作的例子。
[0005]如在以上参考的专利中讨论的,当前的快闪EEPROM阵列的电荷存储组件最常见是通常由导电掺杂的多晶硅材料形成的导电的浮置栅极。在快闪EEPROM系统中有用的可替换类型的存储器单元利用不导电的介电材料来代替导电浮置栅极以按非易失性的方式存储电荷。由氧化硅、氮化硅和氧化硅(ONO)形成的三层电介质夹在导电控制栅极与存储器单元信道上方的半导电基板的表面之间。通过将电子自单元信道注入至氮化物中而编程该单元,由此电子被俘获并存储在有限的区域中,且通过将热电子注入至氮化物中而擦除单位。第2003/0109093号美国公开专利申请中描述了采用介电存储组件的若干特定单元结构和阵列。
[0006]如在大多数集成电路应用中那样,关于快闪EEPROM存储器单元阵列,也存在缩小实施某一集成电路功能所需的硅基板面积的压力。不断期望增加可存储在硅基板的给定面积中的数字数据量以便增加给定大小存储器卡和其它类型的封装的存储容量,或者既增加容量也减小大小。增加数据的存储密度的一种方式是每存储器单元和/或每存储单位或组件存储多于一位数据。这通过将存储组件电荷电平电压范围的窗划分成多于两个状态来达成。使用四个这样的状态允许每一单元存储两个数据位,使用八个状态允许每存储组件存储三个数据位,等等。第5,043,940和5,172,338号美国专利中描述了使用浮置栅极的多状态快闪EEPROM结构及其操作,且前述第10/280,352号美国申请中描述了使用介电浮置栅极的结构。出于各种原因,多状态存储器单元阵列的所选部分也可以按第5,930,167和6,456,528号美国专利中描述的方式按两种状态(二进制)来操作。
[0007]将典型的快闪EEPROM阵列的存储器单元划分成一起被擦除的离散单元块。也即,块是擦除单位,即可同时擦除的最小数目的单元。每块通常存储一个或多个数据页,该页是最小编程和读取单元,尽管可以在不同的子阵列或平面中并行编程或读取多于一页。每页通常存储一个或多个数据扇区,扇区的大小由主机系统限定。示例的扇区包括512个字节的用户数据——遵循关于磁盘驱动器建立的标准——加上关于用户数据和/或用户数据被存储在的块的开销(overhead)信息的某个数目的字节。这样的存储器通常每块内配置有16个、32个或更多个页,且每页存储一个或仅几个主机扇区的数据。
[0008]为了增加在将用户数据编程至存储器阵列中和从该阵列读取用户数据期间的并行程度,通常将阵列划分成子阵列,其通常称为平面,该子阵列包含其自身的数据寄存器和其它电路以允许并行操作,使得可同时将数据扇区编程至数个或所有平面中的每一个,或者自数个或所有平面中的每一个读取数据扇区。可以将单个集成电路上的阵列物理地划分成平面,或每一平面可以由单独一个或多个集成电路芯片形成。第5,798,968和5,890,192号美国专利中描述了这样的存储器实施方式的实例。
[0009]为进一步高效管理存储器,可以将物理块逻辑链接在一起以形成虚拟块或元块。即,将每一元块定义为包括来自每一平面的一个块。在W002/058074号国际专利申请公开中描述了元块的使用。元块由主机逻辑块地址识别为用于编程和读取数据的目的地。类似地,元块的所有块一起被擦除。与这样的大块和/或元块一起操作的存储器系统中的控制器执行若干功能,包括在自主机接收的逻辑块地址(LBA)与存储器单元阵列内的物理块编号(PBN)之间的转译(translation)。通常通过在块地址内的偏移来识别块内的各个页。地址转译通常涉使用逻辑块编号(LBN)和逻辑页的中间项。
[0010]存储在元块中的数据经常被更新,更新的可能性随元块的数据容量而增加。一个逻辑元块的被更新的扇区通常被写入至另一物理元块。作为同一编程操作的部分,还通常将未改变的扇区自原始物理元块复制到新物理元块以整合(consolidate)该数据。可替换地,未改变的数据可以保留在原始元块中直到稍后与更新的数据整合至单个元块中为止。
[0011]通常用维持在被擦除的块池中的某些额外块来操作大块或元块系统。当正更新少于一块的容量的一个或多个数据页时,通常将更新的页写入至来自该池的擦除块,然后将未改变的页的数据自原始块复制到擦除池块。前述公开的第W002/058074号国际申请中描述了此技术的变化。随时间推移,由于重新写入和更新主机数据文件,许多块可以相对小数目的其包包含效数据的页和包含不再是当前数据的数据的其余页而结束。为了能够高效地使用阵列的数据存储容量,不时地将有效数据的逻辑相关的数据页从多个块当中的片段集聚在一起并一起整合至较少数目的块中。此过程通常称作“垃圾收集”。
[0012]各个快闪EEPROM单元将表示一个或多个数据位的电荷量存储在电荷存储组件或单位中。存储组件的电荷电平控制其存储器单元的阈值电压(通常指代为VT),该阈值电压用作读取单元的存储状态的基础。通常将阈值电压窗划分成若干范围,对于存储器单元的两个或多个存储状态的每个状态一个范围。这些范围由防护带(guardband)分离,防护带包括允许确定各个单元的存储状态的标定感测电平。这些存储电平由于在邻近或其它相关存储器单元、页或块中进行的电荷干扰编程、读取或擦除操作而偏移。例如,将与第二组存储器单元共享一线或电路的一组存储器单元编程可能干扰该第二组的电荷电平。此寄生干扰的最终结果是,如果不对存储系统控制器的部分采取校正动作,则可损坏未在操作的所曝露区域中的数据,且在极端情形中,超出连同该数据一起存储的任何错误校正码(ECC)的校正能力。则这样的数据损坏将对用户造成数据损失,因此使得存储系统不可靠。特定存储器单元阵列中的这种干扰的广度和本质取决于其特定架构、结构和操作。
[0013]因此,在干扰操作致使电荷电平完全偏移出其定义的范围之外则在此情况下读取错误数据之前,不时地将偏移的电荷电平恢复至其状态范围的中心是有益的。在第5,532,962和5,909,449号美国专利中描述了此过程,称为数据刷新或清除(scrub)。作为其进一步的方面,在使用错误校正码(ECC)的存储器系统中,可以通过使用ECC来校正从该存储器读取的某一数目的错误数据位,然后将校正的数据重新写入至该存储器的先前擦除的部分。重新写入数据致使被写入的存储器单元阈值电平中的每个处于其指定状态范围内,因为数据编程通常涉交替地调整存储的电荷并读取-验证所得的存储器单元阈值电平直到其达到表示存储在该单元中的数据的所期望范围为止。

【发明内容】

[0014]呈现了操作非易失性存储器系统的方法。该存储器维持对于默认读取情况和多个不同的移位的读取情况的一组读取参数。对于存储器的一个或多个块的每个物理分区,该存储器还维持物理单位和在读取该物理单位时使用的读取情况之间的对应性。该存储器使用对于页所属于的物理单位的对应读取情况来进行对该页数据的读取操作,确定读取操作是成功了还是产生了失败结果,并响应于读取操作产生了失败结果,选择能够读取该页的移位的读取情况。基于所选的移位的读取情况,该存储器确定是否刷新该页所属于的块。
[0015]取决于具体应用,上述特征可以单独实施或者以各种组合一起实施。本文的清除系统的另外的方面、优点和特征被包括在以下的对其的示例性例子的描述中,该描述应该结合附图来考虑。在此引用的所有专利、专利申请、文章和其他出版物在此为了所有目的以在此对其的全部引用而被合并于此。
【专利附图】

【附图说明】
[0016]图1A和IB分别是一起操作的非易失性存储器和主机系统的框图;
[0017]图2例示图1A的存储器阵列的第一示例组织;
[0018]图3示出具有在图1A的存储器阵列中存储的开销数据的示例主机数据扇区;[0019]图4例示图1A的存储器阵列的第二示例组织;
[0020]图5例示图1A的存储器阵列的第三示例组织;
[0021]图6示出图1A的存储器阵列的第三示例组织的扩展;
[0022]图7是具有一个特定配置的图1A的阵列的一组存储器单元的电路图;
[0023]图8是例示数据清洗操作中的主要步骤的流程图;
[0024]图9是清洗操作的更具体的例子的流程图;
[0025]图10示出编程的一组存储器单元的电压阈值水平的分布;以及
[0026]图11是例示使刷新决定基于动态读取情况的示例实施例的一些方面的流程图。
【具体实施方式】
[0027]存储器架构及其操作
[0028]首先参见图1A,闪存包括存储器单元阵列和控制器。在所示的例子中,两个集成电路器件(芯片)11和13包括存储器单元的阵列15和各种逻辑电路17。逻辑电路17通过数据、命令和状态电路与单独的芯片上的控制器19相接口,并且还将寻址、数据传送和感测和其它支持提供至阵列13。取决于所提供的存储容量,存储器阵列芯片的数目可以从一个到多个。可替换地,可以将控制器和部分或整个阵列组合到单个集成电路芯片上,但此当前这不是经济的替代方案。
[0029]典型的控制器19包括微处理器21 ;只读存储器(ROM) 23,其主要用以存储固件;以及缓冲器存储器(RAM) 25,其主要用于暂时存储被写入至存储器芯片11和13或从存储器芯片11和13读出的用户数据。电路27与存储器阵列芯片相接口,且电路29通过连接31与主机相接口。在此例子中,数据的完整性通过用专用于计算码的电路33来计算ECC而确定。当正将用户数据从主机传送至快闪存储器阵列以供存储时,该电路从该数据计算ECC并将码存储在该存储器中。当稍后从该存储器读取该用户数据时,用户数据再次通过电路33,电路33通过同一算法来计算ECC并比较该码与所计算的且与该数据一起存储的码。如果二者相当,则确认该数据的完整性。如果二者不同,则取决于所利用的具体ECC算法,可识别并校正高达由该算法所支持的数目的那些错误的位。
[0030]图1A的存储器的连接31与主机系统的连接31’配合,图1B中给出该主机系统的例子。数据通过接口电路35在主机与图1A的存储器之间进行传送。典型的主机还包括微处理器37、用于存储固件码的R0M39、以及RAM41。取决于特定主机系统,其它电路和子系统的通常包括大容量磁性数据存储盘驱动器、用于键盘的接口电路、监视器等等。这样的主机的某些例子包括桌面计算机、膝上型计算机、手持计算机、掌上计算机、个人数字助理(PDA)、MP3和其它音频播放器、数字相机、视频摄像机、电子游戏机、无线和有线电话装置、应答机、语音记录器、网络路由器和其它装置。
[0031]图1A的存储器可以实施为以可与图1B的主机以可移除方式连接的形式的包含控制器及所有其存储器阵列电路失败的小封闭式卡。也即,配合连接31和31’允许卡被断开且移动至另一主机,或通过将另一卡连接至该主机而被替换。可替换地,可以将存储器阵列设备封装在可与包含控制器和连接31的卡以电和机械方式连接的单独的卡中。作为进一步的替代方案,可以将图1A的存储器嵌入图1B的主机内,其中永久地制成连接31和31’。在此情况下,存储器通常连同其它组件一起被包含在该主机的外壳内。[0032]此说明书中所使用的某些术语可受益于某些解释。“扇区”指代在主机读取和写入操作期间所存取的可独立寻址的数据单元。一个数据扇区的大小通常为512字节。
[0033]如本文中所使用的“存储器系统”由一个或多个非易失性存储器设备和将数据存储至该存储器和从该存储器取回数据所需的硬件和/或软件组成的系统。可以在完全专用于数据存储的子系统上或在主机系统自身上实施总体存储器系统功能性的变化部分。该存储器系统可以诸如以极小卡的形式嵌入主机系统中或可移除。可移除存储器系统的部分自身可以是可移除的,例如就像从控制器部分移除存储媒体一样。主机系统的特定专用于存储器系统中的数据存储的任意部分也被认为是存储器系统的一部分。除了驻留在主机系统上的任意硬件之外,这样的主机功能性还可以包括专门化软件库、驱动器或应用程序。
[0034]出于在本文中使用的目的,“主机系统”是如下的系统:其通常具有除数据存储之外的功能性,但其也连接至存储器系统或具有嵌入于其中的存储器系统。可以存在其唯一用途是数据存储的主机系统。
[0035]可以在具有各种具体配置的系统中实施用于刷新和清除存储在本文中所描述的闪存中的数据的各种技术,图2至图6中给出了这些系统的例子。图2图示其中存储器单元被分组为块的存储器阵列的一部分,每一块中的单元可作为单个擦除操作的部分一起擦除,通常同时擦除。物理块是最小擦除单位。
[0036]图2的各个存储器单元块的大小可以变化,但是商业上实践的形式在各个块中包括单个数据扇区。图3中图示此数据扇区的内容。用户数据51通常为512个字节。除了用户数据之外的是开销(overhead)数据,该开销数据包括从用户数据计算的ECC53、与扇区数据和/或其中编程了扇区的块相关的参数55和从参数55计算的ECC57以及可能包括的任何其它开销数据。参数55可以包括与块所经历的编程/擦除循环的数目相关的量(“热计数”),此量在每一循环或预设数目的循环之后被更新。该经历量的一个用途是规律地将逻辑块地址重新映射到不同的物理块地址,以便均匀所有块的使用(磨损均衡)。该经历量的另一用途是改变电压和编程、读取和/或擦除的其它参数作为不同扇区所经历的循环的数目的函数。下文描述经历量在识别要被清除的块的处理中的另外的使用。
[0037]参数55也可以包括分配给存储器单元的存储状态中的每个的位值的指示,通常称为其“旋转”。也即,将数据的逻辑状态映射至不同的物理存储状态。这在磨损均衡方面具有有益效果。还可以在参数55中包括指示状况或状态的一个或多个标志。将用于编程和/或擦除块的电压电平的指示也可以存储在参数55内,这些电压在该块所经历的循环的数目和其它因素改变时被更新。开销参数55的其它例子包括该块内的任何有缺陷单元的标识、映射至此物理块中的数据块的逻辑地址和以防主要块有缺陷的任何替代物理块的地址。在任何存储器系统中使用的参数55的特定组合将根据设计而变化。此外,也可以将某些或所有开销数据存储在专用于这样的功能的物理块中,而不是存储在包含用户数据的块或开销数据所涉及的块中。
[0038]图4的多扇区物理块不同于图2的单个数据扇块。示例的块59——其仍为最小擦除单位——包含四个页O至3,其每个是最小编程单位。一个或多个主机数据扇区通常连同至少包括从该扇区的数据计算的ECC的开销数据一起存储在每一页中,且可以按图3的数据扇区的形式。当更新少于所有页的数据时,通常将更新的数据存储在来自擦除块池的擦除块的一页中,并将其余未改变的页中的数据从原始块复制到新块中。然后,擦除该原始块。此大块管理技术的变型包括将更新的数据写入至另一块的一页中,而不从原始块移动数据或擦除数据。这得到具有相同逻辑地址的多个页。通过某些方便的技术来识别最新的数据页,比如记录为扇区或页开销数据中的字段的编程时间。
[0039]图5中图示进一步的多扇区物理块布置。此处,将总存储器单元阵列物理地划分成两个或多个平面,图示了四个平面O至3。每一平面是存储器单元的子阵列,其具有其自身的数据寄存器、感测放大器、寻址解码器等等,以便能够极大地独立于其它平面而操作。所有平面可以被提供在单个集成电路设备上或多个设备上,一个例子是从一个或多个不同的集成电路设备形成每一平面。图5的系统中的每一块包含16个页P0-P15,每页具有一个、两个或更多主机数据扇区和某些开销数据的容量。
[0040]图6中图示另一存储器单元布置。每一物理平面包含大量单元块。为了增加操作的并行程度,将不同平面内的块逻辑地链接以形成元块。一个这样的元块在图6中图示为由平面O的块3、平面I的块1、平面2的块I和平面3的块2形成。每一元块可逻辑寻址,且存储器控制器分配并追踪形成各个元块的块。主机系统优选与数据单位等于各个元块的容量的存储器系统相接口。图6的这样的逻辑数据块61例如通过逻辑块地址(LBA)来识另O,该逻辑块地址由控制器映射为构成元块的块的物理块编号(PBN)。一起擦除元块的所有块,且优选同时编程和读取每一块的页。
[0041]存在许多不同的存储器阵列架构、配置和具体单元结构,可以采用其以实施上文关于图2至图6所述的存储器。图7中示出NAND类型的存储器阵列的一个块以便图示几种干扰机制。串联连接的存储器单元的大量列定向的串连接在电压VSS的共同源65与位线BLO-BLN中的一个之间,位线BLO-BLN又与电路67连接,电路67包含地址解码器、驱动器、读取感测放大器等等。具体地,这样的一串包含串联连接于该等串的相对端处的选择晶体管77和79之间的电荷存储晶体管70、71、72和74。在此例子中,每一串包含16个存储晶体管,但其它数目也是可能的。字线WL0-WL15延伸跨越每一串的一个存储晶体管,且连接至电路81,电路81包含这些字线的地址解码器和电压源驱动器。线83和84上的电压控制将块中的所有串通过其选择晶体管一起连接至电压源65和/或位线BL0-BLN。数据和地址来自存储器控制器。
[0042]块的电荷存储晶体管(存储器单元)的每一行形成一起编程和读取的一页。将适当的电压施加至这样的页的字线(WL)以用于编程或读取其数据,同时选择施加至其余字线的电压以使得其各自的存储晶体管导通。在编程或读取一行(页)存储晶体管的过程中,未选择的行上的先前所存储的电荷电平可能因为电压跨越所有串而施加且施加至其字线而受到干扰。
[0043]清除过程的各个方面
[0044]存在两个主要清除阶段:读取阶段和校正动作阶段。清除读取与其它系统读取的区别在于:清除读取通常涉及选择和读取存储器系统的区域中的数据,其不直接与完成特定主机操作相关也不直接与若干其它系统操作中的任何操作、比如磨损均衡相关。清除读取的另一区别性特征是,系统不从所读取的数据聚集有用信息,而是,数据完整性检查的结果是该操作的目标。对该系统的部分的随后动作由该完整性检查的结果来引导,而不是特定由数据自身来引导。如果数据的完整性检查失败且需要校正动作,则该系统可以随后需要使用来自所读取的数据、比如开销数据的某些信息。不完成特定主机操作且不从存储器获得任何有用数据的这些特征是清除读取与由系统进行的其它数据读取之间的基本差别。
[0045]选择要清除读取的特定区通常由在存储器设备的物理特性的上下文中的系统操作的正常过程中进行的读取、写入和擦除操作的位置和数量而引导。通常,将对由于其它区域中的操作而已经曝露于电压、电流或串援的存储器阵列的区域进行清除读取。可替换地,清除读取位置可以与其它存储器操作解耦合(decouple),且被使得遵循确定性或随机序列。然而,这可能导致系统性能的损失,因为将必须进行更多读取以得到更加受干扰区域的相同覆盖量。
[0046]清除读取的另外的方面是选择何时进行清除读取操作。一般而言,可以响应于任意数目的因素来开始清除操作,比如主机操作的数目;物理读取、写入和/或擦除操作的数目;时间段;主机的使用特性;或者某些随机或伪随机序列,其产生和检查可与上述各项中的任一项相联系。
[0047]清除写入与其它系统写入的区别在于:清除写入通常由于在清除读取期间所读取的数据的失败的完整性检查而执行。清除写入在清除读取的上下文中是仅唯一的。可以执行具有与清除写入类似的机制但不是出于该特定目的而实施的其它写入操作。在一项例子中,写入操作可以从正常存储器系统操作的过程中所执行的读取或写入操作之后的失败的完整性检查而得到。在另一例子中,出于刷新目的,可以在不存在清除读取的情况下读取和重新写入数据,其中写入的决定不是基于数据完整性检查,而是基于某些其它因素。一个这样的因素可以是存在具有高使用或曝露的阵列的区域,在此情况下,可以重新写入或移动该区域内的数据。可以以确定性或随机方式来进行数据的连续移动或刷新。可出于磨损均衡的意图的目的来读取和重新写入数据,但是具有以克服干扰问题的方式刷新数据的意外益处。
[0048]实际上,当数据单位满足进行清除的其它准则时,可以使用该数据单位的相对新度来确定是否开始改数据单位的清除。也即,如果近期已作为磨损均衡、数据整合(垃圾收集)、预清除或其它操作的部分而重新编程数据单位,则可以跳过当前清除,因为近期已刷新了这些数据。例如,可以用与数据单位一起存储的诸如在块的开销数据的部分中的经历计数(“热计数”)或时间戳来维持各个数据单位的相对新度。可替换地,可以根据存储在物理块中的数据的新度而将物理块分组,其中将一块所属于的组存储为该块的开销数据。然后,可以使用否则变为用于清除的候选者的块的相对新度作为选择实际清除的那些块的因素。然后,通过将清除操作限制为已存储了足够长时间以致其所存储的电荷电平可能已被充分干扰而需要注意的那些数据单位来改善系统性能。
[0049]为了监视所存储的数据的相对新度,可以基于逻辑块或物理块已重新编程的近期程度而将逻辑块或物理块有效地分组为若干组。可以将初始相对热计数值给予整个存储器阵列内的所有块或可替换地给予该阵列的平面、区域或其它部分内的块,且每当重新编程块时,该相对热计数可以更新至最新近移动的集合或组的值。一旦某一数目的块处于最新近重新编程的组中,就可以递增该最新近重新编程的组值,且可以将随后重新编程的任何块更新至该新组值。因此,可以形成在最新近重新编程的块与最早重新编程的块之间具有相对明显差别的不同组。一般而言,允许块的相对热计数值翻转(roll over)以准许使用相对小数目的字段。
[0050]当利用相对热计数时,实质上所有块可以在特定例子中存在八个可能值、例如“O”至“7”的值时以基值“O”开始。可以使用该八个值中的七个值,而保留一个值以提供表示最新近编程的块的值与识别包含最早数据的块的值之间的间隙。在此例子中,被写入的块接收新值“ I ”以指示其是最新近被编程的。一旦已将某一数目的块更新至新值“ I ”,随后被编程的块可以接收新值“2”。一旦已将值“2”分配给某一数目的块,就可以最终将值“3”分配给新重新编程的块。在某一时刻,该计数将翻转以使得最早使用的块具有值“2”,最新近编程的块具有值“O”,且值“I”提供二者之间的间隙以使得明确地识别具有最早和最新数据的块的值。最终,将通过主机写入、清除、磨损均衡或其它机制重新写入最早值格(bin)中的所有块。在上述例子中,然后值格“2”将为空,且该值可以充当该间隙,而值格“I”可以用于识别最新近写入的块。当在其它准则的基础上,一块变为用于清除操作的候选者时,如果其相对热计数将其放置于较近期重新编程的块组中的一个中,则可以跳过其清除。
[0051]可替换地,可以维持用于逻辑块或物理块或者这两者的绝对热计数,在此情况下,系统优选可以使用这样的热计数来做出清除决定。也即,当重新编程块时,递增、递减或以其它方式维持其绝对热计数以提供已重新编程该块的总次数的指示。与具有指示少量重新编程操作的绝对热计数的块相比,通常已经更近期地重新编程了具有指示大量重新编程操作的绝对热计数的块。因此,可以跳过对存储在具有相对大量重新编程操作的块中的数据的清除,因为不可能已显著干扰该数据。
[0052]存在可替代地执行的许多具体清除算法和相关的存储器操作。清除可以由存储器系统控制器来控制,或可替换地,在存储器单元集成电路设备(芯片)中的每一个上控制,或者甚至部分地或完全由主机控制。该存储器系统可与主机以可移除方式连接,或可替换地,可以嵌入在主机内。
[0053]可以多个不同方式实施清除操作的读取阶段。可以调谐清除速率以优化性能同时维持规定水平的数据完整性。例如,可以调谐执行清除操作的速率和一次所读取的数据扇区的数目两者。这样的调谐可以作为清除算法的部分而自动发生。例如,可以使清除的速率和位置与存储器的不同区域中的不均匀干扰曝露率相匹配。也可以推迟清除读取以便优化系统性能或满足具体实时需要。
[0054]还存在实施清除读取的方式的各种替代方式。例如,可以用标定参考电平和用有余量的(margined)参考电平两者来读取数据集。余量的量可以以所遇到的具体干扰机制为目标。例如,如果所读取数据不能由ECC来校正,则具有较宽余量的读取可能能够恢复该数据。如果没有任何错误地正常地读取数据,则具有较窄余量的读取可以提供该数据的质
量的信息。
[0055]在清除读取之后,做出是否进入校正动作的决定。这样的决定可以基于的因素之中包括基于已检测到的错误位的数目和/或样式的活动级别。
[0056]校正动作最通常包括在存储器中的相同位置或不同位置中重新写入所读取数据。可以推迟这样的清除写入以便优化系统性能或满足具体实时需要。校正动作可以另外包括在清除写入操作期间数据的旋转;也即,表示具体所存储的数据的存储器单元状态从其原有状态改变。校正动作还可以包括将被认为易受干扰的单元、列或其它结构映射出系统。
[0057]大部分主机协议具有与存储器系统的抽象(abstract)接口以使得该存储器通常由主机通过逻辑块地址编号(LBA)来寻址。存在替代的等效寻址模式,比如ATA主机协议中的磁柱-磁头-扇区,但基本概念在于,主机不知晓存储器系统已存储给定主机数据扇区的物理位置。主机系统可获得线性连续的独立逻辑块地址集,其中存储和取回在该地址集处的数据扇区。这些抽象的主机协议通常需要在存储器系统上存在控制器以便控制存储器操作、执行映射功能性、数据管理、错误恢复等等。利用这些抽象的主机协议操作的存储器系统优选依赖于该存储器系统中的控制器来执行清除操作,因为主机通常不知晓该存储器系统的物理情况。
[0058]另一方面,某些主机协议具有在其中主机自身执行存储器管理功能的接口。符合这些协议的存储器系统通常具有最小控制器功能,如果有该功能的话。可以存在可以由存储器系统而不是主机系统执行的功能性的变化部分,比如但不限于ECC产生、ECC检查或ECC校正。以这些主机存储器所管理的协议来操作的存储器系统将通常依赖于主机来执行清除操作,因为该存储器系统通常具有不足以执行清除操作的逻辑。
[0059]某些存储器系统具有专用控制器,该专用控制器的目的是操作存储器设备和执行存储器管理功能性。其它存储器系统不具有专用存储器控制器,而是依赖于主机基础结构的部分来执行存储器管理操作。作为一个例子,非易失性存储器设备可以直接连接至主机系统中的通用微处理器,其中存储器管理功能性由软件执行。在不具有控制器的这样的存储器系统中,负责存储器管理操作的相同子系统也优选执行清除功能性。
[0060]在不具有控制器的存储器系统中,能够将控制器功能性合并到非易失性存储器设备(集成电路芯片)自身中。在极端例子中,可以将整个控制器合并在存储器设备上。
[0061]存储器系统可以嵌入在主机系统中且在变化的程度上使功能性合并到通用的主机子系统或具有其它功能性的主机子系统中。在这样的嵌入式存储器系统中,通常遵循相同的主机协议,尽管可能未必是该情况。然而,作为一般规则,需要相同的功能性集来操作存储器系统。 [0062]虽然存储器系统通常在抽象的主机协议的情况下执行清除操作,但是主机系统可以通过使用特殊命令或其它预定的接口业务来开始这样的系统中的清除操作是可能的。实施此功能性的一个原因可以是主机系统最知晓在其期间将不访问存储器系统以存储或取回数据的时间段,且主机系统可以在这样的时间段期间利用该机会来开始清除操作。以此方式,可以以对性能的最小影响而增加系统的总体可靠性。用于开始清除操作的机制可特定用于清除的目的,或者其可以是用于将内务操作可用的时间通知给存储器系统的通用机制。在后一情况下,清除操作可以是由存储器系统在这样的时间段期间执行的几个操作之
O
[0063]由于给定存储器操作引起的区域曝露通常是广泛的,使得每当执行操作时便清除整个曝露的区域是不实际的。通常,将选择所曝露的区域的仅一部分用于清除,且必须设置清除速率使得清除操作将在错误位的数量和移位的单元的电平超过存储器系统上可用的任何恢复方案之前检测到最受干扰的区域。
[0064]执行清除操作的速率是影响数据完整性和存储器系统性能两者的重要参数。清除速率越高,在错误位的数量和移位的单元的电平超过存储器系统上可用的任何恢复方案之前在数据块中检测到受干扰的单元的可能性越大。然而,清除速率越高,随着增加的存储器和控制器时间量专用于此操作,存储器系统的性能的降级越严重。为保证数据完整性的期望水平同时尽可能少地牺牲性能,将清除速率优化为所需的最小裸速率(bare),任何防护带都被认为是适当的。可以执行清除操作的速率可以按以下两种方式变化:1)选择执行清除操作的时间,和2)选择一次要清除读取的扇区的数目。
[0065]在产品的寿命期间,维护数据完整性所需的清除速率改变是可能的。例如,随着单元变得更多地循环,干扰率可能增加或减小。如果在生产时设置了固定清除速率,则为了在存储器系统的寿命期间维持存储器系统完整性,将必须使用在存储器系统的寿命期间所需的最高速率。这将导致在较低速率将是足够时的较高清除速率,从而导致在存储器系统寿命中的某些时间比所需的牺牲更高的存储器系统性能的牺牲。存在在存储器系统的寿命期间调谐清除速率的几种方法。
[0066]能够在制造存储器系统时设置可变清除速率。这样做的一种方法是提供速率值表,该速率值表用影响干扰率的任何度量来设置不同的清除速率。一个例子包含针对由存储器阵列的各个部分所经历的不同编程/擦除循环计数的清除速率的表。如果该存储器系统维持循环计数,则将基于该阵列的给定区域的最差情况或平均循环计数从该表选择清除速率参数。
[0067]另一方法允许存储器系统基于先前清除操作的结果来自我调整(self-adjust)清除速率。例如,如果存储器系统维持清除操作的记录并确定极低百分比的清除操作需要校正动作,则存储器系统可以调低其执行清除读取的速率。另一方面,如果确定极高百分比的清除操作需要校正动作,则存储器系统可以调高其执行清除读取的速率。存储器系统可以调整的清除速率的另一度量是在先前清除操作期间在各个存储组件中检测到的移位量或错误位的数量。在上述情况的任意情况中,该系统可以用每一新结果来自适应地调整清除速率参数,或其可以记录该信息用于周期性调整。
[0068]存在可以用于选择何时执行清除操作的几种技术,其某些例子是:1)随机或伪随机,2)基于主机操作的数目,3)基于对存储器设备的操作的数目,4)基于时间间隔。能够使用上文所述的方法中的任何方法来调谐执行清除操作的速率。以下假设在生产时提供清除决定所需的任何参数。可以存在用于读取、写入和擦除操作的不同速率参数,因为这些操作中的每个可以不同速率干扰存储器。
[0069]如果系统可获得或由系统产生随机数(RN)或伪随机数(PRN),则能够使用随机数或伪随机数来确定清除操作的频率。下文描述用于使用RN或PRN序列来决定是否执行清除操作的许多方法。所有以下的方法都假设以某一规律的间隔检查RN,且基于RN值的某种测试来决定是否执行清除。
[0070]使用随机数来确定清除速率的一种方法是利用包含被设置为值I的某个数量的位和设置为零的其余部分的掩码参数来执行RN或PRN的逻辑AND。是否执行清除的决定将基于该AND操作产生零值还是非零值。具有较多I的掩码参数比与具有较多零的掩码值更不频繁地产生零值。下表示出利用不同的八位掩码值的近似清除速率,其中假设零AND结果导致清除操作。注意,关于真随机序列,仅具有值I的位的数目而非该值自身影响速率,因此该表中的值仅是例示性的值。
[0071]
【权利要求】
1.一种操作非易失性存储器系统的方法,包括: 对于默认读取情况和多个不同的移位的读取情况,维持一组读取参数; 对于存储器的一个或多个块的每个物理分区,维持物理单位和在读取该物理单位时使用的读取情况之间的对应性; 使用针对一页属于所述物理单位的对应读取情况,对该页数据执行读取操作; 确定所述读取操作是成功了还是产生了失败结果; 响应于读取操作产生了失败结果,选择能够读取该页的移位的读取情况; 以及 基于所选的移位的读取情况,确定是否刷新该页所属于的块。
2.如权利要求1所述的方法,其中该物理分区是块。
3.如权利要求1所述的方法,其中该物理分区是裸片。
4.如权利要求1所述的方法,其中该物理分区是平面。
5.如权利要求1所述的方法,其中所述读取情况在被选择用于读取操作的对存储器单元使用的偏压电平方面不同。
6.如权利要求1所述的方法,其中所述读取情况在用于读取操作的比较电平方面不同。
7.如权利要求1所述的方法,其中确定读取操作是成功了还是产生了失败结果包括确定该页的数据内容是否被成功提取。
8.如权利要求1所述的方法,其中确定读取操作是否产生了失败结果包括确定该读取得到超过界限的错误量。
9.如权利要求1所述的方法,其中多个读取情况对应于刷新,该方法还包括: 响应于确定刷新该页所属的块,基于所选的移位的读取情况,排定该页所属于的块相对于被安排刷新的其他块的刷新的优先级。
10.如权利要求1所述的方法,还包括: 基于所选的移位的读取情况,确定是否淘汰该页所属于的块。
11.如权利要求10所述的方法,其中多个读取情况对应于淘汰,该方法还包括: 响应于确定淘汰该页所属于的块,基于所选的移位的读取情况,排定该页所属于的块相对于被安排淘汰的其他块的淘汰的优先级。
12.如权利要求1所述的方法,其中选择能够读取该页的移位的读取情况包括以下的一个或多个重复: 将当前读取情况移位到不同的读取情况;以及 确定使用移位的读取情况的读取操作是成功了还是产生了失败结果。
13.如权利要求12所述的方法,其中所述当前读取情况被移位到其一组读取参数与当前读取情况相邻的读取情况。
14.如权利要求1所述的方法,其中选择能够读取该页的移位的读取情况包括从多个移位的读取情况中确定具有最低错误量的移位的读取情况。
15.如权利要求1所述的方法,还包括: 维持要刷新的块的队列;以及 响应于确定刷新该页所属于的块,将该页所属的块添加到所述队列。
16.如权利要求15所述的方法,还包括: 基于属于该队列的块的相应读取情况,排定该队列的优先级。
17.如权利要求16所述的方法,其中该队列具有最大长度,该方法还包括: 响应于将该页所属的块添加到所述队列,使得该队列的长度超过其最大值,从该队列中逐出具有最低优先级的块。
18.如权利要求1所述的方法,其中该存储器系统包括控制器电路和非易失性存储器电路,以及其中该控制器在该控制器上的易失性存储器中维持该物理单位和当读取该物理单位时使用的读取情况之间的对应性的副本。
19.如权利要求18所述的方法,其中该控制器还在非易失性存储器中维持该物理单位和当读取该物理单位时使用的读取情况之间的对应性的副本。
20.如权利要求1所述的方法,其中选择移位的读取情况包括: 选择就在当前读取情况之前使用的读取情况。
21.如权利要求20所述的方法,其中选择移位的读取情况还包括: 确定使用就在该当前读取情况之前使用的读取情况的读取操作是成功了还是产生了失败结果;以及 响应于产生了失败结果,随后基于使用就在该当前读取情况之前使用的读取情况的读取操作的结果与该当前读取情况的结果之间的比较确定进一步移位的读取情况。
【文档编号】G06F11/10GK103946805SQ201280057162
【公开日】2014年7月23日 申请日期:2012年10月24日 优先权日:2011年11月21日
【发明者】C.N.Y.阿维拉, J.黄, D.李 申请人:桑迪士克科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1