具有进行中错误恢复的ldpc解码的制作方法

文档序号:6351867阅读:186来源:国知局
专利名称:具有进行中错误恢复的ldpc解码的制作方法
具有进行中错误恢复的LDPC解码对其他申请的交叉引用
本申请要求2010年I月27日提交的、标题为“具有自动错误恢复的LDPC解码”的美国临时专利申请No. 61/336, 931 (代理人案号No. LINKP048+)(为所有目的将其通过引用的方式合并于此处)、以及2010年2月I日提交的、标题为“在磁性记录中的基于概率的缺陷处理”的美国临时专利申请No. 61/337, 286 (代理人案号No. LINKP053+)(为所有目的将其通过引用的方式合并于此处)的优先权。
背景技术
存储系统中的解码器通常不处理噪声数据并且因此解码通常是相当直接的过程。在一些系统中,软输出维特比(Viterbi)解码器首先执行解码,并且随后低密度奇偶校验(LDPC)解码器对该数据进行操作。对于从存储系统读取回来的大部分数据,该数据可以第一次时被适当地解码。然而,如果该解码器失败,必须使用错误恢复技术。尽管存在一些错误恢复技术,如果能够开发更快和/或产生更好结果的新的恢复技术将是所期望的(例如,如下是所期望的读取处理器能够解码其他恢复技术不能适当地解码的非常有噪声的数 据)。


在下面的详细的描述和附图中公开了本发明的各种实施例。图I是示出了错误恢复过程(在其中,如果需要,与解码器相关联的数据被调整)的实施例的流程图。图2A是显示了被配置为执行错误恢复(包括通过在适当处调整信息)的系统的实施例的图。图2B是示出了用于执行进行中恢复(on the fly recovery)的过程(包括通过在适当处调整解码信息)的实施例的流程图。图3是显示了时间表驱动的恢复的实施例和时间表和缺陷检测驱动的恢复的实施例的图。图4是显示了被用于实现描述时间表和/或缺陷检测驱动的恢复的表的可编程寄存器的实施例的图。图5是显示了深缺陷的实施例的波形。图6是示出了用于检测深缺陷并响应于所检测到的深缺陷的过程的实施例的流程图。图7是显示了被配置为执行错误恢复的系统(包括通过调整与软输出维特比(Viterbi)解码器相关联的参数)的实施例的图。图8是示出了与软输出维特比(Viterbi)解码器相关联的参数(如果需要。其被调整)的实施例的图。图9是显示了被配置为执行错误恢复的系统(包括通过调整由LDPC输出的LLR信号)的实施例的图。
具体实施例方式本发明可以以多种方式而被实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在被耦合到所述处理器的存储器上和/或由被耦合到所述处理器的所述存储器提供的指令的处理器。在本说明书中,这些实现(或本发明可以采用的任何其他形式)可以被称为技术。一般而言,所公开的过程的步骤的次序可以在本发明的范围内而被改变。除非另有说明,诸如被描述为被配置成执行任务的处理器或存储器的组件可以被实现为被临时配置成在给定时间执行所述任务的通用组件或被实现为被制造成执行所述任务的专用组件。如此处所使用的,术语“处理器”指的是被配置为处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核。下面连同附图(其示出了本发明的原理)提供本发明的一个或多个实施例的详细描述。本发明是结合这样的实施例而被描述的,但是本发明不限于任何实施例。本发明的范围仅受权利要求的限制,并且本发明涵盖多种替代、修改和等同。在下面的描述中阐述了许多具体细节以便提供本发明的完全理解。这些细节是为了示例的目的而被提供,并且本 发明可以根据权利要求而被实施,而无需这些具体细节中的一些或全部。为了清楚的目的,没有详细地描述与本发明相关的技术领域中已知的技术材料,以便本发明不被不必要地混淆。图I是示出了错误恢复过程(在其中,如果需要,与解码器相关联的数据被调整)的实施例的流程图。在所显示的例子中,在被编码的数据(例如,在通信信道上接收或从存储介质读回)不能够被成功解码的情况下该过程被执行。例如,如果数据能够被成功地解码(例如,在第一次尝试时),则不必执行该示例过程。在一些实施例中,将该技术与其他错误恢复技术相结合,例如以使得另一错误恢复技术被首先执行,并且如果该错误恢复技术是不成功的则执行此错误恢复技术。在150,决定是否调整与解码器相关联的数据。在一些实施例中,该解码器是软输出维特比(Viterbi)解码器或低密度奇偶检验(LDPC)解码器。在一些实施例中,150处的决定由时间表和/或若干迭代规定。在一些实施例中,150处的决定由缺陷检测器驱动,并且任何调整仅在该缺陷检测器检测到缺陷时被执行。如果在150决定调整数据,则在152调整所述数据以获得经调整的数据。在一些实施例中,该数据是被馈送到解码器的输入。在一些实施例中,该数据是与该解码器相关联的参数或设置并且被用于执行解码。一些调整的例子在下面被进一步详细地描述。在154,使用解码器和经调整的数据执行解码。例如,可以使用所述经调整的输入和/或经调整的参数来执行解码。如果在150决定不调整数据,则在156使用解码器和与解码器相关联的数据来执行解码。在一些实施例中,使用未修改的解码器输入和/或解码器参数来执行初始解码迭代,并且如果该解码器仍然是不成功的(例如,因为该噪声是非常严重的并且该系统正经历执行解码的困难时间),则该系统开始调整解码器输入和/或参数。图2A是显示了被配置为执行错误恢复的系统(包括通过在适当处调整信息)的实施例的图。在一些实施例中,在图2A中示出的系统是读取处理器的一部分,所述读取处理器访问并处理存储在存储介质(诸如(磁)盘驱动器介质)上的被编码的数据。在一些实施例中,在图2A中示出的系统是接收器(例如,收发器的接收部分)的一部分。在缓冲器100处接收有限脉冲响应(FIR)信号。缓冲器100存储所述FIR数据的副本并且将其传递到FIR调整器102和控制器110。FIR调整器102被配置为使所述FIR信号未经修改地穿过或修改从缓冲器100接收的所述FIR信号。在该例子中,第一次处理FIR信号时,FIR调整器102是关闭的并且不对所述FIR信号进行改变并将其未经修改地传递到软输出维特比(Viterbi)解码器104。执行修改的时间或场合和/或在所接收的FIR信号上执行的特定修改由控制器110控制。在该例子中,例如通过确定是否打开那些块中的相关联的调整,控制器110控制FIR调整器102和/或Viterbi LLR调整器106。在一些实施例中,控制器110具有时间表(schedule)并在确定何时打开调整器102和/或106时遵循该时间表。在一些实施例中,控制器110基于从缓冲器100接收的所述FIR信号来决定是否打开调整器102和/或106。在一些实施例中,控制器110由配置寄存器的阵列控制(例如,关于在控制调整器102和/或106时是使用时间表还是缺陷检测器)。 软输出维特比(Viterbi)解码器104处理从FIR调整器102接收的FIR信号。如之前所描述的,这可以是经修改的版本或未经修改的版本。软输出维特比(Viterbi)解码器104输出Viterbi对数似然比(LLR)。一般而言,LLR是解码器有多么确信特定位(或码元)是特定值的表示或估计。LLR的范围将是从-X到X,其中-X指示该检测器100%确定所接收的位是0 (或1,取决于如何定义LLR等式),并且X指示该检测器100%确定所接收的位是I (或在一些系统中为O)。LLR的值为0指示该解码器在其决定中被对分并且不倾向于一方或另一方。该状态可以被称为擦除,因为下游处理器可以将此与擦除(在其中该系统没有从所述存储介质读取任何东西)类似地对待。Viterbi LLR调整器106未经修改地将所接收的Viterbi LLR传递通过或基于来自控制器110的控制信号修改所接收的Viterbi LLR0在任一情况下,所述经修改的或未经修改的LLR被传递到LDPC解码器108。被传递到FIR调整器102和Viterbi LLR调整器106的控制信号在此例子中是独立的,并且因此它们可以两者均是打开的、一个可以是打开的而另一个是关闭的,等等。换言之,调整器102和106打开的时间或场合不必是耦合的。LDPC解码器108执行LDPC解码,并且如果成功则输出经解码的数据。例如,在存储系统中,所述经解码的数据可以被传递到应用或请求执行读取操作的其他实体。如果LDPC解码器108在执行解码时是不成功的,则所述LDPC解码器进行一次或多次附加的尝试,直到达到某个最大值。在一些实施例中,系统包括配置寄存器的阵列,并且这些配置寄存器中的一个控制或者否则设置LDPC解码器尝试解码该数据的最大次数。在一些应用中,使用配置寄存器(例如,与对该系统如何操作进行硬编码相对比)是所期望的。在一个例子中,在图2A中所显示的系统被实现在单个半导体芯片(诸如现场可编程门阵列(FPGA)或应用专用集成电路(ASIC))上,其由存储系统制造商作为用于他们的存储系统的组件而被购买。所述存储系统制造商可能更喜欢购买可配置的半导体芯片,从而所述系统制造商不需要告诉FPGA或ASIC卖方如何构造该芯片,因此允许所述系统制造商将其设置保密。一旦达到任何最大值并且如果还没有实现适当的解码,则解码传递到FIR调整器102。在此例子中,LDPC解码器108达到最大尝试次数是FIR调整器(如果期望的话)将被控制器110关闭/打开的机会。在FIR调整器102如期望而被配置的情况下(例如,如果期望,在先前FIR信号被允许未经修改地穿过之处,FIR调整器102可以被配置为调整FIR信号,或反之亦然),软输出维特比(Viterbi)解码器104再一次尝试使用可能被修改或可能未被修改的FIR信号来解码该数据。由软输出维特比(Viterbi)解码器104进行的该第二次或更高次尝试解码该数据被称为进行中恢复,因为与返回到存储器并从该存储介质重新读取数据相对比,该系统使用存储在缓冲器100中的信号来重试所述解码。对于一些类型的存储介质,进行中恢复可能比重新读取该存储器更快。例如,在盘驱动器系统的情况下,针对该盘旋转回到正确的角度位置以及针对读取臂在盘的适当部分之上就位,其可能花费长达11 ms。在此时间期间,该系统可能能够执行许多次重试,有可能导致在该数据可以被从存储器重新读取之前成功解码该数据全部。图2B是示出了用于执行进行中恢复的过程(包括通过在适当处调整解码信息)的实施例的流程图。在所显示的例子中,所示出的过程对应于在图2A中示出的系统。在200,决定是否打开FIR调整器。在一些实施例中,控制器跟踪多次迭代(例如, 由软输出维特比(Viterbi)解码器和/或LDPC解码器执行的)并且根据迭代的时间表来决定是否打开FIR调整器。在一些实施例中,控制器在做此决定时使用缺陷检测器。例如,如果控制器中所包括的缺陷检测器发现缺陷或特定类型的缺陷,则该控制器决定打开所述FIR调整器。在在其中控制器使用缺陷检测器的一些实施例中,在浅缺陷发生时决定打开FIR调整器。浅缺陷的一个例子是在其中信号在幅度上被轻微地减小以使得在该信号中观察不到极高的幅度的缺陷。在一些实施例中,通过跟踪(最)高幅度来检测浅缺陷。在一个例子中,缺陷检测器跟踪何时接收到两个最高幅度。在接收到两个最高幅度的任何时刻,重置计数器。如果所述计数器达到某个值(即,没有被重置),则所述信号的该部分被标记为是缺陷。随后该缺陷区域内的所有那些最高幅度的平均幅度(比如说是A)被计算并被与平均正常幅度(比如说是B)相比较。一种比较的方式是用B除A。如果比率大于某个预定义的阈值(比如说50%),则该缺陷是浅缺陷。如果在200决定打开FIR调整器,则在202调整FIR以获得经调整的FIR并将其传递到软输出维特比(Viterbi)解码器。在一些实施例中,FIR调整器被配置为将该缺陷区域内的FIR信号恢复到其正常幅度。例如,如果该缺陷的比率是50%,则将该FIR信号的幅度乘以2以匹配所述平均正常幅度。在202处的调整之后,或者如果在200决定不打开FIR调整器,则在204使用软输出维特比(Viterbi)解码器来酌情处理所述未经调整的FIR或经调整的FIR。例如,所述软输出维特比(Viterbi)解码器执行解码并输出LLR信号(在此处有时被称为Viterbi LLR以将其与由LDPC输出的LLR相区分)。在206,决定是否打开维特比(Viterbi) LLR调整器。在一些实施例中,如上面所描述的(例如,如由可编程寄存器的阵列所规定的),控制器根据时间表和/或使用缺陷检测器来决定是否打开Viterbi LLR调整器。在在其中控制器使用缺陷检测器的一些实施例中,当缺陷检测器检测到深缺陷时,决定打开Viterbi LLR调整器。深缺陷可能作为存储介质上的有缺陷的磁性颗粒(其不能被适当地磁化)的结果而出现。不管是什么导致了深缺陷,深缺陷的特征在于与被写入的信号具有很少关系或没有关系的信号。一些深缺陷的例子在下面被进一步详细地描述。在一些实施例中,Viterbi LLR调整器被配置为将与深缺陷部分相对应的那些LLR值调整到与擦除相对应的LLR值(例如,通过将所述LLR设置为O,其导致下游处理器将该块数据作为擦除对待或作为如下的一块数据来对待针对该一块数据,该检测器在该块数据的值上被50-50对分)。在一些实施例中,针对深缺陷部分将LLR设置为0是有吸引力的,因为所述深缺陷部分(以及由该部分的处理产生的信息)不是被存储在那里的数据的准确的或适当的反映,并且将所述LLR设置为0导致下游处理器对所述信号的该部分给予很少的权重或不给予权重。在一些实施例中,LLR调整器被配置为对与所检测到的缺陷部分相对应的那些LLR值减小幅度但是保留LLR的正负号。例如,如果LLR的范围为从-15到15并且未经修改的LLR是-13,则示例的经修改的LLR是-10。在一些实施例中,使用保留正负号并减小幅度的线性关系,诸如经修改的LLR = (a X未经修改的LLR),其中0〈 a〈I。在各种实施例中,查找表、阶梯步进函数等等可以被用于调整LLR。在一些实施例中,对与缺陷部分相对应的那些LLR值保留正负号但是减小LLR的幅度是所期望的,因为下游处理器将仍然知道检测器相信该数据是那个值(即,因为这在正负号中被表示)除该检测器多么确定或确信以外因为决定(例如,一块数据是否实际上是0或I)已被降级或降低。检测器假定在读取回 的信号中没有降级而操作,并且对于浅缺陷部分不是这种情况。如果在206决定打开Viterbi LLR调整器,则在208调整LLR以获得经调整的LLR,其被传递到LDPC解码器。在208处的调整之后,或者如果在206决定不打开Viterbi LLR调整器,则在210使用LDPC解码器来酌情处理未经调整的LLR或经调整的LLR。例如,所述LDPC解码器使用被传递给它的所述(未经)调整的LLR值来执行解码;该解码可能是成功的或者可能是不成功的。在212,决定该过程是否终止。在一个例子中,如果LDPC解码器能够成功地解码该数据则该过程终止。在另一例子中,控制器记录(例如,由LDPC解码器和/或软输出维特t匕(Viterbi)解码器来执行的)迭代并且如果达到最大数量的迭代并且尚未实现成功的解码则该过程终止。在一些实施例中,如果达到了这样的最大值,则向诸如应用的请求实体通知该数据是不可用的或是不可读取的。如果在212决定不终止该过程,则在214决定是否重复LDPC。在一些实施例中,如果LDPC在解码时是不成功的,则在使所述软输出维特比(Viterbi)解码器重新尝试解码之前尝试LDPC解码。在一些实施例中,这样的连续尝试的次数(如果需要)被称为局部迭代的次数并且该次数借助于寄存器是可编程的。例如,如果这样的寄存器被设置为5,则如果需要(即,如果该LDPC解码器连续5次解码失败),该LDPC将尝试解码该数据高达连续的5次。如果在214决定重复LDPC处理,则在210使用LDPC解码器酌情处理未经调整的LLR或经调整的LLR。在该例子中,在由所述LDPC解码器尝试的连续解码期间使用所述软输出维特比(Viterbi)解码器和LDPC解码器的相同的设置。换言之,在连续的LDPC解码尝试期间,控制器(至少在本实施例中)不改变FIR调整器或Viterbi LLR调整器的设置。如果在214决定不重复LDPC处理(例如,因为已达到最大数量的局部迭代并且该LDPC仍然是不成功的)则在200决定是否打开FIR调整器。在此例子中,因为任何连续的LDPC尝试结束,所述FIR和/或Viterbi LLR调整器可以依照所期望的被打开/关闭。为了清楚,,此处所示的例子被示出而没有流水线处理或并行/乱序处理。在一些实施例中,流水线处理或并行/乱序处理被用于改善吞吐量。在这样的实施例中,该系统的一部分可能正对一块数据进行工作,而该系统的另一部分正同时地对另一块数据进行工作。图3是显示了时间表驱动的恢复的实施例以及时间表和缺陷检测驱动的恢复的实施例的图。在所显示的例子中,表300示出了被控制器用于决定何时打开/关闭FIR调整器和Viterbi LLR调整器的时间表,并且表350示出了包括何时使用缺陷检测器来决定是否打开调整器的时间表。表300和350中示出的操作的顺序指示只要该解码器是不成功的,何时控制器打开/关闭在其控制下的调整器。如果该解码器是成功的,则该过程终止,并且该控制器返回到所述表的开始,用于要被解码的下一块数据。表300示出了用于4个全局迭代(S卩,行306-312)的设置,其中的每个全局迭代对应于多个局部迭代。全局迭代对应于由软输出维特比(Viterbi)解码器和LDPC解码器进 行的解码尝试(例如,单次尝试)。如上面所描述的,局部迭代的次数是LDPC解码器连续尝试解码一块数据的次数。参考回图2B,这可以是连续执行210的次数(例如,在没有软输出维特比(Viterbi)解码器接管的情况下)。列302示出了用于FIR调整器的设置并且列304示出了用于Viterbi LLR调整器的设置。根据在表300中所显示的设置,在由所述软输出维特比(Viterbi)解码器进行的第一次尝试和由所述LDPC解码器进行的前五次尝试(即,行306)期间,所述FIR调整器和Viterbi LLR调整器是关闭的。换句话说,在这些尝试期间所述FIR调整器和Viterbi LLR调整器将会(分别)将所述FIR和Viterbi LLR不经修改地传过。在表300和350中所显示的值仅是示例性的,并且可以使用全局/局部迭代的任何设置和/或数量。相似地,在由软输出维特比(Viterbi)解码器进行的第二次尝试和由LDPC解码器进行的第6次到第15次(全部的)尝试(与行308相对应)期间,该FIR调整器和Viterbi LLR调整器保持关闭并且不执行修改或调整。在下一批迭代期间(与行310相对应),所述Viterbi LLR调整器被打开(即,输入Viterbi LLR值被修改并且经调整的Viterbi LLR值被输出),而所述FIR调整器保持关闭。在一些实施例中,“是(Yes)”的调整器设置意味着相应的调整器在该时间期间调整被输入到它的所有值。例如,所述FIR调整器将调整被传递给它的所有FIR值并且所述Viterbi LLR调整器将调整被传递给它的所有Viterbi LLR值。在第四批迭代(与行312相对应)中,所述Viterbi LLR调整器被关闭而所述FIR调整器被打开。在各个实施例中,所述FIR调整器和/或Viterbi LLR调整器在被打开时执行各种调整。在一些实施例中,缩放被执行,其中正负号被保留并且幅度被减小。在一些实施例中,FIR或LLR被置零(zero out)。表350不出了由时间表以及由缺陷检测器驱动的恢复。行352和354类似于在表300中示出的行306和308。行356对应于软输出维特比(Viterbi)解码器的第三次全局迭代以及由LDPC解码器进行的第16次到第25次(全部的)尝试。在此时间期间,FIR调整器是关闭的但是Viterbi LLR调整器如所规定的或者否则如由缺陷检测器所指定的而操作。例如,如果在与行356相对应的迭代期间所述缺陷检测器没有检测到任何缺陷,则所述FIR调整器在该时间期间不调整FIR值中的任一个。相反地,如果缺陷检测器检测到缺陷,则所述FIR值中的一些或全部被调整。在一些这样的实施例中,仅调整针对其检测到缺陷的那些FIR值。行358对应于下一批迭代,在该批迭代期间所述FIR调整器由所述缺陷检测器控制并且所述Viterbi LLR调整器是关闭的。在一些实施例中,被从控制器(其包括缺陷检测器)传递到调整器(诸如FIR调整器或Viterbi LLR调整器)的控制信号包括缺陷在其处发生的位置(如果有的话)。在一些实施例中,这样的控制信号包括所述缺陷的描述,诸如预定义的缺陷类型。在一个例子中,所述控制信号包括一位类型的信号,在其中0指示浅缺陷并且I指示深缺陷。在一些其它的实施例中,缺陷部分的(平均)幅度的估算由所述控制器提供给调整器并且该幅度被用于调整FIR或Viterbi LLR中(例如,通过将LLR的幅度减小相应的量或度)。图4是示出了被用于实现描述时间表和/或缺陷检测驱动的恢复的表的可编程寄存器的实施例的图。在一些实施例中,使用表400中示出的可编程寄存器实现图3中示出的表300或350。使用如所示出的可编程或可配置寄存器可能是期望的,因为这允许存储系统制造商依照所期望的配置所述芯片而不揭示系统的优选配置。

在列402中,2位寄存器被用于所述FIR调整器设置。例如,一个2位寄存器被用于与第I次全局迭代相对应的FIR调整器设置,另一 2位寄存器被用于与第2次全局迭代相对应的FIR调整器设置,等等。相似地,2位寄存器被用于与列404中示出的一组迭代相对应的Viterbi LLR调整器设置中的每一个。例如,2位寄存器被用于与第I次全局迭代相对应的Viterbi LLR调整器设置,另一 2位寄存器被用于与第2次全局迭代相对应的ViterbiLLR调整器设置,等等。在此例子中,值00对应于是(Yes),值01对应于否(No),值10对应于遵从缺陷检测器(即,如果所述缺陷检测器检测到缺陷则调整所述数据中的一些或全部,否则不调整),并且11未被定义。在各个实施例中,任何数量的位可以被用于与列406中的LDPC解码器相关联的局部迭代的次数。在一些实施例中,基于期望的最大迭代数来选择位的数量。例如,可以用包含“最差情况”噪声的信号或按照存储系统制造商的要求来运行模拟,并且基于该模拟来计算期望的最大迭代数。图5是显示了深缺陷的实施例的波形。在所显示的例子中,信号部分500和502是深缺陷的例子。在一些实施例中,控制器包括缺陷检测器并且任何深缺陷的检测导致Viterbi LLR调整器根据该缺陷检测器发现了什么而被关闭/打开。在两个深缺陷例子中,为那些位置读取回的信号与被写入的原始信号具有很少的相似性到没有相似性(未示出)。在第一例子中,深缺陷部分500开始于开始为高(例如,在大约 0. 4到 0. 2的范围内),走低(例如, -0.25)并随后走到接近0的值的信号。在第二例子中,深缺陷部分502具有保持在0附近的值。在一些实施例中,缺陷检测器被配置为使用平均幅度检测深缺陷(诸如500和502)。例如,部分500的平均幅度低于部分500和502之外的信号的平均幅度。在一些实施例中,缺陷检测器被配置为检测滑动窗之上的平均幅度;将该平均幅度与阈值相比较以检测浅缺陷。在一些应用中,与横向地存储(例如,在盘平面内)相反,存储系统是在其中信息被垂直地(例如,相对于盘平面竖直地)存储的垂直记录系统。在这样的系统中,如果读取回的FIR信号对于非常长的顺串(run)具有大的正值(或大的负值),则所产生的LLR信号(未示出)将对应于I的或O的顺串(取决于磁化的极性)。例如,深缺陷部分500的开始部分可以对应于具有I的(0的)顺串的LLR信号,并且深缺陷部分500的中间部分可以对应于具有0的(I的)顺串的LLR信号。如果所述被读取回的信号在延续的时间期间接近于0,则所述FIR信号可以对应于奈奎斯特样式(Nyquist pattern)(例如,10101010...)。例如,深缺陷部分500和深缺陷部分502的末端部分可以导致具有所述奈奎斯特样式的LLR信号。图6是示出了用于检测深缺陷并对所检测到的深缺陷响应的过程的实施例的流程图。在一些实施例中,图2A中的控制器110包括缺陷检测器并且控制器110执行此处所示的过程。在600,FIR信号和LLR信号被获得。例如,在图2A中,控制器110从缓冲器100获得FIR和LLR信号。在602标识LLR信号中的预定义样式的位置。例如,该预定义样式可以包括0的顺串、I的顺串和奈奎斯特样式,并且那些样式的位置被标识。在604,ViterbiLLR调整器被配置,使得与所标识的样式中的至少一个相对应的Viterbi LLR值被设置为O。例如,图2A中的控制器110可以用信号通知Viterbi LLR调整器106所检测的深缺陷中的至少一个的(一个或多个)位置,使得相应的Viterbi LLR值可以被置零。 在一些实施例中,步骤604包括基于长度对所标识的位置的列表排序。在一些这样的实施例中,与具有最长预定义样式的位置相对应的Viterbi LLR值被首先调整(S卩,以及与其他的、更短的预定义样式相对应的信号的部分至少对于此次解码尝试不被调整)。例如,参考回图5,深缺陷部分500具有比深缺陷部分502(25)更长的长度(50)。在被配置为基于缺陷长度区分优先次序的实施例中,与深缺陷部分500相对应的Viterbi LLR值在较早的(一次或多次)尝试期间被调整(例如,设置为0),而与深缺陷部分502相对应的ViterbiLLR值不被调整。如果所述解码器不能够适当地解码该数据,则与深缺陷部分500和502相对应的两个Viterbi LLR值两者可以被调整(例如,通过将它们设置为O)。在一些实施例中,这在同样的全局迭代期间发生。例如,参考图3和图5两者,在第3次全局迭代和第16次全部的局部迭代期间(行356),用于图5中的部分500的Viterbi LLR值被调整但是用于图5中的部分502的Viterbi LLR值不被调整。如果解码失败,则在第3次全局迭代和第17次全部的局部迭代期间(同样行356),用于图5中的部分500的Viterbi LLR值如用于部分502的Viterbi LLR值那样被调整。相反地,在一些实施例中,对Viterbi LLR值的任何调整跨越给定的全局迭代中的所有局部迭代保持相同。图7是显示了被配置为执行错误恢复(包括通过调整与软输出维特比(Viterbi)解码器相关联的参数)的系统的实施例的图。尽管此例子显示了控制器700控制FIR调整器704、软输出维特比(Viterbi)解码器702和Viterbi LLR调整器706,则此处所显示的技术可以以任何组合而被使用。例如,与软输出维特比(Viterbi)解码器相关联的参数的调整可以被单独执行(例如,因为系统不包括FIR调整器和Viterbi LLR调整器,或者那些组件被包括但不被打开)。控制器700调整在由软输出维特比(Viterbi)解码器702所执行的Viterbi解码处理中使用的参数。例如,被从控制器700传递到Viterbi解码器702的控制信号包括参数并且那些参数在由Viterib解码器702进行的解码期间被使用。如上面所描述的,在各个实施例中,在决定何时调整与软输出维特比(Viterbi)解码器相关联的参数时可以使用时间表和/或缺陷检测器并且寄存器的阵列可以被用于控制此。图8是示出了与软输出维特比(Viterbi)解码器相关联的参数(如果需要,其被调整)的实施例的图。所显示的节点和转换的数量仅是示例性的,并且可以使用任何数量的节点和/或转换。在图800中,显示了 Viterbi网格(trellis)的一部分。状态802a_808a是可能的开始状态并且状态802b-808b是可能的终止状态。开始状态802a-808a中的每个具有两个可能的转换。例如,当在状态802a (对应于00)时,允许的转换是到状态802b (例如,因为输入=0导致开始状态00变成00)或到状态804b (例如,因为输入=1导致00的开始状态变成01)。相似地,从状态804a的允许的转换是到状态806b (例如,因为输入=0导致开始状态从01变成10)和状态808b (例如,因为输入=1导致开始状态从01变成11)。可能的转换中的每个(例如,从状态802a到状态802b,从状态802a到状态804b,等等)与参数相关联,在图800中被显示为
这些参数被称为转移值(branch values)并且被用于计算错误,所述
错误而又被用于计算穿过所述网格的路径,其导致由所述软输出维特比(Viterbi)解码器所作的决定。在一些实施例中,在解码失败一次或多次的情况下调整这些参数。如所显示的调整与软输出维特比(Viterbi)解码器相关联的参数导致所述解码器输出不同的ViterbiLLR值和/或不同的决定(例如,先前的负LLR值在之后的重复期间被反而决定为是正的,指示该解码器已改变了其关于相应位是0还是I的看法)。图850显示了在其中与软输出维特比(Viterbi)解码器相关联的参数被调整的实施例的图。在所显示的例子中,存储N组Viterbi参数。在一些实施例中,Viterbi参数组852到854被实现为(例如,通过驱动器)可编程的寄存器。多路复用器856选择所述参
数组中的一个作为参数. ,ft,... . , I7来输出。例如,多路复用器856的选择输入可以被图7中的控制器700控制。寄存器852到854和多路复用器856被包括在软输出维特t匕(Viterbi)解码器702中并且多路复用器856的输出在解码处理期间被软输出维特比(Viterbi)解码器702使用。图9是显示了被配置为执行错误恢复(包括通过调整由LDPC输出的LLR信号)的系统的实施例的图。尽管此例子结合FIR调整器906和Viterbi LLR调整器912显示了LDPC LLR调整器900,在各个实施例中,可以以任何组合来使用LDPC LLR调整(例如,单独地、与一个或多个与软输出Viterbi解码器相关联的参数的调整相结合,等等)。在此例子中,LDPC LLR调整器900被配置为调整(如所需的或如所定向的)由LDPC解码器904所输出的LDPC LLR水平。在一些情况下,被调整器902传递到SOVA 910的LDPC LLR值被调整,并且在其他情况下不被调整;这由控制器900来控制。在解码被从LDPC解码器904转交给软输出维特比(Viterbi)解码器910的情况下(例如,当从全局迭代I改变到2时,从2到3时,等等),该LDPC LLR值被使用。如果该数据是相对无噪声的以使得解码在其第一次被尝试时被成功执行,则不使用该LDPC LLR信号。在一些实施例中,深缺陷区域内的FIR信号根本是不可信的并且此深缺陷区域内的LDPC LLR是更可靠的。在第二次全局迭代等等中,SOVA将使用FIR信号和LDPC LLR两者来重新计算Viterbi LLR。因此,我们可能想要在SOVA计算时在LDPC LLR上加更高的权重。换句话说,我们可以选择使用LDPC LLR调整器来通过乘以比I大的数(例如,I. 2)来放大该深缺陷区域内的LDPC LLR的可靠性。

尽管为了理解清楚的目的而已经相当详细地描述了前述实施例,本发明不限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施例是说明性的并且不是限制性的。
权利要求
1.一种方法,包括 决定是否调整与解码器相关联的数据; 在决定调整与所述解码器相关联的所述数据的情况下 调整所述数据以获得经调整的数据;以及 使用所述解码器和所述经调整的数据执行解码;以及 在决定不调整与所述解码器相关联的所述数据的情况下,使用所述解码器和与所述解码器相关联的所述数据执行解码。
2.如权利要求I所述的方法,其特征在于,进一步包括缓冲有限脉冲响应(FIR)信号,其中调整所述数据、使用所述经调整的数据执行解码以及使用与所述解码器相关联的所述数据执行解码包括使用所述被缓冲的FIR信号。
3.如权利要求I所述的方法,其特征在于,其中所述解码器包括软输出Viterbi解码器并 且与所述解码器相关联的所述数据包括有限脉冲响应(FIR)信号。
4.如权利要求I所述的方法,其特征在于,其中所述解码器包括低密度奇偶校验(LDPC)解码器并且与所述解码器相关联的所述数据包括由软输出Viterbi解码器输出的对数似然比(LLR)信号。
5.如权利要求I所述的方法,其特征在于,其中所述解码器包括软输出Viterbi解码器并且与所述解码器相关联的所述数据包括与所述软输出Viterbi解码器相关联的一个或多个参数。
6.如权利要求I所述的方法,其特征在于,其中所述解码器包括软输出Viterbi解码器并且与所述解码器相关联的所述数据包括由低密度奇偶校验(LDPC)解码器输出的对数似然比(LLR)信号。
7.如权利要求I所述的方法,其特征在于,其中决定是否调整与所述解码器相关联的所述数据包括下列中的一个或多个使用时间表、使用被配置为使用有限脉冲响应(FIR)信号来检测缺陷的缺陷检测器、或者使用一组一个或多个可编程寄存器。
8.如权利要求7所述的方法,其特征在于,其中所述缺陷检测器被配置为检测与幅度缺陷相关联的缺陷。
9.如权利要求7所述的方法,其特征在于,其中所述缺陷检测器被配置为至少部分基于下列中的一个或多个来检测深缺陷0的顺串、I的顺串、或者奈奎斯特样式。
10.如权利要求9所述的方法,其特征在于,其中调整所述数据包括 基于长度,对包括任何检测到的0的顺串、任何检测到的I的顺串以及任何检测到的奈奎斯特样式的列表进行排序; 在第一次迭代期间 (D调整与所述经排序的列表中具有最长长度的那个缺陷相对应的数据;以及 (2)若所述经排序的列表中有其他缺陷的话,不调整与所述经排序的列表中的所有其他缺陷相对应的数据;并且在所述第一次迭代之后的第二次迭代期间 (1)调整与所述经排序的列表中具有最长长度和第二最长长度的那些缺陷相对应的数据;以及 (2)若所述经排序的列表中有其他缺陷的话,不调整与所述经排序的列表中所有其他缺陷相对应的数据。
11.如权利要求I所述的方法,其特征在于,其中调整所述数据包括下列中的一个或多个保留正负号并减小幅度或将值置零。
12.—种系统,包括 控制器,所述控制器被配置为决定是否调整与解码器相关联的数据; 信号处理器,所述信号处理器被配置为在决定调整与所述解码器相关联的所述数据的情况下,调整所述数据以获得经调整的数据;以及 解码器,所述解码器被配置为 在决定调整与所述解码器相关联的所述数据的情况下,使用所述经调整的数据执行解码;以及 在决定不调整与所述解码器相关联的所述数据的情况下,使用与所述解码器相关联的所述数据执行解码。
13.如权利要求12所述的系统,其特征在于,进一步包括缓冲器,所述缓冲器被配置为缓冲有限脉冲响应(FIR)信号,其中所述信号处理器被配置为调整所述数据并且所述解码器被配置为使用所述经调整的数据执行解码并且通过使用所述被缓冲的FIR信号而使用与所述解码器相关联的所述数据执行解码。
14.如权利要求12所述的系统,其特征在于,其中所述解码器包括软输出Viterbi解码器并且与所述解码器相关联的所述数据包括有限脉冲响应(FIR)信号。
15.如权利要求12所述的系统,其特征在于,其中所述解码器包括低密度奇偶校验(LDPC)解码器并且与所述解码器相关联的所述数据包括由软输出Viterbi解码器输出的对数似然比(LLR)信号。
16.如权利要求12所述的系统,其特征在于,其中所述解码器包括软输出Viterbi解码器并且与所述解码器相关联的所述数据包括与所述软输出Viterbi解码器相关联的一个或多个参数。
17.如权利要求12所述的系统,其特征在于,其中所述解码器包括软输出Viterbi解码器并且与所述解码器相关联的所述数据包括由低密度奇偶校验(LDPC)解码器输出的对数似然比(LLR)信号。
18.如权利要求12所述的系统,其特征在于,其中所述控制器被配置为使用下列中的一个或多个来决定是否调整与所述解码器相关联的所述数据使用时间表、使用被配置为使用有限脉冲响应(FIR)信号来检测缺陷的缺陷检测器、或者使用一组一个或多个可编程寄存器。
19.如权利要求18所述的系统,其特征在于,其中所述缺陷检测器被配置为检测与幅度缺陷相关联的缺陷。
20.如权利要求18所述的系统,其特征在于,其中所述缺陷检测器被配置为至少部分地基于下列中的一个或多个来检测深缺陷0的顺串、I的顺串、或者奈奎斯特样式。
21.如权利要求20所述的系统,其特征在于,其中所述信号处理器被配置为通过以下方式调整所述数据基于长度,对包括任何检测到的0的顺串、任何检测到的I的顺串以及任何检测到的奈奎斯特样式的列表进行排序; 在第一次迭代期间 (D调整与所述经排序的列表中具有最长长度的那个缺陷相对应的数据;以及(2)若所述经排序的列表中有其他缺陷的话,不调整与所述经排序的列表中的所有其他缺陷相对应的数据;并且在所述第一次迭代之后的第二次迭代期间 (i )调整与所述经排序的列表中具有最长长度和第二最长长度的那些缺陷相对应的数据;以及 (2)若所述经排序的列表中有其他缺陷的话,不调整与所述经排序的列表中所有其他缺陷相对应的数据。
22.如权利要求12所述的系统,其特征在于,其中所述信号处理器被配置为通过下列中的一个或多个来调整所述数据保留正负号并减小幅度或将值置零。
全文摘要
决定是否调整与解码器相关联的数据。在决定调整与所述解码器相关联的所述数据的情况下,调整该数据以获得经调整的数据并使用所述解码器和所述经调整的数据来执行解码。在决定不调整与所述解码器相关联的所述数据的情况下,使用所述解码器和与所述解码器相关联的所述数据执行解码。
文档编号G06F11/00GK102754081SQ201080062459
公开日2012年10月24日 申请日期2010年11月24日 优先权日2010年1月27日
发明者寇宇, 曾令琪 申请人:链接媒体设备公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1