发明内容
本发明的一个目的是提供一种用于从数字存储转动媒体中读出数据的改进方法和设备。本发明的一个特定目的是实现从一个转动存储媒体中读出的有效实施,同时对比如加在DVD记录中的一个2维码进行解码。
本发明在第一方面中提供一种从一个连续数据流中再现数据的方法,该数据流包含了根据预确定的数据块大小而加上的差错保护码,该方法包括:
(a)提供用于在纠错处理中多个校正子缓存器,其每个能够存储一个纠错校正子,从中可得到这种数据块内的数据校正;和由包括如下的步骤来处理所述数据流:
(b)使用第一个校正子缓存器来累加可用于第一数据块校正的第一校正子;
(c)把所述第一数据块的数据存储在数据缓存器中,而不必施加从所述第一校正子中得到的校正;
(d)使用第二个校正子缓存器来累加第二校正子,从中可得到第二个第一数据块内的数据校正;
(e)与步骤(d)同时,使用在第一校正子缓存器中累积的第一校正子来计算可用于所述第一数据块的校正;和
(f)在步骤(e)之后,释放第一校正子缓存器用于累加后续数据块的校正子中;和
(g)使用在第二校正子缓存器中累积的第二校正子来计算可用于所述第二数据块的校正,该处理以类似的方式继续直到处理了所有要求的数据块。
发明者已经意识到这实际上可以消除大存储器和快速处理之间相矛盾的要求。
这种双缓存器技术减弱了用于计算来自系统的差错和位置的差错校正器速度,因为这些计算现在可以与下一ECC数据帧的接收平行地执行。先前,必须顺序执行计算,并且因此在差错校正器的运行期间接收数据必须被缓存在一个FIFO中。在外部纠错已经被计算出并被应用之前把用户数据从解码器转送到一个主输出缓存器存储器,而不是停滞数据流。可以扩展对校正的数据缓存器的访问使得将对数据流的中断减到最少。
在步骤(e)和(g)的每一个中,将校正计算的结果储存在第一和第二校正子缓存器,分别重写累积的第一和第二校正子。
这种方法还包括(h),根据在步骤(e)和(g)中执行的校正计算结果来对每个各自的数据块施加校正。
可以在数据缓存器中的选择位置处通过读修改写操作将校正加到数据上。可替代地,校正可以从校正子缓存器中被转送到缓存存储器的另一部分去,并随后被应用。校正例如可以在每个数据块从数据缓存器中被读出期间被应用。
第一和第二校正子缓存器可以被永久地指定,或者可以从两个以上的物理校正子缓存器组之中被一个字块一个字块地被指定。
在多轨道实施中,接收数据流可以是被并行读取的一组N个子流之一,从单个记录数据流内N个各自的位置开始,步骤(a)提供至少2N个物理校正子缓存器。单个记录数据流可以包括以螺旋的形式记录在类似盘的记录运载体(比如一个DVD)上的数据。正如在上面所使用的,词组”连续数据流”是意指包含记录数据流的每个分段,其在多轨道设备中被读取并随后”合在一起”以便恢复更长记录序列。
在一个多轨道实施中,所述数据流可以开始通过一个数据块的部分路线,步骤(b)包括只累加一个局部校正子,该方法还包括(a)(i)存储所述局部校正子并随后当开始接收另一所述数据流中相同的数据块时完成校正子。
步骤(h)可以包括把该局部校正子从第一校正子缓存器转送到所述缓存存储器。可替代地,局部校正子可以保持占用第一校正子缓存器直到数据块开始。在后一种情况中,至少3N-1个校正子缓存器可以被提供于步骤(a)中。
如果被转送,为了完整,局部校正子可以被转送回到所述校正子缓存器之一中。可替代地,校正子的完成可以发生在所述缓存存储器中,或者甚至例如随后紧接着被读出。
第一和第二校正子可以形成外部纠错处理的一部分,每个数据块包括:在它们自己内部受到内部纠错处理的许多子块;在经受所述内部纠错处理之后在步骤(c)中被储存在所述缓存器中的储存数据。所述子字块可以被认为是二维矩阵的行,内部纠错被应用到相对位于接收数据流内的矩阵的各行,而外部校正处理被应用到在数据流内较广泛扩展的矩阵的各列。
本发明第二方面中提供一种数据处理的方法,数据包括记录在光盘上的DVD数据,其中,双缓存被用于外部纠错校正子,在一个缓存器中累积一个ECC帧的校正子,而使用先前在另一校正子缓存器中累积的一个校正子来执行前面数据块的纠错计算,当接收另外的数据字块时依次使用该校正子缓存器。
在一个优选实施例中,在相应的校正被计算出或被应用之前,把每个字块的数据传送给未与该校正子缓存器集成的一个缓存存储器。
本发明还提供一种用于再现储存在一个记录运载体上的数据的设备,该设备包括:盘传送装置,包括:用于从该运载体中读取数据的一个拾取器,用于从该运载体中恢复数据的信号处理装置和用于按照包括在其中的纠错码来对从该运载体中读取的数据解码和纠错的一个解码器,其中,该解码器被安排来执行根据如上所述的本发明第一或第二方面的方法。
本发明还提供一种解码器,包括:输入装置,用于并行地接收一个连续数据流,要被解码的第一序列数据的多个子序列,并且其中,该解码器被安排来执行根据如上所述的本发明第一或第二方面的方法。
该解码器可以包括一个集成电路,该集成电路包括内部和外部的纠错校正器,和用于存储每一信道至少一个外部纠错校正子的缓存器,以及在遇见数据字块的结尾之后用于把一个局部校正子转送给外存储器的装置。
最佳实施方式
DVD阅读器结构和纠错格式概述
图1示出了一个光盘再现设备的基本元件,在这种情况下,一个DVD ROM驱动用于与一个主机一起使用或者是成为音频与视频题材的用户DVD播放器的一部分。关键的特征有:盘102的一个传送机构100、被已知类型的各个从动系统驱动并聚焦的一个光拾取器(OPU)104、预放大器106、处理和缓存电路108以及与计算机、音频/视频重放系统或者其它主机的一个接口110。本公开主要关注处理和缓存电路108,这样将不再更详细地描述其他元件了。
图2示出:一个DVD ROM系统的读取数据路径是由码元检测200、EFM+解调202、差错校正204&206、存储缓存器208以及主机接口110组成的一个复杂结构。纠错按照两阶段来执行:内部差错校正204和外部校正206。两种类型的纠错假定对于一个特定码字(212/216分别地)产生一个校正子(或者”特征标记”)。在内部纠错情况下,对于一行记录扇区,给出一个码字PI,被储存在一个行缓存器210中。使用一个外部码字PO来在同一扇区的列上执行外部纠错。所产生的校正子然后被加到一个纠错模块(214/218),其计算所有可纠错的地址和数值。假定只是可校正的差错存在,则通过把获得的校正加到该错误的数据上来恢复原始数据。外部校正处理需要访问缓存器208,这必将中断经内部校正器从拾取中而来的数据流。为了吸收这些中断而没有数据损失,则在行缓存器210的输出处提供一个FIFO缓存器220。把校正加到该数据上之后,则通过主机接口110把它传送给用户。
实际上,各个元件200-220可以通过专用于那个功能的电路来实现,或者它们可以由达到同一功能的可编程硬件和软件的适当组合来实现。
图3说明了储存在盘102上的数据的DVD数据扇区格式。原始的计算机数据被带入2048字节扇区中,正如在CD-ROM中一样。每个DVD数据扇区是2064字节长并且包括12字节标识(ID),其包含物理扇区地址&ID、数据以及四字节的纠错和检测码EDC。注意:这比一个CD-ROM扇区要短(2352字节)。
图4说明了如何使用一个RS(Reed-Solomon)乘积码来把如图3所示的16个扇区组合成为一个记录字块或者纠错码(ECC)帧。RS-PC是一个分组码,含意是:纠错(ERCO)操作在作为ECC帧的缓存数据块上。这是比使用在CD-ROM中的CIRC加上第三级(C3)保护更强大的(有效的)代码。纠错冗余度大约是13%(是CD的一半)。ECC帧包括16*13=208行(每行内为182字节的数据(未示出)),数据被EFM+调制进行编码,并且两个32比特同步码(未示出)在每一行中的0和91字节位置之前被插入。
每个2064字节数据扇区占用遍及12行的ECC帧,每一行包括172个扇区数据字节和10 PI字节,它们是附加用于内部纠错的码字(奇偶性)。在每一ECC帧中有16个数据扇区。在每12行之后,第13行PO被附加。每一栏中的十六个PO字节形成ECC字块到达列的一个16字节外部保护码字。该代码操作在一个数据矩阵的行和列上,在行上给出一个T=5校正码和在列上给出T=8的校正码。
每91字节就插入的同步模型按照它们在字块中的位置而不同。特别地,每一记录扇区中被数据扇区的ID字段紧跟着的第一同步模型在ECC帧内是唯一的。用这种方式,EFM+解码器可以轻易地识别ECC帧内的得到扇区ID字段的行0、13、26…以及每13行的开始。
我们发现使用于数据路径中的缓存器的尺寸代表了硬件实现中的一个显著的成本。DVD内码字对应由172数据字节加上10字节奇偶校验码组成的一行DVD记录扇区。这意味着图2中的行缓存器210至少为182字节长。实际上,这个行缓存器被用来存储在校正子产生期间的一个码字、被纠错的一个码字,并且担任输入和输出数据的缓存器。因此,可以假定缓存量的上限为182字节的4倍或者728字节。除了数据缓存器之外,需要校正子的一些存储量,其在内部校正的情况下等于10字节。
DVD外部码字对应于DVD记录扇区的列并且因此必须考虑一个更大的数据数量。因为在一个记录扇区中有172列(一行的长度)和192数据行,所以需要一个32K字节大小的缓存器。因为把这种尺寸的缓存器集成到一个IC中是昂贵的;而在这数据正被传送到一个外部DRAM存储器中时计算该校正子是更有效率的。这是可能的,因为校正处理只是基于校正子并且所有的校正被加在外部DRAM的读修改写操作中。这在图2中利用对缓存器的两个输入信道来指示,一个用于内部校正之后的数据而另外一个用于外部校正的结果。
在记录扇区的172列上执行纠错意味着16字节长的172个校正子必须被储存,这导致一个2752字节的存储要求。可是,由于在计算出的校正子被加到差错校正器的同时数据流仍然继续的这个事实,则需要典型容量为5K字节(大约为15%的ECC帧)的FIFO缓存器220。
除了如上所述的缓存器之外,在DVD ROM数据路径中还有许多计算字块,其贡献于此实施成本。最昂贵的块是差错校正器,它通常具有超过10,000门的门计算。EFM+解调器(经常被实现为ROM查询表)和校正子产生器明显较小并且每一个都有一个不足差错校正器尺寸20%的一个尺寸。因此,差错校正器经常被实现为内部和外部差错校正器中的一个共享资源。
校正子双缓存
图6是示出一个修改的解码器中数据路径的一个修改框图,特征为一个双校正子缓存器。有着相同功能的各个部分像图2中一样被编号。显著的改变在外部差错校正器206中,在此,被外部校正子产生器216和外部差错校正器218使用的一个校正子缓存器已经被复制。两个校正子缓存器230A和230B被提供,每一个都能够保持一个完整的外部校正子(182*16字节)。通过选择电路232和234,缓存器之一被连接到校正子产生器216,同时另外一个被连接到外部差错校正器218。用户数据在内部ERCO电路204之后通过缓存器管理器236被直接储存到缓存器208。缓存器管理器236还允许外部差错校正器218访问储存的用户数据。
在操作中,一个完整ECC帧的一个校正子(例如)在缓存器230A中被累积,而未被外部纠错处理校正的那个帧流的数据累积到主存储器缓存器208中。在那帧结束处,选择器232、234切换校正子缓存器230A和230B的角色,以使缓存器230B可以立即为下一帧开始累加外部差错保护校正子。下一帧的数据因此无延迟地从内部ERCO电路204流到主缓存器208。FIFO缓存器220从而被消除,或者至少从5K字节降低到较少的字节。当此下一帧在流动的同时,差错校正器218有机会处理停留于缓存器230A中的校正子以便导出与完成的ECC帧有关的差错位置和数值信息。此计算的结果可以合宜地被储存回到校正子缓存器中。该结果然后被用于通过对主缓存器208的读修改写访问来纠错。此访问可以被散布在帧周期各处,以便避免对下一帧数据流的任何中断。
在下一帧的结束处,校正子缓存器230A和230B的角色再一次被颠倒,并且在从盘中再现的数据流的持续时间期间处理继续。
有关上面方案的变体是可能的。特别地,校正子缓存器的总数不局限于两个,并且校正子缓存器230A和230B的空间可以由一个较大的存储主体中动态地分配--如果期望的话。校正不需要在缓存器208中通过读修改写操作来进行。它们可以被延迟并在从缓存器到主机的数据读出期间运行时被执行。可替代地,差错位置和数值信息可以靠着用户数据简单地被储存在缓存器中,作为将来的参考。
多光束系统
对于一个更快的总数据读出速度,一个多光束系统可以被想象,如在诸如上述WO-A-98/37555之类的CD-ROM系统中已经了解的。在一个多光束解码器(未说明)的过分单纯化的方法中,图2的整个数据路径对于一个N光束系统可以被重复N次,来自这N个信道的数据在一个大RAM缓存器中被再结合。这种方法的主要缺点是:纠错逻辑被重复N次并且ERCO缓存器(32k字节)和校正子RAMS(2k7字节)被重复N次,这导致一个非常昂贵的单芯片解码器。这倾向于一个非常昂贵的一片解码器。可是,使用校正子双缓存技术,至少5K FIFO不需要被重复。
图6说明了一个更改进的多光束系统,并且其中在介绍中提到的校正子双缓存和局部校正子的一个可以被应用为优点。对于一个有N光束的多光束OPU 504,添加一个传统(或高旋转速度)DVD盘传送500与盘502,并且在N个并行信道中输出读出信号。虽然为了清楚在图6和7中只示出四个信道,但是N=7将是接着的实施例中的一个典型数字。分开的预放大级506a、b、c、d被提供,每一信道一个,并且直到以及包括内部ERCO处理在内的类似信道处理被电路508a、b、c、d并行地执行。
通过缓存器管理块513中的存储器接口的适当控制,主ERCO缓存器可以被放置在外部SDRAM 514中,并且差错校正器的一部分在信道之间可以被共享。与单个光束系统相比较,稍后将关于图11描述缓存器管理器的扩展功能。在图6的配置中,内部校正器是常规的,并且外部校正子产生(很高的存储器带宽)是片上,同时主缓存器是存储器514中的片外。一个共享外部校正器510被使用。相对于稍后的图,更详细地例证这些特征。根据外部ERCO电路的性能,可替代地,许多并行外部校正器可用来提高性能。可以通过调整这些参数来进行各种设计从而用复杂性和功率消耗来交换性能。
图7说明了DVD或CD的(夸大的)螺旋轨道上读出的多光束的处理。信道a、b、c和d与遵循着盘上四个相邻轨道的光束点相关。光束a是四个中最内侧的一个,而光束d是最外侧的。在这张图中,指出光束四处移动并且移到盘表面之外。当然,事实上,盘旋转同时OPU保持同一角位置,但是轨道径向向外。虽然相邻的点可以被认为是四个平行的轨道,但是必须记住它们实际上是只是在一个连续螺旋上的点,因此在一个旋转之后,光束a到达光束b开始的位置,等等。按照螺旋轨道放下的数据的单一线性序列在图7的底部被表示,ECC帧边界也被表示。
黑色圆圈表示第一次旋转开始处的光束位置。数据内相应的位置表示在图底部的线性表示上。三角形表示在一个旋转之后光束的位置。矩形表示在一个旋转以及一个跳跃之后光束位置a′、b′等等。应该看出:由于跳跃延迟,数据被丢失,直到一个完整的盘旋转已经完成以前。为此缘故,最大跳跃实际上是N-1轨道,并且信道a在点a’处接替部分路线通过,最近覆盖读取的部分是信道d。
应当指出,一般来说,在跳跃之后读出将通过一个ECC帧开始部分路线。在图7中用星号”*”标记的ECC帧只是部分地被任何一个光束读取并且这导致到达外部校正子产生器的部分数据或数据混乱。这在CD-ROM系统中没有这样一个问题,在此,纠错码是线性的,并且在跳到一个新的轨道位置之后有效数据可以在短时间内被解码。可是在DVD中,解码在内部和外部ERCO处理之外获得有效数据之前需要一个完整的ECC帧。可是,该设备被安排来在一个扇区的基础上累加局部校正子,当跳动到一个ECC帧中间时使用扇区ID字段来识别它的位置。这种技术是在上面提及的我们的共同悬而未决的申请[ID400196]的主题。
多轨道DVD-ROM系统的详细示例
如上面所解释的,为了降低旋转速度同时仍然保持或提高性能与吞吐量,在所建议的多轨道DVD ROM系统中从好几个平行轨道中读取数据。可是,可以想象另外的结构,这取决于数据路径(图2)中的点,在该点处,从N个并行输入信道中收到的数据被再结合到单个数据流中。很显然,这种再合并的字块的位置对所导致的系统的成本和性能具有一个显著的影响。在参考图8到10描述的第一详细实施例中,正好将在码元检测或EFM+解调之后执行再结合,这导致主解码电子设备事实上保持与单个点样系统无变化的这样一个系统。更高吞吐率和附加灵活性的其它解决方案在该共同悬而未决的申请[ID400196]中被公开,其把再结合移动在内部或外部差错校正器之后,允许最大性能和系统成本之间的更详细的交换。
标准DVD解码处理的功能块(图2)将在这些实施例中被了解。区别自然地出现在并行性开始活动的每一块的许多实例中以及在对于数据流和局部数据的再结合处理的附加结构性能和控制逻辑中。
为着要说明的目的,下列实际的示例是以下列假设为基础的:
·预期的用户数据速率:64*DVD(就在90M字节/秒下)。
·N=7信道多轨道系统。
·基于EDC帧的数据再结合。
·在跳动和数据同步之后的系统效率已经被考虑:80%。
·在每一输入信道中所需要的性能:11.5*DVD,个体信道数据速率=几乎38M字节/秒。
第一示例-纠错之前的再组合
图8(a)示出了具有较少缓存器再组合的一个系统框图,在此,一个多路复用器720被用来把传入数据字节转送到EFM+解码器中。其替换配置(b)只是前端被示出,对于每一信道具有一个分开的EFM+解调器,并且多路复用器馈送到内部差错校正器部分的行缓存器中。两个变型实施例的操作是类似的。可是,经过多路复用器的数据的容量在(b)情况下较少些。正如将参考图9更详细描述的,一个动态校正子缓存器722与外部ERCO电路联合被提供。
正如在DVD数据格式的常规讨论中提及的,每91个字节就插入的EFM+同步字允许EFM+解码器识别ECC帧结构中行和扇区的边界。本设备的设计者已经意识到这个有价值的信息实际上可用在数据路径中的早一级。此允许数据,特别是局部数据,被立即引导到适当的缓存器位置,而不是被”中间状态”保存等待它们自己扇区的深度解码。由EFM+解调器产生来识别行和扇区边界的各个标记被示出为图8(b)中的多路复用器的输出:
·数据[31:0],一次四个数据字节,
·data_valid,指示有效数据是否出现,
·pi_row_start,指示一个新PI码字开始,
·edc_start,指示一个新的ECC记录扇区的开始,和
·channel_nr,指示当前数据起源于哪一输入信道。
在详细地讨论图9和10之前,将概括描述这个配置的操作。一旦已经把包含PI码字的一整行转送到行缓存器中,则校产生正子并加到纠错模块。一旦已经在行缓存器中进行了所有的校正,则码字可以被转移到外部差错校正器。注意,内部纠错处理的结果被用作对外部处理的”提示”。例如,内部校正子可以显示整行数据的擦除。这个信息除了外部码字PO之外可以被使用来定位列内的差错,它帮助外部ERCO处理。
这种方法需要下列大小的一个内部行缓存器:182字节的N个缓存器来容纳呼入PI码字,(N-1)个缓存器等待处理,1个缓存器在内部校正子产生期间被使用,1个缓存器使用于内部纠错处理中以及1个缓存器用于对外部差错校正器的数据传送。这总和为(2N+2)个缓存器。N=7,则需要182字节的16个缓存器,导致一个2912字节的存储要求。除了物理存储空间之外,行缓存器还必须包含控制输入多路复用器的逻辑,产生物理缓存器的地址以及识别完成的以及准备用于校正的被完成的行。此外,控制逻辑必须确保校正被写回到正确的缓存器,完全正确的数据被传送给外部差错校正器并且未使用的缓存器空间被重新分配给输入缓存器处理。
流再结合的较少缓存器实现意味着来自N个不同记录扇区中的外部奇偶性码字PO被送给外部校正器,因此导致N个校正子的同步产生。因此,需要附加的控制逻辑来把传入数据与一个特定的校正子缓存器关联,而当一个特定的校正子已经被完成时,把它移交到差错校正器。同时,控制逻辑必须确保校正被写到用户数据缓存器中正确的地址。
相对于存储要求,很明显,具有在下面更详细地描述的双缓存的校正子缓存器必须存储当前被计算出的N个校正子,正被等候校正的N-1个校正子以及使用于当前纠错处理使用于的1个校正子。此外,可以看出:一个跳跃前与后,通过一个输入信道只有ECC扇区的一部分被传送。这意味着在一个跳跃已经完成之后,对于其第一行已经被丢失的ECC扇区,高达N-1个被部分计算出的校正子被计算出。丢失的行在一个盘旋转结束处由一个邻近的输入信道读完该盘。相应的局部校正子可以被储存在校正子缓存器722中。可是,为了将这种片上缓存器的大小减到最少,它们在本新颖系统中被储存在片外用户数据缓存器724中。如果所有的校正子被本地储存,则需要3N-1个校正子缓存器,导致总数为55040字节的缓存量。
当局部校正子被储存在外存储器中时,校正子缓存器的数量降低到2N。如果等候校正的N-1个校正子也被储存在外存储器中,则将只有N+1个缓存器。在低性能的系统中,产生中的N-1个校正子可存储在外存储器中从而把缓存器数目减少到2。注意:所述的校正子计算方法要求所有的传入数据字节被预先乘以正确的alpha数值。还要注意,外部用户数据缓存器的大小由在一个盘旋转上大约2兆字节的数据总值的两倍来确定。这是因为正确的数据按照非线性的方式被放置在缓存器中并且仅仅在一个完整盘旋转之后可获得一个串行数据流。
基于上面给出的假设,在EFM解调之后,每一信道中的数据速率大约是18M字节/秒,它等于超过120M字节/秒的总体传送速率。为了应付这样高的数据速率,建议增加总线宽度如此以致获得一个较低的时钟频率。一个32比特的总线宽度在这里是适当的。一个75MHz的时钟频率更有效来从个体信道中接收数据字节,把它们分组到一个32比特字并且把他们在流再结合字块之外多路复用。
PI码字和内部纠错的缓存
内部校正部分中的主要元件是行缓存器710,因为它被用来把从EFM解调中进来的数据重建到PI-码字中,识别完成的码字并且在712处开始校正子产生,把校正子移交到差错校正器714并且确保校正被写回到行缓存器中。此外,数据在内部校正之后必须被传送给外部纠错部分。根据这四种功能,行缓存器710被概念地分开,如图9中的打点边界所示。
执行这些功能是在熟练人员的能力之内,在极大程度上它简单地包括已知的单个光束解码器的重复元件。可是,行缓存器和内部校正器的进一步详述被包括在上面提及的我们共同悬而未决的申请[ID400196]中。外部校正子处理和纠错
图9更详细地示出了外部校正子处理和纠错716、718、722。正如利用当前差错校正器,PO码字的校正子产生是由于高带宽要求所引起的一个问题。对于被转送到外部纠错部分中的每一数据字节,16个校正子字节必须被读取、更新并写回到存储器中。这个问题进一步被从内部校正部分中以30M字/秒的速率一次接收四个数据字节的这个事实所复杂化。为了克服与高吞吐量相关的问题,建议使用以75MHz运转的两个校正子产生器716a、716b。模块的流水线结构允许每个时钟周期处理一个16字节校正子和一个数据项。两个组合的产生器然后提供一个150M字节/秒的处理性能。
两个校正子产生器的足够的存储器带宽通过校正子缓存器722内的4个交叉式存储器组B0-B3的使用而被提供。两个存储器组被用来读取两个校正子产生器的校正子,并且剩余的两个组被使用来存储与早先一个数据项相关的两个修改校正子。这导致以四组安排的一个128比特(16字节)的存储器配置。(注意:如果存储器以两倍于系统频率(150MHz)被操作,则组计算可以被降低到二。)这些组或组对对应于图5中的校正子缓存器230A和230B。
当四个存储器组被使用时,对每个单独组的访问速率由每秒传送的120兆字节数据的这个事实来确定。正如已经描述的,两个同步读取从两个不同的存储器组中被执行,因此导致一半于传入数据速率的一个单个组访问速率:60M字节/秒或63兆访问。
迄今为止,已经说明了N=7个校正子缓存器722提供足够的存储器带宽用于校正子的实际产生。在这里,研究是否可把所有的校正子高速缓存在外存储器中。如果这是可能的,则只需要N=7个校正子缓存器。校正子高速缓存中的第一个问题是从缓存器检索出完成的校正子所需要的带宽。假定一个75MHz的时钟频率和一个63MHz的访问速率,很明显,85%的带宽被使用,15%仍然可用。可以示出:在两个以上ECC帧被同时完成的情形中,没有足够的时间来从校正子缓存器中复制一个校正子到不同的一个位置中:需要大约35%的一个可用带宽。
当然,存储器带宽总是可以被增加到适合,但是花费成本。在本实施例中,局部校正子的高速缓存之外,校正子双缓存被使用。校正子的双缓存意味着两个校正子缓存器被用于每一信道,一个缓存器被用于一个校正子组的产生,另外一个包含在它们被应用到差错校正器之前完成的校正子。一旦一个校正子已经被转送到差错校正器,则它随后被替换为从差错校正器中获得的差错幅值和位置。
双缓存当然把缓存区数目增加2N。正如已经解释的,校正子从缓存器中被读出并且校正信息被写回。
在上面的图6和7的讨论中,概述了在此建议的有效的多轨道系统工作在一个扇区(EDC)的基础上。这是很重要的,因为每次一个跳跃被执行,则检索的数据与一个ECC帧对齐是相当不太可能的。在来自下列ECC帧的数据被处理之前,替代数据传送以EDC扇区n开始并且以最后一帧15结束。第一ECC帧扇区的剩余帧0…n-1在一个盘旋转结束处从邻近信道中被接收。这意味着可能N-1个局部校正子在一个跳跃之后被产生(第一信道对准一个ECC帧或者只是到一个盘旋转结束时开始数据处理)。因为这些局部校正子无法被用于纠错,所以它们不需要占用昂贵的缓存器空间并且可以被转送到外存储器中。
如上面所解释的,每一信道有两个缓存器:一个用于当前校正子的计算和一个使用于校正处理中的校正子。为了释放被一个局部校正子占有的空间,它必须在它花费来计算下一校正子的时间期间被传送到外部存储器中。12896个可能的存储器访问相比,读取校正子需要172个缓存器访问,这意味着转送是不严厉的。注意:到外存储器的带宽不是问题,因为部分校正的校正子的存在意味着差错校正器未运行并因此不需要用于校正的带宽。在局部校正子丢失部分已经产生的时间处,它必须与已经被储存在外存储器中的第一部分结合。这要求从外存储器中读出局部校正子,把它与从外存储器中检索的局部校正子合并并把它写回到校正子缓存器中。在时间的这一点上,纠错可以开始。来自外存储器的以及到校正子缓存器的存储器带宽不应该是问题,因为只是在一个盘旋转结束处需要所述的校正子处理,正好在一个跳跃开始之前。注意:取决于第一EDC扇区的数目,所述的局部校正子处理需要一个最初产生的校正子与提高到一个幂的alpha的预相乘。这可以在数据被记录到外存储器中之前被执行。
图10中的框图再一次示出了在外部校正部分中呈现的四个任务:
1.对于每个传入数据字节,一个16字节的校正子必须被更新:
·每个传入数据quadlet(32比特)被储存在一个锁存器(latch)中,两个数据字节在第一可用时钟周期中被利用,两个剩余字节在接下来中。
·两个校正子例如从堤B2和B3中被读出。同时,两个校正子产生器更新分配到早先数据字节的校正子同时来自前面循环的结果被储存在组B0和B1中。
·同时,数据字节被转送到缓存器管理器中。这要求控制逻辑提供一个指引信号,其被用来把数据字节写入正确存储位置中。
2.从校正子中计算出纠错信息:
·将完成的校正子组的列表保持在控制逻辑中。
·172个校正子的一个校正子组被转送到差错校正器,并且一旦纠错信息被获得则将它传送回到校正子缓存器中。(在图10中,这对于校正子1发生时被说明,虽然校正子的地址当然不同。)
3.校正信息被写入外存储器中:
·一旦所有的172组校正信息已经从差错校正器中被获得,则差错幅值和地址被转送到缓存器管理器中。(这只是通过示例在图10中对于校正子2N-2发生时被示出。)
·控制逻辑900产生一个指引信号,其指示该校正属于哪一ECC扇区。
4.把局部校正子高速缓存在外存储器中:
·每次一个局部校正子组已经产生,这172个校正子从校正子缓存器中被读出并被转送到外存储器中。(在图10中对校正子2N-1发生时被示出。)在转送期间,与校正的alpha数值的相乘被执行(对外存储器的转送不是时间临界的)。
·这需要控制逻辑产生缓存器管理器的一个地址。
·控制逻辑监视呼入ECC扇区的ID并且一旦发现扇区对应一个局部校正子组,则校正子计算被执行直到它包含来自未包含在被高速缓存在外存储器中的局部校正子中的EDC帧的信息。
·第一局部校正子从外存储器中被检索并且与校正子缓存器中的第二局部校正子结合。这需要一个读修改写操作。
缓存器管理器
图11更详细地示出了缓存器管理器(相应于图6中的块513),其接收出自DVD差错校正器(图10)中的数据和外部校正并把它们存储在外部DRAM 920或其它存储器中。接口逻辑922管理从盘中被读出的输入数据、校正、局部校正子和被检索并通过主机接口(图6中的512)流出的输出数据的编址和转送。
虽然在一个多轨道系统中缓存器管理器只是保持一个数据输入和一个校正输入信道,但是这里仍然与单个信道系统有一个显著的不同。这是因为在一个多轨道系统中在任何时间被转送的数据发源于N=7个不同的ECC记录扇区。因此,缓存器管理器必须包含N个地址计算单元(ACU)924a-g,其产生外部DRAM的地址。一个传入数据项对一个特定ACU的关联通过由外部纠错部分提供的一个指引信号来被执行(图10)。一个ACU内的地址生成是以与呼入字节数目相关的一个运转索引为基础的,一部分与EDC ID号相关,而一部分可被控制CPU编程。用这种方式,可以安排在两个跳跃之间的数据被检索并分类到外存储器而不必进一步的CPU相互作用。
正如已经参考图7解释的,一旦一个盘旋转的数据已经被读取,则需要N-1个轨道的一个跳跃。为了建立正确的跳跃时间,设备监视呈现在相应盘道上的所有EDC帧是否已经无差错地被检索并被储存在DRAM中。为这目的,在本实施例中的缓存器管理器具有由控制逻辑926提供的下列特殊的功能(替换配置当然是可能的)。
每个EDC帧由一个小寄存器堆中的单个比特(或者由一组比特)来表示。这些比特指示每一EDC帧的状态包括:未被接收,在转送中,数据和校正被接收,不可恢复的差错。使用简单的逻辑操作则可在任何给定时间了解一个连续的EDC帧组是否已经被无差错地接收,并因此是否应该执行一个跳跃。通过中断一个控制CPU来开始跳动,它可以在如解码器一样的同一IC上。同样地,当一些EDC帧是错误的时将产生一个中断。当然在这种情况下,跳跃应该被延迟如此以致正被讨论的EDC帧在随后的盘旋转上被再一次读取,这一次由另一个输入信道读取。
除了上面提到的功能之外,缓存器管理器还需要与ACU 928一个附加的信道用于局部校正子的高速缓存。这个信道只被使用于猝发传送并且具有比其它信道更高的优先级。这是因为相应的数据必须从仅仅具有限制可用带宽的外部校正子缓存器中读取与写入。
对外存储器的带宽要求在描述的64x系统中由从信道一侧检索数据的速率、外部校正数目以及主机接口带宽来确定。正如前面在这章中描述的,来自误差校正器的数据速率是120M字节/秒。这平均来也是主机接口数据速率。另外,一个大约3.5M字节/秒的带宽被要求用于局部校正子的高速缓存(假定一个11.5x旋转速度,每秒执行大约110次跳跃,并且在每一跳跃之后172字节的16倍的6个部分校正子必须被读取和写入)。此外,需要大约70M字节/秒用于把校正写入外存储器中所需要的读修改写(每秒3567个ECC扇区,具有一个172*8个校正的最大值,每个需要大约15个时钟周期)。这总和为一个315M字节/秒的带宽要求。
总结详细实施例的描述,我们看出这个实施的优点包括:
·不需要大输入缓存器用于把原始数据缝合一起。
·外存储器接口的全部性能对于用户数据可用。
·区域和功率效率(利用现有的解码器结构,其需要一个50MHz时钟来获得32x DVD性能)。
·工作在EDC帧粒度上(如果地址生成和数据检查的更复杂的方案是可接受的,则甚至PI码字或EFM帧粒度可完成是可能的)。
·码元检测、EFM解调、内部和外部校正子产生、纠错以及主机接口的字块可以被再次使用而没有问题。
相对于传统单线的硬件,需要某些新的电路块:
·能够产生N个输入数据流以及能够识别一行何时已经被完成的地址行缓存器控制逻辑和校正子产生以及纠错必须被启动。
·外部纠错部分中的控制逻辑,其保持一组校正子缓存器并且把那些分配到输入信道。这个逻辑也需要识别哪些校正子是完整的并且可用于纠错。此外,用户数据缓存器的地址或地址索引(数据和校正)必须被产生。
·缓存器管理器需要使用于用户数据和校正的地址生成中的附加输入。外部差错校正器部分中的控制逻辑产生一个地址或地址标引肯定是可能的,其允许把当前用户数据或校正与分配到一个特定EDC或ECC帧存储器分段相关联。取决于系统实施,可能需要附加的地址计算单元(ACU)。
本发明和在此公开的技术不局限于DVD系统,一般也不局限于光盘。特别地,使用基于块的差错保护方案的其它系统可以被了解或想象,并且在此校正子的双缓存产生一个性能和/或成本优点。在此公开的技术的这些其它应用和变化对本领域技术人员来说将是很明显。