在第四代线性磁带开放数据磁带格式(LTO-4)中,码字四元组包括与两个10字节的码字对头部交织的两个480字节的码字对。每个码字对头部(在此也称为“头部”)包括4字节的码字标识符字段(字节c0-c3)、4字节的写通路标识符字段(字节c4-c7,用于识别写有数据集的写通路)以及具有循环冗余校验(CRC)性质的2字节的头部奇偶性字段(字节c8-c9)。所述两个码字对头部具有基本相同的内容(净荷),区别仅在于码字标识符字段的码字对指定子字段的值。
如在LTO-4规范中所定义的,头部CRC是伽罗瓦域(Galois Field)GF(256)上的里德-索罗门(RS)码。通常,具有pk个元素的有限域将被称为GF(pk),其中,p>1为质数,k>0为整数。如图1的框图中所示,通过基于生成多项式G(y)=y2+α152y+1经由编码器100顺序地处理头部字节来产生CRC字节。在经由编码器处理所述字节之后,寄存器102、104包含CRC字节。
如果头部奇偶性字节仅用于在头部中检错,则它们无法纠正检测的任何差错。然而,当磁带驱动器的数据内容被分析时,发现许多具有坏的CRC校验的码字对头部,这可能导致码字对被丢弃。考虑到数据完整性的重要,码字对头部中的差错不能被容忍。需要针对码字对头部中的差错来增加强健性。
如果码字对头部中的两个字节的冗余被用于纠正码字对头部之内的一个字节而不是被用作检错的CRC,则在发生误纠错的情况下需要一种额外的机制来检错。此外,这种方案效果不好,因为尽管其可纠正码字对头部之内的所有1比特差错,但是其无法纠正码字对头部之内的所有2比特差错群。例如,跨越字节边界的2比特差错群无法被纠正。另一种可行的方案为将冗余增加到多于2字节,以便既纠错又在纠错之后进行检错。然而,这种方案将必然降低格式效率。因此,上述两种“方案”均具有显著的缺点,并且不令人满意。
另一方案为使用两个头部的净荷的公共部分以设置用于差错控制的附加冗余并由此增加纠错能力。然而,所述方案即使与当前系统相比也具有显著的缺点。例如,目前,如果一个码字对的头部由于磁带上的介质缺陷或其它原因而无法被解码,但是码字四元组中的其它码字对的头部能够被解码,则存在用于解码所述两个头部的足够信息。如果附加差错控制冗余被置于净荷中,而不是重写净荷的所有公共部分,则对于磁带系统将丧失上述期望的属性。
本发明提供用于数据磁带格式(诸如但不限于线性磁带开放第四代(LTO-4)数据磁带格式)中的码字头部的纠错编码。可实现本发明的数据磁带格式将码字四元组定义为具有与第一和第二码字对交织的第一和第二码宇头部,每个码字头部包括N个m比特的字节ck=c0,c1,...,cN-2,cN-1,其中,m为偶数,其中,码字四元组中的第一和第二头部的K个m比特的字节c0-ck-1是不同的,从而,如果一个头部被得知,则可导出另一个头部。根据本发明,将码字四元组每个头部m比特字节ck重新定义为包括两个交织的(m/2)比特的半位元组,即,eK,oK。对于每个头部,分别作为半位元组eK-eK-1和半位元组OK-OK-1的函数来产生半位元组eK-eN-1和半位元组OK-ON-1。通过重新定义的头部来组装码字四元组,码字四元组随后被记录在磁带介质上。在一实施例中,数据磁带格式为LTO-4格式,其中,N=10,K=8并且m=8。本发明还提供用于为所述码字头部提供纠错编码的系统。本发明还提供具有用于为所述码字头部提供纠错编码的指令的计算机程序产品代码。
图1是用于根据GF(256)产生头部CRC字节的LTO-4编码器的功能示图; 图2是用于根据GF(16)产生头部奇偶性半位元组的本发明的编码器的功能示图; 图3是可实现本发明的编码器的写通道的框图; 图4是用于根据GF(16)产生头部奇偶性半位元组的本发明的编码器的一种配置的框图; 图5是用于根据GF(16)产生头部奇偶性半位元组的本发明的编码器的另一配置的框图; 图6是可实现本发明的解码器的读通道的框图; 图7是根据本发明的可对码字对头部进行解码的一种方法的流程图;以及 图8是根据本发明的可对码字对头部进行解码的另一方法的流程图。
在线性磁带开放第四代(LTO-4)的当前实现中,可将码字四元组中的两个10字节的码字对头部(CPH)中的每一个表示为c0 c1...c7 c8 c9,其中,c0是第一字节,c1是第二字节等。用于码字对头部的本发明的差错控制方法基于GF(16)上的里德-索罗门(RS)码字的奇偶交织,并采用两个码字对头部中的公共净荷来增加强健性以解决误纠错。在高级别进行考虑,将LTO-4的10字节的码字对头部重新定义为e0 o0 e1 o1...e7 o7 e8 o8 e9 o9,其中,e0是c0的左边4个比特,o0是c0的右边4个比特。相同的标注应用于其它字节。偶数码字对头部e0e1...e7e8e9是GF(16)上的里德-索罗门码字。也就是说,作为偶数头部的开始8个半位元组(e0 e1...e7)的函数,以特定方式来产生两个4比特的偶数奇偶性符号(半位元组)e8e9。类似地,奇数码字对头部o0 o1...o7o8o9也是GF(16)上的里德-索罗门码字。也就是说,作为奇数头部的开始8个半位元组(o0o1...o7)的函数,以特定方式来产生两个4比特的奇数奇偶性符号(半位元组)o8o9。因此,尽管本发明也可应用于其它冗余量,但是在标准LTO-4格式中使用的相同冗余量(即,每个码字对头部两个字节)也可用于本发明。所述方法能够在不增加冗余也不减少码字四元组的格式效率的情况下,纠正码字对头部中的任何5比特差错群。尽管这里在LTO-4及其10字节码字对头部(包括两个字节的冗余)的情况下描述了本发明,但所述描述的目的并不是进行限制。更一般地说,可利用具有N个m比特的字节、K个m比特的净荷(字节c0-cK-1)和N-K个冗余字节(字节cK-cN-1)的码字对头部来实现本发明。此外,对于标准RS码,N<2(m/2)。因此,对于m=8,N<16。此外,对于扩展RS码,N=2(m/2)或N=2(m/2)+1。因此,对于m=8,N=16或N=17。
用于实现编码器的硬件复杂度是小的。继续以LTO-4格式作为示例,其中,N=10,K=8且m=8,如图2所示,可利用乘法器202和两个延迟部件204、206来实现用于根据GF(16)产生头部奇偶性半位元组的本发明的编码器或反馈移位寄存器200。在操作中,编码器200的两个延迟部件均通过0来初始化,并且通过编码器200在GF(16)上处理偶数数据半位元组e0 e1...e7。通过本原多项式p(z)=z4+z+1来确定域GF(16)。在多项式符号中 e(y)=e0 y9+e1 y8+e2y7+...+e7 y2+e8y+e9 d(even)(y)=e0 y9+e1 y8+e2 y7+...+e7y2 e8y+e9=RG(y)[d(even)(y)] 其中,RG(y)[d(even)(y)]表示由生成多项式 G(y)=(y+α7)(y+α8)=y2+α11y+1除[d(even)(y)]得到的剩余多项式,α是满足α4+α+1=0的GF(16)的本原元素。在头部的开始8个偶数半位元组被处理之后,从两个延迟部件204、206的内容获得偶数奇偶性半位元组e8和e9。通过相同的方式,从并列编码器(未示出)获得奇数奇偶性半位元组o8和o9。
图3是可实现本发明的编码器的写通道300的框图。在处理器302中接收客户数据,所述处理器302可对数据执行诸如压缩和加密的功能。高级别格式化器304可将ECC添加到处理后的数据,并按照适合记录的结构来组织所述数据。产生器306产生编码后的码字对头部。CPH通过MUX 308与高级别格式化的数据进行交织,并被发送到低级别格式化器310,其可将定时和同步信息添加到数据流。随后将产生的数据发送到记录头312以将其记录在介质314上。
图4是用于根据GF(16)产生头部奇偶性半位元组的本发明的编码器400的一种配置的框图。通过并列ECC编码器406A、406B对两个CPH的头部净荷402A、402B进行编码。MUX 410顺序地接收编码后的CPH,并将其与码字对净荷(客户数据)进行交织以形成码字四元组412。
图5是仅使用单个编码器的本发明的编码器500的可替换实施例的框图。由第一MUX 504接收两个CPH的第一头部净荷502A和第二头部净荷502B,以通过ECC编码器506进行交替编码。由第二MUX 508接收第一和第二码字。第三MUX 510顺序地接收编码后的CPH,并将其与码字对净荷进行交织以形成码字四元组512。
图6是根据本发明的用于读取和重新创建记录的客户数据的组件600的框图。通过读通道604来读取记录介质602上的数据,以从介质再现记录的比特。低级别去格式化器606从数据流检测并去除定时和同步信息。数据随后被发送到MUX 608。通过码字四元组,MUX608将CPH交替地发送到码字头部解码器610,其中,码字头部信息被去除并解码,如以下根据本发明所描述的。来自MUX 608的解码后的头部和码字对在去格式化器612中进行高级别去格式化,以执行ECC和重新组织,以准备进行进一步的处理。处理器614可对数据进行解码和解压缩,此后,输出原始的客户数据。
用于实现CPH的一种交织的解码器的硬件复杂度也是小的,原因在于可仅利用伽罗瓦域GF(16)上的三个乘法器、两个加法器和一个除法器来实现解码器。在第一步骤中,使用相同的解码算法分别对偶数CPH c(even)和奇数CPH c(odd)进行解码。对于偶数CPH的情况描述解码算法。如所理解的,通过用上标(odd)代替(even)来获得用于c(odd)的解码器。
具体说来,解码器计算校验子 s=[s(even),s(odd)] 在RS码字包含nerror个差错符号以及neras次擦除(差错的位置已知但是它们的值未知)(其中,2nerror+neras≤N-K)的情况下,存在各种已知的代数解码算法,它们可用于获得纠错位置和纠错值,由此恢复原始RS码字。此外,解码算法是已知的,其能够处理多达(N-K)个差错符号的差错模式。如果用于偶数/奇数CPH的两个解码器均提供偶数/奇数解码的CPH,则CPH解码器提供解码的CPH。否则,解码器宣称解码失败。
如前面所述,码字四元组包括两个码字对(CP)和两个相应的CPH。第一CPH的校验子表示为s,第二CPH的校验子表示为s’。LTO标准在码字四元组中定义合法的一对第一和第二CPH的格式和内容。如前面所述,在码字四元组中的第一和第二CPH的净荷基本相同,并且它们以如下方式而有所不同可从第一CPH导出第二CPH,反之亦然。如在图7的流程图所述,这一特征可用于增加用于第一和第二CPH的解码算法的强健性。
解码器计算第一和第二CPH校验子s和s’(步骤700)。如果s和s’中的一个或两者为0(步骤702),则至少一个码字对头部有效。如果两个均为0,则需要的话,可产生用于第一和第二码字对两者的头部信息,并且可检查所述两个头部净荷的合法性。如果仅有一个为0,则可基于上述公共净荷特征从校验子(s或s’)等于0的CPH产生用于两个码字对的头部信息(步骤704)。
另一方面,如果s和s’均为非0,则尝试解码第一和第二CPH(步骤706)。如果任何CPH未能被成功解码(步骤708),则可假设两个CPH均不正确,并且无法可靠地产生用于任何CPH的头部信息(步骤710)。或者,如果只有一个CPH未能被成功解码,则可假设另一CPH正确,并且可再次基于公共净荷特征从假设正确的CPH产生用于两个码字对的头部信息(步骤704)。然而,因为用于合法净荷的测试无法执行,所以所述替换方案没有提供关于第二头部被正确解码的任何独立验证,通常可优选地拒绝两个CPH。
如果两个CPH均被成功解码(步骤708),则基于标准LTO格式来验证两个CPH的净荷(步骤712)。如果两个净荷均合法,则产生用于两个码字对的头部信息(步骤714)。相反,如果该对净荷不合法,则可假设已经发生误纠错,并且无法可靠地产生用于任何一个码字对的头部信息(步骤710)。
图8的流程图示出公共净荷特征的替换使用方式以增强解码算法的强健性。如在图7的方法中那样,解码器计算第一CPH校验子s和第二CPH校验子s’(步骤800)。如果s和s’中的一个或两个为0(步骤802),则至少一个码字对头部有效。如果两个均为0,则可产生用于第一码字对和第二码字对两者的头部信息,并且可在期望的情况下检查两个头部净荷的合法性。如果只有一个为0,则可基于上述公共净荷特征从校验子(s或s’)等于0的CPH产生用于两个码字对的头部信息(步骤804)。
另一方面,如果s和s’两者均为非0,则对于头部的每个偶数或奇数交织,产生被认为正确的单个结果,或产生可能结果的列表(步骤806)。因为对于在10个半位元组码字中将有2个半位元组存在差错的情况,存在45=10 !/(2!*8!)种不同的方式,所以所述列表可包含偶数或奇数解码的码字(偶数或奇数净荷)的45种可能结果。因此,对于每个头部,产生单个结果,或者产生具有45或452=2025个结果的列表。因此,列表解码器将考虑1或45或452或453或454对解码的CPH以确定是否存在合法的净荷对。将认识到不同大小的列表可以与不同大小的CPH关联。确定CP净荷是否合法(步骤808)。如果在先前步骤已经产生单个结果,则净荷应顺利地比较。然而,如果解码头部之一导致可能结果的列表,则将列表条目与解码另一头部的结果进行比较。当恰好有一个匹配被识别时(步骤810),已经产生合法净荷的可能性是高的。如果无法识别匹配(步骤812)或存在多于一个匹配,则宣称失败。
本发明提供优于当前LTO-4格式化的各种益处。可在不增加码字对头部中的冗余量也不减少格式化效率本身的情况下纠正码字对头部之内的5比特差错群。此外,可快速和有效地计算ECC,在数据需要被重写的情况下这导致头部的数据内容改变时的好处。相反,如果头部作为较大ECC结构的一部分被保护,则码字的整个ECC将不得不被重新计算,这将是耗时的处理,特别是在磁带应用中。
注意到以下情况很重要尽管在全功能数据处理系统的上下文中描述了本发明,但是本领域的普通技术人员将认识到能够按照指令的计算机可读介质的形式和各种形式来分配本发明的处理,并且无论实际用于实现分配的信号载体介质的具体类型如何都可以应用本发明。计算机可读介质的示例包括可记录类型的介质(诸如软盘、硬盘驱动器、RAM、CD-ROM)和传输类型的介质(诸如数字和模拟通信链路)。
提供本发明的描述是为了示例和说明的目的的,而不是为了穷尽地表明本发明或将本发明限制于这里公开的形式。本领域的普通技术人员将清楚许多改进和变型。选择并说明所述实施例,以便最好地解释本发明的原理和实际应用,以使得本领域的普通技术人员能通过各个实施例来理解本发明,所述各个实施例具有适合预期的具体使用的各种变型。此外,尽管以上针对方法和系统进行了描述,但是本领域的需要也可通过以下的计算机程序产品或以下的方法来满足,所述计算机程序产品包含用于在数据磁带格式中向码字头部提供纠错编码的指令,所述方法用于部署包括将计算机可读代码集成到用于在数据磁带格式中向码字头部提供纠错编码的计算系统中的计算体系结构。
1、一种用于在数据磁带格式中向码字头部提供纠错编码的方法,所述数据磁带格式定义码字四元组,所述码字四元组具有与第一和第二码字对交织的第一和第二码字头部,每个码字头部包括N个m比特的字节cK=c0,c1,...,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个头部是已知的,则能导出出另一个头部,所述方法包括
4、如权利要求1所述的方法,其中,数据磁带格式包括线、一种用于在数据磁带格式中的码字头部中进行纠错的方法,所述数据磁带格式定义码字四元组,所述码字四元组具有与第一和第二码字对交织的第一和第二码字对头部c(even),c(odd),每个码字头部包括N个m比特的字节cK=c0,c1,...,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个头部是已知的,则能导出另一个头部,所述方法包括
9、如权利要求5所述的方法,其中,数据磁带格式包括线、一种用于在数据磁带格式中的码字头部中进行纠错的系统,所述数据磁带格式定义码字四元组,所述码字四元组具有与第一和第二码字对交织的第一和第二码字对头部c(even),c(odd),每个码字头部包括N个m比特的字节cK=c0,c1,...,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个头部是已知的,则能导出另一个头部,所述系统包括
15、如权利要求10所述的系统,其中,数据磁带格式包括线、一种用于在数据磁带格式中的码字头部中进行纠错的系统,所述数据磁带格式定义码字四元组,所述码字四元组具有与第一和第二码字对交织的第一和第二码字对头部c(even),c(odd),每个码字头部包括N个m比特的字节cK=c0,c1,...,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个头部是已知的,则能导出另一个头部,所述系统包括
20、如权利要求16所述的系统,其中,数据磁带格式包括线、一种与可编程计算机一起使用的计算机可读介质的计算机程序产品,所述计算机程序产品中包括计算机可读代码,所述代码用于在数据磁带格式中对码字头部提供纠错编码,所述数据磁带格式定义码字四元组,所述码字四元组具有与第一和第二码字对交织的第一和第二码字头部,每个码字头部包括N个m比特的字节cK=c0,c1,...,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个头部是已知的,则能导出另一个头部,所述计算机可读代码包括用于实现上述方法权利要求中的任何一个方法的指令。
本发明涉及提供纠错编码的方法及用于纠错的方法和系统。在诸如线)数据磁带格式的数据磁带格式中提供对于码字头部的纠错编码。数据磁带格式将码字四元组定义为具有与第一和第二码字对交织的第一和第二码字头部,每个码字头部包括N个字节cK=c0,c1,…,cN-2,cN-1,其中,码字四元组中第一和第二头部的K个字节c0-cK-1是不同的,从而,如果一个是已知的,则能导出另一个。将码字四元组的每个头部字节cK重新定义为包括两个交织的(m/2)比特的半位元组,eK,oK。对于每个头部,分别作为半位元组e0-eK-1和半位元组o0-oK-1的函数产生半位元组eK-eN-1和半位元组oK-oN-1。通过重新定义的头部组装码字。然后,将所述码字四元组记录在记录介质上。
技术研发人员:罗伊.D..塞德斯亚恩;托马斯.米特尔洛尔泽;保罗.J.西格
1.计算机网络安全 2.计算机仿线.网络安全;物联网安全 、大数据安全 2.安全态势感知、舆情分析和控制 3.区块链及应用