CN100383886C - 纠错装置和纠错方法 - Google Patents

纠错装置和纠错方法 Download PDF

Info

Publication number
CN100383886C
CN100383886C CNB2004101022396A CN200410102239A CN100383886C CN 100383886 C CN100383886 C CN 100383886C CN B2004101022396 A CNB2004101022396 A CN B2004101022396A CN 200410102239 A CN200410102239 A CN 200410102239A CN 100383886 C CN100383886 C CN 100383886C
Authority
CN
China
Prior art keywords
error correction
data
error
code
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004101022396A
Other languages
English (en)
Other versions
CN1627426A (zh
Inventor
中迁文男
桥本祐一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1627426A publication Critical patent/CN1627426A/zh
Application granted granted Critical
Publication of CN100383886C publication Critical patent/CN100383886C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers

Abstract

一种纠错装置,用于对接收的数据进行纠错,并且输出纠正后的数据,其特征在于包括:存储单元,用于存储所述接收的数据;纠错单元,用于检测并纠正所述接收的数据中行方向上的错误码,并且检测并纠正来自所述存储单元的所存储的数据中列方向上的的错误码。

Description

纠错装置和纠错方法
本申请是申请号为200410002795.6、申请日为1999年2月24日的原案申请的分案申请,该原案的在先申请号为JP98-43219、在先申请日为1998年2月25日。
技术领域
本发明涉及进行伴随于纠正在编码数据中发生的错误的处理的装置,特别涉及对由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(DirectMemory 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等光盘的记录媒体的磁盘驱动装置,但是本发明涉及的纠错装置并不仅限于在这样的数据存储装置中使用,也可以用于要求能够对应转播的数据高速地进行纠错的机器,例如网络通信中的中继器等。

Claims (16)

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所述的纠错方法,其特征在于,
当在所述纠错中检测到一个错误码时,采用校正值写入在所述存储器中的对应于该检出的错误码。
CNB2004101022396A 1998-02-25 1999-02-24 纠错装置和纠错方法 Expired - Fee Related CN100383886C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4321998 1998-02-25
JP43219/98 1998-02-25
JP43219/1998 1998-02-25

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
CNB2004100027956A Division CN100430900C (zh) 1998-02-25 1999-02-24 纠错装置
CN 200410000027 Division CN1641215A (zh) 2004-01-05 2004-01-05 引力发动机

Publications (2)

Publication Number Publication Date
CN1627426A CN1627426A (zh) 2005-06-15
CN100383886C true CN100383886C (zh) 2008-04-23

Family

ID=12657813

Family Applications (5)

Application Number Title Priority Date Filing Date
CNB991055640A Expired - Fee Related CN1165906C (zh) 1998-02-25 1999-02-24 纠错装置
CNB2004100027956A Expired - Fee Related CN100430900C (zh) 1998-02-25 1999-02-24 纠错装置
CNA2004100636136A Pending CN1555061A (zh) 1998-02-25 1999-02-24 纠错装置
CN2006101018489A Expired - Fee Related CN1897512B (zh) 1998-02-25 1999-02-24 纠错装置
CNB2004101022396A Expired - Fee Related CN100383886C (zh) 1998-02-25 1999-02-24 纠错装置和纠错方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CNB991055640A Expired - Fee Related CN1165906C (zh) 1998-02-25 1999-02-24 纠错装置
CNB2004100027956A Expired - Fee Related CN100430900C (zh) 1998-02-25 1999-02-24 纠错装置
CNA2004100636136A Pending CN1555061A (zh) 1998-02-25 1999-02-24 纠错装置
CN2006101018489A Expired - Fee Related CN1897512B (zh) 1998-02-25 1999-02-24 纠错装置

Country Status (4)

Country Link
US (2) US6332206B1 (zh)
EP (4) EP1146515A1 (zh)
JP (3) JP3676939B2 (zh)
CN (5) CN1165906C (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948113B1 (en) * 1999-04-21 2005-09-20 Seagate Technology Llc Self-throttling error-correction buffer and method for a disc drive
TW441195B (en) * 1999-07-16 2001-06-16 Via Tech Inc Signal decoding method
JP3450756B2 (ja) * 1999-09-08 2003-09-29 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
TW512320B (en) * 1999-09-10 2002-12-01 Matsushita Electric Ind Co Ltd Signal processing device
CN1286275C (zh) 1999-11-24 2006-11-22 三洋电机株式会社 纠错装置
KR100685360B1 (ko) 2000-01-31 2007-02-22 산요덴키가부시키가이샤 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
EP1223578A3 (en) 2000-12-12 2008-07-16 Kabushiki Kaisha Toshiba Data processing method using error-correcting code and an apparatus using the same method
GB0031439D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
GB0031436D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
KR20020065788A (ko) * 2001-02-07 2002-08-14 삼성전자 주식회사 엠 또는 이엠 비트 데이터 처리 겸용 리드 솔로몬 복호기및 그 복호 방법
JP3954803B2 (ja) * 2001-03-22 2007-08-08 三洋電機株式会社 エラー訂正装置
US6910174B2 (en) * 2001-06-01 2005-06-21 Dphi Acquisitions, Inc. Error correction code block format
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
JP4039227B2 (ja) * 2002-12-13 2008-01-30 日本電気株式会社 復号方法及びプログラム並びにこれを用いた復号回路
JP2004206798A (ja) * 2002-12-25 2004-07-22 Ricoh Co Ltd 光ディスク装置のエンコードデータ符号回路
TWI227395B (en) * 2003-06-02 2005-02-01 Genesys Logic Inc Method for parallel processing of memory data and error correction code and related device thereof
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
JP2006004560A (ja) * 2004-06-18 2006-01-05 Elpida Memory Inc 半導体記憶装置及びその誤り訂正方法
JP2006190346A (ja) * 2004-12-28 2006-07-20 Toshiba Corp エラー訂正処理装置及びエラー訂正処理方法
JP4571523B2 (ja) * 2005-03-04 2010-10-27 ルネサスエレクトロニクス株式会社 スクランブル回路、エンコード装置、エンコード方法及び記録装置
US7788570B1 (en) * 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US7774676B2 (en) * 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US20070033507A1 (en) * 2005-08-03 2007-02-08 Xueping Jiang Efficient error code correction
TWI313807B (en) * 2005-08-18 2009-08-21 Realtek Semiconductor Corp Error correction apparatus and method for data stored in memory
US20070058753A1 (en) * 2005-08-30 2007-03-15 Carlos Saavedra BPSK demodulator circuit using an anti-parallel synchronization loop
US20070067702A1 (en) * 2005-09-05 2007-03-22 Kuo-Lung Chien Method and apparatus for syndrome generation
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
TW200820231A (en) * 2006-10-31 2008-05-01 Sunplus Technology Co Ltd Error code correction device with high memory utilization efficiency
CN101056157B (zh) * 2007-05-15 2010-06-09 上海微电子装备有限公司 一种传输控制装置及其控制方法
US8041989B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8677208B2 (en) * 2007-09-21 2014-03-18 Hewlett-Packard Development Company, L.P. Generating a parallel recovery plan for a data storage system
JP5248300B2 (ja) * 2008-12-24 2013-07-31 三菱電機株式会社 誤り訂正復号装置および誤り訂正復号方法
US20100325490A1 (en) * 2009-06-22 2010-12-23 Anvin H Peter System and method to view crash dump information using a 2-d barcode
JP5544773B2 (ja) * 2009-07-22 2014-07-09 ソニー株式会社 エラー訂正装置、エラー訂正装置のメモリの制御方法および光ディスク記録再生装置
US8484529B2 (en) * 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8898511B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8549378B2 (en) 2010-06-24 2013-10-01 International Business Machines Corporation RAIM system using decoding of virtual ECC
US8522122B2 (en) 2011-01-29 2013-08-27 International Business Machines Corporation Correcting memory device and memory channel failures in the presence of known memory device failures
JP2015053096A (ja) 2013-09-09 2015-03-19 マイクロン テクノロジー, インク. 半導体装置、及び誤り訂正方法
US20150311921A1 (en) * 2014-04-25 2015-10-29 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US10381102B2 (en) 2014-04-30 2019-08-13 Micron Technology, Inc. Memory devices having a read function of data stored in a plurality of reference cells
US10439644B2 (en) 2015-07-14 2019-10-08 Western Digital Technologies, Inc. Error locator polynomial decoder and method
US10572189B2 (en) 2016-11-04 2020-02-25 Sandisk Technologies Llc Method and decoder to adjust an error locator polynomial based on an error parity
US10461777B2 (en) 2015-07-14 2019-10-29 Western Digital Technologies, Inc. Error locator polynomial decoder and method
US9760435B2 (en) * 2015-10-14 2017-09-12 Intel Corporation Apparatus and method for generating common locator bits to locate a device or column error during error correction operations
CN105575439B (zh) * 2015-12-15 2020-04-28 山西长河科技股份有限公司 一种存储单元失效纠错的方法及存储器
JP6267251B2 (ja) * 2016-03-02 2018-01-24 Nttエレクトロニクス株式会社 誤り訂正処理回路および誤り訂正処理方法
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치
KR102333140B1 (ko) * 2017-08-18 2021-12-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN111863106B (zh) * 2019-04-28 2022-08-05 武汉海康存储技术有限公司 闪存纠错方法及装置
US10826538B1 (en) * 2019-06-12 2020-11-03 International Business Machines Corporation Efficient error correction of codewords encoded by binary symmetry-invariant product codes
JP2021140835A (ja) * 2020-03-02 2021-09-16 株式会社東芝 磁気ディスク装置
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
CN1040698A (zh) * 1988-09-02 1990-03-21 三菱电机株式会社 错误校正电路
CN1122025A (zh) * 1993-12-28 1996-05-08 三菱电机株式会社 纠错译码器和纠错译码方法
US5631914A (en) * 1988-07-18 1997-05-20 Canon Kabushiki Kaisha Error correcting apparatus
JPH1055630A (ja) * 1996-08-13 1998-02-24 Sony Corp 復号化装置および復号化方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3622985A (en) * 1969-11-25 1971-11-23 Ibm Optimum error-correcting code device for parallel-serial transmissions in shortened cyclic codes
US4506362A (en) * 1978-12-22 1985-03-19 Gould Inc. Systematic memory error detection and correction apparatus and method
JPS62256270A (ja) 1986-04-28 1987-11-07 Casio Comput Co Ltd 誤り訂正装置
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
USRE34100E (en) * 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
JPH01293013A (ja) 1988-05-20 1989-11-27 Matsushita Electric Ind Co Ltd 誤り訂正装置
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
JP2970994B2 (ja) * 1994-05-25 1999-11-02 三洋電機株式会社 誤り訂正復号回路
US5719884A (en) * 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US5701314A (en) * 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
US5872800A (en) * 1996-09-16 1999-02-16 Cirrus Logic, Inc. Write verify method for correcting unrecoverable sectors in a disc storage system using track level redundancy
US5844919A (en) * 1996-09-16 1998-12-01 Cirrus Logic, Inc. Sector and track level error correction system for disc storage systems
US5844920A (en) * 1996-11-07 1998-12-01 Cirrus Logic, Inc. Thermal asperity compensation using multiple sync marks for retroactive and split segment data synchronization in a magnetic disk storage system
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
US5974580A (en) * 1997-07-23 1999-10-26 Cirrus Logic, Inc. Concurrent row/column syndrome generator for a product code
US5996105A (en) * 1997-11-14 1999-11-30 Cirrus Logic, Inc. ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
US5991911A (en) * 1997-11-14 1999-11-23 Cirrus Logic, Inc. Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
US5631914A (en) * 1988-07-18 1997-05-20 Canon Kabushiki Kaisha Error correcting apparatus
CN1040698A (zh) * 1988-09-02 1990-03-21 三菱电机株式会社 错误校正电路
CN1122025A (zh) * 1993-12-28 1996-05-08 三菱电机株式会社 纠错译码器和纠错译码方法
JPH1055630A (ja) * 1996-08-13 1998-02-24 Sony Corp 復号化装置および復号化方法

Also Published As

Publication number Publication date
EP0939403A3 (en) 1999-11-17
JPH11338723A (ja) 1999-12-10
CN1897512A (zh) 2007-01-17
EP1146515A1 (en) 2001-10-17
JP3676939B2 (ja) 2005-07-27
JP4157521B2 (ja) 2008-10-01
CN1532837A (zh) 2004-09-29
CN1165906C (zh) 2004-09-08
CN1627426A (zh) 2005-06-15
EP1517327A3 (en) 2005-03-30
USRE41499E1 (en) 2010-08-10
CN1555061A (zh) 2004-12-15
JP2005168039A (ja) 2005-06-23
JP4295758B2 (ja) 2009-07-15
CN1233053A (zh) 1999-10-27
EP0939403A2 (en) 1999-09-01
CN100430900C (zh) 2008-11-05
JP2006139911A (ja) 2006-06-01
CN1897512B (zh) 2010-08-11
EP1517327A2 (en) 2005-03-23
EP1914752A1 (en) 2008-04-23
US6332206B1 (en) 2001-12-18

Similar Documents

Publication Publication Date Title
CN100383886C (zh) 纠错装置和纠错方法
US5642367A (en) Finite field polynomial processing module for error control coding
CN101032085B (zh) 数据交织装置
US7624330B2 (en) Unified memory architecture for recording applications
US20120275282A1 (en) Device and method for reproducing digital signal and device and method for recording digital signal
CN100380507C (zh) 可抑制电路规模能进行高速纠错的纠错装置和解码装置
EP0156878A1 (en) Error detection and correction in an optical storage system
JP4202658B2 (ja) データ書き込み装置及びdvdフォーマットデータ生成方法
US5956757A (en) Method and apparatus for generating addresses
US6167548A (en) Data error correcting method and apparatus
CN101256803B (zh) 错误校正设备和记录及再现设备
US5996107A (en) Error correction decoder including an address generation circuit
CN1670853B (zh) 编码装置
CN100433168C (zh) 数据处理装置
KR100361947B1 (ko) 디스크 재생 장치에 적용되는 에러 검출 회로
CN1174371A (zh) 信息记录方法和装置
WO2020144737A1 (ja) データ通信装置及びデータ通信方法
JP2003288762A (ja) 磁気テープ装置の制御装置
JP2004087018A (ja) エラー訂正方法およびエラー訂正装置
JPS59178565A (ja) デ−タチエツク方式
JPH08272634A (ja) アドレス生成回路
JP2007042179A (ja) エラー訂正装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080423

Termination date: 20130224