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

文档序号:9693582阅读:613来源:国知局
用于乘积码的组合纠错和擦除解码的制作方法
【技术领域】
[0001]本发明涉及数据存储,并且更特别地涉及使用组合纠错和擦除解码提供改善的乘积码解码。
【背景技术】
[0002]存储介质和传输介质(诸如磁带、光存储或光纤传输)使用乘积码来对数据进行编码,该编码的数据随后必须被解码以从所述介质读取数据。乘积码也可用在存储类和闪存存储器中。乘积码是两级纠错架构的关键组成部分。磁带驱动器中的纠错通常基于使用第一级C1码和第二级C2码的乘积码,该过程在本领域中是熟知的。乘积码字可被表示为二维阵列,其中该阵列的行包括来自行代码(C1码)的码字,并且该阵列的列由来自列代码(C2码)的码字组成。
[0003]根据现有技术,如图1所示,每个数据集使用被组织成大小为Μ字节XN字节(MXN)的ECC编码矩阵的交织的码字集进行编码,且随后被写入磁带。该矩阵150内存在两级编码。第一级编码利用矩阵行102。该矩阵的每个行102包含C1-ECC行奇偶校验106,其向η字节的用户数据添加Ρ字节的C1-ECC(例如,Ν = η+ρ字节)。第二级编码即C2-ECC列奇偶校验108向每个矩阵列104添加q字节的C2-ECC。例如,如果q=12,则添加12字节的C2-ECC将会向矩阵150添加12行(例如,M=m+q字节)。
[0004]在磁带存储中,用于乘积码的解码器被设计成减少非常长的错误事件诸如漏码(drop-out)和同步滑移(sync slip)。在一些磁带驱动器中,在边读边写期间也被使用的C1解码器执行纠错解码,并且C2解码器执行擦除解码。这种特定解码策略的缺陷是在短错误事件存在的情况下表现不良。此外,这种策略不允许使用迭代解码来改善出错率性能。
[0005]在其他通信信道诸如光纤传输信道中,纠错解码被用在非常短的独立位错误存在的情况下。这种解码策略的缺陷是,只要长错误事件是可忽略的,就能很好地工作。
[0006]然而,许多信道和存储介质诸如磁带存储通道既展现短错误事件又展现长错误事件。因此,需要一种在长和短错误事件都存在的情况下输送改善的出错率性能的改善的解码调度/策略。

【发明内容】

[0007]在一个实施例中,用于乘积码的组合纠错和擦除解码的系统包括处理器以及与所述处理器集成和/或可由所述处理器执行的逻辑,所述逻辑配置成:接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度,以及在迭代过程中,选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0008]在另一实施例中,用于乘积码的组合纠错和擦除解码的方法包括:接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度,以及在迭代过程中,选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除Cl解码,直到解码成功或不成功。
[0009]根据另一实施例,用于乘积码的组合纠错和擦除解码的计算机程序产品包括其中体现有程序代码的计算机只读存储介质,所述程序代码可由处理器读取/执行以便:接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度,以及在迭代过程中,选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0010]根据下面的详细描述,本发明的其他方面和实施例将变得明显,所述详细描述在结合附图阅读时借助示例示出本发明的原理。
【附图说明】
[0011]图1示出根据现有技术的数据集矩阵或阵列。
[0012]图2示出根据一个实施例的网络存储系统。
[0013]图3示出根据一个实施例的基于磁带的数据存储系统的简化的磁带驱动器。
[0014]图4是根据一个实施例的方法的流程图。
[0015]图5是根据另一实施例的方法的流程图。
[0016]图6是根据又一实施例的方法的流程图。
【具体实施方式】
[0017]下面的描述是为了说明本发明的一般原理,而并非意在限制本文要求保护的创造性构思。此外,本文所述的特定特征可以与各种可能的组合和置换中的每种组合和置换中的其他所述特征结合使用。
[0018]除非本文另有特别限定,所有术语应被给予它们最广泛的可能解释,包括从说明书中暗示的含义以及本领域技术人员所理解的和/或在字典、论文等中定义的含义。
[0019]还必须注意的是,如在本说明书和所附权利要求中使用的,单数形式的“一”和“该”包括复数形式,除非另外指明。
[0020]根据一个实施例,使用基于纠错和擦除解码的用于乘积码的解码策略,以便在存在短和长错误事件的情况下实现改善的出错率性能。
[0021]在一个一般实施例中,用于乘积码的组合纠错和擦除解码的系统包括处理器以及与处理器集成和/或可由处理器执行的逻辑,该逻辑配置成接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度,以及在迭代过程中选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0022]在另一个一般实施例中,用于乘积码的组合纠错和擦除解码的方法包括:接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的C1码字的长度,以及在迭代过程中选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0023]根据另一个一般实施例,用于乘积码的组合纠错和擦除解码的计算机程序产品包括其中体现有程序代码的计算机可读存储介质,所述程序代码可由处理器读取/执行以便:接收捕获的数据,为捕获的数据生成擦除旗标并将该擦除旗标提供给C2解码器,将停止参数设定成等于用于对捕获的数据进行编码的码字交织中的Cl码字的长度,以及在迭代过程中选择性地执行后面跟随着纠错或擦除C2解码的纠错或擦除C1解码,直到解码成功或不成功。
[0024]如本领域技术人员将理解的是,本发明的各方面可以实施为系统、方法或计算机程序产品。因此,本发明的各方面可采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等)、或者将软件和硬件方面进行组合的实施例的形式,上述实施例可在本文中全部被一般地称为“逻辑”、“电路”、“模块”或“系统”。而且,本发明的各方面可采取在一个或多个计算机可读介质中实现的计算机程序产品的形式,所述一个或多个计算机可读介质在其上体现有计算机可读程序代码。
[0025]可以利用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外或半导体系统、装置或设备或上述的任何适合的组合。计算机可读存储介质的更具体的示例(非无遗漏的列表)包括下述:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(R0M)、可擦除可编程只读存储器(EPR0M或闪存存储器)、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备或上述的任何适合的组合。在本文档的上下文中,计算机可读存储介质可以是包含或存储程序的任何有形介质,所述程序由指令执行系统、装置或设备使用或与其结合使用。
[0026]计算机可读信号介质可以包括例如在基带中或者作为载波的一部分的其中体现有计算机可读程序代码的传播的数据信号。这样的传播信号可采取各种形式(包括但不限于电磁、光学或上述的任何适合的组合,诸如具有一个或多个导线的电连接、光纤等)中的任一种。计算机可读信号介质可以是除计算机可读存储介质以外的、并且可以传送、传播或传输程序的任何计算机可读介质,所述程序由指令执行系统、装置或设备使用或者与其结合使用。
[0027]计算机可读介质上体现的程序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意适合的组合。
[0028]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言诸如“C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0029]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0030]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制
4生口fe PR ο
[0031]计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
[0032]附图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。还应注意的是,在有些替代实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续示出的方框实际上可以基本并行地执行,或者它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0033]现在参考图2,其示出根据一个实施例的网络存储系统10的示意图。该网络存储系统10仅是适合的存储系统的一个示例,而并非旨在暗示对本文所述的本发明的实施例的使用范围或功能进行任何限制。无论如何,网络存储系统10能够被实现和/或执行上文阐述的任何功能。
[0034]在网络存储系统10中,存在计算机系统/服务器12,其可以与许多其他通用或专用
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1