CN1099110C - 通用纠错系统 - Google Patents
通用纠错系统 Download PDFInfo
- Publication number
- CN1099110C CN1099110C CN95195065A CN95195065A CN1099110C CN 1099110 C CN1099110 C CN 1099110C CN 95195065 A CN95195065 A CN 95195065A CN 95195065 A CN95195065 A CN 95195065A CN 1099110 C CN1099110 C CN 1099110C
- Authority
- CN
- China
- Prior art keywords
- pointer
- code word
- impact damper
- multidigit
- register
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1806—Pulse code modulation systems for audio signals
- G11B20/1813—Pulse code modulation systems for audio signals by adding special bits or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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
-
- 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
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一种纠错系统在两种模式中操作:(1)一种两阶段模式,用于校正具有指针的计算机数据;及(2)一种子码模式,用于校正包含音频数字数据的子码包。在用于校正带指针的计算机数据的两阶段模式中,发生器(20)、计算器(30)与校正器(60)各在两个阶段中操作。在第一阶段中(称作PTR_TIME)发生器(20)为最新的码字生成一或两个多位缓冲器获得的指针(αL0=p0,αL1=P1),同时计算器(30)利用发生器(20)为前一码字CWn-1生成的校正子(S0,S1)来为前一码字生成一或两个错误模式(E0,E1)。在第二阶段中(称作DATA_TIME),发生器(20)为最新的码字CWn生成校正子(S0,S1),同时计算器(30)对最新的码字CWn的任何多位缓冲器获得的指针(即P0,P1)执行数学运算。在子码模式中,纠错系统试图用子码包来执行校正。在校正子码中,系统首先对包的不同部分生成不同的子码校正子。生成子码校正子之后,系统控制器(10)分析子码校正子并根据分析应用不同校正策略。鉴于计算机数据与子码的不同字段长度,将校正子发生器(20)有选择地配置成用于选择不同的反馈路径(诸如反馈乘法器)。
Description
技术领域
本发明涉及纠错系统,包含但不限于用于能处理计算机数据或数字音频数据的密致盘驱动器的纠错系统。
本申请名为“有限域反演”由Chris Zook于1993年11月4日提交的序列号为08/147,758的美国专利申请的部分继续申请,并涉及下列同时提交的专利申请:名为“多用途纠错计算电路”由Chris Zook于1994年9月16日提交的序列号为08/306,918的美国专利申请;名为“CRC/EDC校验器系统”由Chris Zook于1994年9月16日提交的序列号08/306,917的美国专利申请;通过引用将上述所有专利申请结合在此。
背景技术
密致盘(CD)最初用于声音录制与再生。CD驱动器为音频目的操作CD并不包含随机存取,并且任何搜索(诸如,对录制在盘上的不同音响作品)都以相对低的速度发生。再者,由于人耳是以连续的、主要是实时的方式处理与接收再生的声音的,对于声音的目的,CD驱动器没有必要纠正一切错误。如果在声音录制中出现了不能纠正的错误,在试图纠正该错误中备份与重新读取错误所在的CD部分是不现实的。而是,通常消除任何不能纠正的错误与/或用其它时间接近的信号导出(例如平均)的一个信号来取代。
CD上的录制出现在基本上是螺旋形的路径上,在一定程度上将这一路径概念化为具有不同半径的道。对于声音用途的CD是格式化成包含多个帧的。每一帧具有2352个8位字节的数字音频数据。
对于声音用途,CD格式化成不仅包含录制在其上的作品(诸如歌曲)的数字音频数据,还包含子码。子码是以有规律的间隔分散在CD上的音频数据中间的。组合分散的子码以集合成包。如图8A中所示,每一子码包具有24个6位字节。从而,各子码字节的字段长度(6位)与数据字节的字段长度(8位)不同。
如图8A中所示,将一个子码包概念化为分成一个“Q”部分及一个“P”部分。各子码包的“Q”部分包含前四个6位符号(即字节0-3);各子码包的“P”部分包含其余的符号(字节4-23)。虽然对理解本发明没有必要,顺便提一下,子码是用来提供诸如切换道时指示道是否为音频数据、从作品开始的时间长度等。在一些应用中,用来伴随音频输出的视觉显示信息的图形信息(诸如卡拉OK)可存储在子码中。
虽然最初用于声音目的,最近几年来,CD也已用于记录计算机数据。从计算机数据的观点,将CD格式化成包含许多2352个8位字节。记录在CD上的计算机数据不利用子码。
在再生CD时,将一帧(对于声音)或扇区(对于计算机数据)的相关部分加载进缓冲器(诸如RAM)中。缓冲器为各帧/扇区保持2064字节的数据。
所有CD数据是用CIRC ECC在最低级别上加以保护的。关于记录/再生计算机数据,某些CD系统提供称作分层ECC的附加纠错能力。为了执行纠错的目的,将存储在缓冲区中的各帧/扇区概念化为包含两块或交错。图8B示出一帧/扇区的偶块/交错及奇块/交错。采用
乘积码 方案的纠错码在一帧/扇区的两块上进行运算。各块中,一列字节构成一个码字。例如,在偶块中,字节0000,0043,0086,......,0989构成列码字CWeven0的数据部分;字节0001,0044,0087,......,0990构成列码字CWeven1的数据部分;等等。字节1032与1075构成列码字CWeven0的ECC部分;字节1033与1076构成列码字CWeven1的ECC部分;等等。对于奇块,存在着类似的码字CWodd0,CWodd1,等。从而,每一块有43个列码字。各块的最后两个字节(例如字节1030even;1030odd;1031even;1031odd)包含CRC/EDC信息并相应地称作EDC或CRC块。在某些格式中CRC字节不一定是一块的数据部分的最后字节。例如,并不完全填满图2的块的数据格式可将CRC字节放在数据末尾后面,而在CRC字节后面加上填充字节零直到填满这些块为止。
同样在各块中,一条对角线的字节构成一个对角线码字。例如参见图8B的偶块,第一对角线码字包含字节0000,0044,0088,......,1056,1100,0026,......,0686,0730,1118,1144。这样,每块中有42个列码字与26个对角线码字。
图8B的图示说明不应掩盖缓冲器中的数据并不是按码字的次序存储的这一事实。例如,缓冲器中的一个扇区的字节是以下述次序存储的:偶块的字节0000(即字节0000even);来自奇块的字节0000(即字节0000odd);字节0001even;字节0001odd;以此类推到字节1031even;1031odd。
发明概述
当具有纠错能力的系统从CD接收到计算机数据时,CIRC ECC可生成供分层ECC使用的出错指针。在用于CD驱动器的这种纠错系统中,为每一码字供给多至两个指针。各指针通常是一位信息。一个扇区的指针信息通常存储在缓冲器中其关联的扇区前面或后面,并以能够确定该指针指向为哪一码字的哪一字节的方式存储。
从而,对于计算机数据目的,CD系统的缓冲器存储了多个扇区,其中还存储了用于各扇区的指针信息。类似地,对于声音目的,CD系统的缓冲器中存储了多个帧,以及多个子码包。
一种纠错系统在两种模式中操作:(1)一种两阶段模式,用于纠正具有指针的计算机数据;以及(2)一种子码模式,用于纠正含有音频数字数据的子码包。在用于纠正带有指针的计算机数据的两阶段模式中,在两个阶段中,一个发生器、计算器与校正器各自进行操作。在第一阶段中(称为PTR_TIME):
(a)发生器利用最新码字CWn的任何一位缓冲器获得的指针来生成该最新码字的一个或两个多位缓冲器获得的指针(αL0=P0,αL1=P1),
(b)计算器利用发生器为前一码字CWn-1生成的校正子(syndrome)(S0,S1)来为前一码字生成一种或两种出错模式(E0,E1);以及
(c)纠正部件为计算单元保持前一码字CWn-1的指针值(αL0=P0,αL1=P1)。
在第二阶段中(称作DATA_TIME):
(a)发生器为最新的码字CWn生成校正子(S0,S1);
(b)计算器对为最新码字CWn提供的任何多位缓冲器获得的指针(即P0,P1)执行数学运算;以及
(c)校正单元校正前一码字CWn-1。
在两个阶段的每一个中,在整个系统能前进到下一阶段之前,生成部件,计算部件及校正部件在最后完成部件(last-to-finish section)上等待。
从而本系统与需要三个同时的阶段/操作且各阶段/操作使用不同的输入及一般从一个阶段传递输入给下一阶段的传统流水作业技术不同。本系统的构成部件以时分方式各处理两种不同的操作。再者,取决于操作阶段,各部件执行两种功能。在一个操作阶段结束时,各部件传递信息给另一部件,但在下一阶段中并不重复同一操作。而是在后一阶段中各部件执行不同的操作,如上面所概述并在下面更详细地描述的。
在子码模式中,纠错系统试图用子码包来执行校正。在校正子码中,系统首先对该包生成校正子,具体地说,包的第一或“Q”部分上的校正子S0与S1;包的第二或“P”部分上的校正子S0与S1;及整个包上的校正子S2与S3。生成校正子之后,系统控制器分析这些校正子并根据分析应用不同的校正策略。按照其中的错误出现在包的P部分中而不在包的Q部分中的第一情况,执行双错误检测策略(DED)。按照其中的错误出现在包的P与Q部分两者中的第二情况,相对于包的两个部分执行单错误检测策略(SED)且用随后在校正后的码字上重新生成的校正子作为进一步的检验。按照其中的错误出现在包的Q部分中而不在包的P部分中的第三情况,执行四重错误检测策略(QD)。
考虑到计算机数据与子码的不同字段长度,有利地将校正子发生器可选择地配置成选择不同的反馈路径(例如反馈乘法器)。
附图说明
从下面对示出在附图中的较佳实施例的更具体的描述中,本发明的上述与其它目的、特征与优点将是显而易见的,附图中参照字符在全体各种视图中指示相同的部件。附图没有必要按比例,而是将重点放在展示本发明的原理上。
图1为按照本发明的一个实施例的CD ROM纠错系统的示意性方框图。
图2为用于图1的CD ROM纠错系统的发生器部件的示意性方框图。
图2A为展示图2的发生器电路的一部分的电路实现的示意性方框图。
图3为展示图3A与图3B之间的关系的示意性方框图,图3A与图3B为集体展示用于图1的CD ROM纠错系统的计算部件的示意性方框图。
图4为包含在图3B的计算部件中的卷积电路(convolution circuit)的示意图。
图5为包含在图3A与图3B的计算部件中的基本转换电路的示意图。
图6为用于图1的CD ROM纠错系统的校正器部件的示意性方框图。
图7为用于图1的CD ROM纠错系统的EDC校验器部件的示意图。
图8A展示传统子码包的格式。
图8B展示存储在缓冲器中的子码的分成两块交错的概念化。
图9为图1的CD ROM纠错系统的两阶段(带指针的计算机数据)操作图。
图10为一般性描述涉及指针处理的步骤的流程图。
图11为展示本发明的计算电路在将一个值从α基表示转换到β基表示中所执行的步骤的流程图。
图12为展示本发明的计算电路关于缓冲器指针处理的情况2所执行的各种步骤的流程图。
图13为展示包含在错误模式生成的第一种情况中的基本步骤的流程图。
图14为展示包含在错误模式生成的第二种情况中的基本步骤的流程图。
图15为描述图1的CD ROM纠错系统在处理子码时所执行的步骤的流程图,并进一步示出图15与图15A、图15B及图15C之间的关系。
图15A为展示包含在子码的双错误检测(DED)操作中的步骤的流程图。
图15B为展示包含在子码的单错误检测(SED)操作中的步骤的流程图。
图15C为展示包含在子码的四重擦除校正操作中的步骤的流程图。
发明的具体实施方式
图1示出通过系统控制器10与缓冲器(一般性地用虚线15描绘)通信的CD ROM纠错系统。根据CD ROM当前正在进行操作处理计算机数据还是数字音频数据,缓冲器中存储了多个扇区或帧。在处理计算机数据时,缓冲器中还存储了指针位,如上所述。在处理数字音频数据时,缓冲器中具有产生图8A中所示的并在上面讨论的子码包的分散的子码。在这里所示的特定纠错方案中实现交错技术,从而将一个扇区的数据概念化为包含两块码字,例如一个偶块及一个奇块,如图8B中所描绘的。通过数据总线BD数据字节在缓冲器与控制器10之间传送,而包含控制信息在内的其它信息则是在控制总线BBUS上交换的。
图1的CD ROM纠错系统还包括一个发生器或发生部件20;一个计算器或计算部件30;一个校正器或校正部件60;及一个EDC校验器部件70。图1的CD ROM纠错系统的所有活动是由控制器10例如使用总线CBUS上携带的控制与其它信号监视的。这些控制与其它信号示出在对该系统的构成部件更专门的其它图中。
结构:发生器
图2中更详细地展示发生器20,也称作SYNGEN。如下面将看到的,在计算机数据/指针模式中,发生器20在DATA_TIME阶段中生成用于码字的校正子,而在PTR_TIME阶段中生成m位错误指针值。在子码模式中,发生器20为子码生成校正子。
发生器20具有其本身的部件控制器或发生器控制器200,它基本上在用包含在CBUS中的引线连接在其上的系统控制器10的监视下操作。发生器20还包括门芯片202;两个加法器204,具体地说加法器204(0)与204(1);两个立即寄存器206,具体地说寄存器206(0)与206(1);两个终端寄存器208,具体地说寄存器208(0)与208(1);以及两个通用反馈电路210,具体地说反馈电路210(0)与210(1)。此外,发生器20包括两个或门212,具体地说或门212(0)与212(1)。
来自缓冲器的数据是在并行总线GDAT上从系统控制器10传输到发生器20的,并在其针DI上作用在门202上。考虑到所示系统的交错操作,在每一次传输中将两个字节的数据接连地作用在发生器20上。具体地,对于每一次传输,首先将来自偶交错的一个字节的数据作用在门202上,随后是来自奇交错的一个字节的数据。如图2中所示,发生器20实际上包括两个子发生器,一个S0校正子子发生器(它包括加法器204(0)、寄存器20b(0)、寄存器208(0)及反馈电路210(0)),以及一个S1校正子子发生器(它包括加法器204(1)、寄存器206(1)、寄存器208(1)及反馈电路210(1)。在计算机数据/指针模式中,例如,门202将来自偶交错的字节引导到偶子发生器并将来自奇交错的字节引导到奇子发生器。
各子发生器以图2A中的功能方式交替地表示。作用在使能线214上的信号允许门202施加一个字节进加法器204中。所施加的字节与通过反馈电路210选通的信号相加,相加结果首先存储在立即寄存器206中,然后移位到终端寄存器208中。从而,可将终端寄存器208的内容通过反馈电路210反馈给加法器204。
图2A示出发生器20,具体地说反馈电路210的可选择的配置。例如,反馈电路210示出为包含三条交替反馈线路,即反馈线路216、218与220。反馈线路216与218上具有设置在其上的乘法器226与228,而反馈线路220则没有乘法器。乘法器226乘以示例性地描绘为αsc的反馈值(在处理子码时使用);乘法器228乘以示例性地描绘为α的反馈值(在不处理子码时使用)。乘法器226与228的输出端连接在乘法器选择开关(多路复用器)230的各交替输入端上。乘法器选择开关230的输出端连接在乘法使能开关(乘法器)240的第一输入端上,开关240的第二输入端连接在反馈线路220上。当存储在终端寄存器208中的值要被反馈乘法器相乘时,作用在开关240上的信号ENA_MUL根据作用在开关230上的信号ENA_SC通过它选通线路261上的反馈信号(经乘法器226乘过的)或线路218上的反馈信号(经乘法器228乘过的)之一。
如下面将看到的,当使用发生器20(在操作的DATA_TIME阶段中)来生成校正子时,便用寄存器208(0)来存储为来自偶交错的码字生成的第一校正子(S0);用寄存器206(0)来存储为来自奇交错的码字生成的第一校正子(S0);用寄存器208(1)来存储为来自偶交错的码字生成的第二校正子(S1);以及用寄存器206(1)来存储为来自奇交错的码字生成的第二校正子(S1)。当用发生器20来生成指针时(在操作的PTR_TIME阶段中),可将一个偶交错码字的第一指针存储在寄存器208(0)中;可将一个偶交错码字的第二指针存储在寄存器208(1)中;可将一个奇交错码字的第一指针存储在寄存器206(0)中;以及可将一个奇交错码字的第二指针存储在寄存器206(1)中。当使用发生器20来为子码生成校正子时,分别将子码校正子S0、S1、S2与S3存储在寄存器208(0)、208(1)、206(0)与206(1)中。
存储在发生器寄存器208(0)与208(1)中的值可传送给计算部件30。从寄存器208(0)与208(1)的传送分别出现在总线S0、S1上[如图2中所示],也分别标记为总线S01、S02[如图1中所示]。
结构:计算器
计算器30包括预/后处理子部件两者(图3A中所示)及一个执行子部件(图3B中所示)。合在一起,预/后处理子部件与执行子部件构成一个多功能计算电路,它执行包含加法、乘法、求逆、基转换及内积形成在内的诸多串行运算。
计算器30的预处理子部件示出在图3A的上半部分中,而后处理子部件则示出在图3A的下半部分中。预处理子部件包括两个多位存储寄存器300,具体地说第一多位存储寄存器300(0)及第二多位存储寄存器300(1)。与各存储寄存器300关联的有一个中间存储寄存器302,即将存储寄存器300(0)连接成接收来自中间寄存器302(0)的输入;将存储寄存器300(1)连接成接收来自中间寄存器302(1)的输入。进入各中间寄存器302的数据输入是由开关(即多路复用器)304控制的。用多路复用器304(0)来选择来自寄存器208(0)[作用总线上的在图3A中示出为S0及图1中示出为S01]或来自寄存器300(0)的输出端的输出之一。类似地,用多路复用器304(1)来选择来自寄存器208(1)[作用总线上的在图3A中示出为S1及图1中的S11]或来自寄存器300(1)的输出端的输出之一。从发生器20进入计算器30、及通过多路复用器304、中间寄存器、及到存储寄存器300的数据传送并行发生。
存储寄存器300(0)与300(1)及第二多位存储寄存器为8位串行移位寄存器。在下面相对于图5讨论的基转换运算中扮演特殊的独特角色的存储寄存器300(1)为双向移位寄存器。寄存器300中的值能并行读出供应用在它们各自的多路复用器304上,或者以下面描述的方式串行移位出去到图3B的执行子部件中。
计算器30的预处理子部件还包括,如图3A中所示,寄存器馈送开关或多路复用器310(0)与310(1),它们允许分别对寄存器300(0)与300(1)串行馈送交替值(诸如来自中间寄存器302以外的值)。
此外,计算器30的预处理子部件包含一求和电路320。求和电路包含多个与门及异或门,标示为与门322、324及326以及异或门328及330。当与门322接收到控制信号SO_TO_SUM时,门322将来自寄存器300(0)的位串行传递给异或门330的第一端。按照对应的控制信号,将内积值IP(在图3B的执行子部件中说明)或寄存器300(1)的串行施加内容作用在异或门330的第二端上。异或门330将施加在其上的两个值相加以生成串行和S_SUM。在这方面,串行值IP及其相关的控制信号(IP_TO_SUM)被施加在与门324上,而来自寄存器300(1)的串行值及其相关的控制信号(S1_TO_SUM)则被施加在与门326上。将与门324(IP值)、326(寄存器300(1)的内容)传递的任何值通过用于加法目的的异或门328施加在异或门320上,供生成串行和S_SUM。
如上所述,寄存器300(0)是潜在地用串行施加在寄存器馈送多路复用器310(0)上的值馈入的。具体地,这两个馈入值便是寄存器300(0)本身的内容及刚才说明的串行和S_SUM。类似地,寄存器300(1)是潜在地串行施加在寄存器馈送多路复用器310(1)上的值馈入的。寄存器300(1)的两个馈入值中包含异或门328的输出(它可以是串行值IP或寄存器300(1)本身的串行内容)或寄存器R1(下面在图3B的执行子部件中说明)的串行输出内容之一。
计算器30的预处理子部件还包括一子码供给部分350。子码部分350包括一反相器352,它反相最终从系统控制器10接收的一个子码指示信号(即ENA_SUB)以产生施加在计算器30的执行子部件上的信号ENA_L_ECC。子码部分350还包括一长度选择开关或多路复用器354,当正在处理子码时开关354从寄存器300(1)将S1_ALPHA位5选通到输出线上,否则选通来自寄存器300(1)的位7。输出线S1_ALPHA是作用在计算器30的执行子部件上的,如下面讨论的。
计算器30的后处理子部件包括一比较电路360。用并行信号传送进行操作的比较电路360包括两个8位求和器,具体地说,求和器362及364;或门372及374;以及反相器380。求和器362将寄存器300(1)的内容与来自图3B的执行电路的值(具体地说来自第三寄存器体的值)相加。求和器364将求和器362的输出加在来自图3B的执行电路的另一值(具体地说,来自第一寄存器体的值)上。求和器362的输出端连接在或门372上,使得或门372输出指示对求和器362的两个输入值是否相等(信号SEOB)。类似地,求和器364的输出端连接在或门374上,它在对求和器364的两个输入值相等时输出一个反相信号ROOT。
计算器30的执行子部件整体示出在图3B中,其某些部分更详细地示出在图4中,图3B示出第一串行寄存器400;第二串行寄存器401;及第三串行寄存器402。图3B还示出内积电路404;门电路426;及加法器电路428。寄存器400、401、402、内积电路404、门电路426及加法器电路428一起构成一个Berlekamp Massey型卷积电路,但它是面向位的而不是面向字节的。具体地说,对于第一寄存器400的内容与第二寄存器401的内容内积电路400生成一个串行内积值(IP)。加法器电路428利用诸如内积电路404生成的内积与第三寄存器401的内容更新第二寄存器401的内容。
参考图4及Zook在1993年11月4日提交的名为“有限域反演器”并通过引用包含在此的序列号为08/147,758的美国专利申请可以理解图3B的卷积电路的细节。例如,图3B示出第一寄存器400为寄存器体4000-4007;第二寄存器401为寄存器体4010-4017;第三寄存器402为寄存器体4020-4027。这里所用的名词“寄存器体”是指通过它可以对位串行移位及用在卷积运算中的任何存储设备而言。
图4示出面向位的卷积电路的细节,它包括第一寄存器体4000-4007;第二寄存器体4010-4017;及第三或中间寄存器体4021-4027。考虑到图4的电路面向二进制,各寄存器400、401与402为(一位)触发器,并从而在这里也称作触发器。触发器400的输出针连接成使得其内容能向右移位(诸如触发器4007的输出到触发器4006,触发器4006的输出到触发器4005,及以此类推)。从传统的Berlekamp-Massey电路类似的方式,成对的触发器400与401(相同数字下标)的输出针(在与门420上)进行与运算。加法器4220-4226(它们在GF(2)中为异或门)将与门420的输出针的输出加在一起来产生类似于当前差异dn的项(加法器4220的输出)。
图4的卷积电路中还包含多个与门4260-4266,各与门426的输出针连接在其相关加法器428的第一输入上(诸如与门4260的输出针连接在加法器4280的第一输入针上,与门4261的输出针连接在加法器4281的第一输入针上,以此类推)。各与门426的第二输入针连接成接收来自加法器4220的当前差异dn(即内积值IP)。各加法器428的第二输入针连接到其对应的(相同下标)触发器401的输出针上。各加法器428的输出针连接到对应的(相同下标)三输入MUX 424的第三输入针上,如上所述。各与门426的第二输入针连接到其左边相邻的中间触发器402的一个输出针上。
为各中间触发器402设置了三输入MUX 430。MUX 4301-4306具有连接成接收初始化值“0”的第一输入针;MUX 4307具有分别连接成接收初始化值“1”与“0”的第一与第二输入针。MUX 4301-4306的第二输入针连接成接收来自左边相邻的中间寄存器402(带有减小1的下标的寄存器402)的输出。MUX 4301-4307的第三输入针连接成接收来自相同下标的A触发器401的输出。
各A触发器401具有其输出针连接在右边相邻的触发器401上(通过上述适当MUX 424的第二输入针),连接到与门420上(供在生成差异dn中使用),及连接到相同下标的中间触发器402上(通过相同下标的MUX 430)。
从而,图4的卷积电路包括B寄存器(触发器)400的一个存储体B400;A寄存器(触发器)401的一个存储体B401;及中间寄存器(触发器)402的一个存储体B402。如这里所使用的,应理解触发器是一位寄存器,而只要在实施本发明的其它方面时可利用具有大于一位容量的寄存器。如果在存储体B400与B401中的触发器数目为“m”(在示出的实施例中m=8),则存储体B402中的触发器数目为m-1。
对于图4中所示的电路。α0选定为使t=0,从而用于图4的电路所进行的求逆运算的α-t乘法器是乘以1的乘法(从而免除了在图4中示出α-t乘法器)。
如图3B中所示,各寄存器400、401与402具有一个串行输入端从而一个多位值可串行加载到其中。再者,各寄存器400、401、402具有与之关联的一个加载开关(诸如一个或多个多路复用器)用于连接其串行输入端,可将多个串行多位值的选中的一个加载到其中。具体地说,第一寄存器400具有第一寄存器加载开关440;第二寄存器401具有第二寄存器加载开关441;及第三寄存器402具有第三寄存器加载开关442。更具体地,加载开关440包括多路复用器440A与440B;加载开关441为一个多路复用器;而加载开关442包括多路复用器443、444、异或门445及与门446。如下面更详细地描述的,各加载开关连接在一组可以交替地选择的输入线上。
第一寄存器400与第三寄存器402都具有关联的反馈电路,它们是根据各自的加载开关440与442的选择可选择地使用的。具体地,第一寄存器400具有反馈电路450及第三寄存器402具有反馈电路452。各反馈电路450、452连接在其关联的各寄存器400、402的选中的位上,用于将各自的寄存器400、402的内容乘以一个反馈乘数。
如下面说明的,反馈电路450、452的反馈乘数的值是可选择地改变的。具体地,反馈乘数的值是通过改变该反馈乘数连接在其上的寄存器的选择而可选择地改变的。例如,反馈乘数的值是按照正在引导进相关的寄存器400、402的值的字段长度(例如按照正在处理的是6位子码字节还是8位字节)可选择地改变的。
反馈电路450包括异或门460;异或门470;与门480;异或门490;及与门494。异或门460的输入端连接在寄存器400的位2与3上;异或门470的输入端连接在寄存器400的位0与4上。这些连接是按照在本示例中使用的特定字段发生器多项式的;应理解利用不同的字段发生器多项式会包含不同的乘数,及异或门460与470的相应不同连接。异或门470的输出作用在与门480的一个输入端上,并且如果信号ENA_L_ECC为高时进一步作用在异或门490上(ENA_L_ECC是从预处理子部件的子码供应部分350得出的[见图3A]并在不处理子码时为高)。否则只将异或门460的输出传递给异或门490供用作反馈乘数。反馈的相乘的值是从异或门490作用在MUX 440A的多个输入端之一上的。
过去指出过并在下面结合基转换更详细地说明的,异或门490作为一个加法器,用于将所选择的任何反馈信号(从四位[ECC]连接或两位[子码]连接得出的)与从寄存器300(1)得出的值相加。当正在处理子码时,从寄存器300(1)得出的值可以是一个6位值(通过MUX 354与信号S1_ALPHA传输的),否则为一个8位值。
类似地,反馈电路452包括异或门462;异或门472;与门482;及异或门492。异或门462的输入端连接在寄存器402的位2与3上;异或门472的输入端连接在寄存器402的位0与4上。如上面结合反馈电路450说明的,这些连接是按照本示例中所用的特定字段发生器多项式的,应理解不同的字段发生器多项式的使用会包含不同的乘数及异或门462与472的相应不同连接。异或门472的输出作用在与门482的一个输入端上,并且如果如上所述信号ENA_L_ECC为高,则进一步作用在异或门492上。否则只有异或门462的输出被传递给异或门492供用作反馈乘数。反馈的相乘值从异或门492作用在MUX 443的多个输入端之一上。
反馈电路450的输出只是作用在第一寄存器加载开关440上的可选择输入之一。其它可选择的串行输入包含一个常数值(作用在线R1_CONST_IN上);求和电路320(见图3A)输出的S_SUM值;及从校正部件60得到的P_SUM值。类似地,第三寄存器加载开关442连接成接收多个交替的串行输入,其中包含反馈电路452产生的信号;常数值(作用在线R3_CONST_IN上并通过MUX 444与443);内积值IP(通过异或门445、MUX 444及MUX 443作用);及寄存器402本身的内容(在线R3(0)上并通过与门446、异或门445及MUX 444与443)。
第二寄存器加载开关441也连接成接收它从中选择的多个交替串行输入。具体地,加载开关441在常数值(作用在线R2_CONST_IN上);存储寄存器300(0)或100(1)的内容[见图3A];或从校正部件60得到的值P_SUM中进行选择。从而,看出第二存储体加载开关441连接在包含一组第二存储体串行输入线的多条输入线上,这些线路之一连接在第一多位存储寄存器300(0)上,第二条线连接在第二存储寄存器300(1)上。
参见图3A,现在理解了第二多位存储寄存器300(1)是有选择地连接成在其中加载来自第一寄存器400的值的(通过连接在MUX 310(1)上的线R1(0))。再者,看出求和电路320的输入端连接在第一存储寄存器300(0)上[通过线S0(0)];连接在第二存储寄存器300(1)上[通过线S1(0)];及连接在内积电路404上[通过线IP]。此外,求和电路320的输出端有选择地连接在第一存储寄存器300(0)[通过MUX 310(0)]与第二存储寄存器300(1)[通过MUX 310(1)]中各个上。
结构:基转换器
图5以较简化与孤立形式示出包含在计算器30中的基转换电路。具体地,基转换器包括上述双向移位寄存器300(1);第一寄存器400;一个加法器(异或门490);一个反馈电路(一般性地指示为包含加法器496);及一个转换控制与门498。图5中,反馈加法器496表示反馈乘法器(诸如图3B中的异或门460与470)。转换控制与门498在作用在其上的信号CONVERT为高时允许基转换。
从而图5的电路构成用于将一个m位输入值从一种输入基表示转换成一种输出基表示的一个双向转换单元。输入基表示与输出基表示之一为α基表示而输入基表示与输出基表示的另一个为β基表示。选择了β基表示的域元素α0使得其最高位为一而其余的位为零(即,10000000)。
在图5的转换单元中,双向移位寄存器300(1)起用于存储输入基表示的输入值的一个输入寄存器的作用,及用于按照输入基表示以预选的位次序串行输出输入值的输入寄存器的作用。寄存器400起转换存储器的作用并包括用于存储多个位的多个位单元。反馈乘法器496将转换存储器(即寄存器400)中的当前值乘以一个反馈常数,以便生成一个反馈因子。加法器490在m次加法运算的每一次中将(1)从输入寄存器[300(1)]输出的输入值与(2)反馈因子的对应的位相加。加法器490产生一个和数,将该和数加载进转换存储器(寄存器400)的最高位单元中,以及在任何其余加法运算中,将其串行移位通过转换存储器。
借此,图5的转换单元在m次加法运算的结尾,在转换存储器(即寄存器400)中提供m位输入值的输出基表示。当输入基表示为α基表示时,输入值是从其最高位到其最低位输出的(从寄存器300(1))。当输入基表示为β基表示时,输入值是从其最低位到其最高位输出的(从寄存器300(1))。
当输出基为α基时,α基表示是在寄存器400中以逆向位次序提供的。然而,通过串行地将寄存器400的内容移位回输入寄存器[寄存器300(1)]中同时将输入寄存器从低到高移位,便能容易地将这些位以非逆向次序重新排列。
下面说明图5的基转换器的操作,例如在名为“操作:错误模式生成”的讨论中。
结构:校正器
图6示出这里所涉及的图1的CD ROM纠错系统的校正器部件60的特征。校正器60包括错误读出寄存器610(0)与610(1)以及用于存储两组错误模式的错误中间寄存器620(0)与620(1),诸如,一组偶交错码字的错误模式与一组奇交错码字的错误模式。如这里所用的,各组错误模式是用标记E0、E1表示的。错误读出寄存器610(0)与610(1)是分别由错误中间寄存器620(0)与620(1)馈入的。错误中间寄存器620(0)与620(1)的馈送是分别用开关或多路复用器630(0)与630(1)控制的,它们或者将从计算器30接收的并行数据或者将各自的错误读出寄存器610(0)、610(1)的并行内容选通到其中。
如图6中所示,从计算器30得到的并行数据作用在总线DIN上,更具体地,这些数据是从计算器30的存储寄存器300(0)、300(1)得到的(图6中的总线DIN也代表从图3A中的总线S0或S1之一作用的信号,总线S0与S1与图1中所示的总线S02与S12相同)。利用MUX 630来将寄存器610的内容作用在寄存器620上允许错误值的循环,这对于存储与读出目的是有价值的。
错误读出寄存器610(0)与610(1)的输出端连接在错误读出开关或MUX 635的相应输入端上。MUX 635在总线ERR(见图6与图1)上输出错误模式E0、E1中选中的一个,供应用在EDC校验器70及控制器10两者上。
校正器60还包括用于存储两组指针的指针读出寄存器640(0)与640(1)以及指针中间寄存器650(0)与650(1),诸如一组偶交错码字指针及一组奇交错码字指针。如这里所用的,各组指针用标记P0、P1或αL0、αL1表示。以与错误寄存器类似的方式,指针读出寄存器640(0)与640(1)是分别由指针中间寄存器650(0)与650(1)馈入的。指针中间寄存器650(0)与650(1)的馈送是分别由开关或多路复用器660(0)与660(1)控制的,它们将从计算器30接收的并行数据或各自的指针读出寄存器460(0)、640(1)的并行内容选通到其中。从计算器30接收的数据以上面对错误模式描述的类似方式作用在总线DIN上。
校正器60还包括指针求和电路670,它在信号P1_TO_SUM的控制下串行相加来自寄存器640(0)与640(1)的指针值。指针求和电路包括与门672及异或门674。
结构:EDC校验器
EDC/CRC校验器70连接成在线ERR(0)上接收来自校正器60的串行错误模式及在线GDAT(0)上接收串行缓冲器数据,如图1中一般性所示及图7中更详细地所示。系统控制器10利用控制总线CBUS监视EDC/CRC校验器70的操作。
如Chris Zook 1994年9月16日提交的名为“CRC/EDC校验器系统”的序列号为08/306,917的美国专利申请中所描述的(通过引用将其结合在此),在系统控制器10的监视下,在正在校正字节的缓冲器的同一遍通过中,EDC/CRC校验器70与校正器60有利地协调操作来执行校正精确性的EDC/CRC检验。
操作:计算机数据/指针模式:概述
图1的纠错系统在两种模式中操作:(1)一种用于校正具有指针的计算机数据的两阶段模式;及(2)一种用于校正包含有音频数字数据的子码包(见图8A)的子码模式。在校正带有指针的计算机数据的两阶段模式中,发生器20、计算器30及校正器60各在两个阶段中操作,如图9中示意性地所示。具体地,在第一阶段中(称作指针时间或PTR_TIME):
(a)发生器20使用最新码字CWn的一位缓冲器获得的指针来生成一个或二个最新码字的多位缓冲器获得的指针(αL0=P0,αL1=P1);
(b)计算部件30利用发生器(20)为前一码字CWn-1生成的校正子(S0,S1)来为前一码字生成一种或两种错误模式(E0,E1);以及
(c)校正部件60为计算单元30保持前一码字CWn-1的指针值(αL0=P0,αL1=P1)。
在第二阶段中(称作数据时间或图9中的DATA_TIME):
(a)发生器20生成最新码字CWn的校正子(S0,S1);
(b)计算部件30对最新码字CWn的任何多位缓冲器获得的指针执行数学运算;以及
(c)校正单元60校正前一码字CWn-1。
在两个阶段的每一个中,发生部件20、计算部件30及校正部件60在整个系统能前进到下一阶段之前在最后完成部件上等待。
在这里引用最新码字或前一码字时,在图1的系统的上下文中应理解为每一个这种引用实际上是针对两个码字的(例如,两个最新码字及两个前一码字),因为图1中所示的系统主要同时处理来自偶交错码字与奇交错码字两者的字节。然而本发明的原理不局限于交错系统,应了解这里描述的两阶段操作也能应用于非交错系统,其中至少类似于发生部件20、计算部件30及校正系统60中各个的部件在单一的码字上操作。
从而本系统与传统的流水线技术不同,后者需要三种同时的阶段/操作,各阶段/操作使用不同的输入并且通常将输入从一个阶段传递给下一阶段。本系统的部件20、30与60以时分方式各处理两种不同的操作。再者,取决于操作阶段,各部件20、30及60执行两种功能。在一个操作阶段结束时,各部件20、30、60传递信息给另一部件,但随后在下一阶段中并不重复同一操作。而是在后面的阶段中,各部件20、30、60执行不同的操作,如上面概述及下面更详细描述的。
操作:指针生成
(计算机数据/指针模式)
如上面指出的,这里所例示的本发明的系统在计算机数据/指针模式中进行的操作中包含一个偶交错码字及一个奇交错码字。鉴于所例示的偶交错码字与奇交错码字的成对处理,应理解在后面的描述中,任何对码字的一般性引用既可应用于偶交错码字也可应用于奇交错码字。再者,如下面各种时机上所说明的,相对于一个偶交错码字生成的值在任何时刻可能存储在一个或多个第一寄存器中,而相对于奇交错码字生成的值在该时刻上可能存储在一个或多个第二寄存器中。
假定在要处理一个新码字,即最新码字CWn的时间上在执行计算机数据/指针模式,在PTR_TIME中相对于码字CWn所采取的第一行动是为多达两个指针的每一个生成以αL表示的一字节缓冲器指针信息。熟悉本技术的人员应能理解,缓冲器中已存储了各码字的各字节的一个缓冲器指针位单元。如果设置了一个字节的位单元,则说明相对于与该设置的位单元对应的码字字节出现或存在缓冲器指针。
如这里所使用的,利用名词“缓冲器”指针来表示以上述方式从该缓冲器得到的指针。这里对“指针”的所有引用应理解为意味着缓冲器指针,除非清楚地从反面标识为“系统”指针。系统指针的生成与使用在下面结合“操作:指针处理”进行描述。
在系统控制器10的监视下,发生器20在称作PTR_TIME的阶段中为各指针生成以αL表示的一字节指针信息。这一方面,随着以时钟方式在缓冲器中顺序地访问码字的指针位,当遇到第一个设置的指针位时,便将一个指针信号作用在系统控制器10上。系统控制器10将缓冲器中的位的定时与码字字节位置互相关联,并相应地记录为其生成用于第一个指针的指针信号的码字字节位置。
在接收到一个指针信号时,系统控制器10在总线GDAT上设置位0,总线GDAT是作用在门202及发生器控制器200上的。将指针初始化值(即1)加载进寄存器206(0)中。发生器控制器200还将信号作用在通用反馈电路210(0)上来配置其乘法常数(见图2A)。具体地,由于正在生成8位指针字节,系统控制器10将信号ENA_SC作用在MUX 230上,而发生器控制器200则将信号ENA_MUL作用在MUX 240上,从而乘法器228的乘数常数α可在反馈电路210(0)中运算。然后,随着通过缓冲器中的指针位的定时以各时钟继续进行,直到码字的最后时钟进展中的指针字节移位到寄存器208(0)中,乘以乘数常数,并存储在寄存器206(0)中,最终得出具有格式αL的一个指针字节。将第一个指针字节代表性地在这里称作αL0或P0。例如,如果为一个码字的第20个字节设置了第一个指针位,第一个指针字节将是α6(到码字的24字节数据部分的结尾还剩下四个后续时钟/字节及码字中的两个ECC字节,一共在码字中26个字节)。
如果对于该码字在缓冲器中遇到第二个指针位,便再一次设置位GDAT(0),作用在发生器控制器200及门202上,并由发生器控制器200记录为对应于第二指针。这一方面,发生器控制器200计数对于一个码字遇到的指针位的数目,并输出指示它的信号PCNT。发生器控制器200记录了已遇到第二指针,因此通过设置信号ENA_P1来通知门202。门202通过加载一个指针初始化值到寄存器206(1)中,并进行[与寄存器206(1)、208(1)、反馈电路210(1)及加法器204(1)并行]与刚才对第一指针描述的相同操作来应答。第二指针将在通过该码字的定时中的较后面的点上遇到(诸如字节22)。从而第二指针字节的乘法将在对应的较后面的阶段中开始。第二指针字节是代表性地在这里称作αL1或P1的。在码字的字节22上出现第二指针位的例子中,第二指针字节将是α4。
生成指针字节(P0或对于两指针码字的P0与P1两者)之后,将指针字节并行地从对应的寄存器208(0)、208(1)加载到计算部件30中,最终位于相应的寄存器300(0)、300(1)中供在下面的阶段(DATA_TIME)中计算部件30使用。上面对指针字节生成的描述涉及来自一个交错的最新码字。应理解,在各PTR_TIME阶段中,上述指针字节生成操作首先对一个偶交错码字出现然后对奇交错码字出现。生成后,同样将奇交错码字的指针字节加载进计算部件中,具体地,到寄存器302(0)与302(1)中。
将最新的偶交错码字与最新的奇交错码字两者的指针字节加载进计算部件之后,计算部件30便在紧随其后的阶段(DATA_TIME)中进行指针字节的处理。关于这一方面,见下面子标题为“操作:指针处理”的讨论。
如果一个码字的指针数超过2,作为信号PCNT作用的值将指出该码字是不能校正的。
操作:校正子生成
(计算机数据/指针模式)
在发生器20已在阶段PTR_TIME中为最新的码字CWn结束了生成一个或多个指针字节之后,发生器20等待下一阶段(DATA_TIME)的开始。在DATA_TIME中,发生器20为每一码字生成两个校正子(在这里代表性地表示为S0与S1),诸如为最新的码字CWn。
为了生成校正子,将反馈电路210(0)配置成利用不相乘反馈线220生成校正子S0。将反馈电路210(1)配置成通过由8位乘法器228实现乘法来生成校正子S1(以上面对指针所描述的十分相似的方式)。
首先将来自偶交错的最新码字的第一字节选通到两个寄存器206(0)与206(1)中,然后移位进对应的寄存器208(0)、208(1)中。接着将来自奇交错的最新码字的第一字节选通到两个寄存器206(0)与206(1)中。随后将来自偶交错的最新码字的第二字节选通到相对于偶交错码字的加法器204(0)、204(1)中。加法器204(0)将第二字节加在第一字节上;加法器204(1)在第二字节上加上第一字节的α倍。将来自加法器204(0)与204(1)的和分别加载进寄存器206(0)、206(1)。然后将来自奇交错的最新码字的第二字节选通到加法器204(0)、204(1)中。相对于奇交错码字,加法器204(0)将第二字节加在第一字节上;加法器204(1)在第二字节上加上第一字节的α倍。将进行中的偶交错校正子移位进寄存器208(0)、208(1),同时将来自相对于奇交错码字的加法器204(0)与204(1)的和分别加载进寄存器206(0)、206(1)。
为各码字的其余部分重复上述步骤,诸如为最新码字CWn的全部26个字节或45个字节(取决于是列还是对角线码字)。用图8B中的一列来描述码字字节的处理次序。这便是,对于偶交错的第一列码字,首先处理字节0000,接着字节0043,接着字节0086,继续到字节1075。
在一对最新码字CWn的校正子生成结束时,偶交错码字的校正子S0存储在寄存器208(0)中;偶交错码字的校正子S1存储在寄存器208(1)中;奇交错码字的校正子S0存储在寄存器206(0)中;奇交错码字的校正子S1存储在寄存器206(1)中。如下面所述(见“操作”错误模式生成),这些校正子值是计算部件30在紧随其后的阶段(PTR_TIME)中用来生成错误模式的。
操作:指针处理
(计算机数据/指针模式)
如上面指出的(见“操作:指针生成”),在阶段PTR_TIME中,发生部件20已为一个偶交错码字及一个奇交错码字两者生成了多达两个指针字节(P0、P1又称αL0、αL1)。在下面的阶段DATA_TIME开始时,这些指针字节已存储如下:奇交错码字的P0与P1分别在寄存器300(0)与300(1)中;偶交错码字的P0与P1分别在寄存器302(0)与302(1)中。
在DATA_TIME中,计算部件20为奇交错码字与偶交错码字两者处理指针P0、P1。对于首先处理的奇交错码字,计算器30在DATA_TIME中执行的处理为奇码字指针P0、P1的基转换(到β基表示)。对于后面处理的偶交错码字,计算器30在DATA_TIME中执行的处理不仅包含将偶码字指针P0、P1转换到β基表示,还包含(在存在两个指针时)以下述方式用基转换后的指针形成一个反相的和。
对于各码字,计算部件30的处理发生在两种情况之一中。第一种情况是在相对于一个码字最多生成一个缓冲器指针时实现的。第二种情况是在相对于一个码字生成两个缓冲器指针时实现的。
对于情况1的缓冲器指针处理,计算部件30将一个指针P0(如果存在的话)从α基表示转换成β基表示。对于情况2的缓冲器指针处理,计算部件30将两个指针P0与P1都从α基表示转换成β基表示,并用β基表示计算下述表达式(以后称作两个指针和的倒数): 也写作 计算部件30在阶段DATA_TIME中为偶交错码字形成两个指针和的倒数。如果需要为奇交错码字形成两个指针和的倒数,这一指针和的倒数是在紧随其后的阶段POINTER_TIME中形成的。
指针处理示出在图10中。图10的步骤1002到步骤1016是由计算部件30在阶段DATA_TIME中执行的。步骤1020到步骤1024是在紧随其后的POINTER_TIME阶段中执行的。
在步骤1002,计算部件30将奇交错码字的P0、P1转换成β表示。然后在步骤1004,将奇交错码字的β转换后的指针P0、P1移到寄存器302(0)、302(1)中临时存储。基本上同时,在步骤1006将偶交错码字的未转换的指针P0、P1从寄存器302(0)、302(1)移到寄存器300(0)、300(1)中以待进行基转换。在步骤1008发生偶交错码字的指针P0、P1到β基的转换。在步骤1010,在寄存器401中形成偶码字的和的倒数,将它保持在那里直到下一阶段。
在步骤1014,将所有指针都移到校正部件60中临时存储。这一方面,在步骤1012,将偶码字的指针P0、P1分别从寄存器300(0)、300(1)移到指针寄存器640(0)、640(1)中;将奇码字的指针P0、P1分别从寄存器302(0)、302(1)移到指针寄存器650(0)、650(1)中。随着指针的并串行移位到校正部件60中,发生器20生成的校正子移位到寄存器300、302中(用步骤1016反映)。
在POINTER_TIME中,为偶交错码字处理了错误值(用步骤1018描述)之后,在步骤1020校正部件60通过分别从寄存器640(0)、640(1)中将它们的值串行输出到求和电路670中而将奇码字的指针P0、P1相加。求和电路670产生的和(P_SUM上的串行位)通过MUX 441加载到寄存器401中(步骤1022)。在步骤1024,计算部件30形成寄存器401中的奇码字的P0+P1之和的倒数。此后,如用步骤1026所描述,计算部件30处理奇交错码字的错误值。
计算部件30所执行的基转换、加法与求倒数运算显示出计算部件30的通用性。下面更详细地讨论这些运算。
图11中描述了包含在指针P0、P1到β基表示的转换中的步骤。指针P0位于寄存器300(0)中。在步骤1102,将指针P0(通过MUX 441在线S0(0)上)加载进寄存器401中。在步骤1104,将(线R1_CONST_IN上的)常数“1”(通过MUX 440)加载进寄存器400中。进行面向位的卷积运算(步骤1106),将寄存器400与401的内积的位作为信号IP串行输出。在面向位的卷积中,通过加法器490与反馈电路450将α反馈作用在寄存器400上。作为信号IP串行输出的值便是β基表示的指针P0。在步骤1108,通过确定路径通过与门324、异或门328、异或门330、MUX 310(0)到寄存器300(0)将β基表示的指针P0加载回寄存器300(0)。
如果存在指针P1,便执行图11的其余步骤。这一方面,指针P1位于寄存器300(1)中。在步骤1112,(通过MUX 441在线S1(0)上)将指针P1加载进寄存器401中。以步骤1104相同的方式,(通过MUX 440)将(线R1_CONST_1N上的)常数“1”加载进寄存器400中。进行面向位的卷积运算(步骤1114),将寄存器400与401的内积的位作为信号IP串行输出。在面向位的卷积中,通过加法器490与反馈电路450将α-反馈作用在寄存器400上。作为信号IP串行输出的值便是β基表示的指针P1。在步骤1116,通过确定经过与门324、异或门328及MUX 310(1)到寄存器300(1)的路径,将β基表示的指针P1加载回寄存器300(1)中。
情况2包含指针P0与P1到β基表示的情况1的转换。图12中示出在指针P0与P1从α基表示到β基表示的转换以后,包含在情况2的加法与求倒数计算中的步骤。可以回忆起转换后的指针P0与P1分别在寄存器300(0)与300(1)中。
在步骤1202,将指针P0串行移位出寄存器300(0)通过与门322到异或门330,同时将指针P1串行移位出寄存器300(1)通过与门326及异或门328到异或门330。在步骤1204,P0与P1被异或门330相加,其和作为串行信号S_SUM出现。
然后对P0+P1之和进行求倒数运算。在步骤1208,将P0+P1之和加载进寄存器400。在步骤1210,利用寄存器400与401进行面向位的卷积。在面向位的卷积中,通过加法器490及反馈电路450将α-反馈作用在寄存器400上。从结合在这里的名为“有限域反演”的ChrisZook在1993年11月4日提交的序列号位08/147,758的美国专利申请中所理解的,卷积生成对应于一个m位值的电信号并将其存储在寄存器401中。寄存器401中的值为第一基表示并且是由卷积生成的,使得对于k<m-1,寄存器400(包含β基表示的和P0+P1)与αKB(其中B为寄存器401中的值)的内积等于0。从而,卷积在寄存器401中产生P0+P1之和的倒数,所产生的倒数(P0+P1)-1为α基表示。再次指出,结合求倒数运算,在图4中所示的电路中,选择α0来使t=0,从而图4的电路进行求倒数运算的α-t乘数为乘以1的乘法。
在DATA_TIME结束时,偶交错码字的两个指针之和的倒数(如果需要生成)位于寄存器401中,偶交错码字与奇交错码字的校正子分别存储在寄存器300、302中,偶码字的指针存储在寄存器640中,而奇码字的指针则存储在寄存器642中。
操作:错识模式生成
(计算机数据/指针模式)
如上所述,在阶段DATA_TIME中发生器20为偶交错码字与奇交错码字两者生成校正子S0、S1。在紧随生成码字校正子之后的PTR_TIME阶段中,计算部件30为码字生成多达两个错误模式(E0、E1)。在PTR_TIME阶段中,计算部件30首先为偶交错码字生成错误模式,然后为奇交错码字生成错误模式。
一个码字的错误模式生成出现在两种情况之一中。当一个码字具有少于两个指针时出现第一种情况的错误模式生成。而当一个码字具有两个指针时出现第二种情况的错误模式生成。图13例示第一种情况的错误模式生成;图14例示第二种情况的错误模式生成。
在第一种情况中,如果一个码字只有一个单一的错误指针(P0),该码字的单一错误模式将是S0。即码字的错误模式E0便是S0,即E0=S0(S0为码字的第一校正子)。然而对于这种单一错误情况,计算部件30为该错误生成其本身的系统指针(与缓冲器指针相对),然后保证系统指针与缓冲器指针都指向码字的同一字节。
第一种情况错误模式生成方案考虑到下述关系进行操作: 如果上述关系保持正确,便确认了存在一个单一的错误。
在上述考虑中,在图13的步骤1302,计算部件30力图计算出一个系统指针。步骤1302中的细节包含若干子步骤。在子步骤1302-2,将S0转换成β基表示(以前面讨论中知道的方式)并将其移至寄存器402中。类似地,在子步骤1302-4,将S1转换成β基表示并将其移入寄存器300(1)中。然后在子步骤1302-6,将常数α-1加载进寄存器400(通过MUX 440)并将常数α0加载进寄存器401(通过MUX 441)。在步骤1302-8,以寄存器400及402以反馈定时进行面向位的卷积。结合步骤1302-8,操作MUX 440与443来允许来自各反馈电路450、452的反馈加法。在卷积中,值S0αL保持在寄存器402中。随着卷积的出现,如用子步骤1302-10指出的,用比较电路350的加法器362将寄存器402的内容(值S0αL)加在S1(包含在寄存器300(1)中)上。当值S0αL与S1相等时(如用或门372检测到的),信号SEDB关掉。如果信号SEDB并未关掉(在子步骤1302-12中判定的),便确定码字是不能校正的(子步骤1302-14)。如果并在信号SEDB关掉时,寄存器400中的值便成为码字的计算出的系统指针(子步骤1302-16)。
在步骤1302计算出系统指针后,在步骤1304计算电路30保证系统指针与缓冲器提供的指针是相同的。为了进行比较,在子步骤1304-2将系统指针从寄存器400移入寄存器402中。在子步骤1304-4,将缓冲器指针移入寄存器400中。用加法器364(见图3A)将系统指针(路由通过加法器362)加到缓冲器指针上(子步骤1304-6)。如果指针值相等,便接通比较电路360生成的输出信号ROOT。如果ROOT不变成高(子步骤1304-8),码字便是不能校正的(子步骤1304-10)。当ROOT成为高时,缓冲器指针得到确认(子步骤1304-12)。
在步骤1304确认了缓冲器指针时,在步骤1306将缓冲器指针移回到校正部件60的P0指针寄存器中。由于只有一个错误,刚好在移动之前,寄存器400中的缓冲器指针值是用反馈(α8)定时的,从而缓冲器指针成为缓冲器指针的偏移量(如αL+8)。在校正部件60中这一码字的P1指针寄存器是设定为零的(步骤1308)。在第一种情况错误模式生成的末尾,错误模式S0=E0(从α基表示)保持在寄存器300中。
在第二种情况错误模式生成中,计算部件30计算两个错误值(E0、E1)。这两个错误值计算如下:
E0=S0+E1从而,E1的确定必须在E0的确定前面。
图14示出包含在第二种情况的错误模式生成中的基本步骤。在步骤1402,主要利用图5的基转换器电路将校正子S1(以α基表示)转换成β基表示。转换是通过启动信号S1_L2H(允许从最高位开始继续到最低位串行读出S1)及定时来自反馈电路450的反馈来完成的,从而将S1(以逆向位次序读出)逐位加在反馈信号上,借此在寄存器400中生成S1的β基表示。
在完成基转换时,将β转换的S1值移回寄存器300(1)中。将缓冲器指针P0(以形式αL0)从校正部件60移入寄存器400并将S0移入寄存器401,并同时将寄存器401的以前内容[即(P0+P1)-1]临时移到校正单元60。在步骤1404,通过用反馈定时寄存器400得出因子S0αL0从而在线IP上得到一个所要求的内积信号序列。在步骤1406通过求和电路320将线IP上的串行序列与寄存器300(1)的内容(S1)相加而得出项S1+S0αL0。然后将寄存器300(1)的内容[S1+S0αL0]移入寄存器400中。然后,在步骤1408,通过用存储在寄存器400中的因子S1+S0αL0去乘因子
(从指针寄存器P0(即寄存器640(0))得到并移入寄存器401的)而形成E1之积。乘法出现在面向位的卷积期间当通过反馈电路450用反馈来定时寄存器400时发生乘法。将作为信号IP生成的内积序列作用在寄存器300(1)上,而成为E1。
实现步骤1410、1412与1414来得出E0。在步骤1410,主要利用图5的基转换电路将E1从β基表示转换回α基表示。通过将E1从寄存器300(1)移入寄存器400中(通过与门482)及逐位相加来自反馈电路450的定时的反馈而产生这一转换。然后将E1(这时是寄存器400中的位逆序的α基表示)移到寄存器300(1)。在寄存器300(1)从低移位到高时,S0(仍为α基)保持在寄存器300(0)中。在步骤1412,通过求和电路320得出和S0+E1=E0,并将其放回寄存器300(0)中。然后,在已经计算出两个错误模式值E0与E1时,在步骤1414将码字的错误模式E0、E1移入校正部件60的错误寄存器中。
操作:校正
(计算机数据/指针模式)
在校正一对(偶交错与奇交错)码字时,校正部件60已在其指针寄存器640、650中存储有确认过的指针P0、P1,并在其错误寄存器610、620中存储有错误模式E0、E1。校正部件60为了校正目的访问在阶段DATA_TIME中在缓冲器中正在处理的块。块中的各码字是在连续的时钟周期中受到访问的。当码字的指针(作为图6中的线LOC_E上的输出)对应于当前定时的码字字节时,便利用通过MUX 635作用在总线ERR上的对应错误模式(E0或E1)来校正缓冲器中的出错字节。与这一校正处理同时,EDC校验器系统70正在执行对一块缓冲器的CRC检验(见“操作:EDC校验”)。
操作:概述
(带子码的音频)
子码模式操作用图15中所描述的基本步骤概述。在子码模式中,图1的纠错系统试图用分散在数字音频数据中的子码包(示出在图8A中)来执行校正。
步骤1510A与1510B涉及对包生成校正子。在步骤1510A中,利用前四个字节(包的“Q”部分)来生成Q部分上的校正子S0、S1,及开始生成整个包上的校正子S2、S3。在步骤1510B中,利用包的其余字节(如包的“P”部分)来完成整个包上的S2、S3的生成,及生成包的“P”部分上的校正子S0、S1。如对图8A所理解的,在例示的实施例中,包的第一或“Q”部分由前四个6位字节(诸如符号0-3)构成而包的第二或“Q”部分由其余的20个6位字节(诸如符号4-23)构成。通常利用包的第一或“Q”部分作包标识信息,而包的第二或“P”部分则包含数字数据等。
生成了包的“Q”部分上的校正子(即S0与S1);包的“P”部分上的校正子S0与S1;及整个包上的校正子S2与S3之后,系统控制器10分析这些校正子(见步骤1520)。步骤1520的分析得出四种可能情况并对其中三种应用不同的校正策略。根据第一种情况,错误出现在包的P部分中但不出现在包的Q部分中,从而提示系统控制器10执行双错误检测策略[DED](由图15中步骤1530例示)。根据第二种情况,错误出现在包的P与Q两部分中,从而提示系统控制器10在包的两个部分上执行单错误检测策略[SED](由图15中步骤1540例示)及随后在经过校正的码字上重新生成校正子(由图15中步骤1541例示)。根据第三种情况,错误出现在包的Q部分中但不出现在包的P部分中,从而提示系统控制器10执行四重错误检测策略[QD](由图15中步骤1550例示)。根据第四种情况,所有校正子为零(表示包中不存在错误)。
操作:校正子生成
(带子码的音频)
如图15中所指出的,子码的校正子生成包含两个独立的生成阶段(由步骤1510A与1510B描述)。在步骤1510A中,利用前面四个字节(包的“Q”部分)来生成Q部分上的校正子S0、S1及开始生成整个包上的校正子S2、S3。在步骤1510B中,利用包的其余字节(如包的“P”部分)来完成整个包上的S2、S3的生成及生成包的“P”部分上的校正子S0、S1。
在子码校正子生成中,两次将子码包的各字节(见图8A)定时到发生器20中,一次用于生成子码校正子S0、S1及一次用于生成校正子S2、S3。从而,在生成子码校正子时,不像生成计算机数据的校正子中那样将寄存器206、208用于不同交错,而是用于子码的不同校正子。
表1描述用于子码校正子生成的寄存器206、208的移位及反馈乘法运算。
表1
表1的第一行示出第一数据字节是如何加载进寄存器中的,将各寄存器中的第一数据字节标为S0、S1、S2与S3来指将从它们中生成的校正子。表1的第一行后面,执行对应于表1的后面6行的6个步骤。表1的第5与6行示出在两个时钟周期中第二数据字节的相加,首先在行5中加在校正子S0与S1上,然后(在移位寄存器值之后)在行6中加在校正子S2与S3上。行7示出校正子的进一步移位,准备好为下一个数据字节的未示出的加法。在加上下一个数据字节之前,应理解表1的行7中成为用于各校正子的更新值的表达式(诸如S1α+D)在加上下一数据字节之前将成为S1。
寄存器206(0) | 寄存器208(0) | 寄存器206(1) | 寄存器208(1) |
S0 | S2 | S1 | S3 |
S2 | S0 | S3α | S1 |
S0 | S2 | S1 | S3α |
S2α | S0 | S3α2 | S1 |
S0+D | S2α | S1α+D | S3α2 |
S2α2+D | S0+D | S3α3+D | S1α+D |
S0+D | S2α2+D | S1α+D | S3α3+D |
表1的行7之后,以对表1例示的相同方式加上下面的数据字节。这便是,对于各子码数据字节,执行由表1的行2到7所反映的6个步骤,6个时钟中只有2个实际上包含在引入新数据字节中。
对于表1中的6个步骤,应指出寄存器206的内容总是移位进寄存器208中。总是向寄存器206馈送寄存器208的内容乘以“1”或“α”。是出现乘以“1”还是乘以“α”的乘法是基于MUX 230、240的设定的(见图2A)。
在执行了四次表1的六个步骤之后(即在发生器20中加上了前面四个数据字节之后),寄存器208(0)中包含包的Q部分上生成的子码校正子S0,而寄存器208(1)中包含在包的Q部分上计算出的子码校正子S1。在这一点上,将包的Q部分上的子码校正子S0、S1加载进计算部件30中,从而完成图15的步骤1510A。
卸载了包的Q部分上校正子S0、S1之后,重新切换寄存器206、208的内容(即如表1的最后一行中),并为包的第五与其余字节重复这六个步骤。然而,为了生成包的P部分上的校正子S0、S1,要清除包含包的Q部分上的校正子S0、S1的寄存器,从而将包的第五字节加载进其中。
从而,在子码包的全部24个字节进入了发生器20,并为各字节执行了表1的步骤之后,寄存器208(0)与208(1)中将最终分别包含在包的Q部分上生成的子码校正子S0、S1,而寄存器206(0)、206(1)中将最终分别包含在整个包上生成的子码校正子S2、S3,从而完成了图15的步骤1510B。
操作:双错误检测
(带子码的音频)
图15A示出在图15的步骤1530中执行的子步骤(即在子码校正子的计算指明错误只位于子码包的P部分中而不在子码包的Q部分中时)。从而图15A示出包含在用于子码的本发明的双错误检测(DED)过程中的子步骤。
在子步骤1530-2,为子步骤1530-4的根搜索以计算部件30可使用的形式生成错误定位器多项式。通常,错误定位器多项式具有子码方程1的形式: 但由于根搜索通常是向后进行的,子码方程1必须乘以α-n(其中n为19),并且为了产生根搜索可利用的子码方程2而方便地乘以Δ:
Δ+α-nσ1′α-k+α-2nσ2′α-2k=0
子码方程2的错误定位器多项式是以对图15A中子步骤1530-2-2至1530-2-8所示的方式生成的。子码方程2的错误定位器多项式是用图15的步骤1510A、1510B上生成的校正子S0(P上)、S1(P上)、S2与S3生成的。首先,在子步骤1530-2-2用下述子码方程3生成项σ2′α-n:
σ2α-n=S1S3α-n+S2 2α-n然后,在子步骤1530-2-4,通过将子码方程3得出的值上乘以α-n生成项σ2α-2n。在子步骤1530-2-6用下述子码方程4得出项σ1α-n:
σ1α-n=S0S3α-n+S1S2α-n最后,在步骤1530-2-8用下述子码方程5得出项Δ:
Δ=S0S2+S1 2
在步骤1530-4,计算部件30通过加载σ2α-2n的值到寄存器400中,加载Δ的值到寄存器300(1)中、加载σ1α-n的值到寄存器402中并用图3A的求和电路求出这三个寄存器的内容之和,而进行根搜索。对于每一个根搜索迭代,寄存器400两次用反馈定时(为α-2n项)而寄存器402用反馈定时一次(为α-n项)。
当定位了一个根时,发生部件20必须生成一个形式αL的错误定位器字节。这一方面,当定位了一个根时,便设置GDAT的位0(如子步骤1530-4所指出的)。参照带指针的计算机数据所发生的形式αL的错误指针字节的类似生成(已在上面描述过)便能理解发生部件20的错误定位器字节的生成。
在子步骤1530-8与1530-12对在子步骤1530-4的卷积中检测到的根的数目与位置进行判定。这些判定决定对具有检测到的根的错误要发生什么类型的校正(如果有的话)。
例如,如果在子步骤1530-8上判定在前三个单元的三个中检测到了根,则在子步骤1530-10上,计算部件30执行单纠错过程。在子步骤1530-10上执行的单纠错过程基本上与上面讨论的用于带指针的计算机数据的相同(见诸如名为“操作:指针处理[情况1]”及“操作:错误模式生成[情况1]”的前文中的讨论)。在子步骤1530-10的指针处理与错误模式生成中,利用子码校正子S0、S1(都是在包的P部分上的)。作为错误模式生成的结果,校正部件60利用错误指针与错误模式来校正子码包的P部分中的单个出错字节。
如果在子步骤1530-12判定子码包中少于两个根,便确定了该包是不能校正的。
当判定对子码包存在两个根时,为了校正这两个错误,计算部件30进行双擦除校正过程(由子步骤1530-14描述)。在子步骤1530-14上执行的双擦除校正过程基本上与上面讨论的用于带指针的计算机数据的相同(见诸如名为“操作:指针处理[情况2]”及“操作:错误模式生成[情况2]”的上文中的讨论)。在子步骤1530-14的指针处理与错误模式生成中,利用子码校正子S0、S1(都是在包的P部分上的)。作为错误模式生成的结果,校正部件60利用错误指针与错误模式来校正子码包的P部分中的两个出错字节。
虽然计算步骤没有在这里具体说明,应当理解计算部件60执行在子步骤1530-4的根搜索中使用的σ2α-2n、Δ及σ1α-n的计算。
操作:单错误检测
(带子码的音频)
当在图15的步骤1520上判定子码包(见图8A)的Q部分与P部分中都存在错误时,便对子码包的两个部分分开进行单错误检测操作(步骤1540)。
步骤1540的单错误检测(SED)操作更详细地示出在图15B中。作为第一子步骤(子步骤1540-2),对包的Q部分执行错误检测/校正。在子步骤1540-2,利用在包的Q部分上生成的子码校正子值S0、S1来进行与结合计算机数据的情况1描述的相同错误指针处理与错误模式生成。这一方面,见诸如名为“操作:指针处理[情况1]”及“操作:错误模式生成[情况1]”的上文中的讨论。结合子步骤1540-2,校正部件60利用这样生成的错误指针与错误模式来校正子码包的Q部分中的出错字节。
第二,在子步骤1540-4上,对包的P部分执行错误检测/校正。在子步骤1540-4中,利用在包的Q部分上生成的子码校正子值S0、S1来进行结合计算机数据的情况1描述的相同错误指针处理与错误模式生成。这一方面,再参见诸如名为“操作:指针处理[情况1]”及“操作:错误模式生成[情况1]”的上文中的讨论。结合子步骤1540-2,校正部件60利用这样生成的错误指针与错误模式来校正子码包的P部分中的出错字节。
如图15的步骤1541中所示,分别在子步骤1540-2与1540-4上试图校正子码包的Q与P部分之后,以上述相同的方式(见诸如“操作:校正子生成(带子码的音频)”)再次重新生成所有子码校正子。如果重新生成的所有校正子为零,便认为该子码包是可校正的。
操作:四重擦除校正
(带子码的音频)
当在图15的步骤1520上判定错误只存在在子码包的Q部分中时(见图8A),例如包的P部分上的S0与S1为零,便对该子码包的Q部分进行步骤1550的四重擦除校正。
在子步骤1550-2,在子步骤1550-4上计算出四个错误模式E0、E1、E2与E3。各错误模式是用下述方程生成的:
Ek=S0ak0+S1ak1+S2ak2+S3ak3其中根据表2选择ak0、ak1、ak2与ak3的记录值。
表2
在子步骤1550-2计算出四个错误模式E0、E1、E2与E3之后,(在子步骤1550-4)进行检验来保证至少一个错误模式为零。这是减少误校正的概率。如果无一错误模式为零,则认为子码包是不能校正的。这些错误模式是校正部件60为了校正子码包的Q部分中的三个或三个以下出错字节而使用的。
Ek | ak0 | ak1 | ak2 | ak3 |
E0 | 13 | 37 | 59 | 13 |
E1 | 40 | 22 | 31 | 39 |
E2 | 42 | 11 | 45 | 40 |
E3 | 19 | 42 | 0 | 16 |
虽然已经参照其较佳实施例具体展示与描述了本发明,熟悉本技术的人员应能理解可在其中作出形式上与细节上的各种改变而仍不脱离本发明的精神与范围。
Claims (39)
1、纠错装置,供与以码字形式的缓冲器获得的数据及对这种数据生成的任何指针使用,来自缓冲器的指针是一位缓冲器获得的指针,其特征在于该纠错装置包括:
一个发生器,为码字生成校正子及使用对于该码字任何一位缓冲器获得的指针来生成一个多位缓冲器获得的指针;
一个计算单元,利用发生器为一个码字生成的校正子来为该码字生成一个错误模式;
一个校正单元,利用计算单元生成的错误模式来校正为其生成该错误模式的码字。
2、权利要求1的装置,其中该缓冲器从密致盘上获得码字形式的数据。
3、权利要求1的装置,其中,当为一个码字在缓冲器中提供了两个一位缓冲器获得的指针时,该发生器生成两个对应的多位缓冲器获得的指针,及其中该计算单元也利用一个码字的这两个多位缓冲器获得的指针来对该码字形成一个中间指针表达式,及其中该计算单元利用发生器为一个码字生成的两个校正子与中间指针表达式来为该码字生成两个错误模式。
4、权利要求1的装置,其中当为一个码字在缓冲器中提供了一个一位缓冲器获得的指针时,计算单元利用发生器生成的校正子为该码字生成一个独立导出的指针。
5、权利要求4的装置,其中该计算单元利用发生器生成的校正子作为该码字的单一错误模式。
6、权利要求1的装置,其中该计算单元比较该码字的独立导出的指针与该码字的多位缓冲器获得的指针并根据该比较输出一个指针比较信号。
7、权利要求6的装置,其中如果该码字的独立导出的指针不等于该码字的多位缓冲器获得的指针,该指针比较信号指示一个不能校正的码字。
8、权利要求1的装置,其中该发生器生成的多位缓冲器获得的指针具有格式αL。
9、权利要求1的装置,其中该发生器与该计算单元各在两个阶段中操作,其中在第一阶段中:
该发生器利用最新码字的任何一位缓冲器获得的指针来计算最新码字的一个多位缓冲器获得的指针;同时
该计算单元利用发生器为前一码字生成的校正子来生成前一码字的错误模式;以及
其中在第二阶段中:
发生器生成最新码字的校正子;同时
计算单元对最新码字的任何多位缓冲器获得的指针执行数学运算。
10、权利要求9的装置,其中,当为一个码字在缓冲器中提供了一个一位缓冲器获得的指针时,对多位缓冲器获得的指针执行的数学运算为将该多位缓冲器获得的指针从α基表示到β基表示的转换。
11、权利要求9的装置,其中在第二阶段中,该计算单元利用发生器生成的校正子来生成该码字的一个独立导出的指针。
12、权利要求11的装置,其中在第一阶段中,该计算单元比较前一码字的独立导出的指针与该前一码字的多位缓冲器获得的指针并根据该比较输出一个指针比较信号。
13、权利要求12的装置,其中如果前一码字的独立导出的指针不等于前一码字的多位缓冲器获得的指针,该指针比较信号指示一个不能校正的码字。
14、权利要求9的装置,其中,当为一个码字在缓冲器中提供了两个一位缓冲器获得的指针时,对多位缓冲器获得的指针执行的数学运算为将这两个多位缓冲器获得的指针从α基表示到β基表示的转换,并形成两个多位缓冲器获得的指针的β基表示之和的倒数。
15、权利要求9的装置,其中该校正单元也在两个阶段中操作,其中在第一阶段中,该校正单元存储最新码字的任何多位缓冲器获得的指针,及在第二阶段中,该校正单元利用计算单元生成的错误模式来校正前一码字。
16、权利要求9的装置,其中将该缓冲器概念化为具有两个交错的块,包含一个第一块及一个第二块,其中码字是从缓冲器中成对获得的,各对码字中包含从第一块获得的一个第一块最新码字及从第二块获得的一个第二块最新码字,以及
其中在第一阶段中:
该发生器为第一块最新码字与第二块最新码字两者生成任何多位缓冲器获得的指针;同时
该计算单元为来自第一块的前一码字生成一个错误模式,然后为来自第二块的前一码字生成一个错误模式,来自第一块的前一码字是已经与来自第二块的前一码字配对的;以及
其中在第二阶段中:
该发生器为第一块最新码字及第二块最新码字生成校正子;同时
该计算单元对来自第一块的前一码字及来自第二块的前一码字的任何多位缓冲器获得的指针执行数学运算。
17、一种纠错方法,供与码字形式的缓冲器获得的数据及对这种数据生成的任何指针使用,来自缓冲器的指针为一位缓冲器获得的指针,其特征在于该纠错方法包括下述步骤:
(1)利用最新码字的任何一位缓冲器获得的指针来生成该最新码字的多位缓冲器获得的指针;同时
(2)利用为前一码字生成的校正子来生成前一码字的错误模式;
(3)生成最新码字的校正子;同时
(4)对最新码字的任何多位缓冲器获得的指针执行数学运算。
18、权利要求17的方法,其中该缓冲器从密致盘上获得码字形式的数据。
19、权利要求17的方法,还包括利用校正子发生器既生成校正子又生成多位缓冲器获得的指针的步骤。
20、权利要求17的方法,其中步骤(1)与(2)是在第一阶段操作中基本上同时执行的,而步骤(3)与(4)则是在第二阶段操作中基本上同时执行的。
21、权利要求17的方法,其中在步骤(1)与(2)中,将最新码字的任何多位缓冲器获得的指针存储在校正单元中,及其中在第二阶段的步骤(3)与(4)中,该校正单元利用计算单元生成的错误模式来校正前一码字。
22、权利要求17的方法,其中,在为一个两个错误的码字在缓冲器中提供了两个一位缓冲器获得的指针时,在步骤(1)中为这两个错误的码字生成两个对应的多位缓冲器获得的指针,其中在步骤(4)中利用该两个错误的码字的两个多位缓冲器获得的指针对该两个错误的码字形成一个中间指针表达式,以及其中在步骤(2)中利用校正子与该中间指针表达式两者来为该两个错误的码字生成两个错误模式。
23、权利要求17的方法,其中当为一个少于两个错误的码字在缓冲器中提供了一个一位缓冲器获得的指针时,利用校正子来为该少于两个错误的码字生成一个独立导出的指针。
24、权利要求23的方法,其中该独立导出的指针是在步骤(2)中生成的。
25、权利要求23的方法,还包括:
比较该少于两个错误的码字的独立导出的指针与该少于两个错误的码字的多位缓冲器获得的指针;以及
根据比较输出一个指针比较信号。
26、权利要求25的方法,其中如果该少于两个错误的码字的独立导出的指针不等于该少于两个错误的码字的多位缓冲器获得的指针,则该指针比较信号指示一个不能校正的码字。
27、权利要求23的方法,其中利用一个校正子作为该码字的单一错误模式。
28、权利要求17的方法,其中当为一个少于两个错误的码字在缓冲器中提供了一个一位缓冲器获得的指针时,对多位缓冲器获得的指针执行的数学运算为将该多位缓冲器获得的指针从α基表示到β基表示的转换。
29、权利要求17的方法,其中当为一个两个错误的码字在缓冲器中提供了两个一位缓冲器获得的指针时,对多位缓冲器获得的指针执行的数学运算包括:
将两个多位缓冲器获得的指针从α基表示转换到β基表示;以及
形成这两个多位缓冲器获得的指针的β基表示之和的倒数。
30、权利要求17的方法,其中将该缓冲器概念化为具有两个交错的块,包含一个第一块及一个第二块,其中码字是成对地从缓冲器中获得的,各对码字中包含从第一块获得一个第一块最新码字及从第二块获得的一个第二块最新码字;以及
其中在步骤(1)中,为第一块最新码字及第二块最新码字两者生成任何多位缓冲器获得的指针;
其中在步骤(2)中,首先为来自第一块的前一码字生成一个错误模式,然后为来自第二块的前一码字生成一个错误模式,来自第一块的前一码字是已经与来自第二块的前一码字配对的;
其中在步骤(3)中,为第一块最新码字及第二块最新码字生成校正子;以及
其中在步骤(4)中,对来自第一块的前一码字及来自第二块的前一码字的任何多位缓冲器获得的指针执行数学运算。
31、权利要求30的方法,其中步骤(1)与(2)是在第一阶段操作中基本上同时执行的,而步骤(3)与(4)是在第二阶段操作中基本上同时执行的。
32、权利要求30的方法,其中,当为一个两个错误的码字在缓冲器中提供了两个一位缓冲器获得的指针时,在步骤(1)中为该两个错误的码字生成两个对应的多位缓冲器获得的指针,其中在步骤(4)中,利用该两个错误的码字的两个多位缓冲器获得的指针来对该两个错误的码字形成一个中间指针表达式,以及其中在步骤(2)中,利用校正子及中间指针表达式两者来为该两个错误的码字生成两个错误模式。
33、权利要求30的方法,其中当为一个少于两个错误的码字在缓冲器中提供了一个一位缓冲器获得的指针时,利用校正子来为该少于两个错误的码字生成一个独立导出的指针。
34、权利要求33的方法,其中该独立导出的指针是在步骤(2)中生成的。
35、权利要求34的方法,还包括:
比较少于两个错误的码字的独立导出的指针与该少于两个错误的码字的多位缓冲器获得的指针;以及
根据比较输出一个指针比较信号。
36、权利要求35的方法,其中如果该少于两个错误的码字的独立导出的指针不等于该少于两个错误的码字的多位缓冲器获得的指针,该指针比较信号指示一个不能校正的码字。
37、权利要求30的方法,其中,当为一个少于两个错误的码字在缓冲器中提供了一个一位缓冲器获得的指针时,对多位缓冲器获得的指针执行的数学运算为该多位缓冲器获得的指针从α基表示到β基表示的转换。
38、权利要求30的方法,其中,当为一个两个错误的码字在缓冲器中提供了两个一位缓冲器获得的指针时,对该多位缓冲器获得的指针执行的数学运算包括:
将两个多位缓冲器获得的指针从α基表示转换到β基表示;以及
形成这两个多位缓冲器获得的指针的β基表示之和的倒数。
39、权利要求30的方法,其中该缓冲器中包含来自密致盘的码字形式的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/307,259 | 1994-09-16 | ||
US08/307,259 US5592404A (en) | 1993-11-04 | 1994-09-16 | Versatile error correction system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1158676A CN1158676A (zh) | 1997-09-03 |
CN1099110C true CN1099110C (zh) | 2003-01-15 |
Family
ID=23188931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95195065A Expired - Fee Related CN1099110C (zh) | 1994-09-16 | 1995-09-15 | 通用纠错系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5592404A (zh) |
EP (3) | EP0974968A3 (zh) |
JP (1) | JP3250735B2 (zh) |
KR (1) | KR100295478B1 (zh) |
CN (1) | CN1099110C (zh) |
DE (1) | DE69516882T2 (zh) |
WO (1) | WO1996008873A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592498A (en) * | 1994-09-16 | 1997-01-07 | Cirrus Logic, Inc. | CRC/EDC checker system |
US5727003A (en) * | 1995-07-03 | 1998-03-10 | Cirrus Logic, Inc. | Method and apparatus for flash burst error correction |
FR2743908B1 (fr) * | 1996-01-18 | 1998-02-27 | Sgs Thomson Microelectronics | Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery |
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 |
US6092231A (en) * | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
DE69919199T2 (de) | 1998-11-09 | 2005-09-15 | Broadcom Corp., Irvine | Vorwärtsfehlerkorrektur |
US6260053B1 (en) | 1998-12-09 | 2001-07-10 | Cirrus Logic, Inc. | Efficient and scalable FIR filter architecture for decimation |
US6147631A (en) * | 1998-12-09 | 2000-11-14 | Cirrus Logic, Inc. | Input sampling structure for delta-sigma modulator |
US6662336B1 (en) | 1999-07-06 | 2003-12-09 | Cirrus Logic, Inc. | Error correction method and apparatus |
US6446233B1 (en) | 1999-09-10 | 2002-09-03 | Lsi Logic Corporation | Forward error correction apparatus and methods |
KR100499878B1 (ko) * | 2001-09-29 | 2005-07-07 | 주식회사 씨엔에스 | 디브이디 램에서의 피아이디에 대한 에러 정정 회로 |
US7111228B1 (en) | 2002-05-07 | 2006-09-19 | Marvell International Ltd. | System and method for performing parity checks in disk storage system |
US7287102B1 (en) | 2003-01-31 | 2007-10-23 | Marvell International Ltd. | System and method for concatenating data |
US7007114B1 (en) * | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
US7492545B1 (en) | 2003-03-10 | 2009-02-17 | Marvell International Ltd. | Method and system for automatic time base adjustment for disk drive servo controllers |
US7457903B2 (en) * | 2003-03-10 | 2008-11-25 | Marvell International Ltd. | Interrupt controller for processing fast and regular interrupts |
US7099963B2 (en) * | 2003-03-10 | 2006-08-29 | Qlogic Corporation | Method and system for monitoring embedded disk controller components |
US7870346B2 (en) * | 2003-03-10 | 2011-01-11 | Marvell International Ltd. | Servo controller interface module for embedded disk controllers |
US7039771B1 (en) | 2003-03-10 | 2006-05-02 | Marvell International Ltd. | Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers |
KR100763324B1 (ko) * | 2003-05-30 | 2007-10-05 | 인터내셔널 비지네스 머신즈 코포레이션 | 데이터 저장 시스템 |
US7526691B1 (en) | 2003-10-15 | 2009-04-28 | Marvell International Ltd. | System and method for using TAP controllers |
US7139150B2 (en) * | 2004-02-10 | 2006-11-21 | Marvell International Ltd. | Method and system for head position control in embedded disk drive controllers |
US7120084B2 (en) * | 2004-06-14 | 2006-10-10 | Marvell International Ltd. | Integrated memory controller |
US8166217B2 (en) * | 2004-06-28 | 2012-04-24 | Marvell International Ltd. | System and method for reading and writing data using storage controllers |
US9201599B2 (en) * | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US7757009B2 (en) * | 2004-07-19 | 2010-07-13 | Marvell International Ltd. | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device |
US8032674B2 (en) * | 2004-07-19 | 2011-10-04 | Marvell International Ltd. | System and method for controlling buffer memory overflow and underflow conditions in storage controllers |
US7386661B2 (en) | 2004-10-13 | 2008-06-10 | Marvell International Ltd. | Power save module for storage controllers |
US7240267B2 (en) * | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7802026B2 (en) * | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US7609468B2 (en) * | 2005-04-06 | 2009-10-27 | Marvell International Ltd. | Method and system for read gate timing control for storage controllers |
US20070128459A1 (en) * | 2005-12-07 | 2007-06-07 | Kurian Joseph V | Poly(trimethylene terephthalate)/poly(alpha-hydroxy acid) films |
US7743311B2 (en) * | 2006-01-26 | 2010-06-22 | Hitachi Global Storage Technologies Netherlands, B.V. | Combined encoder/syndrome generator with reduced delay |
EP2096884A1 (en) | 2008-02-29 | 2009-09-02 | Koninklijke KPN N.V. | Telecommunications network and method for time-based network access |
US8543888B2 (en) * | 2009-06-09 | 2013-09-24 | Microchip Technology Incorporated | Programmable cyclic redundancy check CRC unit |
US8139304B2 (en) * | 2010-08-03 | 2012-03-20 | International Business Machines Corporation | Tape layout design for reliable ECC decoding |
US11383494B2 (en) | 2016-07-01 | 2022-07-12 | General Electric Company | Ceramic matrix composite articles having different localized properties and methods for forming same |
US9853810B1 (en) * | 2016-09-30 | 2017-12-26 | International Business Machines Corporation | Message padding for bit-oriented and bit-reversed input messages |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101642A (zh) * | 1985-04-01 | 1987-01-10 | 索尼公司 | 用于记录和/或重现数字数据的系统 |
US4852105A (en) * | 1983-10-08 | 1989-07-25 | Deutsche Thompson-Brandt Gmbh | System for evaluation of a subcode |
US5157669A (en) * | 1988-10-14 | 1992-10-20 | Advanced Micro Devices, Inc. | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors |
CN1068454A (zh) * | 1991-07-09 | 1993-01-27 | 三星电子株式会社 | 数据纠错译码方法及其装置 |
CN1097079A (zh) * | 1993-06-28 | 1995-01-04 | 三星电子株式会社 | 纠错存储器系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US28923A (en) * | 1860-06-26 | Henry o | ||
US4077028A (en) * | 1976-06-14 | 1978-02-28 | Ncr Corporation | Error checking and correcting device |
JPS62281626A (ja) * | 1986-05-30 | 1987-12-07 | Nippon Telegr & Teleph Corp <Ntt> | デジタルデ−タ伝送方式 |
US5218691A (en) * | 1988-07-26 | 1993-06-08 | Disk Emulation Systems, Inc. | Disk emulation system |
US5027357A (en) * | 1988-10-14 | 1991-06-25 | Advanced Micro Devices, Inc. | ECC/CRC error detection and correction system |
US5084878A (en) * | 1988-10-24 | 1992-01-28 | Hitachi, Ltd. | Fault tolerant system employing majority voting |
EP0617363B1 (en) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Defective cell substitution in EEprom array |
US5010554A (en) * | 1989-05-12 | 1991-04-23 | At&T Bell Laboratories | Error correction method and apparatus |
EP0431629A3 (en) * | 1989-12-08 | 1993-07-21 | Sony Corporation | Mutual division circuit |
US5440570A (en) * | 1990-03-27 | 1995-08-08 | National Science Council | Real-time binary BCH decoder |
JPH04222029A (ja) * | 1990-12-21 | 1992-08-12 | Sony Corp | エラー訂正方法 |
US5291584A (en) * | 1991-07-23 | 1994-03-01 | Nexcom Technology, Inc. | Methods and apparatus for hard disk emulation |
US5404361A (en) * | 1992-07-27 | 1995-04-04 | Storage Technology Corporation | Method and apparatus for ensuring data integrity in a dynamically mapped data storage subsystem |
JPH0696531A (ja) * | 1992-09-11 | 1994-04-08 | Pioneer Electron Corp | サブコードq補間装置 |
JPH06203487A (ja) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | 誤り訂正方法及び装置 |
-
1994
- 1994-09-16 US US08/307,259 patent/US5592404A/en not_active Expired - Lifetime
-
1995
- 1995-09-15 DE DE69516882T patent/DE69516882T2/de not_active Expired - Fee Related
- 1995-09-15 EP EP99121077A patent/EP0974968A3/en not_active Withdrawn
- 1995-09-15 JP JP51040596A patent/JP3250735B2/ja not_active Expired - Fee Related
- 1995-09-15 EP EP95933877A patent/EP0781470B1/en not_active Expired - Lifetime
- 1995-09-15 CN CN95195065A patent/CN1099110C/zh not_active Expired - Fee Related
- 1995-09-15 WO PCT/US1995/011987 patent/WO1996008873A1/en active IP Right Grant
- 1995-09-15 KR KR1019970701713A patent/KR100295478B1/ko not_active IP Right Cessation
- 1995-09-15 EP EP99121076A patent/EP0973267A3/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4852105A (en) * | 1983-10-08 | 1989-07-25 | Deutsche Thompson-Brandt Gmbh | System for evaluation of a subcode |
CN85101642A (zh) * | 1985-04-01 | 1987-01-10 | 索尼公司 | 用于记录和/或重现数字数据的系统 |
US5157669A (en) * | 1988-10-14 | 1992-10-20 | Advanced Micro Devices, Inc. | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors |
CN1068454A (zh) * | 1991-07-09 | 1993-01-27 | 三星电子株式会社 | 数据纠错译码方法及其装置 |
CN1097079A (zh) * | 1993-06-28 | 1995-01-04 | 三星电子株式会社 | 纠错存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
KR100295478B1 (ko) | 2001-09-17 |
EP0974968A2 (en) | 2000-01-26 |
DE69516882D1 (de) | 2000-06-15 |
DE69516882T2 (de) | 2000-11-16 |
EP0973267A3 (en) | 2003-10-15 |
JPH10500270A (ja) | 1998-01-06 |
CN1158676A (zh) | 1997-09-03 |
EP0781470A1 (en) | 1997-07-02 |
EP0973267A2 (en) | 2000-01-19 |
JP3250735B2 (ja) | 2002-01-28 |
EP0781470B1 (en) | 2000-05-10 |
WO1996008873A1 (en) | 1996-03-21 |
US5592404A (en) | 1997-01-07 |
KR970706655A (ko) | 1997-11-03 |
EP0974968A3 (en) | 2003-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1099110C (zh) | 通用纠错系统 | |
CN1153354C (zh) | 纠错编码器、纠错解码器和具有纠错码的数据传输系统 | |
EP0096109B1 (en) | Error correcting system | |
CN1118140C (zh) | 处理单元和处理方法 | |
CN1836394A (zh) | 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法 | |
CN1334645A (zh) | 纠错编码译码方法和利用这种方法的电路 | |
CN1164039C (zh) | 里德-所罗门编码装置 | |
CN1171389C (zh) | 用于生成循环冗余校验代码的并行循环冗余校验生成电路 | |
CN101080874A (zh) | 纠错编码装置以及在其中使用的纠错编码方法 | |
EP0787325A4 (en) | METHOD AND APPARATUS FOR CORRECTING ERRORS FOR A DISK UNIT EMULATOR | |
CN1685621A (zh) | 用于解交织通信设备中的交织数据流的方法和装置 | |
CN1318905A (zh) | 测链搜索装置 | |
CN1286275C (zh) | 纠错装置 | |
CN1160726C (zh) | 纠错装置和包含该装置的光盘阅读器 | |
US6738947B1 (en) | Method and apparatus for error correction | |
US5555516A (en) | Multipurpose error correction calculation circuit | |
CN1163684A (zh) | 多用途纠错计算电路 | |
US20040078747A1 (en) | Generalized forney algorithm circuit | |
CN1601913A (zh) | 平行化循环冗余码计算方法及系统 | |
CN1169785A (zh) | 盘驱动器仿真器的纠错方法与装置 | |
CN1152379C (zh) | 光盘驱动装置的编码/解码系统 | |
CN100440738C (zh) | BCH编码中Galois扩域运算的快速实现方法 | |
CN1773864A (zh) | 一种纠错能力为2的扩展里德—所罗门码的译码方法 | |
JP2797570B2 (ja) | ユークリッドの互除回路 | |
CN1158518A (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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |