数据存储系统
技术领域
本发明涉及数据存储系统,更具体而言,涉及当在数据存储系统中存储数据时所使用的调制编码技术。
背景技术
如在本领域中已知的,当在数据存储系统中存储数据时,通常是以某种方式“编码”“未加工的(raw)”原始用户数据,从而例如使数据存储更加有效且更不容易出错。当在存储介质上存储数据时一般采用三种类型的编码。
首先,原始数据通常以某种方式压缩。这通常称为源编码。下一阶段通常是编码压缩数据,以提供某种形式的错误保护。这通常涉及向数据添加一些字节的编码处理,然后当数据被读出时这些字节可以用于检测并纠正错误。这种纠错码(ECC)的一个常见例子是Reed-Solomon编码。
然后,经过纠错编码的数据一般要进一步编码,这进一步编码通常称为“调制编码”。这种编码用于对写到存储介质上的数据序列强加约束(例如,使得不能有超过三个连续的“0”)而且是为“看家(house-keeping)”目的进行的,例如以帮助定时恢复并得到控制并缩短检测器路径存储器。调制编码还可以提高存储系统的性能(其例子是磁与光学存储系统中(d,k)码的使用)。
就象在本领域中已知的,在调制编码之后,数据可以进一步“奇偶”编码,以向数据添加一个或多个奇偶位。其后,数据可以写到例如磁带或磁盘驱动器或光盘的存储介质并存储。
从存储介质读数据并恢复原始数据是逆处理。因此,例如,从存储介质读出的检测器输出反馈到执行奇偶校验码的软决策解码的后处理器,然后调制解码器用于反转调制编码,最后错误检测解码器用于纠正错误并递送(压缩的)原始用户数据(的估计)。
就象在本领域中已知的,以上讨论的调制编码步骤通常涉及两个步骤。首先是将输入数据流中的位映射到特定约束的输出位布置的所谓调制编码;例如将16位输入映射到有约束的17位输出数据序列的16/17码。这种调制编码的例子是如所谓运行长度限制(d,k)约束码、(G,I)约束码和最大变化运行(j,k)约束码的约束码。下文中,术语“调制编码”将用于指这种形式的约束编码的应用,不包括任何后续的预编码步骤(见下文)。
整个“调制”编码处理中的第二步是所谓的“预编码”。预编码对“约束”编码的数据操作,而且就象本领域中已知的,其有效地操作,将由调制(约束)编码强加到数据序列的一组更简单的约束集转换或翻译成实际期望强加到在例如通道输入的数据序列的一组更大更复杂的约束。例如,参考以上讨论的不能连续有超过三个“0”的编码“约束”,预编码的使用可以将相对简单的约束“翻译”成不能连续有超过四个“1”且不能连续有超过四个“1”的成对需求。对于给定的编码器和解码器结构,如块编码器和块解码器,预编码可以允许更强的约束强加到数据序列,但不需要在所施加的调制编码的复杂性方面有相应的增加。因此,使用预编码简化了需要执行的调制编码。就象在本领域中已知的,所使用的预编码技术的例子是所谓的1/(1
D
2)和1/(1
D)预编码(其中
指示布尔逻辑运算XOR(异或))。
就象在本领域中已知的,调制编码和预编码的总的目的是使数据信号适于随后要“发送”在的(记录)通道。对包括调制编码和预编码在内的编码的更一般讨论可以在例如1998年10月的IEEE Trans.Inform.Theory第44卷第2260-2299页由K.A.S Immink,P.H.Siegel和J.K.Wolf所著的“Codes for Digital Recorders”中找到。
但是,使用预编码的一个缺点是当所存储的数据被读出时会引入错误传播并增加错误。就象在本领域中已知的,这是因为在逆预编码步骤中每个单独读出的存储位通常用于确定逆预编码处理的两个输出位。因此,单个存储位中的错误会导致逆预编码器输出中两个位的错误。然后,这会导致调制解码中进一步的错误传播并降低纠错的性能。
发明内容
本申请人在2002年6月7日提交的其在前欧洲专利申请号02012676.9中相应地建议了不使用预编码的,即无预编码器的,编码技术。由于在这种技术中不使用预编码,因此由于预编码造成的错误传播就避免了。但是,由预编码引入的好处也不能获得。因此,本申请人相信对于数据存储还需要改进的调制编码技术。
因此,根据本发明的第一方面,提供了编码输入位序列的方法,包括:对该输入位序列的一些或全部施加调制编码;并在施加调制编码后对该输入位序列的一个或多个选定部分进行预编码。
根据本发明的第二方面,提供了用于编码输入位序列的装置,包括:用于对该输入位序列的一些或全部施加调制编码的装置;及在施加调制编码后对该输入位序列的一个或多个选定部分进行预编码的装置。
根据本发明的第三方面,提供了用于对从调制编码器接收的数据位施加预编码的预编码器,该预编码器包括:用于选择性地预编码从调制编码器接收的数据位的装置。
本申请人已经认识到有可能更有选择性地对要编码的位序列使用预编码及相应地预编码的使用可以保留,但不需要预编码整个输入位序列。因此,预编码可以只施加到输入位序列的选定部分。这减少了所施加的预编码的量(及相应地减少由于预编码造成的错误传播的危险),但不会完全消除预编码的使用。因此,与对所有输入流使用预编码(“全局”预编码)或根本不使用预编码(无预编码器)的现有技术系统相比,本发明有效地使用选择性或“局部”预编码。
总地来说,预编码序列的一个或多个选定部分解释为预编码这个序列的一个或多个选定部分而不是所有部分。这种解释还适用于下述对应的逆处理与装置。
输入位序列的预编码部分可以按期望选择。在特别优选的实施方式中,输入位序列中施加了调制编码的部分被预编码。如上面所讨论的,因为预编码的优点是帮助调制编码处理,所以这是有利的。因此,通过预编码输入位序列中经过调制编码的部分,本发明的选择性预编码在它最有效施加的情况下使用。优选地,预编码施加到位序列中施加了调制编码的所有部分。最优选地,预编码只施加到位序列中施加了调制编码的部分。
因此,在调制编码只施加到输入位序列的部分的系统中(即,使得在调制编码后,位序列包含一些调制编码的位和一些还未调制编码的位(即,通过调制编码未改变的位)),例如在此引入其全部作为参考的美国专利号5,604,497和5,784,010中所描述的,预编码优选地只施加到调制编码的位而不施加到未编码的位。换句话说,在特别优选的实施方式中,管理预编码施加的标准是在调制编码器的输出是否有位被编码或未被编码,(最优选地),编码位是否被预编码及未编码位(即,未被调制编码器改变的位)是否未被预编码。这避免了当数据读出时对未调制编码的位执行逆预编码的需求,由此减少错误传播并提高出错率性能。因此,本发明的优选布置是依赖(在给定的位序列或块中,例如码字)其是对随机数还是对调制编码数据操作而打开和关闭的预编码器。
这种布置可被认为凭其本身是新的并且是有利的。因此,根据本发明的第四方面,提供了编码位序列的方法,包括:对输入位序列的选定部分施加调制编码;并对由调制编码编码的数据位施加预编码,但不预编码未调制编码的任何数据位。
根据本发明的第五方面,提供了用于编码位序列的装置,包括:用于对输入位序列的选定部分施加调制编码的装置;及对由调制编码编码的数据位施加预编码,但不预编码未调制编码的任何数据位的装置。
根据本发明的第六方面,提供了用于对从调制编码器接收到的数据位施加预编码的预编码器,该预编码器包括:用于根据所接收到的数据位是否由调制编码器调制编码选择性地预编码从调制编码器接收到的数据位的装置。
调制编码序列的一个或多个选定部分解释为调制编码这个序列的一个或多个可选部分而不是所有部分。这种解释也适用于下述对应的逆处理与装置。
预编码可以任何合适的方式执行,如通过使用现有的1/(1
D)或1/(1
D
2)预编码方案。如本领域技术人员可以理解的,实际使用的预编码方案可以例如依赖所使用的调制编码技术。预编码器一般实现为具有存储器的线性电路。
本发明中所使用的调制编码可以是这种编码的任何合适的形式,即约束输入数据的形式。因此,例如,已知的(d,k)、(G,I)和MTR(j,k)码可以使用。调制编码可以施加到输入位序列中的所有位,或者只施加到输入位序列中选定的位(即,部分,例如字节)(例如在美国专利序号5,604,497和5,784,010中所描述的)。在特定的优选实施方式中,调制编码只施加到输入位序列中选定的部分(例如,块或码字)。
调制编码的输出可以在其从调制编码器输出的时候以例如线性方式提供给可选的预编码级。但是,在特定的优选实施方式中,数据序列中从调制编码级输出的位的位置被改变了。更优选地,调制编码位分布到数据序列,最优选地,将它们平均分布到数据序列的给定块中(例如,以便使位序列中调制编码的位组之间的最大间隙小于(和/或,例如使间隙更等于)调制编码位未重新分布时的间隙)。
因此,在优选实施方式中,在施加预编码之前,调制编码级的输出被改序(即,位的次序被混合;输入数据序列中位的位置被互换)。这种改序可以布置成例如平均地分布原始输入数据序列中相邻的位或位块。
在预编码之前分布或改序调制编码数据位的优点是已经发现这种分布(例如,改序)能够进一步帮助定时恢复需求等。因此,例如,在只有输入位序列的选定部分被调制编码的布置中,在本发明的特定优选实施方式中,位序列的调制编码部分被分成多个(小)块,然后这些小块移动到位序列中的位置,以便例如隔开它们和/或对它们重新排序,即,使得编码数据的“块”散布在未编码(未调制编码)位中间,而且在调制编码步骤之后输出。然后,预编码级将优选地选择性地预编码“改序”位序列中调制编码的位。
本申请人还认识到在预编码之前在数据序列中调制编码后移动(改变)位输出的位置使得有可能(通过位分布模式的适当选择)将例如调制编码数据序列的给定部分放置到数据序列中特定的期望位置。特别地,例如,调制编码位可以有效地放置到位序列中与预编码器可以看到的相同的位置,而不管例如所使用的纠错编码和调制编码方案。
因此,例如,通过使用适当的调制编码位分布或改序方案,相同的未改变的所谓的“内部通道”(即,预编码器、写/读级、检测器及逆预编码器)布置可以与不同的外部纠错编码处理一起使用(即,使得“内部通道”不需要改变成能够与不同的外部纠错编码处理一起操作)。因此,例如,在使用Reed-Solomon编码的情况下,如上所讨论的“改序”的使用可以允许相同的“内部通道”(和调制编码方案)用于不同的Reed-Solomon码符号大小。
由于尽管今天外部Reed-Solomon纠错码通常是基于8位符号,但有使用10位Reed-Solomon符号(由于它提供大约0.3dB的性能增益)的动向,因此这是特别有利的。因此,期望提供可以与8位或10位Reed-Solomon码一起操作的系统。本发明通过“改序”调制编码的输出而方便了其实现,这允许相同的“内部通道”与两种不同的Reed-Solomon符号大小一起使用。
尽管已经知道重新排序或改序数据存储系统中调制编码器的输出,但本申请人相信参考所采用的“外部”或纠错码执行这种重新排序或改序的思想就其本身来说是新的和有利的。因此,根据本发明的第七方面,提供了编码用于存储的数据序列的方法,包括:纠错编码数据序列;调制编码纠错编码后的数据序列的所有或部分;并在调制编码步骤之后根据用于纠错编码数据序列的纠错码改变数据序列中调制编码位的位置。
根据本发明的第八方面,提供了用于编码用于存储的数据序列的装置,包括:用于纠错编码数据序列的装置;用于调制编码纠错编码后的数据序列的所有或部分的装置;及在调制编码步骤之后根据用于纠错编码数据序列的纠错码改变数据序列中调制编码位的位置的装置。
根据本发明的第九方面,提供了编码用于存储的数据序列的方法,包括:纠错编码数据序列;调制编码纠错编码后的数据序列的所有或部分;并在调制编码步骤之后根据用于预编码数据序列的预编码改变数据序列中调制编码位的位置。
根据本发明的第十方面,提供了用于编码用于存储的数据序列的装置,包括:用于纠错编码数据序列的装置;用于调制编码纠错编码后的数据序列的所有或部分的装置;及在调制编码步骤之后根据用于预编码数据序列的预编码改变数据序列中调制编码位的位置的装置。
在本发明的这些方面中,调制编码位序列在调制编码级后重新排序(改序),所使用的(改序)方案根据所使用的纠错编码方案(例如,Reed-Solomon编码符号大小)或“内部通道”(例如,预编码方案)进行选择。(如本领域技术人员可以理解的,调制编码方案一般还根据用于纠错编码数据序列的纠错码进行选择)。
本发明的这些方面与实施方式可以包括在此所述本发明的任意一个或多个或全部优选的和可选的特征。因此,它们优选地包括例如在“改序”发生后数据的选择性或局部预编码的另一步骤。如果期望,还有可能在无预编码器的系统中使用这种技术。
除了调制编码和选择性预编码步骤之外,本发明还可以包括任意一个或多个一般在编码用于存储的数据时所采用的其它处理,例如在调制编码之前使用纠错编码(如Reed-Solomon码)及在局部预编码步骤之后(即,就在数据要写到存储介质中之前)奇偶编码数据位。
本发明也适用于从存储介质读数据,然后除去编码以恢复原始用户数据的逆处理。在这种处理中,逆预编码相应地在只有当数据存储时已施加了预编码的情况下施加。
因此,根据本发明的第十一方面,提供了解码从存储介质读出的位序列的方法,包括:逆预编码所读出位序列的一个或多个选定部分;及在施加逆预编码编码后对所读出位序列的一些或全部施加调制解码。
根据本发明的第十二方面,提供了用于解码从存储介质读出的位序列的装置,包括:用于逆预编码所读出位序列的一个或多个选定部分的装置;及用于在施加逆预编码后对所读出位序列的一些或全部施加调制解码的装置。
根据本发明的第十三方面,提供了用于对从存储介质读出的数据位施加逆预编码的逆预编码器,该逆预编码器包括:用于选择性地逆预编码从存储介质读出的数据位的装置。
根据本发明的第十四方面,提供了解码从存储介质读出的位序列的方法,包括:对已经由调制编码进行了编码的所读出数据位施加逆预编码,但不逆预编码未调制编码的任何数据位;及对所读出位序列中已调制编码的部分施加调制解码。
根据本发明的第十五方面,提供了用于解码从存储介质读出的位序列的装置,包括:用于对已经由调制编码进行了编码的所读出数据位施加逆预编码,但不逆预编码未调制编码的任何数据位的装置;及用于对所读出位序列中已调制编码的部分施加调制解码的装置。
根据本发明的第十六方面,提供了用于对从存储介质读出的数据位施加逆预编码的逆预编码器,该逆预编码器包括:用于根据所读出的数据位是否已由调制编码器进行了调制编码选择性地逆预编码从存储介质读出的数据位的装置。
根据本发明的第十七方面,提供了解码从存储介质读出的位序列的方法,包括:改变所读出数据序列中位的位置;调制解码重新排序的数据序列的全部或部分;及在调制解码步骤之后纠错解码数据序列;其中所读出数据序列中位的位置的改变基于用于纠错编码数据序列的纠错码。
根据本发明的第十八方面,提供了用于解码从存储介质读出的位序列的装置,包括:用于改变所读出数据序列中位的位置的装置;用于调制解码重新排序的数据序列的全部或部分的装置;及用于在调制解码步骤之后纠错解码数据序列的装置;其中所读出数据序列中位的位置的改变基于用于纠错编码数据序列的纠错码。
根据本发明的第十九方面,提供了解码从存储介质读出的位序列的方法,包括:改变所读出数据序列中位的位置;调制解码重新排序的数据序列的全部或部分;及在调制解码步骤之后纠错解码数据序列;其中所读出数据序列中位的位置的改变基于用于逆预编码数据序列的逆预编码。
根据本发明的第二十方面,提供了用于解码从存储介质读出的位序列的装置,包括:用于改变所读出数据序列中位的位置的装置;用于调制解码重新排序的数据序列的全部或部分的装置;及用于在调制解码步骤之后纠错解码数据序列的装置;其中所读出数据序列中位的位置的改变基于用于逆预编码数据序列的逆预编码。
如本领域技术人员可以理解的,在适当的时候,本发明的这些方面与实施方式可以包括本发明以上优选和可选特征的任意一个或多个或全部(例如,以其在编码处理中应用的适当的“逆”形式)。
本发明总地来说适用于存储设备和系统与软件,及数据记录方法与代码。特别地但不是独有地适用于如磁带驱动器和硬盘驱动器的磁存储系统。它还可以例如用于光学数据存储系统。相应地可以在服务器、桌面及移动驱动器中找到其特定的应用。
本发明可以用于任何适当的数据存储系统。如本领域技术人员可以理解的,在这种应用中,在本发明的优选实施方式中,至少要存储的输入用户数据将首先一般以某种方式被压缩或源编码,然后分成规则大小的部分或码字,然后施加某种形式的纠错编码(如Reed-Solomon编码)。然后,下一步是对纠错编码的位序列的全部或部分施加调制(约束)编码。然后,如果期望,则位序列可以被改序(如上面所讨论的),然后,“局部”预编码将施加到位序列的选定部分(优选地是只有那些已经被调制编码的部分)。最后,在数据写到存储介质进行存储之前,可以添加少量奇偶位。(如本领域技术人员可以理解的,如果期望,则以上步骤的次序可以改变(而且一个或多个步骤可以省略)。例如,已知在有些系统中在纠错编码级之前可以施加某种形式的调制编码。)从存储介质读数据并恢复原始用户数据是逆处理。
本发明还扩展到根据本发明准备和存储的数据序列。因此,根据本发明的第二十一方面,提供了纠错编码的数据序列,其中数据序列的一个或多个部分已进行了调制编码,而且其中数据序列的一个或多个但不是所有部分已进行了预编码。
而且,这种数据序列可以包括在此所讨论的本发明优选和可选特征的任意一个或多个或全部。因此,例如,它优选地还包括一个或多个奇偶位,而且优选地调制编码部分在数据序列上改序(即,分成随后分散到数据序列中的小片断)。
本发明还扩展到包括或使用以上本发明装置与方法和/或根据本发明存储数据序列的数据存储系统。
根据本发明的方法可以至少部分地利用如计算机程序的软件实现。因此,可以看到当从本发明的更多方面看时,本发明提供了当安装到数据处理装置上时特别适用于执行上文所述方法的计算机软件,及包括当程序元素在数据处理装置上运行时用于执行上文所述方法的计算机软件代码部分的计算机程序元素。本发明还扩展到包括这种软件的计算机软件载体,当用于操作数据编码和/或解码系统或包括数据处理装置的数据存储系统时,这种软件与所述数据处理装置一起使所述系统执行本发明方法的步骤。这种计算机软件载体可以是如ROM芯片、CD-ROM或磁盘的物理存储介质,或者可以是如电线上电信号、如到卫星等的光信号或无线电信号的信号。
还应当理解,不是本发明方法的所有步骤都需要由计算机软件执行,因此从本发明更广义的方面,本发明提供了计算机软件,而且这种安装在计算机软件载体上的软件用于执行上文所述方法的至少一个步骤。
本发明相应地可以适当地体现为用于计算机系统的计算机程序产品。这种实现可以包括一系列计算机可读指令,这些指令或者固定到有形介质上,如计算机可读介质,例如磁盘、CD-ROM、ROM或硬盘,或者通过调制解调器或其它接口设备通过包括但不限于光或模拟通信线路的有形介质或利用包括但不限于微波、红外线或其它发送技术的无线技术发送到计算机系统。这一系列的计算机可读指令体现了此前所述的全部或部分功能性。
本领域技术人员应当理解,这种计算机可读指令可以用多种编程语言来写,以便用于许多计算机体系结构或操作系统。此外,这种指令可以利用任何现有的或未来的包括但不限于半导体、磁或光学的存储技术存储,或者可以利用任何现有的或未来的包括但不限于光、红外线或微波的通信技术发送。期望这种计算机程序产品可以作为配有打印的或电子文档的可更换介质分发,例如用收缩薄膜包装的软件、在例如系统ROM或固定盘上利用计算机系统预装载,或者在例如因特网或万维网的网络上从服务器或电子公告牌分发。
附图说明
现在将仅作为例子并参考附图描述本发明的多种优选实施方式,其中:
图1示意性地示出了数据存储系统;
图2示意性地示出了根据本发明的数据存储系统的实施方式;
图3示意性地示出了根据本发明实施方式的数据编码处理;
图4示意性地示出了根据本发明第一实施方式的用于8位纠错码的比率96/100编码器;
图5示意性地示出了对应于图4编码器的比率96/100解码器;
图6示意性地示出了根据本发明第二实施方式的用于8位纠错码的比率96/102编码器;
图7示意性地示出了对应于图6编码器的比率96/102解码器;
图8示意性地示出了根据本发明第三实施方式的用于10位纠错码(2个奇偶位)的比率96/100编码器的相位0;
图9示意性地示出了根据本发明第三实施方式的用于10位纠错码(2个奇偶位)的比率96/100编码器的相位1;
图10示意性地示出了根据本发明第三实施方式的用于10位纠错码(2个奇偶位)的比率96/100编码器的相位2;
图11示意性地示出了根据本发明第三实施方式的用于10位纠错码(2个奇偶位)的比率96/100编码器的相位3;
图12示意性地示出了根据本发明第三实施方式的用于10位纠错码(2个奇偶位)的比率96/100编码器的相位4;
图13示意性地示出了对应于图7至11编码器的用于10位纠错码(2个奇偶位)的比率96/100解码器的相位0;
图14示意性地示出了对应于图7至11编码器的用于10位纠错码(2个奇偶位)的比率96/100解码器的相位1;
图15示意性地示出了对应于图7至11编码器的用于10位纠错码(2个奇偶位)的比率96/100解码器的相位2;
图16示意性地示出了对应于图7至11编码器的用于10位纠错码(2个奇偶位)的比率96/100解码器的相位3;
图17示意性地示出了对应于图7至11编码器的用于10位纠错码(2个奇偶位)的比率96/100解码器的相位4;
图18示意性地示出了根据本发明第四实施方式的用于10位纠错码(4个奇偶位)的比率96/102编码器的相位0;
图19示意性地示出了根据本发明第四实施方式的用于10位纠错码(4个奇偶位)的比率96/102编码器的相位1;
图20示意性地示出了根据本发明第四实施方式的用于10位纠错码(4个奇偶位)的比率96/102编码器的相位2;
图21示意性地示出了根据本发明第四实施方式的用于10位纠错码(4个奇偶位)的比率96/102编码器的相位3;
图22示意性地示出了根据本发明第四实施方式的用于10位纠错码(4个奇偶位)的比率96/102编码器的相位4;
图23示意性地示出了对应于图18至22编码器的用于10位纠错码(4个奇偶位)的比率96/102解码器的相位0;
图24示意性地示出了对应于图18至22编码器的用于10位纠错码(4个奇偶位)的比率96/102解码器的相位1;
图25示意性地示出了对应于图18至22编码器的用于10位纠错码(4个奇偶位)的比率96/102解码器的相位2;
图26示意性地示出了对应于图18至22编码器的用于10位纠错码(4个奇偶位)的比率96/102解码器的相位3;
图27示意性地示出了对应于图18至22编码器的用于10位纠错码(4个奇偶位)的比率96/102解码器的相位4;
图28示意性地示出了根据本发明一种实施方式的比率100/104编码器(2个奇偶位);
图29示意性地示出了根据本发明一种实施方式的比率100/104编码器(2个奇偶位);
图30示意性地示出了根据本发明一种实施方式的比率100/106编码器(4个奇偶位);
图31示意性地示出了根据本发明一种实施方式的比率100/106解码器(4个奇偶位);
图32示意性地示出了根据本发明一种实施方式的比率64/66编码器(1个奇偶位);
图33示意性地示出了根据本发明一种实施方式的比率64/66解码器(1个奇偶位);
图34示意性地示出了根据本发明一种实施方式的比率60/62编码器(1个奇偶位);
图35示意性地示出了根据本发明一种实施方式的比率60/62解码器(1个奇偶位);
图36示出了根据本发明一种实施方式的比率100/108块编码器的基于20/21的模块化结构;
图37示出了根据本发明一种实施方式的比率100/108块编码器;
图38示出了根据本发明一种实施方式的比率100/108块解码器的基于20/21的模块化结构;
图39示出了根据本发明一种实施方式的比率100/108块解码器。
具体实施方式
图1是可以应用本发明的一种类型的数据存储系统的示意图。该数据存储系统包括用于编码要写到记录通道3的存储介质4(可以是例如硬盘驱动器、磁带驱动器或光盘等形式)的输入写数据的编码器子系统1和用于解码从记录通道3检测到的信号以便产生读出数据(该读出数据应当复制原始的用户写数据)的解码器子系统2。这种数据存储系统可以根据期望实现。例如,编码器子系统1和解码器子系统2可以实现为单个特定用途集成电路(ASIC)。
图2示意性地示出了图1所示类型的根据本发明的数据存储系统的优选实施方式。在图2所示的实施方式中,编码器子系统1包括纠错码编码器11(在这个例子中,是以Reed-Solomon(RS)编码器的形式)、调制编码器12和预编码器13。解码器子系统2类似地包括检测器14、逆预编码器15、通道解码器16和纠错码解码器17(对应地是以Reed-Solomon(RS)解码器的形式)。
在这种实施方式中,纠错编码器11对进入的用户位流施加纠错码,并且例如将进入的用户位流转换成如8位字节的符号序列。尽管其它的纠错码也可以使用,但在本实施方式中使用Reed-Solomon纠错码。
调制编码器12对纠错编码的位流施加所谓的调制或约束编码。这种调制编码可以包括例如(d,k)、(G,I)或MTR(j,k)编码。如以下进一步解释的,在本实施方式中,调制编码只施加到位流的选定部分。
预编码器13对调制编码的位流施加所谓的预编码。这种预编码将调制编码器12输出中的变化转换成适于在记录通道3中记录的电平。如上面所讨论的,并且如以下进一步解释的,这种预编码只施加到位流的选定部分。预编码可以包括例如1/(1
D)或1/(1
D
2)预编码。
如以下进一步解释的,在本发明的这些实施方式中,在由预编码器13施加预编码之前,在调制编码器12之后有位序列被改序的另一个改序步骤。(这未在图2中表示)在写到存储介质4之前还优选地向位序列添加一个或多个奇偶位(这也未在图2中示出)。
解码器子系统2以逆方式运行。因此,检测器14从记录通道3接收所存储的数据,逆预编码器15除去预编码,然后位流的改序被反转(未示出),调制解码器16除去调制编码,以便提供随后由纠错码解码器17转换成输出用户位流的符号。
在如图2所示的系统中,示意性地表示为在预编码器13和检测器14之间出现的“通道”3有效地包括信号处理功能步骤或功能链,包括例如在例如磁存储设备上写预补偿、写处理,从存储设备读(磁)信号,所读出信号的各种放大与过滤级,模数转换、等化和数字过滤等。然后,当它们出现在通道3的输入时,检测器14试图产生其对位的最佳估计(即,“撤销”通道3的效果并复制预编码器13的输出),用于向逆预编码器15提供。
图3示意性地示出了本发明优选实施方式的调制编码、改序和选择性(局部)预编码步骤。如图3所示,示例数据初始96位块(已经被纠错编码)(在这种实施方式中)首先进行比率8/9调制编码。如图3所示,这种调制编码只施加到96位块中的2个字节(8位部分)。在调制编码步骤之后,初始数据块中剩余的位保持不变。
如图3所示,然后是改序步骤,其中调制编码的数据部分(现在是9位长)和未调制编码位序列的相邻部分被分成随后在整个位块中隔开并分散的更小部分。当然,尽管其它布置也是可能的,但在这种实施方式中,改序使用三个更小的数据部分,并如所示出的那样移动并对它们重新排序。
这个改序步骤特别适用于修改编码数据对系统定时循环的运行长度约束。特别地,如可以从图3看到的,在改序步骤之后,调制编码位在位相序列中被分开并更平均地分散(分布)。由于调制编码位是“有约束的”,因此这些位的这种重新分布意味着编码位部分之间未编码(因此无约束)位的分散小于(无改序时的分散),即,有约束位更平均地分布到整个位序列中。这有助于定时恢复。
如由预编码级可以看到的,改序步骤还可以用于在数据序列中期望的点放置调制编码位。特别地,这意味着在例如不同的给定纠错编码和调制编码方案将产生位序列中不同位置的调制编码位的时候,图3所示的改序可以用于总是将调制编码位放置到与预编码级可以看到的位序列中相同的位置,而不管所使用的纠错编码和调制编码方案。这将允许例如相同的预编码器等用于不同的纠错编码和调制编码方案。
如图3所示,在数据序列改序之后,预编码施加但只施加到数据块的选定部分(尤其是施加到数据块中包括(现在改序的)调制编码位的那些部分)。如上面所讨论的,这种选择性预编码有助于减少错误传播。最后,如图3所示,产生4个奇偶位,从初始的96位纠错编码的码字提供102位码字用于存储。
现在将参考图4至35描述根据本发明运行的适当数据编码和解码方案的多种优选实施方式。这些实施方式设计成用于8位或10位纠错码(Reed-Solomon码)并对调制编码使用相同的比率8/9调制编码(如以下进一步解释的)。
在以下实施方式中,将使用以下逻辑约定。对所有二进制数或或位组或字节组,最低有效位(LSB)总是“索引0”,该索引递增,直到最高有效位(MSB)。MSB总是示为向左,而LSB总是示为向右。当数据写到存储介质上时,信息(字节、字、块)首先发送MSB。当数据从存储介质读出时,信息(字节、字、块)首先接收LSB。
数组a[m:0]包括元素a(m)、a(m-1)、... ...、a(0),其中a(m)是最远的位,而a(0)是最近的位。注意,时间随索引减小而增加。运算“&”“
”分别用于表示布尔运算“与”、“异或”。例如,在这些实施方式中,局部预编码操作(1/(1
D
2)预编码)由以下等式指定:
d(i)=c(i)(m(i)&d(i+2))
其中c(i)是在预编码器输入的位,d(i)是在预编码器输出的位,而m(i)是索引i的屏蔽位。换句话说,如果m(i)=0,则d(i)=c(i)(无预编码),而如果m(i)=1,则d(i)=c(i)
d(i+2)(预编码)。
类似地,局部逆预编码操作由以下等式指定:
h(i)=g(i)(m(i)&g(i+2))
其中g(i)是在逆预编码器输入的位,h(i)是在逆预编码器输出的位,而m(i)是索引i的屏蔽位。换句话说,如果m(i)=0,则h(i)=g(i)(无逆编码),而如果m(i)=1,则h(i)=g(i)g(i+2)(逆预编码)。
在以下实施方式中,编码率96/100和96/102用于8位纠错码,而编码率96/100和96/102用于10位纠错码。表1列出了这些新编码的属性:
比率 |
奇偶位 |
ECC |
k |
j |
I |
96/100 |
2 |
8位 |
26 |
26 |
27 |
96/102 |
4 |
8位 |
28 |
28 |
28 |
96/100 |
2 |
10位 |
26 |
26 |
27 |
96/102 |
4 |
10位 |
28 |
28 |
28 |
在这个表中,“比率”是编码率,“奇偶位”是奇偶位的个数,“ECC”是Reed-Solomon纠错码符号的大小,而“k”、“j”和“I”是由调制编码所强加的约束,其中“k+1”是在通道输入的最大运行长度,“j”是在通道输入的连续变化的最大个数,而“I”是在调制编码输出的奇数或偶数位位置连续0的最大个数(无论哪个更大)。
表1中的编码是基于比率8/9调制编码。表2示出了对这种调制编码从8位字到9位字的映射:
表2a 用于比率8/9调制编码的编码表
0000000000000001000000100000001100000100000001010000011000000111000010000000100100001010000010110000110000001101000011100000111100010000000100010001001000010011000101000001010100010110000101110001100000011001000110100001101100011100000111010001111000011111 |
001110010101110010001111010101111010010011010110011010011011010111011010001010010101010010001010011101010011001010110101010110001010111101010111001001001101001001001001011101001011001011001101011001001011011101011011010110010110110010011110010111110010010111010110111010011111010111111010 |
0010000000100001001000100010001100100100001001010010011000100111001010000010100100101010001010110010110000101101001011100010111100110000001100010011001000110011001101000011010100110110001101110011100000111001001110100011101100111100001111010011111000111111 |
001001100101001100001001110101001110001011100101011100001011110101011110001001101101001101001001111101001111001011101101011101001011111101011111001100001101100001001100011101100011001110001101110001001110011101110011001101001101101001001101011101101011001111001101111001001111011101111011 |
表2b 用于比率8/9调制编码的编码表(继续)
0100000001000001010000100100001101000100010001010100011001000111010010000100100101001010010010110100110001001101010011100100111101010000010100010101001001010011010101000101010101010110010101110101100001011001010110100101101101011100010111010101111001011111 |
010010010110010010011010010111010010010010110110010110011010110111010110010010011110010011011010011111010011010010111110010111011010111111010111010001001110001001010001011110001011010011001110011001010011011110011011011001001111001001011001011111001011011011001111011001011011011111011011 |
0110000001100001011000100110001101100100011001010110011001100111011010000110100101101010011010110110110001101101011011100110111101110000011100010111001001110011011101000111010101110110011101110111100001111001011110100111101101111100011111010111111001111111 |
001100100101100100001100110101100110001110100101110100001110110101110110001100101101100101001100111101100111001110101101110101001110111101110111001101100101101100001101110101101110001111100101111100001111110101111110001101101101101101001101111101101111001111101101111101001111111101111111 |
表2c 用于比率8/9调制编码的编码表(继续)
1000000010000001100000101000001110000100100001011000011010000111100010001000100110001010100010111000110010001101100011101000111110010000100100011001001010010011100101001001010110010110100101111001100010011001100110101001101110011100100111011001111010011111 |
010001100110001100010001110110001110010011100110011100010011110110011110010001101110001101010001111110001111010011101110011101010011111110011111011001100111001100011001110111001110011011100111011100011011110111011110011001101111001101011001111111001111011011101111011101011011111111011111 |
1010000010100001101000101010001110100100101001011010011010100111101010001010100110101010101010111010110010101101101011101010111110110000101100011011001010110011101101001011010110110110101101111011100010111001101110101011101110111100101111011011111010111111 |
010100001110100001010100011110100011010110001110110001010110011110110011011100001111100001011100011111100011011110001111110001011110011111110011010101001110101001010101011110101011010111001110111001010111011110111011011101001111101001011101011111101011011111001111111001011111011111111011 |
表2d 用于比率8/9调制编码的编码表(继续)
1100000011000001110000101100001111000100110001011100011011000111110010001100100111001010110010111100110011001101110011101100111111010000110100011101001011010011110101001101010111010110110101111101100011011001110110101101101111011100110111011101111011011111 |
010100100110100100010100110110100110010110100110110100010110110110110110010100101110100101010100111110100111010110101110110101010110111110110111010101100110101100010101110110101110010111100110111100010111110110111110010101101110101101010101111110101111010111101110111101010111111110111111 |
1110000011100001111000101110001111100100111001011110011011100111111010001110100111101010111010111110110011101101111011101110111111110000111100011111001011110011111101001111010111110110111101111111100011111001111110101111101111111100111111011111111011111111 |
011100100111100100011100110111100110011110100111110100011110110111110110011100101111100101011100111111100111011110101111110101011110111111110111011101100111101100011101110111101110011111100111111100011111110111111110011101101111101101011101111111101111011111101111111101011111111111111111 |
与这种编码关联的编码器和解码器分别是块编码器和块解码器。用于比率8/9编码的块编码器和块解码器可以利用表2设计。因此,例如,表2中全部256个合法的9位输出字应当分配到8位输入字节,而未出现在表2中的剩余256个非法的9位输出字或者总是映射到全0字节或者映射到优选地选择成使实现解码器的布尔逻辑最小化的一组256个字节。
图4示出了用于8位纠错码的比率96/100编码器形式的本发明第一实施方式。调制编码级的输入,a[95:0],包括包含12个8位字节,B11、B10、... ...B0,的纠错编码数据块30。如图4所示,在调制编码级31,利用表2所示的比率8/9调制编码,字节B8和B2映射(调制编码)成各自的9位码字。数据块中剩余的字节由调制编码级保持不变。
然后,这样调制编码的位块32如图4所示那样改序(步骤33)。改序之前的编码信号由b[97:0]标记,而改序之后的编码信号35由c[97:0]标记。
在改序之后,预编码施加到位块的选定部分(步骤36)。如上面所讨论的,预编码通过使用“屏蔽”指示要预编码的位来确定。在这种实施方式中,执行局部预编码所需的屏蔽位m(i),0≤i≤97,对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0由m(i)=1给出,而对于其它则由m(i)=0给出。局部预编码之后的编码信号37由d[97:0]标记。最后,两个奇偶位利用生成多项式1+x2计算,并插入到位块中(步骤38)。将写到存储介质的结果调制/奇偶码字39是e[99:0]。
图5示出了可以用于恢复编码数据的对应的比率96/100解码器。在除去奇偶位之后,解码器的输入50,f[99:0],映射成g[97:0](步骤51)。在“理想”系统中,输入f[99:0]将与e[99:0](即,编码处理的输出)相同,但由于例如所读出数据中的错误,一般可能不相同。
然后,利用与预编码所使用相同的屏蔽位m(i),0≤i≤97,对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0,执行局部逆预编码(步骤53),以获得数组h[97:0]。然后,数据块进行逆改序(步骤55),其后获得数组i[97:0]。
然后,码宇i[97:0]适当的两个字节利用表2的比率8/9编码进行调制解码(步骤57),给出比率96/100解码器的输出58,数组j[95:0],输入到纠错解码级(未示出)。
与实现16状态时变检测器框架相关的所存储数据码字e[99:0]中的约束是位置51和2的j=2、位置77、74、28和25的j=3,位置51和2的k=2、位置77、74、28和25的k=3。
图6示出了用于8位纠错码的比率96/102编码器的另一优选实施方式。除使用4个而不是2个奇偶位之外,这种编码器基本上与图4所示的相同。
因此,纠错编码之后编码器的输入,a[95:0],同样包含12个8位字节,B11、B10、... ...、B0。字节B8和B2同样利用表2中的比率8/9调制编码被调制编码成将其映射到9位码字。剩余字节保持不变。然后,这样编码的信号b[97:0]如图6所示改序,给出信号c[97:0]。
然后,利用屏蔽位m(i),0≤i≤97,对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0,改序信号进行选择性预编码。这种局部预编码之后的编码信号同样由d[97:0]标记。最后,插入利用生成多项式1+x+x4计算出的4个奇偶位。用于存储到存储介质的结果调制/奇偶码字是e[101:0]。
图7示出了对应的比率96/102解码器。同样,除需要除去的奇偶位的个数之外,该处理本质上与图5所示的相同。
因此,同样,通过除去奇偶位,从存储介质读出的解码器的输入,f[101:0],映射成g[97:0]。然后,执行局部逆预编码以获得数组h[97:0]。使用与预编码所使用相同的屏蔽位m(i),0≤i≤97,对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0。然后,施加逆改序,给出数组i[97:0]。最后,比率8/9解码施加到适当的字节,给出比率96/102解码器的输出(数组j[95:0]),用于提供给纠错解码级。
这种实施方式中与实现16状态时变检测器框架相关的所存储数据码字e[101:0]中的约束是位置53和4的j=2、位置79、76、30和27的j=3,位置53和4的k=2、位置79、76、30和27的k=3。
以用于10位纠错码的比率96/100编码器的形式,图8至12示出了本发明另一实施方式的五个相位。
当利用比率96/100编码器实现10位纠错码时,有必要实现5个连续的编码“相位”(给出相应地可被10整除的480/500编码的整个块),然后,该编码“相位”在序列中连续重复(即,前96位是相位“0”编码,下96位是相位“1”编码、下96位是相位“2”编码、下96位是相位“3”编码、下96位是相位“4”编码、下96位是相位“0”编码,下96位是相位“1”编码,等等)。
在本实施方式中,对应于非整数个10位字节,在每个相位编码器的输入是纠错编码的数据块a[95:0]。在每个相位,利用表2中的比率8/9调制编码,随后施加调制编码,将10位字节映射成11位码字。(同样,剩余字节通过调制编码级后保持不变。)
然后,这样编码的信号b[97:0]在每个相位如图中所示的进行改序,给出改序的数据块c[97:0]。然后,改序的信号利用屏蔽位m(i),0≤i≤97,进行选择性预编码,对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0。这种局部预编码之后的编码信号同样由d[97:0]标记。最后,插入利用生成多项式1+x2计算出的两个奇偶位。用于存储的结果调制/奇偶码字是e[99:0]。
图13至17示出了对应的比率96/100解码器的五个相位。在每个相位,该解码器的输入,f[99:0],通过除去奇偶位映射成g[97:0]。然后利用与预编码所使用相同的屏蔽位m(i),0≤i≤97,执行局部逆预编码,获得数组h[97:0],即对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0。然后,执行逆改序,获得数组i[97:0]。最后,比率8/9解码施加到适当的11位码字,给出比率96/100解码器的输出,数组j[95:0]。
与实现16状态时变检测器框架相关的所存储码字e[99:0]中的约束是位置51和2的j=2、位置77、74、28和25的j=3,位置51和2的k=2、位置77、74、28和25的k=3。
图18至22示出了用于10位纠错码的比率96/102编码器形式的本发明另一实施方式的五个相位。在每个相位,编码器的输入同样是纠错编码的数据块a[95:0],对应于非整数个10位字节。在每个相位,调制编码只施加到两个10位字节,利用表2中的比率8/9调制编码将它们映射成11位码字。
然后,这样编码的信号b[97:0]在每个相位如图中所示的进行改序,给出改序的数据块c[97:0]。然后,改序的信号利用屏蔽位m(i),0≤i≤97,进行选择性预编码,对于i =77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0。局部预编码之后的编码信号同样由d[97:0]标记。最后,插入利用生成多项式1+x+x4计算出的四个奇偶位。用于存储的结果调制/奇偶码字是e[101:0]。
图23至27示出了对应的比率96/102解码器的五个相位。在每个相位,该解码器的输入,f[101:0],象前面一样通过除去奇偶位映射成g[97:0]。然后,利用与预编码所使用相同的屏蔽位m(i),0≤i≤97,执行局部逆预编码,获得数组h[97:0],即对于i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0有m(i)=1,对于其它有m(i)=0。然后,执行逆改序,获得数组i[97:0]。最后,比率8/9解码施加到适当的两个11位码字,给出比率96/102解码器的输出,数组j[95:0]。
这种实施方式中与实现16状态时变检测器框架相关的所存储数据码字e[101:0]中的约束是位置53和4的j=2、位置79、76、30和27的j=3,位置53和4的k=2、位置79、76、30和27的k=3。
现在将参考图28至31描述根据本发明操作的合适数据编码与解码方案的更多一些优选实施方式。对于10位纠错码(Reed-Solomon编码),这些实施方式使用100/104和100/106的编码率。它们使用与前面实施方式相同的比率8/9调制编码(即,表2所示的调制编码)用于调制编码。
表3列出了这些新编码的属性(利用与表1相同的约定):
比率 |
奇偶位 |
ECC |
k |
j |
I |
100/104 |
2 |
10位 |
27 |
27 |
28 |
100/106 |
4 |
10位 |
28 |
28 |
29 |
图28示出了用于10位纠错码的比率100/104编码器。
编码器的输入,a[99:0],包括10个10位字节,B9,... ...,B0。字节B7和B2利用表2中的比率8/9调制编码进行调制编码,将它们映射成11位码字。剩余字节保持不变。然后,如图28所示这样编码的信号b[101:0]被改序,给出信号c[101:0]。
然后,利用屏蔽位m(i),0≤i≤101,对改序信号进行选择性预编码,对于i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0有m(i)=1,对于其它有m(i)=0。这种局部预编码之后的编码信号由d[101:0]标记。最后,插入利用生成多项式1+x2计算出的两个奇偶位。结果调制/奇偶码字是e[103:0]。
图29示出了对应的率100/104解码器。解码器的输入,f[103:0],通过除去奇偶位映射成g[101:0]。然后,施加局部逆预编码,获得数组h[101:0]。使用与预编码所使用相同的屏蔽位m(i),0≤i≤101,对于i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0有m(i)=1,对于其它有m(i)=0。然后,施加逆改序,给出数组i[101:0]。最后,比率8/9解码施加到适当的字节,给出比率100/104解码器的输出,数组j[99:0]。
与实现16状态时变检测器框架相关的数据码字e[103:0]中的约束是位置53和2的j=2、位置81、78、30和27的j=3,位置53和2的k=2、位置81、78、30和27的k=3。
图30示出了形式为用于10位纠错编码的比率100/106编码器的另一优选实施方式。编码器的输入,a[99:0],包括10个10位字节,B9、... ...、B0。字节B7和B2利用表2中的比率8/9调制编码进行调制编码,将其映射成11位码字。剩余字节保持不变。然后,这样编码的信号b[101:0]如图30所示改序,给出信号c[101:0]。
然后,利用屏蔽位m(i),0≤i≤101,对改序信号进行选择性预编码,对于i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0有m(i)=1,对于其它有m(i)=0。这样局部预编码之后的编码信号由d[101:0]标记。最后,插入利用生成多项式1+x+x4计算的4个奇偶位。结果调制/奇偶码字是e[105:0]。
图31示出了对应的比率100/106解码器。解码器的输入,f[105:0],通过除去奇偶位映射成g[101:0]。然后,执行局部逆预编码,获得数组h[101:0]。使用与预编码所使用相同的屏蔽位m(i),0≤i≤101,对于i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0有m(i)=1,对于其它有m(i)=0。然后,施加逆改序,给出数组i[101:0]。最后,比率8/9解码施加到适当的字节,给出比率100/106解码器的输出,数组j[99:0]。与实现16状态时变检测器框架相关的数据码字e[105:0]中的约束是位置55和4的j=2、位置83、80、32和29的j=3,位置55和4的k=2、位置83、80、32和29的k=3。
根据本发明操作的合适数据编码与解码方案的更多优选实施方式在图32至35中示出。这些实施方式设计成用于8位或10位纠错码(Reed-Solomon码),并使用与前面实施方式相同的比率8/9调制编码(即,表2所示的调制编码)用于调制编码。
在以下实施方式中,编码率64/66用于8位纠错码,而编码率60/62用于10位纠错码。表4列出了这些新编码的属性(利用与表1相同的约定):
比率 |
奇偶位 |
ECC |
k |
j |
I |
64/66 |
1 |
8位 |
33 |
33 |
34 |
60/62 |
1 |
10位 |
31 |
31 |
32 |
在这些(及其它)实施方式中,检测在调制解码器输入的非法码字的标志也可以联合执行空闲错误与擦除解码的Reed-Solomon解码器一起使用。这将使得区段错误率性能可以改善。
图32示出了形式为用于8位纠错码的比率64/66编码器的实施方式。调制编码级的输入,a[63:0],包括8个纠错编码的8位字节,B7、B6、... ...、B0。如图32所示,字节B5利用表2的比率8/9调制编码映射成9位码字。剩余字节在调制编码级后保持不变。
然后,位序列如图32所示改序。改序前的编码信号由b[64:0]标记,而改序后的编码信号由c[64:0]标记。然后,利用由屏蔽位m(i)标记的“屏蔽”执行选择性预编码,0≤i≤64,其中对于i=44、43、42、41、40、39、10、9、8有m(i)=1,对于其它有m(i)=0。这样局部预编码之后的编码信号由d[64:0]标记。最后,利用生成多项式1+x计算出一个奇偶位并插入到该位块。要写入存储介质的结果调制/奇偶码字是c[65:0]。
图33示出了对应的比率64/66解码器。解码器的输入,f[65:0],在除去奇偶位后映射成g[64:0]。然后,使用与预编码所使用相同的屏蔽位m(i)执行局部逆预编码,获得数组h[64:0],0≤i≤64,对于i=44、43、42、41、40、39、10、9、8有m(i)=1,对于其它有m(i)=0。然后,数据块进行逆改序,其后获得数组i[64:0]。然后,码字i[64:0]的适当字节利用表2的比率8/9编码进行调制解码,给出比率64/66解码器的输出,数组j[63:0],用于输入到纠错解码级(未示出)。与实现16状态时变检测器框架相关的数据码字e[65:0]中的约束是位置9的j=2、位置43和40的j=3,位置9的k=2、位置43和40的k=3。
图34示出了形式为用于10位纠错码的比率60/62编码器的另一优选实施方式。编码器的输入,a[59:0],包括6个10位字节,B5、... ...、B0。字节B3利用表2中的比率8/9调制编码映射成11位码字。剩余字节保持不变。然后,这样编码的信号b[60:0]如图34所示改序,给出信号c[60:0]。
然后,利用屏蔽位m(i)对改序信号进行选择性预编码,0≤i≤60,对于i=40、39、38、37、36、35、8、7、6有m(i)=1,对于其它有m(i)=0。这样局部预编码之后的编码信号由d[60:0]标记。最后,插入利用生成多项式1+x计算出的1个奇偶位。结果调制/奇偶码字是e[61:0]。
图35示出了对应的比率60/62解码器。解码器的输入,f[61:0],通过除去奇偶位映射成g[60:0]。然后,执行局部逆预编码,获得数组h[60:0]。使用与预编码所使用相同的屏蔽位m(i),0≤i≤60,对于i=40、39、38、37、36、35、8、7、6有m(i)=1,对于其它有m(i)=0。然后,施加逆改序,给出数组i[60:0]。最后,比率8/9解码施加到适当的字节,给出比率60/62解码器的输出,数组j[59:0]。与实现16状态时变检测器框架相关的数据码字e[61:0]中的约束是位置7的j=2、位置39和36的j=3,位置7的k=2、位置39和36的k=3。
图36至39示出了本发明的另一优选实施方式。在这种实施方式中,使用与前面实施方式相同的逻辑约定。但是,如以下进一步解释的,这种实施方式使用1/(1
D)预编码,因此在这种实施方式中局部预编码操作由以下等式指定:
其中b(i)是在预编码器输入的位,c(i)是在预编码器输出的位,而m(i)是索引i的屏蔽位。换句话说,如果m(i)=0,则c(i)=b(i)(无预编码),如果m(i)=1,则c(i)=b(i)
c(i+1)(预编码)。
类似地,局部逆预编码操作由以下等式指定:
其中f(i)是在逆预编码器输入的位,g(i)是在逆预编码器输出的位,而m(i)是索引i的屏蔽位。换句话说,如果m(i)=0,则g(i)=f(i)(无逆预编码),如果m(i)=1,则g(i)=f(i)f(i+1)(逆预编码)。
这种实施方式是具有用于10位纠错码的3位奇偶位的比率100/108编码。它使用在本申请人专利号6,557,124中所描述的比率16/17调制编码,该申请的全部内容在此引入作为参考。比率16/17调制编码是强MTR编码,已经发现其消除了大约一半类型为+-+的错误事件(这是磁记录通道中最重要的错误事件,磁记录通道主要是由电噪声破坏的,同时具有高标准化线性密度)。此外,这种比率16/17调制编码具有43.32%的平均变化密度。这种属性在依赖数据的介质噪声不可忽略的磁记录通道中是有用的。就象前面一样,与这种比率16/17强MTR编码关联的编码器和解码器分别是块编码器和块解码器。
如上面所提到的,用在本实施方式中的比率16/17调制编码设计成在写路径中使用1/(1
D)预编码器,而在读路径中使用1/(1
D)逆预编码器。(这与利用在写路径中使用1/(1
D
2)预编码器,而在读路径中使用1/(1
D
2)逆预编码器的比率8/9调制编码的以上实施方式相反)。
表5比较本实施方式具有3个奇偶位的比率100/108编码与图30中利用8/9调制编码和4个奇偶位的比率100/106编码。
比率 |
调制编码 |
奇偶位 |
k |
I |
ATD |
100/106 |
8/9 |
4位 |
28 |
29 |
50.00% |
100/108 |
16/17 |
3位 |
21 |
13 |
44.74% |
在表5中,“ATD”是平均变化密度,剩余项与表1中相同。可以看到,当与参考比率100/106的4位奇偶编码比较时,本实施方式具有3位奇偶的比率100/108具有更好的k约束、更好的I约束和更低的平均变化密度(ATD)。
图37示意性地示出了本实施方式用于10位纠错码的比率100/108块编码器。如以下进一步讨论的,图36是该编码器的等效表示,它示出了本实施方式比率100/108块编码器的基于比率20/21的模块化结构。
在纠错编码后,编码器的输入,a[99:0],包括10个10位字节,B9、... ...、B0。5对相邻的字节B9/B8、B7/B6、B5/B4、B3/B2和B1/B0映射成5个21位码字。如图36和37中所示,这是通过对适当的位施加以上讨论的比率16/17调制编码完成的(图37),而且可以看作是利用一组图36所示的利用以上讨论的比率16/17调制编码实现的比率20/21块编码器的调制编码的应用,但每个21位码字最左边的两位和最右边的两位未编码。
编码信号由b[104:0]标记。然后,利用屏蔽位m(i)施加选择性预编码,0≤i≤104,对于i=102、101、100、99、98、97、96、95、94、93、92、91、90、89、88、87、86、81、80、79、78、77、76、75、74、73、72、71、70、69、68、67、66、65、60、59、58、57、56、55、54、53、52、51、50、49、48、47、46、45、44、39、38、37、36、35、34、33、32、31、30、29、28、27、26、25、24、23、18、17、16、15、14、13、12、11、10、9、8、7、6、5、4、3、2有m(i)=1,对于其它是m(i)=0。这样局部预编码之后的编码信号由c[104:0]标记。最后,利用生成多项式1+x+x3计算出的3个奇偶位插入到码字的末尾。结果调制/奇偶码字是d[107:0]。应当注意,在这种实施方式中(不像前面的实施方式)没有数据码字的改序。
图39示意性地示出了对应的用于10位纠错码的比率100/108块解码器。图38是该解码器的等效表示,它示出了比率100/108块解码器的基于比率20/21的模块化结构。
解码器的输入e[107:0]通过除去3个奇偶位映射成f[104:0]。然后,利用与预编码所使用相同的屏蔽位m(i)执行局部逆预编码,0≤i≤104,对于i=102、101、100、99、98、97、96、95、94、93、92、91、90、89、88、87、86、81、80、79、78、77、76、75、74、73、72、71、70、69、68、67、66、65、60、59、58、57、56、55、54、53、52、51、50、49、48、47、46、45、44、39、38、37、36、35、34、33、32、31、30、29、28、27、26、25、24、23、18、17、16、15、14、13、12、11、10、9、8、7、6、5、4、3、2有m(i)=1,对于其它是m(i)=0。
最后,执行适当字节的比率16/17解码,给出比率100/108解码器的输出,数组h[99:0]。(同样,如图38中所示,这种操作可以看作是一组利用比率16/17调制编码实现并留下一些位不变的比率20/21块解码器的操作)。
这种实施方式中与实现16状态时变检测器框架及后处理器中MTR检查相关的数据码字d[107:0]中的约束是以下10个位置的j=2:103、89、82、68、61、47、40、26、19、5,及以下65个位置的j=3:102、101、100、99、98、97、96、94、93、92、91、90、88、81、80、79、78、77、76、75、73、72、71、70、69、67、60、59、58、57、56、55、54、52、51、50、49、48、46、39、38、37、36、35、34、33、31、30、29、28、27、25、18、17、16、15、14、13、12、10、9、8、7、6、4。
如从以上可以看到的,至少在其优选实施方式中,本发明使用局部(选择性)预编码和逆预编码来减少错误传播,由此提供出错率性能。通过避免逆预编码一些输入数据(即,未预编码的输入数据部分)的需求,由预编码造成的错误传播可以减少。此外,改序可以用于匹配定时恢复需求并方便用于例如基于8位或10位符号的Reed-Solomon编码的调制编码更灵活的设计。
在优选实施方式中,除了以上优点,基于单个比率8/9调制编码的用于8位和10位Reed-Solomon符号大小的特定编码描述成简化编码器/解码器的实现。
本发明前面的描述是为了说明与描述而给出的。它不打算是穷尽的,或者要将本发明限定到所公开的精确形式,关于以上教义,其它修改与变体也是可能的。所公开实施方式的选择与描述是为了最好地解释本发明的原理及其实践应用,由此使本领域其他技术人员能够以适合所期望的特定应用的多种实施方式和多种修改最好地利用本发明。除非受到现有技术的限制,否则所附权利要求打算被看作包括本发明的其它可选实施方式。