每单元多位的闪速存储器的概率错误校正的制作方法

文档序号:6777116阅读:219来源:国知局
专利名称:每单元多位的闪速存储器的概率错误校正的制作方法
技术领域
本发明涉及数字数据的错误校正,尤其涉及一种每个单元存储多 位的闪速存储设备的错误校正的方法。
背景技术
闪速存储设备已经存在许多年。典型地,闪速存储器内的每个单 元存储一位的信息。传统上,存储一位的方法是通过支持单元的两种
状态一一种状态表示逻辑"O,,而另一种状态表示逻辑";l,,。在闪速存储
器单元中,两种状态通过具有位于单元通道上的浮动栅极(连接单元 晶体管的源极和漏极元件的区域),以及具有存储在该浮动栅极内的 电荷量的两种有效状态而实现。典型地, 一种状态是在浮动栅极中具 有零电荷并且是擦除之后单元的初始未写入状态(通常定义为表示 "l"状态),而另一种状态是在浮动栅极中具有一定量的负电荷(通 常定义为表示"0,,状态)。在栅极中具有负电荷使得单元晶体管的阈 值电压(也就是必须施加到晶体管的控制栅极以便使得晶体管传导的 电压)增加。现在,通过检查单元的阈值电压读取存储位是可能的 如果阈值电压处于较高状态则位值为"O",并且如果阈值电压处于较 低电压则位值为"l"。实际上,不需要准确地读取单元的阈值电压。 需要的是正确地识别单元当前处于两种状态的哪种。为了这个目的, 相对于处于两种状态之间中间的参考电压值进行比较,从而确定单元 的阈值电压低于还是高于该参考值是足够的。
图1A图示显示这如何工作。具体地,图1A显示大量单元的阈 值电压的分布。因为闪速存储器中的单元在它们的特性和行为方面并 不完全相同(例如因为杂质浓度的小偏差或硅结构的缺陷),将相同 的编程操作应用于所有单元不会使得所有单元具有完全相同的阈值电 压。(注意,由于历史原因,将数据写入闪速存储器通常称作"编程"闪速存储器)。代替地,阈值电压类似于图1A中显示的方式分布。 存储"l"值的单元典型地具有负的阈值电压,使得大多数单元具有与 由图1A的左峰值显示的值接近的阈值电压, 一些较少数目的单元具 有较低或较高的阈值电压。类似地,存储"O,,值的单元典型地具有正 的阈值电压,使得大多数单元具有与由图1A的右峰值显示的值接近 的阈值电压, 一些较少数目的单元具有较低或较高的阈值电压。
近年来, 一种使用常规称作"多级单元,,或缩写为MLC技术的新 的闪速存储器已经在市场上出现。(该名称令人误解,因为先前类型 的闪存单元也具有多于一级;它们具有两级,如上所述。因此,两种 闪存单元在这里称作"单位单元,,(SBC )和"多位单元" (MBC)。)由MBC闪存带来的改进在于每个单元中存储两位或 多位。为了使得单个单元存储两位信息,单元必须能够处于四种不同 状态的一种。因为单元的"状态"由它的阈值电压表示,显然2位 MBC单元应当支持阈值电压的四种不同有效范围。图1B显示典型 的2位MBC单元的阈值电压分布。如期望的,图1B具有四个峰 值,每个对应一种状态。对于SBC情况,每种状态实际上是一个范 围而不是单个数值。当读取单元的内容时,必须保证的是正确地识别 单元的阈值电压所处的范围。对于MBC闪速存储器的现有技术实 例,参看Harari的美国专利5,434,825号。
类似地,为了使得单个单元存储三位信息,单元必须能够处于八 种不同状态的一种。所以3位MBC单元应当支持阔值电压的八种不 同有效范围。图1C显示典型的3位MBC单元的阈值电压分布。如 期望的,图1C具有八个峰值,每个对应一种状态。图1D显示4位 MBC单元的阈值电压分布,需要由十六种阈值电压范围表示的十六 种状态。
当经由四种状态编码MBC单元中的两位时,使得图1B中的最 左侧状态(典型地具有负的阈值电压)表示两位都具有"l,,值的情 况。(在下面的讨论中,使用下面的表示——单元的两位称作"低位" 和"高位"。位的确切值写作"高位""低位"I的形式,低位值在右侧。所以低位为"0,,且高位为"1"的情况写作"10"。必须理解,该术语和表
示法的选择是任意的,并且其他名称和编码是可能的)。使用这种表 示法,最左侧状态表示"ll,,的情况。其他三种状态典型地从左到右由
下面的次序指定"10", "00", "01"。在Chen的美国专利6,522,580 号中可以看到使用该编码的MBC NAND闪速存储器的实现实例,在 此以提及方式引用该专利,如同将其完全在这里陈述。特别地参考 Chen专利的图8。 Tanaka的美国专利6,643,188号也显示MBC NAND闪速存储器的类似实现,但是参看那里的图7,对于状态到位 的编码的不同指定"11", "10", "01", "00"。 Chen编码是图IB 中说明的编码。
我们将上面的术语和表示法扩展到每个单元多于两位的情况,如 下。最左侧未写入状态表示"全一,,("1…1"),串"1…10"表示单元 的仅最低位写为"O"的情况,并且串"01…1"表示单元的仅最高位写为 "O"的情况。
当读取MBC单元的内容时,必须正确地识别单元的阈值电压所 处的范围;仅在该情况下,这不能总是通过与仅一个参考电压比较而 实现。代替地,几次比较可能是必需的。例如,在图1B中说明的情 况下,为了读取低位,单元的阈值电压首先与参考比较电压K比 较,然后取决于比较的结果,与零参考比较电压或参考比较电压F2 比较。作为选择,通过将阈值电压与零参考电压和参考比较电压K2 无条件比较来读取低位,再次需要两次比较。对于每个单元多于两 位,甚至可能需要更多的比较。
单个MBC单元的位可能都属于相同的闪存页,或者它们可能指 定到不同页,使得例如在4位单元中,最低位在页O中,下一位在页 l中,下一位在页2中,并且最高位在页3中。(页是可以在闪速存 储器中单独写入的数据的最小部分)。
Lasser的美国专利申请序列号11/035,807涉及每个单元存储多 位的闪速存储器单元中编码位的方法。Lasser的美国专利申请序列 号11/061,634和Murin的美国专利申请序列号11/078,478涉及关于跨越多位闪存单元的不同逻辑页的错误分布问题的位编码的那些方法
的实现。具体地,Lasser'634讲授一种使用位编码的逻辑到物理映射 实现甚至跨越不同逻辑页的错误分布的方法,如由数据的用户看到的 以及由纠错码(ECC)电路系统处理的;并且Murin讲授一种使用 物理位页之间逻辑页的插入实现甚至跨越不同逻辑页的错误分布的方 法,如由数据的用户看到的以及由ECC电路系统处理的。这三个现 有技术专利申请全部在此以提及方式引用,如同将其完全在这里陈 述。
Lasser'634和Murin满足相同的目标减少ECC电路系统应当 为此i爻计的出错率。在两个申请中呈现的实例中, 一组15,000个4 位MBC闪速存储器单元用于存储4个逻辑页的数据,每个15,000 位。假定的单元出错率是l,OOO中1个。作为结果的位错误的最佳数 目是15,因此逻辑页中的最佳平均位错误是3.75。该实例显示除非 使用提出的创新,具体的逻辑页可能以高得多的位出错率结束——所 示实例中6个位错误。这意味着即使遍及存储在单元中的所有位的位 错误的总体平均值相对低(60,000中15个或4,000中1个),除非 采取特殊措施,涉及校正逻辑页中错误的ECC电路系统必须设计为 处理相对高的平均位出错率(在该实例中——15,000中6个或2,500 中l个)。
由本申请的发明者提交的、标题为"MBC闪速存储器中错误校正 的方法,,的最近美国专利申请(在这里称"Litsyn等人")公开相同目 标的不同方法。在此以提及方式引用该申请,如同将其完全在这里陈 述。代替单独为了错误校正的目的处理每个逻辑页,Litsyn等人同时 处理共享相同组单元的所有逻辑页,作为一个ECC代码字处理所有
那些多个逻辑页的所有位。这使得ECC电路系统必须处理的平均位 出错率更低——在上面的实例中仅4,000中l个。
在大多数ECC实现中,所有位被相同处理,并且没有位被i/w为 比平均更可靠或更不可靠。但是,如从上面明显的,当从一组MBC 闪速存储器单元中读取多个逻辑页时,存储在不同位页中的位具有不同的错误概率。上面讨论的用于平均错误分布的现有技术方法的一些
(Lasser'634, Murin )在使得所有逻辑页平均起来具有相同数目的 位错误方面是成功的,但是不同的各个位仍然具有不同的可靠性。
关于待错误校正的代码字中各个位的位出错率的信息对于错误校 正模块非常有用。我们将使用非常简化的实例说明这一点。假设一組 四位通过奇偶位防止单个错误,使得如果检测到错误,ECC选择位 中的一位翻转并且提供这个作为校正结果。如果代码字中全部五位
(四个数据位和一个奇偶位)同等可能地出错,那么关于检测到错误 时翻转哪位的决定仅可以随机地进行。这导致仅20%的正确决定。 但是如果已知位中的一位比代码字中其他四位的任何一个不可靠六 倍,那么检测到错误时选择该位翻转导致60%的正确决定。虽然该 实例极度简化并且在真实世界的ECC实现中计算和决定的方法复杂 得多,但是它确实适合于说明各个位的可靠性数据对于提高错误校正 方案性能的有用性的目的。
存在额外的可靠性信息影响ECC电路系统处理不同位的方法的 现有技术系统。参看例如Ban等人于2OO4年6月16日提交且标题 为"增加闪速存储器可靠性的方法,,的美国专利申请10/867,645。在 Ban等人中,使用比将单元状态分离成它的可能值所需的更高分辨率 读取存储在闪存单元中的数据。例如,如果单元被写入16种状态的 一种(也就是单元存储4位),那么读取单元,好像它具有5位一 样。这被Ban等人称作使用"分式级",但是其他使用不同的术语例 如"软位"。其他也使用多于一位的额外读取来提供甚至更高的分辨 率。该高分辨率读取提供的额外位被ECC模块用于估计其他"真实" 数据位的可靠性,因为同将它的状态(好像它被实际读取一样)与邻 近状态分离的边界相比较,它们提供关于单元额外状态的证据。位于 边界附近的单元比位于范围中间和远离边界的单元更可能出错。也存 在利用该方法的现有技术通信系统,其中有时许多额外的高分辨率位 用于提高信道的错误校正性能。
在所有这些现有技术系统中,额外的可靠性信息是除了仅仅存储
15位自身固有的信息之外的信息。如果ECC可以仅基于存储位自身固 有的信息,则这种ECC可以简化。例如,可以实现基于额外可靠性 信息的ECC,而不需要以比读取存储在单元中的位所需的更高分辨 率读取MBC闪速存储器的单元。

发明内容
本发明的范围包括基于仅存储数据固有的额外可靠性信息读取存 储在MBC存储器中的数据的三种方法,具有错误校正。在第一方法 中,额外可靠性信息是读取位的可靠性的显式先验估计。在第二方法 中,额外信息是读取位的可靠性的隐式先验估计。在第三方法中,读 取位的至少一些的可靠性从读取位的值推断。
本发明的ECC可以是系统或非系统的。在系统ECC中,错误 校正获得原始数据位,对它们附加一些奇偶位,并且存储原始数据位 和奇偶位。因此,原始数据位由编码过程保存并且可以在存储位中识 别;随后,当读取存储位时,数据位和奇偶位都被读取,并且奇偶位 能够校正读取的数据位中的错误。在非系统ECC中,不保存且不存 储原始数据位。代替地,编码过程将原始数据位转换成更大的一组位 (在这里称作"受保护位,,),这是实际存储的位。当读取存储位时, 从存储位中再生原始位。在具体的原始数据位与具体的存储位之间不 存在直接对应。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位, 然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各 自的多个存储位存储在单元的每个中,该方法包括步骤(a)读取
单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据 与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根 据读取位中至少两位出错的各自概率的先验估计而实现,其中至少一 个估计不同于至少另 一个估计。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相 对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器 的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该
计算机可读代码包括(a)用于读取单元,从而对于每个单元,获 得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对 应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据 读取位中至少两位出错的各自概率的先验估计而实现,其中至少一个 估计不同于至少另 一 个估计。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个受保护 位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保 护位存储在单元的每个中,该方法包括步骤(a)读取单元,从而 对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取 的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位 出错的各自概率的先验估计而实现,其中至少一个估计不同于至少另 一个估计。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多 个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相 对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储 数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代 码包括(a)用于读取单元,从而对于每个单元,获得各自的多个 读取位的程序代码;以及(b)用于从读取的受保护位中恢复数据位 的程序代码,其中恢复根据读取的受保护位中至少两位出错的各自概 率的先验估计而实现,其中至少一个估计不同于至少另一个估计。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位, 然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各 自的多个存储位存储在单元的每个中,该方法包括步骤(a)读取
17单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据 与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根 据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的 至少一个方面,该至少一个方面包括选自读取位的各自有效性和读取 位的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多 个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相 对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器 的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该 计算机可读代码包括(a)用于读取单元,从而对于每个单元,获 得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对 应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据 读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的至 少一个方面,该至少一个方面包括选自读取位的各自有效性和读取位 的各自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个受保护 位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保 护位存储在单元的每个中,该方法包括步骤(a)读取单元,从而 对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取 的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位 出错的各自概率而实现,该概率仅基于读取的受保护位的至少一个方 面,该至少一个方面包括选自读取的受保护位的各自有效性和读取的 受保护位的各自位页的方面,其中至少一个概率不同于至少另一个概 率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多 个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储 数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代
码包括(a)用于读取单元,从而对于每个单元,获得各自的多个 读取位的程序代码;以及(b)用于从读取的受保护位中恢复数据位 的程序代码,其中恢复根据读取的受保护位中至少两位出错的各自概 率而实现,该概率仅基于读取的受保护位的至少一个方面,该至少一 个方面包括选自读取的受保护位的各自有效性和读取的受保护位的各 自位页的方面,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个奇偶位, 然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现,各 自的多个存储位存储在单元的每个中,该方法包括步骤(a)读取 单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据 与奇偶位相对应的读取位校正与数据位相对应的读取位,其中校正根 据读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的 各个值,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多 个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相 对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器 的单元中来存储数据位,各自的多个存储位存储在单元的每个中,该 计算机可读代码包括(a)用于读取单元,从而对于每个单元,获 得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对 应的读取位校正与数据位相对应的读取位的程序代码,其中校正根据 读取位中至少两位出错的各自概率而实现,该概率仅基于读取位的各 个值,其中至少一个概率不同于至少另一个概率。
根据本发明,提供一种读取存储在包括多个多位单元的存储器中 的多个数据位的方法,存储通过计算与数据位相对应的多个受保护 位,然后将受保护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元的每个中,该方法包括步骤(a)读取单元,从而 对于每个单元,获得各自的多个读取的受保护位;以及(b)从读取 的受保护位中恢复数据位,其中恢复根据读取的受保护位中至少两位 出错的各自概率而实现,该概率仅基于读取的受保护位的各个值,其 中至少一个概率不同于至少另一个概率。
根据本发明,提供一种计算机可读存储介质,具有包含在计算机 可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多 个多位单元并且其中存储多个数据位的存储器,通过计算与数据位相 对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储 数据位,各自的多个受保护位存储在单元的每个中,该计算机可读代 码包括(a)用于读取单元,从而对于每个单元,获得各自的多个 读取的受保护位的程序代码;以及(b)用于从读取的受保护位中恢 复数据位的程序代码,其中恢复根据读取的受保护位中至少两位出错 的各自概率而实现,该概率仅基于读取的受保护位的各个值,其中至
少一个概率不同于至少另一个概率。
本发明的方法的第一实施方案针对校正存储在使用系统ECC的 MBC存储器中的数据。本发明的方法的第二实施方案针对校正存储 在使用非系统ECC的MBC存储器中的数据。在两种方法的两种实 施方案中,第一步骤是读取存储位,从而对于相关位存储于其中的每 个单元,获得各自的多个"读取,,位。因为读取单元时的错误,单元的 "读取,,位可能与单元中存储的位不完全相同。准确地说,ECC打算 解决的正是读取位与存储位之间的可能差异。
在本发明的第一方法的第一实施方案中,根据与奇偶位相对应的 读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多 位出错的概率的先验估计,并且不是所有估计都是相等的。
在本发明的第一方法的第二实施方案中,从读取的受保护位中恢 复数据位。该恢复考虑读取位中两位或多位出错的概率的先验估计, 并且不是所有估计都是相等的。
在本发明的第二方法的第一实施方案中,根据与奇偶位相对应的读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多 位出错的概率,该概率仅基于读取位的至少一个方面,并且不是所有 概率都是相等的。用来估计这些概率的读取位的方面必须包括读取位 的有效性或读取位的位页或者二者。
在本发明的第二方法的第二实施方案中,从读取的受保护位中恢 复数据位。该恢复考虑读取的受保护位中两位或多位出错的概率,该 概率仅基于读取的受保护位的至少一个方面,并且不是所有概率都是 相等的。用来估计这些概率的读取的受保护位的方面必须包括读取位 的有效性或读取位的位页或者二者。
在本发明的第三方法的第一实施方案中,根据与奇偶位相对应的 读取位校正与数据位相对应的读取位。该校正考虑读取位中两位或多
位出错的概率,该概率仅基于读取位的值,并且不是所有概率都是相 等的。
在本发明的第三方法的第二实施方案中,从读取的受保护位中恢 复数据位。该恢复考虑读取的受保护位中两位或多位出错的概率,该 概率仅基于读取的受保护位的值,并且不是所有概率都是相等的。
优选地,在本发明的第一方法中,先验估计的至少两个用于单元 中共同一个的读取位,或者读取的受保护位。作为选择,先验估计的
至少两个用于不同单元的读取位,或者读取的受保护位。
优选地,在本发明的第一方法中,先验概率取决于相关位的有效
性。存储在MBC单元中的位的"有效性"是存储在MBC单元中的二 进制数中位的位置。例如,存储四位的MBC单元存储0-15之间的 二进制数,其具有四位最低有效位、次低有效位、次高有效位和最 高有效位。作为选择,先验概率取决于相关位的位页。在MBC闪速 存储器中,具有共同有效性的所有位分组在相同的逻辑位页中是一般 惯例,在该情况下,先验概率的这两个依赖性是等价的。
本发明的范围也包括使用本发明的方法中的 一种恢复存储在存储 器中的数据的MBC存储器的控制器,包括本发明的MBC存储器和 控制器的存储设备,以及具有嵌入于其上的用于根据本发明的方法中的一种管理存储器的计算机可读代码的计算机可读存储介质。


在这里参考附随附图仅作为实例描述本发明,其中 图1A-1D显示一位闪存单元、两位闪存单元、三位闪存单元和 四位闪速单元中的阈值电压分布;
图2是本发明的闪速存储设备的高级框图;以及
图3是本发明的数据存储系统的高级部分框图。
具体实施例方式
本发明是一种每个单元存储多位的存储器的错误校正方法,其利 用存储在每个单元中的各个位出错的概率的知识。
可以参考附图和附随描述更好地理解根据本发明的错误校正的原 理和操作。
本发明的第一两种方法是利用从各个位存储于设备单元内的位置 导出的可靠性信息(例如,在每个单元的位属于不同页的MBC闪速 存储设备的情况下,各个位存储在哪些位页中),校正从MBC闪速
存储设备中读取的数据中的错误的改进方法。本发明的第三方法是利 用从共享共同单元的不同位之间的相关性导出的可靠性信息,校正从
MBC闪速存储设备中读取的数据中的错误的改进方法。提出的方法 可适用于在校正过程中使用的ECC代码字包含位于共享单元中的多 个位的情况。这通常是Litsyn等人的方法用于校正从MBC闪存设备 中读取的数据中的错误时的情况。
在本发明的第一两种方法中,利用每个位的物理存储位置已知, 因此它的期望出错率也已知的事实(注意术语"位的出错率"和"位的 可靠率"在这里用作相同特征的两个相对方面,因此可互换地用于指 相同的特性)。因此,ECC模块通过为每个位指定错误的初始先验 概率,用作ECC计算和决定的初始点来利用该信息。本发明并不局 限于任何具体的ECC方案或算法——存在许多现有领域中已知的可 以利用这种初始开始点并根据成功概率、收敛时间或成功的其他因素 而提供更好的错误校正的ECC算法。特别地,本发明的第一两种方法打算与"软,,解码算法一起使用。
这种算法在例如George C. Clark, Jr.和J. Bibb Cain,炎字遞^T^ 错误戎jE薦竭(Springer, 1981) , S. Lin和D.J. Costello,错谅控 差^Mk^V^ (Prentice-Hall, 1983)以及Branka Vucetic和 JinhongY薩,r^"七码..肩理和^(Kluwer, 2000)中描述。 虽然这些参考文献针对软ECC算法在通信中的使用,如何将这些算 法适用于每个单元存储多位的存储器中的错误校正对于本领域技术人 员是显然的。
这些方法不同于额外信息通过以更高分辨率读取单元而获得的上 述现有技术方法。在本发明中,不同的可靠性值在读取数据之前确定 并且不依赖于读取数据的实际值。这不是上面现有技术方法的情况。 换句话说,本发明能够将错误的先验概率用于各个位位置,即使这种 概率不能从实际数据中获得,而现有技术系统依赖于从实际数据中提 取这种概率的能力。本发明利用可以例如由闪存的供应商提供的概 率。这种先验概率的一个优点在于本发明比现有技术方法实现起来更 简单。不像那些方法,本发明不需要提取和操作存储位上面的附加 位。
例如,考虑在Lasser'634和在Murin中讨论的每个单元存储四 位的位次序{15, 14, 12, 13, 9, 8, 10, 11, 3, 2, 0, 4, 6, 7, 5, 1)。(这是图1D中说明的位次序)。如在那些专利申请中显示 的,最低位是最高位出错概率的六倍,次低位是最高位出错概率的五 倍,并且次高位是最高位出错概率的三倍。在用来存储数据的四个逻 辑页的一組15,000个每个单元存储四位的MBC单元中,假定的单元 出错率是、0oo中1个,每个单元的最低位具有6/15,000=2/5,000的 先验错误概率,每个单元的次低位具有5/15,000=1/3,000的先验错误 概率,每个单元的次高位具有3/15,000=1/5,000的先验错误概率,以 及每个单元的最高位具有1/15,000的先验错误概率。
在该实例中,位的先验错误概率仅是位的有效性的函数。相同位 页中的所有位具有相同的先验错误概率。 一般地说,位页的一些位具
23有与相同位页的其他位不同的先验错误概率是可能的。
在本发明的第三方法中,利用除了从MBC单元的物理页位中位 的位置获得的可靠性信息之外,存在可以由ECC模块利用的另一个 信息源的事实。与ECC代码字的每个位来自不同单元,其中不同位 的错误之间没有相关性的情况相反,在代码字中存在来自相同单元的 多个位的情况下(如Litsyn等人的方法中的情况),我们可以从一 位的值中推导相同单元中其他位的值。因为不是闪存单元中所有错误 状态转换同等地可能,推导可以从一位进行到另一位。
例如考虑每个单元存储四位的位次序{15, 14, 12, 13, 9, 8, 10, 11, 3, 2, 0, 4, 6, 7, 5, 1}。假设单元的解码从最高有效位 到最低有效位顺序地执行。假设单元的三个最高有效位已经读作 "100"并且已经由ECC算法校正为"101,,。这可以仅移动一个阈值电 压范围而发生的唯一方法是如果单元写作10 (二进制1010)并且读 作8 ( 二进制1000 )。备选方案是
单元写作10 (二进制1010)并且读作9 (二进制1001),两个 阈值电压范围的移动。
单元写作11 (二进制1011)并且读作8 (二进制1000),两个 阈值电压范围的移动。
单元写作11 (二进制1011)并且读作9 (二进制1001),三个 阈值电压范围的移动。
这暗示着最低有效位为"0,,的奇数比最低有效位为"1"的奇数高得多。
该方法也不同于额外信息通过以更高分辨率读取单元而获得的上 述现有技术方法。在本发明中,输入到ECC模块中的唯一位是数据 位和它们相应的奇偶位。没有其他数据相关的输入(与预先确定的非 数据相关的输入对比)提供到ECC模块,用于执行它的校正过程。 这不是上面现有技术方法的情况,其中较高精度的额外位从单元中产 生并且作为辅助输入提供到ECC模块。
本发明的范围也包括代码字中的仅一些位而不是全部位被指定不同于平均值的初始概率的更一般情况。它也包括共享单元的位之间的 相关效应仅对于一些单元而不是全部单元考虑的更一般情况。
至此,已经在"系统的,,错误校正方案的背景环境中呈现本发明。 如上所述,在系统的错误校正编码中,原始数据位由编码过程保存并 且可以在存储位中识别。换句话说,错误校正机制获得原始数据位, 对它们增加一些奇偶位,并且存储数据位和奇偶位。随后,当读取存 储位时,数据位和奇偶位都被读取,并且奇偶位能够校正读取的数据 位中的错误,从而产生原始数据位。
但是,本发明同等地适用于非系统的错误校正代码。如上所迷, 在这种代码中,不保存且不存储原始数据位。代替地,编码过程将原 始数据位转换成更大的一组位,这是实际存储的位。当读取存储的保 护数据位时,再生原始数据位,即使在保护数据位中存在错误。非系
i接对应。原始数据位"分散,,:J个存::中,并且仅;些多;存储 位的组合告知原始位的值。
本发明的范围包括如上所述从MBC闪速存储设备中读取数据位 的方法。本发明的范围也包括根据上面的方法从MBC闪速存储单元 的阵列中读取的闪速存储控制器。本发明的范围也包括将MBC闪速
存储单元的阵列与根据上面的方法从阵列读取的闪速存储控制器结合 的闪速存储设备。
再次参考附图,图2是连接到主机30、本发明的闪速存储i殳备 20的高级框图。图2从Ban的美国专利5,404,485号的图1改编,在 此以提及方式引用该专利,如同将其完全在这里陈述。闪速存储设备 20包括闪速存储器24、控制器22和随机存取存储器(RAM) 26。 对应于US 5,404,485的"闪存控制14"的控制器22在RAM 26的帮助 下管理闪速存储器24,如US 5,404,485中描述的。闪速存储器24编 码数据,闪速存储器24的每个单元两位或多位,如US 6,522,580或 US 6,643,188中描述的。当读取数据时,控制器22如上所述应用错 误校正。图3是本发明的备选数据存储系统50的高级部分框图。数据存 储系统50包括处理器52和四个存储设备RAM 54,引导ROM 56,海量存储设备(硬盘)58和闪速存储设备40,所有都经由公共 总线60通信。像闪速存储设备20 —样,闪速存储设备40包括闪速 存储器42。不像闪速存储设备20,闪速存储设备40缺少自己的控制 器和RAM。代替地,处理器52通过以例如Kfar Saba, Israel的M 系统闪速磁盘先锋公司的TrueFFSTM驱动程序的方式执行实现US 5,404,485的方法的软件驱动程序来模拟控制器22。闪速存储器42编 码数据,闪速存储器42的每个单元两位或多位,如US 6,522,580或 US 6,643,188中描述的。当读取数据时,处理器52如上所述应用错 误校正。闪速存储设备40也包括总线接口 44以使得处理器52能够 与闪速存储器42通信。
处理器52执行以管理闪速存储器42的软件驱动程序的代码存储 在海量存储设备58中并且传送到RAM 54中用于执行。因此,海量 存储设备58是根据本发明的原理用于管理闪速存储器42的计算机可 读代码嵌入于其中的计算机可读代码存储介质的实例。
虽然已经关于有限数目的实施方案描述了本发明,应当理解可以 进行本发明的许多变化、修改和其他应用。
权利要求
1.一种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b)根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正至少部分地根据所述读取位中至少两位出错的各自概率的先验估计而实现,其中至少一个所述估计不同于至少另一个所述估计。
2. 根据权利要求1的方法,其中所述先验估计中的至少两个用 于单元中共同一个的所述读取位。
3. 根据权利要求1的方法,其中所述先验估计中的至少两个用 于不同单元的所述读取位。
4. 根据权利要求1的方法,其中所述先验概率取决于所述读取 位的各自有效性。
5. 根据权利要求1的方法,其中所述先验概率取决于所述读取 位的各自位页。
6. —种包括多个多位单元的存储器的控制器,其使用根据权利 要求1的方法读取存储在存储器中的数据。
7. —种存储设备,包括(a) 包括多个多位单元的存储器;以及(b) 根据权利要求6用于控制所述存储器的控制器。
8. —种计算机可读存储介质,具有包含在计算机可读存储介质 上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并 且其中存储多个数据位的存储器,所述数据位是通过计算与数据位相 对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中来存储的,各自的多个存储位存储在单元的每个中,该计算机可读代码包括(a)用于读取单元,从而对于每个单元,获得各自的多个读取 位的程序代码;以及(b )用于根据与奇偶位相对应的所述读取位校正与数据位相对 应的所述读取位的程序代码,其中所述校正至少部分地根据所述读取 位中至少两位出错的各自概率的先验估计而实现,其中至少一个所述 估计不同于至少另 一个所述估计。
9. 一种读取存储在包括多个多位单元的存储器中的多个数据位 的方法,存储通过计算与数据位相对应的多个受保护位,然后将受保 护位存储在存储器的单元中而实现,各自的多个受保护位存储在单元 的每个中,该方法包括步骤(a) 读取单元,从而对于每个单元,获得各自的多个读取的受 保护位;以及(b) 从读取的受保护位中恢复数据位,其中所述恢复至少部分 地根据所述读取的受保护位中至少两位出错的各自概率的先验估计而 实现,其中至少一个所述估计不同于至少另一个所述估计。
10. 根据权利要求9的方法,其中所述先验估计中的至少两个 用于单元中共同一个的所述读取的受保护位。
11. 根据权利要求9的方法,其中所述先验估计中的至少两个 用于不同单元的所述读取的受保护位。
12. 根据权利要求9的方法,其中所述先验概率取决于所述读 取的受保护位的各自有效性。
13. 根据权利要求9的方法,其中所述先验概率取决于所述读 取的受保护位的各自位页。
14. 一种包括多个多位单元的存储器的控制器,其使用根据权 利要求9的方法读取存储在存储器中的数据。
15. —种存储设备,包括(a)包括多个多位单元的存储器;以及(b)根据权利要求14用于控制所述存储器的控制器。
16. —种计算机可读存储介质,具有包含在计算机可读存储介 质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元 并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位 相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存 储的,各自的多个受保护位存储在单元的每个中,该计算机可读代码 包括(a) 用于读取单元,从而对于每个单元,获得各自的多个读取 位的程序代码;以及(b) 用于从读取的受保护位中恢复数据位的程序代码,其中所 述恢复至少部分地根据所述读取的受保护位中至少两位出错的各自概 率的先验估计而实现,其中至少一个所述估计不同于至少另 一个所述 估计。
17. —种读取存储在包括多个多位单元的存储器中的多个数振 位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后 将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自 的多个存储位存储在单元的每个中,该方法包括步骤U)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b )根据与奇偶位相对应的所述读取位校正与数据位相对应的 所述读取位,其中所述校正根据所述读取位中至少两位出错的各自概 率而实现,该概率仅基于所述读取位的至少一个方面,所述至少一个 方面包括选自所述读取位的各自有效性和所述读取位的各自位页的方 面,其中至少一个所述概率不同于至少另一个所述概率。
18. —种包括多个多位单元的存储器的控制器,其使用根据权 利要求17的方法读取存储在存储器中的数据。
19. 一种存储设备,包括(a) 包括多个多位单元的存储器;以及(b) 才艮据权利要求18用于控制所述存储器的控制器。
20. —种计算机可读存储介质,具有包含在计算机可读存储介 质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元 并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位 相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储 器的单元中来存储的,各自的多个存储位存储在单元的每个中,该计 算机可读代码包括(a)用于读取单元,从而对于每个单元,获得各自的多个读取 位的程序代码;以及(b )用于根据与奇偶位相对应的所述读取位校正与数据位相对 应的所述读取位的程序代码,其中所述校正根据所述读取位中至少两 位出错的各自概率而实现,该概率仅基于所述读取位的至少一个方 面,所述至少一个方面包括选自所述读取位的各自有效性和所述读取 位的各自位页的方面,其中至少一个所述概率不同于至少另一个所述 概率。
21. —种读取存储在包括多个多位单元的存储器中的多个数据 位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然 后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位 存储在单元的每个中,该方法包括步骤(a) 读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及(b) 从读取的受保护位中恢复数据位,其中所述恢复根据所述 读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于所 述读取的受保护位的至少一个方面,所述至少一个方面包括选自所述 读取的受保护位的各自有效性和所述读取的受保护位的各自位页的方 面,其中至少一个所述概率不同于至少另一个所述概率。
22. —种包括多个多位单元的存储器的控制器,其使用根据权 利要求21的方法读取存储在存储器中的数据。
23. —种存储设备,包括(a)包括多个多位单元的存储器;以及(b )根据权利要求22用于控制所述存储器的控制器。
24. —种计算机可读存储介质,具有包含在计算机可读存储介 质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元 并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位 相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存 储的,各自的多个受保护位存储在单元的每个中,该计算机可读代码 包括(a) 用于读取单元,从而对于每个单元,获得各自的多个读取 的受保护位的程序代码;以及(b) 用于从所述读取的受保护位中恢复数据位的程序代码,其 中所述恢复根据所述读取的受保护位中至少两位出错的各自概率而实 现,该概率仅基于所述读取的受保护位的至少一个方面,所述至少一 个方面包括选自所述读取的受保护位的各自有效性和所述读取的受保 护位的各自位页的方面,其中至少一个所述概率不同于至少另一个所 述概率。
25. —种读取存储在包括多个多位单元的存储器中的多个数据 位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后 将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自 的多个存储位存储在单元的每个中,该方法包括步骤(a) 读取单元,从而对于每个单元,获得各自的多个读取位;以及(b) 根据与奇偶位相对应的所述读取位校正与数据位相对应的 所述读取位,其中所述校正根据所述读取位中至少两位出错的各自概 率而实现,该概率仅基于所述读取位的各个值,其中至少一个所述概 率不同于至少另一个所述概率。
26, 一种包括多个多位单元的存储器的控制器,其使用根据权 利要求25的方法读取存储在存储器中的数据。
27. —种存储设备,包括 (a)包括多个多位单元的存储器;以及(b)根据权利要求26用于控制所述存储器的控制器。
28. —种计算机可读存储介质,具有包含在计算机可读存储介 质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元 并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位 相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储 器的单元中来存储的,各自的多个存储位存储在单元的每个中,该计 算机可读代码包括(a)用于读取单元,从而对于每个单元,获得各自的多个读取 位的程序代码;以及(b )用于根据与奇偶位相对应的所述读取位校正与数据位相对 应的所述读取位的程序代码,其中所述校正根据所述读取位中至少两 位出错的各自概率而实现,该概率仅基于所述读取位的各个值,其中 至少一个所述概率不同于至少另一个所述概率。
29. —种读取存储在包括多个多位单元的存储器中的多个数据 位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然 后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位 存储在单元的每个中,该方法包括步骤(a) 读取单元,从而对于每个单元,获得各自的多个读取的受 保护位;以及(b) 从读取的受保护位中恢复数据位,其中所述恢复根据所述 读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于所 述读取的受保护位的各个值,其中至少一个所述概率不同于至少另一 个所述概率。
30. —种包括多个多位单元的存储器的控制器,其使用根据权 利要求29的方法读取存储在存储器中的数据。
31. —种存储设备,包括(a)包括多个多位单元的存储器;以及(b )根据权利要求30用于控制所述存储器的控制器
32. —种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存储的,各自的多个受保护位存储在单元的每个中,该计算机可读代码包括(a) 用于读取单元,从而对于每个单元,获得各自的多个读取的受保护位的程序代码;以及(b) 用于从所述读取的受保护位中恢复数据位的程序代码,其中所述恢复根据所述读取的受保护位中至少两位出错的各自概率而实现,该概率仅基于所述读取的受保护位的各个值,其中至少一个所述概率不同于至少另一个所述概率。
33. —种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中而实现的,各自的多个存储位存储在单元的每个中,该方法包括步骤(a)读取单元,从而对于每个单元,获得各自的多个读取位;以及(b )根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位,其中所述校正根据所述读取位中至少两位出错的各自概率而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取位的各个值,其中至少一个所述概率不同于至少另一个所述概率。
34. —种包括多个多位单元的存储器的控制器,其使用根据权利要求33的方法读取存储在存储器中的数据。
35. —种存储设备,包括(a)包括多个多位单元的存储器;以及(b )根据权利要求34用于控制所述存储器的控制器。
36. —种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位相对应的多个奇偶位,然后将数据位和奇偶位作为存储位存储在存储器的单元中来存储的,各自的多个存储位存储在单元的每个中,该计算机可读代码包括U)用于读取单元,从而对于每个单元,获得各自的多个读取位的程序代码;以及(b)用于根据与奇偶位相对应的所述读取位校正与数据位相对应的所述读取位的程序代码,其中所述校正根据所述读取位中至少两位出错的各自概率而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取位的各个值,其中至少一个所述概率不同于至少另 一个所述概率。
37. —种读取存储在包括多个多位单元的存储器中的多个数据位的方法,所述存储是通过计算与数据位相对应的多个受保护位,然后将受保护位存储在存储器的单元中而实现的,各自的多个受保护位存储在单元的每个中,该方法包括步骤(a) 读取单元,从而对于每个单元,获得各自的多个读取的受保护位;以及(b) 从读取的受保护位中恢复数据位,其中所述恢复根据所述读取的受保护位中至少两位出错的各自概率而实现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述信息局限于所述读取的受保护位的各个值,其中至少一个所述概率不同于至少另一个所述概率。
38. —种包括多个多位单元的存储器的控制器,其使用根据权利要求37的方法读取存储在存储器中的数据。
39. —种存储设备,包括(a)包括多个多位单元的存储器;以及(b )根据权利要求38用于控制所述存储器的控制器
40. —种计算机可读存储介质,具有包含在计算机可读存储介质上的计算机可读代码,计算机可读代码用于管理包括多个多位单元并且其中存储多个数据位的存储器,所述数据位是通过计算与数据位 相对应的多个受保护位,然后将受保护位存储在存储器的单元中来存 储的,各自的多个受保护位存储在单元的每个中,该计算机可读代码包括(a) 用于读取单元,从而对于每个单元,获得各自的多个读取 的受保护位的程序代码;以及(b) 用于从所述读取的受保护位中恢复数据位的程序代码,其 中所述恢复根据所述读取的受保护位中至少两位出错的各自概率而实 现,该概率至少部分地基于作为所述读取的结果而获得的信息,所述 信息局限于所述读取的受保护位的各个值,其中至少一个所迷概率不 同于至少另一个所述概率。
全文摘要
根据读取位的一位或多位出错的估计概率,根据系统或非系统ECC,读取并校正(系统ECC)或恢复(非系统ECC)存储在每个单元存储多位的存储器的单元中的数据。在本发明的一种方法中,估计是先验的。在本发明的另一种方法中,估计仅基于包括读取位的有效性或位页的读取位的方面。在本发明的第三方法中,估计仅基于读取位的值。并不是所有的估计都是相等的。
文档编号G11C29/00GK101529525SQ200680044045
公开日2009年9月9日 申请日期2006年10月15日 优先权日2005年10月17日
发明者E·沙龙, I·奥罗德, M·拉瑟, M·穆里恩, S·利特辛 申请人:特拉维夫大学拉莫特有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1