用于增强的闪存性能的读取级别分组的制作方法

文档序号:10625511阅读:237来源:国知局
用于增强的闪存性能的读取级别分组的制作方法
【专利摘要】用于增强的闪存性能的读取级别分组。错误计数表基于读取闪存装置的字线而生成,该表存储对于字线和读取该字线的相应读取级别电压的每个组合的错误计数。多个偏移字线组基于错误计数表而生成,每个组使不同读取级别偏移电压与多个字线地址关联。存储装置被配置为使用与待读取存储元件的字线地址关联的所生成的偏移字线组的读取级别偏移电压来读取存储元件。在相应存储块的寿命周期中的预定点之后,重新生成该表,并且基于重新生成的错误计数表而重新生成多个偏移字线组。
【专利说明】用于増强的闪存性能的读取级别分组
[0001] 相关申请的交叉引用
[0002] 本发明要求于2014年11月20日提交的名称为"Calibrating Optimal Read Levels"的美国专利申请第14/549,535号W及于2014年11月20日提交的名称为"Read Level Grouping Algorithms for Increased Flash Performance"的美国专利申请第14/ 549,532号的优先权并作为其部分继续申请案,为了所有目的其公开内容通过引证结合于 此。
【背景技术】
[0003] 本发明设及从闪存装置诸如固态硬盘(SSD)中取得信息。通常使用增加数据容量 的多级元件(MLC)闪存来制造较廉价的固态硬盘(SSD),但MLC闪存有时不如单级元件(SLC) 闪存可靠。消费类SSD制造商通过使用某些磨损平衡算法减轻了运些问题。即使在MLC的增 加数据容量下,在企业应用中使用MLC也会更加昂贵,运归因于随着时间的推移由于需要 (磨损引起的)增大的压力来读取、编程和擦除闪存导致其在编程/擦除(P/E)周期不成比例 降低,从而导致耐久性逐渐退化。

【发明内容】

[0004] 本发明技术设及一种用于取得存储在闪存中的信息的方法。根据多个方面,该方 法包括:读取存储块的字线的第一样本,字线的所述第一样本中的每个字线与字线标识符 关联并且使用不同读取级别电压被多次读取,W产生用于字线与相应读取级别电压的每个 组合的错误计数;基于所产生的错误计数生成错误计数表,对每个产生的错误计数,所述错 误计数表利用对应的字线标识符和所述不同读取级别电压中用于产生该错误计数的相应 一个读取级别电压来标引(index)该错误计数;W及配置存储装置,W使用基于所述错误计 数表的错误计数选择的读取级别电压来执行读取操作。其他方面包括用于执行该计算机实 现方法的对应系统、设备和计算机程序产品。
[0005] 在多个方面,一种数据存储系统包括:多个闪存装置,每个闪存装置均包括多个存 储块;W及控制器,所述控制器禪接至所述多个闪存装置。所述控制器被配置为:读取所述 闪存装置的字线的第一样本,字线的所述第一样本中的每个字线与字线标识符关联且使用 不同读取级别电压被多次读取,W产生用于字线与相应读取级别电压的每个组合的错误计 数;基于所产生的错误计数生成错误计数表,所述错误计数表利用对应字线标识符和不同 读取级别电压中的相应一个来标引每个产生的错误计数;W及基于所述错误计数表的错误 计数选择读取级别电压用于将来的读取操作。
[0006] 在多个方面,一种方法包括:读取闪存装置的字线的第一样本,字线的所述第一样 本中的每个字线均与字线地址关联并且使用不同读取级别电压被多次读取,W产生用于字 线与相应读取级别电压的每个组合的错误计数;基于所产生的错误计数生成错误计数表, 所述错误计数表利用对应的字线地址和不同读取级别电压中的对应一个来标引每个产生 的错误计数;基于所述错误计数表形成多个字线组,每个组使所述不同读取级别电压中的 相应一个与多个字线地址关联;w及配置存储装置,w使用与待读取的存储元件的字线地 址对应的所生成的字线组的读取级别电压来读取所述存储元件。
[0007] 应理解,下文的详细描述将使本公开的其他配置对于本领域技术人员变得明显, 其中,通过示意性的方式示出并描述可本公开的各个构造。如将认识到的,本公开能够包括 其他且不同的配置,并且在不背离本公开的范围的前提下,能够在各个其他方面中修改其 一些细节。因此,附图和详细说明将被认为本质上是示意性而非限制性的
【附图说明】
[0008] 图1是用于多级元件(MLC)闪存中的一组存储元件的四个可能的阔值电压(Vt)分 布和附带的程序读取级别的示例性图表。
[0009] 图2A示出了使用Ξ个读取级别对最低有效位化SB)页进行的示例性概率确定。 [0010]图2B示出了使用Ξ个读取级别对MLC闪存的最高有效位页进行的示例性概率确 定。
[0011] 图3示出了用于存储块的多个字线的示例性最优读取级别电压变化。
[0012] 图4示出了用于多个字线的读取级别偏移值的示例性范围的错误计数的示例性 表。
[0013] 图5A至图5C示出了用于循环存储块的示例性最优读取级别偏移的图表。
[0014] 图6示出了用于生成偏移字线组的示例性算法的方框图。
[0015] 图7示出了用于生成偏移字线组的第一示例性过程的流程图。
[0016] 图8示出了用于生成偏移字线组的第二示例性过程的流程图。
[0017] 图9示出了建模成具有二元输入和K元输出的离散无记忆通道(DMC)的示例性闪存 通道。
[0018] 图10A至图10C示出了用于校准示例性读取级别和/或读取级别偏移的示例性线性 插值图。
[0019] 图10D至图10F示出了用于再校准示例性读取级别和/或读取级别偏移的示例性线 性插值图。
[0020] 图11A和图11B示出了示例性读取级别最优模式。
[0021] 图12示出了对用于读取存储装置中的多个存储元件的读取级别进行校准的示例 性过程的流程图。
[0022] 图13示出了用于校准读取级别W恢复数据的示例性过程的流程图。
[0023] 图14示出了用于基于再生成和再标引的错误计数表而再生成多个最优偏移字线 组的示例性过程的流程图。
[0024] 图15是示出了示例性数据存储系统的部件的方框图。
【具体实施方式】
[0025] 下面的详细描述是作为本公开的各种配置的描述,而非表示本发明可被实践的唯 一配置。所附附图结合于此并构成详细描述的一部分。详细描述包括为了提供本公开深入 理解的目的的具体描述。然而,对于本领域技术人员应理解到可在运些具体描述之外实行 本公开。在一些实例中,W方框图的形式示出了结构和部件,W避免模糊本发明的概念。为 了易于理解,用相同的参考表号表示相同的部件。
[0026] 在例如具有NAND架构的闪存装置中,存储元件(memory cell)按串来分组,其中, 每串均包括串联在漏极选择晶体管(其连接至存储块(memory block)的相应位线)与源极 选择晶体管(其连接至基准电压分布线)之间的一组晶体管。每个存储元件均包括浮栅M0S 晶体管。当对存储元件进行编程时,电子例如借助于福勒-诺得海姆隧道效应和/或热电子 注射而被注入到浮栅中。电子的非易失性归因于电子被保持在浮栅内。通过俘获浮栅(电绝 缘导体)上的电荷来存储比特(bit),该浮栅存储由其阔值电压(使元件导通所需的电压)限 定的逻辑值,该阔值电压与所存储的电荷同量。当擦除存储元件时,通过量子论隧道效应将 元件的浮栅中的电子从浮栅拉出至例如源极和/或基底。
[0027] 随着闪存被循环(即重复地编程和擦除),其物理特性改变。例如,分别在编程和清 除操作期间重复地放置和移除浮栅上的电子导致一些多余电子被该装置俘获。而且,在编 程一个或多个元件时,相邻的元件可受到注射至其浮栅的不理想且不期望的电荷注射,由 此导致存储在其中的数据损坏。例如,电子在由于邻近元件的栅处的电压而导致的持续施 压之后可泄露到邻近元件中。运些存储元件的阔值电压最终可带来与期望值不同(或高或 低)的值,从而导致读取数据时的错误。通常,发生的损坏视场强(例如电压)和持续时间而 定;因此,将闪存编程至高阔值电压状态增大了由于编程和擦除引起的损坏率,运是因为其 需要更长的持续时间和/或更高的被施加场。例如,添加足够的电子可将元件从擦除状态改 变至编程状态。
[0028] 在不同的实现方式中,存储元件可用列(位线)和行(字线)的阵列方式布置在晶片 中。存储元件的地址表示对应于(如标引)该存储元件的位线和字线的交叉。闪存可进一步 由块(block)组成,每个块被分成页(page)。在MLC存储器的一些实现方式中,闪存的元件的 每行由2个页组成:LSB页和MSB页。如果块具有128个页,则其可具有64行元件,每行有两个 页。因为当元件物理地结合在晶元中时,其受到电压和电阻W及制造过程的其他特征的变 化的影响,所W每行均可不同地表现。
[0029] 在NAND架构中,已经发现,退化的问题尤其需要关注,运是因为(例如在位线)读取 的元件的串中的每个晶体管接收增大的电压应力,即使其小于该串的在任一时间二笔读取 所有元件(例如,在位线中的与指定字线对应的位置)。由于运种退化,当编程时,一些行(字 线)的元件比其他元件更远离其预期值(例如,在对应的位线测量的预期电压)。可观察到运 些变化可与个别字线关联。因此,本发明技术把运些变化表征为可测量值,并且提供一种机 制在运行时补偿运种变化。例如,如果发现字线中的元件电压偏移(例如,作为特征化过程 的结果),则在编程或后续操作期间可引入偏压(例如,偏移电压)W校正编程电压或读取 值。在运种方式中,在不同字线的元件之间的实际编程值的非线性可减小,从而减小读取元 件时的错误。
[0030] 然而,相同的偏压可能不适于对整个特定的块或晶元一致地更正读取有关的错 误。此外,对每个字线或块存储偏压值可快速消耗用于存储的存储器,并且因在每个读取操 作中需要大量查找W施加更正偏压而变成难W管理和/或妨碍的性能。因此,本发明技术提 供了一种机制来确定和关联偏压值与字线组,为了读取组内的字线的最小可能读取错误率 而优化偏压值。本发明技术还提供了一种机制,用于在存储元件的整个寿命中优化偏压值。 在运种方式下,偏压值可被有效地存储和取消,并且根据需要被更正,从而提高总体闪存元 件体系结构的可靠性和耐久性,w使闪存适于企业应用。
[0031] 图1是根据本发明技术一方面的用于多级元件(MLC)闪存中的一组存储元件的四 个可能的元件阔值电压(Vt )分布(401,410,420和430)和附带的程序读取级别化0,L1和L2 阔值)的示例性图表。MLC NAND闪存在电荷(读取级别)的多个级别之间进行选择W施加到 其元件的浮栅,从而获得传导性的多个状态,由此为每个元件提供多于一个的位(bit),每 一个W不同的电压阔值Vt发生。如图1示出的,MLC NAND元件能够存储每元件四个状态(电 荷级别)中的一个,产生每元件两个逻辑位(bit)的信息:最高有效位(MSB)和最低有效位 化SB)。运两个位可组成存储块的对应的MSB和LSB页。
[0032] 图1示出了编程为数据级别L0、L1、L2和L3的一组存储元件(如在块中)的概率密度 分布曲线400。分布401、410、420和430分别对应于1^0、1^、1^2和1^3数据级别的概率密度分布 曲线。每个数据级别由相应的阔值电压级别分开。在示出的实例中,阔值电压级别被标识为 L0阔值、L1阔值和L2阔值。阔值电压级别由阔值检测器使用(如在闪存内)作为"读取级别", W例如确定读取信号是否应按照分布401、410、420和430来读取。图1中的四个元件分布 401、410、420和430可从实验数据获得。
[0033] 为了确保分布中的所有元件导通,施加大于该分布的读取级别电压。在本文描述 的各种实例中,第一读取级别化1对应于L0阔值电压,第二读取级别化2对应于L2阔值电压, 而第Ξ读取级别化3对应于L2阔值电压。运样,RL1电压将使L0分布中的元件导通,RL2电压 将使L1分布中的元件导通,化3电压将使L2分布中的元件导通,等等。运里,如图1所示,仅四 个状态可用,RL3电压将不会使L3分布中的任何元件导通。在一些实现中,为运些元件在LSB 中生成二进制数xO。一般情况下,对N个分布有N-1个读取级别。在示出的实例中,存在四个 分布(状态)和Ξ个读取级别。然而应理解,在不背离主题技术的范围的前提下,可存在八 个、十六个或更多个分布。
[0034] 图2A示出了根据本发明技术一方面的使用Ξ个读取级别化1、化巧日化3对LSB页示 例性概率判定。在所示实例中,第一读取级别202("RL2")用于LSB页的第一读取W确定用于 LSB页的存储元件的推定编程。为了确定存储元件实际编程为观察的推定编程级别的概率, 启动多个软读取。
[0035] 在所示的实例中,使用第一读取级别202W下的第二读取级别204和第一读取级别 202 W上的第Ξ读取级别206来读取存储元件。第一编程区域扣包括具有在第一读取级别 202与第二读取级别204之间的编程值的一个或多个元件,并且第二变成区域阮包括具有在 第一度与级别202余第Ξ读取级别206之间的编程值的一个或多个元件。读取级别之间的不 同区域被表示为"容仓(bin)"。在各方面,对每个容仓,可基于该容仓与一个或多个其他容 仓相比有多少存储元件而对该容仓计算置信度。可基于在用于该容仓的分布曲线下的区域 208对该容仓计算置信度。该置信度然后被分配给对应的容仓中的每个存储元件。如将进一 步描述的,置信度可包括对数似然比。
[0036] 图2B示出了使用Ξ个读取级别RLURL2和RL3对MLC闪存的MSB页进行示例性概率 确定。根据本主题技术的方面,初始读取级别202可应用于一个或多个存储元件,W获得用 于每个存储元件的LSB值。在所示实例中,读取级别202被选择为编码比特1的分布与编码比 特0的分布之间的交叉位置,W使预期比特错误率(肥R)最小化。使邸R最小化所选择的读取 级别被称为最优读取级别。
[0037] 基于LSB值,可确定第一读取级别202W读取用于MSB的推定编程级别。一旦确定了 第一读取级别202且读取编程级别,就能启动多个后续读取W确定存储元件实际编程为观 察的推定编程级别的概率。因此,每个元件可与对应于在应用一个或多个后续读取时发现 元件导通或不导通的级别的编程区域(容仓)則,〇1,叫〇3,〇4,〇5和〇6关联。
[0038] 图3示出了根据本主题技术的方面的用于存储块的多个字线的示例性最优读取级 别电压变化。存储块可具有高达(或多于)64个字线。实验结果表明,最优读取级别(例如 RLURL2或化3)因字线不同而不同。在所示的实例中,Ξ个读取级别化1、化2和化3被最优地 设定为其相应值,W按对应于数据级别L0、L1、L2和L3的概率密度分布曲线读取存储元件。 然而,运些最优读取级别的值或电压被示为相对于每个字线变化。例如,用于字线1的最优 读取级别向右偏移,具有稍微增大的值,而字线64向左偏移,具有稍微减小的值。如将进一 步描述的,用于每个读取级别的电压中的运些偏移中的每个可表现为来自相应主读取级别 电压的偏压值或读取级别偏移。
[0039] 图4示出了根据本主题技术的方面的用于多个字线的读取级别偏移值的示例性范 围的错误计数表400。如上文解释的,用于读取存储元件的具体状态的最优读取级别可因字 线不同而不同,其示为每个字线相对于彼此具有独特的特征集。通过将读取级别修改一特 定偏压一一本文称"读取级别偏移"一一可示出字线之间的最优读取级别中的变化。读取级 别偏移可对每个字线和/或每个块和/或每个存储器晶元而不同。运样,可应用多个偏移:每 个字线应用一个偏移、每个块应用一个偏移,和/或每个存储器晶元应用一个偏移。
[0040] 表400的每行代表不同的字线,而每列代表不同的读取级别偏移值。块的每个字线 可在该表中表示。列在示例性表中的错误计数是W对应偏移值读取对应字线时产生错误的 数量。该错误计数可由字线和读取级别偏移值来标引(index)。读取级别偏移值表示成从主 读取级别电压的"跳变(tick)"。在一些实现中,每两个跳变可等于25mV。此外,对于每个读 取级别电压可存在不同的表。例如,所示的表可用于RL1,而不同的表提供WRL2读取相同字 线的错误计数,并且不同的表提供WRL3读取相同字线的错误计数。
[0041] 可基于实验数据初始地生成表。在至少一个实例中,可依据读取存储块的字线而 生成错误计数表,利用选择的读取级别电压来多次读取每个字线,对每次读取,利用不同的 偏移电压修改选择的读取级别电压。因此,对于每个偏移电压产生一个错误计数,并且产生 该表W利用字线和相应的偏移电压来标引该错误计数。
[0042] 图5A至图5C示出了根据本主题技术的各方面的用于循环的存储块的示例性最优 读取级别偏移的图表。如上文解释的,随着存储元件被循环,他们其可经受某些退化。因此, 分布L1、L2和/或L3可从预期值漂移或移动,并且需要新的最优读取级别,使得用具有最小 错误的新值来读取元件。在所示的实例中,对主读取级别化1、RL巧日RL3为存储块的128字线 (0-127)绘制了最优读取级别偏移值。图5A表示使用RL1对MSB页进行的示例性读取,并且示 出了在设置于用于较高的字线号的14个跳变之前,读取级别偏移值如何在18个跳变与12个 跳变之间变化。图5B表示使用化2对LSB页进行示例性读取。图5B示出了与较高的字线号处 (例如在块的结束处)相比在较低的字线号处(例如,在块的开始出)怎样需要较大偏移(即, 18个跳变)。应用于化2的读取级别偏移可见总体上数值下降,从对字线0的18个跳变至对字 线120的10个跳变,然后最终至字线127的4个跳变。图5C遵循类似的模式。
[0043] 图6示出了根据本主题技术的各方面的用于生成偏移字线组的示例性算法的方框 图。算法602可实现成计算机软件(例如,在计算设备上执行的指令)、电子硬件或运两者的 组合。使用Ξ个(或更多个)不同的读取级别将需要提供用于读取存储元件的最优读取级别 的偏移值存储在例如128个字线中的每一个中将会提供大量存储器空间。因此,本主题技术 实现了一种读取级别成形算法602,该算法降低了需要存储的偏移值(或读取级别)的量,同 时在存储器读取操作中提供接近最优比特错误率降低。读取级别分析算法602减少了所存 储的读取级别偏移的量,而不使由对应的由可增加硬或软编码故障的对应读取操作产生的 比特错误率降级。
[0044] 示例性读取级别分组算法602的输入是例如块的字线的初始划分形式的初始边界 条件和先前描述的错误计数表400。由边界条件定义的字线的每个划分形成候选(输入)字 线组的集合,每个候选字线组由相继的字线地址构成。例如,初始边界条件可指定四个候选 组,组1是字线0至31,组2是字线32至63,组3是字线64至95,并且组4是字线96-127。运些候 选组建立初始边界条件,算法600使用运些初始边界条件来分析错误率并最后生成最优边 界条件W用于形成在存储装置的操作期间在读取操作中使用的最优(输出)偏移字线组。
[0045] 示例性算法602接收表400和初始边界条件,并且输出最优偏移字线组。通过算法 602输出的每个最优偏移字线组包括作为初始条件的一部分输入的全部字线(如128个字 线)的相继部分。由算法602输出的最优偏移字线组的边界可与初始边界条件相同也可不 同,并且在许多情况下是不同的。每个最优偏移字线组包括与该组的对应最优偏移电压配 对的相继分组的字线。运些组可相对于其字线相继排序。
[0046] 每个最优偏移字线组与每个相应最优偏移电压的每个配对,都针对读取每个偏移 字线组的字线时的总体最低可能错误计数并且运些组作为整体,由该算法自动地选择。总 体上,由算法400产生的最优偏移字线组集至少部分地基于迭代标引表400,其基于字线位 置和用于每个初始字线组集的偏移值,W确定用于每个输出组的最佳配合的或标准化的错 误计数。因此,读取级别分组算法602如基于输入表(400)输出最优偏移字线组(如,用于每 个组的边界)和最优读取级别偏移(或读取级别为每个组提供最少比特错误率退化。
[0047] 图7示出了根据本主题技术的各方面的用于生成偏移字线组的第一示例性过程 700的流程图。为了解释的目的,运里参考本文描述的部件和/或过程来描述示例性过程700 的各个方框。例如通过一个或多个处理器(包括例如图15中的控制器1501或控制器1501的 一个或多个部件或处理器)来执行过程700的一个或多个方框。在一些实现方式中,可与其 他方框分开地执行一个或多个方框,并且可通过一个或多个不同的处理器或控制器执行一 个或多个方框。另外为了解释的目的,示例性过程700的方框被描述为串行地或线性地发 生。然而,示例性过程700的方框可并行地发生。此外,示例性过程700的方框不一定需要W 所示出的顺序执行,和/或不一定需要执行示例性过程700的一个或多个方框。
[0048] 根据各个实现方式,通过读取级别分组算法602实现过程700的方框。运样,对于在 存储器装置中使用的每个可能的读取级别可执行过程700的方框或其子集。例如,可基于表 400和输入的边界条件执行过程700的方框W生成用于化1、化2和化3的最优偏移字线组。在 不同的方面,对于每个不同的读取级别可生成不同尺寸的和/或具有不同偏移值配对的偏 移字线组。此外,可执行过程700的方框W生成用于不同块和/或晶元的不同的组。在操作之 前或在操作期间,可在配置存储装置期间实现过程700。
[0049] 总体上,对于每个初始边界条件而言,过程700执行多个迭代步骤W对于每个组自 动地选择最优组边界和对应的最优读取级别偏移,与最优比特错误率相比,其提供总体比 特错误率的最少增加,如由对应的输入表400确定。对于由边界条件限定的多个候选组而 言,算法600可选择两个相继的组k和k+1,并且从该第一组的第一元素开始直到第二组的最 后元素,考虑所有可能的两个相继划分。
[0050] 在所示的实例中,块的字线被分成候选组(702)。在使用128个字线的实例中,该块 被分成四个候选组,其中,组1为字线0至15,组2为字线16至31,组3为字线32至63,组4为字 线64至79,等等。如前文描述的,组的划分可表示为组的边界。过程600然后选择相继的候选 组集(704)。例如,可选择组1和组2,从而形成0至31之间的字线集。考虑该集的多个相继子 组的排列(706)。在运里的各实例中,考虑两个子组的排列(permutation),但可考虑更多个 的子组。在给出的实例中,由于子组是相继的且组内的字线是相继的,所W对于η个字线的 最大排列数为η-1个排列。示例性的范围0至31的字线集的排列可包括{[0,1-31],[0-1,2- 31],[0-3,4-31],..[0-30,31]}〇
[0051] 示例性过程700被描述为最小平均算法。即,对于每个可能的排列而言,基于对应 的错误表计算平均错误计数,然后比较排列内的子组W选择具有最少错误计数的那些子 组。运样,基于错误计数表400使用所有可用的读取级别偏移来计算每个子组的错误计数, 并且确定向每个排列提供最少错误计数的读取级别。在所示的实例中,过程700始于(或选 择)第一排列(708),然后对于排列(710)内的每个子组对表示在输入表400中的每个偏移值 查找该子组对应的总体错误计数(712)。例如利用呈现在表400中的第一偏移值和第一 (i = 1)子组内的每个字线索引表400W确定该子组内的每个字线的错误计数,然后将所确定的 错误计数求和,由此可查找总体错误计数。W相同的方式确定由表400呈现的对于其他偏移 值的总体错误计数,并且比较错误计数的求和结果W识别对该子组具有最少错误计数的偏 移值。然后选择所识别的偏移值,并且其与该子组相关联(714)。相同的过程应用于该排列 的下个子组。
[0052] 重复前述过程(716),在方框708重新开始,直到偏移值与每个排列的每个子组关 联,每个子组也与对应于相关偏移值的总体错误计数关联。下面的表1提供了对于两个子组 的Ξ个排列的示例性偏移关联。
[0化3]
[0054] 表1用于所选排列的示例性偏移关联
[0055] -旦偏移值与每个排列的每个子组关联,过程700选择具有最少总体错误计数的 排列(718)。取决于所使用算法的实现方式,最少总体错误计数可为排列内的两个子组或者 第一子组或第二子组的总体错误计数。在各个实例中,在所有字线(两个子组)上求和的总 体错误计数用于对排列进行比较。通过将第一子组及其所选排列的对应偏移选择为最优对 而使过程700继续(720)。
[0056] 通过选择第Ξ候选组而使过程700继续,并且使用第二子组和第Ξ候选组来重复 前述步骤。在所示的实例中,过程700确定是否存在更多候选输入组(722)。如果存在下一个 候选组(例如,上述实例中的字线32至47),然后选择在方框718识别的排列的第二子组,并 连同下一个候选组被重构到该算法(724)。在上述实例中,如果第一子组包括基于第一和第 二候选组(具有0至31的字线边界)生成的0至22的字线边界,则在下一候选组集中使用具有 字线23至31的第二子组连同输入到算法中的下一后续候选组。因此,在上述实例中,下一候 选组集将包括具有字线23至31的候选组和具有字线32至47的候选组。如果不存在下一候选 组,则该方法可将在方框718中识别的排列的第二子组及其对应偏移选择为最终最优对 (726)。
[0057] 可重复过程700,直到输出的组边界从一个迭代至下一迭代不再改变,或者直到达 到某一数量的迭代。可使用相同的初始边界条件、在方框726结束时产生的输出边界条件或 新的/不同的边界条件进行每个迭代。还可将随机化引入到过程700内。例如,可生成包括不 具有任何特定顺序的子组的排列。第一子组可包括字线13至31,而第二子组可包括字线0至 12。
[0058] 虽然示例性过程被描述为最小平均算法,但可执行其他类型的算法。例如,可执行 最小-最大算法。在运种方式中,对于排列内的每个子组(710),方框712可被修改成对于每 个偏移值查找子组中的所有字线的最大错误计数(712)。可例如通过索引表400的第一偏移 值并将由该第一偏移值标引的错误计数与子组中的每个字线(例如,排列{[0-3],[4-31]} 的第一子组的字线〇、1、2和3)进行比较来查找最大错误计数。然后将对于每个偏移值查找 的最大错误计数进行比较,然后选择与所有最大错误计数的最小值对应的偏移值并使其与 子组关联(714)。相同的过程可应用于排列的下一子组。执行最小-最大算法的过程700的一 个益处包括将错误保持在通过存储装置使用的错误更正编码的最大能力W下,W更正错 误。
[0059] 在某些方面,本主题技术可包括执行与上文相对于示例性过程700所讨论的方框 和步骤不同的方框和步骤。通过利用初始边界条件和表400,过程700输出用于最优偏移字 线组的边界,其包括用于每个组的最优读取级别,其从表400的最优值中提供例如用于每个 组中的每个字线的最小比特错误率退化。
[0060] 图8示出了根据本主题技术的各方面的用于生成偏移字线组的第二示例性过程 800的流程图。为了解释的目的,运里参考本文中描述的部件和/或过程来描述示例性过程 800的各个方框。可例如通过一个或多个处理器(包括例如图15的闪存控制器1501或者控制 器1501的一个或多个部件或处理器)来实现过程800的一个或多个方框。在一些实现方式 中,可与其他方框分离地W及通过一个或多个不同的处理器或控制器来实现一个或多个方 框。另外为了解释的目的,示例性过程800的方框被描述为串行或线性地发生。然而,示例性 过程800的多个方框可并行地发生。此外,不一定需要W所示的顺序实施示例性过程800的 方框,和/或不一定实施示例性过程800的一个或多个方框。
[0061] 根据多个实现方式,过程800的方框对应于或补充过程700的一个或多个方框。运 样,可通过算法600执行过程800的方框的一部分。对于存储器装置中使用的每个可能的读 取级别可执行过程800的方框及其子集。例如,可基于表400和输入的边界条件执行过程800 的方框W生成用于化1、化2和化3的最优偏移字线组。在各个方面,对于每个不同的读取级 别可生成不同尺寸的和/或具有不同偏移值配对的偏移字线组。此外,可执行过程800的方 框w生成用于不同块和/或晶元的不同组。在操作之前或期间,可在配置存储装置的过程中 实现过程800。
[0062] 在所示的实例中,根据本发明技术的系统提供足W读取大多数被编程为预定编程 级别的存储元件的读取级别电压(802)。在一些实现方式中,每个存储元件为多级非易失存 储元件,其被配置成编程为四个编程级别之一。例如,第一和第四编程级别可与第一比特值 关联(如最高有效位的二进制数0或1的表示),并且第二和第Ξ编程级别可与第二比特值关 联(如最低有效位的二进制数0或1的表示)。如前文描述的,当W元件的编程级别对应的特 定读取级别(如化1、化2、化3)将电压施加于存储元件时,该元件将导通W指示编程级别。
[0063] 系统将多个存储器字线分成多个最优字线组,每个字线组与多个标准化读取级别 偏移中的一个关联(804)。最优字线组中的每个由存储块的相继排序的字线构成,其中,第 一个组的字线在第二个组的字线之前。运样,对由使用读取级别电压的每个偏移造成的最 佳错误率,规范化该偏移,W读取对应字线组的字线。在一些实现方式中,将多个字线化分 成最优字线组包括基于与相应排列关联的总体错误计数的最小值从预定的字线候选组集 内选择相继字线子组的相应排列(例如图7中的方框702至706)。在运种方式中,相继字线子 组中的每一个与对应于与多个可能的读取级别偏移关联的错误计数的最小值的读取级别 偏移关联。
[0064] 作为例子参考图7,可从预定的一组候选字线组(704)中选择第一和第二相继字线 组(704)。如前文描述的,候选字线组可基于初始边界条件。然后对所选的第一和第二相继 字线组提供多个子组排列(706),其中,每个子组排列包括覆盖第一和第二相继字线组的字 线的多个相继字线子组。对于相应子组排列的每个字线子组而言,可从可能的读取级别偏 移中选择相应的读取级别偏移,使得当使用该读取级别电压来读取字线子组中的字线时, 相应的读取级别偏移产生对于该字线子组的最少量的错误(714)。然后可选择对于子组排 列中的相继字线子组具有最少总体错误计数的多个子组排列(718)。因此,多个字线组可至 少部分地基于与多个子组排列的所选一个对应的一个或多个读取级别偏移。
[0065] 在一些实现方式中,将多个字线分成多个字线组包括基于与相应排列关联的最大 错误计数从预定的字线候选组集中选择相应的相继字线子组的排列,其中,相继字线子组 与对应于与多个可能的读取级别偏移关联的最大错误计数的最小值的读取级别偏移关联。 如一实例,对每个字线子组,系统可确定当每个可能的读取级别偏移与读取级别电压一起 使用W读取字线子组的字线时对于字线子组中的字线生成的最大错误数量。然后可从多个 可能的读取级别偏移中选择与所确定的最大数量的最小值对应的读取级别偏移。对于每个 子组排列而言,确定与子组排列的字线子组对应的所选的读取级别偏移的最大错误计数。 然后选择具有对于子组排列确定的最大错误计数的最小值的子组排列(例如见718)。
[0066] 在上述实现方式的一个或多个中,可基于预定的候选字线组集内的相继字线的交 错而生成相应排列的每个相继字线子组。交错可用于引入随机化。例如,子组排列中的第一 字线子组可包括字线14至31,然后是包括字线0至13的第二子组。在包括Ξ个子组的子组排 列中,排列的第一字线子组可包括字线4至6,排列的第二字线子组可包括字线0至3,并且排 列的第Ξ字线子组可包括字线7至32。
[0067] 此外,可基于标引错误率的表(例如使用上述实现方式的任一种)来生成每个相应 的规范化读取级别偏移,其中,基于相应读取级别偏移和相应字线标引表中的每个错误率。 在运种方式中,表可由多个相继字线标引,w识别对于每个相继字线具有最低错误率的对 应读取级别偏移,并确定在与单个识别偏移关联时对于相继字线组具有最小可能错误率的 一组相继字线。
[0068] -旦生成字线组,多个规范化的读取级别偏移与其相应的最优字线组关联,且被 存储W在存储装置的操作期间读取存储元件中使用(806)。运样,前述过程自动地选择最优 组边界W及对于每个组的对应的最优读取级别偏移,提供最优比特错误率相比的总体比特 错误率的最少增加。
[0069] 示例性过程700和800的多个上述特征W及相关特征和应用可被实现为软件过程, 该软件过程被规定为计算机可读存储介质(还被称为计算机可读介质)上记录的指令集。当 由一个或多个处理单元(例如一个或多个处理器、处理器的核屯、,或其他处理单元)执行运 些指令时,其引起处理单元执行指令指定的动作。计算机可读介质的实例包括但不限于, CD-ROM、闪存盘、RAM忍片、硬盘驱动器、EPROM等。计算机可读介质可不包括无线地行进或在 有线连接之上的载波和电子信号。
[0070] 在低密度奇偶检查化DPC)应用中,LLR可包括介于"0"或"Γ的比特概率之间的比 值的对数。LLR可覆盖预定范围。例如,在一些实现方式中,LLR可覆盖-225至+225的范围。正 的化R总体上可表示从存储元件读取的信号可能是0比特,并且负的化R总体上可表示从存 储元件读取的信号可能是1比特。LLR可与从存储元件读取的比特值关联。与具有等于1的指 定化R的比特相比,与等于5的化R关联的比特可更近似于二进制数0。具有等于0的指定化R 的比特可近似等于二进制数1或0。
[0071] 在某一读取级别处,如果从存储元件中读出0比特,则可指派正的化R。如果读出1 比特,则可指派负的值。在具有两比特的多级存储元件中,存在多个潜在的元件分布级别 (例如,L0、L1、L2和L3)。在MSB的读取中在二进制数1与二进制数0之间的区分需要确定交叉 的多个读取级别边界。在图1的实例中,0与1之间的区分需要确定元件是否在中间两个分布 L1和L2内(例如对于二进制的Ox)或在端部分布L0和L3(例如对于二进制的lx)导通。因此, 做运种判定时可设及多个读取级别(例如化0和化2)。
[0072] 图9示出了根据本主题技术的建模为具有二元输入和K元输出的离散无记忆通道 (DMC)的示例性闪存通道900。在运个实例中,K元输出对应于可用多个读取识别的K元件编 程区域(容仓)。通道900的模型提供了对于对数似然比化LR)的定义。使用运种模型,LLR可 被定义为:
[0073]
[0074] 在一些实施方式中可假定,所有的输入是等概率的;运样,方程式(1)的表达变成:
[0075]
[0076] 参考图2A,如果对于LSB页读取Κ = 2,贝化区域被指定为rie{a〇,ai},其中,由下列 方程式给出图2A的区域日1的化R:
[0077]
[0078] 参考图2B,在对于MSB页读取的Κ = 7的情况下,该区域可被指定为:
[0079] (4)ηΕ {日〇,日1,日2,日3,日4,口已}
[0080] 在Ν次读取中的每次之前可设定读取级别。查找表可用于确定有多少读取级别和 用于读取级别的值基于多少容仓用于确定存储元件的化R值。闪存装置被构造为使用所存 储的读取级别来读取LSB或MSB。如前文描述的,为了产生容仓(bin),第一读取级别用于确 定元件的推定值,然后进行多次读取W确定关联的LLR值。在一些方面,通过利用相应的容 仓关联的预定(例如存储的)偏移改变第一读取级别,由此来确定读取级别。运个偏移可与 由本主题技术确定的偏移不同。
[0081] 分析读取数据的转换来确定哪个区域包含每个存储元件的电压阔值(Vt)。因此, 可(例如,临时地)存储第一读取级别,基于从存储元件读取(例如正的或负的)二进制值确 定的域,并且通过存储器控制器启动第一读取级别与后续读取级别之间的差值。读取级别 可按预定的次序改变或不改变。如果W预定的次序改变读取级别,则仅可存储前一读取级 另IJ,并且基于每个后续读取确定元件编程区域。如果(如一次)执行所有读取,则可使用查找 表基于所接收的二进制值来确定容仓(bin)。一旦确定,就可确定对于每个元件编程区域的 容仓号。指派给该容仓的化R可应用于落在该容仓内的全部元件。对每个存储元件,在查找 表中容仓号映射到LLR值。
[0082] 根据前述,对于主读取级别(如化1、化2或化3),容仓的数量等于读取数量加一。因 此,对化R值生成的表可具有对应于8个容仓的8列。在运个实例中,MSB页具有两行,如表2中 所示:
[0083]
[0084] 表 2
[0085] 主读取级别关于表2的位置在容仓3与容仓4之间。对LSB页生成的表可仅需要一 行,如表3所示 Γ00861
[0087] 表 3
[0088] 如前文描述的,可与主读取级别关联地实现偏移(偏压值),W获得具有低比特错 误率的最优读取级别。可例如在晶元或块或者在独立字线的基础上,全局地设置偏移值。每 个字线可具有不同的和/或独特的特征,其使每个字线在读取操作期间表现出或多或少的 错误。因此,为了获得最佳错误率(最小错误率),必须确定最优读取级别。在一些方面,可通 过实验数据确定字线的最优读取级别。在本文描述的多个实例中,可按不同的偏移来读取 字线,并且对每个读取的错误计数放在表中W用于后续比较。虽然实验数据可用于存储器 的生命周期的一部分,但存储元件的特征随时间而变,并且在存储元件的寿命周期的一段 时间之后,数据不能用于获得最佳错误率。
[0089] 例如,对每个读取级别(如化1、化2或化3) W及对存储器的预期寿命中的多个不同 的时期,可在存储器中可存储不同的表400,使得装置可在该装置的整个预期寿命中获得接 近最优的比特错误率。然而,实验数据可用于每个晶元、每个块或者甚至在装置的寿命中有 个别字线或存储元件经受的任何形式的退化。因此,本主题技术提供了一种机制,在存储器 装置的操作期间通过估算新的读取最优读取级别和/或偏移(例如在运行时)动态地校准读 取级别。
[0090] 图10A至图10C示出了根据本主题技术的多个方面的用于校准示例性读取级别和/ 或读取级别偏移的示例性线性插值图。该图表达了本主题技术的算法如何确定用于读取操 作的新的校准偏移。参考上述表2和表3,每个图均绘制了相对于与每个容仓关联的预定偏 移值所计算的化R值。因此,X轴表示正负偏移值从未校准的零偏移902开始的范围。在所示 的实例中,未校准偏移1102(标记为"0")在其利用生成容仓的"补充"读取级别被重新读取 之前,对应于相应的"中央"读取级别(例如RL1、RL2或RL3),该中央读取级别用于初始地确 定存储元件的编程级别。
[0091] 根据一固定量,每个容仓覆盖X轴上的6个跳变。在所示的实例中,偏移被均匀地间 隔开6个跳变。在X轴上,偏移0至+6对应于容仓4,偏移巧至+12对应于容仓5,偏移+13至+18 对应于容仓6,并且偏移+19至+24对应于容仓7。类似地,X轴上的偏移0至-6对应于容仓3,偏 移-7至-12对应于容仓2,偏移-13至-18对应于容仓1,并且容仓-19至-24对应于容仓0。分别 W偏移值-21、-15、-9、-3、+3、+9、+15和+21绘制位于容仓中的对应化3值。运些偏移值仅提 供为实例并且根据具体存储器实现方式可使用其他偏移值。
[0092] 一旦读取字线或区段的存储元件并确定化R,本主题技术就对表中的化1、化2和 RL3中的每个把化R指派给容仓,如上文的表2和表3中所示。LLR值在对应容仓(例如0-7)上 的线性插值然后用于确定所呈现的化R值的过零点。运样,对表的行中的化R值进行扫描,W 确定过零点的位置。关于图10A和上述表1,化1的过零点介于容仓5与容仓6之间,容仓5和容 仓6的化R值分别为-38和5。沿着X轴与过零点(1004)对应的偏移值(1006)被选择为用于对 应读取级别(例如化1、RL2或化3)的校准偏移值。在图10A中,所校准的偏移值被确定为近似 + 14个跳变(例如,+ 175mV,其中每个跳变为25mV)。在图10B中,所校准的偏移值被确定为近 似+12个跳变。在图10C中,所校准的偏移值被确定为近似+10个跳变。
[0093] 如上文指出的,可对每个读取级别(例如化1、化2或化3)确定校准的偏移值。在一 些实现中,校准的偏移值可替代或用于调节用于每个个别字线或者总体上用于块或晶元的 已有偏移值。在一些实现方式中,校准的偏移电压替代先前与由例如过程700和/或800确定 的偏移字线组关联的读取级别偏移。在一些方面,将通过校准电压来调节先前关联的读取 级别偏移。
[0094] 在运种情况下,无需基于用于块、晶元或组的全部存储元件的化R值确定校准偏移 电压,而是根据到达一个或多个所选字线、字线的部分、一个或多个码字等,基于指派给容 仓的化R值来确定校准偏移电压。在一些实现方式中,除了对字线组确定的偏移之外,还可 存储校准的偏移值,并且在读取操作时与指派给字线组的偏移和任何可用的全局偏移求 和。
[0095] 可在闪存装置的预期寿命中的特殊点处使用上述过程来校准读取级别。例如,在 块经受预定数量的编程/擦除循环时执行校准过程。例如响应于与满足预定阔值数量错误 的读取操作关联地产生的错误计数,在"困难模式"中执行校准过程。预定的阔值在一段时 间上对于单个读取操作或对于多个读取操作可相对于一个或多个码字、字线、块或其组合。 在一些实现方式中,预定阔值的错误可包括对一个或多存储元件(其为读取操作的主题)进 行读取或解码的故障。例如,所产生的错误的数量可多于与可处理的闪存装置关联的ECC方 案。
[0096] 响应于识别与过高错误计数(满足阔值)关联的字线,实现本发明技术的闪存控制 器或其部件可读取邻近于所识别字线的一个或多个字线中的存储元件,W生成相应容仓的 LLR值,并且使用前述化R线性插值过程来确定新的校准偏移值W用于读取字线。如果能读 取并成功地解码相邻字线,则可使用新校准偏移值来恢复所识别字线中的存储元件的读 取。然后可使用为校准偏移值的设定的(例如由校准偏移值调节的)读取级别来重新读取所 识别的字线。
[0097] 类似地,经受读取操作的码字(如范围覆盖字线或者字线的一部分)可被识别为具 有满足错误阔值的错误率。例如,对该码字解码的所有尝试都可失败。响应于识别码字,实 现本主题技术的闪存控制器或其部件可读取邻近于所识别码字的一个或多个码字中的存 储元件,W生成化R值,并且使用前述化R线性插值过程来确定新的校准偏移值。如果可读取 并成功解码相邻的码字,则可尝试使用新的校准偏移值来恢复失败的码字。然后可使用设 定为校准偏移值的(例如由校准偏移值调节的)读取级别重新读取所识别的码字。
[0098] _
[0099] 表 4
[0100] 上述表4表达了在校准与表2和表3的化R值对应的各个读取级别偏移之后的用于 每个容仓的更新的化R值。如由表4可见,对于全部Ξ个读取级别,过零点(1004)现在位于容 仓3与容仓4之间。图10D至图10F示出了根据本主题技术的多个方面的用于再校准示例性读 取级别和/或读取级别偏移的示例性线性插值图。在根据上述相对于图10A至图10C描述的 过程调节读取级别之后,然后可使用相同的过程来重新校准所调节的读取级别W验证或微 调该校准。产生的LLR值预期最终收敛于零偏移,如由表4和图10D至1 OF的图表所示。
[0101] 图11A和图11B描述了根据本主题技术的各个方面的示例性读取级别最优模式。闪 存体系结构可被配置成使得数据集包括存储器的多个通道1102,每个通道1102例如包括一 个或多个存储块1104。可由每个通道1102寻址的每个块1104还可由页1106寻址。在所示的 实例中,每个通道寻址单个存储块,每个块具有256个页(例如页0-255)。如前文描述的,页 1106可由字线物理地表示,并因此,术语"页"和"字线"可交换地使用。
[0102] 在一些实现方式中,如由图11A描述的,偏移电压可与能由存储器通道寻址的全部 块和全部页总体地关联1108。在运种实现方式中,相同的偏移值是在读取与多个存储器通 道关联的任何页或块的存储元件时使用的"总体"偏移。因此,可使用本文描述的任一计数 来校准总体偏移。在一些实现方式中,如由图11B所示,可例如通过使每个偏移值与页址关 联来使用多个偏移1110,其中每个偏移值与每个页(字线)关联。与页地址关联的相同偏移 值可用于所有存储器通道上的每个页。运些"页偏移"可相对于总体偏移,总体偏移将被应 用于(并且根据需要调节至)全部页,并且在读取每个页时将通过对应页偏移来修改总体偏 移。
[0103] 图12示出了根据本发明的多个方面的对用于读取存储装置中的多个存储元件的 读取级别进行校准的示例性过程的流程图。为了解释的目的,运里参考本文描述的部件和/ 或过程来描述示例性过程1200的各个块。例如可通过一个或多个处理器(包括如图15的闪 存处理器1501或控制器1501的一个或多个部件或处理器)执行过程1200的一个或多个块。 在一些实现方式中,一个或多个块可与其他块分开实现,并且通过一个或多个不同的处理 器或控制器来执行。而且为了解释的目的,示例性过程1200的块被描述为串行地或线性地 发生。然而,示例性过程的多个块可并行地发生。此外,示例性过程1200的块不需要W所示 顺序执行,和/或不需要执行示例性过程1200的一个或多个块。
[0104] 根据多个实现方式,过程1200的块对应于或者补充关于图9和图10A至图10F描述 的过程。对于在存储器装置中使用的每个可能的读取级别可执行过程1200的块或其子集。 例如,过程1200的块可被执行,W生成、调节和/或校准用于化1、化2和化3的字线或字线组 的偏移。在多个方面,对于每个不同的读取级别可生成不同尺寸的和/或具有不同偏移至配 对的偏移字线组。此外,过程1200的块可被执行,W生成、调节和/或校准用于不同块的不同 组和/或晶元的偏移。在操作之前或在操作期间,在配置存储装置的过程中执行过程1200。
[0105] 在所示的实例中,根据本发明技术的系统提供了足W读取大多数编程为一预定编 程级别的存储元件的读取级别电压(1202)。如前文描述的,存储元件可为单级或多级非易 失存储元件,其被配置成编程为四个编程级别之一。例如,第一和第四编程级别与第一比特 值关联(例如最高有效位的二进制数0或1的表示),并且第二和第Ξ编程级别可与第二比特 值关联(例如最低有效位的二进制数0或1的表示)。如前文描述的,当W元件的编程级别对 应的特定读取级别(例如化1、化2、化3)对存储元件施加电压时,该元件将导通W指示编程 级别。
[0106] 在存储器装置的寿命周期中的一预定时间段之后,生成与一个或多个存储器元件 的多次读取对应的可靠性值(1204)。在运个实例中,每次读取均使用读取级别电压的变化, 并且每个产生的可靠性值表示存储元件的输出状态等于预定编程状态的可能性,可靠性值 的范围覆盖负值和正值。如前文描述的,对于多个可靠性值而言,正可靠性值表示对应输出 状态为二进制数0,而负可靠性值可表示对应输出状态为二进制数1。
[0107] 在生成可靠性值之后,识别从读取级别电压偏移的偏移电压(1206)。在图10A至图 10C所示的实例中,该偏移对应于可靠性值(例如表2和/或表3)的范围中的过零点1104。
[0108] 在识别(例如用于读取级别的)偏移电压之后,基于该偏移电压,读取级别电压被 设定成校准的电压(1208)。根据本主题技术的多个方面,将读取级别电压设定为校准的电 压可包括:例如在与读取操作关联的情况下,从存储位置取得所识别的偏移电压,并且利用 所识别的偏移电压来调节读取级别电压,W读取存储元件。在一些实现方式中,在多个存储 器通道上的存储元件上进行读取操作,每个通道可被配置为对一个或多个存储元件进行寻 址。
[0109] 参考图11A,所识别的偏移电压可与能由多个存储器通道寻址的全部块和全部页 关联,使得在读取与多个存储器通道关联的任何页或块的存储元件时通过所识别的偏移电 压调节读取级别。参考图11B,所识别的偏移电压可与页地址关联,并且在通过多个存储器 通道中的任一个读取与页址关联的存储元件时通过所识别的偏移电压来调节读取级别,其 中,能通过与不同偏移电压关联的存储器通道对每个页址进行寻址。
[0110] 此外,校准过程可应用于更新用于个别字线的偏移或者应用于更新与最优字线组 关联的偏移。例如,可存储多个预定读取级别,其中,每个预定读取级别偏移与一组字线关 联,该组字线与该组中的读取存储元件中的相应读取级别电压一起使用。对相应的字线组, 可用所识别的偏移电压来更新先前与该组关联的读取级别偏移。因此在与读取操作关联的 情况下,可从其存储位置(例如查找表)来获取更新的读取级别偏移,W将读取级别电压设 定成校准电压,并且新校准的电压用于读取相应字线组。
[0111] 图13示出了根据本发明技术的多个方面的用于校准读取级别W恢复数据的示例 性过程的流程图。前述校准过程1200还可应用于恢复不能被读取或解码的数据。在图13所 示的示例性实现方式中,在读取操作期间,识别关联一错误率的一个或多个字符行,该错误 率满足错误阔值(1302)。例如,读取字线或码字可产生过多数据错误W用于编码处理错误 更正。运样,读取操作有可能不能读取存储在一个或多个被识别字线处的数据。
[0112] 响应于识别字线或码字,可调用图12的过程1200或其一个或多个块W恢复一个或 多个字线的数据。运样,邻接所识别字线或码字的一个或多个字线或码字中的存储单元被 读取,W生成上文关于图10A至图10C描述的多个可靠性值(1304)。在生成可靠性值之后,识 别新校准的偏移电压(例如,其在可靠性值的范围中对应于过零点1004),并且读取级别电 压被设定/调节成新的校准偏移电压(1306)。然后使用新校准的读取级别电压重新读取所 识别的字线或码字(1308)。
[0113] 图14示出了根据本发明技术的多方面的用于基于再生成和再标引错误计数表而 再生成多个最优偏移字线组的示例性过程的流程图。为了解释的目的,运里参考本文描述 的部件和/或过程描述示例性过程1400的各个块。在例如通过一个或多个处理器(包括例如 图15的闪存控制器1501或控制器1501的一个或多个部件或处理器)实现过程1400的一个或 多个块。在一些实现方式中,一个或多个块可与其他块分开实现,并且通过一个或多个不同 的处理器或控制器执行一个或多个块。而且,为了解释的目的,示例性过程1400的多个块可 被描述的串行地发生或线性地发生。然而示例性过程1400的多个块可并行地发生。此外,示 例性过程1400的方框不需要W所示顺序执行,和/或无需执行示例性过程1400的一个或多 个块。
[0114] 根据多个实现方式,过程1400的框对应或补充过程700、800、1300和/或1200和/或 关于图9和图10A至图10F描述的过程的一个或多个框。可对用于读取存储器装置中的存储 元件的每个可能的读取级别执行过程1400的框或其子集。运些存储元件被配置W编程为多 个编程级别,通过读取相应的读取级别电压处的存储元件来确定每个编程级别。过程1400 的方框被执行W生成、调节和/或校准用于化1、化2和化3的字线或字线组的偏移。可通过算 法602执行过程1400的方框的一部分。在多个方面,可对每个不同的读取级别生成不同尺寸 和/或具有不同偏移值配对的偏移字线组。此外,过程1400的方框可被执行W生成、调节和/ 或校准用于不同方框和/或晶元的不同组的偏移。在操作之前或在操作期间,可在存储装置 的配置过程中实施过程1400。
[0115] 在所示的实例中,根据本发明技术的系统基于读取存储块的字线的第一样本生成 错误计数表(1402)。表400是可由本发明技术生成的错误计数表的一个实例。如前文描述 的,为了生成新的表,可使用利用不同偏移电压修改的读取级别电压多次读取每个字线,w 产生用于字线和相应读取级别电压的每个组合的错误计数。每次读取均可产生对于每个偏 移电压的错误计数。生成该表,使得该表的行对应于字线且表的列对应于偏移值。该表通过 对应字线标识符(例如,字线地址或部分字线地址)和不同读取级别电压的相应一个(例如, 用相应偏移电压或偏移电压修改的读取级别)来标引每个产生的错误计数。被生成的错误 计数然后利用字线和相应读取级别电压来标引。
[0116] 此外或可替换地,可读取存储块的字线的第一样本,其中,使用不同读取级别电压 来多次读取每个字线,W产生对字线和相应读取级别电压的每个组合的错误计数。每个字 线与字线标识符(例如,字线的地址)关联。然后可基于所产生的错误计数生成错误计数表, 其中,错误计数表利用对应字线标识符和不同读取级别电压的用于产生错误计数的相应一 个来标引每个产生的错误计数。
[0117] 与配置实现本发明技术的存储装置相关,基于错误计数表和多个字线的初始划分 (例如通过算法602)形成多个最优偏移字线组(1404)。该字线组可基于用于标引错误计数 表的字线标识符而形成,每个字线组把不同读取级别电压的相应一个与待执行读取操作的 多个字线相关联。如前文关于过程700和800W及图7和图8描述的,每个最优偏移字线组可 包括与对应偏移电压配对的字线的相继分组部分,为了读取每个所述字线组中的字线的总 体最小可能错误计数而选择配对。运样,可利用相应字线和读取级别偏移电压来标引错误 计数表W确定每个字线的最大和/或最小错误计数可能,然后将字线组织到相继组中,每个 组与对该分组提供最小可能错误计数退化(与独立字线相比)的偏移值配对。
[0118] 在生成最优字线组(包括对应偏移电压)之后,存储装置被配置成使用基于错误计 数表中的错误计数为字线组选择的读取级别偏移电压在字线组的相应字线上进行读取操 作(1406)。因此,与读取偏移字线组的特定字线的存储元件相关,可识别与相应偏移字线组 关联的偏移电压,并且使用所识别的偏移电压来读取存储元件。在多个实现方式中,所识别 的偏移电压修改相应的读取级别电压,W与不修改相应读取级别电压的情况相比W较少错 误读取存储元件。
[0119] 在存储块的寿命周期中的预定点(例如,存储块中的存储元件产生预定阔值W上 的比特错误率或者经受预定数量的编程/擦除循环的点)之后,可重新校准包括关联偏移值 的最优字线组。运样,重新生成错误计数表(1408)。该错误计数表可基于读取与用于标引错 误计数表的字线标识符对应的字线的第二样本而生成。例如,错误计数表可基于在存储器 装置的当前条件(例如电压级别)下读取存储块的多个字线而生成。
[0120] 在一些实现方式中,在生成错误计数表之前,可校准用于生成该表的读取级别和/ 或偏移电压。简要地参考图13和过程1300,可生成与关于相应读取级别电压的多次读取对 应的可靠性值,识别用于读取级别电压的校准电压(例如用于校准已有的读取级别的偏移 电压),并且存储装置被配置成基于与读取级别电压有关的校准电压而重新读取存储块的 多个字线。因此,每次读取均可使用读取级别电压的变化,并且每个生成的可靠性值可表示 存储元件的输出状态等于一预定编程状态的可能性(例如对数似然比)。可靠性值的范围可 覆盖负值和正值。用于重新读取字线的所识别的更新的偏移电压可对应于可靠性值的范围 中的过零点。
[0121] 用于生成最初错误计数表的不同读取级别电压可被更新W产生更新的读取级别 电压。例如,不同读取级别电压中的每个可用校准电压调节。运样,可使用更新的读取级别 电压多次读取字线的第二样本中的每个字线,W产生更新的错误计数。然后可从产生的更 新错误计数中重新生成错误计数表。因此,可更新错误计数表,W用对应字线标识符和用于 产生更新错误计数的更新的读取级别电压的相应一个来标引每个产生的更新错误计数。
[0122] -旦重新生成错误计数表,就基于利用字线和读取级别偏移电压标引重新生成的 错误计数表而重新生成最优偏移字线组(1410)。可W由过程700和/或过程800中的一个或 多个块描述的方式重新生成最优偏移字线组。
[0123] 示例性过程1200、1300和1400的许多上述特征W及相关特征和应用可实现为软件 过程,该软件过程被规定为在计算机可在存储介质(也被称为计算机可读介质)上重新编码 的一组指令。当通过一个或多个处理单元(例如,一个或多个处理器、处理器的核屯、或其他 处理单元)执行运些指令时,其引起处理单元执行指令中规定的动作。计算机可读介质的实 例包括但不限于,CD-ROM、闪存、RAM忍片、硬盘、EPROM等等。计算机可读介质不包括载波W 及无线地或在有线连接件上行进的电信号。
[0124] 图15是示出了根据本发明技术的各实现方式的示例性数据存储系统1500(例如, 固态硬盘)的部件的方框图。数据存储系统1500可包括数据存储控制器1501、存储介质1502 W及闪存装置1503。控制器1501可使用存储介质1502来临时存储用于管理数据存储系统 1500的数据和信息。控制器1501可包括一些内部部件(未示出),诸如一个或多个处理器、只 读存储器、闪存部件接口(例如,用于管理指令和沿着至闪存装置1503的串行连接传输数据 的多路转换器)、1/〇接口、误差校正电路等等。在一些方面,控制器1501的一个或多个元件 可被集成到单个忍片中。在其他方面,运些元件可体现为两个或更多个离散部件。
[0125] 控制器1501或者其中的一个或多个部件可被配置为执行编码和指令,W执行本文 描述的操作和功能。例如,控制器1501可被配置为执行用于管理请求流和地址映射的操作, 并且执行计算并生成命令。控制器1501的处理器可用于监控和控制数据存储控制器1501中 的部件的操作。处理器可为通用的微处理器、微控制器、数字信号处理器(DSP)、特定用途集 成电路(ASIC)、现场可编程口阵列(FPGA)、可编程逻辑电路(PLD)、控制器、状态机、选通逻 辑、离散硬件或前述运些的组合。一个或多个指令序列可被存储为控制器1501内的ROM上的 固件。一个或多个指令序列可为存储介质1502、闪存1503中存储和从中读取或者从主机设 备(例如通过主机接口)接收的软件。ROM、存储介质1502、闪存装置1503表示机器或计算机 可读介质的实例,在其上可储存有能由控制器1501和/或其处理器执行的指令/编码。机器 和计算机可读介质总体上可表示用于向控制器1501和/或其处理器提供指令的任何有形的 和/或永久的介质或媒介,其包括易失性介质如用于存储介质1502或用于控制器1501内的 缓冲器的动态存储器和非易失性介质如电子介质、光介质和磁介质。
[01 %]因此,数据存储系统1500还可包括主机接口 1505。主机接口 1505被配置为禪接至 主机设备1510, W从主机设备1510接收数据W及将数据发送至主机设备1510。主机接口 1505可包括电连接件和物理连接件两者W用于将主机设备1510操作地禪接至控制器1501。 主机接口 1505被配置为使数据、地址和控制信号在主机设备1510与控制器1501之间连通。 W运样的方式,控制器1501被配置为响应于来自主机设备1510的写入命令而存储从闪存装 置1503中的主机设备1510接收的数据,并且被配置为读取存储在闪存1503中的数据并相应 于来自主机设备1510的读取命令通过主机接口 1505将读取数据传输至主机设备1510。
[0127]主机设备1510表示配置为禪接至数据存储系统1500 W及禪接至数据存储系统 1500中的存储数据的任意设备。主机设备1510可为计算机系统,诸如个人电脑、服务器、工 作站、便携式电脑、PDA、智能手机等。可替换地,主机设备1510可为电子设备,诸如数字照相 机、数字音频播放器、数字视频记录器等。
[01%]在一些方面,存储介质1502表示用于临时存储数据的易失性存储器体W及用于管 理数据存储系统1500的信息。根据本公开的一方面,存储介质1502为随机存取存储器 (RAM),诸如双倍数据速率RAM。其他类型的RAM也可用于实现存储介质1502。可使用单RAM模 块或多RAM模块实现存储介质1502。虽然存储介质1502被示出为区别于控制器1501,但本领 域技术人员将认识到在不背离本公开的范围的前提下可将存储介质1502结合到控制器 1501中。可替换地,存储介质1502可为非易失性存储器,诸如磁盘、闪存、外部SSD等。
[0129] 如在图2中进一步示出的,数据存储系统1500还可包括总线。总线可使用适当的接 口标准,其包括但不限于串行高级技术附件(SATA)、高级技术附件(ΑΤΑ)、小型计算机系统 接口(5〔51)、口(:1扩展。(:1-乂)、光纤信道、串列5〔51(545)、安全数字(50)、内嵌式多媒体卡 化MMC)、通用闪存(UFS)和总线和接口标准(PCI e)。
[0130] 主机设备1510和数据存储系统1500可通过有线或无线连接而彼此连通,并且可彼 此本地或远程。根据一些方面,数据存储系统1500可包括插脚(或插座)W与主机设备1510 上的对应插座(或插脚)匹配,W建立电连接和物理连接。根据一个或多个方面,数据存储系 统1500包括无线收发器,使主机设备1510和数据存储系统1500彼此无线地连通。
[0131] 闪存装置1503表示用于存储数据的非易失性存储器装置。根据本公开的一方面, 闪存装置1503包括例如NAND闪存。闪存装置1503可包括单个闪存装置或忍片,并且可包括 布置在多个通道中的多个闪存装置或忍片。闪存装置1503不限于任何具体的容量和构造。 例如,物理块的数量、每物理块的物理页的数量、每物理页的区段的数量W及区段的大小可 在本公开的范围内变化。
[0132] 闪存可具有标准接口规格。运个标准确保多个制造商的忍片可互换地使用(至少 在很大程度上)。接口还可隐藏闪存的内部工作并且仅返回内部检测的数据比特值。
[0133] 术语"软件"意味着包括(在适用的情况下)存在于只读存储器中的固件或存储在 磁存储器中的应用,可在存储器中读取该软件W用于通过处理器进行处理。而且在一些实 现方式中,本公开的多个软件方面可实现为较大程序的子部分,同时保持区分公开的软件 方面。在一些实现方式中,多个软件方面也可被实现为独立程序。最后,将独立程序组合到 一起实现运里描述的软件方面的任意组合均在本公开的范围内。在一些实现方式中,当软 件程序安装成在一个或多个电子系统上进行操作时,该软件程序限定执行并实现软件程序 的操作的一个或多个特定机器实现方式。
[0134] 计算机程序(已知为程序、软件、软件应用、脚本或编码)可W任何形式的编程语言 (包括编译的或解译的语言、描述性的或程序化的语言)写入,并且其可W任意形式部署,包 括部署成孤立程序或模块、部件、子程序、对象或适于在计算机环境中使用的其他单元。计 算机程序可(但不一定)对应于文件系统中的文件。程序可存储在文件的保留其他程序或数 据的一部分中(例如,一个或多个脚本存储在标记语言文档中)、专属于问题程序的单个文 件中、或多个并列文件(例如,存储一个或多个模块、子程序或部分编码的文件)中。计算机 程序部署成在位于一个站点处或分布在多个站点上的一个或多个计算机上执行,并且由连 通网络相互连接。
[0135] 应该理解,本文描述的所示块、模块、元件、部件、方法和算法可被实现为电子硬 件、计算机软件或运两者的组合。为了示出硬件和软件的运种互换能力,上文总体上在其功 能性方面描述了各种所示的块、模块、元件、部件、方法和算法。运种功能性被实现为硬件还 是软件取决于施加在总体系统上的具体应用和设计约束。技术人员可对于每个具体应用W 变化的方式实现所描述的功能性。在不背离本公开的范围的前提下可不同地布置各种部件 和块(例如,W不同的顺序布置或者W不同的方式划分)。
[0136] 应该理解,所公开的步骤中的特定顺序和层次表示为一些示例性方法的说明。基 于设计偏好和/或其他考虑,应理解到可重新布置程序中的步骤的特定顺序或层次。例如, 在一些实现方式中,一些步骤可同时进行。因此,所附的方法要求各个步骤中的存在的元件 处于样本顺序,而且并不意味着限制于所呈现的特定顺序或层次。
[0137] 前文的描述提供于使被领域技术人员实践本文描述的各方面。前文的描述提供了 本公开的各个实例,并且本公开不限于运些实例。对运些方面的各种修改将对于本领域技 术人员是显而易见的,并且本文限定的通用原则可应用于其他方面。因此,权利要求并非旨 在限制本文示出的方面,但其符合与语言要求一致的全部范围,其中,除非具体地陈述,否 则参考单数形式的元件并非旨在表示"一个或仅一个",而是表示"一个或多个"。阳性的代 词(例如,他的)包括阴性和中性(例如,她的和它的)并且反之亦然。如果有的话,标题和子 标题仅为了方便而不限制本公开。
[0138] 谓语"配置为"、"操作为"和"编程为"并不表示主题的任何具体的有形或无形修 改,而是旨在互换地使用。例如,配置成监控和控制操作和部件的处理器也可表示编程为监 控和控制操作的处理器或者操作为监控和控制操作的处理器。同样地,配置为执行编码的 处理器应理解为编程为执行编码或操作为执行编码的处理器。
[0139] 短语"连通"和"禪接"表示直接连通或者通过本文中命名或未命名的一个或多个 部件间接地连通。
[0140] 短语(诸如,"方面")不表示对于本公开必要的方面或者应用于本公开所有配置的 方面,与一方面相关的公开可应用于所有配置,或者一个或多个配置。一方面可提供一个或 多个实例。短语(诸如,方面)可表示一个或多个方面并且反之亦然。短语(诸如"实施方式") 不表示对于本公开必要的实施方式或者应用于本公开所有配置的实施方式。与实现方式有 关的公开可应用于所有方面或者一个或多个方面。一实现方式可提供一个或多个实例。短 语(诸如"实施方式")可表示一个或多个实现方式并且反之亦然。短语(诸如"构造")不表示 对于本公开必要的构造或者应用于本公开所有配置的构造。与构造有关的公开可应用于所 有配置或者一个或多个配置。一构造可提供一个或多个实例。短语(诸如"构造")可表示一 个或多个构造并且反之亦然。
[0141] 词语"示例性"在本文中用于表示"用作实例或说邸'。本文描述为"示例性"的方面 或设计不一定被理解为比其他方面或设计优选或有利。
【主权项】
1. 一种计算机实现的方法,包括: 读取存储块的字线的第一样本,字线的所述第一样本中的每个字线与字线标识符关联 并且使用不同读取级别电压被多次读取,以产生对于字线与相应读取级别电压的每个组合 的错误计数; 基于所产生的错误计数生成错误计数表,对每个产生的错误计数,所述错误计数表利 用对应的字线标识符和所述不同读取级别电压中用于产生该错误计数的相应一个读取级 别电压来标引该错误计数;以及 配置存储装置,以使用基于所述错误计数表的错误计数选择的读取级别电压来执行读 取操作。2. 根据权利要求1所述的方法,其中,所述配置存储装置包括: 基于用来标引所述错误计数表的所述字线标识符形成多个字线组,每个所述字线组把 所述不同读取级别电压中的相应一个与待被执行读取操作的多个字线关联, 其中,所述存储装置被配置为使用与相应字线对应的字线组的读取级别电压而在该相 应字线上执行相应读取操作。3. 根据权利要求2所述的方法,其中,所述多个字线组基于与用来标引所述错误计数表 的所述字线标识符对应的字线的初始划分而生成,并且其中,每个字线组包括与对应读取 级别电压配对的对应字线的相继分组部分,为了读取每个所述字线组中的字线的总体最小 可能错误计数而选择配对。4. 根据权利要求2所述的方法,还包括: 在所述存储装置中的一个或多个存储块的寿命周期中的预定点之后,基于读取与用来 标引所述错误计数表的所述字线标识符对应的字线的第二样本,重新生成错误计数表,以 及 基于重新生成的错误计数表而重新生成多个字线组。5. 根据权利要求4所述的方法,其中,重新生成错误计数表包括: 生成多个可靠性值,所述多个可靠性值与一个或多个存储块的存储元件的多次读取对 应,每次读取使用不同读取级别电压来执行,所述可靠性值的范围覆盖负值和正值; 识别校准的电压,该校准的电压与所述可靠性值的范围中的过零点对应;以及 配置所述存储装置使得基于所述校准的电压读取字线的所述第二样本。6. 根据权利要求5所述的方法,其中,重新生成错误计数表还包括: 基于所述校准的电压更新所述不同读取级别电压,其中,使用更新的读取级别电压多 次读取字线的所述第二样本的每个字线,以产生更新的错误计数;以及 基于所产生的更新的错误计数重新生成错误计数表,所述错误计数表被更新,使得利 用对应的字线标识符和用于产生更新的错误计数的更新的读取级别电压中的相应一个来 标引每个产生的更新的错误计数。7. 根据权利要求5所述的方法,其中,所述一个或多个存储块的寿命周期中的所述预定 点包括所述寿命周期中使所述一个或多个存储块中的存储元件的一次或多次读取产生错 误阈值以上的比特错误率的点。8. 根据权利要求5所述的方法,其中,所述一个或多个存储块的寿命周期中的所述预定 点包括所述寿命周期中使所述一个或多个存储块中的存储元件经受预定数量编程/擦除周 期的点。9. 一种数据存储系统,包括: 多个闪存装置,每个闪存装置均包括多个存储块;以及 控制器,所述控制器耦接至所述多个闪存装置,其中,所述控制器在配置模式期间被配 置为: 读取所述闪存装置的字线的第一样本,字线的所述第一样本中的每个字线与字线标识 符关联且使用不同读取级别电压被多次读取,以产生对于字线和相应读取级别电压的每个 组合的错误计数; 基于所产生的错误计数生成错误计数表,所述错误计数表利用对应的字线标识符和不 同读取级别电压中的相应一个来标引每个产生的错误计数;以及 基于所述错误计数表的错误计数选择读取级别电压用于将来的读取操作。10. 根据权利要求9所述的数据存储系统,其中,所述控制器在所述配置模式期间还被 配置为: 基于用来标引所述错误计数表的所述字线标识符形成多个字线组,每个字线组把不同 读取级别电压中的相应一个与待被执行读取操作的多个字线关联;以及 配置所述数据存储系统,以使用与相应字线对应的字线组的读取级别电压在该相应字 线上执行相应读取操作。11. 根据权利要求10所述的数据存储系统,其中,所述多个字线组基于与用来标引所述 错误计数表的所述字线标识符对应的字线的初始划分而生成,并且其中,每个字线组包括 与对应读取级别电压配对的对应字线的相继分组部分,为了读取每个所述字线组中的字线 的总体最小可能错误计数而选择配对。12. 根据权利要求10所述的数据存储系统,其中,把所述读取级别电压与所述多个字线 关联包括把所述读取电压与对应于所述多个字线的多个字线地址关联。13. 根据权利要求12所述的数据存储系统,其中,所述控制器被配置为: 在相应存储块的寿命周期中的预定点之后,基于读取与用来标引所述错误计数表的所 述字线标识符对应的字线的第二样本,重新生成错误计数表,以及 基于重新生成的错误计数表而重新生成多个字线组。14. 根据权利要求13所述的数据存储系统,其中,重新生成错误计数表包括: 生成与相应存储块的存储元件的多次读取对应的多个可靠性值,每次读取使用不同读 取级别电压来执行,所述可靠性值的范围覆盖负值和正值; 识别与所述可靠性值的范围中的过零点对应的校准的电压;以及 配置所述存储装置使得基于所述校准的电压读取相应存储块的字线。15. 根据权利要求13所述的数据存储系统,其中,所述一个或多个存储块的寿命周期的 所述预定点包括所述寿命周期中的使所述一个或多个存储块中的存储元件的一次或多次 读取产生错误阈值以上的比特错误率的点。16. 根据权利要求13所述的数据存储系统,其中,所述相应存储块的寿命周期中的所述 预定点包括所述寿命周期中的使所述相应存储块中的存储元件经受预定数量编程/擦除周 期的点。17. -种计算机实现的方法,包括: 读取闪存装置的字线的第一样本,字线的所述第一样本中的每个字线与字线地址关联 并且使用不同读取级别电压被多次读取,以产生对于字线与相应读取级别电压的每个组合 的错误计数; 基于所产生的错误计数生成错误计数表,所述错误计数表利用对应的字线地址和不同 读取级别电压中的相应一个来标引每个产生的错误计数; 基于所述错误计数表形成多个字线组,每个组把所述不同读取级别电压中的相应一个 与多个字线地址关联;以及 配置存储装置,以使用与待读取的存储元件的字线地址对应的所生成的字线组的读取 级别电压来读取该存储元件。18. 根据权利要求17所述的方法,其中,所述多个字线组也基于与用来标引所述错误计 数表的字线地址对应的字线的初始划分而生成,并且其中,每个字线组包括与对应读取级 别电压配对的字线地址的相继分组部分,为了读取每个所述字线组中的字线的总体最小可 能错误计数而选择配对。19. 根据权利要求18所述的方法,还包括: 在一个或多个存储块的寿命周期中的预定点之后,基于读取与用来标引所述错误计数 表的字线标识符对应的字线的第二样本而重新生成错误计数表,以及 基于重新生成的错误计数表而重新生成多个字线组。20. 根据权利要求19所述的方法,其中,所述一个或多个存储块的寿命周期中的所述预 定点包括所述一个或多个存储块中的经受预定数量编程/擦除周期的存储元件。
【文档编号】G11C16/34GK105989891SQ201610161521
【公开日】2016年10月5日
【申请日】2016年3月21日
【发明人】塞伊汗·卡拉库拉克, 安东尼·德韦恩·韦瑟斯, 理查德·大卫·巴恩特
【申请人】Hgst荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1