纠错装置和纠错方法

申请号 CN200410102239.6 申请日 1999-02-24 公开(公告)号 CN100383886C 公开(公告)日 2008-04-23
申请人 松下电器产业株式会社; 发明人 中迁文男; 桥本祐一;
摘要 一种纠错装置,用于对接收的数据进行纠错,并且输出纠正后的数据,其特征在于包括:存储单元,用于存储所述接收的数据;纠错单元,用于检测并纠正所述接收的数据中行方向上的错误码,并且检测并纠正来自所述存储单元的所存储的数据中列方向上的的错误码。
权利要求

1.一种纠错装置,用于对输入的码数据进行纠错,并且输出纠正后的数 据,其特征在于包括:
存储器,用于存储从输入单元接收的数据;
纠错单元,用于纠正从所述存储器读出的块码数据中列方向上的错误码,
其中,所述纠错单元通过将从所述存储器读出的从第1列到第n列的连续 的n列数据中的一列作为一个单位以在列方向上对每一行进行纠错,然后,不 重复地读取该n列数据,而对每一行读取从第n+1列到第2n列的另外的连续 的n列数据,这里,n为2或以上的自然数。
2.如权利要求1所述的纠错装置,其特征在于,
所述自然数n以2的m次幂表示,这里,m为自然数。
3.如权利要求1所述的纠错装置,其特征在于,
所述自然数n是2、4、8的其中之一。
4.如权利要求1~3中的任一项所述的纠错装置,其特征在于,
所述块码被存储在作为记录介质的光盘上。
5.如权利要求1所述的纠错装置,其特征在于,
从所述存储器读出的n列数据以DMA码被传送。
6.如权利要求1所述的纠错装置,其特征在于,
所述纠错单元包括进行校正子计算的校正子产生单元,所述纠错单元包括 n个校正子产生单元,每一个校正子产生单元从n列数据中接收一列不同的数 据,
所述纠错单元包括进行校正子计算的校正子产生单元,所述校正子产生单 元采用时分方式对n列进行校正子计算,
所述纠错单元包括进行校正子计算的校正子产生单元,由所述校正子产生 单元所进行的校正子计算包括对每一单位数据进行的积和运算。
7.如权利要求6所述的纠错装置,其特征在于,
所述校正子产生单元包括用以暂时存储数据的FIFO存储器。
8.如权利要求6所述的纠错装置,其特征在于,
还包括一个错误码更新单元,用以当所述纠错单元检测出错误码时,使用 一个校正值将对应于检测的错误码的一个代码写入存储器。
9.一种光盘控制装置,其特征在于包括:
如权利要求4所述的纠错装置;
一个盘接口单元,用以从一个光盘接收信号,将所接收的信号解调,和将 所解调的信号输出到所述存储器;
一个主接口单元,用以从所述存储器接收数据,并将所接收的数据输出到 一个主计算机;以及
一个总线控制单元,用于在所述存储器、所述盘接口单元、所述纠错装置 以及所述主接口单元中的至少2个之间执行数据传输。
10.一种光盘读取装置,其特征在于包括:
如权利要求9所述的光盘控制装置;
一个主轴电动机,用以使光盘旋转;
一个读取装置,用以将所述光盘暴露于激光,根据反射光以读取在光盘上 的数据,并将所读取的数据转换为电信号
一个放大器,用以将所述读取装置输出的信号放大;
一个前端处理器,用以根据由所述放大器输出的信号产生反馈控制信号, 并将该反馈控制信号输出到所述光盘控制装置;和
一个伺服控制器,用以根据由所述前端处理器所输出的反馈控制信号控制 所述主轴电动机的旋转和所述读取装置的透镜位置
11.一种纠错方法,用以对块码的输入数据进行纠错,并输出经纠错的数 据,其特征在于包括以下步骤:
将从外部源接收的输入数据存储到一个存储器中;
通过从所述存储器读取数据,将一列作一个单位在列方向上对块数据进行 纠错;
其中,在列方向的数据读取中,对每一个行读取从第1列到第n列的n列 连续的数据,然后不重复读取该n列的数据,而对每一行读取从第n+1列到第 2n列的另外的n列连续的数据,这里,n为2或以上的自然数。
12.如权利要求11所述的纠错装置,其特征在于,
所述自然数n是2、4、8的其中之一。
13.如权利要求11或12所述的纠错方法,其特征在于,
所述块码被存储在作为记录介质的光盘上。
14.如权利要求11所述的纠错方法,其特征在于,
纠错是根据校正子计算的结果而进行的,所述校正子计算采用时分方式对 n列进行。
15.如权利要求11所述的纠错方法,其特征在于,
纠错是根据校正子计算的结果而进行的,所述校正子计算包括对每一单位 数据进行的积和运算。
16.如权利要求11所述的纠错方法,其特征在于,
当在所述纠错中检测到一个错误码时,采用校正值写入在所述存储器中的 对应于该检出的错误码。

说明书全文

技术领域

发明涉及进行伴随于纠正在编码数据中发生的错误的处理的装置,特别 涉及对由2维构成的码进行高速纠错的装置。

背景技术

在磁盘和光盘等作为记录媒体的数据存储装置中,会由于记录媒体上的划 伤和污渍而引起数据错误。为了使恢复这样的错误数据成为可能,在将数据记 录到记录媒体上时,把用于纠错的代码(以下称之为“纠错码”或“奇偶校验 数据”)附加到数据中,在进行再现时利用纠错码检测出错误的数据,并进行 将其纠正为正确数据的处理。在这种附加纠错码及纠错处理(以下将这两种处 理合称为“伴随纠错的处理”)中,为了提高其纠错能,在大多数系统中采 用Reed-Solomon码作为纠错码,并采用乘积码作为数据的构成方法。
图1示出了乘积码。对于由k1×k2个字节构成的信息数据,在行方向上
(以下称为“C1序列”)上附加m1字节的奇偶校验数据,在列方向上(以下 称为“C2序列”)上附加m2字节的奇偶校验数据。在由这些信息数据、C1个 奇偶校验数据及C2个奇偶校验数据构成了一个作为纠错最大单位的数据块时, 其字节数为n1×n2字节。通常,作为将信息数据和奇偶校验数据存储到DRAM 等存储器中的方法,使C1序列中的存储器地址加1以便于进行存储。由此, 构成C1序列的代码串的数据被存储到地址连续的存储区域中,但构成C2序列 的代码串的数据则被存储到地址不连续的存储区域中。构成乘积码的各个代码 被简称为“数据”。
图2示出了与C1代码串对应的纠错流。首先对第1行的代码串进行纠错。 接着对第2行的代码串进行纠错。对全部n2行重复这样的操作。即,在列方 向上逐行进行扫描该行中的全部数据并进行纠错的操作。所谓“扫描”就是在 从存储区域中读出作为错误检测和纠正的对象的数据时的读出顺序。并且,在 “错误检测”中不包含所谓的纠错处理,但在“纠错”中包含作为其前置处理 的错误检测。
图3示出了与C2代码串对应的纠错流。首先对第1列的代码串进行纠错。 接着对第2列的代码串进行纠错。对全部n1列重复这样的操作。即,在行方 向上逐列进行扫描该列中的全部数据并进行纠错的操作。
图4是沿着上述流向进行纠错的现有纠错装置的构成示意图。其中,d1到 d100是100字节的信息数据,p1到p10是10字节的奇偶校验数据,并且这些 数据构成了1个代码串。
从存储器中读出这些信息数据及奇偶校验数据并顺序输入到出错位生成装 置900中。出错位生成装置900在输入一个数据时进行预定的运算,到完成了 全部输入构成1个代码串的信息数据d1~d100和奇偶校验数据p1~p10时为 止,生成10个出错位。在这10个出错位中存在非零数的情况下,由于在该代 码串中发生了错误,所以错误位置·错误数值运算装置901利用这些出错位计 算出错误位置和错误数值。其中,错误位置是表示代码串中的第几个数据是错 误数据的信息,错误数值表示错误的大小。最后,错误数据更新装置902通过 这些错误位置和错误数值,从存储器中读出该代码串中的错误数据,并将纠正 后的数据回写到原来的位置上。在每个代码串中重复上述操作。
如上所述,现有的纠错装置通过在对C1序列进行逐行扫描和纠错时,对C2 序列进行逐列扫描和纠错,进行对一个数据块的全部代码串的纠错。
但是,随着最近以光盘驱动器装置为代表的数据存储装置对处理速度高速 化的要求越来越严格,现有的纠错装置适应这样的要求是非常困难的。
为了满足这样的严格要求,虽然考虑到在1台数据存储装置内并列设计多 个纠错装置,却过度增大了电路规模而显著降低了性能价格比。

发明内容

本发明鉴于上述问题,其目的是提供以较小的电路规模高速执行伴随于纠 错的处理的纠错装置。
为了达到上述目的,根据本发明的第一项发明,一种反复执行伴随于对构 成R行L列的块码的行方向及列方向的代码串纠错的运算的纠错装置,其特征 在于,包括:
存储装置,用于存储所述块码;
运算装置,用于以所述块码的1行或1列代码串为单位进行误码纠正所 需要的运算;
传输装置,具有行方向传输部件,用于在R1为大于2小于R的整数时, 对R行分别按顺序反复进行如下操作:读出存储在所述存储装置中的块码的R1 行代码串并将其传输到所述运算装置中,
所述行方向传输部件在L1为大于2小于L的整数时,在行方向上只移位L1 个代码,反复进行R1行L1列传输:所述R1行L1列传输是指按顺序对所述R1 行中的各行进行连续读出并列的L1个代码并将其传输到所述运算装置中;
所述运算装置在代码是从所述行方向传输部件传送来的情况下,对传送来 的每L1个代码并列进行对所述R1行代码串的所述运算,来构成与所述R1行 不同行的代码串。
由此,行方向上的纠错是对多个代码串并列进行并在行方向上分割多行代 码串,并使得到的多个小数据块分别按照Z字形扫描顺序进行纠错。即,按照 一边换行一边只对各行的一部分代码反复扫描的顺序并列地进行纠错,因此与 单纯的换行对各行全部代码反复扫描的并列处理相比,虽然需要以相同的速度 进行扫描和纠错,但降低了输入到各行的纠错电路中的代码的平均输入速度, 并缩小了每行的纠错电路中所必需的队列缓冲器等的电路规模。而且,由于各 行的扫描在同一行中是连续的并且以编码为对象,所以在块码被存储在具有2 维地址的DRAM等存储区域中的情况下,可以对同一行地址中的连续列地址进 行访问,从而使高速扫描成为可能。
并且,根据本发明的第2项发明,在本发明的第1项发明的纠错装置中, 所述块码为乘积码,在构成所述块码的行方向及列方向的代码串中分别包含信 息代码和纠错码,
所述运算装置包括用于以1行或1列代码串为单位,检测是否存在误码的 错误检测装置,和用于在通过所述错误检测装置检测出存在误码的情况下,将 与该误码相当的所述存储装置中的代码重写成纠正后的值的误码更新装置,
所述运算装置在代码是从所述行方向传输部件传送来的情况下,对传送来 的每L1个代码并列进行对所述R1行代码串的所述运算,来构成与所述R1行 不同行的代码串。
由此,由于依据本发明的纠错装置能够适用于对乘积码纠错中的行方向上 的错误检测,从而提高了光盘等的读出装置及数据通信中的接收装置等执行对 接收的乘积码进行纠错的装置的错误检测速度。
并且,根据本发明的第3项发明,在本发明的第2项发明的纠错装置中, 在所述存储装置中,属于所述块码同一行的代码被存入具有连续地址的存储区 域中,
所述行方向传输部件从所述存储装置的具有连续地址的存储区域中连续读 出所述L1个代码。
由此,为了从存储装置中读出属于同一行的代码,增加输出到存储装置中 的地址,从而缩短了从存储装置中读出的时间。
并且,根据本发明的第4项发明,在本发明的第3项发明的纠错装置中, 所述存储装置为动态随机存取存储器
所述行方向传输部件以页面模式从所述存储装置中读出所述L1个代码。
由此,为了从存储装置中读出属于同一行的代码,在将1个RAS地址输出 到存储装置中之后连续输出CAS地址,从而谋求DRAM的命中页的读出速度高 速化。
并且,根据本发明的第5项发明,在本发明的第4项发明的纠错装置中, 由所述行方向传输部件执行的传输是通过对所述存储装置的直接存储器访问而 产生的传输。
由此,由于作为能够在错误检测装置中并列处理的对象的全部代码被连续 从存储装置中读出和输入,从而避免了在由错误检测装置对1个较小的数据块 进行错误检测时中断代码串的输入,有效地实现基于流线处理的纠错。
并且,根据本发明的第6项发明,在本发明的第2项发明的纠错装置中, 所述错误检测装置包括R1个用于进行对1个代码串的错误检测的单位错误检 测部件和用于在从所述行方向传输部件传送代码的情况下,反复进行将每次传 送的L1个代码分别按顺序分配到所述R1个单位错误检测部件中的分配部件,
所述R1个单位错误检测部件分别相互独立并且与所述行方向传输部件所 执行的传输并行地进行所述错误检测。
由此,在行方向上的纠错中,各个单位错误检测装置以一次L1个代码的 频率从分配装置输入R1次代码并在从分配装置向其它单位错误检测装置输入 代码期间进行错误检测,从而减轻了对各个单位错误检测装置要求的处理能力 并削减了电路规模。
并且,根据本发明的第7项发明,在本发明的第6项发明的纠错装置中, 所述R1个单位错误检测部件分别在将来自所述分配部件的L1个代码反复进行 分配的情况下,在比该重复周期短的周期内,完成对L1个代码的错误检测。
由此,在列方向上的纠错中,对于各个单位错误检测装置来说,代码的输 入率(在单位时间内输入的代码个数)在处理能力(单位时间内接受错误检测 处理的代码个数)的范围之内,从而缩小了各个单位错误检测装置的输入段中 所必需的队列缓冲器的大小。
并且,根据本发明的第8项发明,在本发明的第7项发明的纠错装置中, 所述R1个单位错误检测部件分别具有用于对1个代码串计算出多个出错位的 积和运算电路。
由此,依据本发明的纠错装置是适用于Reed-Solomon码的装置。
并且,根据本发明的第9项发明,在本发明的第2项发明的纠错装置中, 在所述L除以所述L1所得的商为D、余数为E时,所述行方向传输部件在一边 在行方向上只移位L1个代码一边重复D次所述的R1行L1列传输之后,对所 述R1行分别按顺序对各行连续读出并列的E个代码并将其传输到所述错误检 测装置中,
所述错误检测装置在进行了预定次数的对每L1个代码的所述错误检测之 后,进行对每E个代码的所述错误检测。
由此,即使构成乘积码的行方向上的码长是一次连续读出的代码数L1的 倍数,直到各代码串的结尾,都可以无问题地并列执行纠错,从而实现了与乘 积码的大小无关的柔性纠错装置。
并且,根据本发明的第10项发明,在本发明的第2项发明的纠错装置中, 所述传输装置包括列方向传输部件,用于在L2为大于2小于L的整数时,对L 列按顺序反复进行如下操作:读出存储在所述存储装置中的块码的L2列代码 串并将其传输到错误检测装置中,
所述列方向传输部件在行方向上只移位L2个代码,反复进行R行L2列传 输:所述R行L2列传输是指按顺序对各行进行连续读出并列的L2个代码并将 其传输到所述错误检测装置中,
所述错误检测装置在从所述列方向传输部件传送代码的情况下,将每次传 送来的L2个代码并列进行对所述L2列代码串的错误检测,作为属于相对应的 所述L2列代码串的代码。
由此,对多个代码串并列执行行方向上的纠错和列方向上的纠错,而且, 按照换行只对各行的一部分代码反复扫描的顺序执行对列方向的纠错。这样, 与单纯的换行对各行的全部代码反复扫描的并列处理相比,虽然需要以相同的 速度进行扫描和纠错,但降低了输入到各行的纠错电路中的代码的平均输入速 度,并缩小了每行的纠错电路中所必需的队列缓冲器等的电路规模。
并且,根据本发明的第11项发明,在本发明的第10项发明的纠错装置中, 所述R1和所述L2为R1=L2=j,
所述错误检测装置包括j个用于进行对1个代码串的错误检测的单位错误 检测部件和用于在从所述行方向传输部件传送代码的情况下,反复进行将每次 传送的L1个代码分别按顺序分配到所述j个单位错误检测部件中,并在从所 述列方向传输部件传送代码的情况下,反复进行将传送的L2个代码分别分配 到相对应的所述j个单位错误检测部件中的分配部件,
所述j个单位错误检测部件分别相互独立并且与所述行方向传输部件和所 述列方向传输部件所执行的传输并行地进行所述错误检测。
由此,作为行方向纠错中的并列处理对象的行数与作为列方向纠错中的并 列处理对象的列数相等,从而各方向的纠错中所需要的单位错误检测装置的个 数相同,无论进行哪个方向上的纠错,都能够充分利用错误检测装置的能力。
并且,根据本发明的第12项发明,在本发明的第11项发明的纠错装置中, 所述j个单位错误检测部件分别在将来自所述分配部件的L1个代码反复进行 分配的情况下,在比该重复周期短的周期内,完成对L1个代码的错误检测, 在将来自所述分配部件的L2个代码中的一个反复进行分配的情况下,在比该 重复周期更短的周期内,完成对所分配的1个代码的错误检测。
由此,在列方向纠错中,对于各个单位错误检测装置来说,代码的输入率 (在单位时间内输入的代码个数)在处理能力(单位时间内接受错误检测处理 的代码个数)的范围之内,从而缩小了各个单位错误检测装置的输入段中所必 需的队列缓冲器的大小。
并且,根据本发明的第13项发明,在本发明的第12项发明的纠错装置中, 所述R1、所述L1和所述L2为R1=L1=L2=j。
由此,在行方向及列方向中的任一方向上的纠错中,乘积码的读出顺序相 同,从而使与对存储装置的访问相关的传输装置的控制电路简单化。
并且,根据本发明的第14项发明,一种反复执行伴随于对构成R行L列 的块码的行方向及列方向的代码串纠错的运算的纠错装置,其特征在于,包括:
存储装置,用于存储所述块码;
运算装置,用于以所述块码的1行或1列代码串为单位进行误码纠正所 需要的运算;
传输装置,具有列方向传输部件,用于在L2为大于2小于L的整数时, 对L列按顺序反复进行如下操作:读出存储在所述存储装置中的块码的L2列 代码串并将其传输到运算装置中,
所述列方向传输部件在行方向上只移位L2个代码,反复进行:对所述R 行分别按顺序进行的R行L2列传输,所述R行L2列传输是指对各行连续读出 并列的L2个代码并将其传输到所述运算装置中;
其中
所述运算装置在从所述列方向传输部件传送代码的情况下,将每次传送来 的L2个代码并列进行对所述L2列代码串的所述运算,作为属于相对应的所述 L2列代码串的代码。
由此,列方向上的纠错是对多个代码串并列进行并在行方向上分割多行代 码串,并使得到的多个小数据块分别按照Z字形扫描顺序进行纠错。即,按照 换行只对各行的一部分代码反复扫描的顺序并列地进行纠错,因此与单纯的换 列对各列全部代码反复扫描的并列处理相比,虽然需要以相同的速度进行扫描 和纠错,但降低了输入到各列的纠错电路中的代码的平均输入速度,并缩小了 每行的纠错电路中所必需的队列缓冲器等的电路规模。而且,由于各行的扫描 在同一行中是连续的并且以编码为对象,所以在块码被存储在具有2维地址的 DRAM等存储区域中的情况下,可以对同一行地址中的连续列地址进行访问,从 而使高速扫描成为可能。
而且,由于进行行方向纠错的纠错装置所具备的上述特征构成要素也适用 于列方向纠错,所以能够得到与行方向纠错相关的纠错装置相同的效果。
而且,为了达到上述目的,根据本发明的第23项发明的一种用于在对从 外部的第一装置接收的代码进行纠错后输出到外部的第二装置的纠错装置,其 特征在于,
存储装置,具有用于存储所述代码的存储区域;
错误检测装置,用于以预定数目的代码为单位,检测是否存在错误的代码;
纠错装置,用于以预定数目的代码为单位,纠正所述存储装置中的错误 代码;
第一传输装置,用于将从所述第一装置输出的代码并行传输到所述存储 装置和所述错误检测装置中,在将该代码存入所述存储装置的同时,在所述错 误检测装置中进行所述检测;
第二传输装置,用于将通过所述错误检测装置检测出存在错误代码的所 述预定数目的代码从所述存储装置传输到所述纠错装置,并在所述纠错装置中 对该代码进行所述纠正;
第三传输装置,用于将通过所述错误检测装置或所述纠错装置检测出不 存在错误代码或错误代码经过纠正的预定数目的代码从所述存储装置传输到所 述第二装置;
传输控制装置,用于控制所述第一至第三传输装置,以使其分别排他地 执行所述代码传输。
由此,在从第一装置输出的代码被存储在存储装置中的同时接受错误检测 处理,从而与现有的在被暂时存入存储装置之后读出并输入到纠错装置中的处 理顺序相比,在缩短了纠错所要求的整个处理时间的同时减少了对存储装置的 访问次数,并实现了高速的低功耗纠错装置。
并且,根据本发明的第24项发明,在本发明的第23项的发明的纠错装置 中,所述错误检测装置具有检测结果记录部件,用于记录是否存在错误代码的 检测结果,
所述纠错装置通过参照记录在所述检测结果记录部件中的检测结果,控制 第二传输装置以便仅仅将检测出存在错误代码的所述预定数目的代码从所述存 储装置中传输到所述纠错装置中。
由此,在存入存储装置的同时进行的错误检测中,对于没有检测出错误的 代码,跳过了所谓从存储装置向纠错装置传输及通过纠错装置纠错的两个处 理,从而在使纠错高速化的同时,避免了对存储装置的无效访问。
并且,根据本发明的第25项发明,在本发明的第24项的发明的纠错装置 中,所述第一装置按顺序反复输出构成R行L列块码的行方向代码串,
所述块码为乘积码,在构成所述块码的行方向及列方向的代码串中分别包 含信息代码和纠错码,
所述纠错装置对行方向及列方向的代码串进行纠错,在对行方向的代码串 进行纠错的情况下,通过参照记录在所述检测结果记录部件中的检测结果,控 制第二传输装置以便仅仅将检测出存在错误代码的行方向的代码串从所述存储 装置中传输到所述纠错装置中。
由此,依据本发明的纠错装置能够用于要求高速执行对乘积码的纠错的光 盘等读出装置和数据通信中的接收装置中。
并且,根据本发明的第26项发明,在本发明的第25项的发明的纠错装置 中,所述错误检测装置将对构成1个块码的全部行方向的代码串的检测结果存 入并记录到所述检测结果记录部件中,
所述纠错装置在对列方向的代码串进行纠错的情况下,通过参照记录在所述 检测结果记录部件中的检测结果,控制第二传输装置以便仅仅将检测出存在错误 代码的构成块码的列方向的代码串从所述存储装置中传输到所述纠错装置中。
由此,在构成1个块码的行方向上的全部代码串中,在没有检测出错误的 情况下,跳过对该块码的列方向上的代码串的错误检测及纠错处理,从而在从 光盘等记录媒体中连续读出的块码中的错误发生率较小的情况下,增大了相应 的平均读出速度。
并且,根据本发明的第27项发明,在本发明的第23项的发明的纠错装置 中,所述第二传输装置具有行方向传输部件,用于在R1为大于2小于R的整 数时,对R行按顺序反复进行如下操作:从所述存储装置中读出检测出存在错 误代码的R1行代码串并将其传输到所述纠错装置中,
所述行方向传输部件在L1为大于2小于L的整数时,在行方向上只移位L1 个代码,反复进行R1行L1列传输:所述R1行L1列传输是指按顺序对所述R1 行中的各行进行连续读出并列的L1个代码并将其传输到所述纠错装置中;
所述纠错装置在代码是从所述行方向传输部件传送来的情况下,对传送来 的每L1个代码并列进行对所述R1行代码串的纠错,作为构成与所述R1行不 同行的代码串。
由此,对多个行方向的纠错不仅被并列执行,而且是通过反复对较小的数 据块纠错而进行的,从而与单纯的并列执行纠错的情况相比,虽然以同一速度 进行扫描和纠错,但降低了纠错装置中被要求的处理能力并缩小了电路规模。
并且,根据本发明的第28项发明,在本发明的第27项的发明的纠错装置 中,所述第二传输装置还具有列方向传输部件,用于在L2为大于2小于L的 整数时,对L列按顺序反复进行如下操作:从所述存储装置中读出检测出存在 错误代码的块码的L2列代码串并将其传输到所述纠错装置中,
所述列方向传输部件在行方向上只移位L2个代码,反复进行R行L2列传 输,所述R行L2列传输是指按顺序对所述R行中的各行进行连续读出并列的L2 个代码并将其传输到所述纠错装置中,
所述纠错装置在从所述列方向传输部件传送代码的情况下,将每次传送来 的L2个代码并列进行对所述L2列代码串的纠错,作为属于相对应的所述L2 列代码串的代码。
由此,并列执行行方向上的纠错和列方向上的纠错,从而以较小的电路规 模实现了高速的纠错装置。
并且,根据本发明的第29项发明,在本发明的第23项的发明的纠错装置 中,由所述第一传输装置执行的从所述第一装置向所述存储装置的代码传输、 由所述第二传输装置执行的从所述存储装置向所述纠错装置的代码传输及由所 述第三传输装置执行的从所述存储装置向所述第二装置的代码传输为由对所述 存储装置的直接存储器访问所执行的传输,
所述传输控制装置,在需要执行由所述第一传输装置执行的DMA传输的情 况下,在正在执行所述第一至第三传输装置的DMA传输中的任一个时,在完成这 个执行中的DMA传输后执行由所述第一传输装置执行的DMA传输在没有执行所 述第一至第三传输装置的DMA传输中的任一个时,立刻执行由所述第一传输装置 执行的DMA传输。
由此,最优先执行对存储装置的缓冲,从而在将依据本发明的纠错装置用 于光盘驱动器等读出装置中的情况下,光拾取器可以连续读出光盘上的代码。
并且,根据本发明的第30项发明,在本发明的第29项的发明中的纠错装 置,所述传输控制装置,在需要执行由所述第二传输装置执行的DMA传输的情 况下,只有在没有执行所述第一至第三传输装置的DMA传输中的任一个时,才 执行由所述第二传输装置执行的DMA传输。
由此,通过考虑到由与对存储装置的缓冲并列的错误检测而导致的纠错高 速化和由对多个代码串进行并列处理而导致的纠错高速化的高效调度,使对存 储装置的排他性访问控制成为可能。
并且,根据本发明的第31项发明,在本发明的第30项的发明的纠错装置 中,所述纠错装置在根据通过所述第二传输装置传输的代码串确定错误代码和 纠正后的值之后,在所述传输控制装置的控制下,将所述存储装置中所对应的 错误代码重写成纠正后的值,
所述传输控制装置只有在不执行所述第一至第三传输装置的DMA传输中的 任一个时,才执行由所述纠错装置进行的错误代码的重写。
由此,能够更平衡地对与1个存储装置资源相对应的4种访问进行排他性 控制,实现较高性能价格比的纠错装置。
而且,为了达到上述目的,根据本发明的第32项发明的一种用于在对从 外部的第一装置接收的代码进行必要的纠错后输出到外部的第二装置的纠错装 置,其特征在于,
存储装置,具有用于存储所述代码的存储区域;
纠错装置,用于以预定数目的代码为单位,检测错误代码并纠正对应的 所述存储装置中的错误代码;
代码选择装置,用于选择从所述第一装置传送的代码和从所述存储装置 传送的代码中的任一个,送至所述纠错装置中,并在所述纠错装置中进行所述 检测和纠正;
第一传输装置,用于将从所述第一装置输出的代码并行传输到所述存储 装置和所述代码选择装置中,在将该代码存入所述存储装置的同时,在所述代 码选择装置中进行选择并将其送至纠错装置,在所述错误检测装置中对该代码 进行所述检测和纠正;
第二传输装置,用于将预定数目的代码从所述存储装置传输到所述代码 选择装置,在所述代码选择装置中选择该代码并将其送至所述纠错装置中,在 所述纠错装置中对该代码进行所述检测和纠正;
第三传输装置,用于将通过所述纠错装置检测出不存在错误代码或错误 代码经过纠正的预定数目的代码从所述存储装置传输到所述第二装置;
传输控制装置,用于控制所述第一至第三传输装置,以使其分别排他 地执行所述代码传输。
由此,从第一装置输出的代码在被存入存储装置的同时,通过选择装置被 输入到纠错装置中,从而与现有的在被暂时存入存储装置之后读出并输入到纠 错装置中的处理顺序相比,在缩短了纠错所要求的整个处理时间的同时减少了 对存储装置的访问次数,并实现了高速的低功耗纠错装置。
并且,根据本发明的第33项发明,在本发明的第32项的发明的纠错装置 中,所述第一装置按顺序反复输出构成R行L列块码的行方向代码串,
所述块码为乘积码,在构成所述块码的行方向及列方向的代码串中分别包 含信息代码和纠错码,
所述第一传输装置,将从所述第一装置输出的代码并行传输到所述存储装 置和所述代码选择装置中,在将该代码存入所述存储装置的同时,在所述代码 选择装置中进行选择并将其送至纠错装置,在所述错误检测装置中对该代码进 行所述检测和纠正;
所述第二传输装置,将所述块码的列方向代码串从所述存储装置传输到所 述代码选择装置,在所述代码选择装置中选择该代码并将其送至所述纠错装置 中,在所述纠错装置中对该代码进行所述检测和纠正。
由此,实现了能够适用于要求高速执行对乘积码的纠错的光盘等读出装置 和数据通信中的接收装置等中的纠错装置。
并且,根据本发明的第34项发明,在本发明的第33项的发明的纠错装置 中,所述纠错装置包括用于以行方向或列方向的代码串为单位,检测是否存在 错误代码的错误检测部件,和
用于在通过所述错误检测部件检测出存在错误代码的情况下,将与该错误 代码相对应的所述存储装置中的代码重写成纠正后的值的代码更新部件,
所述错误检测部件包括用于记录对通过所述第一传输装置从所述第一装置 传输来的行方向代码串的错误检测结果的行方向检测结果记录部件,和
用于记录对通过所述第二传输装置从所述存储装置传输来的列方向代码串 的错误检测结果的列方向检测结果记录部件,
所述错误代码更新部件利用记录在所述行方向检测结果记录部件及所述列 方向检测结果记录部件中的检测结果,重写所述存储装置中的代码。
由此,将行方向的纠错结果和列方向的纠错结果进行单独保存,从而利用 这些结果进行后续处理的代码更新装置等可以以更慢的速度进行处理。
并且,根据本发明的第35项发明,在本发明的第34项的发明的纠错装置 中,所述错误检测部件在进行行方向的错误检测的情况下,将对构成1个块码 的全部行方向代码串的检测结果存入和记录到所述行方向检测结果记录部件 中,在进行列方向纠错的情况下,通过参照记录在所述检测结果记录部件中的 检测结果,控制第二传输装置以便仅仅将检测出存在错误代码的构成块码的列 方向的代码串从所述存储装置中传输到所述纠错装置中。
由此,在构成1个块码的行方向上的全部代码串中,在没有检测出错误的 情况下,跳过对该块码的列方向上的代码串的错误检测及纠错处理,增大了相 应的平均读出速度。
并且,根据本发明的第36项发明,在本发明的第35项的发明的纠错装置 中,所述传输控制装置以构成这些代码串的部分代码为单位切换由所述第一传 输装置执行的从所述第一装置向所述代码选择装置的1行代码串的传输和由所 述第二传输装置执行的从所述存储装置向所述代码选择装置的1列代码串的传 输,交互地执行,
所述错误检测部件通过以所述部分代码为单位,交互地切换对由所述第一 传输装置从所述第一装置传输来的行方向代码串的错误检测和对由所述第二传 输装置从所述存储装置传输来的列方向代码串的错误检测,并列进行对各代码 串的错误检测,并将各自的结果记录到行方向检测结果记录部件及列方向检测 结果记录部件中,
所述错误代码更新部件通过顺序参照记录在所述行方向检测结果记录部件 和所述列方向检测结果记录部件中的检测结果,顺序地进行行方向上的所述存 储装置中的代码重写和列方向上的所述存储装置中的代码重写。
由此,代码更新装置可以按照并列进行行方向纠错和列方向纠错的顺序进 行操作,从而削减了电路规模。
并且,根据本发明的第37项发明,在本发明的第32项的发明的纠错装置 中,所述第二传输装置还具有列方向传输部件,用于在L2为大于2小于L的整数 时,对L列按顺序反复进行如下操作:从所述存储装置中读出检测出存在错误代 码的块码的L2列代码串并经过所述代码选择装置将其传输到所述纠错装置中,
所述列方向传输部件在行方向上只移位L2个代码,反复进行R行L2列传 输,所述R行L2列传输是指按顺序对所述R行中的各行进行连续读出并列的L2 个代码并将其传输到所述纠错装置中,
所述纠错装置在从所述列方向传输部件传送代码的情况下,将每次传送来 的L2个代码并列进行对所述L2列代码串的纠错,作为属于相对应的所述L2 列代码串的代码。
由此,不仅并列执行对多个行方向的纠错,而且还反复执行对小数据块的 纠错,从而与单纯进行并列处理的情形相比,虽然需要以相同的速度进行扫描 和纠错,但是降低了纠错装置中所要求的处理能力,并缩小了电路规模。
而且,把向存储器装置的存取作为DMA,其中设置一定的优先顺序来进行 调度,由此能够更平衡地对与1个存储装置资源相对应的4种访问进行排他性 控制,实现性能价格比较高的纠错装置。
附图说明
图1示出了乘积码的数据结构。
图2示出了按照每行的顺序进行C1序列的纠错时的处理顺序。
图3示出了按照每列的顺序进行C2序列的纠错时的处理顺序。
图4示出了现有的纠错装置的纠错处理顺序。
图5是本发明第一实施例中的纠错装置100的构成示意图。
图6是装置100的总线控制器2的详细结构示意图。
图7是装置100的数据分配器51的详细结构示意图。
图8是装置100的1个出错位生成器52(53、54、55)的详细结构示意图。
图9是装置100中的主要处理(数据输入、纠错、数据输出)的时序图。
图10示出了在进行C1序列的纠错时读出缓冲存储器1内的乘积码的顺序。
图11示出了在按照图10所示的顺序从缓冲存储器1传输数据时,数据分 配器51的操作。
图12示出了C1序列的纠错中通过从缓冲存储器1向纠错器5的数据传输 与4个出错位生成器52~55的积和运算时序。
图13示出了在进行C2序列的纠错时读出缓冲存储器1内的乘积码的顺序。
图14示出了在按照图13所示的顺序从缓冲存储器1传输数据时,数据分 配器51的操作。
图15示出了C2序列的纠错中通过从缓冲存储器1向纠错器5的数据传输 与4个出错位生成器52~55的积和运算时序。
图16示出了对C1序列的端数部分进行的处理时序。
图17示出了对C2序列的端数部分进行的处理时序。
图18示出了以两列在C1方向上进行纠错时,从缓冲存储器读出数据的顺 序。
图19示出了以两列在C1方向上进行纠错时数据分配器的操作。
图20示出了以两列在C1方向上进行纠错时数据传输与出错位计算的时 序。
图21示出了以两列在C2方向上进行纠错时,从缓冲存储器读出数据的顺 序。
图22示出了以两列在C2方向上进行纠错时数据分配器的操作。
图23示出了以两列在C2方向上进行纠错时数据传输与出错位计算的时 序。
图24是本发明第二实施例中的光盘读取装置2000的结构示意图。
图25是装置2000的光盘控制器2100的详细结构示意图。
图26是装置2000的总线控制器2180的详细结构示意图。
图27示出了通过装置2000的总线调配控制器2182的3个排他性DMA传 输的控制例。
图28是装置2000的纠错器2130的详细结构示意图。
图29是示出了光盘控制器2100内的处理过程的时序图。
图30是图29所示的时序图的更详细的示图。
图31是示出了在进行C1序列的纠错时纠错器2130内的行单位处理过程 的时序图。
图32示出了在纠正图31所示的代码串时,访问存储在缓冲存储器2110 中的乘积码的顺序。
图33示出了在以4个代码串并行对图31所示的C1序列纠错时,从磁盘 接口2120读出数据的顺序。
图34示出了对图31所示的序列C1的端数部分的读出顺序。
图35是本发明第三实施例中的光盘读取装置3000的结构示意图。
图36是装置3000的光盘控制器3100的详细结构示意图。
图37是装置3000的纠错器3130的详细结构示意图。
图38是示出了在连续处理多个数据块的数据时光盘控制器3100内的处理 过程的时序图。
图39是图38所示的时序图的更详细的示图。
图40是示出了在纠错器2130内的行方向及列方向上的单位处理过程的时 序图。

具体实施方式

以下,参照附图详细说明本发明的实施例。
(第一实施例)
第一实施例涉及对行方向及列方向中的任一方向上的4个代码串并列进行 纠错的高速纠错装置。
图5是本发明第一实施例中的纠错装置100的构成示意图。装置100是包 含在光盘驱动器装置中并用于对从光盘中读出的数据进行纠错的装置,由缓冲 存储器1、包含在该缓冲存储器1中的进行访问的3个处理块(磁盘接口部件 12、纠错部件5及主机接口部件13)以及进行访问的排他性控制的总线控制器 2构成。图中的箭头表示作为纠错对象的数据的流向。装置100采用Reed- Solomon码作为纠错码类型,采用乘积码作为代码结构。
缓冲存储器1是利用二维地址(行地址和列地址)具有特定存储区域的DRAM 等半导体存储器,具有暂时存储多个作为纠错对象的数据块的存储容量。
磁盘接口部件12是将从光盘等记录媒体中读出的数据接着写入缓冲存储 器1中的接口电路。
纠错部件5是用于顺序读出从磁盘接口部件12写入缓冲存储器1中的数 据并检测是否发生了错误,如果发现错误,就在缓冲存储器1上进行纠错的电 路。具体地,纠错部件5是对4个代码串同时并列执行纠错的电路,由数据分 配部件51、4个出错位生成部件52~55、错误位置·错误数值运算部件56及错 误数据更新部件57构成。
数据分配部件51将从缓冲存储器1传输来的数据分配到4个出错位生成 部件52~55中的一个中。此时,这样进行分配以便于属于同一代码串中的数 据被输入到同一出错位生成部件中。4个出错位生成部件52~55都是相同的电 路,分别在输入了所分配的数据时就进行积和运算,当包含10个奇偶校验数 据的1个代码串被全部输入之后,生成10个出错位。
错误位置·错误数值运算部件56分别对4个出错位生成部件52~55依次 判断所生成的10个出错位中是否存在非零数,如果存在,就利用这些出错位 计算出错误位置和错误数值。具体地,以10个出错位为基础,利用欧基里德 算法等方法算出用于确定错误位置多项式和错误数值多项式的各项系数,然后 利用链查寻和调用法等方法算出该错误位置多项式的根(错误位置)并利用错 误数值多项式算出错误数值。
错误数据更新部件57根据由错误位置·错误数值运算部件56算出的错误 位置,读出缓冲存储器1中的错误数据,计算读出的错误数据与由错误位置· 错误数值运算部件56算出的错误数值的异或逻辑和,将得出的数值回写到缓 冲存储器2110中的原位置上。就该纠错部件5而言,只有出错位计算电路(出 错位生成部件52~55)被并列化,而对于与其相连的电路(错误位置·错误数 值运算部件56及错误数据更新部件57)并没有被并列化,关于出错位计算, 无论发生错误与否,对1个数据都要进行10次积和运算,但对于以后的计算 处理,只要根据在1个代码串中生成的10个出错位进行计算就可以了,从而 建设了运算次数。
主机接口部件13是用于在纠错部件5的处理结束之后,从缓冲存储器1 读出数据并将该数据输出到计算机等主机中的接口电路。
总线控制器2是在缓冲存储器1与3个处理块12、5、13中的任一个之间, 通过8位数据总线进行数据传输的控制电路,包括用于排他地控制对缓冲存储 器1进行访问的总线调配控制部件22,生成并输出用于对缓冲存储器1进行访 问的地址的地址生成部件21,以及在磁盘接口部件12、纠错部件5及主机接 口部件13中的任一个与缓冲存储器1之间进行总线连接并通过DMA(Direct Memory Access)进行数据传输的DMA通道部件23。
图6是总线控制器2的详细结构示意图。在本图中,3个DMA通道23a~23b 是构成图5所示的DMA通道部件的DMA控制器。这个总线控制器2具有排他性 地许可与缓冲存储器1相对应的3个DMA的功能。即,总线调配控制部件22 在接收到来自在磁盘接口部件12、纠错部件5及主机接口部件13的访问缓冲 存储器1的请求时,根据预定的优先顺序和调度顺序,只允许其中之一的请求。
具体地,总线调配控制部件22通过启动第一DMA通道23a,对磁盘接口部 件12输出允许进行数据传输的控制信号,从地址生成部件21生成缓冲存储器 1的写入地址,进行将从磁盘接口部件12向缓冲存储器1的“数据输入”,即 从光盘等记录媒体读出的数据通过磁盘接口部件12存入缓冲存储器1中的数 据传输。同样地,总线调配控制部件22通过启动第二DMA通道23b,对纠错部 件5输出允许进行数据传输的控制信号,从地址生成部件21生成缓冲存储器1 中的读出或写入地址,进行“用于纠错的数据传输”,即将存在缓冲存储器1 中数据读出到纠错部件5,将纠正后的数据从纠错部件5回写到缓冲存储器1 中的数据传输。而且,总线调配控制部件22通过启动第三DMA通道23c,对主 机接口部件13输出允许进行数据传输的控制信号,从地址生成部件21生成缓 冲存储器1中的读出地址,进行将从缓冲存储器1向主机接口部件13的“数 据输出”,即存在纠错后的缓冲存储器1中的数据通过主机接口部件13输出到 主机等中的数据传输。
在这3种DMA传输中,地址生成部件21对缓冲存储器1进行页面模式下 的高速访问。具体地,在命中页的范围内,确定并原样输出对缓冲存储器1的 行地址(RAS),使列地址(CAS)增加所需要的数据个数。
图7是数据分配部件51的详细结构示意图。数据分配部件51由用于将从 总线控制器2传送来的数据穿过4个出错位生成部件52~55之一的选择器51a 和用于根据来自总线控制器2的指示,控制选择器51a的分配的切换控制部件 51b构成。切换控制部件51b通过内部的计数逻辑电路等,在数据被输入到选 择器51a的同时将控制信号输出到选择器51a中,但是在进行行方向的纠错和 列方向的纠错的情况下,如后所述,以不同的顺序控制选择器51a。
图8是1个出错位生成器52(53、54、55)的详细结构示意图。出错位生 成部件52由一次最多存储8个输入的数据的FIFO(First-In First-Out)形 式的队列缓冲器62和与该队列缓冲器62并联的10种出错位运算部件63~65 构成。各出错位运算部件63~65是反复进行积和运算的电路,由用于存储1 个积和值的寄存器68、用于读出存在寄存器68中的积和值,与固有的系数进 行乘法运算的伽罗瓦域乘法器66以及对该乘法运算的结果和下次输入的1个 代码进行加法运算的伽罗瓦域加法器67构成。
在从队列缓冲器62中读出最早输入的1个数据d时,该数据d被并列输 入到10个出错位运算部件63中,根本进行1次积和运算d+Sn×αn,将该结果 作为新的Sn存入寄存器68中。例如,由100字节的信息数据d1~d100和10 个奇偶校验数据p1~p10构成的代码串被顺序输入到出错位生成部件52中, 并经过队列缓冲器62被并列地提供给10个出错位运算部件63~65。此时,在 第一出错位运算部件63中,首先在输入第一信息数据d1时将该d1原样保存 在寄存器68中,接着在输入信息数据d2时进行积和运算d2+d1×α0,该结果 被保存到寄存器68中。
这样每输入1个代码,就进行1次积和运算,到输入了最后的奇偶校验数 据p10时,保存在寄存器68中的数据就变成了S0出错位。与此同时,在其它 出错位运算部件64~65中也进行着同样的运算,因此在最后的奇偶校验数据 被输入到这10个出错位运算部件63~65中之后,最后同时生成了从S0到S9 这10种出错位。
下面,说明具有以上结构的纠错装置100的操作。
图9是装置100中的主要处理(数据输入、纠错、数据输出)中作为处理 对象的数据的时序图。即,示出了在对利用图1所示的乘积码的代码串进行连 续的多个数据块处理时的处理流向。图中的第n数据块与图1所示的1个乘积 码的全部数据相对应。图中的“数据输入”、“纠错”及“数据输出”与上述总 线控制器2的“数据输入”、“用于纠错的数据传输”及“数据输出”相对应。
首先,在第1周期进行第1数据块的数据输入,在第2周期并列进行第2 数据块的数据输入和第1数据块的纠错,在第3周期并列进行第3数据块的数 据输入、第2数据块的纠错和第数据块的数据输出。在第4周期以后,与第3 周期一样,并列进行新数据块的数据输入,前一输入数据块的纠错和纠错结束 后的数据块的数据输出。
这样,总线控制器2控制3种数据传输(从磁盘接口部件12向缓冲存储 器1的数据传输、缓冲存储器1与纠错部件5之间的数据传输以及从缓冲存储 器1向主机接口部件13的数据传输)以便于对各数据块的数据实施流水线处 理。即,3种数据传输都以缓冲存储器1为传输目的地或传输源,但缓冲存储 器1只有1个输入输出端口,因此总线控制器2通过在这3种数据传输中设计 优先顺序,而只瞬时许可数据传输中的一种,通过将这3种数据传输按时间分 割进行切换,从表面上控制了3种数据传输的并行。
图10示出了在进行C1序列的纠错时读出缓冲存储器1内的乘积码的顺序。 总线调配控制部件22在启动第二DMA通道23b,并通知纠错部件5传送用于C1 序列纠错的数据之后,按照预定的顺序将读出地址从地址生成部件21输出到 缓冲存储器1,如下所述,将存在缓冲存储器1中的数据传输到纠错部件5中。
即,总线控制器2首先从缓冲存储器1中连续读出第1行4个字节的数据 d1~d4并传输到纠错部件5中。接着连续读出并传输第2行4个字节的数据d5~ d8。接着连续读出并传输第3行4个字节的数据d9~d12。接着连续读出并传 输第4行4个字节的数据d13~d16。至此再次返回第1行,同样连续读取和传 输4个字节的数据d17~d20。下面通过重复同样的读出和传输,在完成从第1 行到第4行的全部数据的读出和传输时,对从第5行到第8行的4行数据重复 同样的处理。如此对1个数据块的全部行重复并列读出和传输4行数据的处理。
总线控制器2以DMA模式进行对行方向上连续4个字节的数据读出和传输, 以作为时间上不可分的处理连续进行。即,此期间禁止用于其它处理(数据输 入、数据输出)的对缓冲存储器1的访问。这是由于:在行方向上连续的数据 通常被存储在缓冲存储器1的连续地址中,因而能够利用由DRAM页命中进行 的高速访问。
图11示出了在按照图10所示的顺序从缓冲存储器1传输数据时,纠错部 件5的数据分配器51的操作。切换控制部件51b在从总线控制器2接收开始 对C1序列纠错的指示时,通过控制选择器51a,将从总线控制器2传送来的数 据如下进行分配。
即,数据分配部件51对最先传输的属于第1行的4个字节数据d1~d4进 行分配以将其输入到出错位生成部件52中,对接着传输的属于第2行的4个 字节数据d5~d8进行分配以将其输入到出错位生成部件53中,对接着传输的 属于第3行的4个字节数据d9~d12进行分配以将其输入到出错位生成部件54 中,对接着传输的属于第4行的4个字节数据d13~d16进行分配以将其输入 到出错位生成部件55中。同样地,再将接着传输的属于第1行的数据d17~d20 输入出错位生成部件52中。这样,数据分配部件51在C1序列的纠错中,一 边以4个字节为单位按照4个出错位生成部件52~55的顺序切换出错位生成 部件,一边从缓冲存储器1经过总线控制器2输入反复以4个字节为单位传送 的数据。
图12示出了C1序列的纠错中通过从缓冲存储器1向纠错器5的数据传输 与4个出错位生成器52~55的积和运算时序。
从缓冲存储器1读出具有连续地址的4个字节的数据d1~d4、d5~d8等 并将其传输到纠错部件5中分别需要时间t1,以4个字节为单位的数据传输以 时间t2为间隔进行重复。从完成以4个字节为单位的数据传输之后到开始以 接着的4个字节为单位的数据传输,需要时间,这是因为要考虑到由于这4个 字节分别属于不同的行而在读出新的4个字节数据时可能产生每次DRAM的页 面错误。即,假设在访问4个字节中的第1字节时总线控制器2必须将新的行 地址输出到缓冲存储器1中。
4个出错位生成部件52~55分别进行第1行~第4行的出错位计算,但在 4×t2的时间内对输入的4个字节的数据进行必要的4个积和运算。例如,执行 第1行出错位计算的出错位生成部件52在4×t2的时间内对输入的4个字节数 据d1~d4进行积和运算。从出错位生成部件52的度出发,这是由于最先输 入的4个字节数据为d1~d4,接着输入的4个字节数据为d17~d20,它们的 时间间隔为4×t2,因而只要在这个时间内完成4个字节的积和运算就可以。然 后,为了维持这样的运算速度,在各出错位生成部件52~55的前面所设计的 队列缓冲器62中所存储的数据量最大为4个字节,即使在瞬间也不能超过4 个字节。
这样,各出错位生成部件52~55只要以每1个字节t2时间的速度就可以 完成积和运算,与数据传输速度(4字节/t2)相比,只需已1/4的速度进行出 错位计算即可。而且,由于对不同的多个代码串,一边以较小的节距(4个字 节为单位)切换代码串,一边进行并列处理,所以与处理每1代码串的方法相 比,在降低了每1代码串所要求的出错位计算速度的同时,还缩小了队列缓冲 器的大小。换言之,这意味着能够使从缓冲存储器1到纠错部件5的实际数据 传输速度(整个纠错速度)比原来更高速,并且与简单地设置多个纠错电路相 比,能够以更小的电路规模进行4列纠错。
通过增加同一代码串中连续读出的数据数,可以谋求利用DRAM页命中的 数据传输的高速化。此时,希望增加纠错的并列度。通过随增加纠错并列处理 的并列度而增加存储器地址的连续传输字节数,与每1代码串的处理负荷相对 应的电路规模减轻了负担并实现了高效的纠错并列化。
现在参照图13~图15说明在进行C2序列的纠错时本装置100的操作。
图13示出了在进行C2序列的纠错时读出缓冲存储器1内的乘积码的顺序。 总线调配控制部件22在启动第二DMA通道23b,并通知纠错部件5传送用于C2 序列纠错的数据之后,按照预定的顺序将读出地址从地址生成部件21输出到 缓冲存储器1,如下所述,将存在缓冲存储器1中的数据传输到纠错部件5中。
即,总线控制器2首先从缓冲存储器1中连续读出第1行4个字节的数据 d1~d4并传输到纠错部件5中。接着连续读出并传输第2行4个字节的数据d5~ d8。以下,同样地,对第1列~第4列的全部数据反复从各行读出并传输4个 字节的数据。由此,完成C2序列的4个代码串的数据传输。同样地,再对第5 列~第8列的全部数据反复读出并传输4个字节的数据。由此,对1个数据块 的全部列重复进行并列读出并传输4列数据的处理。
与C1序列的数据传输相同,总线控制器2以DMA模式进行对行方向上连 续4个字节的数据读出和传输,就象连续进行时间不可分的处理一样。即,此 期间通过禁止用于其它处理(数据输入、数据输出)的对缓冲存储器1的访问 而利用了根据DRAM页命中的高速访问。
图14示出了在按照图13所示的顺序从缓冲存储器1传输数据时,纠错部 件5的数据分配器51的操作。切换控制部件51b在从总线控制器2接收开始 对C2序列纠错的指示时,通过控制选择器51a,将从总线控制器2传送来的数 据如下进行分配。
即,数据分配部件51对最先传输的属于第1行的4个字节数据d1~d4进 行分配以将各数据按照顺序输入到出错位生成部件52~55中。具体地,将数 据d1送到出错位生成部件52中,将数据d2送到出错位生成部件53中,将数 据d3送到出错位生成部件54中,将数据d4送到出错位生成部件55中。对接 着传输的属于第2行的数据d5~d8同样分配以将各数据按照顺序输入到出错 位生成部件52~55中。这样,数据分配部件51在C2序列的纠错中,重复将 以4个字节为单位反复传送的数据的各个字节分配到4个出错位生成部件52~ 55中的处理。
由此,属于第1列的数据d1、d5、...被输入到出错位生成部件52中,属 于第2列的数据d2、d6、...被输入到出错位生成部件53中,属于第3列的数 据d3、d7、...被输入到出错位生成部件54中,属于第4列的数据d4、d8、... 被输入到出错位生成部件55中。同样,属于第5列的数据被输入到出错位生 成部件52中,属于第6列的数据被输入到出错位生成部件53中,属于第7列 的数据被输入到出错位生成部件54中,属于第8列的数据被输入到出错位生 成部件55中。
图15示出了C2序列的纠错中通过从缓冲存储器1向纠错器5的数据传输 与4个出错位生成器52~55的积和运算时序。
从缓冲存储器1读出具有连续地址的4个字节的数据d1~d4、d5~d8等 并将其传输到纠错部件5中分别需要时间t1,在时间t2的间隔内重复以4个 字节为单位的数据传输,这与图12中所示的C1情况相同。
4个出错位生成部件52~55分别进行第1列~第4列的出错位计算,但在 t2的时间内进行关于1个字节的数据的1次积和运算。例如,执行第1行的出 错位计算的出错位生成部件52在t2时间内对最先输入的1个字节数据d1进 行积和运算,在t2时间内对接着输入的1个字节数据d5进行积和运算。从出 错位生成部件52的角度出发,这是由于在时间t2中,1个字节的数据被输入。 然后,为了维持这样的运算速度,在各出错位生成部件52~55的前面所设计 的队列缓冲器62中所存储的数据量最大为1个字节,即使在瞬间也不能超过1 个字节。
这样,各出错位生成部件52~55只要以每1个字节t2时间的速度就可以 完成积和运算,可以理解,这与进行C1序列的纠错时的处理速度相同。而且, 在此C2序列的纠错中,向各个出错位生成部件52~55的数据输入与丛发进行 的C1序列不同,是均匀进行的(通常以1字节/t2的速度输入数据),所以没 有必要在各出错位生成部件52~55的前面设置队列缓冲器。
如上所述,在第一实施例中,由于纠错部件5中的并列处理的并列度与在 从缓冲存储器1读出具有连续地址的数据(乘积码的同一行中的连续数据)并 将其传输到纠错部件5时的数据量相等,所以在C1序列和C2序列两个方向上 的纠错中,从缓冲存储器1读出数据的速度与通过在各出错位生成部件进行积 和运算的速度之间的关系同等,从而缩小了在各出错位生成部件前面所需要的 队列缓冲器的大小。由此,对于C1序列和C2序列两个方向上的纠错,用于充 分发挥出错位生成部件能力的总线控制器2的控制顺序也被共享,实现了能够 以较小的电路规模进行高速纠错的纠错装置。
即,能够更平衡地实施C1序列的纠错和C2序列的纠错,削减了纠错装置 中所需要的电路的冗余度
虽然图10及图13中所示的读出顺序是以行方向上的代码串的字节数是4 的倍数为前提的,但是即使在与之不同的情况下,本装置100也能够进行正确 的纠错。例如,在行方向上的代码串的长度为其字节数除4还余2的情况下, 只要将缓冲存储器1内的乘积码的读出顺序作如下变动即可。
图16示出了在行方向上的代码串的长度为其字节数除4还余2的情况下, 进行C1序列的纠错时缓冲存储器1内的乘积码的读出顺序。总线控制器2针 对4行代码串,对除去各代码串最后的2个字节以外的部分按照前面所述的顺 序重复连续4个字节的读出和传输操作,而对最后的2个字节进行读出和传输 各代码串的2个字节的操作。与之相伴,数据分配部件51也进行同样的操作, 即,将反复以4个字节为单位从缓冲存储器1中传送来数据以4个字节为单位 分别分配到4个出错位生成部件52~55中,将以2个字节为单位被传送来的 数据以2个字节为单位分别分配到4个出错位生成部件52~55中即可。
同样,图17示出了在列方向上的代码串的长度为其字节数除4还余2的 情况下,进行C2序列的纠错时缓冲存储器1内的乘积码的读出顺序。总线控 制器2对除去最后2列的代码串,从最先输入的4列开始,重复4个字节的数 据读出和传输操作,而对最后2列代码串,反复读出和传输2个字节。与之相 伴,数据分配部件51也进行同样的操作,即,将反复以4个字节为单位从缓 冲存储器1中传送来数据以4个字节为单位分别分配到4个出错位生成部件 52~55中,将以2个字节为单位被传送来的数据以2个字节为单位分别分配到 4个出错位生成部件52~55中即可。
象这样变更总线控制器2用的读出顺序以及数据分配部件51用的分配顺 序可以通过具体地变更总线控制器2中总线调配控制部件22用的控制顺序和 数据分配部件51中切换控制部件b用的控制顺序容易地实现。
第一实施例是用于并列执行对应于4个代码串的出错位计算的纠错装置, 但是本发明并不仅限于这样的并列度,例如,2列和8列的纠错装置也是可以 的。即,在第一实施例中,纠错部件5具有4个出错位生成部件52,但是也可 以根据需要设置为2个和8个。
图18、图19和图20用于说明在以2列进行纠错的纠错装置中,C1序列 的纠错操作,分别示出了数据从缓冲存储器中读出的顺序、以该顺序输入数据 时的纠错部件中的数据分配部件的操作以及该情况下进行数据传输和出错位计 算的时序。
同样,图21、图22和图23用于说明在以2列进行纠错的纠错装置中,C2 序列的纠错操作,分别示出了数据从缓冲存储器中读出的顺序、以该顺序输入 数据时的纠错部件中的数据分配部件的操作以及该情况下进行数据传输和出错 位计算的时序。
在第一实施例中,对读取记录在光盘等记录媒体中的数据、从读出的数据 串中查找错误、进行纠正以及将纠正后的数据传输到主计算机中的数据流向进 行了说明,但另一方面,本发明也能够用于从主计算机输出数据、在该数据中 附加用于纠错的奇偶校验码以及写入光盘等记录媒体中的数据流向。本发明是 这样一种技术:对于暂时存储在设置于记录媒体和主计算机之间的数据总线中 途的缓冲存储器中的乘积码,通过有效地读出构成该乘积码的全部代码串并将 其传输到第三装置(除记录媒体和主计算机之外的处理装置),可以在第三装 置中通过高速且小规模的电路对C1序列和C2序列进行代码处理。
具体地,可以进行如下变更:将纠错部件5中的4个出错位生成部件52~ 55和错误位置·错误数值运算部件56置换为奇偶校验数据生成电路,将错误 数据更新部件57置换为奇偶校验数据写入电路。从而实现了能够高速执行在 向记录媒体写入数据时附加纠错码和在从记录媒体中读出数据时纠正错误数据 的所谓“纠错伴随处理”的纠错装置。
在第一实施例中,总线控制器2通过1次DMA传输进行从缓冲存储器1向 纠错部件5的4字节数据的传输,在这次DMA传输与下次DMA传输期间允许除 对传输缓冲存储器1进行访问之外的数据传输,但是也可以通过1次DMA传输 进行16字节数据的传输。由此,在C1序列的纠错中,通过1次DMA传输可以 将图10中所示的16字节数据d1~d16从缓冲存储器1传输到纠错部件5中, 在此期间禁止插入缓冲存储器1中用于访问的其它数据的传输,因而16字节 数据的传输时间,即分别向4个出错位生成部件52~55中的每一个提供4个 字节的数据所需要的时间被大致固定,在显著降低了出错位计算的处理速度的 情况下,避免了向纠错部件5进行的数据传输成为瓶颈
在第一实施例中,纠错装置100内部的数据总线宽度为8位,但也可以是 32位数据总线。此时,通过1次存储器访问从缓冲存储器1中读出4字节数据 并传输到纠错部件5中。然后,数据分配部件51在进行C1序列的纠错时,将 32位数据按照每8位进行分割,分别分配到4个出错位生成部件52~55中即 可。
在第一实施例中,在纠错部件5中只有出错位计算被并列执行,但也可以 对与其连接的错误位置·错误数值运算部件56和错误数据更新部件57进行并 列化。由此,即使在出错位计算中发生大量错误的情况下,也能够确保一定的 纠正处理。
(第二实施例)
第二实施例涉及这样的高速光盘读取装置:分离错误检测和纠错,在将数 据存入缓冲存储器的同时并行执行错误检测,通过将该结果反映到纠错中,避 免了从缓冲存储器向纠错部件传输没有发生错误的数据。
图24是本发明第二实施例中的光盘读取装置2000的结构示意图。光盘读 取装置2000是用于读取记录在光盘2010中的数据,并在对读出的数据进行纠 错后将该数据传输到主计算机2070中的装置,由光拾取器2020、放大器2030、 前端处理机2040、光盘控制部件2100、旋转电动机2050、伺服控制器2060和 系统控制部件2080构成。
系统控制部件2080是用于通过光盘控制部件2100接收来自主计算机2070 的数据请求的命令,解释该命令,控制伺服控制器2060及光盘控制部件2100 并实现与数据请求相应的功能的微处理器
旋转电动机2050用于旋转光盘2010,伺服控制器2060用于以来自前端处 理机2040的信息为基础接收系统控制部件2080的指示,并控制旋转电动机2050 的旋转及光拾取器2020的镜头位置。
光盘2010为DVD-ROM,光拾取器2020用于通过镜头光线的反射光读取记 录在光盘2010中的数据并将其转换为电信号,放大器2030用于放大光拾取器 2020的输出信号并将其输出到前端处理机2040中。
前端处理机2040用于根据输入的信号,在伺服控制器2060、旋转电动机 2050及光拾取器2020中进行反馈控制,将稳定的信号输出到光盘控制部件2100 中,包括均衡器、AGC(自动增益控制电路)、PLL(Phase Locked Loop)等。 而且前端处理机2040输出到光盘控制部件2100中的信号为调制数据。
光盘控制部件2100将来自主计算机2070的数据请求命令通知给系统控制 部件2080,根据系统控制部件2080的控制,对从前端处理机2040输入的信号 进行解调,取出所需要的数据,进行纠错并将数据输出到主计算机2070中。
在图24中,粗箭头表示记录在光盘2010中的数据到达主计算机2070中 的流程。即,记录在光盘2010中的数据经过光拾取器2020、放大器2030、前 端处理机2040以及光盘控制部件2100而到达主计算机2070。而且,记录在光 盘2010中的数据结构与第一实施例中的数据结构相同,采用图1所示的乘积 码并采用Reed-Solomon码为纠错码。
图25是光盘控制器2100的详细结构示意图。光盘控制部件2100是用于 对从前端处理机2040传送来的信号进行解调并纠错,然后将其送到主计算机 2070中的电路,包括缓冲存储器2110、磁盘接口部件2120、纠错部件2130、 主机接口部件2140、第一传输部件2150、第二传输部件2160、第三传输部件 2170、总线控制器2180、错误检测部件2190和错误代码串存储部件2200。图 25中的粗箭头表示在向缓冲存储器2110的由DMA传输执行的数据写入以及从 缓冲存储器2110的由DMA传输执行的数据读出中的数据通路。
缓冲存储器2110是利用二维地址(行地址和列地址)具有特定存储区域 的DRAM等半导体存储器,具有暂时存储多个图1所示的乘积码的存储容量。
磁盘接口部件2120在对从前端处理机2040输入的信号进行解调后,将得 到的数据输出到第一传输部件2150中以将数据存入缓冲存储器2110中。在将 从磁盘接口部件2120输出的数据通过第一传输部件2150传输到缓冲存储器 2110中的同时,将该数据并行输入到错误检测部件2190中。
对于经过第一传输部件2150从磁盘接口部件2120传送来的数据,错误检 测部件2190判断C1序列中的每个代码串中是否存在错误,在检测出错误的情 况下,将该代码串的编号存入由RAM构成的错误代码串存储部件2200中。该 错误检测部件2190还计算出每1列代码串中一定个数的出错位,判断这些出 错位中是否存在非零数,如果存在非零数,则断定有错误发生。具体地,错误 检测部件2190由第一实施例中的纠错部件5所具有的4个出错位生成部件52~ 55之一(图8所示的电路)和用于判断所生成的出错位是否全部为零的与电 路构成。
纠错部件2130以从磁盘接口部件2120传输并存入缓冲存储器2110的乘 积码中产生了错误的数据为对象,进行C1序列及C2序列的纠错。具体地,纠 错部件2130参照存在错误代码串存储部件2200中的编号,只以发生了错误的 C1序列的代码串或发生了错误的数据块的C2序列代码串为对象,纠正缓冲存 储器2110中的错误数据。
主机接口部件2140是用于通过第三传输部件2170,从缓冲存储器2110中 读出完成了由纠错部件2130所执行的处理的数据并将其输出到主计算机2070 中的接口电路。
第一传输部件2150是DMA控制器,用于接收总线控制器2180对来自磁盘 接口部件2120的传输请求的许可通知,同时并列进行从磁盘接口部件2120向 缓冲存储器2110的DMA数据传输和向错误检测部件2190的同一数据的传输。
第二传输部件2160是DMA控制器,用于接收总线控制器2180对来自纠错 部件2130的传输请求的许可通知,进行从缓冲存储器2110向纠错部件2130 的DMA数据传输。
第三传输部件2170是DMA控制器,用于接收总线控制器2180对来自主机 接口部件2140的传输请求的许可通知,进行从缓冲存储器2110向主机接口部 件2140的DMA数据传输。
总线控制器2180按照预定优先顺序,控制这3个传输部件2150、2160和 2170,以便于排他性地执行分别由第一传输部件2150、第二传输部件2160和 第三传输部件2170进行的DMA传输并控制在重写缓冲存储器2110中的错误数 据时由纠错部件2130对缓冲存储器2110的普通(非DMA)访问。
图26是总线控制器2180的详细结构示意图。总线控制器2180由生成并 输出用于对缓冲存储器1进行访问的地址的地址生成部件2181、将第一传输部 件2150、第二传输部件2160、第三传输部件2170以及纠错部件2130中的任 一个与缓冲存储器2110进行总线连接的总线切换部件2183以及按照预定优先 顺序,对这3个传输部件2150、2160、2170及总线切换部件2183进行控制以 便于排他地执行这3个传输部件2150、2160、2170的DMA传输及纠错部件2130 对缓冲存储器2110的访问的总线调配控制部件2182构成。
地址生成部件21在这3个DMA传输中,对缓冲存储器1进行页面模式下 的高速访问。具体地,在命中页的范围内,确定并原样输出对缓冲存储器1的 行地址(RAS),仅使列地址(CAS)增加所需要的数据个数并输出。
图27是表示由总线调配控制部件2182进行的3个排他的DMA传输的调度 示例,即由第一传输部件2150进行的从磁盘接口部件2120向缓冲存储器2110 的DMA传输(DMA#1)、由第二传输部件2160进行的从缓冲存储器2110向纠错 部件2130的DMA传输(DMA#2)以及由第三传输部件2170进行的从缓冲存储 器2110向主机接口部件2140的DMA传输(DMA#3)的时序图。在本图中,横 轴表示经过的时间,三角形印记表示对个DMA传输的请求的发生,划有剖面线 的四边形表示DMA传输在执行中。
总线调配控制部件2182在最高的优先级下允许执行DMA#1,在最低的优先 级下允许执行DMA#2。即,总线调配控制部件2182在没有任何一个DMA传输处 于执行当中的情况下,不管与各DMA相对应的请求的产生顺序如何,只要产生 了与DMA#1相对应的请求,就最优先地执行DMA#1,如果没有产生与DMA#1相 对应的请求,就执行DMA#3,只有在与DMA#1相对应的请求和与DMA#3相对应 的请求都没有产生时从执行DMA#2。但是,在连续产生与DMA#1相对应的请求 并且还产生了其他的与DMA#2或DMA#3相对应的请求时,不连续执行DMA#1, 而是执行其他的DMA#2或DMA#3。
对于纠错部件2130在重写缓冲存储器2110中的错误数据时所进行的对缓 冲存储器2110的普通访问,总线调配控制部件2182执行与DMA#3相同的处理。 即,在与DMA#1相对应的请求和与DMA#3相对应的请求都没有产生时,允许纠 错部件2130对缓冲存储器2110所进行的普通访问。
图28是示出了与纠错部件2130的详细结构相关联的其他构成部件的电路 图。纠错部件2130是用于针对构成图1所示的乘积码的C1序列及C2序列中 预先检测出错误的代码串,执行每1行或1列代码串纠错的电路,由C1代码 串传输请求部件2135、出错位计算部件2131、欧基里德计算部件2132、链计 算部件2133以及错误数据更新部件2134构成。
C1代码串传输请求部件2135向第二传输部件2160提出请求以便从缓冲存 储器2110中读出包含了存在错误代码串存储部件2200中的错误的C1序列的 代码串。
出错位计算部件2131是用于在通过总线控制器2180、第二传输部件2160 而从缓冲存储器中取得了包含来自C1代码串传输请求部件2135的请求中所具 有的错误的C1代码串之后,计算该代码串的出错位的电路,其计算结果被提 供给欧基里德计算部件2132。
另外,此出错位计算部件2131是用于计算出每1行或1列代码串中的出 错位的电路,与第一实施例中的纠错部件5所具有的4个出错位生成部件52~ 55之一(图8所示的电路)相同。即,在乘积码的大小为k1=k2=100字节、m1=m2=10 字节的情况下,出错位计算部件2131由用于对输入的数据进行暂时缓冲存储 的队列缓冲器和10个用于分别计算出10个出错位的积和运算电路组成,各积 和运算电路由用于存储1个积和值的寄存器、用于读出存储在该寄存器中的积 和值并将其与固有的系数相乘的伽罗瓦域乘法器以及用于将相乘的结果与下次 输入的1个数据相加的伽罗瓦域加法器组成。
欧基里德计算部件2132是用于根据从出错位计算部件2131中传送来的出 错位,利用欧基里德算法,计算出用于确定错误位置多项式和错误数值多项式 各项系数的电路,计算出的系数被提供给链计算部件2133。
链计算部件2133是利用来自欧基里德计算部件2132的系数,通过链查寻 和调用法等方法算出所确定的错误位置多项式的根的电路,将其运算结果与来 自欧基里德计算部件2132的用于确定错误数值多项式的系数一起提供给错误 数据更新部件2134。
错误数据更新部件2134在利用来自链计算部件2133的错误位置和错误数 值多项式,求出位于该错误位置上的错误数值之后,通过总线控制器2180读 取缓冲存储器2110内该错误位置上的信息数据或奇偶校验数据,计算它们的 异或逻辑和,将得出的值回写到缓冲存储器2110内的原位置上。
另外,由第二传输部件2160进行的从缓冲存储器2110向出错位计算部件 2131的数据传输是通过由DMA传输进行的存储器访问而进行的,但是缓冲存储 器2110与错误数据更新部件2134之间的数据传输是通过由总线控制器2180 进行的普通(非DMA)存储器访问而进行的。这是由于通过纠错而成为重写对 象的数据不受存储在缓冲存储器2110内的连续地址上的数据限制。而且,构 成纠错部件2130的4个电路2131~2134在分别进行同步并列处理,即进行流 水线方式下的顺序处理。
图29是示出了在连续处理多个数据块的数据的情况下,光盘控制器2100 内的处理过程的时序图。在本图中,第1数据块到第5数据块是分别存储在缓 冲存储器2110中的1个数据块的数据。而且,“缓冲”表示由第一传输部件2150 进行的从磁盘接口部件2120向缓冲存储器2110的数据传输,“错误检测”表 示由第一传输部件2150进行的从磁盘接口部件2120向错误检测部件2190的 数据传输和在错误检测部件2190中进行的错误检测,“纠错”表示由第二传输 部件2160进行的从缓冲存储器2110向纠错部件2130的数据传输和在纠错部 件2130中进行的纠错,“主机传输”表示由第三传输部件2170进行的从缓冲 存储器2110向主机接口部件2140的数据传输。
如本图所示,将与同一数据块相对应的缓冲及错误检测、对完成了缓冲及 错误检测的数据块的纠错以及对完成了纠错的数据块的主机传输作为流水线顺 序且并列地执行。例如,在周期t5,在从磁盘接口部件向缓冲存储器2110传 输和存储第5数据块的同时,在错误检测部件2190中进行错误检测,从缓冲 存储器2110向纠错部件2130传输第4数据块并进行纠错,从缓冲存储器2110 向主机接口部件2140传输第3数据块。
另外,在本图中,并列进行3种用于访问缓冲存储器2110的数据传输, 但这是从数据块这个大方面的数据传输观点上出发而表现出来的,从构成数据 块的各数据的角度考虑(瞬时地),只能执行其中一种数据传输。这样的排他 性数据传输及上述流水线控制,如图27中的时序图所示,是通过按照预定的 优先顺序,将由3个传输部件2150、2160、2170进行的数据传输以较小的时 间单位进行切换并许可而实现的。
而且,在本图中,不对第3数据块进行纠错就是在错误检测过程中,这个 数据块中没有发现任何错误。即,由于在错误检测部件2190中没有对第3数 据块检测出任何错误,所以接收该通知的纠错部件2130不进行与对该数据块 的纠错相关的一切处理。即,通过纠错部件2130将上述意思通知总线控制器 2180,对属于第3数据块的全部代码串,不进行由第二传输部件2160执行的 从缓冲存储器2110向纠错部件2130的数据传输。
这样,在并列进行对同一数据块的缓冲和错误检测,并在该错误检测中没 有检测到错误的情况下,由于通知了纠错部件2130,所以能够避免纠错部件2130 对不需要纠错的数据进行从缓冲存储器2110读出的所谓无效数据传输。即, 若在现有技术中,对于从光盘读出的全部数据,进行存入缓冲存储器、从缓冲 存储器中读出以进行错误检测·纠正、从缓冲存储器中读出以将该数据输出到 主计算机的所谓3种数据传输,但在本第二实施例中,对于没有发生错误的数 据,只进行存入缓冲存储器和从缓冲存储器中读出以将数据输出到主计算机的 所谓2种数据传输。
图30是图29所示的时序图的更详细的示图,在与错误检测和纠错这2个 处理相关的过程中分别示出了C1序列及C2序列的处理。其中,在错误检测中, 仅对C1序列进行,而在纠错中,先对C1序列进行1次纠错,接着对C2序列 进行1次纠错。
具体地,在周期T1,错误检测部件2190对于通过第一传输部件2150从磁 盘接口部件2120传送来的第1数据块,检查C1序列的代码串中是否发生错误。 如果检测出错误的发生,错误检测部件2190就将发生了错误的代码串的编号 记录到代码串存储部件2200中。
其中,错误检测部件2190之所以对C1序列进行错误检测,是因为从磁盘 接口部件2120向缓冲存储器2110的数据传输是按照从第1行到第n2行,反 复在行方向上扫描乘积码的顺序而进行的,因而使C1序列的错误检测变得很 容易。而之所以对C2序列不进行错误检测,是因为对以前的C1序列纠错的结 果如果存在1次纠错都不能进行的代码串,就需要执行C2序列的纠错,因此 根本没有必要执行C2序列的错误检测。
接着在周期T2,纠错部件2130首先从缓冲存储器2110中读出C1序列的 代码串并对其进行纠错。但是,纠错部件2130通过参照存储在错误代码串存 储部件2200中的编号,从缓冲存储器2110中只读出检测出错误的C1序列的 代码串并对其进行纠错。然后,在完成了对全部检测出错误的C1序列的代码 串的纠错之后,在该C1序列中存在没有进行1次纠错的代码串的情况下,接 着从缓冲存储器2110中顺序读出构成该数据块的全部C2序列的代码串并对其 进行纠错。关于C2序列,对构成数据块的全部代码串进行纠错是由于错误检 测部件2190只对C1序列进行了错误检测,而不确定C2序列的代码串中是否 有错误所致。
图31是示出了在进行C1序列的纠错时纠错部件2130内的行单位处理过 程的时序图。其中,示出了在通过错误检测部件2190在第1行、第4行、第6 行及第11行中检测错误时的由出错位计算部件2131、欧基里德计算部件2132、 链计算部件2133及错误数据更新部件2134执行的并列处理。
由于错误检测部件2190在第2行、第3行、第5行、第8~10行的代码 串中没有检测出错误,因此不将其从缓冲存储器2110读到出错位计算部件2131 中,从而,不作为出错位计算、欧基里德计算、链计算及错误数据更新的对象。
图32示出了在纠正图31所示的代码串时,对存储在缓冲存储器2110中 的乘积码的各数据的访问顺序。其中,示出了首先执行对第1行的代码串的纠 错,然后跳过第2行、第3行,对第4行的代码串执行纠错,然后跳过第5行 对第6行的代码串执行纠错,接着对第7行的代码串执行纠错的流程。与图2 所示的逐行扫描不同的是只对检测出错误的行进行扫描。
如上所述,在此第二实施例中,纠错部件2130对于C1序列的纠错,通过 参照错误代码串存储部件2200,从缓冲存储器2110中只读出检测出错误的代 码串,即需要进行纠错的代码串并对其进行纠错,避免了无效地从缓冲存储器 2110中读出不需要纠错的代码串。
由此,对于没有检测出错误的C1序列的代码串,不进行所谓的3种数据 传输:将从光盘读出的全部数据存入缓冲存储器、从缓冲存储器读出数据以用 于错误检测·纠错以及从缓冲存储器中读出数据以将数据传送到主计算机中, 而是只进行2种数据传输:存入缓冲存储器和从缓冲存储器读出数据以将其传 送到主计算机。即,减少了对缓冲存储器2110的访问次数,以此在提高整个 光盘控制部件2100的处理速度的同时谋求降低功耗,实现更高速的低功耗光 盘读取装置2000。
此外,在本第二实施例中,如图32所示,纠错部件2130反复进行逐行或 逐列纠错,但也可以象第一实施例一样,进行每隔4行和4列等多代码串的并 列纠错。
图33示出了在以4个代码串并行对图31所示的C1序列纠错时,从磁盘 接口2120读出数据的顺序。这种读出顺序与第一实施例中图10所示的顺序基 本相同,但在图33中,与图10所示的不同之处在于只以检测出错误的行(第 1行、第4行、第6行、第7行...)为对象,每隔4行代码串并列读出。在代 码串的长度不能被4整除的情况下,如图34所示,先分别对检测出错误的4 列代码串(第1行、第4行、第6行、第7行)反复进行4个字节的吃素,最 后分别对该4列代码串进行2个字节的传输即可。
第二实施例中象这样的由纠错部件2130对4个代码串并列进行纠错的变 形例只要象第一实施例中的纠错部件5一样,在纠错部件2130中设置4个出 错位计算部件和用于将来自缓冲存储器2110的数据分配到4个出错位计算部 件中的数据分配部件即可。由此,就能够得到由第一实施例中的并列化而产生 的纠错高速化和由第二实施例中的预先进行错误检测而产生的纠错高速化这两 方面的效果。
而且,在第二实施例中,在纠错部件2130内设置了C1代码串传输请求部 件2135,但是也可以将C1代码串传输请求部件2135或者设置在错误检测部件 2190内,或者与错误检测部件2190和纠错部件2130一起构成独立的电路。
而且,错误检测部件2190只通知检测出错误的代码串的编号,但是也可 以同时通知由该检测得到的出错位。然后,纠错部件2130也可以针对检测出 错误的代码串,从错误检测部件2190接收出错位,进行欧基里德计算和链计 算。由此,能够避免在错误检测部件2190和纠错部件2130中进行重复的出错 位计算。
同样地,在错误检测部件2190中,也可以不仅进行错误检测,还接着进 行欧基里德计算和链计算。在这种情况下,纠错部件2130对于检测出错误的 代码串,从错误检测部件2190中接收错误位置和错误数值并对缓冲存储器2110 内的错误数据进行纠正即可。这样,通过在能够确保处理时间的范围内,在错 误检测部件2190中执行用于进行C1序列的纠错的出错位计算、欧基里德计算 及链计算,可以使执行计算与从磁盘接口部件2120向缓冲存储器2110的数据 传输同时进行,并缩短纠错部件2130进行纠错所需要的时间。
(第三实施例)
第三实施例涉及这样的高速光盘读取装置:通过在将数据存入缓冲存储器 中时并行执行C1序列的纠错,同时在该C1序列的纠错中,从缓冲存储器中只 读出发生了错误的数据块并执行C2序列的纠错,从而削减了对缓冲存储器的 访问次数。
图35是本发明第三实施例中的光盘读取装置3000的结构示意图。光盘读 取装置3000是用于读取记录在光盘2010中的数据,并在对读出的数据进行纠 错后将该数据传输到主计算机2070中的装置,由光拾取器2020、放大器2030、 前端处理机2040、光盘控制部件3100、旋转电动机2050、伺服控制器2060和 系统控制部件2080构成。
此外,光盘读取装置3000与第二实施例中的光盘读取装置2000相比,只 在光盘控制部件3100方面有所不同,因此对于其它的构成部件采用与图24所 示的符号相同的符号,在此省略了对这些相同部件的说明。
图36是光盘控制器3100的详细结构示意图。光盘控制部件3100是用于 将来自前端处理机2040的信号解调并纠错后传送到主计算机2070的电路,包 括缓冲存储器3110、磁盘接口部件3120、纠错部件3130、主机接口部件3140、 第一传输部件3150、第二传输部件3160、第三传输部件3170、总线控制器3180 及数据选择部件3190。图36中的粗箭头表示在向缓冲存储器3110的由DMA传 输执行的数据写入以及从缓冲存储器3110的由DMA传输执行的数据读出中的 数据通路。
缓冲存储器3110是利用二维地址(行地址和列地址)具有特定存储区域 的DRAM等半导体存储器,具有暂时存储多个图1所示的乘积码的存储容量。
磁盘接口部件3120在对从前端处理机2040输入的信号进行解调后,将得 到的数据输出到第一传输部件3150中以将数据存入缓冲存储器3110中。在将 从磁盘接口部件3120输出的数据通过第一传输部件3150传输到缓冲存储器 3110中的同时,将该数据并行输入到数据选择部件3190中。
数据选择部件3190是用于选择作为纠错部件3130的纠错对象的代码串的 传输源的选择器。在通过第一传输部件3150从磁盘接口部件3120向缓冲存储 器3110进行数据传输的情况下,该数据也被同时并行传送到数据选择部件3190 中,因此对该数据进行选择并通过数据选择部件而到达纠错部件3130。另一方 面,在通过第二传输部件3160从缓冲存储器3110传送C2序列的代码串的情 况下,对该数据进行选择并通过数据选择部件而到达纠错部件3130。另外,数 据选择部件3190还根据来自第一传输部件3150和第二传输部件3160的指示, 选择这些数据传输源中的一个。
纠错部件3130一边区分来自数据选择部件3190的2种(C1序列和C2序 列)代码串,一边进行纠错。具体地,纠错部件3130在数据选择部件3190选 择并通过来自第一传输部件3150的数据(C1序列的代码串)的情况下,执行 C1序列的纠错,另一方面,在数据选择部件3190选择并通过来自第二传输部 件3160的数据(C2序列的代码串)的情况下,执行C2序列的纠错。
主机接口部件3140是用于通过第三传输部件3170,从缓冲存储器3110中 读出完成了由纠错部件3130所执行的处理的数据并将其输出到主计算机2070 中的接口电路。
第一传输部件3150同时并列执行从磁盘接口部件3120向缓冲存储器3110 的DMA数据传输和对同一数据的向数据选择部件3190的DMA数据传输,第二 传输部件3160执行从缓冲存储器3110向纠错部件3130的DMA数据传输,并 且第三传输部件3170执行从缓冲存储器3110向主机接口部件3140的DMA数 据传输。
总线控制器3180按照预定的优先顺序,控制3个传输部件3150、3160、 3170,以便于排他地执行分别由第一传输部件3150、第二传输部件3160和第 三传输部件3170执行的DMA传输,并控制在重写缓冲存储器3110中的成为时 间时由纠错部件3130执行的对缓冲存储器3110的普通(非DMA)访问。另外, 总线控制器3180的详细结构和由总线控制器3180执行的对缓冲存储器3110 的访问的排他控制分别与第二实施例中的图26及图27所示的内容相同。
图37是示出了与纠错部件3130的详细结构相关联的其他构成部件的电路 图。纠错部件3130是用于一边时分地切换1行代码串和1列代码串,一边并 行纠错的电路,由出错位计算部件3131、欧基里德计算部件3132、链计算部 件3133以及错误数据更新部件3134构成。
出错位计算部件3131是用于一边区分来自数据选择部件3190的2种代码 串,一边计算各自的出错位的电路,包括2个暂时存储器(输入数据出错位存 储部件3135和缓冲数据出错位存储部件3136)。输入数据出错位存储部件3135 是具有暂时存储与构成1个数据块的全部C1序列的代码串相对应的出错位的 存储容量的存储器,缓冲数据出错位存储部件3136是具有暂时存储与构成1 个数据块的全部C2序列的代码串相对应的出错位的存储容量的存储器。
出错位计算部件3131在数据选择部件3190选择并通过了来自第一传输部 件3150的数据(C1代码串)时,对该C1代码串进行出错位计算,将得到的出 错位储存到各代码串中并存入输入数据出错位存储部件3135中,另一方面, 在数据选择部件3190选择并通过了来自第二传输部件3160的数据(C2代码串) 时,对该C2代码串进行出错位计算,将得到的出错位储存到各代码串中并存 入缓冲数据出错位存储部件3136中。
另外,此出错位计算部件3131是用于瞬时计算出每1行或1列代码串中 的出错位的电路,与第一实施例中的纠错部件5所具有的4个出错位生成部件 52~55之一(图8所示的电路)相同。即,在乘积码的大小为k1=k2=100字节、 m1=m2=10字节的情况下,出错位计算部件3131由用于对输入的数据进行暂时 缓冲存储的队列缓冲器和10个用于分别计算出10个出错位的积和运算电路组 成,各积和运算电路由用于存储1个积和值的寄存器、用于读出存储在该寄存 器中的积和值并将其与固有的系数相乘的伽罗瓦域乘法器以及用于将相乘的结 果与下次输入的1个数据相加的伽罗瓦域加法器组成。
欧基里德计算部件3132是用于顺序读出分别存在出错位计算部件3131的 输入数据出错位存储部件3135和缓冲数据出错位存储部件3136中的出错位, 计算出用于确定错误位置多项式和错误数值多项式各项系数的电路,计算出的 系数被提供给链计算部件3133。
链计算部件3133是利用来自欧基里德计算部件3132的系数,通过链查寻 和调用法等方法算出所确定的错误位置多项式的根的电路,将其运算结果与来 自欧基里德计算部件3132的用于确定错误数值多项式的系数一起提供给错误 数据更新部件3134。
错误数据更新部件3134在利用来自链计算部件3133的错误位置和错误数 值多项式,求出位于该错误位置上的错误数值之后,通过总线控制器3180读 取缓冲存储器3110内该错误位置上的信息数据或奇偶校验数据,计算它们的 异或逻辑和,将得出的值回写到缓冲存储器3110内的原位置上。
另外,由第二传输部件3160进行的从缓冲存储器3110向出错位计算部件 3131的数据传输是通过由DMA传输进行的存储器访问而进行的,但是缓冲存储 器3110与错误数据更新部件3134之间的数据传输是通过由总线控制器3180 进行的普通(非DMA)存储器访问而进行的。而且,构成纠错部件3130的4个 电路3131~3134在分别进行同步并列处理,即进行流水线方式下的顺序处理。
图38是示出了在连续处理多个数据块的数据的情况下,光盘控制器3100 内的处理过程的时序图。在本图中,第1数据块到第5数据块是分别存储在缓 冲存储器3110中的1个数据块的数据。而且,“缓冲”表示由第一传输部件3150 进行的从磁盘接口部件3120向缓冲存储器3110的数据传输,“纠错1”表示 纠错部件3130对由第一传输部件3150进行的经过数据选择部件3190从磁盘 接口部件3120输入到纠错部件3130中的C1序列的代码串的纠错,“纠错2” 表示纠错部件3130对由第二传输部件3160进行的经过数据选择部件3190从 缓冲存储器3110输入到纠错部件3130中的C2序列的代码串的纠错,“主机传 输”表示由第三传输部件3170进行的从缓冲存储器3110向主机接口部件3140 的数据传输。
如本图所示,将与同一数据块相对应的并列的“缓冲”及“纠错1”、对 完成了“缓冲”及“纠错1”的数据块的“纠错2”以及对完成了“纠错2” 的数据块的“主机传输”作为流水线顺序且并列地执行。例如,在周期T5, 在从磁盘接口部件向缓冲存储器3110传输和存储第5数据块的同时,在纠错 部件3130中进行“纠错1”(C1序列的纠错),从缓冲存储器3110向纠错部件 3130传输第4数据块并进行“纠错2”(C2序列的纠错),从缓冲存储器3110 向主机接口部件3140传输第3数据块。
另外,在本图中,并列进行3种用于访问缓冲存储器3110的数据传输, 但这是从数据块这个大方面的数据传输观点上出发而表现出来的,从构成数据 块的各数据的角度考虑(瞬时地),只能执行其中一种数据传输。这样的排他 性数据传输及上述流水线控制,是通过总线控制器3180按照预定的优先顺序, 将由3个传输部件3150、3160、3170进行的数据传输以较小的时间单位进行 切换并许可而实现的。
而且,在本图中,不对第3数据块进行“纠错2”(C2序列的纠错)就是 在“纠错1”(C1序列的纠错)中,这个数据块中没有发现任何错误。即,在 纠错部件3130的出错位计算部件3131中为第3数据块的C1序列的代码串计 算出全部为零的出错位,并将其存入输入数据出错位存储部件3135的情况下, 或在周期T3进行的纠错1中对C1序列的全部代码串执行纠错并且不存在错误 的情况下,纠错部件3130通过参照出错位存储部件3135的内容,明确了不必 对第3数据块进行C2序列的纠错,并且不进行与对该数据块的C2序列纠错相 关的一切处理。即,通过纠错部件3130将上述意思通知给总线控制器3180, 对第3数据块的C2序列的全部代码串,不进行由第二传输部件3160执行的从 缓冲存储器3110向纠错部件3130的数据传输。
这样,由于并列进行对同一数据块的缓冲和“纠错1”,并将与错误检测 相关的信息存储到输入数据出错位存储部件3135中,因此在C1序列的代码串 中都没有发生错误的情况下,纠错部件3130通过参照输入数据出错位存储部 件3135而知道了此情况,因而能够避免从缓冲存储器2110读出不需要进行C2 序列纠错的数据的所谓无效数据传输。即,若在现有技术中,对于从光盘读出 的全部数据,要进行存入缓冲存储器、从缓冲存储器中读出以进行错误检测·纠 正、从缓冲存储器中读出以将该数据输出到主计算机的所谓3种数据传输,但 在本第三实施例中,对于没有发生错误的数据,只进行存入缓冲存储器和从缓 冲存储器中读出以将数据输出到主计算机的所谓2种数据传输。
图39是图38所示的时序图的更详细的示图。在与“纠错1”和“纠错2” 这2个处理相关的过程中分别示出了对C1序列及C2序列的处理。其中,在“纠 错1”中,只进行对C1序列的纠错,而在“纠错2”中,只进行对C2序列的 纠错。
具体地,在周期T1,纠错部件3130对于通过第一传输部件3150从磁盘接 口部件3120传送来的第1数据块,进行对C1序列的代码串的纠错。此时,出 错位计算部件3131将关于C1序列的全部代码串而得出的出错位存储到输入数 据出错位存储部件3135中。
其中,纠错部件3130与缓冲并行进行C1序列的纠错(“纠错1”),是因 为从磁盘接口部件3120向缓冲存储器3110的数据传输是按照从第1行到第n2 行的顺序,反复在行方向上扫描乘积码而进行的,因而使C 1序列的纠错变得 很容易。
接着在周期T2,纠错部件3130并列进行对第2数据块的C1序列纠错和对 第1数据块的C2序列纠错。具体地,这些第2数据块和第1数据块的数据是 时分地从数据选择部件3190传送来的,因此纠错部件3130在经过数据选择部 件3190从磁盘接口部件3120输入第2数据块时,对其代码串进行C1序列的 纠错,另一方面,在经过数据选择部件3190从缓冲存储器3110输入第1数据 块时,对其代码串进行C2序列的纠错。
另外,如果在对第1数据块进行的C1序列纠错中,没有检测出错误,或 全部错误被纠正以后的情况下,与第3数据块和第4数据块一样,不进行对第 1数据块的C2序列纠错。即,不进行通过第二传输部件3160将第1数据块的 C2序列的代码串从缓冲存储器3110传输到纠错部件3130的操作。
图40是示出了在纠错器2130内的行方向及列方向上的单位处理过程的时 序图。本图相当于图39中所示的时序图中的周期T2开头部分中的“纠错1” 和“纠错2”,示出了在纠错部件3130中并列进行第2数据块的C1序列纠错 (“纠错1”)和第1数据块的C2序列纠错(“纠错2”)的样子。
在时间t1,出错位计算部件3131并列进行对第2数据块第1行代码串的 出错位计算和对第1数据块第1列代码串的出错位计算,并将各结果存入输入 数据出错位存储部件3135和缓冲数据出错位存储部件3136中。实际上,由于 第2数据块第1行代码串和第1数据块第1列代码串是按照时间切换而从数据 选择部件3190中传送的,因而出错位计算部件3131在瞬时只是对其中一个代 码串进行出错位计算。
在时间t2,出错位计算部件3131并列进行对第2数据块第2行代码串的 出错位计算和对第1数据块第2列代码串的出错位计算,并将各结果存入输入 数据出错位存储部件3135和缓冲数据出错位存储部件3136中。
与此并行,欧基里德计算部件3132首先读出存在输入数据出错位存储部 件3135中的第2数据块第1行代码串的出错位,利用它进行欧基里德计算, 在将结果通知给链计算部件3133之后,接着进行对第1数据块第1列代码串 的欧基里德计算,并将结果通知给链计算部件3133。
而且,在时间t2的后一半时间中,链计算部件3133根据来自欧基里德计 算部件3132的通知,对第2数据块第1行的代码串进行链计算,并将结果通 知给错误数据更新部件3134。
在时间t3,同样地,出错位计算部件3131并列进行对第2数据块第3行 代码串的出错位计算和对第1数据块第3列代码串的出错位计算,与此并行, 欧基里德计算部件3132在进行对第2数据块第2行代码串的欧基里德计算之 后,接着进行对第1数据块第2列代码串的欧基里德计算,与此并行,链计算 部件3133在对第1数据块第1行的代码串进行链计算之后,接着对第2数据 块第2列的代码串进行链计算,与此并行,错误数据更新部件3134在对第2 数据块第1行代码串进行错误数据的更新(缓冲存储器3110内错误数据的重 写)之后,接着对第1数据块第1列代码串进行错误数据的更新。
在以后的个时间tn中,同样地并列执行对1行代码串和1列代码串的出 错位计算、欧基里德计算、链计算及错误数据纠正。另外,在本图中,虽然对 全部行和列进行了欧基里德计算、链计算及错误数据纠正,但这是基于在对这 些代码串进行出错位计算时检测出错误的原因,如果不是这样,则不进行对该 代码串的欧基里德计算、链计算及错误数据的纠正。
如上所述,在第三实施例中,在进行“缓冲”(从磁盘接口部件3120向缓 冲存储器3110的数据传输)的同时,并列进行对同一数据的C1序列纠错(“纠 错1”)。由此,在将数据存入缓冲存储器3110之后,就不需要所谓的读出存在 缓冲存储器3110中的数据以用于C1序列纠错的过程了。
而且,在与缓冲同时进行的纠错中,由于一个数据块的C1序列的错误检 测结果(出错位)被记录到输入数据出错位存储部件3135中,因此在构成1 个数据块的全部C1序列代码串中没有发生错误的情况下,通过参照该记录, 能够避免不必要的从缓冲存储器3110读出数据以进行C2序列纠错的所谓无效 数据传输。
这样,依据第三实施例,不需要从缓冲存储器3110读出数据以进行C1序 列纠错和从缓冲存储器3110中读出数据以对没有发生错误的数据块进行C2序 列纠错,从而削减了对缓冲存储器3110的访问次数,并实现了更高速的低功 耗光盘读取装置2000。
另外,在第三实施例中,纠错部件3130反复进行逐行或逐列纠错,但也 可以象第一实施例一样,进行每隔4行和4列等多代码串的并列纠错。
例如,第三实施例中象这样的由纠错部件3130对4个代码串并列进行纠 错的变形例只要象第一实施例中的纠错部件5一样,在纠错部件3130中设置4 个出错位计算部件和用于将来自缓冲存储器3110的数据分配到4个出错位计 算部件中的数据分配部件即可。由此,就能够得到由第一实施例中的并列化而 产生的纠错高速化和由第三实施例中的预先进行C1序列的纠错而产生的纠错 高速化这两方面的效果。
而且,在第三实施例中,通过数据选择部件3190和出错位计算电路3131, 按时间对分别从第一传输部件3150和第二传输部件3160传送来的代码串进行 错误检测,但是也可以代替这种结构,通过将只对来自第一传输部件3150的 代码串进行错误检测的出错位计算电路和只对来自第二传输部件3160的代码 串进行错误检测的出错位计算电路设计成2个独立的出错位计算电路,来同时 并列进行对这2个代码串的错误检测。
以上根据第一至第三实施例对本发明进行了说明,但这并不意味着本发明 只限于这些实施例。
例如,在第一至第三实施例中,对于1个数据块的纠错,只进行1次C1 序列的纠错和接在其后的C2序列纠错,但是也可以在进行了这些纠错之后, 继续进行C1序列的纠错和接在其后的C2序列纠错。由于通过增加纠错的次数 可以提高纠错能力,因此只要考虑发现错误的数据量和在其它相关处理中所容 许的时间,决定对各方向反复进行纠错的次数即可。
而且,通过组合3个实施例中各自不同的结构部件,可以实现各种不同的 变形。例如,图27中所示的第二及第三实施例中的对3种DMA传输的调度也 可用于第一实施例中。
而且,第一至第三实施例是作为DVD-ROM等光盘的记录媒体的磁盘驱动装 置,但是本发明涉及的纠错装置并不仅限于在这样的数据存储装置中使用,也 可以用于要求能够对应转播的数据高速地进行纠错的机器,例如网络通信中的 中继器等。
申请是申请号为200410002795.6、申请日为1999年2月24日的原案申 请的分案申请,该原案的在先申请号为JP98-43219、在先申请日为1998年2 月25日。
QQ群二维码
意见反馈