存储器阵列中的差错校正的制作方法

文档序号:6479085阅读:177来源:国知局
专利名称:存储器阵列中的差错校正的制作方法
技术领域
本发明涉及用于校正在存储器中的差错的差错校正码(ECC、或纠错码)。
背景技术
非易失性存储器器件、尤其是固态存储器器件趋向于随着时间而退化(wear out)。这种退化的一个主要影响是在存储的数据中生成差错。例如取决于所使用的技术和 可以实现的制造工艺容限(tolerance),不同的器件类型具有不同的典型的和工业上接受 的可靠性。在具有标准大小(例如256字节)的可校正的一组存储器单元中,一些快闪控 制器被设计为能够校正高至第一(“弱”)比特差错率(例如高至每512字节6比特)的差 错,而其他控制器要求高于该第一比特差错率的第二比特差错率(例如高至每512字节8 比特)以获得更强的保护。本领域中已经做出了一些差错应对方案以使用弱的差错应对方案来提供强的比 特差错率保护。一种解决方法是将一组存储器单元分成子组(可校正的组),并将现有的较 弱的差错校正方案单独应用于每个子组。这样,通过较弱的比特差错率分别保护每个子组。 但是,这样的差错校正方案需要对每一个子组应用差错校正操作,由此降低了整体性能。另一种常用方法是设计能够校正高至期望的比特差错率的差错的新的、更强的差 错校正方案。新设计的系统的缺点是高成本影响和设计这样的系统花费的时间。尽管每种现有技术差错应对方案都提供了对于有缺陷的存储器位置的某种保护, 但是它们没有一个是完美的。一些方案需要过多的资源和开发时间;一些降低了系统的整 体读取性能;其他的提供了不充分的保护。

发明内容
本发明可以被实现为具有用于校正在存储器阵列中的差错的差错校正算法的计 算机系统及其方法。存储器单元与相应的ECC比特相关地被存储在存储器阵列中。如下生 成ECC比特一个集合的ECC比特包括与第一组存储器单元对应的信息(该第一组具有大 于或等于例如256字节的标准尺寸的第一尺寸);第二集合的ECC比特包括与第二组存储 器单元对应的信息(该第二组被包括在第一组中),第三集合的ECC比特包括与第三组存储 器单元对应的信息(该第三组被包括在第二组中),等等。如此生成ECC比特提供了对存储 器阵列中的差错的校正,同时实现最佳的整体性能。在前述方法的一个实施例中,一种用于校正在存储器阵列中的差错的方法包括步 骤提供能够校正在可校正的一组存储器单元中的高至第一比特差错率的差错的差错校正 算法。所述可校正的组具有标准尺寸。该方法还包括步骤生成具有与第一组存储器单元 对应的信息的第一集合的ECC比特;生成具有与第二组存储器单元对应的信息的第二集合 的ECC比特;以及应用所述差错校正算法以基于所述第一集合的ECC比特来校正所述第一 组中的差错。所述第一组具有大于所述标准尺寸的第一尺寸。所述第二组具有小于所述第 一尺寸的第二尺寸并且是所述第一组的一部分。如果基于所述第一集合的ECC比特的所述差错校正算法失败,则该方法还包括应用所述差错校正算法以基于所述第二集合的ECC比 特来校正在所述第二组中的差错。所述方法还可以包括基于所述第一集合的ECC比特来校 正所述第一组。该方法还可以包括基于所述第二集合的ECC比特来校正所述第二组。该方法还可以包括生成具有与另一组存储器单元对应的信息的另一集合的ECC 比特。可以在生成所述差错校正算法之前生成该另一集合的ECC比特。所述另一组具有小 于所述第二尺寸的第三尺寸并且是所述第二组的一部分。如果基于所述第二集合的ECC比 特的所述差错校正算法失败,则所述方法可以包括应用所述差错校正算法以基于所述另一 集合的ECC比特来校正在所述另一组中的差错。该方法可以包括基于所述另一集合的ECC 比特来校正所述另一组。可以应用该方法以由此校正在所述第一组中的高至第二比特差错 率的差错,其中该第二比特差错率大于该第一比特差错率。在前述方法的另一实施例中,一种用于校正在存储器阵列中的差错的计算机系统 包括差错校正算法,能够校正在可校正的一组存储器单元中的高至第一比特差错率的差 错。所述可校正的组具有标准尺寸。存储器可操作以存储具有与第一组存储器单元对应的 信息的第一集合的ECC比特,以及存储具有与第二组存储器单元对应的信息的第二集合的 ECC比特。所述第一组具有大于所述标准尺寸的第一尺寸,并且所述第二组具有小于所述第 一尺寸的第二尺寸并且是所述第一组的一部分。所述差错校正算法可操作以如果基于所述 第一集合的ECC比特在所述第一组中应用的所述差错校正算法失败,则基于所述第二集合 的ECC比特来校正所述第二组中的差错。该存储器可以是闪存。该差错校正算法还可以可操作以基于所述第一集合的ECC 比特来校正所述第一组。该差错校正算法还可以可操作以基于所述第二集合的ECC比特来 校正所述第二组。该存储器可以可操作以存储具有与另一组存储器单元对应的信息的另一集合的 ECC比特。所述另一组具有小于所述第二尺寸的第三尺寸并且是所述第二组的一部分。所 述差错校正算法可以进一步可操作以如果基于所述ECC比特的第二组在所述第二组中应 用的所述差错校正算法失败,则所述差错校正算法将基于所述另一集合的ECC比特而被应 用于所述另一组中。所述差错校正算法还可以可操作以基于所述另一集合的ECC比特来校 正所述另一组。可以应用所述差错校正算法以由此校正在所述第一组中的高至第二比特差 错率的差错,其中所述第二比特差错率大于所述第一比特差错率。所描述的实施例的另外的特征、优点和可能的变化将从以下附图和描述中变得明显。


为了关于本发明的实施例而更好地理解本发明,参考附图,在附图中相同的数字 表示相应的部分或元件,并且在附图中图IA是用于校正在存储器阵列中的差错的计算机系统的实施例的框图;图IB是图IA的存储器阵列的框图,其中实现差错校正算法以对于每个数据单位 生成三个集合的ECC比特;图2是根据示例实施例的、向存储器阵列写数据的流程图;以及图3是根据示例实施例的、从存储器阵列读数据的流程图。
具体实施例方式通过参考示例和优选实施例的本详细描述,将更好地理解由后面的权利要求限定 的本发明。此描述不意图限制权利要求的范围而是提供这些实施例的例子。因此以下讨论 呈现了示例实施例,其包括用于校正在存储器阵列中的差错的计算机系统及其方法。计算机系统的一个实施例采用差错校正算法(algorithm)来校正在存储器阵列 中的差错。该存储器阵列可以包括两组或更多组存储器单元,其中最小组的存储器单元被 包括在较小组的存储器单元中,较小组的存储器单元被包括在较大组中,等等。每组存储器 单元与对应于其组的宽度和长度的一个集合的ECC比特相关地被存储在存储器阵列中。一 个集合的ECC比特包括与第一组存储器单元对应的信息;另一集合的ECC比特包括与第二 组存储器单元对应的信息,等等。生成这样的ECC比特提供了对在存储器阵列中的差错的 校正,同时实现了最佳的整体性能。该差错校正算法能够校正在具有标准大小(例如256字节)的可校正的一组存储 器单元中的高至第一比特差错率(例如高至每512字节6比特)的差错。应用该差错校正 算法以首先使用较大组的存储器单元的相应ECC比特来校正该较大组的存储器单元,并且 在该校正动作失败时,应用该差错校正算法来校正较小组的存储器单元。在对该较小组失 败时,可以进一步应用该差错校正算法来校正被包括在前者组中的更小组的存储器单元。 可以基于相应的ECC比特,每次对更小组的存储器单元递归地(recursively)应用该校正 动作,直到校正成功。在成功时,校正了在该处理中相关联的所有组的存储器单元的数据。图IA是具有用于校正在存储器阵列14中的差错的差错校正算法12的计算机系 统10的示例实施例。存储器阵列14可以是闪存。差错校正算法12能够校正在具有标准 大小(例如256字节)的可校正的一组存储器单元(例如MCl)中的高至第一比特差错率 (例如高至每512字节6比特)的差错。提供控制器18用于向存储器阵列14写数据以及 从存储器阵列14读数据。存储器阵列14包括多个数据单位(unit) 16。注意,数据单位可以涉及任意数量 的字节,包括但不限于256字节、512字节等。在此例子中,实现差错校正算法12以对于每 个数据单位16生成两个集合的ECC比特,如下第一集合的ECC比特,ECC1-2,具有与第一 组存储器单元MCl和MC2对应的信息;以及第二集合的ECC比特ECC1,具有与第二组存储 器单元MCl对应的信息(或者,第二集合的ECC比特可以具有与一组存储器单元MC2对应 的信息)。第一组存储器单元MCl和MC2具有大于标准尺寸的第一尺寸(例如512字节)。 第二组存储器单元MCl具有小于第一尺寸的第二尺寸(例如256字节)。第二组存储器单 元MCl是第一组存储器单元MCl和MC2的一部分。第一集合的ECC比特ECC1-2和第二集 合ECCl与相应的数据单位16相关地被存储在存储器阵列14中。差错校正算法12可操作以基于第一集合的ECC比特ECC1-2来校正在第一组MCl 和MC2中的差错。如果该处理失败(例如在第一组MCl和MC2中存在多于6个差错),则该 差错校正算法12可操作以基于第二集合的ECC比特ECCl来校正第二组MCl中的差错。换 句话说,如果基于第一集合的ECC比特ECC1-2在第一组MCl和MC2中应用的差错校正算法 失败,则差错校正算法12可操作以基于第二集合的ECC比特ECCl来校正第二组MCl中的 差错。这样,该差错校正算法12(最初被实现以校正高至6比特差错率)可以被用于校正第一组MCl和MC2中的高至大于第一比特差错率的第二比特差错率、例如高至每512字节 8比特的差错。应该认识到,各种实施方式都可以使用宽范围的存储器配置,并且图示的具体的 实施方式不应被认为是限制为仅该实施方式。例如,这些集合的ECC比特可以与存储器单 元相邻(contiguous),其布局可以不同于用数据单位,且/或可以提供各种类型的差错校 正算法。可以进一步应用差错校正算法以生成两个集合的ECC比特、三个集合的ECC比特 (见图1B)、或更多;并且可以将存储器阵列实现为存储两个集合的ECC比特、三个集合的 ECC比特或更多。差错校正算法12还可以可操作以基于第一集合的ECC比特ECC1-2来校正第一组 MCl和MC2。可替换地或者另外地,差错校正算法12还可操作以基于第二集合的ECC比特 ECCl来校正第二组MCl。存储器阵列14可以可操作以存储具有与另一组存储器单元对应 的信息的另一集合的ECC比特,其中该另一组存储器单元具有小于第二尺寸的第三尺寸并 且是第二组MC 1的一部分。在此情况下,如果基于第二集合的ECC比特ECCl被应用于第 二组MCl中的差错校正算法12失败,则差错校正算法12进一步可操作以基于另外的ECC 比特而被应用于该另一组存储器单元中(见图1B)。差错校正算法12还可操作以基于另一 集合的ECC比特来校正另一组存储器单元。图IB是图IA的存储器阵列14的示例实施例,其中差错校正算法12被实现以对 于每个数据单位16生成三个集合的ECC比特。在此例子中,差错校正算法12被实现以对 于每个数据单位16生成三个集合的ECC比特,如下第一集合的ECC比特,ECC' 1_3,具有 与第一组存储器单元MC’ 1、MC,2和MC,3对应的信息;第二集合的ECC比特,ECC’ 1_2,具 有与第二组存储器单元MC’ 1和MC’ 2对应的信息;以及第三集合的ECC比特ECC’ 1,具有 与第三组存储器单元MC’ 1对应的信息。第一组存储器单元MC’ UMC' 2和MC’ 3具有大于 标准尺寸的第一尺寸(例如640字节)。第二组存储器单元MC’ 1和MC’2具有小于第一尺 寸的第二尺寸。第二组存储器单元MC,1和MC,2是第一组MC,1、MC,2和MC,3的一部分。 第三组存储器单元MC’ 1具有小于第二尺寸的第三尺寸。第三组存储器单元MC’ 1是第二 组MC,1和MC,2的一部分。第一集合的ECC比特ECC,1-3、第二集合的ECC比特ECC,1-2 和第三集合的ECC比特ECC’ 1与相应的数据单位16相关地被存储在存储器阵列14中。差错校正算法12可操作以基于第一集合的ECC比特ECC’ 1-3来校正第一组MC’ 1、 MC,2和MC,3中的差错。如果该处理失败(例如在第一组MC,1、MC,2和MC,3中存在多 于6个差错),则差错校正算法12可操作以基于第二集合的ECC比特ECC’ 1-2来校正在第 二组MC’ 1和MC’ 2中的差错。只有在该第二处理失败时(例如在第二组MC’ 1和MC’ 2中 存在多于6个差错),该差错校正算法12才可操作以基于第三集合的ECC比特ECC’ 1来校 正在第三组MC’ 1中的差错。图2是根据示例实施例的、用于向具有差错校正算法12的计算机系统10的存储 器阵列写数据的方法的流程图30。在32,将数据写到该存储器阵列。该差错校正算法能够 校正在具有标准尺寸(例如256字节)的可校正的一组存储器单元中的高至第一比特差错 率的差错。在此例子中,实现差错校正算法12以对于每个数据单位16生成三个集合的ECC 比特。在34,对于被写入的数据来生成第一集合的ECC比特ECC’1_3。该第一集合的ECC比特具有与第一组存储器单元MC’ 1、MC’ 2和MC’ 3对应的信息。该第一组具有大于标准 尺寸的第一尺寸(例如512字节)。在36,对于被写入的数据来生成第二集合的ECC比特ECC’1_2。该第二集合的ECC 比特具有与第二组存储器单元MC’ 1和MC’2对应的信息。该第二组具有小于第一尺寸的 第二尺寸,并且是第一组存储器单元的一部分。在38,对于被写入的数据来生成另一集合的ECC比特(在此例子中是第三集合 ECC' 1)。该另一集合的ECC比特具有与另一组的存储器单元(在此例子中是第三组MC’ 1) 对应的信息。该第三组存储器单元具有小于第二尺寸的第三尺寸,并且是第二组存储器单 元的一部分。在39,这些集合的ECC比特全部被写到存储器阵列。在某些实施例和/或某些情况下,第一集合的ECC比特、第二集合的ECC比特和第 三集合的ECC比特的生成被实施为单个步骤。在其他实施例中,可能有生成第一集合的ECC 比特、第二集合的ECC比特和第三集合的ECC比特的至少两个单独的步骤。图3是根据示例实施例的、用于从存储器阵列读数据的方法的流程图50。在52, 从该存储器阵列读出数据及其相应的ECC比特,并且应用(图2的)差错校正算法以基于 第一集合的ECC比特来校正第一组存储器单元中的差错。如果基于第一集合的ECC比特的差错校正算法成功(54),则基于第一集合的ECC 比特ECC’ 1-3校正第一组存储器单元MC’ 1、MC’ 2和MC’ 3 ;并产生(assert)成功信号(步 骤 56)。如果基于第一集合的ECC比特的差错校正算法失败(54),则基于第二集合的ECC 比特ECC’ 1-2来校正第二组存储器单元MC’ 1和MC’ 2 (58)。如果基于第二集合的ECC比特 的差错校正算法成功(60);则基于第二集合的ECC比特ECC’ 1-2校正了第二组存储器单元 MC,1和MC,2 ;然后基于第一集合的ECC比特ECC,1-3校正第一组存储器单元MC,1、MC,2 和MC’3。然后产生成功信号(步骤56)。如果基于第二集合的ECC比特的差错校正算法失 败(60),则基于另一集合的ECC比特ECC’ 1校正该另一组存储器单元MC’ 1 (62)。在此步 骤(62),基于该另一集合的ECC比特ECC’ 1来校正该另一组存储器单元MC’ 1 ;然后基于第 二集合的ECC比特ECC’ 1-2来校正第二组存储器单元MC’ 1和MC’ 2 ;并且然后基于第一集 合的ECC比特ECC,1-3校正第一组存储器单元MC,1、MC,2和MC,3。然后产生成功信号 (步骤56)。应该理解,尽管在此利用被应用以生成两个或三个ECC比特的差错校正算法以及 被实现以存储这些集合的ECC比特的存储器阵列来配置计算机系统,但是该计算机系统和 方法可进一步被应用以生成多于三个集合的ECC比特并存储多于三个集合的ECC比特。此 外,可以采用提供与海量存储器的连接端口的任何其他类型的集线器。已经描述了系统和方法的各种实施例,要理解,该描述不是意味限制,因为对于本 领域技术人员而言现在将暗示着进一步的修改,并且意要覆盖落入所附权利要求的范围内 的这种修改。
8
权利要求
一种用于校正存储器阵列中的差错的方法,该方法包括(a)提供用于校正在可校正的一组存储器单元中的高至第一比特差错率的差错的差错校正算法,所述可校正的组具有标准尺寸;(b)生成具有与第一组存储器单元对应的信息的第一集合的ECC比特,所述第一组具有大于所述标准尺寸的第一尺寸;(c)生成具有与第二组存储器单元对应的信息的第二集合的ECC比特,所述第二组具有小于所述第一尺寸的第二尺寸并且是所述第一组的一部分;(d)应用所述差错校正算法以基于所述第一集合的ECC比特来校正在所述第一组中的差错;(e)确定在步骤(d)中的基于所述第一集合的ECC比特的所述差错校正算法是否失败;以及(f)如果所述差错校正算法失败,则应用所述差错校正算法以基于所述第二集合的ECC比特来校正在所述第二组中的差错。
2.如权利要求1所述的方法,还包括(f)基于所述第一集合的ECC比特来校正所述第一组。
3.如权利要求1所述的方法,还包括(f)基于所述第二集合的ECC比特来校正所述第二组。
4.如权利要求1所述的方法,还包括(f)在步骤(d)中所述生成所述差错校正算法之前,生成具有与另一组存储器单元对 应的信息的另一集合的ECC比特,所述另一组具有小于所述第二尺寸的第三尺寸并且是所 述第二组的一部分。
5.如权利要求4所述的方法,还包括(g)如果在步骤(e)中基于所述第二集合的ECC比特的所述差错校正算法失败,则应用 所述差错校正算法以基于所述另一集合的ECC比特来校正在所述另一组中的差错。
6.如权利要求5所述的方法,还包括(h)基于所述另一集合的ECC比特来校正所述另一组。
7.如权利要求1所述的方法,其中应用步骤(e)以由此校正在所述第一组中的高至第 二比特差错率的差错,所述第二比特差错率大于所述第一比特差错率。
8.一种用于校正在存储器阵列中的差错的计算机系统,所述计算机系统包括 差错校正算法,能够校正在可校正的一组存储器单元中的高至第一比特差错率的差错,所述可校正的组具有标准尺寸;以及存储器,可操作以存储具有与第一组存储器单元对应的信息的第一集合的ECC比特, 以及存储具有与第二组存储器单元对应的信息的第二集合的ECC比特,所述第一组具有大 于所述标准尺寸的第一尺寸,并且所述第二组具有小于所述第一尺寸的第二尺寸并且是所 述第一组的一部分;所述差错校正算法可操作以如果基于所述第一集合的ECC比特在所述第一组中应用 的所述差错校正算法失败,则基于所述第二集合的ECC比特来校正所述第二组中的差错。
9.如权利要求8所述的计算机系统,其中所述存储器是闪存。
10.如权利要求8所述的计算机系统,其中所述差错校正算法还可操作以基于所述第一集合的ECC比特来校正所述第一组。
11.如权利要求8所述的计算机系统,其中所述差错校正算法还可操作以基于所述第 二集合的ECC比特来校正所述第二组。
12.如权利要求8所述的计算机系统,其中所述存储器可操作以存储具有与另一组存 储器单元对应的信息的另一集合的ECC比特,所述另一组具有小于所述第二尺寸的第三尺 寸并且是所述第二组的一部分。
13.如权利要求12所述的计算机系统,其中所述差错校正算法还可操作以如果基于所 述第二集合的ECC比特在所述第二组中应用的所述差错校正算法失败,则所述差错校正算 法基于所述另一集合的ECC比特被应用于所述另一组中。
14.如权利要求13所述的计算机系统,其中所述差错校正算法还可操作以基于所述另 一集合的ECC比特校正所述另一组。
15.如权利要求8所述的计算机系统,其中应用所述差错校正算法以由此校正在所述 第一组中的高至第二比特差错率的差错,所述第二比特差错率大于所述第一比特差错率。
全文摘要
一种用于校正在存储器阵列中的差错的计算机系统,包括差错校正算法和存储器。所述差错校正算法能够校正在具有标准尺寸的可校正的一组存储器单元中的高至第一比特差错率的差错。该存储器可操作以存储具有与第一组存储器单元对应的信息的第一集合的ECC比特,以及存储具有与第二组存储器单元对应的信息的第二集合的ECC比特,所述第一组存储器单元具有大于所述标准尺寸的第一尺寸,并且所述第二组存储器单元具有小于所述第一尺寸的第二尺寸并且是所述第一组的一部分。所述差错校正算法可操作以如果基于所述第一集合的ECC比特在校正所述第一组时失败,则基于所述第二集合的ECC比特来校正在所述第二组中的差错。
文档编号G06F11/10GK101889267SQ200880119512
公开日2010年11月17日 申请日期2008年10月7日 优先权日2007年12月6日
发明者伊兰·伊雷兹 申请人:桑迪士克以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1