为两次或多于两次传递中经由总线的传递构建嵌套纠错码方案的系统和方法

文档序号:7650824阅读:179来源:国知局
专利名称:为两次或多于两次传递中经由总线的传递构建嵌套纠错码方案的系统和方法
技术领域
本发明涉及跨越计算机、通信或存储设备总线传递数据,尤其是涉及利用嵌套的纠错码(ECC)方案保护数据。
背景技术
在过去,计算机系统在并行结构中使用具有许多位或位通道的若干宽并行总线十分普遍。这些总线会在一次传递中从源向接收者递送数据字。因此,例如某常用总线会在每个传递周期将64个数据位递送到其目的地。这样的总线既可用于芯片上、模块上,也可用于单板上。在过去,通信系统使用窄的单线总线也十分普遍,每条总线只有一条位通道。这些总线从单一源向单一(或多个)接收者递送其数据字会经过许多传递周期,即一位一位向下发送到通道,直到递送整个有效负载即数据字。
为了确保数据安全到达接收者,在总线上可以使用某种错误检验或纠正。在高可靠性计算机中,典型情况下利用ECC保护并行总线。在高可靠性通信链接中,往往采用循环冗余码校验(CRC)。一般来说,ECC通常用于对错误数据位提供“实时”纠正,而CRC通常用于对错误数据位提供“实时”检测。在ECC方案中,由ECC逻辑操作数据,以调整接收者收到的数据,使得“合格”数据将通向下游。在CRC方案中,当CRC表示收到了错误数据时,要求数据源重新发送该数据字。在这些系统中,当误码的性质为固定不变时(如硬错误),ECC往往更有效,而当误码的性质为瞬态时(如软错误),CRC往往更有效。
在将来的电子系统中,计算机和通信系统之间的传统分界线将日益模糊。数据往往经过几个传递周期沿着并行、高速总线传递。这种方案提供了非常宽的带宽,但是,这也使得处理硬错误和软错误都成为必要。硬错误发生在物理介质经历故障比如驱动器烧坏时。软错误发生在噪声、畸变和抖动沿着单条位通道翻转了某位时。对硬错误和软错误都有恢复能力的容错高速并行总线会受到欢迎。
工业界正朝着跨越高速并行总线的多条位通道而使用CRC的方向前进,无论何时呈现误码都会发出重发的信号。这些方案具有强有力的检错功能,对软错误效果显著,但是它们不能纠正误码,这就使其对硬错误不太有用。在需要硬错误保护的系统中,已经提议了针对CRC的扩展,在总线中包括备用位通道,使得在遇到硬错误时,该总线将重新配置自己,以估计可能良好的位通道代替出故障的位通道。对硬错误和软错误都提供保护的另一种选择是符号保护总线ECC结构,其中的符号沿着若干位通道定义,而不是传统的跨字结构。在2004年10月29日提交的与本发明共同转让的美国专利公开号US2006010775 A1中已经介绍过,标题为“System,Method andStorage Medium for Providing Fault Detection and Correction in aMemory Subsystem”。
最后,虽然先前公开的基本结构提供了优于CRC/备用方法的优点,但是创建ECC并使之满足系统的需求并非总是显著的即非凡的工作。正在变得越来越频繁的一种这样的需求是以下情况为了保护总线而使用第二种不同的嵌套ECC方案跨总线发送一个ECC字。例如,通过单纠错(SEC)和双检错(DED)码,往往缩短为“SEC/DED”,可以最好地提供存储器中存储的数据。不过,如果这种ECC字在两次传递中跨越高速并行总线发送,就需要不同的代码,以应对位通道故障。所以,对总线传递来说,单2位符号纠错和双2位符号检错(S2EC/D2ED)码是适合的,其中若干符号沿着若干位通道对齐。然而,构造这种嵌套码既不显著也不非凡,尤其对于2位符号的情况。所希望的是具有产生这种嵌套的2位符号代码组的方案,它们保存和/或再使用原始SEC/DED码的部分。

发明内容
若干实施例包括构造嵌套纠错码(ECC)方案的方法。本方法包括接收包括原始检验位的汉明距离为n的代码。定义符号纠正码H矩阵框架包括对原始检验位以及与符号纠正码相关联的附加检验位指定位位置。指定位位置,使得这些附加检验位处于第一次传递之后的传递中经由总线传递的位位置中。通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且汉明距离为n的代码保持为符号纠正码H矩阵的子集,使用由该结构表明的位位置来创建符号纠正码H矩阵。
若干实施例也包括构造嵌套ECC方案的计算机程序产品。计算机程序产品包括处理电路可读的存储介质,存储着处理电路执行时便于实现方法的指令。本方法包括接收包括原始检验位的汉明距离为n的代码。定义符号纠正码H矩阵框架包括对原始检验位以及与符号纠正码相关联的附加检验位指定位位置。指定位位置,使得这些附加检验位处于第一次传递之后的传递中经由总线传递的位位置中。通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且汉明距离为n的代码保持为符号纠正码H矩阵的子集,使用由该框架表明的位位置来创建符号纠正码H矩阵。
若干进一步的实施例包括具有嵌套ECC方案的计算机、通信或存储器系统,所述方案用于两次或多于两次传递中的经由总线进行的传递。本系统包括第一代码以提供纠错能力。所述第一代码包括若干检验位。本系统还包括第二不同代码以提供若干不同纠错能力。所述第二代码包括若干附加检验位,并且被格式化为在两次或多次传递中经由总线进行传递。此外,所述第二代码具有第一代码作为第二代码子集,并且第二代码的检验位在第一次传递之后的传递中经由总线传递。
若干进一步的实施例包括构造嵌套ECC方案的方法,所述方案用于在两次或多次传递中经由总线进行的传递。本方法包括接收汉明距离为n、包括检验位的代码。将汉明距离为n代码中的检验位重新排序,以匹配关于所传递的符号纠正码的检验位的顺序的系统要求。通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且重新排序后的汉明距离为n的代码保持为符号纠正码H矩阵的子集,而且保持关于所传递的检验位的顺序的系统要求,来创建符号纠正码H矩阵。
回顾了以下附图和详细说明之后,根据若干实施例的其他系统、方法和/或计算机程序产品对于本领域的普通技术人员将或变得显而易见。所有这些其他的系统、方法和/或计算机程序产品意在包括在本说明之内,在本发明的范围之内并且受到附带权利要求书的保护。


现在参考附图,其中在几幅图中相同的单元用相同的附图标记图1是示范的标准并行总线,以图示格式显示了总线位通道;图2是高速总线的表达,其中减少了位通道的数目,但是提高了数据传递的速度,以提供等效的或更快的总线带宽;图3显示了基本的单纠错和双检错的汉明距离码的n矩阵;图4A显示了若干示范实施例可以利用的在H矩阵中存储的嵌套代码结构;图4B显示了若干示范实施例可以利用的在H矩阵中存储的嵌套代码结构,在检验位符号列的第二位置中带有符号纠正码检验位;图5描绘了若干示范实施例可以用以创建嵌套的两位符号总线纠错码的处理流程;图6描绘了若干示范实施例可以用以向符号列添加若干扩展位的处理流程;图7描绘了若干示范实施例可以用以对嵌套的两位符号总线纠错码补种的处理流程。
具体实施例方式
若干示范实施例提供的若干方法和装置为m传递级的总线产生总线纠错码(ECC),其中m大于l(即数据字经过两个或多个总线周期传递,而且在总线ECC代码字中加入不同ECC代码字的某些部分或全部)。若干示范实施例产生了嵌套的2位符号代码组,它们保存和/或修改部分的原始SEC/DED码,并且为新产生的若干S2EC/D2ED检验位在总线传递时提供计时改进。
若干示范实施例包括构造嵌套纠错码(ECC)方案的方法。本方法包括接收包括原始检验位的汉明距离为n的代码。定义符号纠正码H矩阵框架包括对原始检验位以及与符号纠正码相关联的附加检验位指定位位置。指定位位置,使得这些附加检验位处于第一次传递之后的传递中经由总线传递的位位置中,通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且汉明距离为n的代码保持为符号纠正码H矩阵的子集,使用由该框架表明的位位置来创建符号纠正码H矩阵。与符号纠正码相关联的数据可以称为符号纠正码或符号纠正码代码字。
如业内所共知,术语“汉明距离”是指ECC能够检测和/或纠正误码的有力程度。d=3的代码能够纠正一切单误码。d=4的代码能够纠正一切单误码且同时检测一切双误码。d=5的代码能够纠正一切双误码。d=6的代码能够纠正一切双误码且同时检测一切三误码。本概念进一步理解为可应用于面向符号的代码组,其中符号是码流中预定义的位组。因此距离为4的符号代码能够纠正一切单符号误码且同时检测一切双符号误码,等等。一般来说,对距离为4的代码,术语单符号纠正(SSC)和双符号检测(DSD)将被组合并且被指定为SSC/DSD,同样,对距离为4的二进制代码,术语单纠错(SEC)和双检错(DED)将被组合并且该代码因此被指定为SEC/DED码。为S2EC/D2ED码所产生的附加检验位经过第二总线传递周期传递,这就允许逻辑电路有更长的时间来产生这些新检验位。
在示范实施例中,在SEC/DED ECC字在总线接口处呈现以便传递时,动态(on the fly)产生新的总线ECC检验位。完整SEC/DEDECC字(包括其若干现有检验位)能够作为S2EC/D2ED总线代码的子集跨越总线发送。因此,需要执行的逻辑仅仅是产生新检验位(本文也称“附加检验位”)的逻辑。在第一总线传递上发送一半检验位和在第二总线传递上发送一半,允许对第二传递上发送的检验位结束进行计时有额外时间,然而第一传递上所发送的检验位将阻塞完整ECC字的发送。示范实施例通过重新排列检验位解决了这个问题,使得新的S2EC/D2ED检验位(即与符号纠正码相关联的附加检验位)全部在第二总线传递上发送。
图1描述了示范基本并行总线的结构。该总线包括十二条线,其中每条线都传输数据、控制信息和/或ECC检验位,取决于数据传递格式和协议。此外,这些线之一可以保留以用作其他线之一出故障情况下的备用线。图1中描述的示范总线是单向总线,起源于印刷线路板(PWB)并与另一块PWB进行通信。图2描述了示范高速并行总线的结构,其中有六条线,每条线都传输数据、控制信息和/或ECC检验位,取决于数据传递格式和协议。此外,这些线之一可以保留为其他线之一出故障情况下的备用线。与图1描述的总线相比,图2的总线具有的位通道数目减少了(从而在图1中单传递中所完成的任务现在要在两次或多次传递中完成),典型情况下提高了数据传递速度以提供等效或更快的总线带宽。图1和图2分别显示了十二条线和六条线,意在作为示范实施例可以采用的总线实例。任何线数的总线(包括单向的和双向的总线)都可以由示范实施例采用。
图3显示了基本SEC/DED码H矩阵。最简单的单检错(SED)代码组之一是奇偶校验码。根据“异或”(XOR),奇偶校验位是全部数据位的XOR或者“同或”(XNOR)(取决于方案是要求“偶”校验还是要求“奇”校验)。汉明码是比奇偶校验码更复杂和更有力的单纠错(SEC)码。例如,如果在计算机或通信系统中的一个点上受到奇偶校验保护的数据字然后需要进一步编码以提供SEC/DED的保护,存在着一种简单的代码结构,允许将奇偶校验码作为扩展汉明码内的嵌套码重新使用。在示范实施例中,该结构是采用现有的汉明码并向其添加总体奇偶校验检验位以提供SEC/DED扩展的汉明码,它使奇偶校验码嵌套其中并且使奇偶校验位重新使用为汉明码的检验位之一。由于ECC(如SEC/DED码组)往往按照H矩阵(若干1和0的数组,表示哪些数据位必须一起进行XOR以编码检验位)描述,所以下面介绍在SEC/DED码内嵌套的奇偶校验码的简单实例。
4个数据位的奇偶校验码P1=D1*D2*D3*D4,其中*符号表明布尔异或函数,是1 1 1 1的退化H矩阵。4个数据位的汉明码可以表示为1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1这意味着检验位1为(C1)=D1*D3*D4,检验位2为(C2)=D1*D2*D4,检验位3为(C3)=D2*D3*D4。
定义为距离为三代码(即d=3)的这种SEC汉明码通过向H矩阵添加一位检验位可以扩展为SEC/DED扩展的汉明码(d=4),如下所示1 0 1 1 1 0 0 01 1 0 1 0 1 0 00 1 1 1 0 0 1 01 1 1 1 0 0 0 1这意味着C1、C2和C3保持不变,添加了新的检验位,检验位4(C4),C4=D1*D2*D3*D4。
现在容易看出C4正好与P1相同。这意味着如果数据存储时带着奇偶校验,所希望的是为其经由总线传递提供SEC/DED保护,例如,通过使用所示结构,奇偶校验码可以重新使用或嵌套在扩展的汉明码之内。不过,一旦超出奇偶校验和汉明代码组,就不存在将保证代码嵌套的已知数学结构。
普通的计算机高速缓存存储器是包含64位数据字(在存储器中由八位检验位进行保护)的存储单元,由此形成了72位的ECC字。从存储器取出ECC字之后,可以将其通过高速、2次传递的数据总线传递到另一单元。做出使用两次传递总线的决策是基于总体系统架构和定时,虽然这绝不是唯一的选择却似乎是一种流行的选择。要是把72位的ECC字恰好分为两部分,通过36位高速总线发送,并且在另一方重建,该系统将仍然能够纠正全部单个位的误码和检测全部双位误码。不过,要是总线上的一个驱动程序失效,或者总线上的一个位通道(如连线)受到破坏,那么系统将承受不可纠正的错误。为了避免这种情况,可以将72位的ECC字嵌套在76位的ECC字之内,这只是向该总线添加两条线,并且允许进行两位符号的纠正。
由于本文介绍的示范实施例的目标之一是节省逻辑电路和逻辑延时,所以示范实施例以扩展最少的汉明码开始。通过在SEC/DED扩展汉明码H矩阵中仅仅选择奇加权的列就能够构造这种码。这种码称为Hsiao码,为了使其最小,首先选择1加权的列用于检验位,然后是3加权的列,直到它们被用尽,然后是5加权的列,然后是7加权的列。通过只使用奇加权的列和通过以较小的权开始,示范实施例可实现获得最小权的SEC/DED码。不仅如此,重要的是平衡H矩阵中的行权重,因为这也影响逻辑设计和计时,因此可以对最后一对较高阶列权重的列使用一些试错法,使得H矩阵中的每行都得到平衡。因而图3中显示了平衡、最小的SEC/DED H矩阵,其中列权重和行权重分别高亮显示在矩阵的下面和右面,数据列号(0-63)横跨顶部。检验位(本文也称为“原始检验位”)在64-71列中。检验位和数据位都包括在SEC/DED和S2EC/D2ED码组中。
应当指出,对于SEC/DED码组来说,若干行能够与其他行进行换位和/或XOR,若干列也能够进行交换,而代码效率没有任何损失。图3以逻辑术语(以H矩阵的格式)描述了SEC/DED码。设计者可以采用任何实际硬件和/或软件配置,只要它获得的结果与图3中的描述相同。
在示范实施例中,构造了两位符号纠正码(本文指的实例是S2EC/D2ED H矩阵),它使用图3中所描述的矩阵(本文称为具有嵌套SEC/DED码H矩阵)作为其嵌套分量。根据标准的两位符号码结构,保护64个数据位总共需要十二个检验位。因此,H矩阵的每列都需要增加四个更多的项,以使得有所描述的十二个检验位,当该数据字在总共三十八个位通道上跨越两周期的高速总线传递时,对其提供S2EC/D2ED保护。
图4A显示了可以由示范实施例实现的S2EC/D2ED H矩阵的结构。在示范实施例中,S2EC/D2ED H矩阵框架看起来像图4A中所描述的矩阵,其中的“X”表示要确定的新H矩阵位(本文称为扩展位404),“1”和“0”表示已经增加的附加检验位406(其中最后的四列72-75表示该附加检验位),粗体“1”、“0”和“X”表明第一符号列402。
图4B显示了在检验位符号列第二位置中具有附加检验位的H矩阵中存储的嵌套码的示范结构(也可以采用其他结构)。图4B中描述的H矩阵可以被示范实施例所采用,它是通过重新排序图4A中检验位的位置(64-75)而导出的,产生了图4B中所描述的重排的若干检验位408。进行重排是为了确保四个附加位在第二总线周期上全部传递。因为数据位在高速总线的接收端要进行重建,所以它们可以以所希望的任何次序进行传递(只要沿位通道保持着两位符号的保护)。不过,为了计时原因,必须新产生的检验位允许在第二周期上传递可能更好。在示范实施例中,通过重新排序S2EC/D2ED H矩阵实现了这个目的,以使得检验位符号列移进与在第一传递上发送的最初六个检验位(它们是SEC/DED码的最初六个检验位)的配对中。此外,在第二传递上发送其次的六个原始检验位(它们是SEC/DED码的最后两个原始检验位连同四个新产生的S2EC/D2ED码的附加检验位)。
因此,在示范实施例中,S2EC/D2ED H矩阵的原始框架看起来像图4A中的H矩阵,修改后的S2EC/D2ED H矩阵看起来像图4B中的H矩阵。图4B中描述的修改后H矩阵框架通过重新排序检验位的位置(与图4A中所描述的相比)提供了对新产生的附加检验位在第二传递之上所进行的传递。注意,仍然要重新使用来自SEC/DED码的八个检验位,但是新代码是从修改后的检验位序列中产生的,而不是从原始序列中产生的。在创建符号纠正码H矩阵之前进行检验位的重新排序。这就确保了所产生的附加检验位将处在第一传递后的传递(如第二传递)中被传递的位置。以这种方式,将在传递附加检验位之前传递某些或全部原始检验位。因此,新的H矩阵将不会以所谓的“系统”格式,其中所有的检验位都由H矩阵右端或左端的单位矩阵所表示。然而,如果遵循本发明中定义的序列,该代码将保持其数学上的汉明距离。因此,新的H矩阵将不会以所谓的“系统”格式,其中所有的检验位都由H矩阵右端或左端的单位矩阵所表示。然而,如果遵循本发明中定义的序列,该代码将保持其数学上的汉明距离。
图5至图7描述了示范实施例可以采用的使用框架中所指明检验位位置,创建S2EC/D2ED H矩阵(示范符号纠正码)的处理流程。图5描述了总体处理流程,可以用于充填比如图4B中所描述的S2EC/D2ED H矩阵,以便构建S2EC/D2ED码。图5描述的过程以符号列为基础向S2EC/D2ED H矩阵迭代地增加若干行。在方框502,将嵌套SEC/DED码H矩阵位分组为若干两位的符号列(00,01,02,03,04,05等),然后重新排序,使得新创建的附加检验位在检验位符号列的第二位置中。在方框504,当前符号列被设置为符号列00——第一符号列402。在方框506,将当前符号列增加到S2EC/D2ED矩阵中,在方框508,确定当前符号列的若干扩展位的数值并增加到S2EC/D2ED H矩阵。在示范实施例中,当前符号列的若干扩展位的数值由比如以下参考图6所介绍的过程确定。
在方框510判断是否还剩余有更多的符号列要处理。如果已经处理了全部的符号列,那么S2EC/D2ED H矩阵已经完成了,在方框512退出本过程。如本文所介绍,如果在S2EC/D2ED H矩阵中已经创建了纠正全部单个两位误码和检测全部双重两位误码的真正S2EC/D2ED码,那么在方框512退出本过程。如果还剩余有更多的符号列要处理,正如在方框510所判定,那么执行方框514。在方框514,当前符号列被设置为下一个符号列,并且在方框506继续对每个符号列的迭代处理。
图6描述了将当前符号列的扩展位增加到S2EC/D2ED H矩阵的示范过程,正如图5中方框508所执行的。图6描述的过程在方框602开始,此时在S2EC/D2ED H矩阵中当前符号列的符号列扩展被初始化为0。在方框604,使用本领域公知的任何方法对于d=4测试S2EC/D2ED H矩阵,比如Mac Williams恒等式或利用穷举的试错法。如果汉明距离“d”的数值是4或大于4,那么一般来说就保证了SEC/DED码。如果在方框606确定d=4,就执行方框608并在图5方框510处恢复处理。如果在图6的方框606确定“d”不等于4,那么在方框610继续处理。也可以对“d”的其他值进行测试,例如可以将“d”设置为5,以测试可以用于双纠错码的符号纠正码。
在方框610,当前符号列的符号列扩展递增为下一个二进制值。在方框612判断递增后的值是否越界(意味着已经尝试了全部可能的组合)。如果已经尝试了全部可能的组合,那么在方框614继续处理,其中调用本文参考图7介绍的过程,在S2EC/D2ED H矩阵中补种(re-seed)。如果尚未尝试全部可能的组合,那么在方框606继续处理,其中对于d=4测试S2EC/D2ED H矩阵。
图7描述了示范实施例可以实施的过程,在S2EC/D2ED H矩阵中补种。在示范实施例中,图7描述的处理由方框614调用,此时已经尝试了当前列的符号列扩展位的全部可能组合,并且“d”不等于4,则没有实现S2EC/D2ED码。所以,在方框702,当前符号列被设置为第一符号列,在方框704,以下一个更高的二进制符号列扩展重新初始化第一符号列(比如,如果先前以0-0开始,则移动到1-0)。在方框706,使用例如Mac Williams恒等式或穷举的试错法,对于d=4测试S2EC/D2ED H矩阵。如果在方框708确定d=4,那么就在方框710继续处理。在方框710继续图5中方框510的过程,以继续处理S2EC/D2ED H矩阵中的其余符号列,以第二符号列开始。
如果在方框708确定“d”不等于4,那么执行方框712,以判断对于第一符号列是否已经尝试了全部可能的扩展值。如果尚未尝试全部可能的扩展值,那么在方框704继续处理,以尝试下一个最高的二进制符号。如果在方框712确定已经尝试了全部可能的扩展值,就在方框714继续处理。在方框714向S2EC/D2ED H矩阵再增加两个检验位(即再多两行再多两列)。在增加了两个额外的检验位之后,在图5的步骤502开始重复整个过程。
本文介绍的若干实例涉及在两个总线周期中传递的H矩阵。在三个或更多周期中传递的H矩阵也在本发明的范围之内。
本文介绍的若干实例涉及两位误码。将这种情况扩展到三位或更多误码代码也在示范实施例的范围之内。本文介绍的相同迭代处理可以用于创建三位误码。
本文介绍的若干实例涉及具有八行和72列的SEC/DED H矩阵以及具有十二行和76列的S2EC/D2ED H矩阵。这些H矩阵仅仅是实例,因为H矩阵的尺寸将根据总线上的线数以及所执行的检错和纠正的类型而变化。
本文介绍的若干实例涉及S2EC/D2ED两位符号纠正码。对本领域的技术人员将显而易见,其他的符号纠正代码组,比如四位的S4EC/D4ED和八位的S8EC/D8ED也可以使用本文介绍的处理创建。
本文介绍的若干实例涉及的汉明距离为4。对本领域的技术人员将显而易见,使用本文介绍的处理也能够支持其他的汉明距离。例如,如果仅仅需要SEC码,那么能够将“d”设置为3。
本文介绍的若干实例涉及SEC/DED码。对本领域的技术人员将显而易见,若干示范实例也可以采用其他汉明距离为n的代码组。例如,汉明距离为n的代码组可以是双纠错和三检错代码。
本文介绍的若干实例涉及在第二总线传递中通过总线传递与符号纠正码相关联的附加检验位的系统要求。对本领域的技术人员将显而易见,若干示范实例也可以实现关于检验位布局的其他系统要求。
本发明的能力能够在软件、固件、硬件或其某种组合中实现。
本文描述的若干流程图仅仅是若干实例。对其中介绍的这些流程图或步骤(或操作)可以有多种变化而不脱离本发明的实质。例如,可以以不同的次序执行这些步骤,也可以增加、删除或修改若干步骤。所有这些变换都被视为本发明权利要求的部分。
尽管已经介绍了本发明的优选实施例,但是应当理解,本领域的技术人员现在和将来都可以进行以下权利要求书范围之内的改进和增强。这些权利要求应当被解释为对首先介绍的本发明的恰当保护。
若干示范实施例的技术效果和利益包括开发符号纠正代码组(如S2EC/D2ED码)的结构化装置,代码组中嵌套的汉明距离为n的代码组(如SEC/DED码)重用了汉明距离为n代码检验位的全部或部分,作为符号纠正码检验位部分。重用该逻辑和电路的能力可以显著地节省逻辑电路和延时。此外,允许在第二传递上发送新S2EC/D2ED检验位的能力可以极大地改进总线计时。
如上所述,实施本发明的实施例的形式可以是计算机实施的过程和实行这些过程的装置。实施本发明的实施例的形式也可以是计算机程序代码,包含的指令记录在有形介质中,比如软盘、CD-ROM、硬盘驱动器或任何其他计算机可读的存储介质,其特征在于,当计算机程序代码被加载进计算机并由计算机执行时,该计算机变为实践本发明的装置。本发明的实施形式也可以是计算机程序代码,例如无论存储在存储介质中、加载进计算机和/或由计算机执行,或者经过某种传输介质传递,比如经过电线或电缆,经过光纤或经过电磁辐射,其特征在于,当该计算机程序代码被加载进计算机并由计算机执行时,该计算机变为实践本发明的装置。在通用微处理器上实施时,该计算机程序代码段配置该微处理器以创建具体的逻辑电路。
尽管已经参考若干示范实施例介绍了本发明,但是本领域的技术人员应当理解,可以作出多种修改并对其若干单元可以进行等价的替换而不脱离本发明的范围。此外,对本发明的教导可以进行许多修改,以适应具体的情况或材料而不脱离本发明的实质范围。所以,这意味着本发明不限于所公开的作为执行本发明所期待的最好模式的具体实施例,而是本发明将包括落入附带权利要求书范围之内的所有实施例。不仅如此,术语第一、第二等的使用不表示任何次序或重要性,相反,使用术语第一、第二等是为了区分一个单元与另一个单元。
权利要求
1.一种构造嵌套纠错码(ECC)方案的方法,所述方案用于两次或多于两次传递中的经由总线进行的传递,所述方法包括接收包括原始检验位的汉明距离为n的代码;定义符号纠正码H矩阵框架,包括对所述原始检验位以及对与符号纠正码相关联的附加检验位指定位位置,使得所述附加检验位处于在第一传递之后的传递中经由总线传递的位位置中;以及通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且汉明距离为n的代码保持为符号纠正码H矩阵的子集,使用由所述框架表明的位位置创建符号纠正码H矩阵。
2.根据权利要求1的方法,进一步包括通过所述总线传递所述符号纠正码,所述原始检验位的全部或子集在所述第一传递上传递,所述附加检验位的全部在所述之后的传递上传递。
3.根据权利要求1的方法,其中,所述符号纠正码在两次传递中传递,第一传递之后的传递是第二传递。
4.根据权利要求1的方法,其中,所述汉明距离为n的代码是单纠错和双检错(SEC/DED)码。
5.根据权利要求1的方法,其中,所述符号纠正码是两位符号纠错码。
6根据权利要求1的方法,其中,所述符号纠正码是单两位符号纠错和双两位符号检错(S2EC/D2ED)码。
7根据权利要求1的方法,其中,所述符号纠正码是双两位符号检错码。
8根据权利要求1的方法,其中,所述汉明距离为n的代码被格式化为H矩阵。
9.根据权利要求8的方法,其中,所述汉明距离为n的代码H矩阵是所述符号纠正码H矩阵的子集。
10.根据权利要求8的方法,其中,所述创建包括向汉明距离为n的代码H矩阵增加附加的行和列。
11.根据权利要求1的方法,其中,所述创建包括使用MacWilliams恒等式验证所述符号纠正码H矩阵。
12.根据权利要求1的方法,其中,所述创建包括使用穷举的试错法验证所述符号纠正码H矩阵。
13.根据权利要求1的方法,其中,所述汉明距离为n的代码用于检测和纠正存储器错误。
14.根据权利要求1的方法,其中,所述符号纠正码用于检测和纠正总线错误。
15.一种具有嵌套ECC方案的计算机、通信或存储器系统,所述方案用于两次或多于两次传递中的经由总线进行的传递,所述系统包括第一代码,用于提供纠错能力,所述第一代码包括若干检验位;以及第二不同代码,用于提供不同的纠错能力,使用若干附加检验位,并且被格式化为在两次或多次传递中经由总线进行传递,所述第二代码具有作为所述第二代码的子集的第一代码,并且所述第二代码的检验位在第一次传递之后的传递中经由所述总线传送。
16.一种构造嵌套ECC方案的方法,所述方案用于两次或多于两次传递中的经由总线进行的传递,所述方法包括接收包括原始检验位的汉明距离为n的代码;将汉明距离为n的代码中的检验位重新排序,以匹配关于所传递的符号纠正码的检验位的顺序的系统要求;以及通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且重新排序后的汉明距离为n的代码保持为符号纠正码H矩阵的子集,而且保持关于所传递的检验位的顺序的系统要求,创建符号纠正码H矩阵。
全文摘要
公开了提供嵌套的两位符号总线纠错码方案的系统、方法和计算机程序产品,所述方案用于两次或多于两次传递中的经由总线进行的传递。所述方法包括构造嵌套纠错码(ECC)的方案。本方法包括接收包括原始检验位的汉明距离为n的代码。定义符号纠正码H矩阵框架包括对原始检验位以及与符号纠正码相关联的附加检验位指定位位置。指定位位置,使得这些附加检验位处于第一次传递之后的传递中经由总线传递的位位置中。通过按符号列反复地加入H矩阵位的行,以使得符号纠正码H矩阵描述符号纠正码,并且汉明距离为n的代码保持为符号纠正码H矩阵的子集,使用由该框架表明的位位置来创建符号纠正码H矩阵。
文档编号H04L29/02GK101083514SQ200710089828
公开日2007年12月5日 申请日期2007年4月5日 优先权日2006年6月1日
发明者蒂莫西·J·戴尔, 帕特里克·J.·米尼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1