用于数字数据存储的编码器的制作方法

文档序号:7533151阅读:573来源:国知局
专利名称:用于数字数据存储的编码器的制作方法
背景技术
发明领域本发明涉及用于对数据进行编码以便将其存储在磁性或其它数据存储媒体上的系统和方法,具体地,涉及可变速率比特插入编码系统和方法。
相关技术描述可变速率比特插入技术作为一种用于使数据流对于检测该数据流中可能的错误来说变得十分坚强的方法是熟知的。典型地,这种方法在通信领域得到应用,虽然可变速率比特插入技术已在其它应用项中被使用,正如在技术上所熟知的那样。按照这种技术,数据比特被插入到数据流中的所选择的部分,在数据流的这一部分中,当精确地检测数据比特时存在着增长的造成错误的或然率。例如,可变速率比特插入技术可被用于其接收译码器是由本身时钟同步的通信系统。重要的是,使长串的1或0被打断,以使得检测器一侧的锁相环不会丢失对于发送数据的时钟速率的锁相。这在涉及例如从磁带上读数据的应用中特别重要,因为磁带存储媒体典型地具有很不确定的速度分布,因而优选地需要有经常的时钟信息来保持锁相。这样,在想要在读取端或接收端保持锁相的这种应用中,数据比特被故意地插入到输出数据流内的“有问题区域”中,以使得在检测器端,在接收的数据信号中出现足够的信息来保持对于这个数据信号的精确锁相,从而使数据流可被正确译码。
虽然可变速率比特插入方法作为提高数据对抗错误的坚强性的经济的和相当简便的方法是所希望的,但是,一般地已经发现这样的方法在其它应用中是不实际的。最值得注意地,在磁记录环境下,可变速率比特插入的可应用性受到限制。磁记录典型地涉及在磁带或磁盘上进行存储,其中数据首先被存储在磁带或磁盘上,然后再被读出。为了提供坚强的数据存储,可变速率比特插入可被用来在数据被写入磁媒体以前先对其进行编码,当数据被读出时所插入的比特被检测并被丢弃。然而,由于要被插入的比特的实际数目是非常难以预测的,所以,被插入的比特的数目有可能使数据流的长度扩展多达百分之十到十二。数据流的这样的扩展对于数据存储的目的来说是不能接受的,特别是当希望使数据存储效率最大化时。例如,如果一个具体的数据流具有的特性使得每10比特插入1个比特,则要被存储在磁媒体上的数据量将增加百分之十。这实际上使得500兆字节存储媒体变成为450兆字节的存储媒体。
在把数据流变换为对于可变速率比特插入来说能改正的形式的努力下,进入的数据流首先通过使用例如与进入的数据流进行“异或运算”的伪随机噪声码而被随机化,使其结果输出为随机的或伪随机的字符。这个随机字符确保数据流扩展超过例如百分之一的概率是统计上可忽略的。这是因为实行比特插入典型地中断正常排列图案,从而使得基本上随机的排列图案将需要非常少的比特插入。因而,通过在应用可变速率比特插入技术之前将数据随机化,可更容易地把这样的技术应用到涉及在磁性或其它数据存储媒体上的数据存储的应用中去。
然而,已经发现,在某些情况下,当进入的数据排列图案具有一种特性,即它以这样一种方式与伪噪声码(即,随机化多项式)相关,以致于产生不希望的编码特性(例如,长串的1或0,或者其它的冗余排列图案)时,则通过使用该特定的随机化多项式而进行的数据流的随机化将不能起到阻止插入的数据长度过分长的作用。具有这种特性的数据流典型地被称为退化的排列图案。因此,当进入的数据流是退化的时,可变速率比特插入技术对于磁性或其它数据存储媒体的使用是不实际的。而且,通常把这样的退化的数据排列图案的可能性简单地看作为在数据存储环境下使用可变速率比特插入的障碍。
除了上面提到的在数据存储应用中插入可变速率比特的缺点以外,已经发现,传统的可变速率比特插入技术并不总能确保可减少在接收端由于相位信息和自动增益控制的丢失而引起的错误。例如,如果检测的数据流具有的特性使得在长时间间隔内观察不到幅度的最大摆幅,则这可使得在检测端的自动增益控制丢失跟踪,由此把幅度误差引入到被检测信号中。而且,锁相的丢失还可能由除了接连的一串1和0以外的其它数据排列图案造成。因此,在一长串0和1中简单地插入一个比特并不能确保在译码端的自时钟控制系统中保持锁相。因此,就需要一种改进的数据编码方法,它能解决数据存储应用中有关可变速率比特插入方面的困难,并且也计及了与自动增益控制环或锁相环的误校准有关的接收端的错误。
发明概要按照本发明的优选实施例的教导,一种数据编码的系统和方法减少了前面所述的数据存储应用中有关可变速率比特插入方面的缺点。按照本发明,在实施可变速率比特插入技术期间,不是只插入单个数据比特,而是把编码最大相位和幅度信息的多个比特插入到数据流中,以使得在记录的数据流内总是呈现出为了保持在读操作期间的锁相和为了正确地校准自动增益控制所必须的信息。按照本发明的具体的有利实施例,在每次检测数据流的“有问题的区域”时,插入四个数据比特。
在优选实施例中,可变速率比特插入方法与可配置的随机化器相组合,这样,如果已确定一个特定的伪随机的随机化码产生了退化的数据排列图案,则随机化多项式可被重新初始化,以使得随机化器被重新配置。已经发现,如果一个伪噪声码产生退化的数据排列图案,则和它正交的另一个伪噪声码(例如同一族中的一个伪噪声码)将不会导致退化的数据排列图案。因而,在优选实施例中,随机化器对于一个正交码的重新配置确保了随机化器将不产生退化的数据排列图案。
在本发明的这个方面的具体有利实施例中,随机化多项式按照非决定性方法被重新初始化,这样,随机化器的重新配置是不容易预测的。本发明的优选实施例的这个方面平衡了被特别设计来打算产生退化的数据排列图案的数据流。
按照本发明的另一方面,随机化器的配置能够逐个比特地被改变,以使得随机化器的配置可“在空中(on the fly)”被改变。
附图概述

图1a和1b是总的系统图,分别说明了用于对要被存储在数据存储媒体上的数据进行编码、和对从数据媒体读出的数据进行译码的数据编码器和数据译码器系统的示例性实施例。
图2是简化方框图,说明图1a的随机化器/比特插入编码器的主要功能性单元。
图3是简化方框图,说明图1b的去随机化器/比特提取译码器的主要功能性单元。
图4是流程图,说明用来按照本发明的可变速率编码方法插入数据比特排列图案的通用方法。
图5是流程图,说明在图4的零点度量(null metric)子程序块内用来确定零点度量的子方法。
图6是流程图,说明按照本发明在图4的增益控制度量子程序块内用来确定自动增益控制度量的通用方法。
图7是流程图,说明按照本发明在图4的相位度量子程序块内用来确定相位度量的方法。
图8是流程图,说明在图4的插入比特排列图案子程序块内用来选择和插入适当的比特排列图案到输入数据流中的子方法。
图9是流程图,说明当数据要被存储到磁盘时按照本发明用来重新配置随机化器多项式的通用方法。
图10是流程图,说明当用来写入数据的存储媒体是磁带时按照本发明用来重新配置随机化器多项式的总的方法。
图11概略地说明在本发明的一个优选实施例中的数据块的格式。
图12-12d概略地说明在传统编码器内用来模拟读头冲击响应以便确定零点、相位、和自动增益控制度量的方法。
优选实施例详述图1是高度简化的示意方框图,说明用来编码要被存储在数据存储媒体上的输入数据流的示例性数据编码器系统。如图1所示,系统100包括里德-所罗门编码器105,它从直接存储器存取(DMA)通道102接收输入数据流,该直接存储器存取(DMA)通道102管理进入和流出共用的存储器资源数据流。里德-所罗门编码在技术上是熟知的,因此这里将不作详细描述。而且,本领域技术人员将会看到,输入数据流不一定由里德-所罗门编码器编码。实际上,其它形式的错误编码,例如,网格编码、卷积编码等,可被用于如由特别应用所要求的图1a的系统。一旦数据在里德-所罗门编码器105内被里德-所罗门编码,则数据在块交织器110被进行块交织。如在技术上熟知的,块交织器典型地包括一个矩阵,其中数据流按照矩阵的行被馈入,而按照矩阵的列被读出。通过对编码数据进行块交织,在深衰落期间(即,当由于瑞利衰落效应而丢失长的数据接连段时)出现的错误将在输入数据流的较大部分范围内以较小的片(chunk)的形式分布,从而,在任何给定的区域内,数据中的错误多半是可恢复的。一旦数据被进行块交织,则数据被输入到随机化器/比特插入编码器115。按照本发明的优选实施例,通常的随机化器/比特插入编码器115用可配置的伪噪声码对进入的数据流进行随机化,随后按需要插入数据比特排列图案,以便使随机化的数据流对于公知的检测错误(例如,在译码端处锁相的丢失、或自动增益控制(AGC)电路校准的丢失)来说成为坚强的。随机化器/比特插入编码器115将在下面参照图2更详细地被描述。
一旦数据被随机化以及在适当的“有问题的位置”进行比特插入后,数据被存储在数据存储媒体125,它例如可包括磁盘或磁带存储体等。块交织器110和随机化器/比特插入编码器115都在微控制器120的控制下工作。
图1b是高度简化的示意方框图,说明当数据被参照图1a描述的系统和方法编码时用来译码存储在数据存储媒体125上的数据的示例性系统。如图1b所示,从数据存储媒体125读出的数据被馈入到去随机化器/比特提取器译码器130。去随机化器/比特提取器译码器130将在下面参照图2更详细地被描述。去随机化器/比特提取器译码器130的作用基本上和在随机化器/比特插入编码器115内执行的随机化与比特插入过程相反。也就是,译码器130检测、提取和丢弃在编码器115内插入的数据比特排列图案,其后,把数据去随机化,以得出输入到随机化器/比特插入编码器115中的原先的数据流。
随后,去随机化器/比特提取器译码器130的输出被提供给块去交织器135,后者把交织块重新排序成它们原先的次序,如在技术上熟知的。在块去交织器135内对数据进行去交织以后,这个数据被馈入里德-所罗门译码器145。里德-所罗门译码器145的作用是检测和纠正在输出数据流内的错误。一旦数据被里德-所罗门译码,则从里德-所罗门译码器145输出的数据流应当是原先输入到里德-所罗门译码器105以便用来存储到数据存储媒体125上的数据流的重新结构。DMA通道147引导数据流到适当的存储器资源。去随机化器/比特提取器译码器130、块去交织器135、和里德-所罗门译码器145都是在微控制器140的控制下,在一个实施例中,它可以作为和微控制器120同样的微处理器来运行。
在优选实施例中,微控制器120、140使能/禁止编码器115和译码器130。而且,微控制器监视来自译码器130的错误状态(例如,CRC错误、插入提取错误等)。微控制器还监视编码器115的过量的插入,并提供正确的随机化器种子给编码器115和译码器130。另外,微控制器为每个块建立数据头字节,表示用于里德-所罗门译码器的地址信息和对于译码所需要的随机化器种子。微控制器在检测到写入后读出的错误时还实行重写。最后,微控制器在里德-所罗门编码器/译码器的能力被超过时实行读重试,如在技术上熟知的。微控制器120、140的每一个主操作将在下面更详细地被描述。
图2是概略方框图,说明图1a的随机化器/比特插入编码器115的主要功能性单元。如图2所示,由块交织器110提供的数据排列图案输入进到随机化器200。在一个优选实施例中,随机化器200包括异或门,它在第一输入端接收输入数据排列图案,并在第二输入端上从伪噪声码发生器205经过第二输入端接收伪随机噪声码。如将在下面更详细地描述的,伪噪声码发生器205包括移位寄存器和加法器配置,它由随机化器多项式定义,将在下面更详细地讨论。当然,将可看到,使用线性反馈移位寄存器(LFSR)的数据随机化是熟知的和惯用的。通过对伪噪声码发生器寄存器的输入值重新初始化,由发生器205产生的伪噪声码可被重新配置,这样,伪噪声码可容易地“在空中”(例如,在数据块之间)被改变。
随机化器200的输出被馈送到比特排列图案插入器210以及代码度量跟随器215。代码度量跟随器215把输入提供到插入计数器220,它又把输入提供给比特排列图案插入器210以及比特插入门限检测器225。比特插入门限检测器225把状态信号提供给主微控制器120,后者又把控制信号提供给伪噪声码发生器205。
比特排列图案插入器210的输出被提供给数据存储媒体。如图2所示,媒体可包括磁带230或磁盘235。本领域的普通技术人员将会看到,比特排列图案插入器210典型地被连接到数据存储媒体230、235中的这一个或那一个,并且典型地不是同时连接到这二者。
在工作时,来自交织器110的数据排列图案与伪噪声码进行异或运算,以便在线路206上产生以基本上随机的数据排列图案分布的输出数据排列图案。如上面概要地讨论的,具有基本上随机特性的数据排列图案(即,数据分布)在统计上是理想的,这样使得为中断冗余排列图案而必须被插入的数据比特的数目最小化,而该冗余排列图案会增加译码错误的或然率。
在线路206上的随机化的输出由代码度量跟随器215检测,它确定随机化的数据流是否满足按照本发明规定的三个独立的度量准则,以便使译码错误的或然率最小化。代码度量跟随器215的操作将在下面参照图4-7更详细地被描述。
当代码度量跟随器215确定一个比特排列图案要被插入在线路206上的随机化数据流中时,插入计数器220被加增量,以及由比特排列图案插入器210来插入适当的比特排列图案。在一个优选实施例中,虽然被插入的比特排列图案包括一个四-比特的字,但实际上,按照特定应用的要求,可插入一个单个比特,或者可替换地,可插入一个多比特字(即,具有两个、三个或多个比特)。由比特排列图案插入器210利用的、插入适当的比特排列图案的方法将在下面参照图4和8更详细地被描述。一旦比特排列图案被插入,则数据流传送到存储媒体用于永久存储。例如,数据流可被写到磁带230或磁盘235。
插入计数器220跟踪被插入到由比特排列图案插入器210输出的数据流中的比特排列图案的数目。如果在插入检测器225内检测到太多的插入,则这会使得一个信号被发送到微控制器120。微控制器120控制伪噪声码发生器205来重新配置由发生器205输出的伪噪声码。由微控制器120来修正由伪噪声码发生器输出的伪噪声码的方法将在下面参照图9和10更详细地被描述。
被写入磁带或磁盘的数据可被编码。当数据被写入磁盘235时,如果磁盘扇区大小由于对被写到扇区的数据实行可变速率编码而被超过,则数据块在扇区末尾被截断,且扇区以使用不同的随机化代码(即,种子)来进行随机化的相同的数据被重写。
在这种情况下,不但数据排列图案可被随机化,以减小在要被存储的数据流中进行的比特插入的数目,而且随机化代码可“在空中”被重新配置,这样,在原先的随机化代码不足以产生在可允许的总量下的比特插入的数目的情况下,以后的随机化代码将导致产生一个处在用于在磁性媒体上进行存储的可允许的限度范围以内的比特插入频率。
图3是简化方框图,说明图1b的去随机化器/比特提取译码器130的主要功能性单元。如图3所示,数据存储媒体(例如,磁带230或磁盘235)输入数据到自动增益控制电路305,后者把进入的数据流的幅度自动地调整到适当的电平,供代码度量跟随器310进行监视。模拟-数字转换硬件307被用来把AGC电路的模拟信号输出恢复成被写到磁媒体上的数字数据流。代码度量跟随器310以与图2的代码度量跟随器215基本相同的方式工作。代码度量跟随器310接收由AD转换器电路输出的数据流,并产生命令信号给提取计数器315以及给主微控制器120。主微控制器120的输入提供一个指示给微控制器120即在数据流内被检测的特定比特排列图案相应于一个插入的比特排列图案,而不是相应于数据的自然比特排列图案。当译码器310中的代码度量跟随器检测到一个包含了插入的排列图案时,便通知提取计数器315。提取计数器315去除掉插入的数据比特,并同时根据前两个译码的比特的极性来验证所提取的比特是正确的极性,如下面参照图8描述的。如果极性不正确,则产生一个错误状态信号来通知微控制器140。
比特排列图案提取器320通过循环冗余码(CRC)检验电路325输出数据流。CRC检验电路325验证适当的比特从数据流被提取,并且如果检测到一个错误,则输出一个信号给微控制器120。当由CRC检验电路325检测到错误时,把数据块加以标志作为擦除项。在随后的里德-所罗门译码器145中,被标以擦除项的数据通过使用由里德-所罗门译码器145提供的纠正能力被重新构建。如技术上熟知的,里德-所罗门编码允许检错和纠错。纠正数对检测数的比例可随想要的应用项而变化。在本发明的优选实施例中,里德-所罗门编码器/译码器被设置成可实现最大的纠正数目(即,可纠正如所检测到的那麽多的错误)。这是因为错误的检测通过使用CRC而被有利地实现。在检测到的错误多于能纠正的错误的情况下,微控制器140要求重新发送数据。一旦数据已被CRC检验电路325检验后,通过去随机化器330(在一个有利的实施例中,包括异或门)和伪噪声码发生器335,数据再次和适当的伪噪声码进行异或运算。伪噪声码发生器335从微控制器120接收指令,指示哪一个伪噪声码要被使用来通过去随机化器330对给定的数据块进行译码。如在技术上熟知的,有关被用来进行去随机化的那个代码的信息可从数据块的数据头部分中得出,它典型地通过使用固定码而不是用可变码被随机化。因此,起先为存储到磁带230或磁盘235而被写入的同一个数据排列图案在异或门330的输出端被恢复,并被传送到块去交织器135(见图1b),用于进一步的处理。
图4是流程图,说明按照本发明使用的、用来按照本发明的可变速率编码方法插入数据比特排列图案的通用方法。如图4所示,该方法开始时是以起始块400表示,然后进到四个度量子程序块410、420、430、435,用于并行处理,以便分别确定零点度量、相位度量、自动增益控制(AGC)度量、和前置头排列图案度量。
在子程序块410内确定的零点度量被用作为数据流内所检测的接连的零(通常称为零点排列图案)的测量。如上面概略地讨论的,当零点排列图案在数据流内持续一段延长的时间间隔时,对译码的影响会恶化,从而多半会出现错误。因此,子程序块410将结算零点排列图案的长度,并输出一个表示零点排列图案的标志或度量值。在子程序块410内使用的用来确定零点法的方法,将在下面参照图5更详细地描述。
如在子程序块420内表示的,对进入的数据流的相位度量进行确定。相位度量是数据流的相位内容的指示。如上面概略地讨论的,数据流包含适当的相位内容是重要的,因为数据译码不但根据幅度,而且也根据相位。因此,如果进入的数据信号的相位内容足够低,以致于相位译码器不能充分地重新校准,则译码器会失去校准。这会导致相位译码器作出不精确的相位测量。这样,作为进入的数据流的相位内容的测量,子程序块420输出相位度量值。在子程序块420内使用的方法,将在下面参照图7更详细地描述。
如在子程序块430内表示的那样,对自动增益控制(AGC)度量进行确定。为了精确地确定应当输入到AD转换器307(图5)的读信号的幅度,自动增益控制电路305必须把来自磁性媒体的数据流放大到适当的电平。然而,这个AGC电路305有时需要重新校准。这种重新校准取决于信号幅度的变化,以确定信号应当具有的增益幅度。这样,如果在读数据排列图案时信号偶而地经历最大幅度变化,则AGC电路305能在适当间隔进行重新校正将是特别有利的。因此,如果在子程序块430内作出判决在一段决定的间隔内未曾出现过最大幅度变化,则由子程序块430输出一个表示自从最大幅度变化以来经历了多长时间的AGC标志或测量值。在子程序块430内使用的、用来确定AGC度量的方法将在下面参照图6更详细地描述。
在本发明的一个具体的有利实施例中,代码跟随器215被配置成可监视数据块的数据头和数据区部分,以便确保前置头排列图案不被复制到前置头区以外。对于前置头排列图案的监视在子程序块435内完成。如果确定任何14比特的前置头部分已在其它地方被复制,则设置一个标志,它使比特插入器在这个14比特序列的结尾处插入一单个比特。在这种情况下,插入的比特被选择为和倒数第二个编码比特相同,从而确保前置头序列不被记录到数据块的数据头或数据区中。
在子程序块410、420、430、435内确定的度量被用作为到判决块440的输入,该判决块440判决零点、相位、或AGC度量中的任何一个度量是否超过。在一个有利的实施例中,子程序块410、420、430、435简单地设置标志,以表示度量门限已被超过。如果任何一个度量已被超过,则把一个比特排列图案插入到数据流中,以便补偿“有问题的位置”,如在子程序块450内所代表的(见图8)。然而,如果在判决块440内确定度量未被超过,则方法返回到子程序块410、420、430、435的输入端。在每个新数据块的起始端,重新设置适当的度量值。
图5说明了在图4的零点度量子程序块内用来确定零点度量的子方法的流程图。该子方法开始时是以起始块500表示,然后,进行判决在图12的以寄存器来实现的冲击响应模拟器的寄存器R3内存储的值是否等于零。如将在下面参照图12到12d更详细地描述的,用来从磁性存储媒体读出数据的读头的冲击响应作为对零点、相位和AGC度量进行估值的方法被拟合。在寄存器R3内包含的数值代表了零点排列图案的持续长度,从而使得在寄存器R3内包含的数值可被用来确定是否必须插入一个比特排列图案来中断零点排列图案。
如果确定在寄存器R3内包含的数值等于0,如在判决块505所表示的,则计数器(即,R3计数器)被增量,如在工作块510所表示的。然而,如果在判决块505内确定在寄存器R3内存储的数值不等于0,则R3计数器被清除为0,如在工作块510所表示的,然后,方法返回到判决块505。
一旦R3计数器被增量,则执行进一步的测试,如在判决块520所表示的,以便判决在R3寄存器内存储的数值是否等于10。如果在R3寄存器内存储的数值尚不等于10,则这表示零点排列图案不够长,因而不值得插入比特排列图案。然而,如果确定在R3寄存器内存储的数值等于10,则这表示零点排列图案足够长,因而需要插入一个比特排列图案来中断零点排列图案。因此,如果在R3计数器内存储的数值小于10,则方法返回到判决块505;然而,如果在R3寄存器内存储的数值等于10,则设置一个零点度量标志,以表示要由比特排列图案插入器210来插入一个比特排列图案,如在工作块525所表示的。一旦设置了零点度量标志,如在工作块525所表示的,则这表示将进行插入。然后,当检测到插入的比特排列图案时,R3计数器将自动被清除为0,因为插入的比特排列图案将使R3被设置为非零值。然后,方法返回到监视在寄存器R3内存储的数值。
图6是流程图,说明按照本发明在图4的增益控制度量子程序块内用来确定自动增益控制的度量的通用方法。该方法开始时是如起始块600所表示的,然后,进行测试,以判决在寄存器R3内存储的绝对值是否不等于2,如判决块605所表示的。如将在下面更详细地描述的,在寄存器R3内存储的数值可被用作为读出幅度的量度。因此,如果寄存器R3的绝对值不等于2,则这表示读出幅度在正或负方向尚未呈现最大变化。因此,将会出现自动增益控制不能进行精确校准的危险,因为自动增益控制电路未观察到最大幅度变化。为此,图6的方法跟踪在最大幅度变化之间发生的时钟周期数。为达到这一点,自动增益控制计数器被增量,如工作块610所表示的。然而,如果在判决块605内确定在寄存器R3内存储的绝对值等于2,则这表示AGC电路已观察到最大幅度变化,这样,AGC计数器被清除为0,如工作块615所表示的。方法从工作块615返回到判决块605,在其中读幅度再次被监视。
一旦AGC计数器已被加增量(如工作块610所表示的),则进行判决(如判决块620所表示的)AGC电路是否已增量到数值60。在AGC计数器内存储的数值60表示,自从上一个幅度的最大变化以来已过去了60个时钟周期,并且发现这个时钟周期数是一个方便的数值,可在这个数值时插入适当的比特排列图案,以便重新校准自动增益控制电路。因而,如图6所示,如果AGC计数器增量到数值60,则设置AGC度量标志,以便表示要插入适当的比特排列图案,如工作块625所表示的。如果AGC计数器尚未增量到数值60,则方法返回到判决块605,继续通过在寄存器R3内存储的数值监视读幅度变化。
如将在下面参照图8更详细地描述的,为了确定哪个比特排列图案将被插入到数据流中,如工作块625所表示的,在数据流内所插入的比特排列图案之前的2个比特被监视,并且选择一个比特排列图案以便确保输入的比特排列图案和数据流中的先前的2个数据比特的组合相协调以产生最大幅度变化。一旦设置了AGC零点度量标志,则这将造成比特排列图案的插入,随后它将把AGC计数器清零,如工作块615所表示的。同时,方法继续监视拟合的读幅度。
图7是流程图,说明按照本发明在图4的相位度量子程序块内用来确定相位度量的方法。该方法开始时是以起始块700表示,然后,计算图12的寄存器R5和R3内存储的数值之间的差值的绝对值,如工作块705所表示的。
随后,在工作块705内计算的数值被转换成加权平均值,如工作块710所表示的。由于在这里所描述的实施例中,在工作块705内计算的数值可以是0、1、2、3、或4,所以,相应的加权平均值是0、2、4、6、和8。例如,如果在工作块705内计算的数值是3,则这个值将被转换成工作块710内的数值6,而如果在工作块705内计算的数值是4,则这个值将被转换成工作块710内的数值8。
随后,如工作块715所表示的,从加权平均值计算移动平均值,该加权平均值是针对从数据块的前置头开始的所有比特来计算的,而该数据块的相位内容已被监视。这个移动平均值当每次在工作块705内计算新的数值时被重新计算。有利地,在每个数据块的开始,平均值被设置成表示接近最大相位内容的某个数。当移动平均值被计算时,这个值作为由数据流的实际相位内容所确定的值而变化。如果这个移动平均值跌到某个门限值以下,则这表示数据流具有非常低的相位内容,这样,比特排列图案应当被插入,以改进相位校准。这样做的理由是在寄存器R5内存储的数值是在寄存器R3内存储的数值的延时的版本。因此,在寄存器R5和R3内存储的数值之间的差值是对于在相应于寄存器R4内存储的数值的采样时刻的数据流改变率的测量。因而,这个差值测量了相位内容,从而使得从这个差值可作出关于是否需要插入比特排列图案以便增加数据流的相位内容的指示。
一旦计算了移动平均值,则作出判决这个平均值是否小于门限值,如在判决块720所表示的。在一个有利实施例中,对于数据头区的门限值大于对于数据区的门限值(见图11),然而,对于这些门限值所使用的实际值可能随着不同的应用而变化,而且可由具体实施方案所要求的来决定。然后,设置一个相位度量标志,如工作块723所表示的,并且方法返回到监视相位内容。按这种方式,当在数据流内检测到缺乏相位内容时,设置一个标志,它使得比特排列图案被插入,以便增加数据流的相位内容。然而,如果移动平均值大于门限值,则方法重新进到工作块705,以便确定下一个差值。
图8是流程图,说明在图4的插入比特排列图案子程序块内用来选择和插入适当的比特排列图案到输入数据流中的子方法。该方法开始时是以起始块800表示,然后,进行判决前置头是否被检测,如判决块801所表示的。如果前置头已被检测,则这使得适当的比特被插入到数据流,如工作块802所表示的。否则,如果前置头未被检测,则进行判决已被设置的标志是否为零点度量标志,如判决块803所表示的。如果零点度量标志已被设置,则比特排列图案“1100”被插入到数据流中,以中断零点排列图案,如工作块804所表示的。数据排列图案1100的插入方便地中断了零点排列图案,并且它也包括相位和幅度信息,以提供精确的相位和幅度校准。该方法从工作块804返回到图4的主方法。
如果在判决块803确定零点度量标志未被设置,则进行判决在数据流中的先前的2个比特是否为“00”,如判决块805所表示的。如果最后两个比特是00,则比特排列图案1100被插入数据流,如工作块810所表示的,以便产生6比特的排列图案“001100”。然而,如果在判决块805内确定先前的2个数据比特不是00,则该方法进行到去确定最后的2个比特是否为“01”,如判决块815所表示的。如果最后的2个比特是01,则比特排列图案1001被插入,如工作块820所表示的,以便产生6比特的数据排列图案“011001”。然而,如果数据流中最后的2个数据比特不是01,则该方法进到判决块825,在其中进行判决最后的2个数据比特是否为“10”。如果数据流中的最后的2个比特是10,则数据排列图案0110被插入,如工作块830所表示的,以便产生6比特的数据排列图案“100110”。然而,如果最后的2个数据比特不是10,则这表示最后的2个数据比特是11,这样,数据比特排列图案0011被插入到数据流,如工作块840所表示的,以便产生6比特的数据排列图案“110011”。本领域的技术人员将会看到,上面所描述的比特插入方法可确保最大相位和幅度信息被插入到数据流,从而帮助锁相环和AGC电路,使得锁相和增益校准不丢失。
一旦在工作块810、820、830、或840内适当的数据比特排列图案被插入,则方法返回到图4的主方法,如工作块850所表示的。按这种方式,优选实施例的方法可确保适当的足够的相位内容将被插入到数据流中,从而提供精确的锁相校正。而且,由于按照图8的方法插入4比特的数据排列图案将导致最大相位变化(即,R3-R5=4或-4),以及由于这个值被加权,从而使得最大相位变化将导致对移动平均值更大的贡献,所以,一比特的排列图案插入将足以使移动平均值超被提升成远远过门限值,从而使比特排列图案插入得到最佳相位内容。
图9是流程图,说明当数据要被存储到磁盘时按照本发明用来重新配置随机化器多项式的通用方法。该方法开始时是以起始块900表示,然后,无论何时比特排列图案被插入数据流时,如工作块910所表示的,进行判决对于给定的数据块,被插入的比特数目是否太大,如在判决块920所表示的。在一个实施例中,插入的数目被结算,且如果这个插入数目的4倍大于这样一个比特数目,这个比特数目会造成数据块太大而不能存储在磁盘上的,则设置一个标志。
因此,如果确定插入数目未超过门限值,则方法返回到工作块910,以便对下一个比特排列图案插入进行统计。然而,如果在判决块920内确定已超过了门限值,则该方法就执行截断最后一个数据块,如工作块930所表示的。这也就是,被写到磁盘上的数据块被截断,以使得它不超过用来写入数据块的扇区尺寸。随后,对于下一个要被随机化的数据块的随机化器初始设置由微控制器120来进行改变,如工作块940所表示的。在一个有利实施例中,随机化器初始设置可被改变成对于与最后一个数据块所曾使用的码正交的伪噪声码的设置。
用来重新配置随机化多项式以产生正交码的方法在技术上是熟知的。对正交码的重新配置确保下一个数据块与新的伪随机码将没有高的相关性。这是因为,正交码彼此具有几乎为零的相关性,这样,假定当比特排列图案与给定的伪噪声码具有高的相关性时接连的数据块具有几乎相同的比特排列图案特性,则该相同比特排列图案和正交于原先伪噪声码的伪噪声码将具有低的相关性。因而,通过改变对于下一个数据块的随机化器初始设置以使得新的伪噪声码正交于最后的一个伪噪声码,对于数据流的插入的数目通常可减小到低于为存储在磁盘上所需要的门限。
在一个优选实施例中,用来生成用于随机化数据流的伪噪声码族的随机化多项式为g(x)=x24+x21+x19+x18+x17+x16+x15+x14+x13+x10+x9+x4+x3+x+1最后,在改变了随机化器初始设置以后,其中插入的数目太高的最后一个数据块使用新的伪噪声码对其进行重写,如工作块950所表示的。所有的以后的数据块也使用新的伪噪声码来进行随机化。应当指出,在磁盘存储的情况下,由于磁盘存储媒体允许“在空中”进行重写的特性,所以有可能“在空中”改变随机化器多项式系数,以及重写入最后一个数据块。这样,按照图9的方法,数据可被写到磁盘驱动上而不存在因这样的数据太大而不能存储的危险,因为“在空中”改变随机化器多项式将确保对于给定数据块的增加的百分数将决不会超过被分配用于存储的磁盘扇区。
这里应当指出,在某些例子中数据以预期随机化器多项式中的变化(即,以产生退化的排列图案的特定意向)的方式被编码,这样,如果使用直接的改变随机化器多项式系数的方法,这样的数据流仍有可能需要不能接受的比特插入数目。因此,按照优选实施例,改变随机化器多项式的方法本身是伪随机性的或非确定性的,从而使得在该方法中故意以这种方法来编码以阻止数据存储的数据流仍旧可以以这样的方式被随机化,以便把比特插入数目减小到可容忍的程度。正如技术上所熟知的,多个互相正交的代码在由随机化器多项式定义的代码族内是相关的。这样,与上一次使用的代码正交的任何一个代码可被随机地选择为下一个随机化器种子。可替换地,当特定应用需要的话,用于选择接连的代码的复杂的非重复的排列图案也可被利用。
图10是流程图,说明当供写入数据的数据存储媒体是磁带时按照本发明用来重新配置随机化器多项式的总的方法。该方法开始时是如起始块1000所表示的,随后,插入到数据流的任何比特插入被结算,如工作块1010所表示的。如果确定对于给定的数据块的插入数目是在允许限度以内,如判决块1020所表示的,则方法返回到工作块1010,以等待下一个插入。然而,如果在判决块1020内确定插入数目超过允许的门限水平,则在判决块1030进行另一个判决插入数目对于一个或多个数据块是否太大。在一个有利的实施例中,在确定出插入数目已在太长的一段时间内被超过以前,监视一个数据块,然而,当特定应用要求的话,也可监视两个、三个或多个数据块。如果插入数目没有在太长的一段时间内被超过,则方法返回到工作块1010。然而,如果在判决块1030确定插入数目在太长的一段时间内太大,则对于下一个数据块,随机化器初始设置(即,随机化器多项式的系数)被改变,如工作块1040所表示的。在工作块1040内所使用的方法基本上等同于在图9的工作块940内所使用的方法。
在对于下一个数据块的随机化器多项式的系数被改变以后,方法返回到工作块1010,继续监视插入到数据流中的插入数目。按这种方式,优选实施例将确保插入到要被存储到磁带上的数据中的插入比特数目并不会使要被存储的数据规模增加到超过容许的限度(例如,1%)。
图11概略地说明在本发明的一个优选实施例中的数据块的格式。总的数据块格式是由应用所特定的。每个数据块最好由一系列成帧的子数据块组成,这些子块包含系统的里德-所罗门码字的交织序列。纠错主要是基于擦除。这是有效的,并使用小的带宽。
如图11所示,每个数据块包括前置头、数据头、数据部分、循环冗余检验(CRC)部分、以及后置部分(postamble)。前置头典型地包括四字节段,它被用来标志新数据块的开始,并且它优选地不以伪噪声码来进行编码,这样,为了检测前置头段不必需知道该伪噪声码。在一个实际的实施例中,前置头是“01001100110011001100110011001111”。
数据头段包含对数据段加密器的初始化以及其它信息。对于由来自主系统的共用存储器资源进行接收的每个512字节的数据块,它最好是一个三字节的序列,由微控制器120发送给共用的存储器资源。所以,数据头区最好是由来自直接存储器存取(DMA)通道的编码器接收的头三个字节组成。在记录之前,数据头使用固定的随机化代码(即,种子)进行随机化。因为数据头使用总是可供译码器130使用的固定种子来进行随机化,数据头的随机化可能导致数据头序列具有很差的读出特性。例如,固定的数据头随机化器可能产生包含一长串的零的数据头。因为重新随机化是不能供数据头区使用的,所以对于数据头区最好使用不同于数据区的编码方案。例如,数据头可通过使用固定的4/5或8/9码来被编码。这比起用于数据块的可变速率插入码效率较差,但它在不存在重新随机化条件下提供较好的可读性保证。作为优选的替换例,可变速率比特插入可在数据头上实施,但是针对零点序列长度、相位内容、和幅度变化的比特插入门限则不同于在写数据时所利用的门限,以便较好地保证对于数据头区的适当的读出特性。
随机化器初始化最好是对于物理帧中的所有子块都是相同的。由于在读的同时进行写纠错,子块可以与不同于记录了这些子块的物理磁道或帧的磁道或帧有关。这样,用来补偿这种效应的信息被包括在数据头内。
数据区包含已经使用随机化多项式来进行编码的数据。这个数据区包括来自DMA通道的最后512个字节。在一个有利实施例中,数据的随机化涉及按照技术上熟知的方法对数据进行异或运算,这些数据具有上面讨论的24比特随机化多项式的最低有效位。
CRC段有利地包括一个六字节区,它是根据前面的数据头和在随机化以后的数据区来计算的。这个子块不被随机化,并且不需要随机化器的初始化的知识,就能够确认一个子块。在一个优选实施例中,用来计算CRC区的多项式是g(x)=x48+x46+x44+x42+x36+x34+x33+x32+x31+x30+x28+x26+x25+x24+x23+x22+x21+x20+x19+x17+x13+x10+x9+x6+x4+x2+x+1这个后置区有利地包括一个四比特排列图案,例如0101。
图12-12d概略地说明在传统编码器内用来模拟读头冲击响应以便确定零点、相位、和自动增益控制(AGC)度量的方法。为了确定用来从磁性媒体读出数据的读头是否接收到足够的幅度和相位信息,重要的是通过使用部分响应拟合方法来模拟读头的作用。在优选实施例中使用的特定实施方案中,第4类扩展的部分响应(EPR4)被拟合,因为通过使用这种方法的拟合最接近于在优选实施例中使用的读头观察到的真实响应。
如图12所示,数据流被输入到并行乘法电路,在其中数据流的每个比特同时和一个正1或一个负1相乘。如图12所示,来自数据流的一个比特和1相乘,然后,被加到寄存器R0内的数值上,同时同一个比特和1相乘,然后,被加到寄存器R1内的数值上。相同的数据比特也和-1相乘,并分别被加到存储在寄存器R2和R3内的数值上。在每个时钟周期,被存储在移位寄存器单元内的数值被移动一个比特,从而实行了卷积编码,以模拟读头的冲击响应。
例如,如图12a-12d所示,假定寄存器单元R0-R5被初始化为0,当数据流的第一比特被接收时,寄存器单元R0-R5将分别具有数值1、1、-1、-1、0、和0,如图12a所示。随后地,寄存器单元R0-R5内的数值被移位一个单元,从而使得R0等于0,R1等于1,R2等于1,R3等于-1,R4等于-1,和R5等于0。
然后,当数据流中的下一个数据比特被应用时(例如,图12所示的0),这个值与适当的乘数值相乘,并被加到存储在移位寄存器单元R0-R5内的数值上。因为这个数据流数值是0,如图12的例子所示,所以这不改变存储在移位寄存器单元R0-R5内的任何比特的数值。
然而,在下一个时钟周期,数据比特再次被移位,然后数据流中下一个比特与适当的乘数值相乘,并被加到移位寄存器单元R0-R3内各自的数值上。如图12所示,当在下一个时钟周期中应用一个1时,这会引起数值1被加到存储在移位寄存器单元R0内的数值0上,而数值1也被加到存储在移位寄存器单元R1内的数值0上。而且,数值-1被加到存储在移位寄存器单元R2和R3内的数值上,从而导致要被存储在移位寄存器单元R2和R3的一个净值0。最后,移位寄存器单元R4和R5分别包括移位值-1和-1。
再次地,这些值被移位一个单元(从而,R0-R5现在分别等于0、1、1、0、0、-1),且数据流中的下一个比特将与适当的因子相乘,并被加到移位寄存器单元R0-R3。以后进行的乘法以及与存储在移位寄存器单元的数值的相加将导致1、2、0、-1、0、和-1分别被存储到移位寄存器单元R0-R5中。
从上面描述的方法将会看到,无论何时接连的0的长的数据流作为数据流被输入时,这最终将使得对于数目扩展了的时钟周期来说,R3的寄存器值将被假定为数值0。这样,存储在寄存器R3内的数值将表示数据流内的零点。而且,也将看到,R3的数值表示增益内容,这样,无论何时在数据流中观察到大的幅度变化时,R3的数值将变成+2或-2。因而,无论何时在移位寄存器单元R3内在一段扩展的时间间隔内未出现数值2或-2时,这表示数据流缺乏幅度信息,从而附加了幅度信息的比特排列图案必须如上面所述地被插入。最后,将会看到,由于存储在移位寄存器单元R5的数值简单地是存储在移位寄存器单元R3中的数值的延时了的版本,在同一个时钟周期间隔内在存储在移位寄存器单元R3和R5内的数值之间的差值将表示由数据流产生的在时间R4处的冲击响应的“斜度”。这样,在存储在移位寄存器单元R5和存储在移位寄存器单元R3内的数值之间的差值是相位内容的测量,其中大的差值表示高的相位内容,及小的差值表示低的相位内容。
虽然上面详细地描述了优选实施例,但是本领域的技术人员将会看到,对于优选实施例可作出某些明显的修正而不背离本发明的精神或中心特征。例如,插入计数器可作为用以监视总的数据块大小或插入比特与非插入的比特的比值的装置而被实现。所以,本发明的范围应当按以下的附属权利要求来解释。
权利要求
1.一种用于对要被存储到数据存储媒体上的数字数据流进行错误编码的设备,所述设备包括数据流输入端口;代码监视装置,该装置监视所述数据流,以确定是否要实行比特插入;以及比特插入器,它在所述代码监视装置确定要实行比特插入以后,把一个或多个比特插入所述数据流。
2.如权利要求1所规定的设备,其特征在于,其中所述比特插入器插入一个多比特字,该多比特字编码最大相位信息。
3.如权利要求2所规定的设备,其特征在于,其中所述插入的多比特字还编码最大幅度信息。
4.如权利要求1所规定的设备,其特征在于,其中所述比特插入器插入一个多比特字,该多比特字编码最大幅度信息。
5.如权利要求1所规定的设备,其特征在于,其中所述比特插入器插入一个四比特字。
6.如权利要求1所规定的设备,其特征在于,其中所述数字数据流按照所确定的前置头序列被写到所述数据存储媒体上;其中所述代码监视装置监视所述数字数据流,以确定所述数字数据流是否包括所述前置头序列的子集;以及其中所述比特插入器在所述前置头序列的所述子集的一端插入一个比特。
7.一种数据存储装置,包括磁性数据存储媒体;以及可变速率比特插入器。
8.一种用于对要被存储到数据存储媒体上的数字数据流进行错误编码的方法,所述方法包括输入数据流;监视所述数据流,以确定是否要实行比特插入;以及当要实行所述比特插入时,把一个多比特字插入到所述数据流中。
9.如权利要求8所规定的方法,其特征在于,其中所述插入步骤包括插入一个多比特字的步骤,该多比特字编码最大相位信息。
10.如权利要求9所规定的方法,其特征在于,其中所述插入的多比特字还编码最大幅度信息。
11.如权利要求8所规定的方法,其特征在于,其中所述插入步骤包括插入一个多比特的字的步骤,该多比特字编码最大幅度信息。
12.如权利要求8所规定的方法,其特征在于,其中所述多比特字由一个四比特字构成。
13.一种用于对要被存储到数据存储媒体上的数字数据流进行错误编码的设备,所述设备包括数据流输入端口;与所述数据流输入端口通信的随机化器,其中所述随机化器使用第一随机化代码使所述数字数据流随机化,以便在所述随机化器的输出端处产生随机化数据流;代码监视装置,该装置监视所述随机化器的所述输出,以确定是否要实行比特插入;比特插入器,它在所述代码监视装置确定要实行比特插入时,把数据比特插入到所述随机化的数据流中;插入计数器,它监视插入随机化的数据流的数目;以及随机化器重新配置装置,它使所述随机化器当插入到随机化的数据流中的数目超过一个确定值时通过使用不同于第一随机化代码的第二随机化代码使所述数字数据流随机化。
14.如权利要求13所规定的设备,其特征在于,其中所述第二随机化代码与所述第一随机化代码正交。
15.如权利要求13所规定的设备,其特征在于,其中所述随机化器重新配置装置按照非决定性方法重新配置所述随机化代码。
16.如权利要求13所规定的设备,其特征在于,其中所述随机化器重新配置装置逐个数据块地重新配置所述随机化代码。
17.如权利要求13所规定的设备,其特征在于,其中所述比特插入器在每次插入时插入多个比特,其中所述多个比特被选择来编码最大相位和幅度信息。
18.一种用于对要被存储到数据存储媒体上的数字数据流进行错误编码的方法,所述方法包括使用第一随机化代码来使所述数字数据流随机化,以便产生随机化数据流;监视所述随机化的数据流,以确定是否要实行比特插入;当确定要实行比特插入时,把数据比特插入到所述随机化的数据流中;监视插入随机化的数据流的数目;以及当插入所述随机化的数据流的数目超过一个确定值时,通过使用不同于所述第一随机化代码的第二随机化代码来使所述数字数据流随机化。
19.如权利要求18所规定的方法,其特征在于,其中通过使用第二随机化代码使所述数字数据流随机化的步骤按照非决定性方法来选择所述第二随机化代码。
20.如权利要求18所规定的方法,其特征在于,其中通过使用第二随机化代码使所述数字数据流随机化的步骤逐个数据块地来执行。
21.如权利要求18所规定的方法,其特征在于,其中所述把数据比特插入到所述随机化数据流的步骤在每个插入过程中插入多个比特,其中所述多个比特被选择来编码最大相位和幅度信息。
22.一种存储数字数据的方法,包括以下步骤随机化一部分的所述数据;以及根据预定条件重新随机化所述部分的所述数据。
23.一种用于对要被存储到数据存储媒体上的数字数据流进行编码的设备,所述设备包括用于使用第一随机化代码使所述数字数据流随机化以便产生第一随机化数据流的装置;用于确定在所述数据流中要实行比特插入的位置的装置;用于监视在所述随机化的数据流中要实行比特插入的数目的装置;以及用于在插入所述第一随机化的数据流的数目超过确定值时,通过使用不同于第一随机化代码的第二随机化代码使所述数字数据流随机化的装置。
全文摘要
提供了可变速率比特插入器,它在把数据写到磁性存储媒体之前有效地编码数据。在优选实施例中,比特插入技术监视数据流的相位和幅度内容,以及插入适当的比特排列图案,从而确保能保持对于数据流的相位和幅度锁定,以便进行读出和译码。优选地,对给定的随机化的数据块进行的比特插入的数目被监视,以确定比特插入数目是否处在用于存储数据的容许限制范围之内。如果插入数目是不容许的,则被用来随机化数据流的伪随机码被重新配置。
文档编号H03M13/41GK1215495SQ97193708
公开日1999年4月28日 申请日期1997年2月7日 优先权日1996年2月9日
发明者M·D·格赖 申请人:沃弗兰信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1