(57)【特許請求の範囲】
【請求項１】
ディスク記憶装置内の誤りを訂正するためのシステムであって、
前記ディスク記憶装置内に記憶するために中央処理装置より供給されたオリジナルデータを符号化するためのエンコーダと、
前記ディスク記憶装置からディスクドライブによって読出されたデータを復号化するためのデコーダと、
前記中央処理装置、ディスクドライブ、エンコーダおよびデコーダによってアクセス可能な複数のワーキングバッファと、
前記中央処理装置、ディスクドライブ、エンコーダおよびデコーダの各々が前記複数のワーキングバッファのうちの予め定められた１つのバッファにアクセスが可能なように、前記複数のワーキングバッファをアドアレス指定するためのアドレス発生器とを含み、
前記アドレス発生器は、
前記複数のワーキングバッファを回転させて、前記中央処理装置、ディスクドライブ、エンコーダおよびデコーダの各々が前記複数のワーキングバッファのすべてに逐次的にアクセスできるようにするためのバッファ回転回路と、
前記中央処理装置および前記ディスクドライブにワーキングバッファの位置へのリニアアクセスを提供するためのローディングアドレス発生器と、
前記エンコーダおよびデコーダにワーキングバッファの位置へのインタリーブおよびランダムアクセスを提供するための処理アドレス発生器を含む、システム。
【請求項２】
前記複数のワーキングバッファに結合された複数のアドレスマルチプレクサを有するアドレス多重化回路をさらに含む、請求項１に記載のシステム。
【請求項３】
前記複数のアドレスマルチプレクサの各々における第１の入力は前記ローディングアドレス発生器に接続され、前記複数のアドレスマルチプレクサの各々における第２の入力は前記処理アドレス発生器に接続される、請求項２に記載のシステム。
【請求項４】
前記複数のアドレスマルチプレクサは前記バッファ回転回路によって制御される、請求項３に記載のシステム。
【請求項５】
入力が前記複数のワーキングバッファに接続され、かつ出力が前記中央処理装置、ディスクドライブ、エンコーダおよびデコーダに結合されたデータバス多重化回路をさらに含む、請求項４に記載のシステム。
【請求項６】
前記データバス多重化回路は前記バッファ回転回路によって制御される、請求項５に記載のシステム。
【請求項７】
前記バッファ回転回路は、回転数および符号化／復号化選択信号が供給される複数の比較器を含む、請求項６に記載のシステム。
【請求項８】
前記処理アドレス発生器は、前記エンコーダおよびデコーダに供給される一体化されたワードカウンタに基づいて、種々のフォーマットのディスクのために前記エンコーダおよびデコーダによって処理されるワードを指定するマッピング回路を含む、請求項１に記載のシステム。
【請求項９】
光ディスク記憶装置における誤りを訂正するための誤り制御チップであって、
前記光ディスク記憶装置内に記憶するために中央処理装置によって供給されたオリジナルデータを符号化し、かつ、前記ディスク記憶装置から光ディスクドライブによって読出された記憶されたデータを復号化するためのエンコーダ／デコーダ回路を含み、符号化されたデータは光ディスクドライブに供給され、復号化されたデータは前記中央処理装置に供給され、さらに、
符号化／復号化手順中にデータを記憶するための第１、第２および第３のワーキングバッファと、
符号化／復号化手順の各々のサイクルにおいて前記中央処理装置、ディスクドライブ、およびエンコーダ／デコーダ回路の各々に前記第１、第２および第３のワーキングバッファのうちの１つのバッファへのアクセスを提供するためのアドレス発生器とを含み、
前記アドレス発生器は、
前記複数のワーキングバッファを回転させて、前記中央処理装置、ディスクドライブ、エンコーダおよびデコーダの各々が前記複数のワーキングバッファのすべてに逐次的にアクセスできるようにするためのバッファ回転回路と、
前記中央処理装置および前記ディスクドライブにワーキングバッファの位置へのリニアアクセスを提供するためのローディングアドレス発生器と、
前記エンコーダおよびデコーダにワーキングバッファの位置へのインタリーブおよびランダムアクセスを提供するための処理アドレス発生器を含む、チップ。
【請求項１０】
前記バッファ回転回路は、前記第１、第２および第３のワーキングバッファの各々を前記中央処理装置、ディスクドライブ、およびエンコーダ／デコーダ回路の各々に逐次接続する、請求項９に記載のチップ。
【請求項１１】
前記ローディングアドレス発生器は、前記中央処理装置に、前記オリジナルデータを供給するためおよび前記復号化されたデータを読出すために前記第１、第２および第３のワーキングバッファの各々へのアクセスを提供する、請求項１０に記載のチップ。
【請求項１２】
前記ローディングアドレス発生器はさらに、前記光ディスクドライブに、前記光ディスク上に書込まれるべき前記符号化されたデータを受取るためおよび前記光ディスクより読出された前記記憶されたデータを供給するために前記第１、第２および第３のワーキングバッファの各々へのアクセスを提供する、請求項１１に記載のチップ。
【請求項１３】
前記ローディングアドレス発生器は前記ワーキングバッファのリニアアドレスを提供する、請求項１２に記載のチップ。
【請求項１４】
前記処理アドレス発生器は、前記エンコーダ／デコーダ回路に、データの符号化および復号化のために前記第１、第２および第３のワーキングバッファ各々へのアクセスを提供する、請求項１３に記載のチップ。
【請求項１５】
前記処理アドレス発生器は、前記ワーキングバッファのインタリーブおよびランダムアドレス指定を提供する、請求項１４に記載のチップ。
【請求項１６】
前記処理アドレス発生器は、加算器と、前記加算器の入力に結合された第１のシフトレジスタとを有する、第１の値で乗算するための第１の回路を含む、請求項１４に記載のチップ。
【請求項１７】
前記処理アドレス発生器は、前記加算器の出力に結合された第２のシフトレジスタを有する、第２の値で乗算するための第２の回路をさらに含む、請求項１６に記載のチップ。
【請求項１８】
前記処理アドレス発生器は、第１の入力が前記加算器に結合されかつ第２の入力が前記第２のシフトレジスタに結合されたフォーマットセレクタをさらに含む、請求項１７に記載のチップ。
【請求項１９】
前記フォーマットセレクタは、選択フォーマット信号によって制御されて、前記光ディスク記憶装置の第１のフォーマットが選択された際には前記フォーマットセレクタの出力端子に前記加算器の出力を結合し、かつ、前記光ディスク記憶装置の第２のフォーマットが選択された際には前記フォーマットセレクタの出力端子に前記第２のシフトレジスタの出力を結合する、制御入力とを有する、請求項１８記載のチップ。
【請求項２０】
符号化の方法であって、
リニアアドレス指定モードにより第１のワーキングバッファのアドレスを指定して前記第１のワーキングバッファに符号化されるべき第１のデータブロックを供給するステップと、
インタリーブおよびランダムアドレス指定モードにより第２のワーキングバッファをアドレス指定して前記第２のワーキングバッファ内に記憶された第２のデータブロックを、符号化するステップと、
フォーマット信号に従って前記第２のワーキングバッファのアドレス指定のインターリブ量を変更するステップと、
リニアアドレス指定モードで第３のワーキングバッファのアドレスを指定して前記第３のワーキングバッファ内に記憶された符号化された第３のデータブロックを出力するステップと、
前記第１、第２および第３のワーキングバッファを回転させて、前記第３のワーキングバッファに符号化されるべき第４のデータブロックを供給し、前記第１のワーキングバッファ内に記憶された第１のデータブロックを符号化し、前記第２のワーキングバッファから符号化された第２のデータブロックを出力するステップと、
前記第１、第２および第３のワーキングバッファをさらに回転させて、前記第２のワーキングバッファに符号化されるべき第５のデータブロックを供給し、前記第３のワーキングバッファ内に記憶された第４のデータブロックを符号化し、前記第１のワーキングバッファから符号化された第１のデータブロックを出力するステップとを含む、方法。
【請求項２１】
復号化の方法であって、
リニアアドレス指定モードで第１のワーキングバッファのアドレス指定を行って前記第１のワーキングバッファに復号化されるべき第１のデータブロックを供給するステップと、
インタリーブおよびランダムアドレス指定モードにより第２のワーキングバッファをアドレス指定して前記第２のワーキングバッファ内に記憶された第２のデータブロックを復号化するステップと、
フォーマット信号に従って前記第２のワーキングバッファのアドレス指定のインターリブ量を変更するステップと、
リニアアドレス指定モードで第３のワーキングバッファのアドレスを指定して前記第３のワーキングバッファ内に記憶された復号化された第３のデータブロックを出力するステップと、
前記第１、第２および第３のワーキングバッファを回転させて、前記第３のワーキングバッファに復号化されるべき第４のデータブロックを供給し、第１のワーキングバッファ内に記憶された第１のデータブロックを復号化し、前記第２のワーキングバッファから復号化された第２のデータブロックを出力するステップと、
前記第１、第２および第３のワーキングバッファをさらに回転させて、前記第２のワーキングバッファに符号化されるべき第５のデータブロックを供給し、前記第３のワーキングバッファ内に記憶された第４のデータブロックを復号化し、前記第１のワーキングバッファから復号化された第１のデータブロックを出力するステップとを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は一般に、誤り訂正に関し、より特定的には、光ディスク記憶装置のための誤り訂正システムの動作を支持するアドレス発生器に関する。
【０００２】
【背景技術】
記憶媒体はさまざまな種類の雑音、歪みおよび干渉にさらされるため、書込まれたデータの消去を含む種々の誤りがその出力に生じ得る。光ディスク記憶装置内に記憶されるディジタルデータは大量であるため、誤りおよび消去の可能性は高い。これらの誤りおよび消去を訂正するために、光ディスク記憶装置には誤り制御チップ（ＥＣＣ）が備えられる。ここで図１を参照して、誤り制御チップ２０は、コア２２と、光ディスク２６のセクタに対応してデータを記憶するためのセクタバッファ２４とを含む。光ディスク２６上に書込まれるべきオリジナルデータは、中央処理装置（ＣＰＵ）２８からセクタバッファ２４へと供給される。コア２２内のエンコーダは、オリジナルデータをデータバイトおよび冗長バイトを含む符号語に変換する。この符号語は、セクタバッファ２４を介して光ディスク２６上に書込まれる。読出モードにおいては、符号語はセクタバッファ２４を介してコア２２内のデコーダに供給される。復号化されたデータは、セクタバッファ２４を介してＣＰＵ２８に転送される。
【０００３】
光ディスクへの応用において、符号語は国際標準化機構（ＩＳＯ）標準に基づいて符号化されるが、これは巡回冗長検査（ＣＲＣ）符号化を要し、かつ複数のガロア体にわたるリードソロモン（ＲＳ）符号を組込む。ＲＳ（ｎ，ｋ）符号は、巡回記号誤り訂正符号であって、ここでオリジナルデータのうちｋ個の記号が符号化される。その結果は（ｎ−ｋ）記号冗長ブロックであって、これがそのデータに付加される。ガロア体とは有限体であって、その元は、変数としての特定の原始元を有する多項式として表現され得る。ＲＳ符号は２m の２進記号のガロア体ＧＦ（２m ）のブロックのシーケンスを表わし、ここでｍは記号当りのビット数である。ガロア体ＧＦ（２m ）を構築するには、次数ｍの生成多項式ｐ（ｘ）および、ｐ（ｘ）の根である原始元βを要する。βのべきは、ＧＦ（２m ）のゼロでないすべての元を生成する。
【０００４】
図２に示されるように、コア２２は、ＣＲＣ符号化回路３４とＲＳ符号化回路３６とを有するエンコーダ３２を含む。エンコーダ３２は、ｋ個のステップにおいて、（ｎ−ｋ）個の冗長バイトを生成し、これがオリジナルの符号データに付加されて、光ディスク２６上に書込まれるｎバイトの符号語が作られる。コア２２のデコーダ３８は、シンドローム発生器４０を含む。シンドローム発生器４０は誤りを検出して、光ディスク２６から受取った変造されたデータの各語に対してシンドロームバイトＳ（ｘ）を生成する。シンドローム（ｎ−ｋ）バイトは、ユークリッド演算回路４２に供給される。ユークリッド演算回路４２は、拡張されたユークリッドの互除法を使用して、誤り位置多項式σ（ｘ）および誤り値多項式η（ｘ）を見つける。このユークリッド演算回路４２は誤り探知回路４４に接続される。誤り探知回路４４はチエンサーチ（Chien Search）プロセスを使用して、誤り位置多項式σ（ｘ）に基づいて実際の誤り位置を発見する。この誤り位置が、誤り値多項式η（ｘ）および誤り位置多項式σ（ｘ）とともに誤り値計算機４６によって使用されて、チエンサーチプロセスによって発見された誤り位置の各々における誤り値が判定される。誤り訂正回路４８はわかっている誤り位置および値を使用してその誤りを訂正する。ＣＲＣ復号化回路５０はＣＲＣ復号化を行なって、復号化されたデータをＣＰＵ２８に供給する。
【０００５】
変造されたデータが消去を含む場合、デコーダ３８はわかっている消去位置に基づいて消去多項式を見つけるために多項式展開を行なう。モジュール多項式乗算を実行して、通常の多項式乗算において使用される修正されたシンドローム多項式を計算して、消去／誤り位置多項式を得るのである。これらの多項式演算を行なうために、デコーダ３８は多項式処理モジュール（ＰＰＭ）５２を含んでもよい。この多項式処理モジュールは、１９９４年２月７日に出願の、「誤り制御符号化のための有限体多項式処理モジュール（“FINITE FIELD POLYNOMIAL PROCESSING MODULE FOR ERROR CONTROL CODING”）」と題された、同時係属中の米国特許出願番号第０８／１９２，９０９号に、より詳細に記載されており、これがここに引用により援用される。
【０００６】
上述のように、セクタバッファ２４は、符号化のためにＣＰＵ２８から供給されるオリジナルデータと、ディスク２６上に書込むためにエンコーダ３２によって符号化されるデータと、復号化のためにディスク２６から供給される変造データと、ＣＰＵ２８に転送するためにデコーダ３８によって復号化されるデータとを記憶する。このため、ＣＰＵ２８、光ディスク２６から／への読出／書込を行なう光ディスクドライブ（ＯＤＤ）、エンコーダ３２、およびデコーダ３８は、セクタバッファへの別個のアクセスを備えられなければならない。
【０００７】
光ディスク２６の種々のフォーマットのためのセクタバッファ２４の従来よりのデータ構成の例が図３に示される。ここでは４つの光ディスクフォーマットが示されている。９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５Ｋフォーマットはそれぞれ、セクタ当り５２２バイト（０．５Ｋ）を有する９０ｍｍ（３  １／２インチ）ディスクおよび、セクタ当り０．５Ｋの１３０ｍｍ（５
１／４インチ）ディスクを規定する。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットは、セクタ当り１０２４バイト（１Ｋ）を有する９０ｍｍディスクおよび、セクタ当り１Ｋの１３０ｍｍディスクをそれぞれ規定する。
【０００８】
９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、セクタバッファ２４は１２０バイト（垂直方向）×１０ワード（水平方向）として構成されており、そのうち、各ワードの最後の１６バイトが冗長である。
【０００９】
１３０ｍｍ／０．５Ｋフォーマットについては、セクタバッファ２４は６１バイト（垂直方向）×５ワード（水平方向）として構成されており、各ワードの最後の１６バイトが冗長である。
【００１０】
９０ｍｍ／０．５Ｋフォーマットについては、セクタバッファ２４は６０バイト（垂直方向）×５ワード（水平方向）で構成されており、各ワードの最後の１６バイトが冗長である。すべてのフォーマットについて、バッファ位置１２００〜１２１６内に消去位置バイトが記憶される。
【００１１】
図３に示されるように、９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、ＣＲＣバイトは位置１０３６、１０３７、１０３８および１０３９に記憶される。９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５Ｋフォーマットについては、位置５１６〜５１９および５２６〜５２９がそれぞれ、ＣＲＣバイトに充てられる。
【００１２】
このセクタバッファ２４には３つの異なるアクセス方法が必要である。すなわち、ＣＰＵ２８およびディスク２６とのインタフェースを支持するためにかつ消去位置をロードするために、各符号語の各バイトへのリニアアクセスが提供されなくてはならない。誤り訂正のためには、バッファの各位置はランダムにアクセス可能でなければならない。なぜなら、訂正回路は誤り訂正のために、判定された誤り位置にアクセスできなければならないからである。ＣＲＣおよびＲＳ符号化／復号化を支持するためには、符号語は、データがＣＰＵまたはディスクからセクタバッファへ一方向で書込まれかつ異なる方向で誤り訂正回路によって読出される、インタリーブ方式でアクセスされ得る。
【００１３】
図４に示されるように、誤り訂正システムのスループットを増すために、復号化モジュールは、セクタバッファ２４内の異なる符号語（ＣＷ０〜ＣＷ９）上で同時に動作するように、パイプラインに配することが可能である。このパイプライン方式は以下の復号化動作を含む：シンドローム生成／ＣＲＣ復号化（ＳＹＮ／ＣＲＣ１）、ＰＰＭ多項式演算、チエンサーチ（ＣＨＮ）、誤り値計算（ＥＶＬ）、誤り訂正（ＣＯＲ）、およびＣＲＣ復号化の最終ステップ（ＣＲＣ２）である。このパイプラインモードでは、セクタバッファ２４内の異なる符号語は異なる復号化モジュールによって同時にアクセス可能でなければならない。アクセス時間は重複できないため、アドレス指定は多重化されて、いかなるときにも必要なアクセスをモジュールに提供できるようにしなければならないのである。
【００１４】
したがって、データの符号化／復号化のためにセクタバッファアクセスを可能とし、種々の光ディスクフォーマットおよび誤り制御モードを支持し、かつ誤り訂正システムがパイプラインモードで動作することを可能とするような、一体型アドレス指定システムを提供することが所望される。
【００１５】
さらに、誤り訂正パイプライン構成が同時処理能力を備えるように、各々のバッファメモリが光ディスクのセクタに対応してデータのための記憶スペースを提供する、多数のバッファメモリを組込むことが所望される。たとえば、１つのバッファメモリがＯＤＤとインタフェースするために使用され、別のバッファメモリがＣＰＵへのインタフェースを提供し、第３のバッファメモリが符号化／復号化ユニットに結合されるようにもできる。誤り訂正手順中、アドレス指定システムは多数のデータバッファとアクセスする必要がある。
【００１６】
【発明の開示】
したがって、この発明の１つの利点は、ＣＰＵ、ＯＤＤ、および符号化／復号化モジュールがデータの符号化／復号化のためにセクタバッファとアクセスすることを可能とする、一体型アドレス指定システムを提供することにある。
【００１７】
この発明の別の利点は、種々の光ディスクフォーマットに対して誤り訂正を支持する、アドレス指定システムを提供することにある。
【００１８】
この発明のさらなる利点は、パイプラインモードの誤り訂正を支持するアドレス指定システムを提供することにある。
【００１９】
この発明のまた別の利点は、誤り訂正手順中に多数のデータバッファがアクセスされることを可能とするアドレス指定システムを提供することにある。
【００２０】
この発明のさらなる利点は、誤りおよび消去が訂正されることを可能とするアドレス指定システムを提供することにある。
【００２１】
この発明の別の利点は、データの符号化／復号化のためにセクタバッファにアクセスするのに使用されるアドレスを提供するための、アドレス発生器を提供することにある。
【００２２】
この発明の上述および他の利点は、中央処理装置より供給されたオリジナルデータをディスク記憶装置内に記憶するために符号化するためのエンコーダおよびディスク記憶装置よりディスクドライブによって読出されたデータを復号化するためのデコーダを含む、ディスク記憶装置内の誤りを訂正するためのシステムを提供することによって、少なくとも部分的に達成される。複数のワーキングバッファが、符号化／復号化の中間結果を記憶するために備えられる。また、中央処理装置、ディスクドライブ、エンコーダおよびデコーダが上記複数のワーキングバッファのうち１つの予め定められたワーキングバッファにアクセスできるように、上記複数のワーキングバッファをアドレス指定するためにアドレス発生器が使用される。
【００２３】
この発明の第１の局面に従って、アドレス発生器は、中央処理装置、ディスクドライブ、エンコーダおよびデコーダが上記複数のワーキングバッファのすべてに逐次的にアクセスできるように、上記複数のワーキングバッファを回転させるためのバッファ回転回路を含む。
【００２４】
この発明の別の局面に従って、アドレス発生器は、中央処理装置およびディスクドライブにワーキングバッファの位置へのリニアアクセスを提供するための、ローディングアドレス発生器を含む。
【００２５】
この発明のさらなる局面に従って、アドレス発生器はさらに、エンコーダおよびデコーダにワーキングバッファの位置へのインタリーブおよびランダムアクセスを提供するための、処理アドレス発生器を含む。
【００２６】
好ましくは、ワーキングバッファは複数のアドレスマルチプレクサを含むアドレス多重化回路の出力に結合される。各アドレスマルチプレクサの第１の入力は、ローディングアドレス発生器に接続され得る。各アドレスマルチプレクサの第２の入力は、処理アドレス発生器に接続され得る。アドレスマルチプレクサは、バッファ回転回路によって制御が可能である。
【００２７】
さらに、ワーキングバッファは、出力が中央処理装置、ディスクドライブ、エンコーダおよびデコーダに結合された、データバス多重化回路の入力に接続されてもよい。データバス多重化回路は、バッファ回転回路によって制御され得る。
【００２８】
バッファ回転回路は、回転数および符号化／復号化選択信号が与えられる、複数の比較器を含み得る。
【００２９】
この発明の方法に従えば、データの符号化のために以下のステップが実行される。すなわち：
第１のワーキングバッファに符号化されるべき第１のデータブロックを供給するステップと、
第２のワーキングバッファ内に記憶された第２のデータブロックを符号化するステップと、
第３のワーキングバッファに記憶された、符号化された第３のデータブロックを出力するステップと、
上記第１、第２および第３のワーキングバッファを回転して、第３のワーキングバッファに符号化されるべき第４のデータブロックを供給し、第１のワーキングバッファに記憶された第１のデータブロックを符号化し、第２のワーキングバッファから符号化された第２のデータブロックを出力するステップと、
上記第１、第２および第３のワーキングバッファをさらに回転させて、第２のワーキングバッファに符号化されるべき第５のデータブロックを供給し、第３のワーキングバッファ内に記憶された第４のデータブロックを符号化し、第１のワーキングバッファから符号化された第１のデータブロックを出力するステップとを含む。
【００３０】
この発明の方法に従えば、データの復号化のために、以下のステップが実行される。すなわち：
第１のワーキングバッファに復号化されるべき第１のデータブロックを供給するステップと、
第２のワーキングバッファ内に記憶された第２のデータブロックを復号化するステップと、
第３のワーキングバッファ内に記憶された、復号化された第３のデータブロックを出力するステップと、
上記第１、第２および第３のワーキングバッファを回転して、第３のワーキングバッファに復号化されるべき第４のデータブロックを供給し、第１のワーキングバッファ内に記憶された第１のデータブロックを復号化し、第２のワーキングバッファから復号化された第２のデータブロックを出力するステップと、
上記第１、第２および第３のワーキングバッファをさらに回転させて、第２のワーキングバッファに復号化されるべき第５のデータブロックを供給し、第３のワーキングバッファ内に記憶された第４のデータブロックを復号化し、第１のワーキングバッファから復号化された第１のデータブロックを出力するステップとを含む。
【００３１】
この発明のさらに別の目的および利点は、以下の詳細な説明より、当業者には容易に理解されるであろう。詳細な説明にはこの発明の好ましい実施例のみが示されかつ説明されており、これは、この発明を実行するために考えられるベストモードを単に例示しているにすぎない。理解されるように、この発明は他の異なる実施例も可能であり、そのいくつかの詳細は、種々の明らかな観点で変形もまた可能であるが、これらはすべてこの発明から離れるものではない。したがって、添付の図面および記載される説明は、例示のためのものであって限定を意図するものではないと考えられたい。
【００３２】
【本発明を実施するためのベストモード】
この発明を実施するためのベストモードは、パイプラインデータ処理を提供するための多数のデータバッファを有する誤り訂正システムの実現に基づく。図５を参照して、この発明の誤り制御チップ（ＥＣＣ）２００は、ＥＣＣ２００を中央処理装置（ＣＰＵ）３００および光ディスクドライブ（ＯＤＤ）４００にインタフェースする、３つのワーキングバッファＥＤＢＦ０、ＥＤＢＦ１、およびＥＤＢＦ２を含む。さらに、ワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２は、ＥＣＣ２００上に配されたエンコーダ２２０およびデコーダ２４０と通信する。エンコーダ２２０およびデコーダ２４０は、図２に示されるＣＲＣエンコーダ３４、ＲＳエンコーダ３６、シンドローム発生器４０、ユークリッド演算回路４２、チエン誤り探知回路４４、誤り値計算機４６、誤り訂正回路４８およびＣＲＣ復号化回路５０を組込む符号化／復号化回路によって実現され得る。ＥＣＣ２００上のアドレス発生器２６０は、ワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２をデータの符号化および復号化中にアクセス可能とするアドレス情報を生成して、図４に示されるパイプラインデータ処理を支持する。アドレス発生器２６０については後により詳細に説明する。
【００３３】
図６に示されるように、データの符号化手順中、光ディスクのセクタ内に書込まれるべきオリジナルデータが、ＣＰＵ３００からたとえばバッファＥＤＢＦ０に供給され得る。同時に、符号化の先行するサイクルにおいてＣＰＵ３００によって供給された別のディスクセクタのためのデータを含むバッファＥＤＢＦ１がエンコーダ２２０によってアクセスされて、これらのデータのＲＳおよびＣＲＣ符号化がなされ、また同時に、先行する符号化サイクルにおいてエンコーダ２２０によって符号化されたセクタデータを記憶しているバッファＥＤＢＦ２は、これらのデータを光ディスク上に書込むためにＯＤＤ４００に送る。
【００３４】
ＣＰＵ３００が次の光ディスクセクタのためのデータを供給できる状態になると、ワーキングバッファが回転する。ここでバッファＥＤＢＦ２はＣＰＵ３００に切換えられて、次のデータセクタのためのオリジナルデータを受取る。バッファＥＤＢＦ０はエンコーダ２２０に切換えられて、先のサイクルにおいて受取ったセクタデータを符号化する。バッファＥＤＢＦ１はＯＤＤ４００に切換えられて、光ディスク上に書込むために、符号化されたセクタデータを出力する。
【００３５】
符号化の次のサイクルにおいて、バッファＥＤＢＦ１はＣＰＵ３００へ切換えられ、バッファＥＤＢＦ２はエンコーダ２２０に、バッファＥＤＢＦ０はＯＤＤ４００に切換えられる。このように、次の光ディスクセクタのためのオリジナルデータが符号化のためにＣＰＵ３００から供給されるたびに、ワーキングバッファの回転が行なわれる。
【００３６】
ここで図７を参照して、復号化手順中のワーキングバッファの回転が図示される。たとえば復号化の第１のサイクルにおいては、ＯＤＤ４００は光ディスクセクタよりの変造されたデータをバッファＥＤＢＦ０に書込む。これと同時に、復号化の先のサイクルにおいて書込まれたセクタデータを含むバッファＥＤＢＦ１は、そのデータの復号化のためにデコーダ２４０に結合される。バッファＥＤＢＦ２はＣＰＵ３００に接続されて、先の復号化サイクルにおいてデコーダ２４０によって復号化されたセクタデータをＣＰＵ３００に供給する。
【００３７】
復号化の次のサイクルにおいては、バッファＥＤＢＦ０はデコーダ２４０に切換えられて、先の復号化サイクルにおいて受取ったセクタデータを復号化する。バッファＥＤＢＦ１はＣＰＵ３００に切換えられて、先の復号化サイクルにおいて復号化されたセクタデータを伝送する。バッファＥＤＢＦ２はＯＤＤ４００に切換えられて、光ディスクの次のセクタからデータを受取る。光ディスクの各セクタから読出されるデータごとに、この回転手順が実行される。
【００３８】
このように、３つのワーキングバッファを有するＥＣＣ２００は、光ディスクの３つのセクタに対して同時にデータのパイプライン処理を提供する。たとえば、ディスクのセクタｎ内に書込まれるべきデータが符号化のためにＣＰＵ３００から供給されるとき、セクタｎ−１のためのデータは符号化され、セクタｎ−２のためのデータはＯＤＤ４００に供給される。同様に、ディスクのセクタｎから読出されたデータが復号化のためにＯＤＤ４００から供給される際に、セクタｎ−１よりのデータは復号化され、かつセクタｎ−２よりのデータはＣＰＵ３００に供給される。したがって、このような多バッファ誤り制御構成は、１バッファ誤り制御システムよりも、３倍効率が良い。
【００３９】
ワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２の各々は、１２２０バイト（１２２バイト×１０ワード）に等しい固定されたサイズを有する。誤り制御チップ２００は、図３に関連して上に記載した、１３０ｍｍ／１Ｋ、９０ｍｍ／１Ｋ、１３０ｍｍ／０．５Ｋおよび９０ｍｍ／０．５Ｋを含む種々の光ディスクフォーマットを支持することが可能である。これらの光ディスクフォーマットの各々について、ワーキングバッファの各々内のデータが、図３に示される対応するデータ構成と同様に配される得る。
【００４０】
ここで図８および図９を参照する。これらはそれぞれ、符号化手順および復号化手順中のＥＣＣ２００の動作を示す。アドレス発生器２６０は、ローディングアドレス発生器２６２、処理アドレス発生器２６４、およびＥＤＢＦ回転制御回路２６６を含む。ローディングアドレス発生器２６２は、ＣＰＵ３００およびＯＤＤ４００によってアクセスされるべき、バッファＥＤＢＦ０〜ＥＤＢＦ２内の位置を示す、ａｄｏｐアドレス信号を生成する。処理アドレス発生器２６４は、エンコーダ２２０およびデコーダ２４０によってアクセスされるべき、バッファＥＤＢＦ０〜ＥＤＢＦ２内の位置を示す、ａｄｅｘアドレス信号を生成する。これらａｄｅｘアドレス信号およびａｄｏｐアドレス信号は、アドレスマルチプレクサ２６８Ａ、２６８Ｂおよび２６８Ｃをそれぞれ介して、バッファＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２に供給される。ａｄｅｘアドレス信号はアドレスマルチプレクサ３８０Ａ〜３８０Ｃの第１の入力に供給され、ａｄｏｐアドレス信号はアドレスマルチプレクサ２６８Ａ〜２６８Ｃの第２の入力に供給される。アドレスマルチプレクサ２６８Ａ、２６８Ｂ、および２６８Ｃはそれぞれ、ａｄｄｒ０信号、ａｄｄｒ１信号、およびａｄｄｒ２信号を出力するが、これらの信号は、ＣＰＵ３００、ＯＤＤ４００、またはエンコーダ／デコーダロジック２２０および２４０によってアクセスされるべき、バッファＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２内のアドレスを指示する。ＥＤＢＦ回転制御回路２６６は、アドレスマルチプレクサ２６８Ａ〜２６８Ｃの各々が対応するアドレス信号をバッファＥＤＢＦ０〜ＥＤＢＦ２に供給するよう制御して、符号化／復号化手順中にそれらが回転するようにする。ＥＤＢＦ回転制御回路２６６によって制御されるデータバス多重化回路２７０は、バッファＥＤＢＦ０〜ＥＤＢＦ２をＣＰＵ３００、ＯＤＤ４００、エンコーダ２２０およびデコーダ２４０に結合する。ＥＤＢＦ回転制御回路２６６の構造および動作については、後により詳細に説明する。
【００４１】
図８は、符号化サイクルの一例を示す。ここでバッファＥＤＢＦ２にはマルチプレクサ２６８Ｃによってａｄｄｒ２信号が供給されて、このバッファはＣＰＵ３００に接続されて、次の符号化サイクルにおいて符号化すべきデータを受取る。マルチプレクサ２６８ＢはバッファＥＤＢＦ１にａｄｄｒ１信号を供給して、このバッファ内に記憶されたデータを符号化するためにこのバッファをエンコーダ２２０に接続する。マルチプレクサ２６８ＡはバッファＥＤＢＦ０にａｄｄｒ０信号を供給して、先の符号化サイクルにおいて符号化されたデータをバッファＥＤＢＦ０からＯＤＤ４００へと伝送させる。符号化の次のサイクルにおいては、バッファＥＤＢＦ１はＯＤＤ４００に接続され、ＥＤＢＦ２はエンコーダ２２０に接続され、ＥＤＢＦ０はＣＰＵ３００に結合される。この後、ＥＤＢＦ２、ＥＤＢＦ０およびＥＤＢＦ１はそれぞれ、ＯＤＤ４００、エンコーダ２２０、およびＣＰＵ３００に接続される。
【００４２】
図９は、復号化サイクルを示す。ここでバッファＥＤＢＦ０にはａｄｄｒ０信号が供給されて、このバッファは次の復号化サイクルにおいて復号化すべきデータをＯＤＤ４００から受取る。バッファＥＤＢＦ１にはａｄｄｒ１信号が供給されて、このバッファはデータの復号化のためにデコーダ２４０に接続される。バッファＥＤＢＦ２にはａｄｄｒ２信号が提供されて、先の復号化サイクルにおいて復号化されたデータがこのバッファからＣＰＵ３００に伝送される。次の復号化サイクルにおいては、ＥＤＢＦ２、ＥＤＢＦ０およびＥＤＢＦ１はそれぞれ、ＯＤＤ４００、デコーダ２４０、およびＣＰＵ３００に接続される。
【００４３】
このように、アドレス発生器２６０は、ＣＰＵ３００、ＯＤＤ４００、エンコーダ２２０およびデコーダ２４０が、符号化／復号化手順中に回転されるワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２にアクセスすることを可能にする。アドレス発生器２６０の素子およびそれらの動作については、後により詳細に説明する。
【００４４】
データの符号化および復号化の動作を支持するためには、種々の光ディスクフォーマットのために、以下のアドレス指定モードが提供されなくてはならない。すなわち：
１．復号化のためにＯＤＤ４００から入力されるデータを支持するための、（たとえば図３に示される）ワーキングバッファの位置０より、ディスクフォーマットに従ってバッファの位置５１５、５２５または１０３５までの、リニアアドレス指定、
２．符号化のためにＣＰＵ３００から入力されたデータを支持するための、バッファの位置０よりディスクフォーマットに従ってバッファの位置５１５、５２５または１０３５までの、リニアアドレス指定、
３．符号化の後にＯＤＤ４００に出力されるデータを支持するための、バッファの位置０よりディスクフォーマットに従って位置５１５、５２５または１０３５までの、リニアアドレス指定、
４．復号化の後にＣＰＵ３００に出力されるデータを支持するための、バッファの位置０よりディスクフォーマットに従って位置５１５、５２５または１０３５までの、リニアアドレス指定、
５．９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５ＫフォーマットのためにＲＳ／ＣＲＣ符号化を支持するための、バッファの位置０より５つおきの位置（位置５、１０、１５、２０、…）までの、インタリーブアドレス指定、
６．９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１ＫフォーマットのためにＲＳ／ＣＲＣ符号化を支持するための、バッファの位置０より１０個おきの位置（位置１０、２０、３０、…）までの、インタリーブアドレス指定、
７．９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５ＫフォーマットのためのＲＳ／ＣＲＣ復号化を支持するための、バッファの位置０より５つおきの位置（位置５、１０、１５、２０、…）までの、インタリーブアドレス指定、
８．９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１ＫフォーマットのためにＲＳ／ＣＲＣ復号化を支持するための、各バッファの位置０より同じバッファの１０個おきの位置（位置１０、２０、３０、…）までの、インタリーブアドレス指定、
９．消去復号化を支持するための、各バッファの位置１２００〜１２１６の各々へのランダムおよびリニアアドレス指定、
１０．リードソロモン符号化中のシンドロームの書込を支持するための、各符号語の最後に１６バイトを書込むための、ランダムおよびインタリーブアドレス指定、
１１．ＣＲＣ符号化／復号化中のＣＲＣ読出／書込を支持するための、４つのＣＲＣバイトへのランダムおよびリニアアドレス指定、および
１２．誤り訂正を支持するための、誤りを読出し、修正および書込むためにいずれのバッファ位置に対してもなされるランダムアドレス指定、である。
【００４５】
符号化動作は、１９９５年１月１７日に本出願の発明者に発行された、「リードソロモン符号および巡回冗長検査を実現する並行符号化方法（“PARALLEL ENCODING METHOD IMPLEMENTING READ SOLOMON CODES AND CYCLIC REDUNDANCY CHECK”）」と題された、米国特許番号第５，３８３，２０４号に、より詳細に記載されており、これがここに引用により援用される。復号化動作は、１９９４年２月７日出願の「誤り制御符号化のための有限体多項式処理モジュール」と題された同時係属中の米国特許出願番号第０８／１９２，９０９号内により詳細に記載されており、これがここに引用により援用される。
【００４６】
ここで図１０および図１１を参照して、上述のアドレス指定モード１〜１２を提供するアドレス発生器２６０の動作を説明するフローチャート５００が示される。ステップ５０２において、アドレス発生器２６０は符号化手順または復号化手順のいずれが実行されるべきかを判定する。ステップ５０４において、データが（符号化のために）ＣＰＵ３００からまたは（復号化のために）ＯＤＤ４００からワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２のうちの１つに供給されると、アドレス発生器２６０は上述のモード２またはモード１のリニアアドレス指定をそれぞれ実行する。具体的には、ローディングアドレス発生器２６２はリニアカウンタを含み、このリニアカウンタが、位置０より（９０ｍｍ／０．５Ｋディスクフォーマットについては）位置５１５まで、（１３０ｍｍ／０．５Ｋフォーマットについては）位置５２５まで、または、（９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては）位置１０３５までのバッファ位置の数を逐次数えて、ＣＰＵ３００またはＯＤＤ４００によってアクセスされるべき、バッファＥＤＢＦ内の位置を指示するａｄｏｐアドレス信号を生成する。
もしここで符号化手順が実行される場合には、ステップ５０６において、アドレス発生器２６０がＣＰＵ３００からデータを受取ったバッファＥＤＢＦを回転して、このバッファをＲＳ／ＣＲＣ符号化のためにエンコーダ２２０に接続させる。９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５Ｋフォーマットについては、アドレス発生器２６０はモード５のインタリーブアドレス指定を行なう。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、モード６のインタリーブアドレス指定が実行される。各符号語が符号化された後に、エンコーダ２２０はＲＳバイトをその符号語の最後に書込む。アドレス発生器２６０はこれら符号化動作を支持するために、モード１０のランダムおよびインタリーブアドレス指定を提供する。ステップ５０６におけるインタリーブアドレス指定およびランダムアドレス指定は、処理アドレス発生器２６４内で生成されたａｄｄ＿ｎｏｒｍアドレス信号を使用して行なわれるが、処理アドレス発生器２６４については後により詳細に説明する。
【００４７】
ステップ５０８において、ＣＲＣバイトを書込むための開始アドレスを設定するために、ディスクフォーマットが検出される。９０ｍｍ／０．５Ｋフォーマットについては、バッファの位置５１６（図３）が開始アドレスとして選択される（ステップ５１０）。１３０ｍｍ／０．５Ｋフォーマットについては、開始アドレスは位置５２６に設定される（ステップ５１２）。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、バッファの位置１０３６が開始アドレスとして選択される（ステップ５１４）。
【００４８】
ステップ５１６において、エンコーダ２２０はバッファ内に４つのＣＲＣバイトを書込む。処理アドレス発生器２６４において、選択されたディスクフォーマットに対する開始アドレスに従ってａｄｄ＿ｃｒｃアドレス信号が生成されて、ＣＲＣ書込を支持するモード１１のランダムおよびリニアアドレス指定が提供される。
【００４９】
ステップ５１８において、ＲＳ符号化を完了するための開始アドレスを設定するためにディスクフォーマットが判定される。９０ｍｍ／０．５Ｋフォーマットについては、バッファの位置５１６（図３）が開始アドレスとして選択される（ステップ５２０）。１３０ｍｍ／０．５Ｋフォーマットについては、開始アドレスは位置５２６に設定される（ステップ５２２）。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、バッファの位置１０３６が開始アドレスとして選択される（ステップ５２４）。
【００５０】
ステップ５２６において、エンコーダ２２０はバッファよりＣＲＣバイトを読出して、ＲＳ符号化手順を終える。この動作を支持するために、選択された開始アドレスに従って処理アドレス発生器２６４内で生成されたａｄｄ＿ｃｒｃ信号を使用して、モード１１のランダムおよびリニアアドレス指定が提供される。
【００５１】
ステップ５２８において、エンコーダ２２０は符号化された各符号語の後に最終のＲＳバイトを書込む。この動作を支持するモード１０のランダムおよびインタリーブアドレス指定を提供するために、処理アドレス発生器２６４においてａｄｄ＿ｎｏｒｍ信号が生成される。
【００５２】
ステップ５３０において、アドレス発生器２６０はバッファを回転させてそのバッファを符号化されたデータを出力するためにＯＤＤ４００に接続する。ＯＤＤ４００へのデータの転送は、ローディングアドレス発生器２６２によって生成されたａｄｏｐ信号を使用して提供される、モード３のリニアアドレス指定によって支持される。上述のように、ローディングアドレス発生器内のリニアカウンタは、ディスクフォーマットに従って０から５１５、５２５、または１０３５までのバッファ位置を逐次数える。ステップ５３２において、アドレス発生器２６０はディスクの次のセクタのためのデータを符号化する準備が整えられる。
【００５３】
ここでもし復号化の手順が実行される場合には、ステップ５０４においてデータはＯＤＤ４００からワーキングバッファＥＤＢＦのうちの１つに供給される。モード１のリニアアドレス指定を提供するために、ａｄｏｐ信号が生成される。
【００５４】
ステップ５３４において、アドレス発生器２６０はＯＤＤ４００からデータを受取ったバッファを回転させて、そのバッファをデータの復号化のためにデコーダ２４０に接続させる。消去バイトが検出されれば、アドレス発生器２６０はデコーダ２４０によって行なわれる消去ローディング手順を支持するランダムおよびリニアアドレス指定モード９に移行して、最初の符号語内の１７個の消去バイトを読出す（ステップ５３６）。モード９において、アドレス発生器２６０は、消去バイトを記憶するのに使用されるバッファの位置１２００〜１２１６にアクセスするアドレスを指示する。後により詳細に記載するように、ａｄｅｒａｓ信号は、処理アドレス発生器２６４内で生成されて、消去モードにおける復号化を支持する。
【００５５】
ステップ５３４において消去バイトが検出されない場合、または消去ローディング動作が完了した際には、アドレス発生器２６０はステップ５３８に移行して、デコーダ２４０によって実行されるＲＳ／ＣＲＣ復号化を支持する。処理アドレス発生器２６４は、インタリーブアドレス指定が提供されることを可能とするａｄｄ＿ｎｏｒｍ信号を生成する。９０ｍｍ／０．５Ｋフォーマットおよび１３０ｍｍ／０．５Ｋフォーマットについては、アドレス発生器２６０はモード７のインタリーブアドレス指定を実行する。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、モード８のインタリーブアドレス指定が実行される。
【００５６】
ステップ５４０において、デコーダ２４０はパイプライン復号化動作を実行する。この動作は、１９９４年２月７日出願の「誤り制御符号化のための有限体多項式処理モジュール」と題された、同時係属中の米国特許出願番号第０８／１９２，９０９号内により詳細に記載されているが、これはバッファへのアドレス指定を必要としない。
【００５７】
ステップ５４２において、誤り訂正動作がデコーダ２４０によって実行されて、復号化された符号語の各々における誤りが訂正される。アドレス発生器２６０はこれらの動作を支持するために、モード１２のランダムアドレス指定を提供する。モード１２のこのアドレス指定を提供するためには、誤り訂正動作中に処理アドレス発生器２６４に供給される訂正数が使用されて、処理アドレス発生器２６４内にａｄｄ＿ｎｏｒｍ信号が生成される。
【００５８】
ステップ５４４において、ＣＲＣ読出動作のための開始アドレスを設定するために、ディスクフォーマットが判定される。このとき、デコーダ２４０はオリジナルデータからＣＲＣバイトを読出して、それらを計算された結果と比較する。９０ｍｍ／０．５Ｋフォーマットについては、バッファの位置５１６（図３）が開始アドレスとして選択される（ステップ５４６）。１３０ｍｍ／０．５Ｋフォーマットについては、開始アドレスは位置５２６に設定される（ステップ５４８）。９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては、バッファの位置１０３６が開始アドレスとして選択される（ステップ５５０）。ステップ５５２において、選択された開始アドレスに従って処理アドレス発生器２６４内でａｄｄ＿ｃｒｃアドレス信号が形成されて、ＣＲＣ読出動作を支持するモード１１のランダムアドレス指定が提供される。
【００５９】
この後、アドレス発生器２６０はステップ５３０に移行する。復号化の手順中、このステップはデコーダ２４０からＣＰＵ３００へのバッファの回転を含む。その後、モード４のリニアアドレス指定がａｄｏｐ信号を使用して実行されて、復号化されたデータのＣＰＵ３００への転送が支持される。上述のように、ローディングアドレス発生器２６２内のリニアカウンタによって、位置０より（９０ｍｍ／０．５Ｋディスクフォーマットについては）位置５１５まで、（１３０ｍｍ／０．５Ｋフォーマットについては）位置５２５まで、または、（９０ｍｍ／１Ｋフォーマットおよび１３０ｍｍ／１Ｋフォーマットについては）位置１０３５までのバッファ位置が逐次数えられて、バッファ内のＣＰＵ３００によってアクセスされるべき位置を指示するａｄｏｐアドレス信号が生成される。ステップ５３２において、アドレス発生器２６０は、ディスクの次のセクタよりのデータを復号化するための準備が整えられる。
【００６０】
ここで図１２を参照して、上に記載したａｄｄ＿ｎｏｒｍ、ａｄｄ＿ｃｒｃおよびａｄｅｒａｓ信号に基づいてａｄｅｘ信号を生成する処理アドレス発生器２６４が示される。図８および図９に示されたように、ａｄｅｘ信号はマルチプレクサ２６８Ａ、２６８Ｂおよび２６８Ｃに供給されて、ＣＰＵ３００、ＯＤＤ４００、エンコーダ２２０およびデコーダ２４０がバッファＥＤＢＦ０〜ＥＤＢＦ２にアクセスすることを可能とするアドレス信号が生成される。
【００６１】
処理アドレス発生器２６４は、ａｄｄ＿ｎｏｒｍ信号発生器６００、ａｄｄ＿ｃｒｃ信号を生成するＣＲＣカウンタ６０２、パイプライン処理開始ワードアドレスリセット回路６０４、ａｄｅｒａｓ信号を生成する消去カウンタ６０６、およびセレクタ６０８、６１０、６１２を含む。ａｄｄ＿ｎｏｒｍ信号発生器６００は、ＲＳ／ＣＲＣ符号化および復号化を支持するのに使用されるａｄｄ＿ｎｏｒｍ信号を生成する。その構成および動作は、後により詳細に記載する。ＣＲＣカウンタ６０２は、（図１０のステップ５１０〜５１４、５２０〜５２４および図１１の５４６〜５５０において）種々のディスクフォーマットのための開始アドレスを設定して、図１０のステップ５１６、５２６、および図１１の５５２においてＣＲＣバイトを読出しおよび書出すためにランダムにアクセスされるべきバッファ位置に対応するカウントを提供する。パイプライン処理開始ワードアドレスリセット回路６０４は、図１０のステップ５０６、５２８、および図１１の５３８において符号化または復号化される各符号語の最初に、リセット信号を生成する。消去カウンタ６０６は、図１１のステップ５３６で読出される消去バイトの位置を指示するカウントを提供する。ａｄｅｘ信号は、セレクタ６１２の出力から供給される。
【００６２】
ａｄｄ＿ｃｒｃ信号およびａｄｄ＿ｎｏｒｍ信号は、ＣＲＣ符号化または復号化の手順が実行される際に活性化されるＣＲＣモード信号によって制御されるセレクタ６０８に供給される。ＣＲＣモード信号が活性状態にある際には、ａｄｄ＿ｃｒｃ信号がセレクタ６０８を通過する。そうでない場合には、ａｄｄ＿ｎｏｒｍ信号がセレクタ６０８の出力に形成される。
【００６３】
セレクタ６０８の出力は、パイプライン処理開始ワードアドレスリセット回路６０４によって形成されるパイプライン処理リセット信号とともに、開始アドレスリセット信号によって制御されるセレクタ６１０に供給される。この開始アドレスリセット信号は、各符号語が符号化または復号化された後に活性状態となって、パイプライン処理リセット信号を回路６０４からセレクタ６１０の出力に通過させる。開始アドレスリセット信号が活性状態にない場合には、セレクタ６０８の出力信号がセレクタ６１０の出力に通過する。消去モード信号によって制御されるセレクタ６１２は、消去カウンタ６０６からａｄｅｒａｓ信号を、および、セレクタ６１０の出力信号を受取る。この消去モード信号が活性化されて復号化の消去モードの実行が指示されると、ａｄｅｒａｓ信号がセレクタ６１２の出力に供給される。そうでなければ、セレクタ６１０の出力信号がａｄｅｘ信号を形成するセレクタ６１２の出力に通過する。したがって、ａｄｅｘ信号は、エンコーダ２２０またはデコーダ２４０よりセレクタ６０８、６１０および６１２に供給される制御信号の状態に依存して、ａｄｄ＿ｎｏｒｍ信号、ａｄｄ＿ｃｒｃ信号、ａｄｅｒａｓ信号またはパイプライン処理リセット信号のいずれかによって表わされ得る。
【００６４】
図１３を参照して、ａｄｄ＿ｎｏｒｍ信号発生器６００は、ＲＳ符号化／復号化／シンドローム数および訂正数を受取るセレクタ６２２を含む。この符号化／復号化／シンドローム数は、図１０のステップ５０６および図１１の５３８が実行されて、ＲＳ符号化／復号化およびシンドローム生成のサイクルが指示される際に、ＲＳ符号化または復号化回路によって提供される。訂正数は、訂正モード時にデコーダ２４０によって提供されるが、このとき復号化された符号語が訂正されて（図１１のステップ５４２）、誤り訂正のサイクルが指示される。セレクタ６２２は訂正モード信号によって制御されるが、この訂正モード信号は、訂正モードが実行される際活性化されて、この訂正数をセレクタ６２２の出力に通過させる。もし訂正モード信号が活性状態でない場合には、符号化／復号化／シンドローム数がセレクタ６２２の出力に供給される。
【００６５】
セレクタ６２２の出力信号は、乗算器６２４に供給される。この乗算器６２４は５による乗算を行なう。乗算器６２４は、２だけアップシフトするシフトレジスタ６２６と、第１の入力がシフトレジスタ６２６によって供給されかつ第２の入力がセレクタ６２２の出力に接続された加算器６２８とを含む。乗算器６２４の出力信号はシフトレジスタ６３０に供給される。シフトレジスタ６３０は、１だけアップシフトしてその入力値を２で乗算する。
【００６６】
レジスタ６３０の出力はセレクタ６３２の一方入力に結合される。セレクタ６３２の別の入力は乗算器６２４の出力に接続される。セレクタ６３２は、０．５Ｋディスクフォーマットと１Ｋディスクフォーマットのいずれが使用されるかを指示する選択フォーマット信号によって制御される。０．５Ｋフォーマットが指示された場合には、乗算器６２４の出力信号がセレクタ６３２の出力に通過して、インタリーブアドレス指定が提供されて５個のバッファ位置がスキップされる。１Ｋディスクフォーマットが使用される場合には、レジスタ６３０の出力信号がセレクタ６３２の出力に通過されて、１０個のバッファ位置がスキップされるインタリーブアドレス指定が提供される。
【００６７】
セレクタ６３２の出力は加算器６３４の一方入力に供給される。加算器６３４の別の入力は、エンコーダ／デコーダロジック２２０および２４０内に配されたワードカウンタのｐｗｃｎｔカウントを符号化または復号化されるべき実際のワードに対応づける、マッピング回路６３６に接続される。たとえば図３に示されるように、ワードカウンタは、符号化または復号化のために供給されるワードを追跡するｐｗｃｎｔカウントを提供する。しかし、９０ｍｍ／１Ｋディスクフォーマットおよび１３０ｍｍ／１Ｋディスクフォーマットについては、各セクタバッファ内のデータは１０個のワード０〜９で構成され、一方、９０ｍｍ／０．５Ｋディスクフォーマットおよび１３０ｍｍ／０．５Ｋディスクフォーマットについては、セクタバッファ内のデータは５個のワード０〜４で構成される。各ディスクフォーマットについて別個のワードカウンタを使用しなくても済むように、マッピング回路６３６は、９０ｍｍ／１Ｋディスクフォーマットおよび１３０ｍｍ／１Ｋディスクフォーマットについてはｗｄｃｎｔ（１．０）カウントを、９０ｍｍ／０．５Ｋディスクフォーマットおよび１３０ｍｍ／０．５Ｋディスクフォーマットについてはｗｄｃｎｔ（０．５）カウントを、アドレス発生器２６０に供給されるｐｗｃｎｔカウンタに従って生成する。ｗｄｃｎｔ（１．０）カウントおよびｗｄｃｎｔ（０．５）カウントは、選択されたディスクフォーマットのために実際に符号化または復号化されるワードの数を規定する。さらに、マッピング回路６３６は、復号化の誤り訂正モード中にデコーダ２４０内の誤り訂正回路によって処理されるワードの数を規定する、ｗｄｃｏｒｒカウントを生成する。
【００６８】
マッピング回路６３６によって実行されるマッピング機能が図１４に示される。マッピング回路６３６にはｐｗｃｎｔカウント０〜１３の組が供給されるが、これが、ｗｄｃｎｔ（１．０）カウント、ｗｄｃｎｔ（０．５）カウントおよびｗｄｃｏｒｒカウントの対応する値を規定する。図１４に示される表において、行内に示された各ｐｗｃｎｔカウントの下には、そのｐｗｃｎｔカウントに割当てられるｗｄｃｎｔ（１．０）カウント、ｗｄｃｎｔ（０．５）カウント、およびｗｄｃｏｒｒカウントが示される。たとえば、ｐｗｃｎｔカウント７が供給された場合には、マッピング回路６３６はｗｄｃｎｔ（１．０）カウント７、ｗｄｃｎｔ（０．５）カウント３、またはｗｄｃｏｒｒカウント４を生成する。マッピング回路６３６には、ディスクフォーマットおよび訂正モードを指示する制御信号が提供されて、どのカウントを生成すべきかが選択される。
【００６９】
加算器６３４は、マッピング回路６３６によって生成されたカウント値とセレクタ６３２の出力値とを加算して、ａｄｄ＿ｎｏｒｍ信号を生成する。上述のように、処理アドレス発生器２６４はこのａｄｄ＿ｎｏｒｍ信号と、ａｄｄ＿ｃｒｃ信号、ａｄｅｒａｓ信号およびパイプライン処理リセット信号を使用して、符号化および復号化中にエンコーダ２２０およびデコーダ２４０によってアクセスされるべきワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２内の位置を指示するａｄｅｘアドレス信号を生成する。ローディングアドレス発生器２６２内のリニアカウンタは、ワーキングバッファの位置を逐次数えて、ＣＰＵ３００およびＯＤＤ４００によって逐次アクセスされるワーキングバッファ内の位置を指示するａｄｏｐアドレス信号を生成する。
【００７０】
ａｄｅｘアドレス信号およびａｄｏｐアドレス信号はそれぞれ、アドレスマルチプレクサ２６８Ａ、２６８Ｂ、２６８Ｃの各々の第１および第２の入力にそれぞれ供給される（図８および図９）。アドレスマルチプレクサ２６８Ａ、２６８Ｂおよび２６８Ｃは、ワーキングバッファＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２にそれぞれａｄｄｒ０、ａｄｄｒ１およびａｄｄｒ２アドレス信号を供給する。アドレスマルチプレクサ２６８Ａ、２６８Ｂおよび２６８Ｃはデータバス多重化回路２７０とともに、符号化および復号化中にワーキングバッファＥＤＢＦ０〜ＥＤＢＦ２を回転させるＥＤＢＦ回転制御回路２６６によって制御される。
【００７１】
図１５に示されるように、ＥＤＢＦ回転制御回路２６６は、バッファ回転のサイクルを規定するために回転カウント０、１および２を提供する回転カウンタ６５０を含む。この回転カウントは、比較器ＳＡ０、ＳＡ１、ＳＡ２、ＳＤ０、ＳＤ１、およびＳＤ２の第１の入力に供給されるが、これら比較器の第２の入力には、符号化と復号化のいずれを実行するかを指示する符号化／復号化選択信号が供給される。符号化動作中、符号化／復号化選択信号は１で示される。復号化動作中、符号化／復号化選択信号は０にセットされる。
【００７２】
回転カウントおよび符号化／復号化選択信号に従って、比較器ＳＡ０、ＳＡ１、およびＳＡ２はそれぞれ、ＳＡ０、ＳＡ１、およびＳＡ２アドレス制御信号を生成し、これらアドレス制御信号がアドレスマルチプレクサ２６８Ａ、２６８Ｂおよび２６８Ｃの制御入力に供給されて（図１６）、ａｄｏｐ信号またはａｄｅｘ信号のいずれかを表わすａｄｄｒ０、ａｄｄｒ１、およびａｄｄｒ２アドレス信号が生成される。アドレス制御信号ＳＡｉが１に等しい場合には、ａｄｏｐアドレス信号が対応するアドレスマルチプレクサの出力に生成され、アドレス制御信号ＳＡｉが０に設定された場合には、ａｄｅｘ信号が生成される。ここで、ｉ＝０、１、２である。
【００７３】
比較器ＳＤ０、ＳＤ１およびＳＤ２はそれぞれ、ＳＤ０、ＳＤ１およびＳＤ２データバス制御信号を生成し、これらデータバス制御信号はデータバス多重化回路２７０の制御入力に供給される。図１７に示されるように、データバス多重化回路２７０は、その出力が双方向データバスＤａｔａ０、Ｄａｔａ１およびＤａｔａ２に結合されるデータバスマルチプレクサ２７０Ａ、２７０Ｂおよび２７０Ｃを含む。これら双方向データバスは、ワーキングバッファＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２にそれぞれ接続される。データバスマルチプレクサ２７０Ａ、２７０Ｂおよび２７０Ｃの各々は、３つの入力を有し、その第１はＣＰＵ３００に結合されたＣＰＵデータバスに接続され、第２の入力はＯＤＤ４００に結合されたＯＤＤデータバスに接続され、第３の入力はエンコーダ２２０およびデコーダ２４０に結合されたＥＣＣデータバスに接続される。データバスマルチプレクサ２７０Ａ、２７０Ｂおよび２７０Ｃの制御入力にはそれぞれ、Ｄａｔａ０、Ｄａｔａ１およびＤａｔａ２バスのＣＰＵ、ＯＤＤおよびＥＣＣデータバスへの接続を制御する、ＳＤ０、ＳＤ１およびＳＤ２データバス制御信号が供給される。特に、ＳＤｉデータバス制御信号が０に設定されている場合には、ＥＤＢＦｉバッファに結合されたＤａｔａｉバスはＣＰＵデータバスに接続され、もしＳＤｉデータバス制御信号が１に設定された場合には、ＤａｔａｉバスはＯＤＤデータバスに接続され、ＳＤｉデータバス制御信号が２に設定された場合には、ＤａｔａｉバスはＥＣＣデータバスに結合される。ここで、ｉ＝０、１、２である。
【００７４】
図１８および図１９に示される表には、符号化手順および復号化手順中にアドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２、ならびにデータバス制御信号ＳＤ０、ＳＤ１およびＳＤ２に応答してアドレスおよびデータバスマルチプレクサが提供するバッファの回転が示される。たとえば、（符号化／復号化選択信号＝１、および回転数＝０によって規定される）符号化サイクル０中には、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２はａｄｏｐアドレス信号がＥＤＢＦ０およびＥＤＢＦ１バッファに提供され、かつ、ａｄｅｘアドレス信号がＥＤＢＦ２に送られるようにする。これと同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２はそれぞれ０、１および２に設定されて、ＥＤＢＦ０バッファにはＣＰＵ３００への接続を、ＥＤＢＦ１バッファにはＯＤＤ４００への接続を、およびＥＤＢＦ２バッファにはＥＣＣ２００内のエンコーダ２２０への接続を提供する。次の符号化サイクル１では、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２はＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファに、ａｄｅｘ、ａｄｏｐおよびａｄｏｐアドレス信号をそれぞれ供給する。同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２はそれぞれ２、０および１に設定されて、ＥＤＢＦ０バッファをＥＣＣ２００内のエンコーダ２２０に結合し、ＥＤＢＦ１バッファをＣＰＵ３００に接続し、およびＥＤＢＦ２バッファをＯＤＤ４００に接続する。符号化サイクル２中に、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２は、ＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファがそれぞれ、ａｄｏｐ、ａｄｅｘおよびａｄｏｐアドレス信号を受取ることを可能にする。同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２は１、２および０にそれぞれ設定されて、ＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファは、それぞれＯＤＤ４００、ＥＣＣ２００内のエンコーダ２２０、およびＣＰＵ３００に接続される。
【００７５】
符号化／復号化選択信号が０に設定されて、回転カウンタ６５０がカウント１を生成する場合には、復号化サイクル０が実行される。このサイクル中、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２は、ａｄｏｐアドレス信号がＥＤＢＦ０およびＥＤＢＦ１バッファに提供され、かつ、ａｄｅｘアドレスがＥＤＢＦ２に送られるようにする。同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２が０、１および２にそれぞれ設定されて、ＥＤＢＦ０バッファのＣＰＵ３００への接続、ＥＤＢＦ１バッファのＯＤＤ４００への接続、およびＥＤＢＦ２バッファのＥＣＣ２００内のデコーダ２４０への接続がそれぞれ提供される。次の復号化サイクル１中には、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２はＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファにａｄｏｐ、ａｄｅｘおよびａｄｏｐアドレス信号をそれぞれ供給する。同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２は１、２および０に設定されて、それぞれ、ＥＤＢＦ０バッファをＯＤＤ４００に結合し、ＥＤＢＦ１バッファをＥＣＣ２００内のデコーダ２４０に、および、ＥＤＢＦ２バッファをＣＰＵ３００に接続する。復号化サイクル２中には、アドレス制御信号ＳＡ０、ＳＡ１およびＳＡ２はそれぞれ、ＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファがａｄｅｘ、ａｄｏｐおよびａｄｏｐアドレス信号を受けるようにする。同時に、データバス制御信号ＳＤ０、ＳＤ１およびＳＤ２はそれぞれ２、０および１に設定されて、ＥＤＢＦ０、ＥＤＢＦ１およびＥＤＢＦ２バッファがそれぞれ、ＥＣＣ２００内のデコーダ２４０、ＣＰＵ３００、およびＯＤＤ４００に接続される。
【００７６】
以上のように、光ディスク記憶装置の誤り制御チップ上に提供される、誤り訂正動作中にＣＰＵ、光ディスクドライブ（ＯＤＤ）、およびエンコーダ／デコーダ回路によってアクセスされる複数のワーキングバッファをアドレス指定するための、アドレス発生器について説明した。このアドレス発生器はローディングアドレス発生器を含み、ローディングアドレス発生器は、データが符号化および復号化のためにＣＰＵおよびＯＤＤから／へ供給される際にＣＰＵおよびＯＤＤのためにリニアバッファアクセスを提供する、ａｄｏｐアドレス信号を生成する。処理アドレス発生器は、データの符号化および復号化動作中に、エンコーダ／デコーダ回路のためにインタリーブおよびランダムバッファアクセスを提供する、ａｄｅｘアドレス信号を生成する。バッファ回転制御回路は、さまざまな符号化および復号化サイクルにおいてＣＰＵ、ＯＤＤおよびエンコーダ／デコーダ回路間でのバッファの回転を提供してパイプライン誤り制御構成を支持する、アドレスおよびデータバス制御信号を生成する。
【００７７】
この開示においては、この発明の好ましい実施例のみが示されかつ説明されているが、この発明はここに説明したこの発明の概念の範囲内で、変更および修正が可能であると理解されたい。
【図面の簡単な説明】
【図１】光ディスク記憶装置における誤り訂正手順を示した図である。
【図２】光ディスク記憶装置におけるデータの符号化および復号化を示す図である。
【図３】種々の光ディスクフォーマットのためのセクタバッファメモリ構成を示す図である。
【図４】誤り訂正システムにおけるパイプライン処理を示した図である。
【図５】この発明に従った多数バッファＥＣＣ構成を示すブロック図である。
【図６】符号化中のバッファの回転を示す図である。
【図７】復号化中のバッファの回転を示す図である。
【図８】符号化中のＥＣＣの動作を示すブロック図である。
【図９】復号化中のＥＣＣの動作を示すブロック図である。
【図１０】アドレス発生器の動作を示すフロー図である。
【図１１】アドレス発生器の動作を示すフロー図である。
【図１２】処理アドレス発生器のブロック図である。
【図１３】ａｄｄ＿ｎｏｒｍ信号発生器のブロック図である。
【図１４】ａｄｄ＿ｎｏｒｍ信号発生器において実行される、マッピング機能を示す図である。
【図１５】ＥＤＢＦ回転制御回路のブロック図である。
【図１６】アドレスマルチプレクサの制御構成を示すブロック図である。
【図１７】データバスマルチプレクサの制御構成を示すブロック図である。
【図１８】アドレス制御信号の値を示す表を示した図である。
【図１９】データバス制御信号の値を示す表を示した図である。
【符号の説明】
２００  誤り制御チップ
２２０  エンコーダ
２４０  デコーダ
２６０  アドレス発生器
３００  中央処理装置
４００  光ディスクドライブ
ＥＤＢＦ  ワーキングバッファ
【図１】
0003777246.tif 000002
【図２】
0003777246.tif 000003
【図３】
0003777246.tif 000004
【図４】
0003777246.tif 000005
【図５】
0003777246.tif 000006
【図６】
0003777246.tif 000007
【図７】
0003777246.tif 000008
【図８】
0003777246.tif 000009
【図９】
0003777246.tif 000010
【図１０】
0003777246.tif 000011
【図１１】
0003777246.tif 000012
【図１２】
0003777246.tif 000013
【図１３】
0003777246.tif 000014
【図１４】
0003777246.tif 000015
【図１５】
0003777246.tif 000016
【図１６】
0003777246.tif 000017
【図１７】
0003777246.tif 000018
【図１８】
0003777246.tif 000019
【図１９】
0003777246.tif 000020