CN1199177C - 可抑制电路规模能进行高速纠错的纠错装置和解码装置 - Google Patents
可抑制电路规模能进行高速纠错的纠错装置和解码装置 Download PDFInfo
- Publication number
- CN1199177C CN1199177C CNB011119756A CN01111975A CN1199177C CN 1199177 C CN1199177 C CN 1199177C CN B011119756 A CNB011119756 A CN B011119756A CN 01111975 A CN01111975 A CN 01111975A CN 1199177 C CN1199177 C CN 1199177C
- Authority
- CN
- China
- Prior art keywords
- error
- data
- error correction
- correction
- carry out
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
数据缓冲存储器(14)接收并暂时存储含有可进行第一方向和第二方向的纠错的复合码的数据。异或逻辑和运算电路(9)使用由第一方向的纠错检出的差错量并使用存储元件(11)中存储的数据算出第一检错结果。PI方向检错电路(3)对应于第一检错结果进行第一方向的纠错后的检错,PO方向部分检错电路(8)和PO方向总计检错电路(6)使用第二方向的纠错时检出的差错量算出第二检错结果。通过第一和第二检错结果,异或逻辑和运算电路(5)产生最终的检错结果。
Description
技术领域
本发明涉及数据传输***、特别是用于进行复合码等的多维代码纠错和检错***的纠错方法和检错装置、解码方法和解码装置。
背景技术
随着作为数字信号进行具有大信息量的图像信息等的记录再现或传输,为提高记录的信息或传输的信息的可靠性而进行纠错和检错变得更重要。特别是,必须进行实时记录或再现时,为对这样大量的信息进行纠错和检错,必须进行高速处理。
已有的数据传输***,如可记录再现的磁光盘装置,把由复合码构成的纠错码附加到接收到的数据上,在存储介质上进行数据的存储。
之后,在必要时把存储的数据调出到纠错装置,进行纠错后,用检错码(下面称EDC)进行检错,确认没有差错后输出到外部。
同样,在再现专用光盘装置中,也是在必要时把存储的数据调出到纠错装置,进行纠错后,用检错码(下面称EDC)进行检错,确认没有差错后输出到外部。
[纠错及检错中的问题]
已有的纠错方法中,例如DVD(数字多功能盘)中,从盘读出的数据被暂时存储在例如同步动态随机存取存储器(SDRAM)等外部半导体存储元件的缓冲存储器中。之后,由纠错装置调出数据进行纠错。
例如,在DVD中,把数据排列成长方形,使用附加了纵向(PO方向)和横向(PI方向)两个方向的纠错码的复合码。
图32是已有的DVD的纠错复合码的格式。
在排列成二维的172字节(Byte)×192行(row)的信息数据上,把附加了横向10字节(Byte)的奇偶校验码PI(内纠错码)和纵向的16字节(Byte)奇偶校验码PO(外纠错码)的数据作为1个数据块。在图32中,还把横向叫作PI方向,把纵向叫作PO方向。
图33表示图32所示的DVD的纠错复合码(内纠错码和外纠错码)与检错码(EDC)之间的关系。
上述的一个数据块被分为16个区段,一个区段由172字节×12行的数据排列构成,这些数据排列在其末端含有4字节的EDC。
图34表示含有检错码的1个区段的数据排列,这个排列从开头位开始以降序分布。
一个区段的数据排列成从位数据b16511到位数据b0的数据,位数据b31~b0对应于EDC。
图35是说明对于具有上述结构的DVD数据进行纠错和检错的第一已有示例的结构的简略框图。
参照图35,进行解码的基本模式例如按下面的步骤进行。
1)经数据总线3021输入的信号被存储在数据缓冲存储器(SDRAM:同步动态随机存取存储器)3024中,PI方向纠错电路3020从数据缓冲存储器3024读入PI方向的数据,计算差错特征信息符。
2)PI方向纠错电路3020从上述PI方向的差错特征信息符的值检出差错量和出错位置,对存储在数据缓冲存储器3024中的数据进行纠错。
3)接着,PO方向纠错电路3022从数据缓冲存储器3024读入PO方向的数据,计算差错特征信息符。
4)PO方向纠错电路3022从上述PO方向的差错特征信息符的值算出差错量和出错位置,对存储在数据缓冲存储器3024中的数据进行纠错。
通过反复上述处理来纠错。
5)这些纠错结束后,检错电路3023从数据缓冲存储器3024读取数据,使用检错码确认没有差错。
在进行以上的处理时出现的问题是在纠错后不再进行对数据缓冲存储器(SDRAM)3024的存取,为进行检错,就必须把更多时间花在纠错和检错处理上。
例如,在图35所示的结构中,由于在使用从数据缓冲存储器3024读出的数据进行纠错后,才从数据缓冲存储器3024把数据读入检错电路3023,这就使需要较长时间的对来自数据缓冲存储器3024的数据的读写次数变多,仅在这项处理中就需要花较长的时间。
为解决这个问题,有例如日本公开专利特开平11-55129号公报中公开的一种方法。
图36是说明日本公开专利特开平11-55129号公报中公开的进行纠错及检错的第二已有示例的结构的简略框图。
在图36所示的纠错及检错装置的结构中,采取纠错电路的数据总线和检错电路的数据总线为并用的结构。
图37、图38、图39和图40分别是表示图36所示的纠错及检错装置的处理简图的第一到第四概念图。
为说明简便起见,在图37、图38中,把进行检错的数据省略为10列×4行=40个。
使用图36所示的纠错和检错装置的检错分两个阶段进行。
在第一阶段,例如为PI方向的纠错处理而从缓冲存储器3034读入数据,根据图37所示的数据排列顺序传输到DATA差错特征信息符生成电路3036,计算出DATA差错特征信息符。
算出的DATA差错特征信息符被存储在存储元件3032中。
另一方面,在第一阶段中,除了DATA差错特征信息符的计算外,还使用由PI方向的纠错电路3030检测出的差错量,根据图37所示的数据排列顺序计算出ERROR差错特征信息符。
在第二阶段,进一步使用由PO方向的纠错电路3032检查出的差错量,根据图38所示的数据排列顺序计算出ERROR差错特征信息符的后续部分。
最后,如图39所示,异或逻辑和运算器3035计算这两个差错特征信息符,即DATA差错特征信息符和ERROR差错特征信息符的异或逻辑和,计算出最后的检查差错特征信息符。判断电路3031根据这个检查差错特征信息符判断误差检出结果。
因此,为生成检查差错特征信息符,由于不必要再次从数据缓冲存储器3034读入数据,所以能高速地并行进行纠错和检错处理。
另外,例如在PO方向的纠错电路3032中,计算纠错差错特征信息符时,例如在第3列(COL3)的码文中没有差错时,使省略本应接着进行的差错量和出错位置的检出作业,与该省略处理相对应,如图37所示,在计算ERROR差错特征信息符时,对于没有差错的码文,使用偏移值使运算高速化。
但是,为这种偏移值计算,在ERROR差错特征信息符生成电路3038中,分别对应于沿纵向逐行进行运算的情况、从某列开始向相邻的列移动处理的情况和从某列开始到跳过1列的列移动处理的情况,必须有具有与3种以上的差错特征信息符相关的运算通道的运算处理电路,出现电路规模增大的问题。
[差错特征信息符计算中的问题]
接着说明在进行纠错运算时的差错特征信息符运算中的其它问题。
如上所述,DVD等的已有的纠错***中,把数据排列成长方形,使用附加了纵向和横向两个方向的纠错码的复合码。
图41是表示实现上述的纠错计算的已有的纠错装置4000的结构的框图。
参照图41,在纠错装置4000中,纠错电路4022首先对读入到外部存储器4021的数据进行纠错。
纠错电路4022从外部存储器4021读入数据并进行纠错后,再次在外部存储器4021中写入纠错后的数据。
随后,全部的差错被修正后,在解密电路4023中接着进行解密运算。
解密电路4023从外部存储器4021读取数据,进行解密变换后,再次把解密后的数据写入外部存储器4021中。
即:进行解码的基本处理模式按如下顺序进行。
1.从外部存储器(如SDRAM)4021读入PI方向的数据,计算差错特征信息符。
2.由差错特征信息符的值算出差错量和出错位置,在外部存储器4021上进行纠错。
3.接着,从外部存储器4021读入PO方向的数据,计算差错特征信息符。
4.由差错特征信息符的值算出差错量和出错位置,对在外部存储器4021上存储的数据进行纠错。
反复进行这些处理,来纠错。
5.这些纠错结束后,再次从外部存储器4021读取数据(D′k:以D′k表示数据Dk被加密处理后的数据),解密电路4023根据下式进行解密处理。
Dk=D′k Exor Sk (k=0~2047) ……(A1)
这里,S0作为初始值由预先准备的表格给出。另外,使用由下式给出的数据Sk对数据D′k进行解密处理。
T0={7′d0,S0} … (A2)
Tn+1[14:0]
={Tn[13:1],(Tn[14]Exor Tn[10])} … (A3)
(n=0~8×2047)
Sk=T8k[7:0] … (A4)
这里,式(A2)中,“7′d0”表示7个并列的数据“0”,式(A2)的意思是把这7个“0”和作为初始值给出的S0连接起来,把第14位~第0位的15位数据作为T0。
式(A3)的意思是通过并列第n步骤中生成的数据Tn[14:0]中的第13位~第0位的数据Tn[13:0]、数据Tn[14:0]中的第14位的数据Tn[14]和第10位的数据Tn[10]的异或逻辑和运算结果,在第(n+1)步骤中生成由第14位~第0位的15位构成的数据Tn+1[14:0]。
式(A4)表示,在这样生成的数据Tn[14:0]中,在8的倍数的步骤中形成的数据T8k[14:0]的第7位~第0位的数据与数据Sk相当。
但是,图41所示的电路构成中,由于外部存储器的存取量庞大而时间花费长、高速化纠错和解密处理困难。
接着说明解决这种问题的已有技术。
图42是表示作为已有技术的在日本公开专利特开平10-126279号公报中公开的纠错装置5000的结构框图。
参照图42,首先,在差错特征信息符运算电路5032中对被读入外部存储器5031的数据进行差错特征信息符运算,该运算是纠错计算的一部分。
此时,所读入的数据同时被送到解密电路5033进行解密处理。结束了解密处理的数据被写入外部存储器5031。
之后,根据差错特征信息符运算得到的差错特征信息符被送到差错量计算部5034,计算出差错量和出错位置。差错量计算部5034从外部存储器5031读出对应于这个出错位置的数据,进行纠错后再次被写入外部存储器5031。
用这样的方法,外部存储器的存取量被减少了2/3,而并非充分减少。
没有考虑复合码特有的反复处理,很难有效地进行对实际的DVD等的纠错/解密处理。
即:在复合码中,通常要在各个方向(PO方向和PI方向)上进行反复数次的纠错。这里,由于进行纠错的差错特征信息符计算使用解密前的数据来计算,所以如图42所示,一旦进行解密处理,为了进行下次纠错,就必须对存储在外部存储器5031中的数据进行再加密,结果,运算量、电路规模都增大了。
[欧几里德计算中的问题]
下面进一步说明纠错运算中的欧几里德计算中的问题。
图43是说明已有的数据传输***,例如可记录再现的磁光盘装置中的纠错装置6000的结构的框图。
参照图43,数据传输***中,在应被记录的数据上附加由复合码构成的纠错码,并在记录媒体上进行数据存储。之后,存储在记录媒体中的数据必要时被作为接收数据提供给纠错装置6000,进行纠错后输出到外部。
这样的结构并不限于上述的可记录再现的磁光盘装置,在再现专用光盘装置中同样如此。
下面,以DVD为例,说明纠错处理。在DVD中,采用纠错能力强的里德·索罗门代码(RS码)纠错。
首先,为从盘向纠错装置6000送出而被调出的接收数据暂时存储在半导体存储元件,如SRAM(静态随机存取存储器)等的存储器6010中。之后,为了进行纠错处理,从存储器6010调出数据,按顺序进行下面的处理。
即:为了进行使用里德·索罗门代码的纠错,通常有下面的5个步骤。
(1)由差错特征信息符计算电路6020从接收数据计算差错特征信息符。
(2)欧几里德计算电路6030从差错特征信息符求出出错位置多项式、误差评价多项式。
(3)秦(Chien)检索电路6040从出错位置多项式求出出错位置。
(4)秦(Chien)检索电路6040从出错位置多项式、误差评价多项式和出错位置求出差错量。
(5)纠错电路6050使用出错位置和差错量进行纠错。
在按照纠错能力强的里德·索罗门代码的纠错中,作为在上述步骤(2)中从差错特征信息符求出出错位置多项式、误差评价多项式的方法之一,已知有应用求出2个多项式的最大公约数的欧几里德互除法的欧几里德算法。
下面对欧几里德算法进行详细说明。
上述的接收数据的接收多项式r(x)按下式表示。
r(x)=rn-1xn-1+rn-2xn-2+……+r1x+r0
…(B1)
这里,n是码长。
接着,由差错特征信息符计算求出的差错特征信息符多项式表示为下式。
S(x)
=S2t-1x2t-1+S2t-2x2t-2+……+S1x+S0
…(B2)
这里,t是可纠错的差错数,α是GF(B2)上的原始多项式的根。例如,在GF(28)的情况下,原始多项式的根的集合的组元以0,1,α1,α2,…,α6表示。
这里,出错位置多项式σ(x)定义为下式。
这里,E表示差错集合,i是集合E的要素。1i表示出错位置。
求差错特征信息符多项式和出错位置多项式σ(x)之间的关系时得到下式。
σ(x)·S(x)≡ω(x)mod x2t …(B5)
这里,在上式(B5)中,误差评价多项式ω(x)是如下表示的多项式。
这里j也是集合E的元素,1j也表示出错位置。
或者,把式(B5)换算成等价的式,表示如下。
φ(x)·x2t+σ(x)·S(x)=ω(x) …(B7)
这里,式φ(x)表示为下式。
所谓欧几里德解码算法是根据上述关系式(B7)求出出错位置多项式σ(x)和误差评价多项式ω(x)的方法。
即:差错个数在t个以下时,出错位置多项式σ(x)和误差评价多项式ω(x)能从上式(B7)以求出x2t和S(x)的最大公约多项式的欧几里德互除法唯一地求出。
下面对从上式(B7)求出出错位置多项式σ(x)和误差评价多项式ω(x)的过程简单进行归纳。
换言之,这样的过程可以求出满足式(B7)且彼此互素的t次以下的多项式σ(x)和t-1次以下的多项式ω(x)。
首先,对于多项式的递归公式Zi(x)表示如下。
Z-1(x)=x2t,Z0(x)=S(x) …(B9)
在该式(B9)的前提基础上,依次产生满足下式(B10)的多项式Xi(x),Yi(x),Zi(x),反复进行这样的动作,直到Yi(x)在t次以下,Zi(x)在t-1次以下为止。
Xi(x)Z-1(x)+Yi(x)Z0(x)=Zi(x)
…(B10)
这样生成的多项式Yi(x)、Zi(x)分别除以常数倍,就能够证明与出错位置多项式σ(x)和误差评价多项式ω(x)一致。但是,下面的说明中,继续以具有这样的一致性的情况来说明。
首先,Xi(x),Yi(x)的初始值如下设定。
X-1(x)=1,X0(x)=0 …(B11)
Y-1(x)=0,Y0(x)=1 …(B12)
这时,关于i=-1,0,式(B10)确实成立。
但是,由于作为Z-1(x)=x2t是t次以上的多项式,并且只要差错在t个以下,S(x)的次数便在t次以上,从而Z0(x)=S(x)也是t次以上的多项式。因此,Z-1(x)和Z0(x)的任何一个都不能存在于误差评价多项式ω(x)中。
因此,下面考虑在满足式(B10)的情况下降低Zi(x)的次数。
假定对于i(=1),下面的式(B13)和(B14)成立。
Xi-2(x)Z-1(x)+Yi-2(x)Z0(x)=Zi-2(x)
…(B13)
Xi-1(x)Z-1(x)+Yi-1(x)Z0(x)=Zi-1(x)
…(B14)
其中,假设Zi-1(x)比Zi-2(x)次数低。
此时,根据上式(B13)和式(B14),为了降低了次数,当把以Zi-1(x)除Zi-2(x)得到的商作为Qi(x)时,从式(B13)的两边减去式(B14)的两边乘以Qi(x)的乘积即可。
这样,根据式(B13)和(B14),就使Xi(x),Yi(x),Zi(x)与下面的表示相当。
Zi(x)=Zi-2(x)-Qi(x)Zi-1(x)
…(B15)
Xi(x)=Xi-2(x)-Qi(x)Xi-1(x)
…(B16)
Yi(x)=Yi-2(x)-Qi(x)Yi-1(x)
…(B17)
如果满足式(B13)和(B14),对于满足上式(B15)~(B17)的多项式Xi(x),Yi(x),Zi(x),也满足式(B10)。
而且,由于Zi(x)相当于Zi-2(x)除以Zi-1(x)时的余数,因此次数比Zi-1(x)低。式(B15)的这种处理对式(9)而言,正相当于求出x2t和S(x)的最大公约数的欧几里德互除法的处理。
图44是说明由这样的欧几里德互除法求出出错位置多项式σ(x)和误差评价多项式ω(x)的处理的流程图。
在图44中,作为例子,表示出(182,172,11)RS码的情况下的解码算法。
因此,变成用欧几里德互除法来求出式x2t=x10和以下式表示的差错特征信息符多项式S(x)的最大公约数。
S(x)=S9x9+S8x8+S7x7+S6x6+S5x5+S4x4+S3x3+S2x2+S1x1+S0 … (B18)
参照图7,开始以欧几里德互除法进行出错位置多项式σ(x)和误差评价多项式ω(x)的计算处理时(步骤S10),首先设定初始值。
首先,对应于x10的系数,把变量R0i(i=0,1,…,10)设定如下。
R010=1,R0i=0(i=0,1,…,9)
对应于S(x)的系数,变量R1i(i=0,1,…,9)设定如下。
R1i=Si(i=0,1,…,9)
另外,分别对应于Y-1(x)和Y0(x)的系数,变量B0i和B1i(i=0,1,…,5)设定如下。
B0i=0(i=0,1,…,5)
B1i=0(i=1,…,5),B10=1
如上初始设定处理结束(步骤S12)。
接着,求出把R0i作为系数的多项式的次数,作为N0,把这个多项式的最高次项的系数作为Q0。求出把R1i作为系数的多项式的次数,作为N1,把这个多项式的最高次项的系数作为Q1(步骤S14)。
N1和0进行比较(步骤S16),N1=0时,处理结束(步骤S30)。另一方面,N1不为0时,进行下面的处理。
进行DN=N0-N1运算,如果DN<0,标识符变量FN为1,DN≥0时,标识符变量FN为0(步骤S18)。
接着,进行特征变量FN与0的比较,FN=0时,处理移动到步骤S22,FN=1时,处理移动到步骤S28(步骤S20)。
首先,在步骤S20中,在FN=0时,进行下面的处理。
R1i=Q0*R1(i-DN)(i=0,1,…,9)
R0i=Q1*R0i (i=0,1,…,9)
R110=0
B1i=Q0*B1(i-DN)(i=0,1,…,5)
B0i=Q1*B0i (i=0,1,…,5)
其中,*运算表示对伽罗瓦体上的元素的乘法运算,(i-DN)为负时,在左边的R1i,B1i代入0(步骤S22)。
对于系数,进行下面的运算。
R0i=R0i exor R1i(i=0,1,…,9)
B0i=B0i exor B1i(i=0,1,…,5)
这里,运算exor表示异或逻辑和运算(步骤S24)。
接着,进行用变量R0i表示的多项式R0x的次数是否在t(在这个例子中为5)以下的判断(步骤S26)。如果多项式R0x的次数在t以下,处理结束(步骤S30),如果多项式R0x的次数不在t以下,处理移动到步骤S28。
因此,在步骤S20中,FN=0不成立时,或者在步骤S26中多项式R0x的次数不在t以下时,分别代入变量R0i的值和变量R1i的值,并且进行分别替代变量B0i的值和变量B1i的值的处理。这样替代后,处理返回到步骤S14(步骤S28)。
其它的里德·索罗门代码或更一般地说BCH码(Bose ChaudhurHpcquenghem code)中的欧几里德算法的计算相同。
在这样的计算中,必须有为进行*运算的计算专用的伽罗瓦体的乘法器。
但是,这时的问题是必须配置多个进行高速处理的乘法器。即,如果这些乘法器的个数多,就增大电路规模,处理速度可能会快。
乘法运算的次数减少也是必要的。乘法运算次数多时,就有消耗电能增多的缺点。
例如,原来,作为进行上述的欧几里德法的电路结构设置有1个乘法器,对处理如图44所示的算法时的电路规模和处理量估计如下。
乘法器的个数:1
乘法运算处理必要的步骤数:2×2t×2t
乘法运算次数:2×2t×2t
由于这时步骤的数目与t的2次方成比例,t变大时,就不能实现高速化。
因此,高速处理这样的欧几里德法的计算的电路结构公开在例如日本公开专利特开平1-276825号公报中。
日本公开专利特开平1-276825号公报中,对1个寄存器设置1个乘法器,可力图实现欧几里德法计算的高速化。
例如,可纠错数为t时,必要的最小寄存器个数是(2t+1)个。因此,日本公开专利特开平1-276825号公报公开的电路结构中,也可如下估计电路规模和处理量。
乘法器的个数:2×(2t+1)
乘法运算处理必要的步骤数:2t
乘法运算次数:2×2t×2t
这时,虽能实现高速化,但乘法器个数多、电路规模不能缩小。
高速处理这样的欧几里德法的计算的其它电路结构例如公开在日本公开专利特开平10-65552号公报中。
日本公开专利特开平10-65552号公报中,例如设置4个乘法器,可力图实现欧几里德法计算的高速化。
例如,可纠错数为t时,在日本公开专利特开平10-65552号公报公开的电路结构中,也可如下估计电路规模和处理量。
乘法器的个数:4
乘法运算处理必要的步骤数:2t×2t
乘法运算次数:2×2t×2t
由于这时步骤的数目也与t的2次方成比例,t变大时,出现不能实现高速化的问题。
另外,在上面说明的已有电路结构中,任何一个的乘法运算次数都是2×2t×2t,因此难以抑制电量消耗。
发明内容
本发明的目的是提供一种通过不增大电路规模、缩短存储元件的存取时间、以及与误差停止处理并行地进行检错处理,从而能够缩短检错处理时间的纠错装置。
本发明的另一个目的是提供一种可高速处理复合码的纠错和解密的解码装置。
本发明的又一个目的是提供一种不因乘法器个数增多而使电路规模增大且能缩短欧几里德处理所要时间的纠错装置和纠错方法。
本发明还有一个目的是提供一种通过抑制欧几里德处理中的乘法运算次数而能够降低电路的消耗电能的纠错装置和纠错方法。
简要地说,根据本发明的一种纠错装置,其特征在于,配备有对含有纠错码的被纠正数据进行纠错处理的纠错运算器,所述纠错码具有可进行数据块的第一方向和第二方向的纠错的复合码;所述第一方向是内码纠错方向、所述第二方向是外码纠错方向;所述数据块被分割为在所述第一方向和所述第二方向上排列的多个子块;所述纠错运算器含有对正所述复合码的第一方向检出差错量的第一纠错器,纠正所述第二方向的第二纠错器;可存储所述被纠正数据的第一存储元件;和使用对所述第一方向的差错量和在所述第一存储元件中存储的数据,算出第一纠错结果的第一逻辑运算器;还具有为确认所述纠错运算器的纠正不是误纠正而利用检错码进行检错的检错器;所述检错码是对所述数据块的第一方向的数据连续地设置的检错码,所述检错器含有根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的第一方向检错器;和使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的第二方向检错器;所述第二方向检错器包括接收并存储所述第一方向检错器的检查结果的第二存储元件;使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理算出部分检查结果的部分检错器;用以存储从所述部分检错器的输出的寄存器;对所述子块的每个列的依照所述第二递归公式的处理结果,通过进行依照所述第一递归公式的处理,而算出第二检查结果的总计检错器;和用于对所述第二存储元件中存储的所述第一方向检错器的检查结果和所述总计检错器的检查结果进行异或逻辑和运算,进行所述第二方向的纠错后的检错的第二逻辑运算器。
按照本发明的其它方案,一种纠错方法,其特征在于,备有下面的步骤:在将第一方向设为内码纠错方向、将第二方向设为外码纠错方向时,接收含有纠错码的被纠正数据进行对所述第一方向求出差错量的处理的步骤,所述纠错码具有可进行被分割为在所述第一方向和所述第二方向上排列的多个子块的数据块的所述第一方向和第二方向的纠错的复合码;依次使用纠错前的所述被纠正数据和对所述第一方向检出的差错量算出第一纠错结果的步骤;接收所述被纠正数据,对所述第二方向进行纠错处理的步骤;根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的步骤;使用在所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的步骤;进行所述第二方向的纠错后的检错的步骤含有在使用所述第二方向的纠错时检出的差错量对在第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,算出部分检查结果的步骤;对算出的多个所述部分检查结果通过进行按照所述第一递归公式的处理,进行总计,算出第二检查结果的步骤;和通过进行所述第一检错结果和总计后的所述第二检错结果的异或逻辑和运算进行所述第二方向的纠错后的检错的步骤。
根据本发明的其它方案,一种含有纠错用复合码的数据的解码装置,配置有控制器、第一存储元件、纠错器和解密部。
控制器控制解码装置的动作。第一存储元件暂时存储传送来的数据。纠错器对读入第一存储元件的数据进行纠错处理。解密部对存储在第一存储元件中的数据进行解密处理。控制器使纠错器对读入第一存储元件的数据进行纠错处理,把纠错处理后的数据传送到解密部,对纠错处理后的数据进行解密处理后,将数据写回到第一存储元件。
根据本发明的其它方案,一种解码装置,配置有控制器、第一存储元件、第一纠错器、解密部和第二纠错器。
控制器控制解码装置的动作。第一存储元件暂时存储传送来的含有纠错用复合码的数据。第一纠错器对从第一存储元件读入的数据进行第一方向的纠错处理。解密部对数据进行解密处理。第二纠错器接受第一方向的纠错处理结果,在第二方向上进行纠错处理。
控制器i)在对从第一存储元件读入的数据进行第一方向的纠错处理后使解密部对第一方向纠错后的数据进行解密处理、ii)把解密处理后的数据写回到第一存储元件、iii)与解密处理并行地使第二纠错器对存储在第一存储元件中的数据进行纠错后将其写回到第一存储元件。
根据本发明的其它方案,一种欧几里德计算器,配备有第一存储部、第二存储部、控制器、乘法器、选择器和逻辑运算器。
第一存储部在基于欧几里德算法逐步导出表示接收数据的差错量的误差评价多项式的系数的运算中存储对应于误差评价多项式的系数的第一数据,而且可进行第一数据的移位动作。第二存储部在基于欧几里德算法逐步导出表示接收数据的出错位置的出错位置多项式的系数的运算中存储对应于出错位置多项式的系数的第二数据,而且可进行第二数据的移位动作。控制器根据对应于接收数据的差错特征信息符多项式进行第一和第二存储部中存储的数据的初始设定,控制欧几里德算法处理。乘法器与第一和第二存储部一体设置,就欧几里德算法进行伽罗瓦体上的乘法运算。选择器由控制器控制,控制乘法器和第一与第二存储部之间的数据传送。逻辑运算器对于第一与第二存储部中存储的数据就欧几里德算法进行逻辑运算。
根据本发明的其它方案,一种欧几里德计算器,配备有第一评价多项式存储部、第二评价多项式存储部、控制器、存储部、乘法器、逻辑运算器和交换器。
第一评价多项式存储部保持运算过程中的第一系数数据,以便逐次执行根据欧几里德算法导出表示接收数据的差错量的误差评价多项式的系数的运算。第二评价多项式存储部保持导出误差评价多项式的系数的运算过程中的第二系数数据,并可进行第二系数数据的移位动作。控制器根据对应于接收数据的差错特征信息符多项式进行第一与第二系数数据的初始设定,控制欧几里德算法处理。存储部存储对应于第一系数数据的第一多项式的最高次项系数与对应于第二系数数据的第二多项式的最高次项系数的倒数的乘法运算结果。乘法器对于仅以第二评价多项式存储部中的第一多项式和第二多项式的次数差移位的第二系数数据的每一个乘上存储部的输出,再次在第二评价多项式存储部中存储乘法运算结果,作为第二系数数据。逻辑运算器将对于从乘法器再次被存储在第二评价多项式存储部中的第二系数数据和存储在第一评价多项式存储部中的第一系数数据分别进行异或逻辑和运算的结果存储在第一评价多项式存储部中,作为第一系数数据。在与第一系数数据对应的第一多项式不在预定次数以下的情况下或者说在第一多项式的次数比第二多项式的系数更大的情况下,交换器在第一评价多项式存储部和第二评价多项式存储部之间交换存储的数据。在第一多项式为预定次数以下的情况下,控制器把第一多项式判定为误差评价多项式。
根据本发明的其它方案,一种纠错方法,备有:根据与接收数据对应的差错特征信息符多项式,通过欧几里德法求出表示差错存在位置的出错位置多项式和表示差错量的误差评价多项式的步骤;和进行接收数据的纠错的步骤。
求出出错位置多项式和误差评价多项式的步骤包括以下步骤:把第一系数数据R0i(0≤i≤2t)作为R02t=1,R0i=0(0≤i≤2t-1),把第二系数数据R1i(0≤i≤2t-1)作为R1i=Si(0≤i≤2t-1),把第三系数数据B0i作为B0i=0(0≤i≤t),把第四系数数据B1i作为B1i=0(0≤i≤t),B10=1存储在存储部中的第0步骤;求出对应于第一系数数据R0i的第一多项式的次数N0和最高次数项系数Q0、求出对应于第二系数数据R1i的第二多项式的次数N1和最高次数项系数Q1,而把Q=Q0*(1/Q1)存储在存储部中的第一步骤;求出第一和第二多项式的次数差DN=N0-N1的第二步骤;次数差DN不足0的情况下,分别改换第一系数数据R0i的值和第二系数数据R1i的值,并且分别改换第三系数数据B0i的值和第四系数数据B1i的值后,把处理移动到第一步骤的第三步骤;对于第二系数数据,在(i-DN)大于0的情况下,把第二系数数据R1i作为R1i=Q*R1(i-DN)(0≤i≤2t-1)存储在存储部中、在(i-DN)为负时,把第二系数数据R1i作为0存储在存储部中的第四步骤;对于第四系数,在(i-DN)不为负的情况下,把第四系数B1i作为B1i=Q*B1(i-DN)(0≤i≤t)存储在存储部中、在(i-DN)为负时把第四系数B1i作为0存储在存储部中的第五步骤;对于第一系数数据和第二系数数据,进行
R0i=R0i exor R1i(0≤i≤2t-1)
R12t=0的运算,对于第三系数和第四系数进行
B0i=B0i exor B1i(0≤i≤t)的运算的第六步骤;由第一系数数据R0i表示的第一多项式的系数不在t以下时,进行分别改换第一系数数据R0i的值和第二系数数据R1i的值,并且分别改换第三系数B0i的值和第四系数B1i的处理,并把处理移动到第一步骤的第七步骤。
进行接收数据的纠错的步骤中,在第一多项式的次数在t以下时,把误差评价多项式作为第一多项式、把出错位置多项式作为由第三系数B0i表示的第三多项式,算出出错位置和差错量。
因此,本发明的优点在于不增加存储元件也不增大电路规模、就能够缩短对存储元件的存取时间、并通过与纠错处理并行地进行检错处理,能够缩短检错处理需要的时间。
本发明的其它优点在于由于使用从数据缓冲存储器读入的纠错后的数据进行解密处理而能够把对缓冲存储器的存取减少1/2,因而可对应于数据的高速处理。
本发明的其它优点在于由于构成为在复合码处理时,通过以解密处理前的数据计算外码的差错特征信息符、以解密后的数据进行纠错来把对缓冲存储器的存取抑制到最小限度的处理,可有效地进行高速处理。
本发明的其它优点在于实现了抑制进行求出出错位置多项式和差错量多项式的欧几里德算法的运算的电路的面积和消耗电能的增加,从而能够实现进行高速的纠错处理的纠错装置。
附图说明
图1是表示配置有本发明的纠错和并行检查装置的盘再现装置1000的结构的简略框图;
图2是说明图1所示的解码电路147的结构的简略框图;
图3是说明解码电路中的异或逻辑和电路9的动作的概念图;
图4是表示检错处理中的数据处理单位的排列的概念图;
图5是表示纠错和检错处理中处理的数据排列的顺序的第一概念图;
图6是表示纠错和检错处理中处理的数据排列的顺序的第二概念图;
图7是说明纠错和检错的处理流程的流程图;
图8是说明图7所示的步骤S110的PI方向检错处理的流程图;
图9说明图7所示的PO方向检错处理的第一流程图;
图10说明图7所示的PO方向检错处理的第二流程图;
图11是说明PO方向部分检错电路8的结构的简略框图;
图12是说明PO方向部分检错电路8和寄存器7以及PO方向总计检错电路6进行的动作的第一流程图;
图13是说明PO方向部分检错电路8和寄存器7以及PO方向总计检错电路6进行的动作的第二流程图;
图14是说明PO方向部分检错电路8的结构的简略框图;
图15是说明PO方向部分检错电路8和寄存器7以及PO方向总计检错电路6进行的动作的第一流程图;
图16是说明PO方向部分检错电路8和寄存器7以及PO方向总计检错电路6进行的动作的第二流程图;
图17是表示配备纠错和解密电路的盘再现装置1002的结构的简略框图;
图18是表示DVD上的纠错复合码的格式的概念图;
图19是说明解码电路1100的结构的框图;
图20是说明解密电路13的结构的框图;
图21是说明解码电路1200的结构的简略框图;
图22是说明解码电路1200的动作的流程图;
图23是表示图2所示的一个数据块的数据中的数据排列的概念图;
图24是表示第一差错特征信息符计算电路1042的结构的框图;
图25表示差错特征信息符用存储元件1044和第二差错特征信息符计算电路1045的结构的框图;
图26是说明解码电路1300的结构的概略框图;
图27是说明解码电路1300的动作的流程图;
图28是说明纠错电路200的结构的简略框图;
图29是说明欧几里德计算电路2000的结构的简略框图;
图30是欧几里德计算电路2000中拿出来点线包围的区域PP表示的框图;
图31是表示欧几里德计算电路2000的处理的流程的流程图;
图32是已有的DVD纠错复合码的格式;
图33表示DVD的纠错复合码和检错码(EDC)的关系;
图34表示含有检错码的一个扇区的数据排列,从开头位开始以降序分配号码;
图35是说明对于DVD数据进行纠错和检错的第一已有示例的结构的简略框图;
图36是说明第二已有示例的结构的简略框图;
图37是表示图36所示的纠错及检错装置的处理简图的第一概念图;
图38是表示图36所示的纠错及检错装置的处理简图的第二概念图;
图39是表示图36所示的纠错及检错装置的处理简图的第三概念图;
图40是表示图36所示的纠错及检错装置的处理简图的第四概念图;
图41是表示已有的纠错装置4000的结构的简略框图;
图42是表示已有的纠错装置5000的结构的简略框图;
图43是说明已有的纠错装置6000的结构的简略框图;
图44是说明已有的欧几里德算法的处理流程的流程图。
具体实施方式
[实施例1]
[盘再现装置1000的结构]
图1是表示配置有本发明的纠错和并行检查装置的盘再现装置1000的结构的简略框图。
参照图1,控制电路144的信号读取电路142解调由驱动器驱动电路149驱动的驱动器141从盘读取的数据。伺服电路143根据在信号读取电路142中读取的信号控制驱动器驱动电路149。
来自盘的数据在信号读取电路142被解调后被传送到解码电路147中的数据缓冲存储器14。纠错电路200把传送来的数据纠错后,由检错电路146确认没有差错后被实施解密处理,信息数据经接口148被传送到主PC。
下面的说明中以DVD为例,对与DVD上记录的数据对应的复合码的纠错和并行检查装置与方法进行说明,但是本发明并不限定于这种情况,如图18所示,可适用于:对于1个数据块的数据配置纠错复合码,并且对于在这一个数据块中的每一区段上配置规定的检错码的数据的复合码的纠错和并行检查装置与方法。
[复合码的纠错和并行检查装置的结构]
图2是说明图1所示的解码电路147的结构的简略框图。图3是说明解码电路中的异或逻辑和电路9的动作的概念图。
下面使用图2进行解码电路147的结构和动作的说明。
解码电路147的处理的第一步骤中,经数据总线13把从信号读取电路142输入的数据传送到数据缓冲存储器14。这里,例如把SDRAM作为数据缓冲存储器14使用。
处理的第二步骤中,数据缓冲存储器14读取的数据被传送到第一方向(PI方向)的纠错电路10。并且,并行地把相对于例如数据块的至少1行数据保存在存储元件11中。
在第三步骤中,经异或逻辑和电路9从存储元件11向PI方向的检错电路3传送数据排列。关于这些数据中的由PI方向纠错电路10检出了差错的数据,由PI方向纠错电路10输出差错量,如图3所示,由异或逻辑和电路9计算这些数据的异或逻辑和,纠了错的数据排列被传送到PI方向的检错电路3。
在第四步骤中,从PI方向检错电路3算出的检查结果数据被传送到PI方向判定电路1。
这里,如后面具体说明的那样,所谓检查结果是例如{I(x)mod g(x)}Exor EDC等的计算结果。
在PI方向检错电路3算出的检查结果数据由存储元件2保存,用于判定后面说明的PO方向的检错结果。
在第五步骤中,从数据缓冲存储器14向PO纠错电路12传送数据排列,进行PO方向的纠错。
在这个实施例中,为提高纠错的处理速度,设置成分别配置有PI方向的纠错电路10和PO方向的纠错电路12的结构。
此时,关于被检出差错的数据,由PO方向的纠错电路12输出差错量,关于无差错的数据,从PO方向的纠错电路12把差错量作为0的数据排列传送到PO方向的部分检错电路8。
在部分检错电路8中,如后面详细说明的那样,计算每一列的检查结果,在寄存器7中保持该结果。
由于可在第三步骤的PI方向的纠错结束的同一时刻,经数据总线13从PO方向的纠错电路12对数据缓冲存储器14进行存取,因此,上述说明的第五步骤也可以在第三步骤的PI方向的纠错结束的同一时刻开始。
在第六步骤中,把PO方向的部分检错电路8计算的结果从寄存器7调出,在PO方向总计检错电路6中进行PO方向的检错的行方向上的汇总。
在异或逻辑和电路5中运算这些电路高速计算的结果和保存在存储元件2中的PI方向的检错结果的异或逻辑和,把其结果传送到PO方向误差判定电路4进行判定。
在第七步骤中,如上面说明的那样,按照复合码进行纠错,根据主机要求把数据缓冲存储器14上的表示检查结果没有差错的信息数据传送到主机PC。
由于这些PI方向和PO方向的检错基本上分别与PI方向和PO方向的纠错并行地进行,因此处理速度非常高,并且由于无论PI方向和PO方向哪一个方向的纠错执行后也并行地结束检查,所以在PI方向和PO方向的任一方向的纠错执行后,如果在检查结果中判断为没有异常,可直接把信息数据向主机传送。
在上面的说明中,是对PI系列的纠错和PO系列的纠错各进行一次的结构来说明的,但是本发明并不限定于这样的结构,即使是这些PI系列的纠错和PO系列的纠错进行2次以上的纠错装置,本发明也可适用。
[出错计算方法的细节]
接着说明本发明的差错计算的计算方法的细节。
图13所示的单位区段由16512个1位数据形成,使用这些数据把作为第i个区段的EDC的EDCi用下式表示。
下面bj是图13所示的1位数据。
g(x)=x32+x31+x4+1 …(3)
即:进行以多项式g(x)除以由数据计算的多项式I(x)时得到的余数(检查差错特征信息符)如果等于EDCi(x),则表示没有差错。
图4是表示对于图18所示的数据结构中除奇偶校验数据之外的16个区段的检错处理中的数据处理单位的排列的概念图。
在图4中,每个区段对应于处理数据的单位为4字节(Byte),这样的每一个4字节的数据以i作为区段序号、以j作为列序号和以k作为行序号,表示为data_ijk。这里,i,j,k分别是正整数,0≤i≤15、0≤j≤42、0≤k≤11。
图5和图6是表示下面说明的纠错和检错处理中处理的数据排列的顺序的第一和第二概念图。
如上述图5和6所示,进行检错的1个区段内的数据处理单位的个数是43×12=516个,各个数据单元data_ijk是32位(8位×4)的值。
用这样的符号,基本上可进行例如以DVD的格式的验证。下面说明图5和6所示的数据结构的纠错。
以I(i,j,k)表示对应于各个数据单位data_ijk的多项式时,对于第i区段的EDCi按照下式的定义计算。
EDCi(x)
=I(i,42,11)
=I(x)mod g(x) …(4)
I(x)
=I(i,0,0)×x32×515+I(i,1,0)x32×514
+…+I(i,42,0)×x32×473+I(i,0,1)×x32×472+…+I(i,41,11)×x32
…(5)
这里,bjikm表示在图13所示的数据排列中与数据单元data_ijk对应的位数据中从下面位开始的第m位的1位数据。
因此,如果{I(x)mod g(x)}Exor I(i,42,11)为0,表示这第i个区段没有差错。这里记号Exor取为:执行2个相同次数的多项式的系数之间的异或逻辑和运算,再列出以上述运算的结果为系数的多项式的运算。
这里,使用与以下的多项式Y相对的函数fpi对上述计算进行变形。
fpi{Y}={Y×x32}mod g(x) …(7)
使用这样的函数fpi后,上述计算便可作为以下的反复运算来执行。F(i,1,0)
=fpi{I(i,0,0)}Exor I(i,1,0)F(i,2,0)
=fpi{F(i,1,0)}Exor I(i,2,0)F(i,0,1)
=fpi{F(i,42,0)}Exor I(i,0,1)F(i,42,11)
=fpi{F(i,41,11)}Exor I(i,42,11)
={I(x)mod g(x)}Exor I(i,42,11)
…(8)
因此,如果F(i,42,11)为0,表示这第i个区段没有错误。
这里运算fpi与图5的一个矢量的运算相当。这些运算能通过表格化等来高速实行。
另外,第i个区段的上式(8)的计算可使用与下述多项式Y相对的函数fpo来变形。
fpo{Y}={Y×x32×43}mod g(x)
…(9)
例如,可变形为下面的两类反复计算。
i)第1类计算:
G(i,j,1)=fpo{I(i,j,0))Exor I
(i,j,1)
G(i,j,2)=fpo{G(i,j,1)}Exor I
(i,j,2)
G(i,j,11)=fpo{G(i,j,10)}Exor
I(i,j,11)
…(10)
ii)第2类计算:
H(i,1,11)=fpi{G(i,0,11)}Exor
G(i,1,11)
H(i,2,11)=fpi{H(i,1,11)}Exor
G(i,2,11)
H(i,42,11)= fpi{H(i,41,11)}Ex
or G(i,42,11)
={I(x)mod g(x)}Exor I(i,42,11)
…(11)
这里,第1类运算对应于图2所示的PO方向部分检错电路8进行的处理,第2类运算对应于PO方向总计检错电路6进行的处理。
这里表示仅使用图6所示的列数据,PO方向的部分检错电路8计算部分差错特征信息符,之后,根据来自PO方向部分检错电路8的结果,通过PO方向总计检错电路6的汇总运算,便可进行检错。
这种运算可以由仅使用第2类fpi和fpo的电路构成。
因此,在图6中,这种运算fpi表示PI方向的矢量运算,fpo表示PO方向的矢量运算。
某列j没有差错时,G(i,j,11)不必要作计算,由于值为0,使得与图19所示的3类差错特征信息符运算对应的多余电路不再必要,就能非常简单地进行高速运算。
[纠错和检错处理流程]
图7是说明以上说明的纠错和检错的处理流程的流程图。
参照图7,首先,一旦开始纠错和检错的处理(步骤S100),控制变量CNT的值被初始化为0(步骤S102)。
接着,变量CNT的值仅被增加1(步骤S104),从数据缓冲存储器14向PI方向纠错电路10提供数据(步骤S106),根据算出的差错特征信息符,进行PI方向的纠错处理(步骤S108)。
一旦PI方向的纠错处理结束,接着在PI方向检错电路3中进行PI方向的检错(步骤S110)。
判断PI方向的检错结果、对全部区段的PI方向的检错结果EDCPIi(i=0~15)是否为0(步骤S112)。对于全部区段,如果PI方向的检错结果EDCPIi为0,以全部差错已被纠正来结束处理(步骤S122)。
另一方面,即使有1个区段的PI方向的检错结果EDCPIi不为0时,也从数据缓冲存储器14把数据提供给PO方向纠错电路12(步骤S114)。
进行PO方向的纠错处理(步骤S116)且PO方向的纠错结束时,接着在PO方向部分检错电路8和PO方向总计检错电路6实行PO方向的检错(步骤S118)。
判断PO方向的检错结果、对全部区段的PO方向的检错结果EDCPOi(i=0~15)是否为0及控制变量CNT的值是否为2(步骤S120)。对于全部区段,如果PO方向的检错结果EDCPOi为0,以全部差错已被纠正来结束处理,或者变量CNT=2时,以必要次数的处理已结束来结束处理(步骤S122)。
另一方面,如果全部区段的PO方向的检错结果EDCPOi不是0,且变量CNT=2不成立,处理返回步骤S104(步骤S120)。
在上面的说明中,PI方向的检错结束后,进行PO方向的纠错处理,但是也可以在PI方向的纠错结束后,并行进行PO方向的纠错处理。
纠错和检错可进行2次,但是根据***的动作条件这个次数也可以是1次或3次以上。
图8是说明图7所示的步骤S110的PI方向检错处理的流程图。
首先,开始PI方向检错处理(步骤S200),接着,初始化表示区段序号的区段序号变量i(i:正整数)的值为0(步骤S202)。
接着,处理移动到处理循环LB201~LE201,该循环进行16个区段的EDC检查。即,从处理循环LB201到LE201的处理直到对16个区段都进行了处理才结束(循环LB201到LE201)。
首先,把对于第i区段的区段EDC值变量EDCPIi的值初始化为0,也把行序号变量k值初始化为0(步骤S204)。这里,区段EDC值变量EDCPIi是进行式(8)所示的计算的变量。
接着,处理移动到进行各个区段内的EDC检查的处理循环LB202~LE202。即,处理循环LB202到LE202的处理直到对区段的全部数据都进行了处理才结束(循环LB202~LE202)。
首先,把列序号变量j的值初始化为0(步骤S206)。
接着,处理移动到进行各个扇区内的每个行的处理的处理循环LB203~LE203。即,处理循环LB203到LE203的处理直到对1个数据处理单位内的行中含有的全部数据处理单位的列都进行了处理才结束(循环LB203~LE203)。
在处理循环LB203~LE203中,PI方向检错电路3在PI方向上读取每4个字节的数据,将其代入变量data_ijk(步骤S208)。
接着,根据上式(8)进行运算
EDCPIi
=fpi{EDCPi}Exor data_ijk
…(12)
接着,变量j的值仅被增加1,处理移动到数据处理单位的下一列(步骤S212)。
对于1个数据处理单位的行上含有的全部的数据处理单位的列反复进行步骤8208~S212的处理(循环LB203~LE203)。
接着,变量k的值仅被增加1,处理移动到数据处理单位的下一行(步骤S214)。
直到对区段内的数据的处理结束之前都反复进行步骤S206~S214的处理(循环LB203~LE203)。
1个区段的处理结束后,变量i的值仅被增加1,处理移动到下一个区段(步骤S216),处理再次返回到步骤S202。直到全部区段的处理结束之前都在反复进行从步骤S202到步骤S216的处理(循环LB201~LE201)。
对全部区段的处理结束后,PI方向检错处理结束(步骤S218)。
图9和图10是说明图7所示的PO方向检错处理的步骤S118的第一和第二流程图。
首先,一旦PO方向检错处理开始(步骤S300),就把列序号变量j的值初始化为0(步骤S302)。
接着,处理移动到进行与全部的列对应的部分检错的处理循环LB301~LE301。即,处理循环LB301到LE301的处理直到对全部的列都进行了处理才结束(循环LB301~LE301)。
首先,把区段号变量i的值初始化为0(步骤S304)。
接着,处理移动到进行对应各列的部分检错的处理循环LB302~LE302。
首先,把表示每一列的区段EDC值的区段EDC值变量EDCPOij的值和行序号变量k值的初始化为0(步骤S306)。这里,区段EDC值变量EDCPOij是进行式(10)所示的1类计算的变量。但是,通过下面的说明,在图9所示的处理中,使用式(10)表示的数据但不进行按原样的处理,使使用差错量被处理简单化。
即,接着,处理移动到进行各个区段的部分检错的处理循环LB303~LE303(循环LB303~LE303)。
在处理循环LB303~LE303中,PO方向部分检错电路8沿PO方向每4个字节读取在检出差错的位置以外的其他位置上配置0的数据,并在检出差错的位置把其差错量代入变量data_ijk(步骤S308)。在检查的列上没有检出差错时,可省略处理循环LB302~LE302。
接着,根据上式(10)进行运算:EDCPOij
=fpo{EDCPOij}Exor data_ijk
…(13)
行序号变量k的值仅被增加1,处理移动到下一行(步骤S312)。
直到对第i个区段的第j列内的数据的处理结束为止,都反复进行步骤S308~S312(循环LB303~LE303)。
第i个区段的第j列的处理结束后,变量i的值仅被增加1,处理移动到下一区段(步骤S314),处理再次返回到步骤S306。直到对15个区段的第j列的处理结束为止,反复进行从步骤S306到步骤S314的处理(循环LB302~LE302)。
对全部的区段的第j列的处理结束后,变量j的值仅被增加1,处理移动到下一列(步骤S316),处理再次返回到步骤S304。直到对42个列的处理结束为止,反复进行从步骤S304到步骤S316的处理(循环LB301~LE301)。
参照图10,循环LB301~LE301的处理结束后,接着把变量i的值增加1(步骤S320)。
接着,处理移动到进行总计检错的处理循环LB304~LE304。即,直到对全部的区段进行过处理为止,反复进行从处理循环LB304到LE304的处理(循环LB304~LE304)。
接着,把对应于第i区段的EDC值变量EDCPOi的值和变量j的值初始化为0(步骤S322)。
接着,处理移动到进行对应于各个区段的总计检错的处理循环LB305~LE305。
在处理循环LB305~LE305中,PO方向总计检错电路6根据上式(11)在PI方向上进行下面的运算和代入处理(步骤S324):EDCPOi
=fpi{EDCPOi}Exor EDCPOij
…(14)
接着仅变量j的值被增加1,处理移动到下一列(步骤S326)。
直到对处理中的区段的全部的列的处理结束为止,反复进行步骤S324~S326(循环LB305~LE305)。
一旦对第i区段的全部列的处理结束,接着就由异或的逻辑和运算器5进行下面的运算处理(步骤S328):
EDCPOi=EDCPIi Exor EDCPOi这样,第i区段是否有差错存在的判定就由PO方向判定电路4来进行。
控制变量i的值仅被增加1(步骤S330),处理移动到下一区段,处理再次返回到步骤S322。直到最后区段的处理结束为止,一直反复进行从步骤S322到步骤S330的处理(循环LB304~LE304)。
一旦循环LB304~LE304的处理结束,纠错、检查处理结束,移动到下一个处理(图7的处理步骤S120)(步骤S320)。
[实施例2]
在实施例1的说明中,作为检错对象的单位区段由如图19所示的16512个数据(bi)形成,使用这些数据用式(1)~(3)表示对第i区段的EDCi。
在实施例1中的构成为:计算式(1)表示的该EDCi(x),用式(9)定义的函数fpo使运算简单化,如图9的步骤S310说明的那样,图2所示的PO方向部分检错电路8进行由式(13)表示的运算。
下面为简化说明,由下式(15)表示由函数fpo进行的处理。
fpo{Jk(x)}={Jk(x)×x43×33}mod{g(x)} …(15)
这里,Jk(x)是31次多项式。
因此,为执行式(15),可使用32位的运算器。但是,在实施例2中,结构为:为再提高运算速度,预先准备有232种对于数值的运算结果的表,根据这个表进行对应于式(15)的运算处理。
如式(10)所示,作为Jk(x)例如被代入用式(6)表示的式子。
图11是说明以这样的结构实现的PO方向部分检错电路8的结构的简略框图。
参照图11,PO方向部分检错电路8包括有:接收PO方向纠错电路12的输出的异或逻辑和运算电路82;和接收异或逻辑和运算电路82的输出、根据对应于上述对32位数据的232种运算结果的表,输出以式(15)表示的运算结果的表变换电路84;和接收并暂时保持表变换电路84的输出的寄存电路86。
异或逻辑和运算电路82顺序接受由BO方向纠错电路12给出的I(i,j,k)(k=1~11),并把与保持在寄存电路86中的第一步骤前的表变换电路84的输出之间的异或逻辑和运算结果再次提供给表变换电路84。
即,由异或逻辑和运算电路82、表变换电路84和寄存电路86构成的处理循环可进行相当于式(10)的运算。
图12和图13是说明图11所示的PO方向部分检错电路8和寄存器7以及PO方向总计检错电路6进行的动作的流程图,是与实施例1的图9和图10相对比的图。
图12和图13所示的处理与图9所示的处理的不同点在于在步骤S310’中,对于由BO方向纠错电路12给出的数据data_ijk和异或逻辑和运算电路82对寄存电路86保持的数据进行异或逻辑和运算的结果,通过由表变换电路84进行变换处理,更新EDCPOij的值,进行再次提供给寄存电路86的处理。
由于其他与图9和图10所示的处理相同,因此对相同的部分给出相同的标号,并省略了对它们的说明。
按照上面的构成,由于PO方向部分检错电路8根据预先设置的表进行更新变量EDCPOij的值的处理,所以使运算处理高速化,并缩短了纠错时间。
[实施例3]
在实施例2中,对于表变换电路84的运算处理结构进行了说明,该表变换电路84根据预先计算的结果生成的表对PO方向部分检错电路8进行的处理,也就是式(15)表示的处理作运算处理。
在实施例3中,就更高速地进行式(15)表示的运算处理的结构进行说明。
实施例3的解码电路的结构也和图2所示的解码电路147的结构基本相同。如以下说明的那样,PO方向部分检错电路8的结构不同。
即,在式(15)中,式Jk(x)可分解为下面的式(16)。
Jk(x)=Jk·0(x)×x24+Jk·1(x)×x16+Jk·2(x)×x8+Jk·3 …(16)
即,Jk(x)可分为4份。
使用式(16)时,式(15)可变形为下面的式(17)。
fpo{Jk(x))=
={Jk·0(x)×x24×x43×32}mod{g(x)}+{Jk·1(x)×x16×x43×32}mod{g(x)}+{Jk·2(x)×x3×x43×32}mod{g(x)}+{Jk·3(x)×x49×32}mod{g(x)} …(17)
因此,可通过设计4个表变换电路和3个异或逻辑和运算器来进行运算处理,所述表变换电路对应于式(17)的各项根据后面说明的预先准备好的28种表进行PO方向部分检错的运算处理,所述异或逻辑和运算器对上述4个变换电路的输出进行异或逻辑和运算。
图14是说明具有这种结构的PO方向部分检错电路8的结构的简略框图。
参照图14,实施例3的PO方向部分检错电路8含有:接收PO方向纠错电路12来的数据data_ijk的异或逻辑和运算电路802;和接收异或逻辑和运算电路802的输出并分成各8位数据的数据分割电路804;和分别接收数据分割电路804输出的每个8位的数据,根据28种表分别进行计算的表变换电路810,812,814和816,所述28种表已经预先将对应于式(17)的各项的运算作了计算;和接收表变换电路810和812的输出而输出异或逻辑和运算结果的异或逻辑和运算电路820,和接受表变换电路814及816的输出,并输出异或逻辑和运算结果的异或逻辑和运算电路822,和接收异或逻辑和运算电路820及822的输出而对于图2所示的寄存器7输出异或逻辑和运算结果的异或逻辑和运算电路824以及接收异或逻辑和运算电路824的输出暂时进行存储的寄存器826。
异或逻辑和运算电路802接收来自PO方向纠错电路12的数据data_ijk和来自寄存器826的输出,进行异或逻辑和运算处理并将结果提供给数据分割电路804。
图15和图16是说明图14所示的实施例3的PO方向部分检错电路8和图2所示的寄存器7以及PO方向总计检错电路6进行的处理的流程图。
参照图15和图16,首先,一旦PO方向检错处理开始(步骤S400),列序号变量j的值就被初始化为0(步骤S402)。
接着,处理移动到对全部的列进行部分检错处理的处理循环LB401~LE401。即,处理循环LB401到LE401的处理直到对全部的列进行了处理才结束(循环LB401~LE401)。
首先,把区段的序号变量i的值初始化为0(步骤S404)。
接着,处理移动到进行对应于各列的部分检错的处理循环LB402~LE402。
首先,把表示每列的区段EDC值的区段EDC值变量EDCPOij的值和行序号变量k的值都初始化为0(步骤S406)。这里,区段EDC值变量EDCPOij是进行以式(17)表示的计算的变量。其中,与图9所示的处理相同,式(17)处理的仅是对应于误差行的数据。
接着,处理移动到进行每个区段的部分检错的处理循环LB403~LE403(循环LB403~LE403)。
在处理循环LB403~LE403中,PO方向部分检错电路8在每个PO方向上每4个字节在检出误差的位置上读取其差错量、在其他位置上读取配有0的数据,数据分割电路804从该数据的前面开始每1个字节分割一次这个数据。下面把每一个这样分割的1字节的数据表示为变量H1~H4(步骤S408)。对应于这样的处理,把与每一个变量H1~H4对应的值提供给表变换电路810~816。
表变换电路810从数据分割电路804接收对应于变量H1的数据,根据与此对应的表(运算表)进行变换,从开头数的1字节变换为等于该变换后的值、剩余的3个字节的位数据变换为全部对应于0的4个字节的值,并进行输出。把表变换电路810输出的数据表示为HA(步骤S410)。对应于这种处理,表变换电路810的输出被提供给异或逻辑和运算电路820。
表变换电路812从数据分割电路804接收对应于变量H2的数据,根据与此对应的表(运算表)进行变换,并且变换为从头开始的第2个字节的1个字节的数据等于该变换后的值、剩余的3个字节的位数据全部对应于0的4个字节的值来输出。表变换电路812输出的数据表示为HB(步骤S412)。对应于这种处理,表变换电路812的输出被提供给异或逻辑和运算电路820。
表变换电路814从数据分割电路804接收对应于变量H3的数据,根据与此对应的表(运算表)进行变换,并且变换为从头开始的第3个字节中的1个字节的数据等于这个变换后的值、剩余的3个字节的位数据全部对应于0的4个字节的值来输出。表变换电路814输出的数据表示为HC(步骤S414)。对应于这种处理,表变换电路814的输出被提供给异或逻辑和运算电路822。
表变换电路816从数据分割电路804接收对应于变量H4的数据,根据与此对应的表(运算表)进行变换,并且变换为从头开始的第4个字节中的1个字节的数据等于这个变换后的值、剩余的3个字节的位数据全部对应于0的4个字节的值来输出。表变换电路816输出的数据表示为HD(步骤S416)。对应于这种处理,表变换电路816的输出被提供给异或逻辑和运算电路822。
接着,区段EDC值变量EDCPOij的值由异或逻辑和运算电路820、822和824按下式(18)的处理来运算(步骤418)。
EDCPOij=(HA)Exor(HB)Exor(HC)Exor(HD)…(18)
行序号变量k的值仅被增加1,处理移动到下一行(步骤S420)。
直到对第i区段的第j列内的数据的处理结束为止,一直反复进行步骤S408~S412的处理(循环LB403~LE403)。
参照图16,一旦第i区段的第j列的处理结束,变量i的值仅被增加1,处理移动到下一个区段(步骤S422),处理再次返回到步骤S406。直到对第15区段的第j列的处理结束为止,一直反复进行步骤S406到步骤S422的处理(循环LB402~LE402)。
一旦全部区段的第j列的处理结束,变量j的值仅被增加1,处理移动到下一列(步骤S424),处理再次返回到步骤S404。直到对第42列的处理结束为止,一直反复进行步骤S404到步骤S424的处理(循环LB401~LE401)。
循环LB401~LE401的处理结束后,变量i的值回0(步骤S430)。
接着处理移动到进行总计检错的处理循环LB404~LE404。即,直到对全部的区段的处理结束为止,一直反复进行从处理循环LB404到LE404的处理(循环LB404~LE404)。
然后,将与第i个区段对应的EDC值变量EDCPOi的值和变量j的值初始化为0(步骤S432)。
接着处理移动到进行对各个区段的总计检错的处理循环LB405~LE405。
在处理循环LB405~LE405中,PO方向总计检错电路6在PI方向上根据上面的式(11)进行下面的运算和代入处理(步骤S434):EDCPOi
=fpi{EDCPOi}Exor EDCPOij
…(14)
接着变量j的值仅被增加1,处理移动到下面一列(步骤S436)。
直到对处理中的区段的全部列的处理结束为止,一直反复进行处理步骤S434~S436的动作(循环LB405~LE405)。
对于第i区段的全部列的处理一结束,接着由异或逻辑和运算器5进行下面的运算处理(步骤S438):
EDCPOi=EDCPIi Exor EDCPOi这样,由PO方向判定电路4进行第i区段中是否存在差错的判定。
控制变量i的值仅被增加1(步骤S440),处理移动到下一个区段,处理再次返回到步骤S432。直到最后的区段的处理结束为止,一直反复进行处理步骤S432~S440的处理(循环LB404~LE404)。
一旦循环LB404~LE404的处理结束,纠错、检查处理就结束,移动到下面的处理(图7的处理步骤S120)(步骤S442)。
按照以上的处理,也可进行PO方向部分检错电路8的处理,而且,由于使用把PO方向部分检错处理分成每个8位的表且进行并行处理,可更高速地进行处理。
这里,一般地,函数fpo把原来的数据作为n位,把数据的分割数目作为m(m是n的约数)时,作为表的大小需要有对应于2(n/m)个数据的大小,表的数目只需要m个。异或逻辑和运算器的数目为(m-1)个。
因此,使用根据这样分割的表计算的表变换电路,能大幅度降低电路规模。
根据本发明,既不增加存储元件也不增大电路规模,就能够缩短存储元件的存取时间,而且,并行进行纠错处理和检错处理能够缩短检错处理需要的时间。
[实施例4]
下面参照附图说明本发明的实施例4的纠错和解密电路。
图17是表示配备本发明的纠错和解密电路的盘再现装置1002的结构的简略框图。
参照图17,控制电路144中的信号读取电路142解调驱动器驱动电路149驱动的驱动器141从盘读出的数据。伺服电路143根据信号读取电路142读取的信号控制驱动器驱动电路149。
来自盘的数据经信号读取电路142解调后,被传送到解码电路1100中的数据缓冲存储器1011。传送来的数据经纠错电路1012进行纠错,经解密电路1013进行解密处理,信息数据经接口148被传送到主机PC。
图18是表示图17所示的DVD上的纠错复合码的格式的概念图。把对二维排列的172×192字节的信息数据上附加了横向10字节的奇偶校验码PI和纵向的16字节(Byte)奇偶校验码PO的数据作为1个数据块。
图19是说明图7所示的解码电路1100的结构的框图。解码电路1100的动作由解码处理控制器1010控制。
下面使用图19说明解码电路1100的结构和动作。
在第一步骤,输入数据被传送到缓冲存储器1011。这里,例如使用SDRAM作为数据缓冲存储器1011。
在第二步骤,纠错电路1012从缓冲存储器1011读入由进行纠错的单位构成的数据,例如1个代码语句的数据,并进行纠错处理。这里,纠错电路1012配置有暂时保存纠错前的1个代码语句的数据的存储元件1121和纠错运算部1122,按纠错运算部1122得到的纠错量纠正暂时保存在这个存储元件1121中的数据。
在第三步骤,把这样得到的并且被暂时保存的纠正后的数据传送到解密电路1013,进行解密处理。
图20是说明解密电路1013的结构的框图。异或逻辑和运算电路1052对输入到解密电路1013的数据与解密模式发生器1051得到的值进行异或逻辑和运算,并输出去。这里,根据DVD上预先存储的数据把初始值S0送到解密模式发生器1051。
再回到对图19的解码电路1100的动作的说明。在第四步骤,把解密处理后的数据写入缓冲存储器1011中。
通过采取这样的电路结构,可把对数据缓冲存储器1011的存取减少到1/2。因此,可高速处理复合码的纠错和解密。
[实施例5]
图21是说明配置有本发明的实施例2的复合码的纠错与解密电路的解码电路1200的结构的简略框图。即,图17所示的数据再现装置1002中,可用下面说明的解码电路1200替代解码电路1100。
解码电路1200的动作由解码处理控制器1010控制。
在实施例5中,考虑到了复合码处理中的纠错的特征,如下面说明的那样,在使用图18所示的DVD的复合码的纠错和解密处理等中,可进行更高速的处理。
实施例5的解码电路1200的复合码的纠错处理适用于例如执行复合码的内码(PI)后,再执行外码(PO)的情况。
图22是说明图21所示的实施例5的解码电路1200的动作的流程图。
下面参照图21和图22,说明实施例5的解码电路1200的结构和动作。
处理开始后,首先,在第一步骤,输入数据被传送到缓冲存储器1011(步骤S502)。这里,例如把SDRAM用作数据缓冲存储器1011。
在第二步骤,从缓冲存储器1011读取进行纠错必要的例如1个代码语句的数据,暂时保存在数据用存储元件1041中(步骤S504)。
接着,在第三步骤,从数据用存储元件1041读取暂时保存的数据,第一差错特征信息符计算电路1042进行差错特征信息符计算(步骤S506)。
在第四步骤,计算出来的差错特征信息符的值被送到第一差错量计算电路1043,计算出差错量(步骤S508)。
这里,如果不存在差错,运算上把差错量作为“0”来对待。
在第五步骤,通过在异或逻辑和运算电路1047中对这样计算的差错量和暂时保存在数据用存储元件1041中的数据进行异或逻辑和运算,得到被纠错的全部数据(步骤S510)。
在第六步骤,把这样得到的被纠正过的数据送到解密电路1013(步骤S512)。
这里,解密电路1013的结构与实施例1相同。
在第七步骤,在解密电路1013进行解密处理的数据被写回到缓冲存储器1011(步骤S514)。
另一方面,在第八步骤,第六步骤中送到解密电路1013的数据并行地被送到第二差错特征信息符计算电路1045。另外,通过在差错特征信息符用存储元件1044保存差错特征信息符的中途计算值,在第二差错特征信息符计算电路1045进行差错特征信息符计算(步骤S516)。
在第九步骤,这样计算的差错特征信息符的值被送到第二差错量计算电路1046,进行差错量计算(步骤S518)。
在第十步骤,仅在第二被检到差错的位置读入在第七步骤的缓冲存储器内进行了解密处理的数据,在异或逻辑和运算电路1048中取出异或逻辑和,将其写回到缓冲存储器1011中(步骤S520)。
以下,对以上的处理中的第三步骤(步骤S506)中,第一差错特征信息符计算电路1042进行的差错特征信息符计算和在第八步骤(步骤S516)中使用差错特征信息符用存储元件1044,并由第二差错特征信息符计算电路1045进行的差错特征信息符计算进行更详细说明。
即,首先,图23是表示图18所示的一个数据块的数据中的数据排列的概念图。列方向上排列着ROW0~ROW207共208字节的数据,行方向上排列着COL0~COL181共182字节的数据,
图24是表示第一差错特征信息符计算电路1042的结构的框图。
众所周知,含有差错的代码列的接收多项式y(x)用下式(19)表示时,差错特征信息符以式(20)给出。
y(x)=ym-1xm-1+ym-2xm-2+…+y1x+y0
…(19)
其中,m是原始多项式的项数,在图23所示的复合码块中,对PI系列的行代码纠错时,m=182,对PO系列的行代码纠错时,m=208。
另外,t是可纠正的差错数,α是原始多项式的根。
以电路实现这种差错特征信息符计算式的是第一差错特征信息符计算电路1042。但是,此时不进行单纯的和运算,而进行异或逻辑和运算。
第一差错特征信息符计算电路1042配置有n个由异或逻辑和运算电路1412am和寄存器1412bm以及乘法器1412cm构成的电路(既:m=0、…、n-1)。
例如,在图18这样的DVD的格式中,由于确定有附加10字节的奇偶校验码PI,n=10(0-9),相当于式(6)中的j。
图25表示差错特征信息符用存储元件1044和第二差错特征信息符计算电路1045的结构的框图。差错特征信息符用存储元件1044配备有存储元件1413bm(m=0~15),第二差错特征信息符计算电路1045配备有异或逻辑和运算电路1413am(m=0~15)和乘法器1413cm(m=0~15)。
第二差错特征信息符计算电路1045虽然在实现数学式(6)的差错特征信息符计算这一点上与第一差错特征信息符计算电路1042相同,但是配置有m个由异或逻辑和运算电路1413am和存储元件1413bm以及乘法器1413cm构成的电路。例如,图18这样的DVD格式中,由于规定须附加16字节的奇偶校验码PO,所以m=16(0-15)。存储元件1413bm用于逐次存储差错特征信息符的计算中间过程值,这里未加以特别的限定,但可由例如SRAM(静态随机存取存储器)构成。
根据以上结构,按照图21的箭头表示的步骤说明差错特征信息符运算动作。
一旦从控制器1010把解码命令传送给解码电路1200,解码电路1200就对于复合码数据块化的1块数据开始纠错和解密处理。
首先,从缓冲存储器1011向数据用存储元件1041传送图23的ROW0的PI系列的行数据,由第一差错特征信息符计算电路1042对PI系列的行符号进行差错特征信息符计算,由第一差错量计算电路1043和异或逻辑和运算电路1047实行纠错运算。
即:把图23所示的复合码数据块PI系列的每一行的数据yi(i=181~0)依次从缓冲存储器1011输入到异或逻辑和电路1412an(n=0~9),把运算结果暂时存储在寄存器1412bn(n=0~9)中。之后,对于在寄存器1412bn中存储的数据,由乘法器1412cn(n=~9)作乘以αn的运算,异或逻辑和电路1412an对其结果和下一数据Y(i-1)进行运算。反复这样的动作来计算出差错特征信息符。
计算了差错特征信息符后,由第一差错量计算电路1043和异或逻辑和运算电路1047进行纠错运算,然后结束对这些PI系列的行的纠错运算。
接着,把每一行被纠正过的数据从异或逻辑和运算电路1047传送到解密电路1013,同时被输送到第二差错特征信息符计算电路1045,进行PO方向的纠错。
来自异或逻辑和运算电路1047的纠正过的数据在解密电路1013进行解密处理后被传送到缓冲存储器1011,并且被传送到第二差错特征信息符计算电路1013。
这里,纠正后的PI系列的行数据yi(i=181~10)被依次从异或逻辑和运算电路1047输入到异或逻辑和电路1413an(n=0~15),将运算结果存储在存储元件1413bn(n=0~15)中。
其中,对于ROW的PI系列行数据,由于在此以前不存在存储在存储元件1413bn(n=0~15)中的数据,所以,把其值按原样存储在存储元件1413bn中。此时,图23的ROW的PI系列行数据被输入到第二差错特征信息符计算电路1045,并把172字节的数据存储在存储元件1413bn中。
接着,从缓冲存储器1011传送ROW的PI系列行数据,由第一差错特征信息符计算电路1042、第一差错量计算电路1043和异或逻辑和运算电路1047进行对PI系列的行代码的纠错运算,解密电路1013对纠正后的ROW1数据进行解密,然后传送到缓冲存储器1011,在缓冲存储器1011上进行纠错。
另一方面,来自异或逻辑和运算电路1047的纠正后的数据被传送到解密电路1013的同时,也被传送到第二差错特征信息符计算电路1045。这里,图9所示的第二差错特征信息符计算电路1045首先输入ROW1的PI系列的行数据y(181)后,读出存储在存储元件1413bn上的y(181)(ROW0的PI系列数据),将其传送到乘法器1413cn(n=0~15),由乘法器1413cn乘上αn,在异或逻辑和电路1413an对计算结果和上述ROW1的PI系列行数据y(181)进行运算,把结果的值写到存储在存储元件1413bn上的y(181)上。
以下同样,每当ROW1的PI系列行数据y(i)被输入,便从存储元件1413bn读出与之对应的数据,并由异或逻辑和电路1413an进行运算,把结果的值写到存储在存储元件1413bn上的y(i)上。
这样,对于存储元件1413bn,由于仅依次写入新数据,所以仅配备存储172字节(=182字节-10字节)×m(=16)个数据的很小的存储容量即可。
反复进行上述的动作直到图23的ROW207为止,对复合码块的PI系列的全部行代码的纠错运算结束时,对PO系列的全部行代码的差错特征信息符计算就同时结束。
之后,在第二差错量计算电路1046中进行差错量计算,并通过在异或逻辑和运算电路1048中进行与缓冲存储器1011中的数据的异或逻辑和运算,来进行PO方向的纠错。
因此,根据上面说明的解码电路1200的结构,能产生下面的效果。
(1)存储元件1413bn存储差错特征信息符计算中间过程,由于依次在输入新到来的数据的每一个数据上进行写入,可仅配备很小的存储容量,可抑制电路面积和消耗电能的增加。
(2)由于在把来自异或逻辑和运算电路1047的纠错后的数据传送到解密电路1013的同时,也把其传送到第二差错特征信息符计算电路1045,这就减少了对缓冲存储器1011的存取次数,可实现其纠错处理的高速化。
[实施例6]
图26是说明本发明的实施例6的解码电路1300的结构的概略框图。
实施例6的解码电路1300的结构与实施例5的解码电路1200的结构基本相同,如图24所示,不同点在于还设计了分支电路1050,进行是否接收异或逻辑和运算电路1047的输出进行解密处理和是否进行第二差错特征信息符计算的2个分支处理。由于其它与实施例5的解码电路1200的结构相同,相同的部分用相同的标号表示,不进行重复说明。
图27是说明本发明的实施例3的解码电路1300的动作的流程图。
实施例6的说明中,以复合码的内码(PI)、外码(PO)、内码(PI)的顺序进行纠错。
这时,在上述实施例5中,通过进行第一次内码处理时不进行解密处理而把数据写回到缓冲存储器1011中,进行第二次内码处理时进行解密处理,可不增大电路规模而实现高速处理。
参照图26和图27,首先,一旦处理开始(步骤S600),就把输入数据传送到缓冲存储器1011(步骤S602)。
接着,进行第一方向的纠错处理(步骤S604),在分支电路1050中,对是否进行第二方向的纠错和这是否是最后的第一方向的纠错作出判断(步骤S606、步骤S608)。
判断为第二方向的纠错时,进行第二方向的纠错处理(步骤S610),接着,使用第一纠正处理后的缓冲存储器的数据和差错量进行纠错(步骤S612)。
另一方面,判断是否是最后的第一方向的纠错(步骤S608),不是最后的第一方向的纠错时,向缓冲存储器1011写入存储器数据(步骤S614),处理返回到步骤S602。
另一方面,是最后的第一方向的纠错时(步骤S608),实施解密处理(步骤S616),向缓冲存储器1011写入数据(步骤S618),处理结束(步骤S620)。
作为复合码的处理顺序,进行内码(PI)、外码(PO)、内码(PI)、外码(PO)这样的4次纠正处理时,同样可适用。这时,与上述相同,通过作第一次的内码处理时,不进行解密处理而把数据写回到缓冲存储器中、第二次内码处理时进行解密处理,可不增大电路规模而实现高速处理。
即使增加了对于内码或外码的纠正处理次数,也可作同样的处理。
[实施例7]
实施例7的纠错电路可作为图1所示的盘再现装置1000中的纠错电路200使用。
或者,实施例7的纠错电路也可作为图17所示的盘再现装置1002中的纠错电路1012使用。
下面的说明中,对实施例7的纠错电路作为盘再现装置1000中的纠错电路200使用的情况作说明。
下面的说明中以DVD为例,对与其上记录的数据对应的复合码的纠错和并行检查装置与方法进行说明,但是本发明并不限定于这种情况,也可适用于对欧几里德法的BCH代码等的纠错处理。
为简便起见,下面的说明也是举例说明,就与(182,172,11)RS代码的情况下的解码算法对应的电路结构和算法进行说明。但是,本发明并不限定于(182,172,11)RS代码,可适用于更一般的情况。
图28是说明实施例7的纠错电路200的结构的简略框图。
纠错电路200的结构除欧几里德计算电路30由欧几里德计算电路2000构成这一点外,与图43所示的已有的纠错电路6000的结构相同。因此,同一部分给出了相同的标号,并且不对其作重复说明。
图29是说明图28所示的欧几里德计算电路2000的结构的简略框图。
参照图29,欧几里德计算电路2000配置有:为求出式(15)中的商多项式Qi(x)和剩余多项式Zi(x)而分别保持与多项式Zi-2(x)或多项式Zi-1(x)对应的系数的运算中间过程的第一评价多项式寄存器组2010和第二评价多项式寄存器群2020,和为求出式(17)中的剩余多项式Yi(x)而分别保持与多项式Yi-2(x)或多项式Yi-1(x)对应的系数的运算中间过程的第一位置多项式寄存器组2030和第二位置多项式寄存器组2040,和把与在第一评价多项式寄存器组2010中存储的系数R0i(I=0,1,…,9)相对应的多项式的最高次数项系数存储为Q0的寄存器2050,和把与在第二评价多项式寄存器组2020中存储的系数R1i(I=0,1,…,9)相对应的多项式的最高次数项系数存储为Q1的寄存器2060,和接收寄存器2060内的数据变换为倒数的倒数变换器2070,以及根据寄存器2050与寄存器2060内的数据保存计算的值Q=Q0*(1/Q1)的寄存器2080。
欧几里德计算电路2000配置有:控制欧几里德法的计算处理的控制器2100;接收第一和第二评价多项式寄存器群2010和2020的输出、第一和第二位置多项式寄存器群2030和2040的输出、寄存器2050和2080以及倒数变换器2070的输出,对应于控制器2100的控制向选择的输送端传送数据的第一选择电路2110;接收第一选择电路2110的输出进行伽罗瓦体上的乘法运算的乘法器群2200;接收第一选择电路2110的输出进行异或逻辑和运算的exor运算器组2210;接收第一选择电路2110的输出进行数据交换的交换器2230;接收乘法器组2200的输出、exor运算器群2210的输出、交换器2230的输出,对应于控制器2100的控制把数据向选择的输送端输送的第二选择电路2300。
如后面说明的那样,在第二评价多项式寄存器组2020上存储的数据和第二位置多项式寄存器组2040上存储的数据经第一选择电路2110有选择地提供给乘法器群2200。在第一评价多项式寄存器组2010上存储的数据和第二评价多项式寄存器组2020上存储的数据的组,或者,第一位置多项式寄存器组2030上存储的数据和第二位置多项式寄存器组2040上存储的数据的组中的任何一个经经第一选择电路2110有选择地提供给exor运算器组2210。
在第一和第二评价多项式寄存器组2010和2020以及第一和第二位置多项式寄存器组2030和2040上,根据差错特征信息符计算电路20的输出通过控制器2100进行初始设定。寄存器2050、2060、2080的存储内容也通过控制器2100的控制被依次更新。
图30是表示从图29所示的欧几里德计算电路2000中拿出点线包围的区域PP的框图,该部分包括第二评价多项式寄存器组2020、第二位置多项式寄存器组2040、寄存器2050,2060,2080、倒数变换电路2070、第一选择电路2110的一部分、乘法器组2200、第二选择电路2300的一部分。
第二评价多项式寄存器组2020配备分别与系数R1i(i=0,…,9)对应的寄存器2020.0~2020.9,第二位置多项式寄存器组2040配备分别与系数B1i(i=0,…,5)对应的寄存器2040.0~2040.5。尽管图4中未示出,第一评价多项式寄存器组2010配备分别与系数R0i(i=0,…,9)对应的寄存器2010.0~2010.9,第一位置多项式寄存器组2030配备分别与系数B0i(i=0,…,5)对应的寄存器2030.0~2030.5。
第二评价多项式寄存器组2020和第二位置多项式寄存器组2040可通过控制器2100的控制进行存储的数据的移位动作。
第一选择电路2110配备有选择器2110.0~2110.7。乘法器组2200配备有乘法器2200.0~2200.9。第二选择电路2300配备有选择器2300.0~2300.6。
选择器2110.i(i=0,…,5)接收寄存器2020.i和寄存器2040.i的输出,把任何一个提供给乘法器2200.i中的一侧输入。乘法器2200.i(i=0,…,5)接收寄存器2080的输出作为另一侧的输入,把乘法运算结果提供给选择器2300.i(i=0,…,5)。
乘法器2200.6~2200.8接收寄存器2020.6~2020.8的输出作为一侧的输入。乘法器2200.6~2200.8接收寄存器2080的输出作为另一侧的输入,把乘法运算结果分别提供给寄存器2020.6~2020.8。
选择器2110.6接收寄存器2020.9的输出和倒数变换器2070的输出把任何一个提供给乘法器2200.9的一侧输入。选择器2110.7接收寄存器2050和寄存器2080的输出把任何一个提供给乘法器2200.9的另一侧输入。乘法器2200.9把乘法运算结果提供给选择器2300.6。选择器2300.6把乘法器2200.9的输出提供给寄存器2080或2020.9中的任何一个。
图31是表示图29和图30所示的欧几里德计算电路2000的处理的流程的流程图。
参照图31,由欧几里德互除法计算出错位置多项式σ(x)和误差评价多项式ω(x)的处理开始后(步骤S700),首先,进行初始值设定。
首先,对应于式x2t=x10的系数,在第一评价多项式寄存器组2010中存储下面的R0i(i=0,1,…,10)。
R010=1,R0i=0(i=0,1,…,9)
对应于S(x)的系数,在第二评价多项式寄存器组2020中存储下面的R1i(i=0,1,…,9)。
R1i=Si(i=0,1,…,9)
分别对应于Y-1(x)以及Y0(x)的系数,在第一位置多项式寄存器组2030和第二位置多项式寄存器组2040中存储下面的B0i,B1i(i=0,1,…,,5)。
B0i=0(i=0,1,…,5)
B0i=0(i=0,1,…,5),B10=1
至此初始设定处理结束(步骤S702)。
接着,控制器2100求出以R0i作为作为系数的多项式次数N0和这个多项式的最高次数项的系数Q0,把值Q0存储在寄存器2050中。控制器2100求出以R1i作为系数的多项式次数N1和这个多项式的最高次数项的系数Q1,把值Q1存储在寄存器2060中。寄存器2060中的数据通过倒数变换器2070进行倒数变换,经选择器2110.6被提供给乘法器2200.9,同时寄存器2050的输出经选择器2110.7被提供给乘法器2200.9。乘法器2200.9的乘法运算结果Q(=Q0*(1/Q1))经选择器2300.6被存储在寄存器2080中(步骤S704)。
通过控制器2100进行N1和0的比较(步骤S706),当N1=0时,处理结束(步骤S730)。另一方面,N1不为0时,进行到下一处理步骤S708。
通过控制器2100进行DN=N0-N1的运算,如果DN<0,特征变量FN为1,DN≥0,特征变量FN为0(步骤S708)。
接着,由控制器2100进行特征变量FN与0的比较,FN=0时,处理移动到步骤S712,FN=1时,处理移动到步骤S720(步骤S710)。
首先,在步骤S710中,在FN=0时,对存储在第二评价多项式寄存器组2020中的数据仅进行值DN的移位动作,并且由乘法器组2200进行对存储在第二评价多项式寄存器组2020中的数据乘以寄存器2080内的数据的乘法运算,通过再次将其存储在第二评价多项式寄存器组2020中来进行下面的处理。
R1i=Q*R1(i-DN)(i=0,1,…,9)
此时,(i-DN)为负时,进行相当于在左边的R1i代入0的处理(步骤S712)。
接着,对存储在第二位置多项式寄存器组2040中的数据仅进行值DN的移位动作,并且由乘法器组2200进行对存储在第二位置多项式寄存器组2040中的数据乘以寄存器2080内的数据的乘法运算,通过再次将其存储在第二位置多项式寄存器组2040中来进行下面的处理。
B1i=Q*B1(i-DN)(i=0,1,…,5)
但是,(i-DN)为负时,进行相当于在左边的B1i代入0的处理(步骤S714)。
对于存储在第一评价多项式寄存器组2010和第二评价多项式寄存器组2020中的数据以及第一位置多项式寄存器组2030和第二位置多项式寄存器组2040中的数据,通过exor运算器组2210进行下面的运算(步骤S716)。
R0i=R0i exor R1i(i=0,1,…,9)
R110=0
B0i=B0i exor B1i(i=0,1,…,5)
接着,判断以变量R0i表示的多项式R0x的次数是否为t(这个例子中为5)以下(步骤S718)。多项式R0x的次数在t以下时,处理结束(步骤S730),多项式R0x的次数不在t以下时,处理移动到步骤S720。
因此,在步骤S710中FN不为0时,或者在步骤S718中多项式R0x的次数不在t以下时,通过交换器2230进行分别代入变量R0i的值和变量R1i的值、并且分别代入变量B0i的值和变量B1i的值的处理。这样的代入之后,处理返回到步骤S704(步骤S720)。
上面的处理同样适用于其它的里德·索罗门代码或更一般的BCH代码的欧几里德法的计算。
通过上面的处理,多项式R0x对应于误差评价多项式ω(x)。由变量B0i表示的多项式B0x对应于出错位置多项式σ(x)。
由上述可知,例如在可纠错数是t时,实行本发明的欧几里德法的电路规模和处理量估计如下。
乘法器的个数:2t
在乘法运算处理中必要的步骤数:4t
乘法运算次数:2t×(2t+1)
因此,与已有的方法和电路相比,乘法器的个数和乘法运算中必要的步骤数仅与t成比例。因此,可实现电路规模小并且进行高速动作的纠错装置。
而且,由于乘法运算次数被减少,可降低消耗的电能。
Claims (6)
1.一种纠错装置,其特征在于,配备有对含有纠错码的被纠正数据进行纠错处理的纠错运算器,所述纠错码具有可进行数据块的第一方向和第二方向的纠错的复合码;
所述第一方向是内码纠错方向,所述第二方向是外码纠错方向;
所述数据块被分割为在所述第一方向和所述第二方向上排列的多个子块;
所述纠错运算器含有:
对正所述复合码的第一方向检出差错量的第一纠错器(10);
纠正所述第二方向的第二纠错器(12);
可存储所述被纠正数据的第一存储元件(11);和
使用对所述第一方向的差错量和在所述第一存储元件中存储的数据,算出第一纠错结果的第一逻辑运算器(9);
还具有为确认所述纠错运算器的纠正不是误纠正而利用检错码进行检错的检错器;
所述检错码是对所述数据块的第一方向的数据连续地设置的检错码,
所述检错器含有:
根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的第一方向检错器(3);和
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的第二方向检错器(2,5,6,7,8);
所述第二方向检错器包括:
接收并存储所述第一方向检错器的检查结果的第二存储元件(2);
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第2函数的第2运算的第二递归公式的处理算出部分检查结果的部分检错器(8);
用以存储从所述部分检错器的输出的寄存器(7);
对所述子块的每个列的依照所述第二递归公式的处理结果,通过进行依照所述第一递归公式的处理,而算出第二检查结果的总计检错器(6);和
用于对所述第二存储元件中存储的所述第一方向检错器的检查结果和所述总计检错器的检查结果进行异或逻辑和运算,进行所述第二方向的纠错后的检错的第二逻辑运算器(5)。
2.一种纠错装置,其特征在于,配备有对含有纠错码的被纠正数据进行纠错处理的纠错运算器,所述纠错码具有可进行数据块的第一方向和第二方向的纠错的复合码,
所述第一方向是内码纠错方向,所述第二方向是外码纠错方向;
所述数据块被分割为在所述第一方向和所述第二方向上排列的多个子块;
所述纠错运算器含有:
对正所述复合码的第一方向检出差错量的第一纠错器(10);
纠正所述第二方向的第二纠错器(12);
可存储所述被纠正数据的第一存储元件(11);和
使用对所述第一方向的差错量和在所述第一存储元件中存储的数据,算出第一纠错结果的第一逻辑运算器(9);
还具有为确认所述纠错运算器的纠正不是误纠正而利用检错码进行检错的检错器;
所述检错码是对所述数据块的第一方向的数据连续地设置的检错码,
所述检错器含有:
根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的第一方向检错器(3);和
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第2函数的第2运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的第二方向检错器(2,5,6,7,8);
所述纠错装置还具有:
信号读取电路(142);和
接收并存储来自所述信号读取电路的数据的数据缓冲器(14),
所述第一存储元件存储从所述数据缓冲器读入的数据。
3.一种纠错装置,其特征在于,配备有对含有纠错码的被纠正数据进行纠错处理的纠错运算器,所述纠错码具有可进行数据块的第一方向和第二方向的纠错的复合码;
所述第一方向是内码纠错方向,所述第二方向是外码纠错方向;
所述数据块被分割为在所述第一方向和所述第二方向上排列的多个子块;
所述纠错运算器含有:
对正所述复合码的第一方向检出差错量的第一纠错器(10);
纠正所述第二方向的第二纠错器(12);
可存储所述被纠正数据的第一存储元件(11);和
使用对所述第一方向的差错量和在所述第一存储元件中存储的数据,算出第一纠错结果的第一逻辑运算器(9);
还具有为确认所述纠错运算器的纠正不是误纠正而利用检错码进行检错的检错器;
所述检错码是对所述数据块的第一方向的数据连续地设置的检错码,
所述检错器含有:
根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的第一方向检错器(3);和
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的第二方向检错器(2,5,6,7,8);
所述第二方向检错器包括:
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第2函数的第2运算的第二递归公式的处理算出部分检查结果的部分检错器(8);和
对所述子块的每个列的依照所述第二递归公式的处理结果,通过进行依照所述第一递归公式的处理,而算出第二检查结果的总计检错器(6);
所述部分检错器把与所述第二方向的纠错时检出的差错量对应的误差数据经多个步骤依次接收,
所述部分检错器含有:
根据前一步骤中给出的误差数据输出部分检查数据和当前步骤中给出的误差数据的异或逻辑和运算结果的异或逻辑和运算器(82);
接收所述异或逻辑和运算器的输出,根据表示预先设定的所述误差数据和部分检查数据之间的对应的运算表,输出所述部分检查数据的表运算器(84);接收并保持所述表运算器输出的所述部分检查数据,在当前步骤中把前面步骤中的所述部分检查数据提供给所述异或逻辑和运算器的数据保持装置(86);
所述表运算器根据最后的步骤给出的所述误差数据对在所述数据块的第二方向上排列的每一数据输出所述部分检查结果。
4.根据权利要求3的纠错装置,其特征在于,所述第二纠错器和第一方向检错器并行动作。
5.一种纠错装置,其特征在于,配备有对含有纠错码的被纠正数据进行纠错处理的纠错运算器,所述纠错码具有可进行数据块的第一方向和第二方向的纠错的复合码;
所述第一方向是内码纠错方向,所述第二方向是外码纠错方向;
所述数据块被分割为在所述第一方向和所述第二方向上排列的多个子块;
所述纠错运算器含有:
对正所述复合码的第一方向检出差错量的第一纠错器(10);
纠正所述第二方向的第二纠错器(12);
可存储所述被纠正数据的第一存储元件(11);和
使用对所述第一方向的差错量和在所述第一存储元件中存储的数据,算出第一纠错结果的第一逻辑运算器(9);
还具有为确认所述纠错运算器的纠正不是误纠正而利用检错码进行检错的检错器;
所述检错码是对所述数据块的第一方向的数据连续地设置的检错码,
所述检错器含有:
根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的第一方向检错器(3);和
使用所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的第二方向检错器(2,5,6,7,8);
所述第二方向检错器具有:
使用所述第二方向的纠错时检出的差错量,并根据表示预先设定的所述差错量和部分检查结果之间的对应的运算表,对在所述数据块的第二方向上排列的每个数据输出所述部分检查结果的部分检错器(82,84,86);和
通过在第一方向上总计算出的多个所述部分检查结果而算出第二检查结果的总计检错器(6);
所述部分检错器把与所述第二方向的纠错时检出的差错量对应的误差数据经多个步骤依次接收,
所述部分检错器含有:
根据前一步骤中给出的误差数据输出部分检查数据和当前步骤中给出的误差数据的异或逻辑和运算结果的异或逻辑和运算器(82);
接收所述异或逻辑和运算器的输出,根据表示预先设定的所述误差数据和部分检查数据之间的对应的运算表,输出所述部分检查数据的表运算器(84);
接收并保持所述表运算器输出的所述部分检查数据,在当前步骤中把前面步骤中的所述部分检查数据提供给所述异或逻辑和运算器的数据保持装置(86);
所述表运算器根据最后的步骤给出的所述误差数据对在所述数据块的第二方向上排列的每一数据输出所述部分检查结果,
所述表运算器含有:
接收所述异或逻辑和运算器的输出、分割成预定数目的组的数据分割装置(804);
分别接收所述数据分割装置的输出,根据表示预定的所述误差数据与部分检查数据之间的对应的运算表,输出所述部分检查数据的多个子表运算器(810-816);和
接收来自所述多个子表运算器的输出,并输出所述部分检查数据的部分检查运算器(820,822,824)。
6.一种纠错方法,其特征在于,备有下面的步骤:
在将第一方向设为内码纠错方向、将第二方向设为外码纠错方向时,接收含有纠错码的被纠正数据进行对所述第一方向求出差错量的处理的步骤(S108),所述纠错码具有可进行被分割为在所述第一方向和所述第二方向上排列的多个子块的数据块的所述第一方向和第二方向的纠错的复合码;
依次使用纠错前的所述被纠正数据和对所述第一方向检出的差错量算出第一纠错结果的步骤(S210);
接收所述被纠正数据,对所述第二方向进行纠错处理的步骤(S116);
根据所述第一纠错结果,对在所述第一方向上排列的多个所述子块,通过按照使用包含第一函数的第一运算的第一递归公式的处理,产生与所述第一方向的纠错后的检错对应的第一检错结果的步骤(S110);
使用在所述第二方向的纠错时检出的差错量,对在所述第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,而且对所述子块的每一列的按照所述第二递归公式的处理结果,通过进行按照所述第一递归公式的处理,计算出第二检错结果,并进行所述第一和所述第二检错结果的逻辑运算,而进行所述第二方向的纠错后的检错的步骤(S118);
进行所述第二方向的纠错后的检错的步骤含有使用在所述第二方向的纠错时检出的差错量对在第二方向上排列的多个所述子块的列,进行按照使用包含第二函数的第二运算的第二递归公式的处理,算出部分检查结果的步骤(S310);
对算出的多个所述部分检查结果通过进行按照所述第一递归公式的处理,进行总计,算出第二检查结果的步骤(S324);和
通过进行所述第一检错结果和总计后的所述第二检错结果的异或逻辑和运算进行所述第二方向的纠错后的检错的步骤。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22378/2000 | 2000-01-31 | ||
JP2000022378 | 2000-01-31 | ||
JP42867/2000 | 2000-02-21 | ||
JP2000042867A JP3773740B2 (ja) | 2000-02-21 | 2000-02-21 | 復号装置 |
JP207160/2000 | 2000-07-07 | ||
JP2000207160A JP3306413B2 (ja) | 2000-01-31 | 2000-07-07 | 誤り訂正装置および誤り訂正方法 |
JP2000371610A JP2002176363A (ja) | 2000-12-06 | 2000-12-06 | ユークリッド計算器、誤り訂正装置および誤り訂正方法 |
JP371610/2000 | 2000-12-06 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100095619A Division CN100380507C (zh) | 2000-01-31 | 2001-01-31 | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1318836A CN1318836A (zh) | 2001-10-24 |
CN1199177C true CN1199177C (zh) | 2005-04-27 |
Family
ID=27480976
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011119756A Expired - Fee Related CN1199177C (zh) | 2000-01-31 | 2001-01-31 | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 |
CNB2005100095619A Expired - Fee Related CN100380507C (zh) | 2000-01-31 | 2001-01-31 | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100095619A Expired - Fee Related CN100380507C (zh) | 2000-01-31 | 2001-01-31 | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US6772385B2 (zh) |
KR (1) | KR100685360B1 (zh) |
CN (2) | CN1199177C (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286275C (zh) | 1999-11-24 | 2006-11-22 | 三洋电机株式会社 | 纠错装置 |
US6986094B2 (en) * | 2001-03-29 | 2006-01-10 | Intel Corporation | Device and method for selecting opcode values with maximum hamming distance to minimize latency and buffering requirements |
JP4386615B2 (ja) * | 2002-02-21 | 2009-12-16 | 三洋電機株式会社 | データ処理装置 |
US6959411B2 (en) * | 2002-06-21 | 2005-10-25 | Mediatek Inc. | Intelligent error checking method and mechanism |
CN100433169C (zh) * | 2003-06-13 | 2008-11-12 | 联发科技股份有限公司 | 线性区段码修正***与方法 |
US7478311B2 (en) * | 2003-08-29 | 2009-01-13 | Panasonic Corporation | Error detection device and error detection method |
US7418644B2 (en) * | 2004-03-01 | 2008-08-26 | Hewlett-Packard Development Company, L.P. | System for error correction coding and decoding |
JP2005267719A (ja) * | 2004-03-17 | 2005-09-29 | Sanyo Electric Co Ltd | 符号化装置 |
JP4056488B2 (ja) * | 2004-03-30 | 2008-03-05 | エルピーダメモリ株式会社 | 半導体装置の試験方法及び製造方法 |
JP4260688B2 (ja) * | 2004-06-09 | 2009-04-30 | 富士通株式会社 | データ送信装置、データ送受信システム、データ送信装置の制御方法およびデータ送受信システムの制御方法 |
DE102004036383B4 (de) * | 2004-07-27 | 2006-06-14 | Siemens Ag | Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen |
TWI282087B (en) * | 2005-11-24 | 2007-06-01 | Realtek Semiconductor Corp | Decoding device in optical disc drive and related decoding method thereof |
KR100833600B1 (ko) * | 2006-08-25 | 2008-05-30 | 삼성전자주식회사 | 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 |
US20080098282A1 (en) * | 2006-10-20 | 2008-04-24 | Kuo-Lung Chien | High speed error correcting system |
JP2008159109A (ja) * | 2006-12-21 | 2008-07-10 | Matsushita Electric Ind Co Ltd | データ転送装置 |
JP4930251B2 (ja) * | 2007-07-31 | 2012-05-16 | 富士通セミコンダクター株式会社 | 誤り訂正装置及びデスクランブル回路 |
US8392806B2 (en) * | 2009-09-02 | 2013-03-05 | Texas Instruments Incorporated | Method, device, and digital circuitry for providing a closed-form solution to a scaled error locator polynomial used in BCH decoding |
CN102073477B (zh) * | 2010-11-29 | 2012-05-30 | 北京航空航天大学 | 具有检错纠错及错误定位功能的有限域乘法器的实现方法 |
CN105227192B (zh) * | 2014-06-05 | 2018-12-21 | 深圳衡宇芯片科技有限公司 | 一种用于多模式bch码编码的方法及使用该方法的编码器 |
KR20180059151A (ko) * | 2016-11-25 | 2018-06-04 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이를 포함하는 메모리 컨트롤러 |
US10879933B2 (en) * | 2018-04-16 | 2020-12-29 | SK Hynix Inc. | Reed solomon decoder and semiconductor device including the same |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2605270B2 (ja) | 1987-02-10 | 1997-04-30 | ソニー株式会社 | エラー訂正及びチエツク装置 |
JP2605271B2 (ja) | 1987-02-10 | 1997-04-30 | ソニー株式会社 | エラー訂正及びチエツク装置 |
JPH01276825A (ja) | 1988-04-28 | 1989-11-07 | Ricoh Co Ltd | 誤り訂正復号回路 |
JP2714129B2 (ja) | 1989-04-28 | 1998-02-16 | キヤノン株式会社 | 符号伝送方法 |
JPH08125549A (ja) | 1994-10-26 | 1996-05-17 | Hitachi Ltd | 誤り訂正復号回路とそれを使用するディジタル通信装置及びディジタル記録装置 |
EP0766245A4 (en) * | 1995-04-12 | 1998-07-22 | Toshiba Kk | DATA PROCESSING METHOD FOR GENERATING A PRODUCT-CODED ERROR CORRECTION BLOCK, DATA PROCESSING METHOD FOR DATA RECORDING ON A RECORDING MEDIUM AND DATA PROCESSING DEVICE |
JP3305966B2 (ja) * | 1995-12-25 | 2002-07-24 | ソニー株式会社 | データ復号装置及びその方法並びにデータ再生装置 |
US5793724A (en) * | 1996-01-22 | 1998-08-11 | Sony Corporation | Optical disk error-correcting code system correlating error correction with sector address |
JPH09265730A (ja) | 1996-03-27 | 1997-10-07 | Sony Corp | データ再生装置、再生方法 |
US6374384B1 (en) * | 1996-06-27 | 2002-04-16 | Matsushita Electric Industrial Co., Ltd. | Reed Solomon error correcting circuit and method and device for Euclidean mutual division |
FR2751810B1 (fr) * | 1996-07-23 | 1998-10-23 | Sgs Thomson Microelectronics | Systeme de correction d'erreurs dans des trames de donnees ayant des codes de parite horizontaux et verticaux |
JP2907138B2 (ja) | 1996-08-15 | 1999-06-21 | 日本電気株式会社 | 誤り訂正の演算処理方法及び処理回路 |
JPH10112659A (ja) * | 1996-10-08 | 1998-04-28 | Canon Inc | 誤り訂正復号装置 |
JP3284900B2 (ja) | 1996-10-18 | 2002-05-20 | 松下電器産業株式会社 | データ復号方法 |
JP3233860B2 (ja) * | 1996-10-25 | 2001-12-04 | 松下電器産業株式会社 | リードソロモン復号器 |
JPH10150367A (ja) | 1996-11-15 | 1998-06-02 | Seiko Epson Corp | 誤り訂正装置 |
JP3863252B2 (ja) * | 1996-11-15 | 2006-12-27 | 富士通株式会社 | 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 |
JP3564910B2 (ja) | 1996-12-24 | 2004-09-15 | ソニー株式会社 | データ再生装置及びデータ再生方法 |
US5838695A (en) * | 1996-12-30 | 1998-11-17 | Winbond Electronics Corp. | Method and apparatus for performing Reed-Solomon Product-like decoding of data in CD-ROM format |
KR100223634B1 (ko) * | 1997-01-15 | 1999-10-15 | 윤종용 | 고속 데이타 처리 및 전송을 위한 에러정정용 메모리를 구비하는 시스템 디코더 및 에러정정용 메모리 제어방법 |
JPH113573A (ja) * | 1997-04-15 | 1999-01-06 | Mitsubishi Electric Corp | 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置 |
US6048090A (en) | 1997-04-23 | 2000-04-11 | Cirrus Logic, Inc. | Error correction and concurrent verification of a product code |
US5920578A (en) * | 1997-04-23 | 1999-07-06 | Cirrus Logic, Inc. | Method and apparatus for efficiently processing a multi-dimensional code |
US5974580A (en) | 1997-07-23 | 1999-10-26 | Cirrus Logic, Inc. | Concurrent row/column syndrome generator for a product code |
JPH11112358A (ja) | 1997-09-30 | 1999-04-23 | Fujitsu Ltd | データの誤り訂正方法及び誤り訂正装置 |
KR100279522B1 (ko) | 1997-11-20 | 2001-03-02 | 니시무로 타이죠 | 카피 방지장치 및 이와 같은 카피 방지장치에 사용되는 정보 기록매체 |
JP3165099B2 (ja) | 1998-02-05 | 2001-05-14 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 誤り訂正方法及びシステム |
JPH11232039A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | デジタルデータ再生装置 |
EP0939403A3 (en) | 1998-02-25 | 1999-11-17 | Matsushita Electric Industrial Co., Ltd. | High-speed error correcting apparatus with efficient data transfer |
EP0986814B1 (en) | 1998-03-18 | 2003-11-05 | STMicroelectronics S.r.l. | Reed-solomon decoding of data read from dvd or cd supports |
JPH11282703A (ja) | 1998-03-27 | 1999-10-15 | Nec Corp | 誤り訂正装置及び誤り訂正方法 |
JP2000010807A (ja) | 1998-06-25 | 2000-01-14 | Hitachi Ltd | ディジタルデータ再生装置 |
JP3342422B2 (ja) | 1998-09-29 | 2002-11-11 | 三洋電機株式会社 | 誤り訂正方法およびその装置 |
JP2000114983A (ja) | 1998-09-30 | 2000-04-21 | Sanyo Electric Co Ltd | 誤り訂正方法およびその装置 |
JP3214478B2 (ja) * | 1998-12-28 | 2001-10-02 | 日本電気株式会社 | 誤り訂正復号装置 |
EP1160989A4 (en) * | 1999-03-01 | 2005-10-19 | Fujitsu Ltd | TURBO DECODING DEVICE |
JP2000315956A (ja) * | 1999-04-30 | 2000-11-14 | Mitsubishi Electric Corp | 誤り訂正装置 |
KR20010069066A (ko) | 2000-01-12 | 2001-07-23 | 이종원 | 저산소 농도하에서 생존이 가능하도록 하는 동물세포의배양방법 |
US6772390B2 (en) * | 2000-11-30 | 2004-08-03 | Quantum Corporation | Erasure correction for ECC entities |
-
2001
- 2001-01-30 US US09/772,072 patent/US6772385B2/en not_active Expired - Fee Related
- 2001-01-30 KR KR1020010004290A patent/KR100685360B1/ko not_active IP Right Cessation
- 2001-01-31 CN CNB011119756A patent/CN1199177C/zh not_active Expired - Fee Related
- 2001-01-31 CN CNB2005100095619A patent/CN100380507C/zh not_active Expired - Fee Related
-
2004
- 2004-05-14 US US10/845,091 patent/US7181483B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1652241A (zh) | 2005-08-10 |
KR100685360B1 (ko) | 2007-02-22 |
US20010014960A1 (en) | 2001-08-16 |
US7181483B2 (en) | 2007-02-20 |
US6772385B2 (en) | 2004-08-03 |
KR20010083150A (ko) | 2001-08-31 |
CN1318836A (zh) | 2001-10-24 |
US20040210816A1 (en) | 2004-10-21 |
CN100380507C (zh) | 2008-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1199177C (zh) | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 | |
CN1165906C (zh) | 纠错装置 | |
CN1186714C (zh) | 高基除法器及方法 | |
CN1148643C (zh) | 模幂运算装置 | |
CN101047390A (zh) | 解码设备、控制方法及程序 | |
CN1264085C (zh) | 一种用于执行多媒体应用的操作的装置、***和方法 | |
CN1265280C (zh) | 扩展整数的计算域的范围 | |
CN1922643A (zh) | 加密***、加密装置、解密装置、程序和集成电路 | |
CN101061526A (zh) | 密码处理运算装置 | |
CN1960190A (zh) | Ldpc码校验矩阵构造方法及利用该方法的编码解码装置 | |
CN1751516A (zh) | 用于发送和接收映象数据的强势*** | |
CN1268135C (zh) | 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1200571C (zh) | 正交变换、逆正交变换方法及装置、编码、解码方法及装置 | |
CN1633749A (zh) | 获得循环冗余码 | |
CN1253013C (zh) | 预测装置、编码装置、逆预测装置、解码装置 | |
CN1599445A (zh) | 数据处理方法、数据处理装置 | |
CN1229758C (zh) | 正交变换图像的分辨率变换装置和方法 | |
CN1748199A (zh) | 逻辑运算电路、逻辑运算装置和逻辑运算方法 | |
CN1879126A (zh) | 平均维持插值运算电路、像素插值电路、平均维持插值运算方法及像素插值方法 | |
CN1777942A (zh) | 聚集*** | |
CN1890916A (zh) | 使用椭圆曲线的信息传输***、加密设备和解密设备 | |
CN1975681A (zh) | 磁碟阵列中资料的乘法运算的方法及其控制器 | |
CN1112047C (zh) | 数字压缩信号的译码器 | |
CN1405703A (zh) | 转换器、转换方法、加密/解密***、程序和记录媒体 |
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: 20050427 Termination date: 20100131 |