专利名称:校正长猝发连续错误的方法与系统的制作方法
技术领域:
本发明涉及用于校正带有记录间间隔的计数器-键-数据(CKD)或定长块(FB)环境中从磁性介质上读出的数据中的多字节错误的一种方法与系统,尤其涉及能够应用两级错误校正码(ECC)校正子校正一般的错误并也能校正由于较大的信号干扰而偶而长猝发的连续错误的一种方法与系统。
应用指示器校验字节以及一次或多次的奇偶校验对读自磁性介质的数据中的一般错误进行校正是已知的。这些错误校正码(ECC)错误检测与校正功能是在写和读两种操作中进行的。这些实行错误校正的方法随着错误所在的位置,硬件所能提供的校正能力,系统错误恢复过程等的不同而改变。
IBM3380型号J与K磁盘文件应用一种两级ECC校正错误并能校正读自磁盘的每一个子块中的任何牵涉到两个连续字节(16位)的单猝发错误以及牵涉到一个块中的子块中的一个4个连续字节(32位)的任何错误。然而,存在这样的事例,干扰的持续时间及由此而产生的错误段可长达16个字节或更长。这比“一般”的错误猝发为长而且长得超出迄今为止所能得到的两级ECC校正能力的范围,除非建立一种非常浪费的设计。
虽然IBM3850(每量存储器能够校正从磁带数据读取中的长猝发错误,所用的该方法和装置却不能同时校正使用两级ECC的磁盘文件中的一般错误和长猝发错误。
这便需要有一种方法和系统能够同时校正从磁性介质(例如磁盘)中数据读取时的一般错误以及由于较大的信号干扰而产生16或更多个连续字节的长猝发错误。
朝着这一目标,本发明公开了一种方法和系统,不但能够校正被两级ECC所复盖的一般错误,而且也能校正以可变长度或固定长度块中的子块的形成记录数据的磁盘介质中的长达N个连续字节的长猝发错误。这些块中包括数据字节和校验字节并且包括在读取时生成ECC校正子的ECC。在每一块的后尾写入了由N个顺序奇偶校验字节组成的一个序列。然后,在读取时,生成ECC校正子以后,经过将从读得的数据字节和校验字节计算出的奇偶校验字节与所写入的奇偶校验字节相比较而生成奇偶校正子。响应一个长猝发错误,生成一个指示器指向一个块中可能受到该错误影响的N个连续字节中的首字节。然后,不依赖于该指示器所标识的N个字节的一些校正子可用来校正任何可校正的错误。随后,根据这样校正的错误调整奇偶校正子。经过校正后的奇偶校正子接着被用于校正由该指示器所指示的N个字节中可校正的错误。再根据由经过调整的奇偶校正子所校正的错误调整一切未曾使用过的ECC校正子;然后使用调整以后的ECC校正子去校正当时剩下的所有可校正错误。
图1展示了应用本发明的一种两级ECC格式;
图2展示了如何从一个子块中N个(假定为16)交错的数据字节与校验字节的连续有序集合中计算每一个奇偶字节以组成N奇偶群;以及图3展示了生成写入的奇偶字节和读出时的奇偶字节校正子的逻辑的一个实施例;以及图4A,4B,4C与4D示出了可以校正映像错误的各种错误状态。
展示了对美国专利4,525,838,4,703,485,以及4,706,250中所公开的那种两级ECC系统进行改进的实现本发明的方法。上述这些专利中公开了一种两级多字节错误校正系统,在操作时能校正一个数据块的每个子块中多达t1个错误和所述块中的t2个错误,其中t2>t1。
在美国专利4,706,250中所描述的并在图1中所示出的两级ECC系统中,数据是记录在可变(或固定)长度的块中,每一个块包括若干子块,除了最后一个子块的长度可能不同外,其余的子块最好具有相同的长度。每一个子块包括可变(或固定)数目的数据字节以及用于第一级错误校正的6个子块校验字节S。在块中最后一个子块的末尾是用于数据完整性校验的4个CRC(循环冗余码校验)字节C。接着是用于二级错误校正的二个块校验字节B。
根据本发明,在一个块与下一块之间的间隔(即块间节隔)中,在每一个块的末尾写入N个奇偶校验字节P所组成的一个序列。奇偶性字节P0紧随在该区域中的最后一个字节(即最后的块校验字节B1)之后。如图2中所示,这些奇偶校验字节P构成跨越N个连续有序群数据字节,校验字节和循环冗余码校验字节的交错奇偶校验;即,在每个有序群中的字节都是间隔N个字节的,而在计算这些奇偶字节所附着在其后的计数器/键/数据(CKD)区域中的位移量时该块中所有的字节都是计算在内的。数字N是予先选定的等于最长的预测猝发连续错误,使得任何单个的长猝发错误不会影响任何一个N奇偶群中多于一个的字节。如奇偶校验的惯例一样,所有的字节都进行了异或运算(XOR)。本说明书和权利要求中所用的“字节”一词定义为包含一个或多个位。
响应可能长达N个连续字节的一个错误猝发,生成一个指示器以指向一个块中可能受到该长猝发错误所影响的N个连续字节中的第一个字节。该指示器可能是一个事后指示。例如,如果可以断定一个长猝发错误不会开始在十个字节以前,则适当的最早字节指示应当是在断定该错误时所读的那一个字节以前的十个字节。
在图2中,为了示例,假定N为16,因此奇偶字节P0至P15写在该块中最后一个字节(块校验字节B1)紧接着的后面。从而,包括P0的奇偶群是子块X的字节D2,D18,S0和子块Y的字节D10与D16的异或运算结果;而包括P11的奇偶群则是子块X的字节D13,D29和子块Y的字节D5和D21以及C1的异或运算结果。
图3描绘了一个异或门(XOR)20,一个奇偶移位寄存器21以及多路复用器22和23,每一个都是一位宽。寄存器21具有N单元的长度(前面已指出,假定为16)。
假定移位寄存器21已以通常的方式初始时便清为零。为了写入一个磁性介质,将多路复用器22和23设置或把写入数据线W连接到XOR20并且经由数据输入线DI与多路复用器23将每块的所有字节BL选通到输出端,以写入直接访问存储器设备(未示出)的一个选定的磁道上。从而,输入数据包括所有数据字节和直到B1的随后的适当校验字节,如图1所示。在输入数据的末尾,多路复用器22和23被设置成将线φ连接到XOR20并且将奇偶移位寄存器21中的N个奇偶字节P。至P15经由线SR选通到输出端。
为从磁性介质上读取数据并计算其奇偶字节校正子,多路复用器22和23被设置成将读数据线R连接到数据输入线DI并且经由线DI将每块的所有字节BL选通到输出端。此后,多路复用器22和23便被设置为将N个奇偶字节P0至P15从线R上选通到OOR20,并且通过线X将XOR20的输出选通到输出端。
最后的输出便是块的BL个字节和附在后面的16个奇偶字节校正子。
在操作中,假定在读入时检测到了错误,但都不是长猝发错误。在这种情况下,错误校正及验证将按常规方式进行,如在引用的先有技术中所说明的使用子块校验,块校验和循环冗余码校验校正子。在子块级可校正多达t1个错误和检测t1+c个错误。此后,在块级在该块的任何一个子块中可以校正多达t2个错误。
如果存在的错误超过能够校正的数目,便放弃校正并按无法校正对待这些错误。本发明并不包含任何这一类的结构和操作方式。
注意在没有长猝发错误时,不需要读取奇偶字节。因而,在没有长猝发错误的正常情况下,可以不读取奇偶字节而开始准备处理下一个块,通常这种处理是在读头经过块间间隔时完成的,块间间隔便是为此目的而留出的非记录区。根据本发明的一个特点,奇偶字节将被记录在这一块间间隔中,而只当长猝发错误需要修复时才被读取。从而,在不增加介质用于校验字节和块间间隔所需的长度的情况下便可以得到长猝发错误保护。
现在假定,在读取时检测到了错误而且指示器指出是一个长猝发错误。子块校验,块校验与循环冗余码校验校正子如同在不存在长猝发错误时同样地计算。同时,读取奇偶字节并如上述计算奇偶字节校正子。
按照本发明,如果错误可能开始的最早字节(也就是可能受错误影响的最早字节)是在位移为E处(见图4A),则执行下述步骤(1)必须对所有未曾受该长猝发错误影响的所有子块实施第一级校正;即不含在E至E+N位移范围内的数据或校验字节的子块。这一校正是按所引用的先有技术的描述进行的。
(2)由于循环冗余码校验和块校验字节校正子是从错误的数据计算得到的,它们需要按每一个这样进行的第一级校正加以调整。在引用时先有技术中描述了这种调整。由于奇偶字节校正子也是从错误数据中算得的,它们也需要按这样进行的每一个第一级校正加以调整。这一调整的做法是将每一个被校正的字节的错误模式异或运算到该被校正的字节所属的奇偶群的奇偶字节校正子中去。
(3)然后,长猝发错误按下述方法校正奇偶字节校正子重复占位在起点为位移E的N个字节的数据字节和检验字节上。这一位移量的范围称作奇偶重复占位段OR(图4A),其长度为N字节。在这一段内的每一个字节与对应的重复占位奇偶字节校正子进行异或运算加以校正。并对相应的子块校验字节,块校验字节以及循环冗余校验校正子为适当这些变化进行调整,如同它们为适应由于第一级错误校正而产生的变化所进行的调整一样。
(4)然后,受长猝发影响的子块通过两级ECC算法进行处理。注意,在这些子块中重复占位段以外的任何一般性错误已经对奇偶字节校正子产生过影响。当在步骤3中奇偶字节校正子被重复占位时,在奇偶字节校正子中的这些错误在奇偶重复占位段OR中形正作为一般性错误的映象的错误。图4A-4D示出了各种错误状态,其中被映象的错误是可以校正的。
图4A示出了在受影响的子块中的一个一般性错误e,它变成了对应的奇偶群中的一个奇偶性错误,并且变成了重复占位段OR中的长猝发区域的一个映象错误e′。这一对错误,在同一个子块中的一般性错误e及其映象错误e′,是可以被两级ECC中的第二级解码校正的。
图4B示出了这样的情况,其中一般性错误e及其映象错误e′出现在邻接的子块中。在这一情况下,该错误对在第一级处理该两个邻接的子块中加以校正。
图4C示出了这样的情况,在奇偶字节中的两个一般性错误e1与e2′的映象错误e1′与e2′出现在邻接的子块中,这些错误是通过第一级校正解码受影响的子块被校正的。
图4D示出了这样的情况,其中奇偶字节中的一般性错误e1与e2的映象错误e1′与e2′出现在邻接的子块中,这些错误是通过第一级校正解码受影响的子块被校正的。
在操作中,如上所述的第一级校正反复地施行在长猝发所影响的子块上直到每一子块都已校正或者发现其不能在第一级得到校正。如果一个子块经过这种处理以后仍然未得到校正,则可以使用块校验字节和实施所引用的先有技术中所描述的第二级校正。
(5)所有校正都施行过以后,从调整后的循环冗余码校验校正子的状态验证校正,如引用的先有技术所述。
本发明中的算法的错误校正能力可总结如下A在不需要长猝发错误校正时,不动用两级码的校正能力。
B.在需要长猝发错误校正时,如下述所有条件都得到满足则该错误得以校正(1)该长猝发不长于奇偶字节重复占位段。
(2)每一子块中的一般性错误是在两级ECC的第一级校正能力范围内的。
(3)如果该长猝发错误影响一个以上的子块,这些受长猝发影响的子块中只能有一个带有一般性错误。
(4)如果奇偶字节受到一般性错误的影响,则受长猝发影响的子块不得含有任何一般性错误。
必须注意,在所引用的专利所公开的两级ECC结构可以重构为码字的N路交错(而不是两路);但是,应用这一方法时,达到能够校正一个长猝发错误中长达N个连续错误字节的能力的代价将十分高昂,然而,以申请人的方法和系统,其中包含附加N个奇偶字节,长达N个连续的错误字节得以更便宜和敏捷地得到校正;而且N的选择值可以增加而无需显著地增加其复杂性和成本。
虽然本发明是联系其一个优选的实施例作描述的,不言而喻,前而提到过的以及其它的变化都是可以在这里公开的方法与系统中作出的。所以所示出的实施例应当仅仅视作一种示例而已而不应视为本发明的限制,只有权利要求中所规定的才是本发明的范围。
权利要求
1.一种校正磁性介质中的多字节错误的方法,在该磁性介质上数据是记录在由数据字节与对应的校验字节的子块所组成并包括在读取时生成错误校正码校正子的错误校正码(ECC)的可变长度块中的,其特征在于下述步骤在每一块的末尾写入N个顺序奇偶校验字节的一个序列;在读时,生成ECC校正子块后,将从读出的数据字节与校验字节中计算出的奇偶校验字节与写入的奇偶校验字节进行比较生成奇偶校正子;响应一个长猝发错误状态,生成一个指示器指向一个块中可能受该错误猝影响的N个连续字节中的首字节;使用不受指示器所标识的N个字节影响的任何ECC校正子,校正所有不受这些被标识的字节影响的子块中的可校正的错误;按照这样校正的错误调整该奇偶校正子;使用调整后的奇偶校正子,校正指示器所指示的N个字节中的错误;根据用该调整后的奇偶校正子所校正的错误调整任何未使用过的ECC校正子;以及使用调整后的ECC校正子,校正所有剩下的可校正错误。
2.权利要求1的方法,其中的奇偶字节实行跨越N个数据字节与校验字节的连续有序群的一种交错奇偶校验。
3.权利要求1的方法,其中所述状态是一种不超过N个字节的长猝发错误。
4.权利要求1的方法,其中的块是可变长度的并且包括可变数目的数据字节和予定数目的校验字节。
5.权利要求1的方法,其中的奇偶字节是写在邻接的块之间的间隔中的。
6.权利要求1的方法,其中,N可以超过一个子块中的字节的总总数。
7.一种校正磁性介质中的多字节错误的方法,在该介质上数据是记录在由数据字节与对应的校验字节子块所组成并包括在读取时生成ECC校正子的错误校正码(ECC)的可变长度块中的,所述方法在操作时在第一级错误校正处理中可校正每一子块中长达予先选定的数目的错误,并且在第二级错误校正处理中校正每一块中的其余的错误,其特征在于下述步骤在每一块的末尾写入N个顺序奇偶校验字节的一个序列,以自交错的数据字节和校验字节中建立N奇偶群;在读时,生成ECC校正子以后,在第一级校正中将读出的数据字节和校验字节计算所得的奇偶校验字节与写入的奇偶校验字节进行比较生成奇偶校正子;响应一个长猝发错误状态,生成一个指示器指向一个块中可能受该错误猝发影响的N个连续字节中的首字节;在第一级校正中,使用与该指示器所标识的N个字节无关的任何ECC校正子校正一切可校正的错误;根据如此校正的错误调整奇偶校正子;使用调整后的奇偶校正子,校正该指示器所指示的N个字节中的长猝发错误;根据由调整后的奇偶校正子所校正的错误调整一切未曾使用的第一级ECC校正子;以及使用调整后的第一级ECC校正子,校正所有第一级可校正错误;根据直到目前已经这样校正了的所有错误调整第二级ECC校正子;以及使用经过调整的第二级ECC校正子,校正剩下的所有可校正错误。
8.权利要求7的方法,包括下述步骤响应一个子块中的一个一般错误,该错误在对应的奇偶群中导致一个奇偶性错误,该奇偶性错误又在可能受到该一般错误影响的从最先的一个字节算起的N个字节长的奇偶重复占位段中导致一个映象错误,本步骤在第二级校正中以解码来校正所述一般错误及其映象错误。
9.权利要求7的方法,包括下述步骤响应在邻接子块中的一个一般错误及其映象错误,以所述邻接子块的第一级校正一起校正这两个错误。
10.权利要求7的方法,包括下述步骤响应奇偶字节中的两个一般错误,该两个一般错误在邻接的子块中造成对应的映象错误,本步骤以所述邻接子块的第一级校正这些错误。
11.权利要求7的方法,包括下述步骤响应奇偶字节中的两个一般错误,这两个一般错误在同一子块中造成对应的映象错误,本步骤在第二级校正中以解码校正这些错误。
全文摘要
本发明公开了一种校正磁性介质中多字节错误的方法,在该磁性介质上,数据是记录在由数据字节与对应的校验字节子块所组成并包括在读时用于生成错误校正码(ECC)校正子的ECC的可变长度块中的。在每块的末尾写入了N个顺序奇偶校验字节的一个序列。在读时,ECC校正子生成以后,将由读出的数据字节和校验字节计算而得的奇偶校验字节与写入的奇偶校验字节进行比较而生成奇偶校正子。
文档编号G06F11/10GK1041463SQ8910699
公开日1990年4月18日 申请日期1989年9月8日 优先权日1988年9月21日
发明者约翰·斯科特·埃根伯格, 保罗·霍吉斯, 阿温德·摩蒂拜·帕特尔 申请人:国际商业机器公司