用于乘积码的组合纠错和擦除解码的制作方法_4

文档序号:9693582阅读:来源:国知局
2t2-m2。如果是这样,则方法500继续到操作516;否则,方法500继续到操作514。
[0089]C2错误纠正能力(t2)表示可使用特定捕获的数据中的乘积码来纠正的C2错误的数量,并且取决于所选择的用于C2的RS码的参数而可以是具有大于零的值的整数诸如1、2、
5、6、7、10等。C2解码裕量(m2)是可被自动设定或者由管理员或其他用户选择的值,其提供C2错误纠正能力(t2)和C2解码器能够纠正多少错误的“更安全”的近似值之间的裕量。在一个实施例中,所述裕量可以仅与C2擦除解码或C2纠错和擦除解码相关联。
[0090]在操作514中,对(已经执行过C1解码后的或者没有进行任何C1解码的原始捕获形式的)捕获的数据执行C2擦除解码。根据一个实施例,C2擦除解码包括Cl失败被擦除的纠错和擦除解码。当在C1解码后执行C2擦除解码时,甚至在第一次迭代中(或者在非迭代过程中),C1失败(除非未检测到任何C1失败)将存在并且将作为被擦除的数据来对待。
[0091]在操作516中,对(已经执行过C1解码后的或者没有进行任何C1解码的原始捕获形式的)捕获的数据执行C2纠错解码。根据一个实施例,C2纠错解码包括这样的纠错和擦除解码:C1失败被保持不变(不擦除或以其他方式被改变,即使指示该判定不正确)。当在C1解码后执行C2解码时,甚至在第一次迭代中(或在非迭代过程中),C1失败(除非未检测到任何C1失败)将存在。解码器对其上发生了 C2解码失败的那些列生成擦除旗标。
[0092]在操作520中,确定C2失败的数量(F2)是否等于零,例如F2= 0。如果是这样,则方法500继续到操作522并停止,因为解码已经是成功的(例如,在解码的数据中没有另外检测到的错误);否则,方法500继续到操作524。
[0093]在操作524中,确定C2失败的数量(F2)是否大于或等于停止参数(E2),例如F2>E2。如果是这样,则方法500继续到操作526并停止,因为解码已经不成功并且错误是不可恢复/不可纠正的;否则,方法500继续进行将停止参数(E2)设定为C2失败的数量(F2)的操作528。以这种方式,可确保迭代只会朝向更少的C2错误收敛,不会发散并导致更多的C2错误和/或在始终无法自己解决的循环状况中被卡住。
[0094]在操作530中,确定停止参数(E2)是否小于或等于C1错误纠正能力(t)的两倍减去C1解码裕量(nu),例如E2 < 2^-111!。如果是这样,则方法500继续到操作532,在操作532中,使用来自操作516的擦除旗标对捕获的数据执行C1擦除解码;否则,方法500继续到操作508以再次执行C1纠错解码。在一个实施例中,C1擦除解码包括C2失败被擦除的纠错和擦除解码。在方法500中,当在初始C1解码后执行C2解码时,甚至在第一次迭代中(或在非迭代过程中),C2失败(除非未检测到任何C2失败)将存在、并将作为被擦除的数据来对待。
[0095]C1错误纠正能力(tD表示可使用特定捕获的数据中的乘积码来纠正的C1错误的数量,并且取决于所选择的用于C1的RS码的参数而可以是具有大于零的值的整数诸如1、2、
5、6、7、10等。C1解码裕量(nu)是可被自动设定或者由管理员或其他用户选择的值,其提供C1错误纠正能力(td和C1解码器能够纠正多少错误的“更安全”的近似值之间的裕量。在一个实施例中,所述裕量可以仅与C1擦除解码或C1纠错和擦除解码相关联。
[0096]方法500继续进行,直到到达操作518、522和/或526中的停止点中的一个。停止参数E2被设计成确保方法500将不会陷入无限循环中,并且将在有限数量的迭代内明确地到达操作518、522和/或526中的停止点中的一个。
[0097]根据一个实施例,当解码方法500在操作518、522和/或526中的停止点中的一个停止时,可确定解码的数据(乘积码字)的所有行和列是否是合法的C1码字(行)和合法的C2码字(列)。当乘积码字是合法的(被允许)时,解码是成功的;否则,解码是不成功的(解码失败)。
[0098]根据一个实施例,方法500可由系统执行。例如,该系统可配置成用于乘积码的组合纠错和擦除解码,并且该系统可包括处理器(诸如CPU、ASIC、FPGA、IC等)以及与处理器集成和/或可由处理器执行的逻辑。所述逻辑可以是硬件、软件或它们的某种组合,并且可配置成执行方法500的一个或多个操作,并且可配置成在各种方法中执行未在本文具体描述的另外的功能。
[0099]在另一实施例中,计算机程序产品可被设计成用于乘积码的组合纠错和擦除解码,所述计算机程序产品包括其中体现有程序代码的计算机可读存储介质。在一个实施例中,所述程序代码可由诸如磁带驱动器、处理器等之类的设备读取和/或执行以执行方法500的一个或多个操作,并且可配置成在各种方法中执行未在本文具体描述的另外的功能。
[0100]乘积码的迭代解码在本领域中是已知的,但是所述迭代解码还未使用具体的擦除和纠错解码调度来执行。例如,美国专利号8,046,660描述了用于非易失性存储器的乘积码解码器。该解码器对第一和第二维度码字进行解码。当第一解码器检测到第一维度码字中的一个码字中的错误时,该第一维度码字被标记为擦除。第二解码器基于所述擦除来检测第二维度码字中的一个码字中的另一错误。第一和第二解码器迭代地对码字进行解码以确定第一和第二维度码字中的其他错误。
[0101]然而,美国专利号8,046,660并未公开具体的解码调度,而是仅限于乘积码的标准迭代纠错和擦除解码。特别地,该专利并未教导使用保证在有限数量的迭代内完成的纠错和擦除解码的解码调度。此外,美国专利号8,046,660并未考虑基于通道侧信息的用于C2解码器的初始擦除旗标。
[0102]现在参考图6,其示出根据一个实施例的用于乘积码的组合纠错和擦除解码的方法600的流程图。在各个实施例中,除了其他环境之外,方法600可根据本发明在图1-3中示出的任一环境中执行。当然,比图6中具体所述的操作更多或更少的操作可被包含在方法600中,如本领域技术人员在阅读本说明书后所理解的那样。在一种方法中,方法600可用于对来自磁带介质的数据进行解码,所述磁带介质可以是本领域中已知的任何适合的磁数据存储磁带。
[0103]方法600的每个步骤可由操作环境的任何适合的组件执行。例如,在各个非限制性实施例中,方法600可由磁带驱动器、光学驱动器、处理器部分或完全执行,所述处理器诸如是CPU、ASIC、FPGA等,其可被嵌入系统、装置、驱动器、存储设备等中和/或在其内运行,并且可具有与所述处理器一起嵌入和/或可由所述处理器访问的逻辑。
[0104]如图6所示,方法600可以以操作602开始,在操作602中,接收捕获的数据。随后,在操作604中,生成针对捕获的数据的擦除旗标并将其提供给C2解码器。接下来,在操作606中,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度。最后,在操作608中,在迭代过程中,选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0105]根据一个实施例,每个擦除旗标可对应于捕获的数据的一部分,该部分由于观察到的或计算的条件而在擦除解码期间将作为被擦除来对待。这些观察到的或计算的条件可包括能够指示在捕获的数据中已发生错误突发的任何条件。根据各个实施例,观察到的或计算的条件可包括下述中的至少一个:未检测到针对码字交织的头部,检测到PLL周期滑移,在调制解码器的输出处的码字交织或C1码字内检测到的连续非法调制码字的数量超过预定阈值量,在前向同步模式和重新同步模式之间的位数不等于头部和四个码字交织的大小,和/或在重新同步模式和反向同步模式之间的位数不等于头部和四个码字交织的大小。
[0106]根据另一实施例,迭代过程可包括:在第一次迭代中并且当停止参数小于或等于C1错误纠正能力的两倍减去C1解码裕量时,对捕获的数据执行C1纠错解码,否则对捕获的数据执行C1擦除解码;当执行C1解码后C1失败的数量等于零并且停止参数等于零时,确定解码是成功的;在执行Cl解码后当Cl失败的数量大于C2错误纠正能力的两倍减去C2解码裕量时,对捕获的数据执行C2纠错解码;在执行C1解码后当停止参数不等于零或C1失败的数量小于或等于C2错误纠正能力的两倍减去C2解码裕量并大于零时,对捕获的数据执行C2擦除解码;在执行C2解码后当C2失败的数量和C1失败的数量都等于零时,确定解码是成功的;以及在执行C2解码后当C2失败的数量大于或等于停止参数时,确定解码是不成功的,否则将停止参数设定成等于C2失败的数量。
[0107]在另一实施例中,迭代过程可包括:在第一次迭代中并且当停止参数小于或等于C1错误纠正能力的两倍减去C1解码裕量时,对捕获的数据执行C1纠错解码,否则对捕获的数据执行C1擦除解码;当C1失败的数量等于零时停止解码并执行码字检查;在执行C1解码后当C1失败的数量大于C2错误纠正能力的两倍减去C2解码裕量时,对捕获的数据执行C2纠错解码,否则在执行C1解码后对捕获的数据执行C2擦除解码;在执行C2解码后当C2失败的数量等于零时,停止解码;以及在执行C2解码后当C2失败的数量大于或等于停止参数时,确定解码是不成功的,否则将停止参数设定成等于C2失败的数量。所述码字检查可包括确定每个C1码字是合法的并且每个C2码字是合法的,使得当每个C1码字是合法的并且每个C2码字是合法的时,解码是成功的,否则,解码是不成功的。
[0108]在又一实施例中,C1错误纠正能力可以表示可使用捕获的数据中的乘积码纠正的C1错误的数量,并且C2错误纠正能力可以表示可使用捕获的数据中的乘积码纠正的C2错误的数量。
[0109]附图中的流程图和框图示出根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。还应注意的是,在有些替代实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续示出的方框实际上可以基本并行地执行,或者它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0110]尽管已经在上面描述了各个实施例,但应理解的是,它们仅借助示例来呈现而并非进行限制。因此,本发明的实施例的广度和范围不应仅限于上述任意一个示例性实施例,而是应当仅根据所附权利要求及其等效形式来限定。
【主权项】
1.一种用于乘积码的组合纠错和擦除解码的系统,所述系统包括处理器以及与所述处理器集成和/或可由所述处理器执行的逻辑,所述逻辑配置成: 接收捕获的数据; 为捕获的数据生成擦除旗标并将所述擦除旗标提供给C2解码器; 将停止参数设定成等于用于对所述捕获的数据进行编码的码字交织中的C1码字的长度;以及 在迭代过程中,选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。2.如权利要求1所述的系统,其中每个擦除旗标对应于所述捕获的数据的一部分,所述一部分由于观察到的或计算的条件而在
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1