JPH10500270A - 多目的誤り訂正システム - Google Patents

多目的誤り訂正システム

Info

Publication number
JPH10500270A
JPH10500270A JP8510405A JP51040596A JPH10500270A JP H10500270 A JPH10500270 A JP H10500270A JP 8510405 A JP8510405 A JP 8510405A JP 51040596 A JP51040596 A JP 51040596A JP H10500270 A JPH10500270 A JP H10500270A
Authority
JP
Japan
Prior art keywords
pointer
codeword
bit
buffer
syndrome
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.)
Granted
Application number
JP8510405A
Other languages
English (en)
Other versions
JP3250735B2 (ja
Inventor
クリストファー ピー. ズーク,
Original Assignee
シーラス ロジック, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シーラス ロジック, インコーポレイテッド filed Critical シーラス ロジック, インコーポレイテッド
Publication of JPH10500270A publication Critical patent/JPH10500270A/ja
Application granted granted Critical
Publication of JP3250735B2 publication Critical patent/JP3250735B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • 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)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 誤り訂正システムは、2つのモードで動作する。すなわち、(1)ポインタを有するコンピュータデータを訂正するための2フェーズ式モード、および(2)オーディオディジタルデータと共に含まれるサブコードパックを訂正するためのサブコードモードである。ポインタを含むコンピュータデータを訂正するための2フェーズ式モードのあいだ、発生器(20)、計算器(30)および訂正器(60)はそれぞれ、2つのフェーズのあいだに動作される。第1フェーズ(PTR TIMEとして知られている)の間、発生器(20)は、最も最近のコードワードに対して、1つまたは2つの、マルチビットのバッファで得られたポインタ(αL0=P0、αL1=P1)を発生し、計算器(30)は、以前のコードワードCWn-1に対して発生器(20)により発生されたシンドローム(S0、S1)を用いて、以前のコードワードに対する1つまたは2つの誤りパターン(E0、E1)を発生する。第2フェーズ(DATA TIMEとして示される)のあいだ、発生器(20)は、最も最近のコードワードCWnに対するシンドローム(S0、S1)を発生し、計算器(30)は、最も最近のコードワードCWnに対する何らかのマルチビットのバッファで得られたポインタ(つまり、P0、P1)に対して数学的演算をおこなう。サブコードモードでは、この誤り訂正システムは、サブコードパックを用いて訂正をおこなおうと試みる。サブコードを訂正するとき、このシステムは、まずパックの異なる部分に対して異なるサブコードシンドロームのセットを発生する。サブコードシンドロームの発生の後、システムコントローラ(10)は、サブコードシンドロームを解析し、その解析に基づいて、異なる訂正戦略を適用する。コンピュータデータおよびサブコードのフィールド長が異なることを考慮に入れて、シンドローム発生器(20)は、異なるフィードバックパス(例えば、フィードバック乗算器)を選択するように、選択的に構成可能となっている。

Description

【発明の詳細な説明】 多目的誤り訂正システム 本願は、Chris Zookにより1993年11月4日に出願され、"FINITE FE ILDINVERSION"と題された米国特許出願第08/147,758号の一部継続 出願であり、以下の同時に出願された特許出願、すなわち、Chris Zookにより 1994年9月16日に出願され、"MULTIPURPOSE ERROR CORR ECTION CALCULATIONCIRCUIT"と題された米国特許出願 第08/306,918号およびChris Zookにより1994年9月16日に出願され、"CRC/ EDC CHECKER SYSTEM"と題された米国特許出願第08/306,917号 に関連している。本願では、上記特許出願のすべてが参考として援用される。 背景 1.発明の分野 本発明は、コンピュータデータあるいはディジタルオーディオデータのいずれ かを処理することができる、コンパクトディスクドライブ用の誤り訂正システム を含むがそれには限定されない、誤り訂正システムに関する。 2.関連する技術および他の考察 コンパクトディスク(CD)は、当初、音声記録および再生に用いられていた 。音声上の目的でCDドライブによりCDを操作することはランダムアクセスを 伴うものではないので、(例えば、ディスク上の異なる音声作品の)サーチは、 どのような場合でも比較的低速でおこなわれる。また、人間の耳は、再生された 音声を連続的に、かつ本質的にリアルタイムで処理し、受け取るので、音声上の 目的では、CDドライブには、すべての誤りを訂正する必要はない。たとえ、音 声記録時に訂正不可能な誤りが生じたとしても、そのような誤りを訂正する試み として、CD上で誤りが存在している箇所のバックアップをとり、それを再びリ ードすることは実用的ではない。そうではなく、訂正不可能な誤りは、どのよう な ものでも、空白にされたり、および/またはその他の時間近似信号により推定さ れた(例えば平均のとられた)信号に置換されるのが典型的である。 CD上の記録は、本質的にスパイラルなパスでおこなわれる。このパスは、あ る程度、半径の異なる複数のトラックを有するものとして概念づけられている。 音声用では、CDは、複数のフレームを含むようにフォーマットされる。それぞ れのフレームは、2352の8ビットバイトのディジタルオーディオデータを有して いる。 音声用では、CDは、その上に記録されたワーク(例えば、歌)についてのデ ィジタルオーディオデータのみならず、サブコードも含んでいるようにフォーマ ットされる。これらのサブコードは、一定の間隔でCD上のオーディオデータ間 に分散される。分散されたサブコードは、いくつかのパックにグループ分けする ためにアセンブルされる。図8Aに示されているように、それぞれのサブコード パックは、24の6ビットバイトを有している。よって、各サブコードバイトのフ ィールド長(6ビット)は、データバイトのフィールド長(8ビット)とは異な る。 図8Aに示されているように、1個のサブコードパックは、「Q」部と「P」 部とに分割されるように概念づけられる。各サブコードパックの「Q」部は、最 初の4つの6ビットシンボル(例えば、バイト0〜3)からなり、各サブコードの 「P」部は、残りのシンボル(例えば、バイト4〜23)からなる。本発明を理解 するためには必要ではないが、サブコードは、トラックが切り替えられる時には 、(そのトラックがオーディオデータであろうとなかろうと)、ワークの始端か らの時間の長さなどの表示を与えるものとして用いられることにも、ついでなの で言及しておく。ある種のアプリケーションでは、音声出力(例えば、カラオケ )に付随する視覚的表示情報としてのグラフィックス情報が、そのようなサブコ ード内に格納されうる。 当初は音声上の目的に用いられたものではあったが、最近数年間では、CDは 、コンピュータデータの記録にも用いられてきている。コンピュータデータの見 地からすると、CDは、複数の2352の8ビットバイトを含むようにフォーマット される。CD上に記録されるコンピュータデータには、サブコードは用いられな い。 CDが再生される時、フレーム(音声用)またはセクタ(コンピュータデータ 用)の関連部分は、バッファ(例えばRAM)内にロードされる。バッファは、 それぞれのフレーム/セクタについて2064バイトのデータを保持する。 すべてのCDデータは、CIRC ECCによって最も低いレベルで保護され る。コンピュータデータの記録/再生に関して、ある種のCDシステムは、レイ ヤードECCと呼ばれる誤り訂正能力をさらに提供する。誤り訂正をおこなうこ とを目的として、それぞれのフレーム/セクタは、バッファに格納されている時 には、2つのブロックまたはインタリーブを含んでいるものとして概念づけられ る。図8Bは、フレーム/セクタに対する偶数ブロック/インタリーブと、奇数 ブロック/インタリーブとの両方を示している。フレーム/セクタのこれら2つ のブロックは、積コードのスキームを用いる誤り訂正コードにより処理される。 それぞれのブロックにおいて、1カラムのバイトは、1個のコードワードを含ん でいる。例えば、偶数ブロックでは、バイト0000、0043、0086、…0989は、カラ ムコードワードCWeven0のデータ部を含んでおり、バイト0001、0044、0087、 …0990は、カラムコードワードCWeven1のデータ部を含んでいる。以下も同様 である。バイト1032および1075は、カラムコードワードCWeven0のECC部を 含んでおり、バイト1033および1076は、カラムコードワードCWeven1のECC 部を含んでいる。以下も同様である。奇数のブロックについても、同様のコード ワードCWodd0、CWodd1等が存在している。よって、それぞれのブロックには 、43個のカラムコードワードがあることになる。それぞれのブロックの最後の2 バイト(例えば、バイト1030even、1030odd、1031even、1031odd)は、CRC/ EDC情報を含んているので、EDCブロックあるいはCRCブロックとして知 られている。ある種のフォーマットでは、CRCバイトは、必ずしもブロックの データ部の最後のバイトではない。例えば、図2のブロックを完全には満たして いないデータフォーマットでは、データの末尾に続いてCRCバイトを配置し、 それらのブロックが満たされるまで、そのCRCバイトに続けて0のバイトを埋 め込むこともできる。 また、それぞれのブロックにおいて、バイトの対角線は、対角線コードワード を含んでいる。例えば、図8Bの偶数ブロックを参照すると、第1の対角線コー ドワードは、バイト0000、0044、0088、…1056、1100、0026、…0686、0730、11 18、1144を含んでいる。よって、それぞれのブロックには、42個のカラムコード ワードと、26個の対角線コードワードとがあることになる。 図8Bに図示されているものは、バッファにおけるデータがコードワード順に 格納されるわけではないという事実を不明瞭にすべきではない。例えば、バッフ ァにおけるセクタは、以下の順で格納されているバイトを有している。偶数ブロ ックのバイト0000(すなわち、バイト0000even)、奇数ブロックからのバイト0000 (すなわち、バイト0000odd)、バイト0001even、バイト0001odd、および以下、バ イト1031even、1031oddまで同様に続くバイトである。 コンピュータデータが、CDから、誤り訂正能力を有するシステムによって受 け取られた時、CIRC ECCは、レイヤードECCにより用いられることに なる誤りポインタを生成しうる。このようなCDドライブ用の誤り訂正システム では、それぞれのコードワードにつき最大2つのポインタが与えられる。それぞ れのポインタは、通常、1ビットの情報である。典型的には、セクタに対するポ インタ情報は、バッファ中で、それに対応づけられたセクタの前または後に格納 される。そのようにして、ポインタは、どのコードワードのどのバイトを指して いるかが判断されうる。 よって、コンピュータデータの用途では、CDシステム用のバッファは、複数 のセクタを格納してきており、ポインタ情報も、それぞれのセクタについてその 中に格納されてきた。同様に、音声上の用途でも、CDシステムのバッファは、 複数のサブコードパックと共に、複数のフレームをその中に格納してきた。 要旨 誤り訂正システムは、2つのモードで動作する。すなわち、(1)ポインタを 有するコンピュータデータを訂正するための2フェーズ式モード、および(2) オーディオディジタルデータと共に含まれるサブコードパックを訂正するための サブコードモードである。ポインタを含むコンピュータデータを訂正するための 2フェーズ式モードのあいだ、発生器、計算器および訂正器はそれぞれ、2つの フェーズのあいだに動作される。第1フェーズ(PTR TIMEとして知られ ている)のあいだ、 (a)発生器は、最も最近のコードワードCWnに対する何らかの1ビットのバ ッファで得られたポインタを用いて、最も最近のコードワードに対する1つまた は2つのマルチビットのバッファで得られたポインタ(αL0=P0、αL1=P1)を 発生し、 (b)計算器は、以前のコードワードCWn-4に対して発生器により発生された シンドローム(S0、S1)を用いて、以前のコードワードに対する1つまたは2 つの誤りパターン(E0、E1)を発生し、また (c)訂正部は、以前のコードワードCWn-1に対するポインタ値(αL1=P0、 αL1=P1)を計算ユニットのために保持する。 第2フェーズ(DATA TIMEとして示される)のあいだ、 (a)発生器は、最も最近のコードワードCWnに対するシンドローム(S0、 S1)を発生し、 (b)計算器は、最も最近のコードワードCWnに対して供給された何らかのマ ルチビットのバッファで得られたポインタ(つまり、P0、P1)に対して数学的 演算をおこない、また (c)訂正ユニットは、以前のコードワードCWn-1を訂正する。 これら2つのフェーズのそれぞれにおいて、発生部、計算部および訂正部は、 全システムが次のフェーズに進むことができるまで、最後に完了すべきセクショ ンを待つ。 よって本システムは、3つの同時のステージ/動作を必要とする従来のパイプ ライン技法とは異なり、それぞれのステージ/動作は、異なる入力を用いており 、一般に入力をあるステージから次のステージへと渡す。本システムの構成セク ションは、それぞれ、2つの異なる動作を時間分割方式で取り扱う。さらにそれ ぞれのセクションは、動作のフェーズに依存して、2つの機能をおこなう。動作 のあるフェーズが終わると、それぞれのセクションは、情報を他のセクションに 渡すが、その後、次のフェーズにおいては同じ動作を繰り返さない。そうではな く、以上に要約し、以下に詳述するように、後続するフェーズのあいだ、それぞ れの セクションは、異なる動作を実行する。 サブコードモードでは、この誤り訂正システムは、サブコードパックを用いて 訂正をおこなおうと試みる。サブコードを訂正するとき、このシステムは、まず パックに対するシンドロームを発生する。具体的には、パックの第1部分つまり 「Q」部分にわたってシンドロームS0およびS1を発生し、パックの第2部分つ まり「P」部分にわたってシンドロームS0およびS1を発生し、かつ、全パック にわたってシンドロームS2およびS3を発生する。シンドロームの発生の後、シ ステムコントローラはシンドロームを解析し、その解析に基づいて、異なる訂正 戦略を適用する。第1のケースでは、誤りは、パックのP部分には起こるが、パ ックのQ部分には起こらないので、二重誤り検出戦略[DED]が実行される。 第2のケースでは、誤りは、パックのP部分およびQ部分の両方に起こるので、 パックの両部分、および、それに引き続いて訂正されたコードワードにわたって 再び発生された、さらなるチェックとしてのシンドロームを対象として、単一誤 り検出戦略[SED]が実行される。第3のケースでは、誤りは、パックのQ部 分には起こるが、パックのP部分には起こらないので、四重誤り検出戦略[QD ]が実行される。 コンピュータデータおよびサブコードのフィールド長が異なることを考慮に入 れれば、このシンドローム発生器は、異なるフィードバックパス(例えば、フィ ードバック乗算器)を選択するように、選択的に構成可能であるという利点を有 する。 図面の簡単な説明 本発明の上記目的、特徴および利点、ならびにその他の目的、特徴および利点 は、添付の図面に図示されている好ましい実施形態の、以下に述べるより詳細な 説明から明らかになるであろう。なお、全図面を通して、参照番号は同一の部分 を指すものとする。また、図面は必ずしも実際の縮尺に則ったものではなく、本 発明の原理を図示するために強調されていることもある。 図1は、本発明のある実施形態によるCD ROM誤り訂正システムの模式的 ブロック図である。 図2は、図1のCD ROM誤り訂正システム用の発生器部分の模式的ブロッ ク図である。 図2Aは、図2の発生器回路の一部の回路インプリメンテーションを示す模式 的ブロック図である。 図3は、図3Aと図3Bとの間の関係を示す模式的ブロック図であり、図3A および図3Bは、図1のCD ROM誤り訂正システム用の計算部を包括的に図 示する模式的ブロック図である。 図4は、図3Bの計算部に含まれるたたみ込み回路の模式図である。 図5は、図3Aおよび図3Bの計算部に含まれる基底変換回路の模式図である 。 図6は、図1のCD ROM誤り訂正システム用の訂正器部の模式的ブロック 図である。 図7は、図1のCD ROM誤り訂正システム用のEDCチェッカ部の模式図 である。 図8Aは、従来のサブコードパックのフォーマットを図示している。 図8Bは、バッファに格納されているコードワードの2つのブロックに分けら れ、インタリーブされた概念づけを図示している。 図9は、図1のCD ROM誤り訂正システムの2フェーズ方式(ポインタを 含むコンピュータデータ)操作を示すチャートである。 図10は、ポインタの処理に伴うステップを概略的に図示するフローチャートで ある。 図11は、値をα基底表現からβ基底表現に変換する際に本発明の計算回路によ り実行されるステップを図示するフローチャートである。 図12は、バッファポインタ処理のケース2に関連して本発明の計算回路により 実行される各ステップを図示するフローチャートである。 図13は、誤りパターン発生の第1のケースに伴う基本的ステップを図示するフ ローチャートである。 図14は、誤りパターン発生の第2のケースに伴う基本的ステップを図示するフ ローチャートである。 図15は、サブコードを処理する時に図1のCD ROM誤り訂正システムによ り実行されるステップを図示するフローチャートであり、図15と、図15A、図15 Bおよび図15Cとの間の関係もさらに示している。 図15Aは、サブコード用のDOUBLE ERROR DETECTION(二 重誤り検出、DED)演算に伴うステップを示すフローチャートである。 図15Bは、サブコード用のSINGLE ERROR DETECTION(単 一誤り検出、SED)演算に伴うステップを示すフローチャートである。 図15Cは、QUADRUPLE ERASURE COREECTION(四重 消去訂正)演算に伴うステップを示すフローチャートである。 図面の詳細な説明 図1は、システムコントローラ10を介してバッファ(破線15によって概略的に 示される)と通信するCD ROM誤り訂正システムを示す。バッファは、CD ROMシステムが現在、コンピュータデータを処理するために動作しているのか 、あるいはディジタルオーディオデータを処理するために動作しているのかによ って、その中に複数のセクタまたは複数のフレームのいすれかを格納している。 コンピュータデータを処理するときには、バッファは、上述したように、その中 にポインタビットも格納している。ディジタルオーディオデータを処理するとき には、バッファは、その中に分散されたサブコードをもち、このサブコードは、 図8Aに示し、上述したようにサブコードパックをつくりだす。インタリーブの 技法は、特にここに示されている誤り訂正スキームにおいて実現され、その結果 データの1セクタは、図8Bに示されるように、コードワードの2つのブロック、 例えば偶数ブロックと奇数ブロックとを含むものとして概念化される。データの バイトは、バッファとコントローラ10との間をデータバスBDを介して転送され 、制御情報を含むその他の情報は、制御バスBBUS上でやりとりされる。 図1のCD ROM誤り訂正システムは、さらに発生器、つまり発生部20、計 算器、つまり計算部30、訂正器、つまり訂正部60、およびEDCチェッカ部70を 含む。図1のCD ROM誤り訂正システムの動作の全体は、コントローラ10に より、例えばバスCBUS上に運ばれる制御信号およびその他の信号を用いるこ とによって管理される。これらの制御信号およびその他の信号は、システムの構 成部分についてより具体的に示された他の図面に示されている。 構成:発生器 発生器20は、SYNGENとしても知られており、図2により詳細に示されて いる。以下でわかるように、コンピュータデータ/ポインタモードのあいだは、 発生器20は、DATA TIMEフェーズのあいだにコードワード用のシンドロ ームを発生し、PTR TIMEフェーズのあいだにmビットの誤りポインタ値 を発生する。サブコードモードのあいだは、発生器20は、サブコード用のシンド ロームを発生する。 発生器20は、それ自身の部分のコントローラ、すなわち、基本的にはCBUS の中に含まれて導線でそれが結ばれているシステムコントローラ10の管理下で動 作する、発生器コントローラ200を有する。発生器20は、さらに、ゲートチップ2 02、2つの加算器204、具体的には加算器204(0)および204(1)、2つの直後のレ ジスタ206、具体的にはレジスタ206(0)および206(1)、2つの最終的なレジスタ2 08、具体的にはレジスタ208(0)および208(1)、ならびに2つの万能フィードバッ ク回路210、具体的にはフィードバック回路210(0)および210(1)を含む。加えて 、発生器20は、2つのORゲート212、具体的にはORゲート212(0)および212(1 )を含む。 バッファからのデータは、システムコントローラ10から発生器20へとパラレル バスGDAT上を伝送され、ゲート202にそのピンDIにおいて与えられる。図 示されているシステムのインタリーブされた動作を考えれば、2バイトのデータ は、それぞれの伝送のあいだに連続的に発生器20に与えられる。具体的には、そ れぞれの伝送ごとに、まず偶数インタリーブからの1バイトのデータがゲート20 2に与えられた後、奇数インタリーブからの1バイトのデータが続く。図2に示 されるように、発生器20は、実際には2つのサブ発生器、つまり、加算器204(0) 、レジスタ206(0)、レジスタ208(0)、およびフィードバック回路210(0)を備えて いるS0シンドロームサブ発生器と、加算器204(1)、レジスタ206(1)、レジスタ2 08(1)、およびフィードバック回路210(1)を備えているS1シンドロームサブ発生 器とを備えている。コンピュータデータ/ポインタモードのあいだ、 例えばゲート202は、偶数インタリーブからのバイトを偶数サブ発生器へと、奇 数インタリーブからのバイトを奇数サブ発生器へと向ける。 それぞれのサブ発生器は、図2Aにおいて機能的に交互に表される。イネーブ ルライン214上に与えられた信号は、ゲート202が加算器204に1バイトを与えら れるようにする。与えられたバイトは、フィードバック回路210を通してゲート された信号と加えられる。加算の結果は、まず直後のレジスタ206に格納され、 それから最終的なレジスタ208にシフトされる。よって最終的なレジスタ208の内 容は、フィードバック回路210を介して加算器204へとフィードバックされうる。 図2Aは、発生器20、特にフィードバック回路210の選択的な構成可能性を示 す。例えば、フィードバック回路210は、3つの交互のフィードバックライン、 具体的にはフィードバックライン216、218および220を含むものとして示されて いる。フィードバックライン216および218は、それらに設けられている乗算器22 6および228を有しており、いっぽうフィードバックライン220は、乗算器を有し ない。乗算器226は、例示的にアルファSC(サブコードが処理されているときに 用いられる)として示されているフィードバック値によって乗算をおこない、乗 算器228は、例示的にアルファ(サブコードが処理されていないときに用いられ る)として示されているフィードバック値によって乗算をおこなう。乗算器226 および228の出力端子は、乗算器選択スイッチ(マルチプレクサ)230のそれぞれ の交互の入力端子に接続されている。乗算器選択スイッチ230の出力端子は、乗 算イネーブルスイッチ(乗算器)240の第1入力端子に接続されており、スイッ チ240の第2入力端子は、フィードバックライン220に接続されている。最終的な レジスタ208中に格納されている値がフィードバック乗算器によって乗算される ときには、スイッチ240に与えられた信号ENA MULは、スイッチ230に与え られた信号ENA SCに応じて、それを通して、ライン216上のフィードバック 信号(乗算器226によって乗算された)か、またはライン218上のフィードバ ック信号(乗算器228によって乗算された)かをゲートする。 後でわかるように、シンドロームを発生するために発生器20が用いられると き(動作のDATA TIMEフェーズのあいだ)、レジスタ208(0)は、偶数イ ンタリーブからのコードワードに対して発生された第1シンドローム(S0)を 格納するために用いられ、レジスタ206(0)は、荒救インタリーブからのコードワ ードに対して発生された第1シンドローム(S0)を格納するために用いられ、 レジスタ208(1)は、偶数インタリーブからのコードワードに対する第2シンドロ ーム(S1)を格納するために用いられ、レジスタ206(1)は、奇数インタリーブ からのコードワードに対する第2シンドローム(S1)を格納するために用いら れる。ポインタを発生するために発生器20が用いられるとき(動作のPTR T IMEフェーズのあいだ)、偶数インタリーブコードワードについての第1ポイ ンタは、レジスタ208(0)に格納され、偶数インタリーブコードワードについての 第2ポインタは、レジスタ208(1)に格納され、奇数インタリーブコードワードに ついての第1ポインタは、レジスタ206(0)に格納され、奇数インタリーブコード ワードについての第2ポインタは、レジスタ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、S11ともラベ ルが付けられている[図1に示すように]。 構成:計算器 計算器30は、前/後処理サブセクション(図3Aに示される)および実行サブ セクション(図3Bに示される)をともに含む。前/後処理サブセクションと、 実行サブセクションとが組み合わされて、加算、乗算、逆演算、基底変換および 内積形成を含む数多くのシリアル演算をおこなう多目的計算回路を構成する。 計算器30の前処理サブセクションは、図3Aの上半分に示され、一方、後処理 サブセクションは、図3Aの下半分に示されている。前処理サブセクションは、 2つのマルチビット記憶レジスタ300、具体的には第1マルチビット記憶レジス タ300(0)と、第2マルチビット記憶レジスタ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、中間レジスタ302を通しての記憶レジスタ 300へのデータの転送は、パラレルにおこなわれる。 記憶レジスタ300(0)および300(1)、ならびに第2マルチビット記憶レジスタは 、8ビットシリアルシフトレジスタである。図5について後述されるように、基 底変換演算において特にユニークな役割をはたす記憶レジスタ300(1)は、双方向 のシフトレジスタである。レジスタ300における値は、パラレルに読み出されて それぞれの乗算器304に与えられるか、または後述するようにシリアルに図3B の実行サブセクションへとシフトアウトされる。 計算器30の前処理サブセクションはさらに、図3Aに示されているように、レ ジスタフィーディングスイッチ、つまりマルチプレクサ310(0)および310(1)を備 えており、これらは、交互の値をそれぞれレジスタ300(0)および300(1)へシリア ルにフィーディングすることを可能にする(例えば中間レジスタ302からの値以 外の値)。 加えて、計算器30の前処理サブセクションは、和回路320を含む。和回路は、 複数のANDゲートおよびXORゲート、具体的にはANDゲート322、324およ び326、ならびにXORゲート328および330を含む。ANDゲート322が制御 信号S0 TO SUMを受け取るとき、ゲート322は、シリアルにレジスタ300(0 )からのビットをXORゲート330の第1端子に通す。対応する制御信号に応じて 、内積値IP(図3Bの実行サブセクションにおいて説明される)またはレジス タ300(1)のシリアルに与えられる内容がXORゲート330の第2端子に与えられ る。XORゲート330は、それに与えられた2つの値を加えて、シリアル和S S UMをつくる。この点で、シリアル値IPおよびそれに関連づけられた制御信号 (IP TO SUM)は、ANDゲート324に与えられ、いっぽうレジスタ300(1 )からのシリアル値およびそれに関連づけられた制御信号(S1 TO SUM) は、ANDゲート326に与えられる。ANDゲート324(IP値)、326(レジス タ300(1)の内容)によって通された値はどれても、シリアル和S SUMをつく るために、XORゲート328を介して和をとる目的でXORゲート320に与えられ る。 上述のようにレジスタ300(0)は、レジスタフィーディングマルチプレクサ310( 0)にシリアルに与えられる値によって潜在的にフィードされる。特に2つのフィ ーディング値は、レジスタ300(0)それ自身の内容(S0(0))およびいま説明し たシリアル和S SUMである。同様にレジスタ300(1)は、レジスタフィーディ ングマルチプレクサ310(1)にシリアルに与えられる値によって潜在的にフィード される。レジスタ300(1)についての2つのフィーディング値は、XORゲート32 8の出力(これはシリアル値IPまたはレジスタ300(1)それ自身のシリアルの内 容のいずれかでありうる)またはレジスタR1のシリアルに出力された内容(後 で図3Bの実行サブセクションにおいて説明される)を含む。 計算器30の前処理サブセクションは、またサブコード収容部350を含む。サブ コード部350は、最終的にシステムコントローラ10から受け取られるサブコード を示す信号(すなわちENA SUB)を反転して計算器30の実行サブセクショ ンに与えられる信号ENA L ECCをつくるインバータ352を含む。サブコー ド部350は、サブコードか処理されるときには、レジスタ300(1)からのビット5 を、またそうでないときにはレジスタ300(1)からのビット7を出力ラインS1 ALPHAへとシリアルにゲートする長さ選択スイッチつまりマルチプレクサ35 4をさらに含む。出力ラインS1 ALPHAは、以下で説明される計算器30の実 行サブセクションに与えられる。 計算器30の後処理サブセクションは、比較回路360を含む。パラレル信号転送 をともなって動作する比較回路360は、2つの8ビット加算器、具体的には加算 器362および364、ORゲート372および374、およびインバータ380を含む。加算 器362は、レジスタ300(1)の内容および図3Bの実行回路からの値(具体的には レジスタの第3バンクからの値)を加える。加算器364は、加算器362の出力を図 3Bの実行回路からの他の値(具体的にはレジスタの第1バンクからの値)に加 える。加算器362の出力端子は、ORゲート372に接続されており、それによりO Rゲート372が、加算器362への2つの入力値が等しいかどうかを示すものを(信 号SEDBとして)出力する。同様に加算器364の出力端子は、ORゲート374に 接続されており、これは加算器364への2つの入力値か等しいときに反転された 信号ROOTを出力する。 計算器30の実行サブセクションは、図3Bに概略的に示されており、その一部 は、図4にさらに詳細に示されている。図3Bは、第1シリアルレジスタ400、 第2シリアルレジスタ401、および第3シリアルレジスタ402を示す。図3Bはま た、内積回路404、ゲート回路426、および加算器回路428も示す。レジスタ400、 401、402、内積回路404、ゲート回路426、および加算器回路428は、組み合わせ られると、Berlekamp-Massey型のたたみ込み回路を構成するが、バイト指向よ りというはむしろビット指向である。特に、内積回路400は、第1レジスタ400の 内容および第2レジスタ401の内容について、シリアル内積値(IP)を発生す る。加算器回路428は、例えば内積回路404によって発生された内積および第3レ ジスタ401の内容を用いて、第2レジスタ401の内容をアップデートする。 図3Bのたたみ込み回路の詳細は、図4および1993年11月4日に出願された「 有限フィールドインバータ("FINITE FIELD INVERTER")」と 題され、ここでも参考として援用されるZookの米国特許出願第08/147,758号を 参照すれば理解されるものである。例えば、図3Bは、第1レジスタ400がレジ スタ4000〜4007のバンクであり、第2レジスタ401がレジスタ4010〜4017のバン クであり、第3レジスタ402がレジスタ4020〜4027のバンクであることを示して いる。ここで用いられるように、「レジスタのバンク」という語は、ビットがシ リアル にシフトされてたたみ込み演算に利用されうる記憶デバイスをどれでもさす。 図4は、第1レジスタ4000〜4007のバンク、第2レジスタ4010〜4017のバンク 、第3または中間レジスタ4021〜4027のバンクを含むビット指向のたたみ込み回 路の詳細を示す。図4の回路のバイナリ指向を考えれば、レジスタ400、401およ び402は、それぞれ(1ビットの)フリップフロップであり、したがってここで はフリップフロップとも呼ばれる。フリップフロップ400の出力ピンは、その内 容が右にシフトされるように接続されている(例えばフリップフロップ4007から の出力がフリップフロップ4006に、フリップフロップ4006からの出力がフリップ フロップ4005に、など)。従来のBerlekamp-Massey回路と同様に、フリップフ ロップ400および401の対になったもの(同じ数字の添字)の出力ピンは、ともに ANDがとられる(ANDゲート420において)。ANDゲート420の出力ピンか らの出力は、加算器4220〜4226(GF(2)ではXORゲートである)によって ともに加えられることによって、現在の不一致dn(加算器4220から出力される )に類似する項をつくる。 図4のたたみ込み回路は、複数のANDゲート4260〜4266をさらに含んでおり 、それぞれのANDゲート426は、その出力ピンが関連する加算器428の第1入力 に接続されている(例えばANDゲート4260の出力ピンは、加算器4280の第1入 力ピンに接続されており、ANDゲート4261の出力ピンは、加算器4281の第1入 力ピンに接続されている、など)。それぞれのANDゲート426の第2入力ピン は、現在の不一致dn(すなわち内積値IP)を加算器4220から受け取るように 接続されている。それぞれの加算器428の第2入力ピンは、その対応する(同じ 添字が付けられた)フリップフロップ401の出力ピンに接続されている。それぞ れの加算器428の出力ピンは、上述のように、対応する(同じ添字が付けられた )3入力MUX424の第3入力ピンに接続されている。それぞれのANDゲート4 26の第2入力ピンは、左隣の中間フリップフロップ402の出力ピンに接続されて いる。 3入力のMUX430が、それぞれの中間フリップフロップ402について設けられ ている。MUX4301〜4306は、初期化値「0」を受け取るように接続された第1 入力ピンを有し、MUX4307は、それぞれ初期化値「1」および「0」を受け取 るように接続された第1および第2入力ピンを有する。MUX4301〜4306の第2 入力ピンは、左隣の中間レジスタ402(1ずつデクリメントされた添字をもつレ ジスタ402)からの出力を受け取るように接続されている。MUX4301〜4307の 第3入力ピンは、同じ添字の付けられたAフリップフロップ401からの出力を受 け取るように接続されている。 それぞれのAフリップフロップ401は、右隣のフリップフロップ401に(上述の ように適切なMUX424の第2入力ピンを介して)、ANDゲート420に(不一致 dnを発生するのに用いるために)、かつ同じ添字が付けられた中間フリップフ ロップ402に(同じ添字が付けられたMUX430を介して)接続された出力ピンを 有する。 よって図4のたたみ込み回路は、Bレジスタ(フリップフロップ)400のバン クB400、Aレジスタ(フリップフロップ)401のバンクB401、および中間レジ スタ(フリップフロップ)402のバンクB402を含む。ここで用いられるように、 フリップフロップは1ビットのレジスタではあるが、1ビットの容量より大きい 容量をもつレジスタも本発明の他の局面が実現される限り利用されうることに注 意されたい。もしバンクB400およびB401のフリップフロップの個数が「m」( 図示されている実施の形態ではm=8)であるなら、バンクB402のフリップフロ ップの個数はm-1である。 図4に示される回路について、α0は、t=0をつくるために選択され、これによ り図4の回路によっておこなわれる逆転動作のためのα-t乗算器が1による乗算 になる(これにより図4のα-t乗算器の説明を不要にする)。 図3Bに示されるように、レジスタ400、401および402はそれぞれ、シリアル 入力端子を有している。これによりマルチビット値は、シリアルにそこにロード されうる。さらにそれぞれレジスタ400、401、402には、そのシリアル入力端子 を接続するためのローディングスイッチ(例えば1つ以上のマルチプレクサ)が 関連づけられている。それによって、複数のシリアルマルチビット値の選択され た1つがそこにロードされうる。具体的には、第1レジスタ400は、第1レジス タローディングスイッチ440を有し、第2レジスタ401は、第2レジスタローディ ングスイッチ441を有し、第3レジスタ402は、第3レジスタロ ーディングスイッチ442を有する。より詳細には、ローディングスイッチ440は、 マルチプレクサ440Aおよび440Bを備えており、ローディングスイッチ441は、 マルチプレクサであり、ローディングスイッチ442は、マルチプレクサ443、444 、XORゲート445、およびANDゲート446を備えている。以下により詳細に説 明するように、それぞれのローディングスイッチは、選択的に選択可能な入力ラ インのセットに接続されている。 第1レジスタ400および第3レジスタ402はともに、それぞれのローディングス イッチ440および442の選択に応じてオプションとして利用される関連づけられた フィードバック回路をもつ。具体的には、第1レジスタ400は、フィードバック 回路450を有し、第3レジスタ402は、フィードバック回路452を有する。それぞ れのフィードバック回路450、452は、それぞれのレジスタ400、402の内容をフィ ードバック乗算器によって乗算するために、それぞれに関連づけられたレジスタ 400、402における選択されたビットに接続されている。 後で説明されるように、フィードバック回路450、452についてのフィードバッ ク乗算器の値は、選択的に変更可能である。具体的にはフィードバック乗算器の 値は、フィードバック乗算器が接続されているレジスタの選択を変えることによ って、選択的に変更可能である。例えば、フィードバック乗算器の値は、関連づ けられたレジスタ400、402に導入されている値のフィールド長に応じて(6ビッ トのサブコードバイトまたは8ビットのバイトのどちらが処理されているかに応 じて)選択的に変更可能である。 フィードバック回路450は、XORゲート46、XORゲート470、ANDゲート 480、XORゲート490、およびANDゲート494を備えている。XORゲート460 は、レジスタ400のビット2および3に接続された入力端子を有し、XORゲー ト470は、レジスタ400のビット0および4に接続された入力端子を有する。これ らの接続は、本実施の形態で利用される特定のフィールド生成多項式に応じてい る。異なるフィールド生成多項式を利用すれば、異なる乗算器を伴うので、XO Rゲート460および470について異なる接続を伴うことは理解されたい。XORゲ ート470の出力は、もし信号ENA L ECCがハイなら(ENA L ECCは 、前処理サブセクション[図3Aを参照]のサブコード収容部350から生じ、サ ブ コードが処理されていないときにはハイである)ANDゲート480の入力端子に 与えられ、さらにXORゲート490に与えられる。そうでなければ、XORゲー ト460の出力だけがXORゲート490に通され、フィードバック乗算器として用い られる。フィードバックされた乗算された値は、XORゲート490からMUX440 Aの複数の入力端子の1つに与えられる。 なお、基底変換に関連して、ついでにより詳細に言えば、XORゲート490が 、どのフィードバック信号が選択され(4ビット[ECC]接続からか、または 2ビット[サブコード]接続からのどちらかから生じる)でも、それをレジスタ 300(1)から得られた値と加える加算器としてふるまうことには、注意されたい。 レジスタ300(1)から得られた値は、サブコードが処理されているときは、6ビッ ト値であり(MUX354および信号S1 ALPHAを介して転送される)、そう でなければ8ビット値である。 同様に、フィードバック回路452は、XORゲート462、XORゲート472、A NDゲート482、およびXORゲート492を備えている。XORゲート462は、レ ジスタ402のビット2および3に接続された入力端子を有し、XORゲート472は 、レジスタ402のビット0および4に接続された入力端子を有する。フィードバ ック回路450に関連して上述したように、これらの接続は本実施の形態における 特定のフィールド生成多項式に対応しており、異なるフィールド生成多項式が利 用されれば、異なる乗算器を伴うので、XORゲート462および472についても異 なる接続を伴うことは理解されたい。XORゲート472の出力は、ANDゲート4 82の入力端子に与えられており、さらにもし信号ENA L ECCが上で説明し たようにハイであるなら、XORゲート492に与えられる。そうでなければ、フ ィードバック乗算器として用いるために、XORゲート462の出力だけがXOR ゲート492に通される。フィードバックされて乗算された値は、XORゲート492 からMUX443の複数の入力端子の1つに与えられる。 フィードバック回路450からの出力は、第1レジスタローディングスイッチ440 に与えられた選択可能な入力の1つにすぎない。他の選択可能なシリアル入力は 、定数値(ラインR1 CONST IN上に与えられる)、和回路320(図3A参 照)によって出力されたS SUM値、および訂正部60から得られたP SUM値 を含む。同様に、第3レジスタローディングスイッチ442は、フィードバック回 路452によってつくられた信号、定数値(ラインR3 CONST IN上をMUX 444および443を介して与えられる)、内積値IP(XORゲート445、MUX444 、およびMUX443を介して与えられる)、およびレジスタ402それ自身の内容( ラインR3(0)上を、ANDゲート446、XORゲート445、ならびにMUX444お よび443を介して与えられる)を含む、複数の交互のシリアル入力を受け取るよ うに接続される。 第2レジスタローディングスイッチ441は、それが選択する複数の交互のシリ アル入力を受け取るようにも接続されている。具体的にはローディングスイッチ 441は、定数値(ラインR2 CONST IN上に与えられる)、記憶レジスタ3 00(0)または300(1)の内容[図3A参照]、または訂正部60から得られた値P SU Mの間で選択する。よって第2バンクローディングスイッチ441が第2バンクシ リアル入力ラインのセットを備えている、複数の入力ラインに接続されており、 ラインの1つは、第1マルチビット記憶レジスタ300(0)に接続されており、ライ ンの第2は、第2記憶レジスタ300(1)に接続されていることがわかる。 図3Aに戻ると、第2マルチビット記憶レジスタ300(1)は、選択的に接続され て、そこに第1レジスタ400(ラインR1(0)を介してMUX310(1)に接続される )からの値をロードすることがこんどは理解されるだろう。さらに和回路320の 入力端子は、第1記憶レジスタ300(0)に[ラインS0(0)を介して]、第2記憶レジ スタ300(1)に[ラインS1(0)を介して]、かつ内積回路404に[ラインIPを介し て]接続されることがわかる。さらに和回路320の出力端子は、第1記憶レジス タ300(0)[MUX310(0)を介して]および第2記憶レジスタ300(1)[MUX310( 1)を介して]のそれぞれに選択的に接続される。 構成:基底変換器 図5は、計算器30に組み込まれる基底変換器回路をより簡単で、かつ分離され たかたちで示す。具体的には、基底変換器は、上述の双方向性シフトレジスタ30 0(1)、第1レジスタ400、加算器(XORゲート490)、フィードバック回路(加算 器496を含むように概略的に示される)、および変換制御ANDゲート 498を含む。図5において、フィードバック加算器496は、フィードバック乗算器 (図3BにおけるXORゲート460および470のような)を表す。変換制御AND ゲート498は、それに与えられる信号CONVERTがハイのときに、基底変換 を許す。 よって、図5の回路は、入力基底表現からのmビット入力値を出力基底表現に 変換する双方向変換ユニットを形成する。入力基底表現および出力基底表現の一 方は、アルファ基底表現であり、入力基底表現および出力基底表現の他方は、ベ ータ基底表現である。β基底表現の体の要素α0は、そこの最高位ビットが1で あり、その残りのビットがゼロである(すなわち1000 0000)であるように選択 される。 図5の変換ユニットにおいて、双方向シフトレジスタ300(1)は、入力基底表現 における入力値を格納し、入力基底表現に応じて予め選択されたビット順で入力 値をシリアルに出力する入力レジスタとして機能する。レジスタ400は、変換メ モリとしてはたらき、複数のビットを格納する複数のビット位置を備えている。 フィードバック乗算器496は、変換メモリ(すなわちレジスタ400)の中の現在の 値をフィードバック定数により乗算することによって、フィードバックファクタ を生戒する。加算器490は、m回の加算演算のそれぞれのあいだ、(1)入力レジ スタ[300(1)]から出力されたときの入力値、および(2)フィードバックファ クタの対応するビットを加える。加算器490は、変換メモリ(レジスタ400)の最 高位ビット位置にロードされる和をつくる。この和は、残りの加算演算のあいだ に、変換メモリを通してシリアルにシフトされる。 図5の変換ユニットは、それにより変換メモリ(すなわちレジスタ400)内に おけるm個の加算演算の終わりにおいて、mビット入力値の出力基底表現を与え る。入力基底表現がアルファ基底表現であるとき、入力値は、(レジスタ300(1) から)その最高位ビットからその最低位ビットまで出力される。入力基底表現が ベータ基底表現であるとき、入力値は、(レジスタ300(1)から)その最高位ビッ トからその最低位ビットまで出力される。 出力基底がアルファ基底であるとき、アルファ基底表現は、ビットの逆転され た順でレジスタ400に設けられる。しかしビットは、シリアルにレジスタ400 の内容を入力レジスタ[レジスタ300(1)]の中に戻すようにシフトすることによ って、入力レジスタがロウからハイへとシフトされる間に、非逆の順で容易に再 配置されうる。 図5の基底変換器の動作は、例えば動作:誤差パターン生成と題された説明で 以下に示される。 構成:訂正器 図6は、ここで適切である、図1のCD ROM誤り訂正システムの訂正部60 の局面を示す。訂正器60は、2セットの誤りパターン、例えば偶数インタリーブ コードワードについての1セットの誤りパターンおよび奇数インタリーブコード ワードについての1セットの誤りパターンを格納する、誤り読み出しレジスタ61 0(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と同じである)。レジスタ610の内容をレジスタ620に与えるため のMUX630の使用は、格納および読み出し目的のために貴重な誤り値の循環を 可能にする。 誤り読み出しレジスタ610(0)および610(1)の出力端子は、誤り読み出しスイッ チつまりMUX635のそれぞれの入力端子に接続されている。MUX635は、ED Cチェッカ70およびコントローラ10への印加のために、バスERR(図6および 図1参照)上の誤りパターンE0およびE1の選択された1つを出力する。 訂正器60は、また、2セットのポインタ、例えば偶数インタリーブコードワー ドについての1セットのポインタと奇数インタリーブコードワードについての1 セットのポインタとを格納するポインタ読み出しレジスタ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から受け取られたパラレルデータ、またはそれぞれのポイン タ読み出しレジスタ640(0)、640(1)のパラレルの内容のどちらかをゲートする。 計算器30から受け取られたデータは、誤りパターンについて上述のような方法で バスDIN上に与えられる。 訂正器60は、また、信号P1 TO SUMによって制御され、レジスタ640(0) および640(1)からのポインタ値をシリアルに加えるポインタ和回路670を含む。 ポインタ和回路は、ANDゲート672およびXORゲート674を含む。 構成:EDCチェッカ EDC/CRCチェッカ70は、訂正器60からのラインERR(0)上のシリアル の誤りパターンおよびラインGDAT(0)上のシリアルバッファデータを受け取 るように接続されており、これは図1に概略的に示され、図7により詳細に示さ れている。システムコントローラ10は、コントロールバスCBUSを用いるED C/CRCチェッカ70の動作を管理する。 ここて参考として援用される1994年9月16日に出願されたChris Zookによる 「CRC/EDCチェッカシステム」と題された米国特許出願第08/306,917号に 記載されているように、システムコントローラ10によるEDC/CRCチェッカ 70の管理は、訂正器60と協調して、バイトが訂正されているバッファの同じパス のあいだに訂正の正確さのEDC/CRCベリファイをおこなうように効果的に 動作する。 動作:コンピュータデータ/ポインタモード:概観 図1の誤り訂正システムは、2つのモードで動作する。すなわち(1)ポイン タをもつコンピュータデータを訂正する2相モード、および(2)オーディオデ ィジタルデータとともに含まれるサブコードパックを訂正するサブコードモード (図8Aを参照)である。ポインタをもつコンピュータデータを訂正する2相モ ードのあいだ、発生器20、計算器30、および訂正器60は、2つの位相のあいだに それぞれ動作される。これは図9において模式的に示されている。具体的には第 1フェーズ(ポインタタイム、つまりPTR TIMEとして知られる)のあい だに、 (a)発生器20は、最も最近のコードワードCWnについての1ビットのバッフ ァで得られたポインタを用いて、最も最近のコードワードについての1つまたは 2つのマルチビットのバッファで得られたポインタ(αL0=P0、αL1=P1)を 生成する。 (b)計算器部30は、発生器(20)によって発生された以前のコードワードC Wn-1についてのシンドローム(S0,S1)を用いて、以前のコードワードにつ いての1つまたは2つの誤りパターン(E0、E1)を発生する。および (c)訂正部60は、計算ユニット30のための以前のコードワードCWn-1につい てのポインタ値(αL0=P0、αL1=P1)を保持する。 第2フェーズのあいだに(図9においてデータタイムつまりDATA TIM Eとして示される)、 (a)発生器20は、最も最近のコードワードCWnについてのシンドローム(S0 ,S1)を発生する。 (b)計算部30は、最も最近のコードワードCWnについてのマルチビットのバ ッファで得られたポインタ(すなわち、)に関して数学的な演算をおこなう。お よび (c)訂正ユニット60は、以前のコードワードCWn-1を訂正する。 2つのフェーズのそれぞれにおいて、発生部20、計算部30、および訂正部60は 、全システムが次のフェーズに進むことができるまで、終了するための最 後のセクションを待つ。 ここで最も最近のコードワードまたは以前のコードワードが参照されるとき、 図1のシステムのコンテクストにおいては、そのような参照はそれぞれ、実際に は、2つのコードワード(例えば2つの最も最近のコードワードおよび2つの以 前のコードワード)に対しておこなわれることは理解すべきである。なぜなら図 1に示されたシステムは、偶数インタリーブコードワードおよび奇数インタリー ブコードワードの両方からのバイトを本質的に同時に扱うからである。しかし本 発明の原理は、インタリーブされたシステムに限定されず、ここで説明される2 位相動作は、発生部20、計算部30、および訂正システム60のそれぞれに少なくと も類似するセクションが単一のコードワードに対して動作する、非インタリーブ されたシステムについても同様に適用可能である。 よって本システムは、3つの同時のステージ/動作を必要とする従来のパイプ ライン技法とは異なり、それぞれのステージ/動作は、異なる入力を用いており 、一般に入力をあるステージから次のステージへと渡す。本システムのセクショ ン20、30および60は、それぞれ、2つの異なる動作を時間分割方式で取り扱う。 さらにそれぞれのセクション20、30および60は、動作のフェーズに依存して、2 つの機能をおこなう。動作のあるフェーズが終わると、それぞれのセクション20 、30、60は、情報を他のセクションに渡すが、その後次のフェーズにおいては、 同じ動作を繰り返さない。そうではなく、以上に要約し、以下に詳述するように 、後続するフェーズのあいだ、それぞれのセクション20、30、60は、異なる動作 を実行する。 動作:ポインタ発生 (コンピュータデータ/ポインタモード) 上述のように、ここで示される本発明のシステムのコンピュータデータ/ポイ ンタモードにおいておこなわれる動作は、偶数インタリーブコードワードおよび 奇数インタリーブコードワードの両方を伴う。ここに例示されている偶数インタ リーブコードワードを奇数インタリーブコードワードと対にした処理を考えると 、以下の説明では、コードワードに対する包括的な言及は、偶数インタリーブコ ー ドワードにも、奇数インタリーブコードワードにも当てはまるものである。さら に、以下のさまざまな局面において説明されるように、偶数インタリーブコード ワードについて発生された値は、いつでも1つ以上の第1レジスタ内に格納され うるし、そのときには、奇数インタリーブコードワードについて発生された値は 、1つ以上の第2レジスタ内に格納されうる。 コンピュータデータ/ポインタモードがあるとき、新しいコードワード、すな わち最も最近のコードワードCWnが処理されるように実行されているとすると 、コードワードCWnについてPTR TIMEにおいて取られた第1アクション は、2つのポインタと同じだけ多いそれぞれのものについてのαL表現における バッファポインタ情報の1バイトを発生するためのものである。バッファがその 中に、それぞれのコードワードのそれぞれのバイトについての、バッファポイン タビット位置を格納していることは、当業者にはわかるだろう。もし1つのバイ トについてのビット位置が設定されれば、設定されたビット位置に対応するコー ドワードバイトについて、バッファポインタが起こるか、または存在するといわ れる。 ここで用いられるように、「バッファ」ポインタという語は、前述のようにバ ッファから得られたポインタを表すために採用されている。ここで「ポインタ」 というときは〔そうではなく「システム」ポインタであると明示されない限り、 バッファポインタを意味すると解される。システムポインタの発生および利用は 、以下において、動作:ポインタ処理に関連して説明される。 システムコントローラ10の管理の下で、発生器20は、それぞれポインタについ てのαL表現におけるポインタ情報の1バイトを、PTR TIMEとして知られ るステージのあいだに発生する。この点で、コードワードについてのポインタビ ットが、バッファにおいてクロックと同期してシーケンシャルにアクセスされる あいだ、第1セットポインタビットに遭遇するときに、ポインタ信号がシステム コントローラ10に与えられる。システムコントローラ10は、バッファにおけるビ ットのクロックによる同期づけをコードワードバイト位置と関連づけ、それに応 じて第1ポインタについてポインタ信号が発生されるコードワードバイト位置を 明示する。 ポインタ信号を受け取ると、システムコントローラ10は、バスGDAT上にビ ット0をセットする。このビットは、ゲート202および発生器コントローラ200に 与えられる。ポインタ初期化値(すなわち1)は、レジスタ206(0)にロードされ る。発生器コントローラ200は、また、信号を万能フィードバック回路210(0)に 与えて、それのための乗算定数を構成する(図2Aを参照)。具体的には、8ビ ットのポインタバイトがつくられているので、システムコントローラ10は、信号 ENA SCをMUX230に与え、発生器コントローラ200は、信号ENA MUL をMUX240に与えることによって、乗算器228の乗算器定数αがフィードバック 回路210(0)において動作可能であるようにする。それからバッファにおけるポイ ンタビットを通じてのクロック同期が続くあいだ、それぞれのクロックについて コードワードの最後のクロックまで、展開しているポインタバイトは、レジスタ 208(0)にシフトされ、乗算器定数によって乗算され、レジスタ206(0)において格 納され、最終的にはフォーマットαLをもつポインタバイトになる。第1ポイン タバイトは、表記としてここでは、αL0またはP0とよばれる。例えばもし第1 ポインタビットがコードワードの20番目のバイトについてセットされたなら、 第1ポインタバイトは、α6になるだろう(コードワードの24バイトデータ部分 、およびコードワードにおける2つのECCバイトの最後にまで、コードワード の合計26バイトについて、残っている4つの後続するクロック/バイトがある) 。 もし、そのコードワードに対するバッファで第2ポインタビットに遭遇すれば 、ビットGDAT(0)が再びセットされ、発生器コントローラ200およびゲート20 2に与えられ、発生器コントローラ200によって第2ポインタに対応するものとし て認識される。この点に関して、発生器コントローラ200は、あるコードワード について遭遇したポインタビットの数をカウントし、それを表示する信号PCN Tを出力する。発生器コントローラ200は、第2ポインタに遭遇したことを認識 し、信号ENA P1をセットすることによってゲート202にそのように通知する 。ゲート202は、ポインタ初期化値をレジスタ206(1)へとロードし、かつ、第1 ポインタについて先ほど説明したのと同様の動作を[レジスタ206(1)、208(1)、 フィードバック回路210(1)および加算器204(1)に対してパラレルに]おこなうこ とによってこれに応答する。第2ポインタは、(例えば、バイト22 に対する)コードワードを通してのクロック同期の最後の点で遭遇することにな る。その結果、第2ポインタバイトに対する乗算は、対応する後のステージで始 まることになる。第2ポインタバイトは、表記としてここでは、αL1またはP1 とよばれる。第2ポインタビットがコードワードのバイト22で起こるこの例では 、第2ポインタバイトは、α4となる。 ポインタバイトを(2ポインタコードワードに対するP0として、またはP0お よびP1の両方として)発生した後、これらのポインタバイトは、対応するレジ スタ208(0)、208(1)から計算部30へとパラレルにロードされる。その結果、これ らのバイトはそれぞれ、レジスタ300(0)、300(1)に存在して、後続するフェーズ (DATA TIME)のあいだ計算部30により用いられることになる。ポイン タバイトの発生に関する以上の説明は、あるインタリーブからの最も最近のコー ドワードに関連していた。しかし、それぞれのPTR TIMEフェーズのあい だ、上述したポインタバイト発生操作は、まず偶数インタリーブコードワードに ついておこなわれた後、奇数インタリーブコードワードについておこなわれるこ とは理解されたい。発生の後、奇数インタリーブコードワードに対するポインタ バイトも、計算部に、具体的にはレジスタ302(0)および302(1)へとロードされる 。 最も最近の偶数インタリーブコードワードおよび最も最近の奇数インタリーブ コードワードに対するポインタバイトが共に計算部にロードされた後、ポインタ バイトの処理は、直後のフェーズ(DATA TIME)のあいだは計算部30に よりおこなわれる。この点については、後述する「動作:ポインタ処理」と副題 のつけられた議論を参照のこと。 もしあるコードワードに対するポインタの個数が2を超えているのなら、信号 PCNTとして与えられるこのような値は、そのコードワードが訂正不可能であ ることを示す。 動作:シンドローム発生 (コンピュータデータ/ポインタモード) 発生器20が、フェーズPTR TIMEのあいだに最も最近のコードワードC Wnについて1つ以上のポインタバイトを発生し終えた後、発生器20は、次のフ ェ ーズ(DATA TIME)の開始を待つ。DATA TIMEのあいだ、発生器 20は、1コードワードにつき2つのシンドローム(ここでは、表記としてS0お よびS1と表される)を、例えば最も最近のコードワードCWnに対して発生する 。 シンドロームを発生するために、フィードバック回路210(0)は、非乗算フィー ドバックライン220を用いてシンドロームS0を発生するように構成される。フィ ードバック回路210(1)は、8ビット乗算器228による乗算を(ポインタについて 既に述べたのとほぼ同様に)実現することによってシンドロームS1を発生する ように構成される。 まず、偶数インタリーブからの最も最近のコードワードの第1バイトが、レジ スタ206(0)およびレジスタ206(1)の両方へとゲートされた後、対応するレジスタ 208(0)、208(1)へとシフトされる。次に、奇数インタリーブからの最も最近のコ ードワードの第1バイトが、レジスタ206(0)およびレジスタ206(1)の両方へとゲ ートされる。この後、偶数インタリーブからの最も最近のコードワードの第2バ イトを、その偶数インタリーブから、偶数インタリーブコードワードに対する加 算器204(0)、204(1)へとゲートすることが続く。加算器204(0)は、第2バイトを 第1バイトへと加算し、加算器204(1)は、第2バイトを第1バイトのα倍だけ加 算する。加算器204(0)および204(1)からの和は、それぞれレジスタ206(0)、206( 1)へとロードされる。そして、奇数インタリーブからの最も最近のコードワード の第2バイトが、加算器204(0)、204(1)へとゲートされる。この奇数インタリー ブコードワードについて、加算器204(0)は、第2バイトを第1バイトへと加算し 、加算器204(1)は、第2バイトを第1バイトのα倍だけ加算する。処理中の偶数 インタリーブシンドロームは、レジスタ208(0)、208(1)へとシフトされ、奇数イ ンタリーブコードワードに対する加算器204(0)および204(1)からの和は、それぞ れレジスタ206(0)、206(1)へとロードされる。 以上のステップは、それぞれのコードワードの残りの部分についても、例えば 、(それがカラムコードワードであるか、あるいは対角線コードワードであるか によって)最も最近のコードワードCWnの26バイトまたは45バイトのすべてに ついても、反復される。コードワードバイトが処理される順番は、図8Bに1本 のカラムにより図示されている。すなわち、偶数インタリーブの第1カラムコー ドワードについては、バイト0000が最初に処理され、その後バイト0043、バイト 0086が続き、バイト1075まで続く。 1対の最も最近のコードワードCWnについてのシンドローム発生が終了する と、偶数インタリーブコードワードに対するシンドロームS0はレジスタ208(0) に格納され、偶数インタリーブコードワードに対するシンドロームS1はレジス タ208(1)に格納され、奇数インタリーブコードワードに対するシンドロームS0 はレジスタ206(0)に格納され、奇数インタリーブコードワードに対するシンドロ ームS1はレジスタ206(1)に格納される。後述するように(動作:誤りパターン 発生を参照のこと)、これらのシンドローム値は、直後のフェーズ(PTR T IME)のあいだに計算部30により利用され、誤りパターンを発生する。 動作:ポインタ処理 (コンピュータデータ/ポインタモード) 既に述べたように(動作:ポインタ発生を参照のこと)、フェーズPTR TI MEのあいだ、発生部20は、偶数インタリーブコードワードおよび奇数インタリ ーブコードワードの両方について2つのものポインタバイト(P0、P1、エイリ アスαL0、αL1)を発生している。後続するフェーズDATA TIMEのはじ めに、ポインタバイトは次のように格納されている。奇数インタリーブコードワ ード用のP0およびP1は、それぞれレジスタ300(0)および300(1)へと、偶数イン タリーブコードワード用のP0およびP1は、それぞれレジスタ302(0)および302( 1)へと格納されている。 DATA TIMEのあいだ、計算部20は、奇数インタリーブコードワードお よび偶数インタリーブコードワードの両方に対するポインタP0およびP1を処理 する。処理が最初におこなわれる奇数インタリーブコードワードについては、D ATA TIMEのあいだに計算器30によりおこなわれる処理は、奇数コードワ ードポインタP0、P1の(β基底表現への)基底変換である。次に処理される偶 数インタリーブコードワードについては、DATA TIMEのあいだに計算器3 0によりおこなわれる処理は、偶数コードワードポインタP0、P1のβ基底表現 への変換のみならず、(2つのポインタが存在する時には)、以下に述べる手法に より基 底変換されたポインタを用いた和の逆数の形成をも伴う。 それぞれのコードワードについて、計算部30による処理は、2つのケースのい ずれか1つでおこなわれる。第1のケースは、1コードワードに対してせいぜい 1つのバッファポインタしが発生されなかった時に実現される。第2のケースは 、1コードワードに対して2つのバッファポインタが発生された時に実現される 。 ケース1のバッファポインタ処理の場合、計算部30は、(もし存在するのなら )あるポインタP0をα基底表現からβ基底表現へと変換する。ケース2のバッ ファポインタ処理の場合、計算部30は、ポインタP0およびポインタP1をα基底 表現からβ基底表現へと変換し、β基底表現を用いて、以下の式(以下では、「 2つのポインタの和の逆数」として知られる)を計算する。 この式はまた、 とも表される。計算部30は、フェーズDATA TIMEにおいて偶数インタリ ーブコードワードについての2つのポインタの和の逆数を形成する。もし奇数イ ンタリーブコードワードについて2つのポインタの和の逆数を形成する必要があ るのなら、そのようなポインタの和の逆数は、直後のフェーズであるPOINT ER TIMEのあいだに形成される。 ポインタの処理は、図10に図示されている。図10のステップ1002からステップ 1016は、フェーズDATA TIMEのあいだに計算部30により実行される。ス テップ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)へと移される。 偶数コードワードのポインタP0、P1に対するβ基底への変換は、ステップ1008 でおこなわれる。ステップ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は、奇数コードワードに対するポインタP0、P1を、その値をそれぞれレ ジスタ640(0)、640(1)から和回路670へとシリアルに出力することによって、加 算する。和回路670によりつくられた和(P SUM上のシリアルビット)は、M UX441を介してレジスタ401へとロードされる(ステップ1022)。ステップ1024で は、計算部30は、奇数コードワードの和P0+P1の逆数をレジスタ401で形成す る。その後、ステップ1026に示されているように、計算部30は、奇数インタリー ブコードワードに対する誤り値を処理する。 計算部30によりおこなわれる基底変換、加算、および逆転演算は、計算部30の 多目的性を例示している。これらの演算は、以下により詳細に説明される。 ポインタP0、P1のβ基底表現への変換に伴うステップは、図11に図示されて いる。ポインタP0は、レジスタ300(0)に存在している。ステップ1102におい て、ポインタP0は(MUX441を介してラインSO(0)上で)レジスタ401へとロ ードされる。ステップ1104では、(ラインR1 CONST IN上の)定数「1 」が、(MUX440を介して)レジスタ400へとロードされる。ビット指向のたた み込み演算がおこなわれ(ステップ1106)、レジスタ400および401の内積のビッ トが信号IPとしてシリアルに出力される。ビット指向のたたみ込みのあいだ、 αフィードバックが、加算器490とフィードバック回路450とを介してレジスタ40 0に与えられる。信号IPとしてシリアルに出力された値は、β基底表現におけ るポインタP0である。ステップ1108では、β基底表現におけるポインタP0は、 ANDゲート324、XORゲート328、XORゲート330およびMUX310(0)を介 してレジスタ300(0)へとルーティングすることによって、レジスタ300(0)へとロ ードし戻される。 もしポインタP1が存在するのなら、図11の残りのステップが実行される。こ の点について、ポインタP1は、レジスタ300(1)に存在している。ステップ1112 において、ポインタP1は(MUX441を介してラインS1(0)上で)レジスタ401 へとロードされる。ステップ1104と同様に、(ラインR1 CONST IN上の )定数「1」が、(MUX440を介して)レジスタ400へとロードされる。ビット 指向のだたみ込み演算がおこなわれ(ステップ1114)、レジスタ400および401の 内積のビットが信号IPとしてシリアルに出力される。ビット指向のたたみ込み のあいだ、αフィードバックが、加算器490とフィードバック回路450とを介して レジスタ400に与えられる。信号IPとしてシリアルに出力された値は、β基底 表現におけるポインタP1である。ステップ1116ては、β基底表現におけるポイ ンタP1は、ANDゲート324、XORゲート328、およびMUX310(1)を介して レジスタ300(1)へとルーティングすることによって、レジスタ300(1)へとロード し戻される。 ケース2は、ケース1におけるポインタP0およびP1のβ基底表現への変換を 含んでいる。ケース2において、ポインタP0およびP1のα基底表現からβ基底 表現への変換に後続する、加算および逆転計算に伴うステップは、図12に示され ている。ポインタP0およびP1は、それぞれレジスタ300(0)および300(1)にある ことを想起されたい。 ステップ1202では、ポインタP0は、ANDゲート322を通してXORゲート33 0へとレジスタ300(0)からシリアルにシフトアウトされ、ポインタP1は、AND ゲート326およびXORゲート328を通してXORゲート330へとレジスタ300(1) からシリアルにシフトアウトされる。ステップ1204では、P0よびP1は、XOR ゲート330により加算され、その和がシリアル信号S SUMとして現れる。 そして、P0+P1の和に対して逆転演算がなされる。ステップ1208では、P0+ P1の和が、レジスタ400へとロードされる。ステップ1210では、ビット指向のた たみ込みがレジスタ400および401を用いておこなわれる。このビット指向のたた み込みの間、αフィードバックが、加算器490およびフィードバック回路450を介 してレジスタ400に与えられる。ここで援用されている、Chris Zookにより199 3年11月4日に出願され、"FINITE FEILD INVERSION"と題 された米国特許出願第08/147,758号から理解されるように、このたたみ込みは、 レジスタ401におけるmビット値に対応する電気信号を発生し、格納する。レジ スタ401における値は、第1基底表現であり、レジスタ400(β基底表現の和P0 +P1を含む)と、αkB(ここで、Bはレジスタ401における値である)との内 積が、k<m-1であるとき0に等しくなるようにするたたみ込みにより発生される 。よって、このたたみ込みにより、P0+P1の和の逆数カルジスタ401に生じる。 ここで、生じた逆数(P0+P1)-1は、α基底表現である。ここでも、逆転演算に ついては、図4に示されている回路において、図4の回路によりおこなわれる逆 転演算のための乗数α-tが1による乗算であるように、t=0とするようにα0が選 択されることには注意されたい。 DATA TIMEが完了すると、(もし発生することが必要であるのなら) 偶数インタリーブコードワードに対する2つのポインタの和の逆数は、レジスタ 401に存在し、偶数インタリーブコードワードおよび奇数インタリーブコードワ ードに対するシンドロームは、それぞれレジスタ300、302に格納され、偶数コー ドワードに対するポインタはレジスタ640に格納されるいっぽうて、奇数コード ワードに対するポインタは、レジスタ642に格納される。 動作:誤りパターン発生 (コンピュータデータ/ポインタモード) 上述したように、シンドロームS0およびS1は、フェーズDATA TIME のあいだに、偶数インタリーブコードワードおよび奇数インタリーブコードワー ドの両方に対して発生器20により発生された。コードワードに対するシンドロー ムの発生のすぐ後に続くPTR TIMEフェーズにおいて、計算部30は、コー ドワードに対して、2つのもの誤りパターン(E0、E1)を発生する。PTR TIMEフェーズにおいて、計算部30は、まず偶数インタリーブコードワードに 対する誤りパターンを発生した後、奇数インタリーブコードワードに対する誤り パターンを発生する。 コードワードに対する誤りパターンの発生は、2つのケースのいずれか1つで おこなわれる。誤りパターン発生の第1のケースは、コードワードが2つ未満の ポインタを有している時におこなわれる。誤りパターン発生の第2のケースは、 コードワードが2つのポインタを有しているときにおこなわれる。誤りパターン 発生の第1のケースは、図13に図示されており、誤りパターン発生の第2のケー スは、図14に図示されている。 第1のケースでは、もし1コードワードにつき単一の誤りポインタ(P0)が あるのなら、そのコードワードに対する唯一の誤りパターンは、S0となる。す なわち、コードワードに対する誤りパターンE0は、S0である。つまり、E0=S0 (ここで、S0は、そのコードワードに対する第1シンドロームである)。しか し、この単一の誤りのケースでは、計算部30は、その誤りに対してそれ自身のシ ステムポインタ(バッファポインタと対立する)を発生した後、システムポイン タおよびバッファポインタが共に、確実にコードワードの同一のバイトを指すよ うにする。 第1ケースの誤りパターン発生シナリオは、以下の関係を考慮して動作する。 もし上の関係が有効であるのなら、単一の誤りの存在が確認される。 上述の点について、図2のステップ1302では、計算部30は、システムポインタ を計算しようとつとめる。ステップ1302に伴う詳細は、いくつかのサブステップ を含んでいる。サブステップ1302-2では、S0は、(以上の議論から理解される 手法て)β基底表現に変換され、レジスタ402に移される。同様に、サブステッ プ1302-4において、S1は、β基底表現に変換され、レジスタ300(1)に移される 。次に、サブステップ1302-6において、定数α-1がレジスタ400へと(MUX440 を介して)ロードされ、定数α0が(MUX441を介して)レジスタ401へとロー ドされる。ステップ1302-8では、ビット指向のたたみ込みが、フィードバックに よりクロック同期のとられたレジスタ400および402を用いておこなわれる。ステ ップ1302-8に関連して、MUX440および443は、それぞれのフィードバック回路 450、452からのフィードバック加算を可能にするように動作される。たたみ込み のあいだ、値S0αLがレジスタ402に保持される。たたみ込みがおこなわれると 、サブステップ1302-10により示されているように、レジスタ402の内容(値S0 αL)は、比較回路350の加算器362により(レジスタ300(1)に含まれている)S1 に加えられる。値S0αLとS1とが(ORゲート372により検出されたときに)等 しいのなら、信号SEDBがターンオフする。もし信号SEDBがターンオフし ないのなら(サブステップ1302-12で判定される)、そのコードワードは、訂正 不可能であると判定される(サブステップ1302-14)。もし信号SEDBがター ンオフすれば、そのとき、レジスタ400における値は、コードワードに対して計 算されたシステムポインタとなる(サブステップ1302-16)。 ステップ1302でシステムポインタを計算した後、ステップ1304では、計算回路 30は、システムポインタがバッファにより供給されたポインタと同じであるかど うか確かめる。この比較を実行するために、サブステップ1304-2において、シス テムポインタは、レジスタ400からレジスタ402へと移される。サブステップ1304 -4では、バッファポインタがレジスタ400へと移される。システムポインタは( サマー362を介してルーティングされ)、サマー364(図3Aを参照のこと)によ りバッファポインタへと加算される(サブステップ1304-6)。比較回路360によ り発生された出力信号ROOTは、もしこれらのポインタ値が等 しければターンオンする。もしROOTがハイにならないのなら(サブステップ1 304-8)、コードワードは訂正不可能である(サブステップ1304-10)。ROOTが ハイになるとき、バッファポインタが確認される(サブステップ1304-12)。 バッファポインタがステップ1304で正しいと確認されると、ステップ1306では 、バッファポインタは、訂正部60のP0ポインタレジスタへと移し戻される。た だ1つの誤りしかないので、その移動の直前に、レジスタ400におけるバッファ ポインタ値は、フィードバック(α8)とクロック同期がとられる。その結果、 バッファポインタは、オフセットバッファポインタとなる(例えば、αL+8)。 P1ポインタは、訂正部60において、このコードワードについてゼロに設定され る(ステップ1308)。第1ケースの誤りパターン発生の最後に、誤りパターンS0 =E0がレジスタ300内に(α基底表現で)残る。 第2ケースの誤りパターン発生のあいだ、2つの誤り値(E0、E1)が計算部 30により計算される。これら2つの誤り値は、以下のように計算される。 よって、E1の決定は、E0の決定に先立たねばならない。 図14は、第2ケースの誤りパターン発生に伴う基本的なステップを図示してい る。ステップ1402では、シンドロームS1(α基底表現)は、本質的には、図5 の変換回路を用いてβ基底表現へと変換される。変換は、(S1が、最高位ビッ トから始めて、最低位ビットへと続くよう、シリアルに読み出されるようにする )信号S1 L2Hをイネーブルし、かつフィードバック回路450からのフィード バックのクロック同期をとることによって実現される。その結果、S1は(逆転 されたビット順で読み出されて)フィードバック信号へとビット加算される。そ れにより、レジスタ400にS1のβ基底表現が生じる。 基底変換が完了すると、β変換されたS1値は、レジスタ300(1)に再び移され る。バッファポインタP0は(αL0のかたちで)訂正部60からレジスタ400へ と移され、S0はレジスタ401へと移される。また、同時に、レジスタ401の以前 の内容[すなわち、(P0+P1)-1]は、訂正ユニット60へと一時的に移される 。ステップ1404では、係数S0αL0が、レジスタ400とフィードバックとのクロッ ク同期をとることにより得られる。それによって、ラインIP上に内積信号の所 望のシーケンスを得る。項S1+S0αL0は、ステップ1406で、和回路320を用いて ラインIP上のシリアルシーケンスをレジスタ300(1)の内容(S1)に加算する ことによって得られる。レジスタ300(1)の内容[S1+S0αL0]は、それからレ ジスタ400へと移される。そして、ステップ1408では、E1に対する積が、係数 (ポインタレジスタP0(つまりレジスタ640(0))から得られ、レジスタ401へと 移される)を、レジスタ400に格納されている係数S1+S0αL0により乗算するこ とによって形成される。この乗算は、レジスタ400がフィードバック回路450を介 してフィードバックとクロック同期が取られている時、ビット指向のたたみ込み のあいだにおこなわれる。信号IPとして発生された内積のシーケンスは、レジ スタ300(1)に与えられ、E1となる。 ステップ1410、ステップ1412およびステップ1414は、E0を得るために実行さ れる。ステップ1410では、E1は、本質的には図5の基底変換回路を用いて、β 基底表現からα基底表現へと変換しなおされる。このような変換は、E1をレジ スタ300(1)から(ANDゲート482を介して)レジスタ400へと移すことと、フィ ードバック回路450からのビット加算のクロックに同期されたフィードバックと によりおこなわれる。そして、E1(今ではレジスタ400におけるビット逆転され たα基底表現である)は、レジスタ300(1)へと移される。S0(依然としてα基 底である)は、レジスタ300(0)にとどまっており、一方レジスタ300(1)は、ロー からハイへとシフトする。ステップ1412では、和S0+E1=E0が和回路320により 得られ、レジスタ300(0)へと戻される。そして、誤りパターン値E0およびE1が 共に計算された後、ステップ1414では、コードワードに対する誤りパターンE0 、E1は、訂正部60の誤りレジスタへと移される。 動作:訂正 (コンピュータデータ/ポインタモード) 一対(偶数インタリーブおよび奇数インタリーブ)のコードワードを訂正する とき、訂正部60は、そのポインタレジスタ640、650内にベリファイされたポイン タP0、P1を格納しており、その誤りレジスタ610、620内に誤りパターンE0、 E1を格納している。訂正部60は、フェーズDATA TIMEのあいだ、訂正を 目的としてバッファにおいて処理されているブロックにアクセスする。ブロック におけるそれぞれのコードワードは、連続するクロックサイクルのあいだにアク セスされる。コードワードに対するポインタが、(図6のラインLOC E上に 出力されたときに)コードワードの現在クロック同期のとられているバイトに対 応しているのなら、MUX635を介してバスERR上に与えられた対応する誤り パターン(E0またはE1)が、バッファにおける誤りのあるバイトを訂正するた めに用いられる。この訂正処理と同時に、EDCチェッカシステム70が、バッフ ァのブロックに対してCRC検査をおこなっている(動作:EDC検査を参照の こと)。 動作:概観 (サブコードをともなうオーディオ) 動作のサブコードモードは、図15に図示されている基本的ステップにより要約 される。サブコードモードでは、図1の誤り訂正システムは、ディジタルオーデ ィオデータ内に分散された(図8Aに図示されている)サブコードパックを用い て訂正をおこなおうと試みる。 ステップ1510Aおよびステップ1510Bは、パックに対するシンドロームの発生 を伴う。ステップ1510Aのあいだ、最初の4バイト(パックの「Q」部分)が、 シンドロームS0、S1をQ部分にわたって発生するために用いられ、シンドロー ムS2、S3を全パックにわたって発生し始めるのに用いられる。ステップ1510B の間、パックの残りのバイト(例えば、パックの「P」部分)は、全パックにわ たるS2、S3の発生を完了し、かつパックの「P」部分にわたってシンドローム S0、S1を発生するために用いられる。図8Aを参照すれば理解できるように、 ここで例示されている実施形態においては、パックの第1の部分、すなわち「Q 」部分は、最初の4つの6ビットーバイト(例えば、シンボル0〜3)を構成して おり、一方、パックの第2の部分、つまり「P」部分は、残りの20の6ビット バイト(例えば、シンボル4〜23)を構成している。一般に、パックの第1の部 分、すなわち「Q」部分が、特にパック識別情報のために用いられるとき、パッ クの第2の部分すなわち「P」部分は、特にディジタルデータを含んでいる。 シンドローム(つまり、パックの「Q」部分にわたるS0およびS1、パックの 「P」部分にわたるシンドロームS0およびS1、ならびに全パックにわたるシン ドロームS2およびS3)の発生の後、システムコントローラ10は、シンドローム を解析する(ステップ1520を参照のこと)。ステップ1520の解析により可能な4 つのケースが展開され、それらのケースのうちの3つに対して異なる訂正戦略が 適用される。第1のケースでは、誤りは、パックのP部分には起こるが、パック のQ部分には起こらない。これにより、システムコントローラ10は二重誤り検出 戦略[DED]を実行するように促される(図15のステップ1530により図示され ている)。第2のケースでは、誤りは、パックのP部分およびQ部分の両方に起 こる。これにより、システムコントローラ10は、パックの両部分にわたって単一 誤り検出戦略[SED]を実行し(図15のステップ1540により図示されている)、 その後、訂正されたコードワードにわたってシンドロームを再び発生するように 促される(図15のステップ1541により図示されている)。第3のケースでは、誤 りは、パックのQ部分には起こるが、パックのP部分には起こらない。これによ り、システムコントローラ10は四重誤り検出戦略[QD]を実行するように促さ れる(図15のステップ1550により図示されている)。第4のケースでは、すべての シンドロームはゼロである(このことは、パックには誤りが存在しないことを示 している)。 動作:シンドローム発生 (サブコードを含むオーディオ) 図15に示されているように、サブコード用のシンドローム発生は、2つの別々 の発生ステージを伴う(ステップ1510Aおよび1510Bにより図示されてい る)。ステップ1510Aでは、最初の4バイト(例えば、パックの「Q」部分)が 、Q部分にわたってシンドロームS0、S1を発生し、かつ、全パックにわたって シンドロームS2、S3を発生し始めるのに用いられる。ステップ1510Bでは、パ ックの残りのバイト(例えば、パックの「P」部分)が、全パックにわたってS2 、S3の発生を完了し、かつパックの「P」部分にわたってシンドロームS0、 S1を発生するために用いられる。 サブコードシンドローム発生のあいだ、サブコードパックのそれぞれのバイト (図8Aを参照のこと)は、発生器20と2度クロック同期がとられる。すなわち 、一度はサブコードシンドロームS0、S1を発生するためであり、一度はシンド ロームS2、S3を発生するためである。よって、サブコード用のシンドロームを 発生するとき、レジスタ206、208は、コンピュータデータ用のシンドローム発生 の場合のように異なるインタリーブには用いられず、サブコード用の異なるシン ドローム用に用いられる。 表1は、サブコードシンドローム発生のためのレジスタ206、208のシフトと、 フィードバック乗算演算とを記載している。 表1の第1行は、第1データバイトがどのようにレジスタにロードされるかを示 している。ここで、それぞれのレジスタにおける第1データバイトは、そこから 発生されるシンドロームを指すためにS0、S1、S2およびS3とラベルが付けら れ ている。表1の第1行に続いて、表1の次の6つの行に対応する6つのステップ が実行される。表1の第5行および第6行は、2クロックサイクルで第2データ バイトを加算することを示している。すなわち、まず、行5においてシンドロー ムS0、S1に加算し、そして(レジスタ値をシフトした後に)行6においてシン ドロームS2およびS3へと加算する。行7は、さらなるデータバイトの図示され ていない加算に備えて、シンドロームをさらにシフトすることを示している。さ らなるデータバイトを加算する以前に、表1の行7における式は、各シンドロー ムについて更新された値(例えば、S1α+D)になるが、それは、次のデータバ イトの加算以前にS1になることは理解されたい。 表1の行7の後、表1について図示されているのと同様に、さらなるデータバ イトが加算される。つまり、サブコードデータバイトのそれぞれについて、表1 の行2〜行7により反映されている6つのステップが実行される。ここで、6つ のクロックのうち2つだけが、次のデータバイトの導入には実際に伴うことにな る。 表1の6つのステップについては、レジスタ206の内容は、常にレジスタ208へ とシフトされることには留意されたい。レジスタ206には、常に、レジスタ208の 内容×「1」または「α」がフィードされる。乗算が×「1」でおこなわれるか、 ×「α」でおこなわれるかは、MUX230、240の設定次第である(図2Aを参照 のこと)。 表1の6つのステップが4回実行された後(つまり、最初の4データバイトが 発生器20において加算された後)、レジスタ208(0)は、パックのQ部分にわたっ て発生されたサブコードシンドロームS0を含んでおり、レジスタ208(1)は、パ ックのQ部分にわたって計算されたサブコードシンドロームS1を含んでいる。 この時点において、パックのQ部分にわたるサブコードシンドロームS0、S1は 、計算部30へとロードされる。それによって、図15のステップ1510Aを完了する 。 パックのQ部分にわたってシンドロームS0、S1をオフロード(off-loading )した後、レジスタ206、208の内容は、再び切り替えられ(すなわち、表1の最 終行と同様)、パックの第5のバイトおよび残りのバイトについて、6つのステ ップが反復される。しかし、パックのP部分にわたってシンドロームS0、S1を 発生するために、パックのQ部分にわたってシンドロームS0、S1を含んでいる レジスタはクリアされる。その結果、パックの第5のバイトがそこにロード可能 となる。 よって、サブコードパックの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において、誤りロケータ多項式が、計算部30によるサブス テップ1530-4でのルートサーチに利用可能な形式で発生される。一般に、誤りロ ケータ多項式は、サブコード方程式1の形式に合う。 しかしルートサーチは通常、逆方向におこなわれるので、サブコード方程式1は α-n(ここで、nは19である)で乗算されねばならず、従来は、ルートサーチに 利用可能なサブコード方程式2を生じるために、Δにより乗算可能であった。 サブコード方程式2の誤りロケータ多項式は、図15Aのサブステップ1530-2-2 から1530-2-8に関して図示されている手法で発生される。サブコード方程式2の 誤りロケータ多項式は、シンドロームS0(Pにわたる)と、S1(Pにわたる) と、図15のステップ1510Aおよび1510Bで発生されたS2およびS3とを用いて発 生される。まず、サブステップ1530-2-2において、項σ2'α-nが、サブコード方 程式3を用いて発生される。 次に、サブステップ1530-2-4において、項σ2α-2nが、サブコード方程式3によ り得られた値にα-nを乗算することによって発生される。サブステップ1530-2-6 において、項σ1α-nが、サブコード方程式4を用いて得られる。 最後に、ステシプ1530-2-8において、項Δが、サブコード方程式5を用いて得ら れる。 ステップ1530-4では、計算部30は、値σ2α-2nをレジスタ400へとロードし、 値Δをレジスタ300(1)へとロードし、値σ1α-nをレジスタ402へとロードし、か つ図3Aの和回路を用いてこれら3つのレジスタの内容の和をとることによって 、ルートサーチをおこなう。ルートサーチが反復されるたびに、レジスタ400は 、フィードバックと(項α-2nに対して)2度クロック同期がとられ、レジスタ4 02は、フィードバックと(項α-nに対して)1度クロック同期がとられる。 ルートの位置が特定されると、形式αLの誤りロケータバイトが、発生部20に より発生されねばならない。この点については、ルートの位置が特定されたと き、GDATのビット0がセットされる(サブステップ1530-6により示されてい る)。発生部20による誤りロケータバイトの発生は、ポインタを含むコンピュー タデータを用いておこなわれる形式αLによる誤りポインタバイトの類似する発 生(既に述べた)を参照すれば、理解できる。 サブステップ1530-8および1530-12では、サブステップ1530-4のたたみ込みの あいだに検出されたルートの個数および位置について判定がなされる。これらの 判定は、検出されたルートを有する誤りに対して、(おこなうとすれば)どのよ うなタイプの訂正をおこなうかを支配する。 例えば、もしサブステップ1530-8でルートは、最初の3つの位置のうちの3つ で検出されたと判定されれば、サブステップ1530-10では、計算部30は、単一誤 り訂正プロシージャをおこなう。サブステップ1530-10でおこなわれる単一誤り 訂正プロシージャは、上述したポインタを含むコンピュータデータに用いられる プロシージャと本質的には同じである(例えば、上述の「動作:ポインタ処理」[ ケース1]および「動作:誤りパターン発生」[ケース1]と題された議論を参照 のこと)。サブステップ1530-10でのポインタ処理および誤りパターン発生では、 サブコードシンドロームS0およびS1が(ともにパックのP部分にわたって)用 いられる。誤りパターン発生の結果、訂正部60は、誤りポインタと、サブコード パックのP部分における単一の誤りを含むバイトを訂正するための誤りパターン とを用いる。 もしサブステップ1530-12で、サブコードパックには2つ未満のルートしかな いと判定されれば、このパックは、訂正不可能であると判定される。 サブコードパックについて2つのルートが存在してると判定されるとき、計算 部30は、これら2つの誤りを訂正するために、二重消去訂正プロシージャ(サブ ステップ1530-14により図示されている)をおこなう。サブステップ1530-14でお こなわれる二重消去訂正プロシージャは、上述したポインタを含むコンピュータ データに用いられるプロシージャと本質的には同じである(例えば、上述の「動 作:ポインタ処理」[ケース2]および「動作:誤りパターン発生」[ケース2]と 題された議論を参照のこと)。サブステップ1530-14でのポインタ処理および誤 りパターン発生では、サブコードシンドロームS0およびS1が(とも にパックのP部分にわたって)用いられる。誤りパターン発生の結果、訂正部60 は、誤りポインタと、サブコードパックのP部分における2つの誤りを含むバイ トを訂正するための誤りパターンとを用いる。 なお、各計算ステップについては、ここでは詳細に述べなかったが、計算部60 は、サブステップ1530-4のルートサーチに用いられるσ2α-2n、Δおよびσ1α- n の評価をおこなうことは理解されたい。 動作:単一誤り検出 (サブコードを含むオーディオ) 図15のステップ1520で、誤りがサブコードパックのQ部分およびP部分の両方 に存在している(図8Aを参照のこと)と判定されるとき、単一誤り検出演算が 、サブコードパックの両部分に対して別個におこなわれる(ステップ1540)。 ステップ1540の単一誤り検出(SED)演算は、図15Bにより詳細に示されている 。第1のサブステップ(サブステップ1540-2)として、誤り検出/訂正が、パッ クのQ部分に対しておこなわれる。サブステップ1540-2では、コンピュータデー タのケース1について上述したのと同様の誤りポインタ処理および誤りパターン 発生をおこなうために、パックのQ部分にわたって発生されたサブコードシンド ローム値S0、S1が用いられる。この点については、例えば、上述の「動作:ポ インタ処理」[ケース1]および「動作:誤りパターン発生」[ケース1]と題され た議論を参照のこと。サブステップ1540-2に関して、訂正部60は、誤りポインタ と、サブコードパックのQ部分における誤りを含むバイトを訂正するように発生 された誤りパターンとを用いる。 第2に、サブステップ1540-4において、誤り検出/訂正が、パックのP部分に 対しておこなわれる。サブステップ1540-4では、コンピュータデータのケース1 について上述したのと同様の誤りポインタ処理および誤りパターン発生をおこな うために、パックのQ部分にわたって発生されたサブコードシンドローム値S0 、S1が用いられる。この点については、例えば、上述の「動作:ポインタ処理 」[ケース1]および「動作:誤りパターン発生」[ケース1]と題された議 論をここでも参照のこと。サブステップ1540-2に関して、訂正部60は、誤りポイ ンタと、サブコードパックのP部分における誤りを含むバイトを訂正するように 発生された誤りパターンとを用いる。 図15のステップ1541に示されているように、それぞれサブステップ1540-2およ び1540-4においてサブコードパックのQ部分およびP部分の訂正を試みた後、す べてのサブコードシンドロームが、上述したのと同様に再び発生される(例えば 、「動作:シンドローム発生(サブコードを含むオーディオ)」を参照のこと)。 もし再び発生されたシンドロームがすべてゼロであるのなら、このサブコードパ ックは、訂正可能であると考えられる。 動作:四重消去訂正 (サブコードを含むオーディオ) 図15のステップ1520で、誤りは、サブコードパックのQ部分にだけ存在する( 図8Aを参照のこと)、例えばパックのP部分にわたるS0、S1がゼロである、 と判定されたとき、ステップ1550の四重消去訂正が、サブコードパックのQ部分 に対しておこなわれる。 サブステップ1550-2では、4つの誤りパターンE0、E1、E2およびE3が、サ ブステップ1550-4で計算される。それぞれの誤りパターンは、以下の方程式を用 いて発生される。 ここで、ak0、ak1、ak2およびak3のログ値は、表2に従って選択される。 サブステップ1550-2で4つの誤りパターンE0、E1、E2およびE3を計算した後 、(サブステップ1550-4で)これらの誤りパターンの少なくとも1つがゼロであ ることを確かめるためにチェックがなされる。これは、誤った訂正の可能性を低 くするためのものである。もしこれらの誤りパターンのどれもゼロではないのな ら、そのサブコードパックは、訂正不可能であると考えられる。これらの誤りパ ターンは、訂正部60により、サブコードパックのQ部分における3つ以下の誤り を含むバイトを訂正するために用いられる。 以上に本発明を、その好ましい実施形態に言及しながら具体的に示し、説明し てきたが、その形式および詳細については、本発明の精神および範囲から離れる ことなく、さまざまな改変がその中になされうることは、当業者には理解できる であろう。 独占所有権、すなわち特権を請求する本発明の実施形態は、以下のように規定 される。
───────────────────────────────────────────────────── 【要約の続き】 も最近のコードワードCWnに対する何らかのマルチビ ットのバッファで得られたポインタ(つまり、P0、 P1)に対して数学的演算をおこなう。サブコードモー ドでは、この誤り訂正システムは、サブコードパックを 用いて訂正をおこなおうと試みる。サブコードを訂正す るとき、このシステムは、まずパックの異なる部分に対 して異なるサブコードシンドロームのセットを発生す る。サブコードシンドロームの発生の後、システムコン トローラ(10)は、サブコードシンドロームを解析し、 その解析に基づいて、異なる訂正戦略を適用する。コン ピュータデータおよびサブコードのフィールド長が異な ることを考慮に入れて、シンドローム発生器(20)は、 異なるフィードバックパス(例えば、フィードバック乗 算器)を選択するように、選択的に構成可能となってい る。

Claims (1)

  1. 【特許請求の範囲】 1.コードワードのかたちのデータと、そのようなデータに対して発生された 何らかのポインタとを得るバッファと共に用いられ、該バッファからの該ポイン タが、1ビットのバッファで得られたポインタである、誤り訂正装置であって、 該コードワードに対するシンドロームを発生し、かつ該コードワードに対する 何らかの1ビットのバッファで得られたポインタを用いることによって、マルチ ビットのバッファで得られたポインタを発生する、発生器と、 あるコードワードに対して該発生器により発生された該シンドロームを用いる ことによって、該コードワードに対する誤りパターンを発生する、計算ユニット と、 該計算ユニットにより発生された該誤りパターンを用いることによって、該誤 りパターンが発生された対象である該コードワードを訂正する、訂正ユニットと 、 を備えている、誤り訂正装置。 2.前記バッファが、コンパクトディスクからコードワードのかたちのデータ を得る、請求項1に記載の装置。 3.1コードワードにつき2つの、1ビットのバッファで得られたポインタが 、前記バッファに設けられる時、前記発生器は、2つの、対応するマルチビット のバッファで得られたポインタを発生し、前記計算ユニットは、1コードワード に対する該2つの、マルチビットのバッファで得られたポインタを用いることに よって、該コードワードに対する中間ポインタ表現を形成し、かつ、該計算ユニ ットは、該発生器により1コードワードについて発生された前記シンドロームと 、該中間ポインタ表現と、の両方を用いることによって、該コードワードに対す る2つの誤りパターンを発生する、請求項1に記載の装置。 4.1コードワードにつき1つの、1ビットのバッファで得られたポインタが 、前記バッファに設けられる時、前記計算ユニットが、前記発生器により発生さ れ た前記シンドロームを用いることによって、該コードワードに対する独立して導 き出されたポインタを発生する、請求項1に記載の装置。 5.前記計算ユニットが、前記発生器により発生されたシンドロームを前記コ ードワードに対する単一の誤りパターンとして用いる、請求項4に記載の装置。 6.前記計算ユニットが、前記コードワードに対する前記独立して導き出され たポインタを、該コードワードに対する前記マルチビットのバッファで得られた ポインタと比較し、かつ、該比較に基づいてポインタ比較信号を出力する、請求 項1に記載の装置。 7.もし前記コードワードに対する前記独立して導き出されたポインタが、該 コードワードに対する前記マルチビットのバッファで得られたポインタに等しく ないのなら、前記ポインタ比較信号が、訂正不可能なコードワードを示す、請求 項6に記載の装置。 8.前記発生器により発生された前記マルチビットのバッファで得られたポイ ンタが、αLのフォーマットのものである、請求項1に記載の装置。 9.前記発生器および前記計算ユニットがそれぞれ2つのフェーズのあいだに 動作され、第1のフェーズのあいだに、 該発生器は、最も最近のコードワードに対する何らかの1ビットのバッファで 得られたポインタを用いることによって、該最も最近のコードワードに対するマ ルチビットのバッファで得られたポインタを発生し、一方 該計算ユニットは、以前のコードワードに対して該発生器により発生された前 記シンドロームを用いることによって、該以前のコードワードに対する誤りパタ ーンを発生し、 第2のフェーズのあいだに、 該発生器は、該最も最近のコードワードに対するシンドロームを発生し、一方 該計算ユニットは、該最も最近のコードワードに対する何らかのマルチビット のバッファで得られたポインタについて数学的演算をおこなう、請求項1に記載 の装置。 10.1コードワードにつき1つの、1ビットのバッファで得られたポインタが 、前記バッファに設けられる時、前記マルチビットのバッファで得られたポイン タに対しておこなわれる前記数学的演算が、該マルチビットのバッファで得られ たポインタの、α基底表現からβ基底表現への変換である、請求項9に記載の装 置。 11.前記第2のフェーズのあいだ、前記計算ユニットが、前記発生器により発 生された前記シンドロームを用いることによって、前記コードワードに対する独 立して導き出されたポインタを発生する、請求項9に記載の装置。 12.前記第1のフェーズのあいだ、前記計算ユニットが、前記以前のコードワ ードに対する前記独立して導き出されたポインタを、該以前のコードワードに対 する前記マルチビットのバッファで得られたポインタと比較し、かつ、該比較に 基づいてポインタ比較信号を出力する、請求項11に記載の装置。 13.もし前記以前のコードワードに対する前記独立して導き出されたポインタ が、該以前のコードワードに対する前記マルチビットのバッファで得られたポイ ンタに等しくないのなら、前記ポインタ比較信号が、訂正不可能なコードワード を示す、請求項12に記載の装置。 14.1コードワードにつき2つの、1ビットのバッファで得られたポインタが 、前記バッファに設けられる時、前記マルチビットのバッファで得られたポイン タに対しておこなわれる前記数学的演算が、該2つの、マルチビットのバッファ に得られたポインタの、α基底表現からβ基底表現への変換と、該2つの、マル チビットのバッファに得られたポインタの該β基底表現の和の逆数を形成する こととである、請求項9に記載の装置。 15.前記訂正ユニットが2つのフェーズのあいだに動作され、前記第1のフェ ーズのあいだは、該訂正ユニットが、前記最も最近のコードワードに対する何ら かのマルチビットのバッファで得られたポインタを格納し、かつ前記第2のフェ ーズのあいだは、該訂正ユニットが、前記計算ユニットにより発生された前記誤 りパターンを用いることによって、前記以前のコードワードを訂正する、請求項 9に記載の装置。 16.前記バッファが、第1ブロックと第2ブロックとを含む2つのインタリー ブされたブロックを有するものと概念づけられ、該バッファからコードワードが ペアをなして得られ、該コードワードのペアがそれぞれ、該第1ブロックから得 られた第1ブロックの最も最近のコードワードと、該第2ブロックから得られた 第2ブロックの最も最近のコードワードと、を含んでいる、装置において、 前記第1のフェーズのあいだは、 前記発生器は、該第1ブロックの最も最近のコードワードおよび該第2ブロッ クの最も最近のコードワードの両方に対する何らかのマルチビットのバッファで 得られたポインタを発生し、一方 該計算ユニットは、該第1ブロックから以前のコードワードに対する誤りパタ ーンを発生した後、該第2ブロックから以前のコードワードに対する誤りパター ンを発生し、該第1ブロックからの該以前のコードワードは、該第2ブロックか らの該以前のコードワードとペアにされており、 第2のフェーズのあいだは、 該発生器は、該第1ブロックの最も最近のコードワードおよび該第2ブロック の最も最近のコードワードに対するシンドロームを発生し、一方 該計算ユニットは、該第1ブロックからの該以前のコードワード、および、該 第2ブロックからの該以前のコードワードに対する何らかのマルチビットのバッ ファで得られたポインタについて数学的演算をおこなう、請求項9に記載の装置 。 17.コードワードのかたちのデータと、そのようなデータに対して発生された 何らかのポインタとを得るバッファと共に用いられ、該バッファからの該ポイン タが、1ビットのバッファで得られたポインタである、誤り訂正方法であって、 (1)最も最近のコードワードに対する何らかの1ビットのバッファで得られ たポインタを用いることによって、該最も最近のコードワードに対するマルチビ ットのバッファで得られたポインタを発生するステップと、 (2)以前のコードワードに対して発生されたシンドロームを用いることによ って、該以前のコードワードに対する誤りパターンを発生するステップと、 (3)該最も最近のコードワードに対するシンドロームを発生するステップと 、 (4)該最も最近のコードワードに対する何らかのマルチビットのバッファで 得られたポインタに対して数学的演算をおこなうステップと、 を含んでいる、方法。 18.前記バッファが、コンパクトディスクからコードワードのかたちのデータ を得る、請求項17に記載の方法。 19.前記シンドロームを発生し、かつマルチビットのバッファで得られたポイ ンタを発生するためにシンドローム発生器を用いるステップをさらに含んでいる 、請求項17に記載の方法。 20.前記ステップ(1)および(2)が動作の第1フェーズのあいだに本質的に 同時に実行され、前記ステップ(3)および(4)が動作の第2フェーズのあいだ に本質的に同時に実行される、請求項17に記載の方法。 21.前記ステップ(1)および(2)のあいだ、前記最も最近のコードワードに 対する何らかのマルチビットのバッファで得られたポインタが、訂正ユニットに 格納され、いっぽう、前記ステップ(3)および(4)のあいだ、該訂正ユニット が、前記計算ユニットにより発生された前記誤りパターンを用いることによって 、前記以前のコードワードを訂正する、請求項17に記載の方法。 22.2つの誤りを含む1コードワードにつき2つの、1ビットのバッファで得 られたポインタが、前記バッファに設けられる時、前記ステップ(1)のあいだ に、2つの、対応するマルチビットのバッファで得られたポインタが、該2つの 誤りを含むコードワードに対して発生され、前記ステップ(4)において、該2 つの誤りを含むコードワードに対する該2つの、マルチビットのバッファで得ら れたポインタが用いられることによって、該2つの誤りを含むコードワードに対 する中間ポインタ表現を形成し、かつ前記ステップ(2)において、前記シンド ロームおよび該中間ポインタ表現の両方が用いられることによって、該2つの誤 りを含むコードワードに対する2つの誤りパターンを発生する、請求項17に記載 の方法。 23.2つ未満の誤りを含むコードワードにつき1つの、1ビットのバッファで 得られたポインタが、前記バッファに設けられるとき、前記シンドロームが用い られることによって、該2つ未満の誤りを含むコードワードに対する独立して導 き出されたポインタを発生する、請求項17に記載の方法。 24.前記独立して導き出されたポインタが、前記ステップ(2)のあいだに発 生される、請求項23に記載の方法。 25.前記2つ未満の誤りを含むコードワードに対する前記独立して導き出され たポインタと、該2つ未満の誤りを含むコードワードに対する前記マルチビット のバッファで得られたポインタとを比較することと、 該比較に基づいてポインタ比較信号を出力することと、 をさらに含んでいる、請求項23に記載の方法。 26.もし前記2つ未満の誤りを含むコードワードに対する前記独立して導き出 されたポインタが、該2つ未満の誤りを含むコードワードに対する前記マルチビ ットのバッファで得られたポインタに等しくないのなら、前記ポインタ比較信号 が、訂正不可能なコードワードを示す、請求項25に記載の方法。 27.シンドロームが、前記コードワードに対する単一の誤りパターンとして用 いられる、請求項23に記載の方法。 28.2つ未満の誤りを含むコードワードにつき1つの、1ビットのバッファで 得られたポインタが、前記バッファに設けられる時、前記マルチビットのバッフ ァで得られたポインタに対しておこなわれる前記数学的演算が、該マルチビット のバッファで得られたポインタの、α基底表現からβ基底表現への変換である、 請求項17に記載の方法。 29.2つの誤りを含むコードワードにつき2つの、1ビットのバッファで得ら れたポインタが、前記バッファに設けられる時、前記マルチビットのバッファで 得られたポインタに対しておこなわれる前記数学的演算が、 該2つの、マルチビットのバッファで得られたポインタの、α基底表現からβ 基底表現への変換と、 該2つの、マルチビットのバッファで得られたポインタの該β基底表現の和の 逆数を形成することと、 を含んでいる、請求項17に記載の方法。 30.前記バッファが、第1ブロックと第2ブロックとを含む2つのインタリー ブされたブロックを有するものと概念づけられ、該バッファからコードワードが ペアをなして得られ、該コードワードのペアがそれぞれ、該第1ブロックから得 られた第1ブロックの最も最近のコードワードと、該第2ブロックから得られた 第2ブロックの最も最近のコードワードと、を含んでいる、方法において、 前記ステップ(1)のあいだは、何らかのマルチビットのバッファで得られた ポインタが、該第1ブロックの最も最近のコードワードおよび該第2ブロックの 最も最近のコードワードの両方に対して発生され、一方 前記ステップ(2)のあいだは、まずある誤りパターンが、該第1ブロックか ら以前のコードワードに対して発生された後、ある誤りパターンが、該第2ブロ ックから以前のコードワードに対して発生され、該第1ブロックからの該以前の コードワードは、該第2ブロックからの該以前のコードワードとペアにされてお り、 前記ステップ(3)のあいだは、シンドロームが、該第1ブロックの最も最近 のコードワードおよび該第2ブロックの最も最近のコードワードに対して発生さ れ、かつ 前記ステップ(4)のあいだは、数学的演算が、該第1ブロックからの該以前 のコードワード、および、該第2ブロックからの該以前のコードワードに対する 何らかのマルチビットのバッファで得られたポインタについておこなわれる、請 求項17に記載の方法。 31.前記ステップ(1)および(2)が動作の第1フェーズのあいだに本質的に 同時に実行され、前記ステップ(3)および(4)が動作の第2フェーズのあいだ に本質的に同時に実行される、請求項30に記載の方法。 32.2つの誤りを含むコードワードにつき2つの、1ビットのバッファで得ら れたポインタが、前記バッファに設けられる時、前記ステップ(1)のあいだに 、2つの、対応するマルチビットのバッファで得られたポインタが、該2つの誤 りを含むコードワードに対して発生され、前記ステップ(4)において、該2つ の誤りを含むコードワードに対する該2つの、マルチビットのバッファで得られ たポインタが用いられることによって、該2つの誤りを含むコードワードに対す る中間ポインタ表現を形成し、かつ前記ステップ(2)において、前記シンドロ ームおよび該中間ポインタ表現の両方が用いられることによって、該2つの誤り を含むコードワードに対する2つの誤りパターンを発生する、請求項30に記載の 方法。 33.2つ未満の誤りを含むコードワードにつき1つの、1ビットのバッファで 得られたポインタが前記バッファに設けられるとき、前記シンドロームが用いら れることによって、該2つ未満の誤りを含むコードワードに対する独立して導き 出されたポインタを発生する、請求項30に記載の方法。 34.前記独立して導き出されたポインタが、前記ステップ(2)のあいだに発 生される、請求項33に記載の方法。 35.前記2つ未満の誤りを含むコードワードに対する前記独立して導き出され たポインタと、該2つ未満の誤りを含むコードワードに対する前記マルチビット のバッファで得られたポインタとを比較することと、 該比較に基づいてポインタ比較信号を出力することと、 をさらに含んでいる、請求項34に記載の方法。 36.もし前記2つ未満の誤りを含むコードワードに対する前記独立して導き出 されたポインタが、該2つ未満の誤りを含むコードワードに対する前記マルチビ ットのバッファで得られたポインタに等しくないのなら、前記ポインタ比較信号 が、訂正不可能なコードワードを示す、請求項35に記載の方法。 37.2つ未満の誤りを含むコードワードにつき1つの、1ビットのバッファで 得られたポインタが、前記バッファに設けられる時、前記マルチビットのバッフ ァで得られたポインタに対しておこなわれる前記数学的演算が、該マルチビット のバッファで得られたポインタの、α基底表現からβ基底表現への変換である、 請求項30に記載の方法。 38.2つの誤りを含むコードワードにつき2つの、1ビットのバッファで得ら れたポインタが、前記バッファに設けられる時、前記マルチビットのバッファで 得られたポインタに対しておこなわれる前記数学的演算が、 該2つの、マルチビットのバッファで得られたポインタの、α基底表現からβ 基底表現への変換と、 該2つの、マルチビットのバッファで得られたポインタの該β基底表現の和の 逆数を形成することと、 を含んでいる、請求項30に記載の方法。 39.前記バッファが、コンパクトディスクからコードワードのかたちのデータ を得る、請求項30に記載の方法。 40.サブコードパックに対して誤り訂正をおこなう方法であって、 該パックの第1部分にわたって第1セットのシンドロームを発生することと、 該パックの第2部分にわたって第2セットのシンドロームを発生することと、 該パックの全体にわたって第3セットのシンドロームを発生することと、 該第1、該第2および該第3セットのシンドロームを解析することと、 該解析に基づいて、復数の誤り訂正戦略のうちの1つを該パックについて選択 することと、 を含む方法。 41.前記第1セットのシンドロームが、前記パックのQ部分にわたって発生さ れ、前記第2セットのシンドロームが、該パックのP部分にわたって発生される 、請求項40に記載の方法。 42.前記第1セットのシンドロームが、前記パックのパック識別情報を含んで いる部分にわたって発生され、前記第2セットのシンドロームが、該パックのデ ィジタルデータを含んでいる部分にわたって発生される、請求項40に記載の方法 。 43.前記解析が、誤りは前記パックの前記第2部分には存在しうるが、該パッ クの前記第1部分にはないことを示すとき、第1戦略が選択される、請求項40に 記載の方法。 44.前記第1戦略が、前記パックの前記第2部分の二重誤り訂正を伴う、請求 項43に記載の方法。 45.前記パックの前記第2部分の前記二重誤り訂正が、 誤りロケータ多項式を用いてルートサーチをおこなうことと、 該ルートサーチのあいだに位置が特定されたルートを用いることによって、ポ インタを発生することと、 前記シンドロームを用いることによって、該ポインタにより示された、該パッ クの該第2部分におけるバイトに対して誤りパターンを発生することと、 を伴う、請求項44に記載の方法。 46.前記解析が、誤りは前記パックの前記第1部分および該パックの前記第2 部分の両方に存在しうることを示すとき、第2戦略が選択される、請求項40に記 載の方法。 47.前記第2戦略が、前記パックの前記第1部分および該パックの前記第2部 分のそれぞれにおける単一誤り訂正を伴う、請求項46に記載の方法。 48.前記第2戦略が、前記パックの前記第1部分のみにわたって発生された前 記シンドロームを用いることによって、該パックの該第1部分におけるバイトに 対する誤りパターンを発生することと、該パックの前記第2部分のみにわたって 発生された前記シンドロームを用いることによって、該パックの該第2部分にお けるバイトに対する誤りパターンを発生することと、を伴う、請求項47に記載の 方法。 49.前記解析が、誤りは前記パックの前記第1部分のみに存在しうることを示 すとき、第3戦略が選択される、請求項40に記載の方法。 50.前記第3戦略が、前記パックの前記第1部分における3バイトの訂正を伴 う、請求項49に記載の方法。 51.前記シンドロームの線形結合を用いて、複数の誤りパターンが計算される 、請求項49に記載の方法。 52.単一ビットの入力値を受け取り、該単一ビット値を用いることによって、 データの誤り訂正に用いられるマルチビット出力値を発生する発生器であって、 異なるフィールド長を有するマルチビット値を発生するように選択的に構成可能 である、発生器。 53.前記発生器が、シンドローム発生器である、請求項52に記載の装置。 54.前記発生器が、コンピュータデータ用のシンドロームおよびディジタルオ ーディオサブコード用のシンドロームの両方を発生する、請求項52に記載の装置 。 55.前記発生器が、8ビット出力値および6ビット出力値の両方を発生する、 請求項52に記載の装置。 56.誤り訂正に用いられる出力値を発生する発生器であって、 入力値を受け取るように接続された第1入力端子を有する第1加算器と、 出力値をその中に蓄積する第1のレジスタペアであって、該第1のレジスタペ アの第1レジスタが、 該第1加算器の出力端子に接続された入力端子、および 該第1のレジスタペアの第2レジスタの入力端子に接続された出力端子 を有している、第1のレジスタペアと、 第1フィードバック回路であって、該第1のレジスタペアの該第2レジスタの 出力端子に接続された入力端子、および該第1加算器の第2の入力端子に接続さ れた出力端子を有する、第1フィードバック回路と、 を備えている発生器において、 該第1フィードバック回路が、複数のフィードバック定数の中から選択された 1つが、該回路により利用されるように選択的に構成可能である、発生器。 57.前記第1フィードバック回路が、異なるフィールド長に対するフィード バック定数の間で選択するように構成可能である、請求項56に記載の装置。 58.前記第1フィードバック回路が、複数の対応するフィードバック定数乗算 器をその上に含む複数のフィードバックラインを有しており、該第1フィードバ ック回路が、該複数のフィードバックラインの間で選択するためのスイッチをさ らに備えている、請求項57に記載の装置。 59.第1フィードバック定数が、8ビットバイトフィールド長に対応しており 、第2フィードバック定数が、6ビットバイトフィールド長に対応している、請 求項57に記載の装置。 60.前記発生器がシンドローム発生器であり、該発生器が、前記第1フィード バック定数を用いることによりコンピュータデータに対するシンドロームを発生 し、かつ該発生器が、前記第2フィードバック定数を用いることによりサブコー ドに対するシンドロームを発生する、請求項59に記載の装置。 61.入力値を受け取るように接続された第1入力端子を有する第2加算器と、 出力値をその中に蓄積する第2のレジスタペアであって、該第2のレジスタペ アの第1レジスタが、 該加算器の出力端子に接続された入力端子、および 該第2のレジスタペアの第2レジスタの入力端子に接続された出力端子 を有している、第2のレジスタペアと、 第2フィードバック回路であって、該第2のレジスタペアの該第2レジスタの 出力端子に接続された入力端子、および該加算器の第2の入力端子に接続された 出力端子を有する、第2フィードバック回路と、 をさらに備えている装置において、 該第1第2回路が、複数のフィードバック定数のうちの選択された1つが、該 回路により利用されるように選択的に構成可能である、請求項56に記載の装置。 62.同一の入力値を、前記第1加算器と、前記第2加算器とに与えるスイッチ ング手段をさらに備えている、請求項61に記載の装置。 63.コンピュータデータあるいはバッファ内に格納されたサブコードを訂正す るように動作可能である、コンパクトディスクドライブ用の誤り訂正システムで あって、 コンピュータデータあるいはディジタルオーディオサブコードのいずれが訂正 されているかを示すモード信号を出力するコントローラと、 該コントローラにより出力された該信号に応じて、コンピュータデータシンド ロームおよびサブコードシンドロームの一方を発生するシンドローム発生器と、 該コントローラの制御の下に、該シンドローム発生器により発生されたシンド ロームを用いることによって誤りパターンを発生する、誤りパターン発生器と、 を備えている誤り訂正システムにおいて、 該モード信号と、該シンドローム発生器により発生された該シンドロームとに 応じて、該コントローラが、該誤りパターン発生器による誤りパターン発生を制 御するために、複数の誤りパターン発生プロシージャの中から選択する、誤り訂 正システム。 64.前記モード信号が、コンピュータデータが訂正されていることを示すとき 、前記誤りパターン発生器が前記シンドロームを用いることによって、システム ポインタビットを発生し、かつ、該シンドロームが、該システムポインタビット を用いて、マルチビットのシステムポインタ値を発生する、請求項63に記載の装 置。 65.前記誤りパターン発生器が、前記マルチビットのシステムポインタ値をバ ッファに供給されたポインタ値とさらに比較する、請求項64に記載の装置。 66.前記モード信号が、コンピュータデータが訂正されていることを示すとき 、前記コントローラが、該訂正されているデータに対して前記バッファ内に格 納されたバッファに供給されたポインタの個数に応じて、誤りパターン発生プロ シージャを選択する、請求項63に記載の装置。 67.前記モード信号が、コンピュータデータが訂正されていること、およびバ ッファに供給されたポインタが1つしかないことを示すとき、前記誤りパターン 発生器が、前記シンドロームを用いることによってシステムポインタを発生する 、請求項66に記載の装置。 68.前記モード信号が、サブコードデータが訂正されていることを示すとき、 前記シンドローム発生器が、サブコードパックの第1部分にわたって第1セット のシンドロームを発生し、該パックの第2部分にわたって第2セットのシンドロ ームを発生し、かつ全パックにわたって第3セットのシンドロームを発生する、 請求項63に記載の装置。 69.前記第1セットのシンドロームが、前記パックのパック識別情報を含む部 分にわたって発生され、前記第2セットのシンドロームが、該パックのディジタ ルデータを含む部分にわたって発生される、請求項68に記載の装置。 70.前記モード信号が、サブコードデータが訂正されていることを示すとき、 前記シンドロームが、誤りは前記パックの前記第2部分には存在しうるが、該パ ックの前記第1部分にはないことを示すのなら、前記コントローラは、第1のサ ブコード誤りパターン発生戦略を選択し、該シンドロームが、誤りは該パックの 該第1部分および該パックの該第2部分の両方に存在しうることを示すのなら、 第2の誤りパターン発生戦略を選択し、かつ該シンドロームが、誤りは該パック の該第1部分にのみ存在しうることを示すのなら、第3の誤りパターン発生戦略 を選択する、請求項68に記載の装置。
JP51040596A 1994-09-16 1995-09-15 多目的誤り訂正システム Expired - Fee Related JP3250735B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US307,259 1994-09-16
US08/307,259 US5592404A (en) 1993-11-04 1994-09-16 Versatile error correction system
PCT/US1995/011987 WO1996008873A1 (en) 1994-09-16 1995-09-15 Versatile error correction system

Publications (2)

Publication Number Publication Date
JPH10500270A true JPH10500270A (ja) 1998-01-06
JP3250735B2 JP3250735B2 (ja) 2002-01-28

Family

ID=23188931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51040596A Expired - Fee Related JP3250735B2 (ja) 1994-09-16 1995-09-15 多目的誤り訂正システム

Country Status (7)

Country Link
US (1) US5592404A (ja)
EP (3) EP0781470B1 (ja)
JP (1) JP3250735B2 (ja)
KR (1) KR100295478B1 (ja)
CN (1) CN1099110C (ja)
DE (1) DE69516882T2 (ja)
WO (1) WO1996008873A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
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
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
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
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
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk 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
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
ATE421143T1 (de) * 2003-05-30 2009-01-15 Ibm Datenspeichersysteme
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

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US28923A (en) * 1860-06-26 Henry o
USRE28923E (en) 1971-12-27 1976-08-03 International Business Machines Corporation Error correction for two bytes in each code word in a multi-code word system
US4077028A (en) * 1976-06-14 1978-02-28 Ncr Corporation Error checking and correcting device
DE3336747C2 (de) * 1983-10-08 1985-11-28 Deutsche Thomson-Brandt Gmbh, 7730 Villingen-Schwenningen Verfahren zur Auswertung eines aus mehreren Codeelementen bestehenden Steuercodewortes
CN1004309B (zh) * 1985-04-01 1989-05-24 索尼公司 用于记录和/或重现数字数据的系统
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
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
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
EP1031992B1 (en) * 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
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 エラー訂正方法
KR930010355B1 (ko) * 1991-07-09 1993-10-16 삼성전자 주식회사 데이타 오류정정 디코딩방법 및 그 장치
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 誤り訂正方法及び装置
KR0141240B1 (ko) * 1993-06-28 1998-07-15 김광호 에러정정용 메모리장치

Also Published As

Publication number Publication date
JP3250735B2 (ja) 2002-01-28
KR970706655A (ko) 1997-11-03
DE69516882T2 (de) 2000-11-16
EP0781470B1 (en) 2000-05-10
EP0973267A3 (en) 2003-10-15
WO1996008873A1 (en) 1996-03-21
EP0781470A1 (en) 1997-07-02
EP0973267A2 (en) 2000-01-19
EP0974968A3 (en) 2003-12-03
DE69516882D1 (de) 2000-06-15
KR100295478B1 (ko) 2001-09-17
CN1099110C (zh) 2003-01-15
US5592404A (en) 1997-01-07
CN1158676A (zh) 1997-09-03
EP0974968A2 (en) 2000-01-26

Similar Documents

Publication Publication Date Title
JP3250735B2 (ja) 多目的誤り訂正システム
JPS638651B2 (ja)
JP3250736B2 (ja) 多目的誤り訂正計算回路
JP3245119B2 (ja) 新たな多項式配列構造を採用したリード−ソロモン復号器とその復号方法
JP3281387B2 (ja) Crc/edcチェッカシステム
JP2713902B2 (ja) アドレス発生回路
JP3502583B2 (ja) 誤り訂正方法および誤り訂正装置
JP3345385B2 (ja) チェンサーチ装置
US6453441B1 (en) Error correcting device and optical disk reader comprising same
US8102996B2 (en) Scrambler, descrambler and method, and disc apparatus
KR200141094Y1 (ko) 비씨에이취 코드워드를 부호화하는 장치
US6564352B1 (en) Error detection circuit applicable to a disk reproduction apparatus
JP2008011025A (ja) 巡回冗長検査のための剰余計算装置
EP0584864B1 (en) A hardware-efficient method and device for encoding BCH codes and in particular Reed-Solomon codes
JP2001044853A (ja) チェンサーチ回路、誤り訂正装置及びディスクドライブ装置
JPS638648B2 (ja)
JP3310186B2 (ja) リード・ソロモン符号の復号回路
JP2553571B2 (ja) ガロア体演算装置
JP4595238B2 (ja) 消失のみ訂正方法、消失のみ訂正方法のプログラム、消失のみ訂正方法のプログラムを記録した記録媒体及び消失訂正専用回路
JPH10150367A (ja) 誤り訂正装置
JPS58219649A (ja) ガロア体における除算装置
JPS6237415B2 (ja)
JPS58219647A (ja) ガロア体における除算装置
JPS638649B2 (ja)
JPH10163881A (ja) データ誤り検出符号の算出方法及び算出回路

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees