在调制编码数据中实现非均匀约束的技术的制作方法

文档序号:6759270阅读:202来源:国知局
专利名称:在调制编码数据中实现非均匀约束的技术的制作方法
技术领域
本发明涉及在调制编码数据中实现非均匀约束的技术,尤其涉及用于对紧临不受约束的信息的调制编码数据提供较强的约束的技术。
背景技术
盘驱动器能够将数据位写到诸如硬磁盘的数据存储盘上。盘驱动器也能够读取已经存储在数据盘上的数据位。数据位的某些序列难以写到盘上并且经常在读回该数据期间导致错误。
相同极性的长记录数据序列是容易产生错误的数据位模式的实例。这些数据序列在NRZ(不归零)表示法中对应于二进制0或二进制1的长序列,或者在NRZI或PR4表示法中对应于二进制0的长序列。易于产生错误的数据位模式的另一个实例是在PR4表示法中在交替位置中的零的长序列(例如,0a0b0c0d0......,其中a、b、c、d每个可为0或1)。
二进制序列可以根据公知技术使用预编码器和反向预编码器被常规地从一种表示法转换成另一种表示法。在描述本发明时,我们将把所有的二进制序列表示为PR4序列,除非另有说明。PR4表示法可以通过采用1/1+D盘旋(convolve)的预编码器被转换成NRZI表示法,或者可以通过采用1/(1+D2)盘旋的预编码器被转换成NRZ表示法。
理想的是消除用户输入数据中的易于产生错误的位序列。消除易于产生错误的位序列可确保盘驱动系统中检测器和定时环路的可靠操作。消除易于产生错误的位序列的一种方法是采用以查询表存储在存储器中的不易产生错误的位模式来替代易于产生错误的位序列。不过,对非常长的位序列进行替代,查询表并不理想,因为它们需要大量的存储器。
许多盘驱动器具有调制编码器。调制编码器采用调制代码来消除易于产生错误的位序列。
最大过渡游程(MTR)约束的代码是与1/(1+D)预编码器结合使用调制代码的一种具体类型。就MRT代码而言,j约束指的是在NRZI表示法中的最大数量个连续的1,k约束指的是在NRZI表示法中的最大数量个连续的0,而t约束指的是在NRZI表示法中的最大数量个连续的具有相同数值的成对的位(例如,aabbccddee......)。
在序列的PR4表示法中约束零数字的最长游程的代码据称是为了增强G-约束,其中G是连续0的最长容许游程。G约束的PR4表示法通过1/(1+D)预编码器被映射到k-约束的NRZI表示法,其中k=G+1。
在序列的PR4表示法中约束在交替位置的零数字的最长游程的代码据称是为了增强I-约束,其中I是在连续的奇或偶位置中的0的最长游程。I约束序列必须采用G=2I进行G-约束。I约束PR4表示法通过1/(1+D)预编码器被映射到t-约束NRZI表示法,其中t=I。
Fibonacci(斐波纳契)代码是调制编码器所使用的调制代码的一个实例。Fibonacci代码提供了一条有效的途径来将调制代码约束强加在记录数据上以便消除易于产生错误的位序列。Fibonacci编码器以Fibonacci基准将输入数字映射到等效的数字表示。Fibonacci编码器将具有K比特的输入矢量映射到具有N比特的输出矢量。Fibonacci编码器使用具有N矢量的基准(base),其被储存为N×K二进制矩阵。相对于所存储的基准对该输入矢量连续应用Euclid(欧几里德)算法得出长度N的编码矢量。
盘驱动器通常具有纠错编码器。Reed-Solomon(里德-所罗门)(RS)编码器就是一种纠错编码器。RS编码器产生纠错码(ECC)校验字节,同时循环码产生循环冗余校验(CRC)比特或字节。CRC编码器插入CRC校验比特或字节,同时RS编码器在数据被写入盘之前将ECC校验字节插入数据流中。在数据从盘中被读出时,ECC校验字节被用于采用公知的解码处理纠正该数据字节中的错误。CRC校验字节被用于采用公知过程来验证被纠正过的数据字节。
调制编码可以在RS编码之前或RS编码之后进行。在RS编码之后执行调制编码被称之为前向连接。在前向连接中,初始数据被RS编码。随后,数据、CRC和RS奇偶被调制编码,并且该调制编码后的数据被写到盘上。数据随后从该盘中被读出并被解调。RS解码在该数据被解调之后执行。
含有单个错误比特的有效调制码的代码字经常被解码为含有许多错误比特的数据序列。该调制解码器的不理想的特性称之为错误传播。错误传播降低了RS代码的有效性,因为在数据从盘中读出时呈现出的相对较少数量的比特错误可能会在该RS解码器的输入端通过错误传播而倍增成许多错误比特。这些错误可能使得该RS代码的纠正能力无法应付。
在RS编码之前进行调制编码称之为反向连接。反向连接解决了错误传播的问题,因为该RS解码器在数据被解调之前纠正该编码数据中的任何错误。在大多数反向连接系统中,RS奇偶符号在RS代码可能被解码之前依然必须被解调。这意味着,尽管错误传播的效应被降低了,但是其还是不能完全消除。
在一些反向连接系统中,RS校验字节不受调制编码的约束,以便使得开销和复杂性都保持较低,并且校验字节在调制编码之后被插入数据流中。这种方法的优点在于RS奇偶校验符号既没有被编码也没有被解码,并且因此完全避免了调制解码器所导致的错误传播。
图1A表示出了这种类型的反向连接技术。数据起初被调制编码器101编码。调制编码器101产生根据预定约束被调制的数据102。例如,全局约束可以是调制数据102可以具有不超过10个连续的0(G=10)。该调制数据接着被RS编码器103编码,从而产生RS校验字节104。RS校验字节104不受约束。例如,校验字节104可以包含10个以上的连续的0。
多工器(multiplexer)105将该校验字节插入调制后的数据流。该组合数据流107接着被存储在盘110上。
这种方法的缺陷在于,RS奇偶校验符号在被插入数据字节中时可能产生易于出错的比特序列,诸如太多的连续的0。这种未受约束的校验字节的插入会显著地降低调制数据流的整体调制约束。
图1B表示出一种用于图1A中所示的反向连接技术的最糟情况的情景的实例。例如,假设调制数据102具有G=10的约束,并且RS校验字节为10比特长。尽管仅仅容许最多10个连续的0在该调制数据102中,但是组合数据流107可能会由于最多20个连续的零(G=20)而违反这种约束,如图1B所示。
因此,需要提供一种技术,用于在其中ECC奇偶数据未被编码的反向连接方案中,防止错误检测和纠错码含有易于产生错误的比特序列。

发明内容
本发明提供了一些技术,用于对被调制编码的数据实施非均匀的约束,从而在含有编码的和未受约束的数据的整个流上实现均匀的约束。在一些反向连接结构体系中,未受约束的错误控制码奇偶性在调制编码之后被插入该数据流。本发明防止这些未被调制编码的奇偶比特降低生成的数据流的整体调制约束。
具体而言,本发明防止一种情形,在该情形中,由调制编码数据和未受约束的数据构成的数据流包含在读回过程中趋向导致错误的比特序列,诸如有太多的连续的零。相对于其余的调制编码数据比特,对紧接于未受约束的数据比特的调制编码数据比特强制执行较为严格的调制约束。通过对紧接于未受约束比特的比特强制执行较为严格的调制约束,可以将整体数据流限制在理想的调制约束范围内。
在考虑到下面详细描述和附图的情况下,本发明的其他特征和优点将更加清楚,其中,在所有附图中,相同的标记指代相同的特征。


图1A表示出了一种现有反向连接技术;图1B表示出了用于图1A中所示的反向连接技术的最糟情况的情形的实例;图2A表示出了根据本发明实施例的调制编码器,该调制编码器在反向连接方案中对数据施加非均匀的约束;图2B表示出了根据本发明实施例的具有非均匀调制约束的代码字的示例;图3表示出了根据本发明实施例的在代码字上实施的非均匀约束的另一个实例;图4表示出了得出图3的非均匀约束的100个矢量的基准的一些元素;图5表示出了采用十进制形式的图4的基准的100个矢量;图6和7表示出了根据本发明实施例的代码的两个附加实施例,该代码提供非均匀调制约束。
具体实施例方式
图2A表示出了本发明的第一个实施例。输入数据起初被非均匀调制编码器201编码,从而产生调制数据流202非均匀调制编码器201例如可以是Fibonacci编码器或另一种能够对至少一种类型的比特序列施加限制的编码器。例如,调制编码器201可以对在调制后的数据输出流202中的连续的零的个数施加限制。
非均匀调制编码器201对数据流202施加变化的约束。第一约束(G=X)被施加在第一预定个数的代码字位置(location)。第二约束(G=Y)被施加在第二预定个数的代码字位置。第二约束比第一约束要严格(即,Y<X)。调制编码器201还可以对该调制数据202施加第三约束、第四约束、第五约束等。
该较为严格的代码约束必须跨越几个位置进行施加,包围将插入未受约束的数据的位置,以便足以确保在插入未受约束的数据后理想的约束得以满足。
例如,如果全局约束G=14在十个未受约束比特插入受约束序列的比特10和11之间之后是比较理想的,那么,就必须强制调制代码约束,以禁止在任何这些位置{7,8,9,10,11}中开始的超过4个连续的零的游程。
应该理解的是,本发明的技术可应用到任何类型的调制代码和任何类型的调制约束上。例如,本发明的技术能够产生非均匀的全局和/或交错的约束。本发明的技术还可以产生用于MTR代码的非均匀约束,包括非均匀j约束、非均匀k约束、非均匀t约束。
纠错编码器203利用公知的纠错编码算法,诸如Reed-Solomon编码,对调制数据202进行编码。ECC编码器203产生ECC校验字节204。ECC校验字节204在调制编码(这通过块201执行)后产生并被保持不受约束。在图2A的实施例中,ECC校验字节不受调制编码的约束,从而使得开销和复杂性保持较低,并且该校验字节在调制编码之后被插入该数据流中。
多工器205将未受约束的校验字节插入调制数据流中,以便产生组合数据流207。多工器205将每个未受约束的ECC校验字节插入在具有较为严格的约束(G=Y)的字节之间,如数据流207中所示。每个未受约束的ECC校验字节都在两侧被具有较为严格的约束(G=Y)的数据字节包围。
输出数据流207的实例表示在图2B中,并被描述用来阐述上述概念。该实例并不是为了以任何方式限制本发明的范围。本领域的技术熟练人员将理解到,许多其他实施方式都在本发明的范围之内。
编码器201可以约束5个数据字节,因此在这5个字节中可容许不超过10个连续的零(G=X=10)。所接收到的接下来的2个数据字节受到约束,因此在这2两字节中容许不超过5个连续的零(G=Y=5)。ECC编码器203产生10比特长的ECC校验字节。多工器205将该校验字节插入数据流202中,在受到G=5的更为严格约束的两个数据字节之间。在该实例中,调制码约束从字节到字节地改变,但是在字节内保持恒定。在通常的调制码中,约束从比特到比特地改变,与字节边界没有关系。
图2B所示的是一部分产生的数据。ECC字节含有最多10个连续的零,因为它们没有受到约束。在ECC字节的任意一侧的这些数据字节受到限制而具有最多5个连续的0(G=5)。在图2B中所示的最糟情况的情形下,ECC校验字节被插在G=5的数据字节中的最多5个连续的0的游程之间。在组合比特流中的连续0的总数为15。因此,多工器205的组合比特流输出具有G=15的整体约束。该约束显示出对于图1A中的现有技术系统所施加的G=20的约束的非常显著的改进。
如上所述,非均匀调制编码器201可以为Fibonacci编码器。为消除长串的1(或0)而对数据比特流进行Fibonacci编码对那些熟悉数据编码技术的技术人员而言是公知的。本发明的重要特征就是本发明的Fibonacci编码器,与在文献中可获得的那种传统编码器相反,该Fibonacci编码器产生具有可变值的1的(或0的,仅仅通过翻转(flip)该比特)游程长度的序列。该特征使得数据字节的一些区域经受G=X的约束,而其余区域经受G=Y的更为严格的约束,其中Y<X,如2A所示。未受约束的数据(例如,ECC校验字节)的集合将被插入G=Y的区域中。
图3所示的是如何能够在100比特代码字内在不同位置处实施本发明的非均匀的约束的具体实例。该实例并不是为了限制本发明的范围。本领域的普通技术人员将理解,许多其他的实施方式将在本发明的范围内。
图3中表示出了表的两行301和302。由于这两行每个都具有103列,行301和302被分成5部分以便适合位于一张图纸上。行301列举具有非均匀G约束的100比特调制代码字的比特。三个10-比特长的符号,每个都对应于RS校验字节,已经被插入该代码字的中间。
行302指示了与代码字的100个比特中的每一个对应的0的非均匀游程长度(即,G约束),如本发明的调制编码器所给出的一样。从每个约束指示在向前(到图3的右方)的比特位置处所容许的0(或1)的最大数量的方面说,行302中所示的G约束是向前看的。例如,在比特1处开始,可以有最多11个连续的0。作为另一个实例,在比特14处开始,可以有最多5个连续的0。因此,本发明可以在代码字的中间的不同比特位置应用不同的约束。
比特8到14因为下面的原因而具有从11变化到5的全局约束。如果从比特14开始6个连续的0被禁止,则对于从比特13开始的任何被容许的序列都不可能包含7个连续的0,因为任何这种序列都将必然含有在位置14直到19中的6个连续的0。类似地,以此类推,从比特位置12开始的8个连续的0的游程会被禁止等等。
比率(rate)k/n的Fibonacci编码器,相应的比率n/k编码器以及相关联的代码约束都通过k-比特代码基准矢量(code base vector)的n-元素集合来进行完整的描述。例如,考虑图3-5中所示的比率99/100的Fibonacci代码的实施例。Fibonacci编码器和解码器可实现图3中的非均匀G约束,并且它们将通过图4和5中所示的基准矢量的集合得到清晰的描述。该Fibonacci代码基准包括100个元素B1-B100。这100个元素中的每一个都具有99个二进制比特。图4中以二进制方式表示出了这些元素中的几个。所有100个Fibonacci代码基准元素都以十进制表示在图5中,其中,B1=388×290、B2=388×289、B3=388×288等等。
现在对图6-7中所示的代码的两个附加实施例进行描述。这些代码属于受比率199/200(G,I)约束的代码这一类。这些代码可实现非常严格的G-约束和I-约束。
用于奇偶交错的通用化Fibonacci代码具有N=100的长度。对于基准元素B1-B100,用于奇偶交错的Fibonacci编码器的输入/输出关系的特征为u1×299+u2×298+...+u100=v1B1+v2B2+...+V100B100,其中,u1、u2...u100是在用于偶交错或奇交错的Fibonacci编码器的输入处的比特,而v1、v2...v100是在用于偶交错或奇交错的Fibonacci编码器的输出处的比特。为了描述图6-7的实施例,采用表达式v1(B’9929)×290+v2(B’9829)×289+...+v100(B’029)×2-9来代表用于偶交错或奇交错的Fibonacci编码器的输出。
图6中表示出了称之为代码A的比率-199/200代码。代码A基于通过短块(short block)编码器约束的比率-9/10的代码,这在被共同转让的共同待审美国专利申请_(律师案号16869Q-132700US)中进行了详细的描述,该申请通过参引被并入本申请。
代码A采用每个交错上的Fibonacci代码的不规则j-约束来进行设计。选择这些基准以便存在用于10-比特RS奇偶符号的三个可能的插入位置。代码A通过与比率-9/10的短块约束代码的串联连接而获得。结果代码A是比率-199/200(G=20、I=10)的代码。代码A也支持在位置50和49之间的每个交错中以及在边界处的单一奇偶插入而不减弱G-约束和I-约束。
图7中表示出了另一个代码,代码B。代码B以和代码A相同的方式构成。其采用在偶交错和奇交错中通过短块编码器约束的比率-13/14代码,如在提交的被共同转让的共同待审美国专利申请__(律师案号16869Q-132700US)中详细描述那样。
通用化Fibonacci代码由图7中给定的基准来确定。该通用化Fibonacci代码比代码A之一具有较好的j-特性(profile)。结果代码B是具有用于10-比特RS奇偶符号插入的三个位置的比率-199/200(G=20,I=10)代码,该插入不减弱G-约束和I-约束。由于该通用化Fibonacci代码的改进的j-特性,代码B比代码A支持更多的用于内部奇偶插入的位置,同时可以保持相同的(G,I)-约束。
在图6和图7的实施例中,RS符号被分成5-比特的半个字节。每个半字节都独立地被插入该代码字的受到更强约束的部分。在图6中,单一比特奇偶信息被插入独立于半字节的代码字中。
尽管已经参照本发明的实施例对本发明进行了描述,但是依然可以在本发明中进行各种修改、各种改变、以及替代。在某些例子中,在不脱离所提出的本发明的范围的情况,可以使用本发明的某些特征而不用相应地使用其他特征。因此,可以在不脱离所提出的本发明的构思和范围的情况进行多种修改以便适应所披露的特定配置或方法。因此,本说明书不是为了将本发明限定为所披露的特定实施例,本发明将包括所有落入权利要求书的范围的实施例和等效手段。
权利要求
1.一种盘驱动系统,包括调制编码器,该调制编码器将非均匀调制约束施加在数据上以便产生受约束的代码字;以及多工器,该多工器在该受约束的代码字被存储在盘上之前将未受约束的数据块插入受约束的代码字的受到更强约束的部分中。
2.根据权利要求1所述的盘驱动系统,其中,所述调制编码器产生受约束的代码字,该代码字具有对起始于比特位置的第一集合的序列的第一约束、对起始于比特位置的第二集合的序列的第二约束、对起始于比特位置的第三集合的序列的第三约束。
3.根据权利要求2所述的盘驱动系统,其中,所述调制编码器产生受约束的代码字,该代码字具有对起始于比特位置的第四集合的序列的第四约束。
4.根据权利要求3所述的盘驱动系统,其中,所述调制编码器产生受约束的代码字,该代码字具有对起始于比特位置的第五集合的序列的第五约束。
5.根据权利要求1所述的盘驱动系统,其中,所述调制编码器利用Fibonacci代码对该数据进行编码。
6.根据权利要求1所述的盘驱动系统,还包括纠错编码器,该纠错编码器基于所述受约束的代码字产生未受约束的奇偶信息;其中,所述多工器在所述受约束的代码字存储在该盘上之前将所述未受约束的奇偶信息插入所述受约束的代码字中。
7.根据权利要求6所述的盘驱动系统,其中,所述纠错编码器是产生纠错校验字节的Reed-Solomon编码器。
8.根据权利要求6所述的盘驱动系统,其中,所述多工器将10-比特奇偶字节插入所述受约束的代码字的受到更强约束的部分中。
9.根据权利要求6所述的盘驱动系统,其中,所述多工器将5-比特奇偶字节插入所述受约束的代码字的受到更强约束的部分中。
10.一种盘驱动控制器芯片组,包括调制编码器,该调制编码器向起始于第一比特位置的代码字施加第一约束以及向起始于第二比特位置的代码字施加第二约束以便产生输出代码字,其中第二约束比第一约束更为严格;以及多工器,该多工器在所述输出代码字存储在该盘上之前将未受约束的数据块插入按照第二约束受到约束的输出代码字的部分中。
11.根据权利要求10所述的盘驱动控制器芯片组,其中,所述多工器将所述未受约束的数据块插入所述输出代码字的中间部分。
12.根据权利要求10所述的盘驱动控制器芯片组,其中,所述调制编码器利用Fibonacci代码对该代码字进行编码。
13.根据权利要求10所述的盘驱动控制器芯片组,还包括纠错编码器,该纠错编码器基于所述输出代码字产生未受约束的奇偶信息;其中,所述多工器在所述输出代码字存储在该盘上之前将所述未受约束的奇偶信息插入所述输出代码字中。
14.根据权利要求13所述的盘驱动控制器芯片组,其中,所述纠错编码器是产生纠错校验字节的Reed-Solomon编码器。
15.根据权利要求10所述的盘驱动控制器芯片组,其中,所述调制编码器向起始于第三比特位置的代码字施加第三约束,并且第三约束比第一约束更为严格。
16.一种用于向数据施加调制约束的方法,该方法包括向代码字施加非均匀调制约束,以便产生受约束的代码字;以及在所述受约束的代码字存储在介质上之前将未受约束的数据插入受约束代码字的受到更强约束的部分中。
17.根据权利要求16所述的方法,还包括利用纠错编码器、基于所述受约束的代码字产生未受约束的奇偶信息;其中所述未受约束的奇偶信息被插入所述受约束的代码字的受到更强约束的部分中。
18.根据权利要求16所述的方法,其中,向所述代码字施加所述非均匀调制约束还包括利用Fibonacci代码向所述代码字施加非均匀调制约束。
19.根据权利要求16所述的方法,其中,向所述代码字施加所述非均匀调制约束还包括向所述代码字的第一部分施加第一约束;向所述代码字的第二部分施加第二约束,其中第二约束比第一约束更为严格;并且向所述代码字的第三部分施加第三约束,其中第三约束比第一约束更为严格。
20.根据权利要求19所述的方法,其中,向所述代码字施加所述非均匀调制约束还包括向所述代码字的第四部分施加第四约束,其中第四约束比第三约束更为严格;并且其中将所述未受约束的数据插入所述受约束的代码字的受到更强约束的部分中还包括将所述未受约束数据插入所述代码字的第四部分中。
全文摘要
非均匀调制编码技术用于防止数据在读回的过程中含有易于出错的比特模式。对数据流执行调制编码以便消除易于出错的比特模式。被插入调制数据流的未受约束的数据,诸如错误奇偶校验,可能含有易于出错的比特模式。与剩余的比特相比,将更为严格的调制约束施加在紧接于所述未受约束的数据的比特上。通过在这些比特上施加更为严格的调制约束,整个数据比特流都能够具有期望的调制约束。
文档编号G11B20/18GK1828754SQ20061000360
公开日2006年9月6日 申请日期2006年1月4日 优先权日2005年1月31日
发明者马里奥·布劳姆, 罗伊·D·西德西扬, 伊万杰洛斯·S·埃勒夫塞里奥, 理查德·L·加尔布雷斯, 克塞尼加·拉科维克, 托马斯·米特尔霍尔泽, 特拉维斯·奥宁, 布鲁斯·A·威尔逊 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1