具有误纠处理的低密度奇偶校验解码器的制造方法

文档序号:7542585阅读:196来源:国知局
具有误纠处理的低密度奇偶校验解码器的制造方法
【专利摘要】本发明涉及具有误纠处理的低密度奇偶校验解码器。公开了一种包括解码器电路、校验子计算电路和哈希计算电路的数据处理系统。解码器电路可操作地用来基于复合矩阵的第一部分对解码器输入应用解码算法,以产生代码字。校验子计算电路可操作地用来基于代码字和复合矩阵的第一部分来计算校验子。哈希计算电路可操作地用来基于复合矩阵的第二部分来计算哈希。当校验子指示基于复合矩阵的第一部分的代码字正确而第二次测试指示代码字被误纠时,解码器电路还可操作地用来基于哈希校正代码字。
【专利说明】具有误纠处理的低密度奇偶校验解码器
【技术领域】
[0001]本发明的各个实施例提供具有误纠(miscorrection)处理的低密度奇偶校验解码装置和方法。
【背景技术】
[0002]已经开发了包括存储系统、蜂窝电话系统和无线传输系统的各种数据传输系统。在这些系统中,经由一些介质将数据从发送方传输到接收方。例如,在存储系统中,经由存储介质将数据从发送方(即,写功能)发送到接收方(即,读功能)。在一些情况下,数据处理功能接收数据集并且向数据集应用数据解码算法来恢复原始写入的数据集。在一些情况下,数据解码处理的应用提供表示结果正确的内部解码器度量的纠正结果,但实际上该结果是不正确的。这种误纠很难被检测并且对于接收方设备的操作而言是致命的。

【发明内容】

[0003]公开了一种包括解码器电路、校验子计算电路和哈希(hash)计算电路的数据处理系统。解码器电路可操作地用来基于复合矩阵的第一部分向解码器输入应用解码算法,以产生代码字。校验子计算电路可操作地用来基于代码字和复合矩阵的第一部分来计算校验子。哈希计算电路可操作地用来基于复合矩阵的第二部分来计算哈希。当校验子指示基于复合矩阵的第一部分的代码字正确而第二次测试指示代码字被误纠时,解码器电路还可操作地用来基于哈希校正代码字。
[0004]本
【发明内容】
仅仅提供根据本发明一些实施例的概要。在下面的详细描述、所附权利要求和附图中公开了其他的实施例。
【专利附图】

【附图说明】
[0005]通过参考本说明书剩余部分所描述的附图,可以实现对本发明各个实施例的进一步理解。附图中,可以在多幅附图中始终使用相似的附图标记来指相似的组件。附图中,在多幅附图中始终使用相同的附图标记来指相同的组件。
[0006]图1描述了根据本发明一个或多个实施例的生成矩阵和对应的奇偶校验矩阵,包括截断子矩阵H和特殊层S ;
[0007]图2描述了具有编码系统和解码系统的数据处理系统,包括根据本发明一个或多个实施例的具有误纠处理的低密度奇偶校验解码器;
[0008]图3描述了根据本发明一个或多个实施例的包括支持误纠的低密度奇偶校验编码器的编码系统;
[0009]图4描述了根据本发明一个或多个实施例的包括具有误纠处理的低密度奇偶校验解码器的解码系统;
[0010]图5描述了根据本发明一些实施例的具有误纠处理的低密度奇偶校验解码器的框图;[0011]图6描述了显示根据本发明各个实施例的用于低密度奇偶校验解码期间的内部级误纠处理的方法的流程图;
[0012]图7描述了根据本发明各个实施例的用于低密度奇偶校验解码期间的外部级误纠处理的方法的流程图;
[0013]图8描述了根据本发明各个实施例的包括具有误纠处理的低密度奇偶校验解码器的存储系统;以及
[0014]图9描述了根据本发明一些实施例的包括具有误纠处理的低密度奇偶校验解码器的无线通信系统。
【具体实施方式】
[0015]具有误纠处理的低密度奇偶校验(LDPC)解码器使用附加到奇偶校验矩阵H0的特殊层S,以辅助检测和解决误纠,其中解码器在错误代码字上收敛。在支持误纠的低密度奇偶校验编码器中应用生成矩阵G100,以产生奇偶校验矩阵H102,如图1所示,所述奇偶校验矩阵H102包括在具有误纠处理的低密度奇偶校验解码器中用来解码代码字或者编码数据的截断子矩阵HtlKM和特殊层S106。奇偶校验矩阵H102在申请也被称为复合矩阵。子矩阵HtlKM对应于用户数据位和奇偶位,并且定义低密度奇偶校验解码器中变量节点和校验节点之间的连接。子矩阵HtlKM可以是(但不限于)标准的低密度奇偶校验或者是由低密度奇偶校验解码器用来向代码字应用低密度奇偶校验算法的矩阵H。子矩阵HtlKM可以是本领域公知的任何H矩阵或者其它矩阵,并且本领域技术人员将认识到可以与本发明的不同实施例相关地使用的各种H矩阵,诸如二进制和非二进制、准循环等。在解码器一侧,特殊层S106在增加更多奇偶位之外,具有(但不限于)与子矩阵HtlKM相同的结构。在一些实施例中,特殊层S106比子矩阵HtlKM更密。在编码器一侧,这导致生成矩阵GlOO的尺寸增加。
[0016]当数据收敛时使用特殊层S106,在一些实施例中,当校验子为O时识别所述收敛,即,将基于子矩阵H0的低密度奇偶校验解码的硬判决结果V与子矩阵Htl相乘所获得的向量等于O。(校验子=子矩阵HtlX硬判决或者已纠正代码字V。)在一些实施例中出于两个目的而使用特殊层S106。在两个目的的一个中(在本申请被称为内部级),当校验子(仅仅使用子矩阵HtlKM来计算)为O而诸如(但不限于)循环冗余校验(CRC)的其它检验表明数据已经被误纠并且硬判决包含错误时,使用特殊层S106来执行基于全矩阵H102的额外低密度奇偶校验解码。在两个目的的另一个中(在本申请被称为外部级),特殊层S106还被用来计算低密度奇偶校验解码器中的哈希值,以校验低密度奇偶校验解码器中的哈希值,并且试图基于哈希值使用小代码字(small codeword)来纠正被误纠的代码字。哈希值被用来识别可以增加到误纠代码字中以对其进行纠正的预先计算的小代码字或者子代码字。在其它实施例中,特殊层S106仅用于这些目的中的一个。
[0017]在误纠处理的内部级中,在禁用或者不适用特殊层S106的情况下,首先使用子矩阵HtlKM来执行低密度奇偶校验解码。如果校验子为零(意味着低密度奇偶校验解码器已经确定数据已经收敛并且解码完成),但另一个测试指示数据被误纠时,使用全矩阵H102 (包括子矩阵HtlKM和特殊层S106)重复低密度奇偶校验解码。注意,全矩阵H102的全校验子是校验子和哈希的级联。在一些实施例中,通过在校验子=0时完成低密度奇偶校验解码之后计算哈希值来检测误纠,并且如果哈希值不为0,则出现误纠。在一些实施例中,误纠检测还包括如果哈希值为O,则使用并入被解码数据的用户位或者控制位中的外部循环冗余校验位来执行循环冗余校验测试。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的其它误纠检测技术。如果在使用全矩阵H102重复低密度奇偶校验解码之后,通过哈希、外部循环冗余校验或者其它数据一致性检测仍然存在误纠指示,则在一些实施例中将控制传递给误纠处理的外部级。
[0018]在误纠处理的外部级中,对于给定的哈希值,从查找表获取或者基于哈希值获得小代码字。每个哈希值可以获取O个、一个或多个小代码字。甚至可以对于为O的哈希值获取一个或多个代码字,这种情况可能出现在尽管哈希值为0,但使用外部循环冗余检测或者其它数据一致性测试而检测到误纠的时候。针对子矩阵HtlKM预先计算小代码字。向低密度奇偶校验解码所产生的误纠代码字应用每个所获取的小代码字,以确定该应用是否校正了误纠代码字。在一些实施例中,使用异或(XOR)操作组合每个小代码字和误纠代码字。如果所产生的代码字的校验子为0,则所产生的代码字是已校正的代码字。通过使用满足线性性质的哈希,可以使用哈希值和小代码字来编辑和校正误纠解码的代码字。线性性质指定对于任何二进制向量A和B,HASH(A XOR B) =HASH(A)XOR HASH(B)。特别是,如果对于解码的代码字A,找到具有相同哈希值的小代码字B,并且代码字A XOR代码字B的结果是HASH=O,则其意味着向误纠代码字应用小代码字产生用于全矩阵H102而不仅仅用于子矩阵Hq104的如同其被校正之前的代码字,因为如果HASH(A)=HASH(B),则HASH(A)XORHASH (B) =O0在哈希值没有线性性质的实施例中,针对校正的代码字测试每个小代码字并且重新计算循环冗余校验。误纠处理的外部级基于如下假设:误纠是由低权值代码字所导致的,其权值接近低密度奇偶校验码的最小距离,并且对于具有误纠处理的低密度奇偶校验解码器,这些低权值代码字的列表是可获得的,并且具有可管理的大小。
[0019]此外,针对子矩阵HtlKM预先计算小代码字。如果在设计的时候生成子矩阵HtlIOl则同时生成小代码字和它们的哈希值。将哈希值和小代码字对存储在查找表中或者使它们对于低密度奇偶校验解码器而言可用。在一些实施例中,对于低密度奇偶校验解码期间的获取和使用被使得可用的小代码字的设计时选择至少部分地基于识别在低密度奇偶校验解码器的大量设计仿真期间导致误纠的那些小代码字。可以以任何适当的方式(包括但不限于可以由低密度奇偶校验解码器访问的存储器中的查找表)使小代码字对于低密度奇偶校验解码器而言可用。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的可以使得小代码字和哈希对对于低密度奇偶校验解码器而言可用的其它方式。
[0020]在使用准循环奇偶校验矩阵的一些实施例中,将代码字划分为多类循环等价字。在特殊层S具有相同循环结构并且其高度划分循环行列式的大小(换言之,哈希位长度划分循环行列式大小)的实施例中,查找表针对每一类等价字包含仅仅一个哈希值,大大地减小了哈希和小代码字对的大小。在非二进制低密度奇偶校验准循环矩阵的实施例中,考虑代码字的伽罗华域集,可以以类似的方式来减少所存储对的数量。在变换代码字的准循环或者伽罗华域等价的实施例中,等价地转换哈希值。因而,对于等价代码字,不重新计算哈希值,而是通过针对同一类代码字而计算的已知哈希值的简单准循环变换和/或伽罗华域乘法来获得哈希值。这可以大大减少所存储对的数量。为了保持所存储对的唯一性,在一些实施例中,在查找表中使用来自同一类的所有等价代码字中的最低哈希值作为整类等价代码字的表示。
[0021]基于特殊层S106计算哈希值并且将其作为额外奇偶位包含在将要解码的数据中。在一些实施例中,以与校验子相同的方式在低密度奇偶校验解码器中计算哈希值,具有排除特殊层S106之外,基于子矩阵HtlKM计算的校验子,并且具有排除子矩阵HtlKM之外,基于特殊层S106计算的哈希值。因此,哈希被计算为特殊层S106的硬判决输出与特殊层S相乘。(哈希=特殊层SX特殊层S的硬判决或者校正代码字。)基于与全矩阵H102对应的生成矩阵GlOO来执行低密度奇偶校验编码。因此,哈希值对应于与特殊层S106相关联的额外奇偶位。在一些其他实施例中,减少生成和从编码器向解码器传输的常规通道循环冗余校验数据的数量,而不是增加特殊层S106的奇偶位的数量。
[0022]对于给定的预先选择的特殊层S106,为所生成的每个小代码字C计算哈希值S*C。因为误纠通常由小代码字或者整个代码字的一部分所导致,所以解码中的误纠并不产生正确的代码字D,而对于一些小代码字C产生等于D XOR C的误纠代码字。通过使用哈希值从查找表获取小代码字C并且应用校正E XOR C=D XOR C XOR C=D,获得校正的代码字D。
[0023]在执行误纠处理的内部级和外部级之后,可以根据误纠处理的外部级对校正的代码字执行额外的测试,例如但不限于外部循环冗余校验测试,并且如果校正的代码字仍然不正确,则可以调用额外的校正技术。
[0024]转向图2-4,显示了根据本发明各个实施例的数据处理系统。在图2中描述了根据本发明的一个或多个实施例的具有编码系统和解码系统(包括具有误纠处理的低密度奇偶校验解码器)的数据处理系统。数据处理系统用来处理用户数据位202、通过存储设备或者传输通道208存储它们或者传输它们并且在不引入错误的情况下获取用户数据位214。用户数据202通过包含支持误纠的低密度奇偶校验编码器的编码系统204来存储和传输。包含支持误纠的低密度奇偶校验编码器的编码系统204在低密度奇偶校验编码器中基于生成矩阵G对用户数据202进行编码,包括计算奇偶校验矩阵H的特殊层S的哈希值。包含支持误纠的低密度奇偶校验编码器的编码系统204产生具有作为额外奇偶位来包含的哈希值的编码数据206。在存储设备/传输通道208 (例如但不限于,磁硬盘驱动器或者无线电信号)中存储或者传输编码数据206。从存储/传输通道208获取编码数据210并且通过包含具有误纠处理的低密度奇偶校验解码器的解码系统212来解码编码数据210。包含具有误纠处理的低密度奇偶校验解码器的解码系统212向所获取的编码数据210应用低密度奇偶校验解码算法。如果数据收敛并且校验子为0,但其它测试指示误纠,则包含具有误纠处理的低密度奇偶校验解码器的解码系统212应用误纠处理的内部级或外部级或者两者,以产生解码的用户数据214。
[0025]转向图3,描述了根据本发明的一个或多个实施例的包含支持误纠的低密度奇偶校验编码器的编码系统304,在一些实施例中适合于替代图2中的包含支持误纠的低密度奇偶校验编码器的编码系统204来使用。用户数据302通过通道循环冗余校验编码器316来处理,其产生用户数据302的循环冗余校验位318。通过多路复用器320或者以任何其它适当的方式将循环冗余校验位318添加到用户数据302,产生具有通道循环冗余校验位322的用户数据。在一些实施例中,通过模式约束编码器324来编码具有通道循环冗余校验位322的用户数据,准备用于存储或者传输的具有通道循环冗余校验位322的用户数据,从而减少错误。模式约束编码器324可以应用(但不限于)诸如最大转换游程(MTR)、游程长度受限(RLL)或者其它约束的模式约束。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的各种模式约束编码器。
[0026]在支持误纠的低密度奇偶校验编码器330中对来自模式约束编码器324的已编码用户位326进行编码。支持误纠的低密度奇偶校验编码器330基于与具有子矩阵Htl和特殊层S的矩阵H对应的生成矩阵G应用低密度奇偶校验编码算法,包括计算生成矩阵G的哈希值并且将它们作为特殊层S的额外奇偶位来包含。在一些实施例中,在支持误纠的低密度奇偶校验编码器330中使用循环冗余校验算法来计算哈希值。支持误纠的低密度奇偶校验编码器330向奇偶插入电路338提供数据字段332和奇偶字段334,所述奇偶插入电路338根据生成矩阵G将来自奇偶字段334的奇偶位插入来自数据字段332的数据位中,以产生编码数据306。
[0027]通过在模式约束编码器324中的模式约束编码之后计算哈希值,编码数据306可以违反模式约束。然而,哈希恢复到将要在误纠处理的外部级中使用的线性性质哈希,从而可以获取和使用小代码字来校正误纠的代码字。哈希值因而可以包括并不接受模式约束编码的少量的位(例如但不限于24或者32个哈希位),但这提供了线性性质哈希的好处,包括低密度奇偶校验解码器不需要测试每个小代码字来校正误纠的代码字。如果执行诸如CRC-32算法的常规循环冗余校验,通过在模式约束编码之前在用户数据中嵌入额外的32位来扩展用户位,则在附加位通过模式约束编码器324时可能丢失线性性质。当哈希值保持线性性质时,而无需对所编辑的字的循环冗余校验值进行重新计算的代价,可以仅仅基于它们的哈希或者循环冗余校验来编辑代码字。
[0028]转向图4,描述了根据本发明一个或多个实施例的包括具有误纠处理的低密度奇偶校验解码器的解码系统412。解码系统412包括接收模拟编码数据410 (与从存储设备或者传输介质中获取的编码数据306对应的模拟信号)的模拟前端电路440。模拟前端电路440处理模拟编码数据410并且向模数转换器电路442提供已处理的模拟信号。模拟前端电路442可以包括(但不限于)现有技术中已知的模拟滤波器和放大器电路。基于本申请所提供的公开内容,本领域技术人员将认识到可以作为模拟前端电路440的一部分来包括的各种电路。在一些实施例中,从相对于存储介质(未示出)设置的读/写头组件(未示出)中得到模拟编码数据410。在其它实施例中,从可操作地用来从传输介质(未示出)接收信号的接收器电路(未示出)中得到模拟编码数据410。传输介质可以是有线的或者无线的。基于本申请所提供的公开内容,本领域技术人员将认识到可以得到模拟编码数据410的各种源。
[0029]模数转换器电路442将已处理的模拟信号转换为对应的一系列数字采样。模数转换器电路442可以是现有技术中已知的能够产生与模拟输入信号对应的数字采样的任何电路。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的各种模数转换器电路。将数字采样提供给均衡器电路444。均衡器电路444向数字采样应用均衡算法以产生均衡输出。在本发明的一些实施例中,均衡器电路444是现有技术中已知的数字有限冲激响应滤波器电路。在一些情况下,均衡器电路444包括足够的存储器来保存一个或多个代码字,直到数据检测器电路446可用于处理,以及可用于通过数据检测器电路446的多个处理。
[0030]数据检测器电路446可操作地用来向所接收的代码字或者数据集应用数据检测算法,并且在一些情况下,数据检测器电路446可以并行地处理两个或更多个代码字。在本发明的一些实施例中,数据检测器电路320是现有技术中已知的维特比(Viterbi)算法数据检测器电路。在本发明的其它实施例中,数据检测器电路446是现有技术中已知的最大后验数据检测器电路。注意,在其最宽泛的含义上使用通用短语“Viterbi数据检测算法”或者“Viterbi算法数据检测器电路”,以指包括(但不限于)双向Viterbi检测算法或者双向Viterbi算法检测器电路的任何Viterbi检测算法或Viterbi算法检测器电路或者其变形。同样,在其最宽泛的含义上使用通用短语“最大后验数据检测算法”或者“最大后验数据检测器电路”,以指包括(但不限于)简化的最大后验数据检测算法和max-log最大后验数据检测算法或者相应检测器电路的任何最大后验检测算法或者检测器电路或者其变形。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的各种数据检测器电路。数据检测器电路446基于来自均衡器电路444或者来自中央存储器电路450的数据集的可用性而启动。
[0031]一旦完成,数据检测器电路446提供包括软数据的检测器输出。如在此使用的那样,在其最宽泛的含义上使用短语“软数据”,以指可靠性数据,可靠性数据的每个实例指示已经正确检测相应的比特位置或者一组比特位置的似然性。在本发明的一些实施例中,软数据或者可靠性数据是现有技术中已知的对数似然比数据。将检测输出提供给局部交织器电路448。局部交织器电路448可操作地用来对检测输出中包含的数据集的子部分(即,局部数据块)进行混洗并且提供存储到中央存储器电路450的已交织代码字。局部交织器电路448可以是现有技术中已知的能够对数据集进行混洗以产生重新排列的数据集的任何电路。
[0032]一旦具有误纠处理的低密度奇偶校验解码器454可用,则从中央存储器电路450存取此前存储的已交织代码字以作为存储的代码字并且通过全局交织器/解交织器电路452对其进行全局交织。全局交织器/解交织器电路452可以是本领域中已知的能够全局地重排代码字的任何电路。全局交织器/解交织器电路452向具有误纠处理的低密度奇偶校验解码器454提供解码器输入。
[0033]具有误纠处理的低密度奇偶校验解码器454向解码器输入应用低密度奇偶校验解码算法,以产生解码输出460。如果数据在具有误纠处理的低密度奇偶校验解码器454中收敛(产生为O的校验子),则在具有误纠处理的低密度奇偶校验解码器454中对所产生的代码字执行一个或多个误纠测试,以确定其是否被误纠。如果检测到误纠,则具有误纠处理的低密度奇偶校验解码器454执行误纠处理的内部级和外部级中的一个或多个,使得解码输出460是正确的。
[0034]在误纠处理的内部级中,使用特殊层S462来执行基于全矩阵H102的额外的低密度奇偶校验解码。换言之,对全矩阵H102而不是仅仅对子矩阵Htl执行低密度奇偶校验解码算法,使得解码输出460是基于全矩阵H102的代码字。
[0035]在误纠处理的外部级中,使用基于特殊层S计算的哈希值来查找与来自主低密度奇偶校验解码的代码字相结合的相应小代码字。因此,解码输出460中的代码字与来自查找表或者小代码字列表464的小代码字相结合。在硬判决队列466中存储解码输出460中的代码字或者已校正的代码字。注意,尽管在具有误纠处理的低密度奇偶校验解码器454之外描述特殊层S462和小代码字列表464,以例示误纠处理的内部级和外部级的操作,但在一些实施例中,可以在具有误纠处理的低密度奇偶校验解码器454中内部地执行两级误纠处理。
[0036]硬判决队列466中的代码字通过奇偶移除电路468来处理以移除奇偶位,产生在模式约束解码器470中进行解码的数据位。模式约束解码器470反转(reverse)由编码系统304中的模式约束编码器324执行的编码。对所产生的解码位执行通道循环冗余校验472。如果检测到错误,则使用循环冗余校验校正的小代码字列表474对硬判决队列466中存储的代码字进行校正。在其它实施例中,其它外部数据校验和校正技术可以作为通道循环冗余校验472的替代来应用。基于本申请所提供的公开内容,本领域技术人员将认识到可以与本发明的不同实施例相关地使用的各种数据一致性校验和校正算法。一旦满足通道循环冗余校验472,则从解码系统412输出解码用户数据414。
[0037]当具有误纠处理的低密度奇偶校验解码器454所应用的数据解码算法收敛失败并且不允许更多的局部迭代(通过具有误纠处理的低密度奇偶校验解码器454的迭代)时,经由全局交织器/解交织器452将来自具有误纠处理的低密度奇偶校验解码器454的软解码器输出传输回中央存储器电路450。在将软解码输出存储到中央存储器电路450之前,全局地解交织软解码输出,以产生存储到中央存储器电路450的全局解交织的输出。全局解交织反转先前向所存储的代码字应用的全局交织,以产生解码器输入。一旦数据检测器电路446可用,则从中央存储器电路450存取此前存储的解交织输出并且通过局部解交织器电路456对其进行局部地解交织。局部解交织器电路456重排软解码器输出以反转最初由局部交织器电路448执行的混洗。将所产生的解交织输出提供给数据检测器电路446,其中将其用来指导来自均衡器电路444的作为均衡输出来接收的相应数据集的后续检测。
[0038]转向图5,描述了根据本发明一些实施例的具有误纠处理的低密度奇偶校验解码器500。具有误纠处理的低密度奇偶校验解码器500不限于奇偶校验计算或者消息生成技术的任何特定算法。在具有误纠处理的低密度奇偶校验解码器500中,在变量节点中如同其被解码的那样存储数据位或者符号,并且在多个校验节点中执行奇偶校验。如同所设计的低密度奇偶校验码那样选择变量节点和校验节点之间的连接(或者边缘)。矩阵H中的非零元素表示变量节点和校验节点之间的连接,其中列表示变量节点,行表示校验节点,并且对于非二进制解码器,处于变量节点列和校验节点行的交叉点处的来自伽罗华域的随机非零元素表示变量节点和校验节点之间的连接并且提供变量节点和校验节点之间的消息的置换(permutation)。在迭代处理中在连接的变量节点和校验节点之间传递消息,以将与应当出现在变量节点中的值有关的置信度传递到所连接的校验节点。基于这些消息在校验节点中执行奇偶校验,并且如果有必要的话,将结果返回到所连接的变量节点以更新置信度。非二进制低密度奇偶校验解码器中的消息是多维向量(一般为空似然概率向量或者对数似然比率向量)。
[0039]在存储器504中存储具有误纠处理的低密度奇偶校验解码器500的输入数据502。输入数据502包括表示变量节点值概率的软值。将来自存储器504的概率值506提供给变量节点处理器510,其生成变量节点到校验节点消息520,所述消息520包含每个位或符号的感知值(perceived value)的概率值。校验节点处理器522接收变量节点到校验节点消息520并且基于来自所连接的变量节点的消息执行每个校验节点的奇偶校验计算。校验节点处理器522还生成校验节点到变量节点消息524,使得变量节点处理器310基于来自所连接的校验节点的校验节点到变量节点消息524更新每个变量节点的感知值。
[0040]在基于最小和的低密度奇偶校验解码器中,校验节点处理器522选择最低(或者最小)对数似然比率值并且将它们在进行标志调整的情况下提供回所连接的变量节点。通过变量节点处理器510或者校验节点处理器522或者两者,在局部解码迭代期间还可以在存储器504中更新已更新的变量节点值。还可以将来自变量节点处理器510的概率值512提供给生成硬判决输出516的硬判决输出电路514。
[0041 ] 低密度奇偶校验解码器500中的调度器和误纠处理电路530控制低密度奇偶校验解码器500中的矩阵H的处理,例如但不限于,控制校验节点到变量节点和变量节点到校验节点消息生成的顺序、奇偶校验和变量节点更新,以及初始地导致变量节点处理器510和校验节点处理器522仅仅使用子矩阵Htl来解码输入数据502。调度器和误纠处理电路530还实施误纠处理。
[0042]校验子和哈希计算电路532通过将奇偶校验矩阵Htl的低密度奇偶校验解码的硬判决输出V和子矩阵Htl相乘来计算校验子,并且通过将特殊层S的低密度奇偶校验解码的硬判决输出和特殊层S相乘来计算哈希值。因此,其中排除特殊层S106,基于子矩阵HtlKM计算校验子,以与校验子相同的方式来计算哈希值,并且其中排除子矩阵HtlIOl基于特殊层S106计算哈希值。校验子和哈希计算电路532可以实现为独立的电路,或者包含校验子和哈希计算电路的组合电路。
[0043]在输入数据502的仅仅使用子矩阵Htl的初始解码之后,如果校验子和哈希计算电路532计算的校验子为O (指示数据已经收敛),则校验子和哈希计算电路532计算哈希并且调度器和误纠处理电路530确定哈希是否为O。如果哈希不为零,则调度器和误纠处理电路530实施误纠处理的内部级,导致变量节点处理器510和校验节点处理器522使用整个矩阵H102重复输入数据502的解码。在一些实施例中,如果在初始解码之后哈希为零,则循环冗余校验电路536对通过编码器并入用户位的外部循环冗余校验位执行循环冗余校验,并且如果循环冗余校验失败,则识别到误纠并且调度器和误纠处理电路530实施误纠处理的内部级。在一些实施例中,将其它错误校正技术与误纠处理相结合,例如但不限于针对性符号翻转。
[0044]在使用整个矩阵H102重复输入数据502的解码之后并且校验子再次为0,则通过调度器和误纠处理电路530基于由校验子和哈希计算电路532计算的哈希值,以及在一些实施例中,基于循环冗余校验来重复误纠测试。如果再次识别到误纠,调度器和误纠处理电路530实施误纠处理的外部级,使用校验子和哈希计算电路532在误纠处理的内部级期间计算的哈希来查找与哈希相关联的小代码字。如果查找到小代码字,则通过以XOR操作组合小代码字和误纠的代码字来校正误纠的代码字,以产生校正的代码字。
[0045]转向图6,描述了根据本发明一些实施例的内部级误纠处理的操作的流程图600。按照流程图600,读取数据扇区(块602)。在一些实施例中,通过相对于磁存储介质设置的读/写头组件读取数据扇区。在其它实施例中,从可操作地从传输介质接收信号的接收器电路得到数据扇区。计算数据扇区的软输入(块604)。在一些实施例中,这通过诸如Viterbi检测器或者最大后验数据检测器电路的数据检测器来执行。在禁用奇偶校验矩阵H中的特殊层的情况下,对数据扇区软输入执行低密度奇偶校验解码(块606 )。确定所产生的校验子是否为O (块610)。通过将在特殊层被禁用的情况下的低密度奇偶校验解码的硬判决输出与子矩阵Htl相乘来计算校验子。如果校验子为O,则确定所产生的哈希是否为O(块612)。通过将特殊层的硬判决输出与特殊层相乘来计算哈希。如果在块612中确定哈希为O,则在一些实施例中,则认为通过在特殊层被禁用的情况下的低密度奇偶校验解码所产生的代码字正确,并且使用代码字的硬判决输出(块622)。如果在块612确定哈希不为O或者在块610确定校验子不为0,则在使能奇偶校验矩阵H中的特殊层的情况下,对数据扇区软输入重复低密度奇偶校验解码(块614)。进行所产生的校验子是否为O的另一次确定(块616)。如果在允许的局部和全局解码迭代次数之后在块616确定校验子不为0,则数据收敛失败并且可以执行后期处理校正(块624)。这样的后期处理校正可以包括任何类型的数据校正或者错误恢复技术,诸如针对性符号翻转。如果后期处理校正没有成功或者不可用,则解码失败。如果在块616确定校验子为0,则确定所产生的哈希是否为O (块620)。如果哈希为0,则认为解码成功并且使用代码字的硬判决输出(块622)。如果哈希不为0,则执行外部级误纠处理(块626)。在其它实施例中,在块612和620基于例如但不限于循环冗余校验的外部测试和哈希值来识别误纠。
[0046]转向图7,描述了根据本发明一些实施例的外部级误纠处理的操作的流程图700。按照流程图700,使用哈希值来搜索具有相同哈希值的小代码字(块702)。使用针对子矩阵Htl预先计算的小代码字列表及其对应的哈希值来执行块702。此外,通过将特殊层的硬判决输出与特殊层相乘来计算低密度奇偶校验解码器中生成的哈希值。在按对存储小代码字及其对应哈希值(在设计时针对奇偶校验矩阵H的特殊层S预先计算)的查找表中搜索小代码字。确定是否查找到具有匹配哈希值的小代码字(块704)。如果没有,则因为没有可用于校正误纠的代码字的小代码字,所以外部级误纠处理失败,并且执行后期处理校正(块706)。这样的后期处理校正可以包括任何类型的数据校正或者错误恢复技术,诸如针对性符号翻转。如果后期处理校正没有成功或者不可用,则解码失败。
[0047]如果在块704确定使用低密度奇偶校验解码器中计算的哈希值查找到小代码字,则将小代码字应用到误纠的代码字(块708)。在一些实施例中,这通过以XOR操作组合小代码字和误纠的代码字来实现。重新计算通道循环冗余校验(块710)。确定是否满足通道循环冗余校验(块712)。如果是,则认为校正的代码字正确并且使用校正的代码字的硬判决输出(块714)。如果不满足通道循环冗余校验,则确定是否已经全部尝试过全矩阵H的小代码字列表(块716)。如果是,则因为没有可用于校正误纠的代码字的小代码字,所以外部级误纠处理失败,并且执行后期处理校正(块706)。如果余留有将要尝试的附加小代码字,则选择另一个小代码字并且将其应用到误纠的代码字(块720)。重新计算通道循环冗余校验(块710),并且在余留有将要尝试的小代码字时操作继续,以校正误纠的代码字。使用针对全奇偶校验矩阵H预先计算的经压缩的小代码字列表来执行块716和720。
[0048]尽管本申请所公开的具有误纠处理的低密度奇偶校验解码器不限于任何特定应用,但在图8和9中显示了受益于本发明实施例的应用的几个示例。转向图8,例示了作为根据本发明一些实施例的具有误纠处理的低密度奇偶校验解码器的示例性应用的存储系统800。存储系统800包括读通道电路802,所述读通道电路802包括根据本发明一些实施例的具有误纠处理的低密度奇偶校验解码器。存储系统800可以例如是硬盘驱动器。存储系统800还包括前置放大器804、接口控制器806、硬盘控制器810、马达控制器812、主轴马达814、盘片816和读/写头组件820。接口控制器806控制到/来自盘片816的数据的寻址和时序。盘片816上的数据由当读/写头组件适当地位于盘片816上时可以由读/写头组件820检测的一组磁信号构成。在一个实施例中,盘片816包括依据纵向或者垂直的记录方案来记录的磁信号。
[0049]在典型的读操作中,通过马达控制器812将读/写头组件820精确地定位于盘片816上的期望数据磁道上。马达控制器812不仅相对于盘片816定位读/写头组件820,并且还通过在硬盘控制器810的指导下将读/写头组件820移动到盘片816上的适当数据磁道来驱动主轴马达814。主轴马达814以确定的旋转速度(RPM)旋转盘片816。一旦将读/写头组件820放置于邻近适当的数据磁道,则随着由主轴马达814旋转盘片816,读/写头组件820感测表示盘片816上的数据的磁信号。将所感测的磁信号作为表示盘片816上的磁数据的连续、微小模拟信号来提供。将该微小模拟信号从读/写头组件820经由前置放大器804传输到读通道电路802。前置放大器804可操作地用来放大从盘片816存取的微小模拟信号。读通道电路802进而解码和数字化所接收的模拟信号,以重现原始写入盘片816的信息。将该数据作为读数据822提供给接收电路。作为处理所接收信息的一部分,读通道电路802使用具有误纠处理的低密度奇偶校验解码器对所接收的信号执行数据解码处理。可以与以上关于图1-5所公开的解码器一致地来实现这样的具有误纠处理的低密度奇偶校验解码器。在一些情况下,可以与以上关于图6-7所公开的流程图一致地来执行具有误纠处理的数据解码。写操作基本上与在前读操作相反,其中写数据824被提供给读通道电路802并且被写入盘片816。
[0050]应当注意到,可以将存储系统800集成在诸如(例如)基于RAID (廉价盘冗余阵列或者独立盘冗余阵列)的存储系统的较大存储系统中。这样的RAID存储系统通过冗余(将多个盘组合为一个逻辑单元)来增加稳定性和可靠性。数据可以分布在根据多种算法而被包含在RAID存储系统中并且操作系统可以将其作为单个盘来访问的多个盘上。例如,可以将数据镜像到RAID存储系统中的多个盘上,或者可以按照多种技术将数据分段并且分布在多个盘上。如果RAID存储系统中的少量盘发生故障或者变得不可用,则可以使用错误校正技术基于来自RAID存储系统中其它盘的剩余数据部分来重现丢失的数据。RAID存储系统中的盘可以是(但不限于)诸如存储系统800的个体存储系统,并且可以相互靠近或者为了增加安全性而分布得更广。在写操作中,将写数据提供给控制器,其在盘上存储写数据(例如通过镜像或者通过条带化写数据)。在读操作中,控制器从盘获取数据。控制器接着将RAID存储系统作为单个盘来产生所生成的读数据。
[0051 ] 转向图9,显示了包括发射器902和接收器904的无线通信系统900或者数据传输设备,所述接收器904包括根据本发明一些实施例的具有误纠处理的低密度奇偶校验解码器。通信系统900包括本领域已知的能够通过传输介质906发射编码信息的发射器902。接收器904从传输介质906接收编码数据。接收器904包含具有误纠处理的低密度奇偶校验解码器。可以与以上关于图1-5所公开的解码器一致地来实现这样的具有误纠处理的低密度奇偶校验解码器。在一些情况下,可以与以上关于图6-7所公开的流程图一致地来执行具有误纠处理的数据解码。
[0052]低密度奇偶校验技术可应用于虚拟地经由任何通道的信息传输或者虚拟地在任何介质上的信息存储。传输应用包括(但不限于)光纤、射频通道、有线或无线局域网、数字用户线路技术、无线蜂窝、经由诸如铜或光纤的任何介质的以太网、诸如有线电视的有线信道以及地球卫星通信。存储应用包括(但不限于)硬盘驱动器、光盘、数字视频盘、磁带和诸如随机动态访问存储器、NAND闪存、NOR闪存、其它非易失性存储器和固态驱动器的存储器设备。
[0053]应当注意到,上面应用中所述的各种块可以与其它功能一同以集成电路来实现。这样的集成电路可以包括给定块、给定系统或者给定电路的全部功能,或者仅仅块、系统或电路的子集。而且,可以跨越多个集成电路来实现块、系统或者电路的元件。这样的集成电路可以是本领域已知的任何类型的集成电路,包括(但不限于)单片集成电路、倒装芯片集成电路、多芯片模块集成电路和/或混合信号集成电路。还应当注意到,可以以软件或者固件来实现在此所述的块、系统或者电路的各种功能。在一些这样的情况下,可以使用其软件或者固件等同方式来实现整个系统、块或者电路。在其它情况下,可以以软件或者固件来实现给定系统、给定块或者给定电路的一部分,而以硬件来实现其它部分。
[0054]总之,本发明提供了新的用于具有误纠处理的低密度奇偶校验解码的装置和方法。尽管以上给出了本发明一个或多个实施例的详细描述,但对于本领域技术人员而言,在不脱离本发明实质的前提下,各种替代、修改和等同形式将是显而易见的。因此,以上描述不应当被用来限制本发明的范围,本发明的范围由所附权利要求来限定。
【权利要求】
1.一种数据处理系统,包含: 解码器电路,可操作地用来基于复合矩阵的第一部分对解码器输入应用解码算法,以产生代码字; 校验子计算电路,可操作地用来基于所述代码字和所述复合矩阵的所述第一部分来计算校验子;以及 哈希计算电路,可操作地用来基于所述复合矩阵的第二部分计算哈希,其中当所述校验子指示基于所述复合矩阵的所述第一部分的所述代码字正确但第二次测试指示所述代码字被误纠时,所述解码器电路可操作地用来至少部分地基于所述哈希来校正所述代码字。
2.如权利要求1所述的数据处理系统,其中所述解码器电路包含低密度奇偶校验解码器并且所述复合矩阵包含奇偶校验矩阵。
3.如权利要求1所述的数据处理系统,进一步包含:误纠处理电路,可操作地用来通过基于整个复合矩阵对所述解码器输入重新应用所述解码算法来致使所述解码器电路校正所述代码字。
4.如权利要求1所述的数据处理系统,其中所述第二次测试包含比较所述哈希和预期值。
5.如权利要求1所述的数据处理系统,其中所述第二次测试包含比较基于所述代码字而计算的循环冗余校验位和所述解码器输入中的源循环冗余校验位的循环冗余校验。
6.如权 利要求1所述的数据处理系统,进一步包含:误纠处理电路,可操作地用来通过使用所述哈希来搜索子代码字并且组合所述子代码字和所述代码字,与所述解码器电路一同来校正所述代码字。
7.如权利要求6所述的数据处理系统,其中所述误纠处理电路可操作地用来使用所述哈希在子代码字和哈希值对的查找表中搜索所述子代码字。
8.如权利要求6所述的数据处理系统,其中所述误纠处理电路可操作地用来通过将组合所述子代码字和所述代码字而产生的代码字与预期值进行比较来确定组合所述子代码字和所述代码字是否校正了所述误纠的代码字。
9.如权利要求6所述的数据处理系统,其中所述误纠处理电路可操作地用来使用循环冗余校验来确定组合所述子代码字和所述代码字是否校正了所述误纠的代码字。
10.如权利要求1所述的数据处理系统,进一步包含:低密度奇偶校验编码器电路,可操作地用来基于与所述复合矩阵对应的奇偶生成矩阵来对输入数据进行编码。
11.如权利要求10所述的数据处理系统,进一步包含模式约束编码器,可操作地用来对所述输入数据进行编码以排除不需要的数据模式,其中根据所述低密度奇偶校验编码器的输出得到所述解码器输入,其中所述低密度奇偶校验编码器电路可操作地用来生成与所述复合矩阵的所述第二部分对应的奇偶位,并且其中在不通过所述模式约束编码器的情况下将所述奇偶位提供给所述解码器电路。
12.如权利要求1所述的数据处理系统,其中所述解码器输入中与所述复合矩阵的所述第二部分对应的奇偶位满足线性性质。
13.如权利要求1所述的数据处理系统,其中所述数据处理系统作为从由存储设备和接收设备所组成的组中选择的设备的一部分来实现。
14.如权利要求1所述的数据处理系统,其中所述数据处理系统作为集成电路来实现。
15.一种解码数据的方法,包含: 基于复合矩阵的第一部分对数据应用解码算法来产生代码字; 将所述代码字和所述复合矩阵的所述第一部分相乘来产生校验子; 基于所述复合矩阵的第二部分对所述数据应用所述解码算法来产生第二代码字; 将所述第二代码字和所述复合矩阵的所述第二部分相乘来产生哈希;以及当所述校验子指示所述代码字正确但第二次测试指示所述代码字被误纠时,至少部分地基于所述哈希来校正所述代码字。
16.如权利要求15所述的方法,其中当所述校验子指示所述代码字正确但第二次测试指示所述代码字被误纠时,通过基于整个复合矩阵对所述数据重新应用所述解码算法来校正所述代码字。
17.如权利要求15所述的方法,其中通过使用所述哈希在子代码字和哈希值对查找表中搜索子代码字并且以异或操作组合所述子代码字和所述代码字来校正所述代码字。
18.如权利要求17所述的方法,进一步包含:根据循环冗余校验来测试所述校正的代码字。
19.如权利要求15所述的方法,其中所述第二次测试包含比较所述哈希和预期值。
20.—种存储系统 ,包含: 存储介质; 头组件,相对于所述存储介质而设置并且可操作地用来提供与所述存储介质上的信息对应的感测信号; 数据处理器系统,包含: 模数转换器电路,可操作地用来对根据所述感测信号而得到的模拟信号进行采样,以产生一系列数字米样; 均衡器电路,可操作地用来均衡所述数字采样,以产生数据集; 数据检测器电路,可操作地用来对所述数据集应用数据检测算法,以产生检测输出;以及 数据解码电路,包括: 解码器,可操作地用来基于复合矩阵的第一部分对所述检测输出应用解码算法,以产生代码字; 校验子计算电路,可操作地用来基于所述代码字和所述复合矩阵的所述第一部分来计算校验子;以及 哈希计算电路,可操作地用来基于所述复合矩阵的第二部分计算哈希,其中当所述校验子指示基于所述复合矩阵的所述第一部分的所述代码字正确但第二次测试指示所述代码字被误纠时,所述解码器可操作地用来至少部分地基于所述哈希来校正所述代码字。
【文档编号】H03M13/11GK103873069SQ201310447343
【公开日】2014年6月18日 申请日期:2013年9月27日 优先权日:2012年12月8日
【发明者】A·A·波罗特夫, 杨少华, 李宗旺, M·I·格里查克, L·D·伊万诺维克, 张帆, 韩洋 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1