(58)【調査した分野】(Int.Cl.,DB名)
積符号のための誤りおよび消失組合せ復号のためのシステムであって、プロセッサと、前記プロセッサと統合された、または前記プロセッサによって実行可能な、あるいはその両方の論理とを備え、前記論理が、
取り込まれたデータを受け取り、
前記取り込まれたデータに対して消失フラグを生成し、前記消失フラグをC2復号器に提供し、
復号プロセスを所定の回数反復後に停止する前記回数を規定する停止パラメータであって、前記取り込まれたデータを符号化するために使用される符号語インターリーブにおいてC1符号語の長さに等しくなるように前記停止パラメータを設定し、
復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を、選択的に行う
ように構成された、システム。
各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、前記取り込まれたデータの部分に対応する、請求項1に記載のシステム。
前記観察されたまたは計算された状況が、符号語インターリーブのヘッダが検出されないこと、位相ロック・ループ(PLL)サイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはC1符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超えること、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくないこと、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくないことのうちの少なくとも1つを含む、請求項2に記載のシステム。
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を、選択的に行うように構成された前記論理が、
第1の反復において、および前記停止パラメータがC1誤り訂正能力の2倍マイナスC1復号マージン以下であるとき、前記取り込まれたデータにC1消失復号を行い、以下ではないとき、前記取り込まれたデータにC1誤り復号を行い、
C1復号を行った後、C1失敗の数がゼロに等しく、前記停止パラメータがゼロに等しいとき、復号は成功であると決定し、
C1失敗の前記数が、C2誤り訂正能力の2倍マイナスC2復号マージンよりも大きいとき、C1復号を行った後、前記取り込まれたデータにC2誤り復号を行い、
前記停止パラメータがゼロに等しくない、またはC1失敗の前記数が前記C2誤り訂正能力の2倍マイナス前記C2復号マージン以下であって、ゼロよりも大きいとき、C1復号を行った後、前記取り込まれたデータにC2消失復号を行い、
C2失敗の数とC1失敗の数の両方がゼロに等しいとき、C2復号を行った後、復号が成功であると決定し、
C2失敗の数が前記停止パラメータ以上であるとき、C2復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをC2失敗の前記数に等しく設定する
ように構成された論理を含む、請求項1に記載のシステム。
前記C1誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、前記C2誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表す、請求項4に記載のシステム。
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を、選択的に行うように構成された前記論理が、
第1の反復において、および前記停止パラメータがC1誤り訂正能力の2倍マイナスC1復号マージン以下であるとき、前記取り込まれたデータにC1消失復号を行い、以下ではないとき、前記取り込まれたデータにC1誤り復号を行い、
C1失敗の数がゼロに等しいとき、復号を停止し、符号語チェックを行い、
C1失敗の前記数が、C2誤り訂正能力の2倍マイナスC2復号マージンよりも大きいとき、C1復号を行った後、前記取り込まれたデータにC2誤り復号を行い、大きくないとき、C1復号を行った後、前記取り込まれたデータにC2消失復号を行い、
C2失敗の数がゼロに等しいとき、C2復号を行った後、復号を停止し、
C2失敗の数が前記停止パラメータ以上であるとき、C2復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをC2失敗の前記数に等しく設定する
ように構成された論理を含み、
前記符号語チェックが、すべてのC1符号語が正規であり、すべてのC2符号語が正規であると決定するように構成された論理を含み、すべてのC1符号語が正規であり、すべてのC2符号語が正規であるとき、復号は成功であり、そうではない場合、復号は不成功である、請求項1に記載のシステム。
前記C1誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、前記C2誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表す、請求項6に記載のシステム。
各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、前記取り込まれたデータの部分に対応する、請求項8に記載の方法。
前記観察されたまたは計算された状況が、符号語インターリーブのヘッダが検出されないこと、位相ロック・ループ(PLL)サイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはC1符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超えること、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくないこと、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくないことのうちの少なくとも1つを含む、請求項9に記載の方法。
前記C1誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、前記C2誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表す、請求項11に記載の方法。
前記C1誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、前記C2誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表す、請求項13に記載の方法。
【発明を実施するための形態】
【0013】
次の説明は、本発明の一般的な原理を示すために行うが、本明細書において主張する本発明の概念を制限するものではない。さらに、本明細書に記載する特定の特徴は、考えられる様々な組合せおよび順列のそれぞれで、記載する他の特徴と組み合わせて使用されることが可能である。
【0014】
本明細書において特に別段定義しない限り、すべての用語は、本明細書から暗示される意味、ならびに当業者によって理解される、または辞書、論文などに定義される、あるいはその両方の意味を含む、その最大限の広範な解釈を与えられなければならない。
【0015】
本明細書および添付の特許請求の範囲において使用される、単数形「a」、「an」、および「the」は、別段の指定がない限り、複数の指示対象を含むことにもまた留意しなければならない。
【0016】
1つの実施形態によれば、短い誤り事象および長い誤り事象が存在する場合に改善された誤り率性能を達成するために、誤りと消失の両方の復号に基づいた積符号のための復号方策が使用される。
【0017】
1つの一般的な実施形態では、積符号のための誤りおよび消失組合せ復号のためのシステムが、プロセッサと、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含み、この論理は、取り込まれたデータを受信し、取り込まれたデータに対して消失フラグを生成して、消失フラグをC2復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでC1符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を選択的に行うように構成される。
【0018】
別の一般的な実施形態では、積符号のための誤りおよび消失組合せ復号のための方法が、取り込まれたデータを受け取るステップと、取り込まれたデータに対して消失フラグを生成して、消失フラグをC2復号器に提供するステップと、取り込まれたデータを符号化するために使用される符号語インターリーブでC1符号語の長さに等しくなるように停止パラメータを設定するステップと、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を選択的に行うステップとを含む。
【0019】
別の一般的な実施形態によれば、積符号のための誤りおよび消失組合せ復号のためのコンピュータ・プログラム製品が、プログラム・コードを包含したコンピュータ可読記憶媒体を含み、このプログラム・コードは、取り込まれたデータを受け取り、取り込まれたデータに対して消失フラグを生成して、消失フラグをC2復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでC1符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失C1復号、続いて誤りまたは消失C2復号を選択的に行うように、プロセッサによって読取り可能/実行可能である。
【0020】
当業者には理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されることが可能である。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではすべて一般的に「論理」、「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、コンピュータ可読プログラム・コードを包含した1つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることができる。
【0021】
1つまたは複数のコンピュータ可読媒体の任意の組合せを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であることが可能である。コンピュータ可読記憶媒体が、たとえば電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらなる具体例(非網羅的リスト)には、以下のものが含まれる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気記憶デバイス、または上記の任意の好適な組合せ。この文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって、またはこれらに接続して使用するためにプログラムを収容するまたは格納することができる任意の有形媒体とすることができる。
【0022】
コンピュータ可読信号媒体は、たとえばベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードを包含した伝搬データ信号を含むことができる。このような伝搬信号は、1つまたは複数の電線、光ファイバなどを有する電気的接続など、電磁気、光、またはその任意の好適な組合せを含んだ、ただしこれらに限らない、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、またはこれらに接続して使用するためにプログラムを伝える、伝搬する、または伝送することができる任意のコンピュータ可読媒体であってもよい。
【0023】
コンピュータ可読媒体に包含されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、または上記の任意の好適な組合せを含む、ただしこれらに限らない、任意の適切な媒体を使用して送信されてもよい。
【0024】
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの、従来の手続きプログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、すべてユーザのコンピュータ上で実行する、一部ユーザのコンピュータ上で実行する、スタンド・アロン型ソフトウェア・パッケージとして、一部はユーザのコンピュータ上で実行し、一部はリモート・コンピュータ上で実行する、またはすべてリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)などの、任意のタイプのネットワークを通じてユーザのコンピュータに接続することができる、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータへの接続を行うことができる。
【0025】
本発明の諸実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して、本発明の諸態様を以下に述べる。フローチャート図またはブロック図、あるいはその両方の各ブロック、およびフローチャート図またはブロック図、あるいはその両方の中のブロックの組合せは、コンピュータ・プログラム命令によって実施され得ることは理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに明記される機能/行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すことができる。
【0026】
またこれらのコンピュータ・プログラム命令は、コンピュータ可読媒体に格納された命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに明記される機能/行為を実施する命令を組み込んだ製品を作り出すように、コンピュータ可読媒体に格納されて、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように指示することもできる。
【0027】
またコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックに明記される機能/行為を実施するためのプロセスを提供するように、コンピュータ実施プロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることもできる。
【0028】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、(1つまたは複数の)指定された論理機能を実施するための1つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。またいくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに留意されたい。たとえば、連続して示した2つのブロックは、実際には実質的に同時に行われることがある、またはこの2つのブロックは、関連する機能に応じて、時には逆の順序で行われることがある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、明記された機能または行為を行う特殊用途ハードウェア・ベースのシステム、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって実施され得ることに注意されたい。
【0029】
次に
図2を参照すると、1つの実施形態によりネットワーク・ストレージ・システム10の概略図が示されている。このネットワーク・ストレージ・システム10は、好適なストレージ・システムの一例にすぎず、本明細書に記載する発明の実施形態の使用または機能の範囲に関するいかなる制限も示唆することを意図されていない。いずれにせよ、ネットワーク・ストレージ・システム10は、実装されること、または以上に示す機能のいずれかを行うこと、あるいはその両方が可能である。
【0030】
ネットワーク・ストレージ・システム10には、数多くの他の汎用または特殊用途コンピューティング・システム環境または構成で動作可能であるコンピュータ・システム/サーバ12がある。コンピュータ・システム/サーバ12とともに使用するのに適している可能性がある、よく知られているコンピューティング・システム、または環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、これらに限らない。
【0031】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的な文脈で説明されることがある。一般的に、プログラム・モジュールは、特定のタスクを行うまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散クラウド・コンピューティング環境で実行されることがある。分散クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ記憶装置を含んだローカルとリモートの両方のコンピュータ・システム記憶媒体に置かれることがある。
【0032】
図2に示されるように、ネットワーク・ストレージ・システム10中のコンピュータ・システム/サーバ12が、汎用コンピューティング・デバイスの形で示される。1つの実施形態では、コンピュータ・システム12は、テープ・ドライブ・システムと併せて使用されることがある。コンピュータ・システム/サーバ12の構成要素は、1つもしくは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含めた様々なシステム・コンポーネントをプロセッサ16に結合するバス18とを含むことができるが、これらに限らない。
【0033】
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート(accelerated graphics port)、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスなど、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として、限定ではないが、このようなアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:EnhancedISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:VideoElectronics Standards Association)ローカル・バス、および周辺構成要素相互接続(PCI:Peripheral Component Interconnects)バスが含まれる。
【0034】
コンピュータ・システム/サーバ12は、一般に様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能であるいかなる利用可能媒体であってもよく、揮発媒体と不揮発媒体、取り外し可能な媒体と取り外し不可能な媒体を共に含む。
【0035】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30、またはキャッシュ・メモリ32、あるいはその両方のような揮発メモリの形式のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不可能、揮発性/不揮発性の、コンピュータ・システム記憶媒体をさらに含むことができる。例として、取り外し不可能な、不揮発性磁気媒体(図示せず、一般的に「ハード・ディスク」と呼ばれ、HDDで操作されることが可能である)からの読取りおよびこれへの書込みを行うために、ストレージ・システム34を設けることができる。図示していないが、取り外し可能な不揮発性磁気ディスク(たとえば、「フロッピー(R)・ディスク」)のからの読取りおよびこれへの書込みを行うための磁気ディスク・ドライブ、ならびにCD−ROM、DVD−ROMまたは他の光媒体のような取り外し可能な不揮発性光ディスクからの読取りまたはこれへの書込みを行うための光ディスク・ドライブを設けることができる。このような場合、1つまたは複数のデータ媒体のインターフェイスでそれぞれをバス18に接続することができる。以下にさらに示し、説明するように、メモリ28は、本明細書に記載する実施形態の機能を実行するように構成された一組(たとえば少なくとも1つ)のプログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。
【0036】
一組(少なくとも1つ)のプログラム・モジュール42を有するプログラム/ユーティリティ40は、限定ではなく例としてメモリ28に、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、記憶することができる。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、あるいはその何らかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール42は、一般に、本明細書に記載する本発明の実施形態の機能または方法、あるいはその両方を実行する。
【0037】
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などのような1つまたは複数の外部デバイス14、またはユーザがコンピュータ・システム/サーバ12と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(たとえばネットワーク・カード、モデムなど)、あるいはその組合せと通信することもできる。このような通信は、入力/出力(I/O)インターフェイス22を介して行うことができる。さらにコンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN)、または一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(たとえばインターネット)、あるいはその組合せのような、1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。図示するように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他の構成要素と通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素、あるいはその両方を、コンピュータ・システム/サーバ12と併せて使用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限らない。
【0038】
図3は、様々な実施形態により使用することができる、テープ・ベースのデータ・ストレージ・システムの簡略化したテープ・ドライブ100を示す。
図3にはテープ・ドライブの1つの特定の実装を示しているが、本明細書に記載する実施形態は、任意のタイプのテープ・ドライブ・システムの状況で実施され得ることに留意されたい。
【0039】
図のように、テープ122を支持するために、テープ供給カートリッジ120および巻き取りリール121が設けられる。リールの1つまたは複数は、取り外し可能なカセットの一部を形成することがあり、必ずしもテープ・ドライブ100の一部ではない。
図3に示すようなテープ・ドライブ100は、任意のタイプのテープ・ヘッド126の上にテープ122を動かすようにテープ供給カートリッジ120および巻き取りリール121を駆動する(1つまたは複数の)駆動モータをさらに含むことがある。
【0040】
ガイド125が、テープ・ヘッド126を通るようテープ122を誘導する。このようなテープ・ヘッド126はさらに、ケーブル130によりコントローラ・アセンブリ128に結合される。コントローラ128は、一般的に、サーボ・チャネル134と、データ・フロー処理を含んだデータ・チャネル136とを備える。コントローラ128は、リールの動き(
図3に示さず)と、トラック追従、書込み、読取りなどのヘッド機能とを制御する。ケーブル130は、テープ122に記録されるようにヘッド126にデータを送り、テープ122からヘッド126によって読み取られるデータを受け取るための読取り/書込み回路を含むことができる。アクチュエータ132が、書込みまたは読取り操作を行うために、ヘッド126をテープ122上のトラックの集合に動かす。
【0041】
1つの実施形態では、テープ・ドライブ100は、テープ・ドライブ100およびコントローラ128によってアクセス可能であるデータ・バッファ138を備えることができる。このデータ・バッファ138は、リング・バッファとして構成されてもよく、1つの部分を予備データ・バッファ140として、1つまたは複数の部分に分割されてもよく、予備データ・バッファ140もまたリング・バッファに構成されて、テープ122からの読取り操作中の部分的データセットを記憶するために使用されてもよい。
【0042】
当業者には理解されるように、データを送受信するために、およびテープ・ドライブ100の操作を制御し、テープ・ドライブ100の状態をホストに伝えるために、テープ・ドライブ100とホスト(一体型または外部)との通信のためのインターフェイスが設けられてもよい。
【0043】
1つの実施形態によれば、実際のテープ復号において一般に経験されるように、短い誤り事象と長い誤り事象の両方に遭遇するとき、従来の技法よりも優れた誤り率性能を実現するために、誤りと消失の両方の復号に基づいた積符号のための復号方策が使用される。この復号方策の革新的な側面は、誤りまたは消失復号を行うための条件分岐と、積符号を復号するための反復復号アルゴリズムが一定数の反復の後に停止することを保証するために導入されるパラメータ(本明細書ではE2と呼ばれる)に基づく停止メカニズムと、積符号の復号が始まる前のC2復号のための最初の消失フラグ付けとを含む。
【0044】
復号アルゴリズムを停止するための1つの従来の手法は、所定数または一定数の反復を発生させること、その後復号を停止することである。しかしながら、この手法は、E2パラメータの使用と調和して使用され、それによってさらに優れた性能をもたらし、復号の待ち時間を抑える可能性がある。
【0045】
様々な実施形態によれば、本明細書に記載する技法は、C1復号の後にC2復号が続く非反復復号モード(単一の反復)で、またはC1/C2復号のいくつかの反復が行われる反復復号モードで、使用されることがある。これらの技法は、オンザフライで、または誤り回復手順(ERP:error recovery procedure)の間に使用されてもよい。短い誤り事象および長い誤り事象が存在する場合の誤り率性能の改善、認証されたレガシーC2消失復号方式を最初の復号ステップとして使用できること、反復および非反復復号を行うことができることなど、本明細書に記載する技法を使用することによって、多くの利点が実現される可能性がある。
【0046】
例示の目的で、次のパラメータは、復号試験の際に使用された。C1符号については、次のパラメータを有して、リード・ソロモン(RS)符号が使用された:RS(N1=240,K1=230,d1=11)C2符号については、パラメータは、RS(N2=96,K2=84,d2=13)であった。ここでN1およびN2は、配列中の各符号語におけるバイト数に等しいブロック長であり、K1およびK2は、各符号語におけるデータバイト数に等しいメッセージ長であり、d1およびd2は、N−K+1に等しい距離または最小距離である。ここでd−1消失がRS符号によって訂正され得る。
【0047】
第1の例示的な復号方策(方策A)によれば、消失ポインタを用いて非反復復号が行われることが可能である。C1復号器によって訂正されることが可能である誤りの数、t1は、t1=(d1−1)/2=(11−1)/2=5という関係に基づいて求められるので、C1復号器に対して訂正可能な誤りの量は、t1=5と求めることができる。この例のために、方策Aでは、C1復号器は、最大4つの誤り(誤訂正を減らすために1のマージンを含めるためにt1=5−1)を訂正することができ、訂正不可能な行は、C2復号器には消失としてマーク付けされると仮定する。C2復号器はその後、消失モードで動作し、さらなるマージンを含めず、最大d2−1=12の消失を訂正する。奇数の最小距離d2については、最大消失訂正能力は、d2−1=……2×t2によって、最大誤り訂正能力に関係付けられる。
【0048】
別の例示的な復号方策(方策B)では、反復復号が使用され、C1復号器およびC2復号器が方策Aと同様に動作することが可能である。成功する場合、復号方策はC1復号の後に終了し、成功しない場合、C2復号器は、どの行が訂正されたか、およびどの行にC1復号失敗が含まれるかについて知らされる。C2復号器はその後、誤りのあるサブ配列(subarray)上で誤り復号を行い、C1/C2復号の第2のパスを適用する。
【0049】
方策BのためにC2復号器において誤りおよび消失復号パラメータを選択するために、同期スリップ、欠けているヘッダのために欠けているデータなど、わかっている長い欠陥のある行が、C2復号器には消失としてフラグ付けされる。
【0050】
次に、長い誤りバーストについて、たとえば、C1符号語に沿った非常に長い誤り事象の、最悪のケースのシナリオにおけるサイクル・スリップについて、上述ように方策AおよびBの動作を仮定すると、C1失敗率は、C2復号器入力におけるバイト誤り率の優れた評価基準である。この場合、消失復号のみが、誤り復号のみよりも実質的によい。C1符号語に沿ってランダム誤りに遭遇する別のシナリオでは、C1失敗率は、C2復号器入力におけるバイト誤り率の非常に悲観的な評価基準であり、誤り復号のみが、消失復号のみよりも実質的によい。C2消失復号に失敗した、方策AおよびBから生成された、取り込まれたデータの分析が、これらの場合にC2誤り復号が誤りを訂正できたことを示した。
【0051】
しかしながら、現実世界の適用において、取り込まれたデータ中の誤りが、常に長い誤りバーストであるとも、ランダム誤りであるとも限らない。どのタイプの誤りに遭遇するかにかかわらず、2パスの反復復号(方策Bの特定の実施)は、方策Aによって処理され得るC1誤り率よりもおよそ100倍高いC1誤り率を処理することができる。さらに、方策Bが2つの完全に誤った(消失した)行を利用するとき、方策Bの誤りのみのモード(error-only mode)が、方策Aよりも15倍大きいC1失敗率を処理することができる。その上、方策Bが、誤り/消失モードで2つの完全に誤った(消失した)行を利用するとき、方策Aに比べて50倍大きいC1失敗率が処理され得る。
【0052】
これはすべて、誤りおよび消失復号は、非反復方策であろうと、反復方策であろうと、従来の方法よりも優れた誤り率性能をもたらすという決定に至る。
【0053】
次に
図4を参照すると、積符号のための誤りおよび消失組合せ復号のための方法400のフローチャートが、1つの実施形態により示されている。この方法400は、様々な実施形態で、特に
図1〜3に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、
図4に詳細に説明する操作よりも多くの操作または少ない操作が、方法400に含まれることがある。1つの手法では、方法400は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【0054】
方法400のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法400は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【0055】
図4に示すように、方法400は、取り込まれるデータが受け取られる動作402で始まることができる。データは、磁気テープ、光ドライブ、光通信ファイバなど、任意の好適な記憶媒体から取り込まれてもよい。取り込まれるデータは、その記憶または伝送あるいはその両方のために積符号(C1/C2)ですでに符号化されている、1つまたは複数のデータ・チャネルから受け取られるデータである。
【0056】
動作404では、信頼できないデータまたは欠けているデータ、あるいはその両方を有する行を示す消失フラグが、取り込まれたデータに対して生成され、C2復号器に提供される。各消失フラグが、誤りバースト状況(長いバーストの誤り)など、消失復号を使用してよりよく回復される、観察された、計算された、または予想された状況により(誤り復号では放置されるのに対して)C2消失復号中に消去されるとして扱われることになる取り込まれたデータの部分に対応する。
【0057】
1つの実施形態によれば、消失フラグは、長い誤りバーストを示している次の状況のいずれかに基づいて生成されることがある:符号語インターリーブ(インターリーブされた4つの符号語を含むCWI−4など)のヘッダが検出されないもしくは欠けている、または位相ロック・ループ(PLL)サイクル・スリップが検出される、または変調復号器の出力におけるCWI−4(もしくはC1符号語)内の検出される連続した不正変調符号語の数が所定の閾値量(10個の17ビットの変調符号語など)を超える、または前方同期パターン(所定の17ビット・パターンなど)と再同期パターン(所定の33ビット・パターンなど)との間のビット数がヘッダおよび4つの符号語インターリーブのサイズ(たとえば、7776ビット)に等しくない、または再同期パターンと後方同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズ(たとえば、7776ビット)に等しくない、あるいはこれらの状況の組合せ。
【0058】
様々な実施形態によれば、PLLサイクル・スリップが、当技術分野で知られている技法により、たとえば、米国特許第7,003,065号の方法を適用することによって、検出されることが可能である。また、閾値量は、C1符号の訂正能力、インターリービング係数、および変調符号語の長さによって決まる任意の好適な数であってもよい。たとえば、考慮されるCWI−4および長さ17の変調符号については、10個の連続した不正変調符号語が、C1符号で訂正することができない長い誤り事象を示す。さらに、当技術分野で知られている任意の技法を使用して、CWI−4ヘッダを検出しようと試みることが可能である。7776ビットは、2つの同期パターン間のビット数をカウントすることに基づいて計算され、ヘッダの12バイト、プラス、CWI−4の4×240バイト、すなわち7776ビットになる。異なるサイズのヘッダまたは符号語インターリーブ、あるいはその両方を有する他のレイアウトについては、この7776ビットは、他のデータ・フォーマットを反映するように調整されてもよい。
【0059】
操作406において、停止パラメータ(E2)が、CWI−4においてC1符号語の長さ(N1)に等しくなるように、たとえば、E2=N1に設定される。停止パラメータは、その後、(復号が成功すること、または不成功に終わることのいずれかにより)方法400を停止するときを決定するために使用することができる。
【0060】
操作408において、C1誤り復号が取り込まれたデータに行われる。1つの実施形態によれば、C1誤り復号は、リードバックされたC1符号語を有する行が不変のままである(たとえ404または420で生成された消失フラグによって決定が正しくないことが示されても、消去あるいは別の方法で変更されない)誤りおよび消失復号を含む。当然ながら、第1の反復では(または、非反復プロセスでは)、C2失敗はなく、したがってこれは未決定(moot)である。
【0061】
操作410において、取り込まれたデータ上でC1(誤りまたは消失)復号を行った後に検出されるC1失敗の数(F1)がゼロに等しい、たとえばF1=0かどうかが決定される。ゼロに等しい場合、方法400は操作414に進み、ゼロに等しくない場合、方法400は操作412に進む。
【0062】
操作412において、C1失敗の数(F1)が、C2誤り訂正能力(t
2)の2倍マイナスC2復号マージン(m
2)よりも大きい、たとえばF1>2t
2−m
2かどうかが決定される。大きい場合、方法400は操作420に進み、大きくない場合、方法400は操作418に進む。C2復号マージンは、マージンが誤り復号に使用されているか、または消失復号に使用されているかによって同じ、または異なることがある。
【0063】
C2誤り訂正能力(t
2)は、特定の取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表し、C2に選択されたRS符号のパラメータに応じて1、2、4、6、7、10などの、ゼロよりも大きい値を有する整数とすることができる。C2復号マージン(m
2)は、自動的に設定される、またはC2誤り訂正能力(t
2)とC2復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。1つの実施形態では、マージンは、単にC2消失復号と関連していることがある、またはC2誤りおよび消失復号と関連していることがある。
【0064】
操作414において、停止パラメータ(E2)がゼロに等しい、たとえばE2=0かどうかが決定される。等しい場合、方法400は操作416に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法400は操作420に進む。
【0065】
操作418において、C2消失復号が、(C1復号が行われた後に、またはいかなるC1復号もない本来の取り込まれた形式で)取り込まれたデータに行われる。1つの実施形態によれば、C2消失復号は、C1失敗が消去される誤りおよび消失復号を含む。C1復号後にC2消失復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C1失敗が存在し、消失データとして扱われることになる。
【0066】
操作420において、C2誤り復号が、(C1復号を行った後に、またはいかなるC1復号もなく本来の取り込まれた形式で)取り込まれたデータに行われる。1つの実施形態によれば、C2誤り復号は、C1失敗が不変のままである(決定が正しくないことが示されても、消去あるいは別の方法で変更されない)誤りおよび消失復号を含む。C1復号後にC2復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C1失敗が存在することになる。復号器は、C2復号失敗が発生した列に消失フラグを生成する。
【0067】
操作422において、C1失敗の数(F1)とC2失敗の数(F2)の両方がゼロに等しい、たとえばF1=0、かつF2=0かどうかが決定される。等しい場合、方法400は操作424に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法400は操作426に進む。
【0068】
操作426において、C2失敗の数(F2)が停止パラメータ(E2)以上である、たとえばF2≧E2かどうかが決定される。以上である場合、方法400は操作428に進み、復号が不成功となり、誤りが回復不可能/訂正不可能であるので停止し、以上ではない場合、方法400は停止パラメータ(E2)がC2失敗の数(F2)に設定される操作430に進む。このように、反復が単により少ないC2誤りに向かって収束し、発散してより多くのC2誤りを招く、または自然に解決することのないループ状況で行き詰まる、あるいはその両方にならないことが保証される。
【0069】
操作432において、停止パラメータ(E2)がC1誤り訂正能力(t
1)の2倍マイナスC1復号マージン(m
1)以下である、たとえばE2≦2t
1−m
1かどうかが決定される。C1復号マージンは、マージンが誤り復号に使用されているか、消失復号に使用されているかによって、同じである、または異なることがある。
【0070】
以下である場合、方法400は、操作420からの消失フラグを使用して取り込まれたデータにC1消失復号を行う操作434に進み、以下ではない場合、方法400は操作408に進んで、C1誤り復号を再び行う。1つの実施形態では、C1消失復号は、C2失敗が消失データとして扱われる誤りおよび消失復号を含む。方法400において、最初のC1復号後にC2復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C2失敗が存在することになり、消失データとして扱われることになる。
【0071】
C1誤り訂正能力(t
1)は、特定の取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、C1に選択されたRS符号のパラメータに応じて、1、2、5、6、7、10などの、ゼロよりも大きい値を有する整数とすることができる。C1復号マージン(m
1)は、自動的に設定される、またはC1誤り訂正能力(t
1)とC1復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。1つの実施形態では、マージンは、単にC1消失復号と関連していることがある、またはC1誤りおよび消失復号と関連していることがある。
【0072】
方法400は、操作416、または操作424、または操作428、あるいはこれらの組合せにおいて停止ポイントの1つに到達するまで続く。停止パラメータE2は、方法400がエンドレス・ループに陥らず、限られた数の反復内で操作416、または操作424、または操作428、あるいはこれらの組合せにおいて停止ポイントの1つに確実に到達することを保証するように設計される。
【0073】
1つの実施形態によれば、方法400は、システムによって行われることが可能である。たとえば、システムは、積符号のための誤りおよび消失組合せ復号のために構成されることが可能であり、システムは、プロセッサ(CPU、ASIC、FPGA、ICなど)と、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含むことができる。論理は、ハードウェア、ソフトウェア、またはその何らかの組合せであってもよく、方法400の1つまたは複数の操作を実行するように構成されてもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【0074】
別の実施形態では、コンピュータ・プログラム製品が、積符号のための誤りおよび消失組合せ復号のために設計されてもよく、このコンピュータ・プログラム製品は、プログラム・コードを包含したコンピュータ可読記憶媒体を含む。1つの実施形態では、プログラム・コードは、方法400の1つまたは複数の操作を実行するために、テープ・ドライブ、プロセッサなどのデバイスによって読取り可能、または実行可能、あるいはその両方であってもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【0075】
図5を参照すると、積符号のための誤りおよび消失組合せ復号のための方法500のフローチャートが、1つの実施形態により示されている。方法500は、様々な実施形態で、特に
図1〜3に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、
図5に詳細に説明する操作よりも多くの操作または少ない操作が、方法500に含まれることがある。1つの手法では、方法500は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【0076】
方法500のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法500は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、CPU、ASIC、FPGAなどのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【0077】
図5に示すように、方法500は、取り込まれるデータが受け取られる操作502で始まることができる。データは、磁気テープ、光ドライブ、光通信ファイバなど、任意の好適な記憶媒体から取り込まれてもよい。取り込まれるデータは、その記憶または伝送あるいはその両方のために積符号(C1/C2)ですでに符号化されている、1つまたは複数のデータ・チャネルから受け取られるデータである。
【0078】
動作504では、信頼できないデータまたは欠けているデータ、あるいはその両方を有する行を示す消失フラグが、取り込まれたデータに対して生成され、C2復号器に提供される。各消失フラグが、誤りバースト状況(長いバーストの誤り)など、消失復号を使用してよりよく回復される、観察された、または予想された状況により(誤り復号では放置されるのに対して)消失復号中に消去されるとして扱われることになる取り込まれたデータの部分に対応する。
【0079】
1つの実施形態によれば、消失フラグは、長い誤りバーストを示している次の状況のいずれかに基づいて生成されることがある:符号語インターリーブ(インターリーブされた4つの符号語を含むCWI−4など)のヘッダが検出されないもしくは欠けている、またはPLLサイクル・スリップが検出される、または変調復号器の出力におけるCWI−4(もしくはC1符号語)内の検出される連続した不正変調符号語の数が所定の閾値量を超える、または前方同期パターンと再同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズ(たとえば、7776ビット)に等しくない、または再同期パターンと後方同期パターンとの間のビット数が、ヘッダおよび4つの符号語インターリーブのサイズ(たとえば、7776ビット)に等しくない、あるいはこれらの組合せ。
【0080】
様々な実施形態によれば、PLLサイクル・スリップが、当技術分野で知られている任意の技法により検出されることが可能である。さらに、当技術分野で知られている任意の技法を使用して、CWI−4ヘッダを検出しようと試みることが可能である。7776ビットは、2つの同期パターン間のビット数をカウントすることに基づいて計算され、ヘッダの12バイト、プラス、CWI−4の4×240バイト、すなわち7776ビットになる。異なるサイズのヘッダまたは符号語インターリーブ、あるいはその両方を有する他のレイアウトについては、この7776ビットは、他のデータ・フォーマットを反映するように調整されてもよい。
【0081】
操作506において、停止パラメータ(E2)が、CWI−4においてC1符号語の長さ(N1)に等しくなるように、たとえばE2=N1に設定される。停止パラメータは、その後、(復号が成功すること、または不成功に終わることのいずれかにより)方法500を停止するときを決定するために使用することができる。
【0082】
操作508において、C1誤り復号が取り込まれたデータに行われる。1つの実施形態によれば、C1誤り復号は、リードバックされたC1符号語を有する行が不変のままである(たとえ消失フラグによって決定が正しくないことが示されても、消去あるいは別の方法で変更されない)誤りおよび消失復号を含む。
【0083】
操作510において、取り込まれたデータ上でC1(誤りまたは消失)復号を行った後に検出されるC1失敗の数(F1)がゼロに等しい、たとえばF1=0かどうかが決定される。等しい場合、方法500は操作518に進み、等しくない場合、方法500は操作512に進む。
【0084】
操作512において、C1失敗の数(F1)が、C2誤り訂正能力(t
2)の2倍マイナスC2復号マージン(m
2)よりも大きい、たとえばF1>2t
2−m
2かどうかが決定される。大きい場合、方法500は操作516に進み、大きくない場合、方法500は操作514に進む。
【0085】
C2誤り訂正能力(t
2)は、特定の取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表し、C2に選択されたRS符号のパラメータに応じて1、2、5、6、7、10などの、ゼロよりも大きい値を有する整数とすることができる。C2復号マージン(m
2)は、自動的に設定される、またはC2誤り訂正能力(t
2)とC2復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。1つの実施形態では、マージンは、単にC2消失復号と関連していることがある、またはC2誤りおよび消失復号と関連していることがある。
【0086】
操作514において、C2消失復号が、(C1復号を行った後に、またはいかなるC1復号もなく本来の取り込まれた形式で)取り込まれたデータに行われる。1つの実施形態によれば、C2消失復号は、C1失敗が消去される誤りおよび消失復号を含む。C1復号後にC2消失復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C1失敗が存在することになり、消失データとして扱われることになる。
【0087】
操作516において、C2誤り復号が、(C1復号を行った後に、またはいかなるC1復号もなく本来の取り込まれた形式で)取り込まれたデータに行われる。1つの実施形態によれば、C2誤り復号は、C1失敗が不変のままである(決定が正しくないことが示されても、消去あるいは別の方法で変更されない)誤りおよび消失復号を含む。C1復号後にC2復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C1失敗が存在することになる。復号器は、C2復号失敗が発生した列に消失フラグを生成する。
【0088】
操作520において、C2失敗の数(F2)がゼロに等しい、たとえばF2=0かどうかが決定される。等しい場合、方法500は操作522に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法500は操作524に進む。
【0089】
操作524において、C2失敗の数(F2)が停止パラメータ(E2)以上である、たとえばF2≧E2かどうかが決定される。以上である場合、方法500は操作526に進み、復号が不成功となり、誤りが回復不可能/訂正不可能であるので停止し、以上ではない場合、方法500は停止パラメータ(E2)がC2失敗の数(F2)に設定される操作528に進む。このように、反復が単により少ないC2誤りに向かって収束し、発散してより多くのC2誤りを招く、または自然に解決することのないループ状況で行き詰まる、あるいはその両方にならないことが保証される。
【0090】
操作530において、停止パラメータ(E2)がC1誤り訂正能力(t
1)の2倍マイナスC1復号マージン(m
1)以下である、たとえばE2≦2t
1−m
1かどうかが決定される。以下である場合、方法500は、操作516からの消失フラグを使用して取り込まれたデータにC1消失復号を行う操作532に進み、以下ではない場合、方法500は操作508に進んで、C1誤り復号を再び行う。1つの実施形態では、C1消失復号は、C2失敗が消去される誤りおよび消失復号を含む。方法500において、最初のC1復号後にC2消失復号が行われるとき、第1の反復において(または非反復プロセスにおいて)さえも、(noneが検出されない限り)C2失敗が存在することになり、消失データとして扱われることになる。
【0091】
C1誤り訂正能力(t
1)は、特定の取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表し、C1に選択されたRS符号のパラメータに応じて、1、2、5、6、7、10などの、ゼロよりも大きい値を有する整数とすることができる。C1復号マージン(m
1)は、自動的に設定される、またはC1誤り訂正能力(t
1)とC1復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。1つの実施形態では、マージンは、単にC1消失復号と関連していることがある、またはC1誤りおよび消失復号と関連していることがある。
【0092】
方法500は、操作518、または操作522、または操作526、あるいはこれらの組合せにおいて停止ポイントの1つに到達するまで続く。停止パラメータE2は、方法500がエンドレス・ループに陥らず、限られた数の反復内で操作518、または操作522、または操作526、あるいはこれらの組合せにおいて停止ポイントの1つに確実に到達することを保証するように設計される。
【0093】
復号方法500が、1つの実施形態により操作518、または操作522、または操作526、あるいはこれらの組合せにおいて停止ポイントの1つで停止するとき、復号されたデータ(積符号語)のすべての行および列が、正規の(legal)C1符号語(行)および正規のC2符号語(列)であるかどうかが決定されることが可能である。積符号語が正規である(許可される)とき、復号は成功であり、正規ではない場合、復号は不成功である(復号失敗)。
【0094】
1つの実施形態によれば、方法500は、システムによって行われることが可能である。たとえば、システムは、積符号のための誤りおよび消失組合せ復号のために構成されることが可能であり、システムは、プロセッサ(CPU、ASIC、FPGA、ICなど)と、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含むことができる。論理は、ハードウェア、ソフトウェア、またはその何らかの組合せであってもよく、方法500の1つまたは複数の操作を実行するように構成されてもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【0095】
別の実施形態では、コンピュータ・プログラム製品が、積符号のための誤りおよび消失組合せ復号のために設計されてもよく、このコンピュータ・プログラム製品は、プログラム・コードを包含したコンピュータ可読記憶媒体を含む。1つの実施形態では、プログラム・コードは、方法500の1つまたは複数の操作を実行するために、テープ・ドライブ、プロセッサなどのデバイスによって読取り可能、または実行可能、あるいはその両方であってもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【0096】
積符号の反復復号が、当技術分野において知られているが、これは、特定の消失および誤り復号スケジュールを使用して行われてこなかった。たとえば、米国特許第8,046,660号が、不揮発性メモリのための積符号復号器について記載する。この復号器は、1次元符号語および2次元符号語を復号する。第1の復号器が1次元符号語の1つに誤りを検出するとき、その1次元符号語は、消失としてマーク付けされる。第2の復号器が、この消失に基づいて2次元符号語の1つに別の誤りを検出する。第1および第2の符号器は、1次元符号語および2次元符号語中の他の誤りを決定するために、符号語を反復して復号する。
【0097】
しかしながら、米国特許第8,046,660号は、特定の復号スケジュールを開示せず、むしろ、積符号の標準的な反復誤りおよび消失復号に限られている。詳細には、これは、有限数の反復のうちに完了することを保証される、誤りおよび消失復号を使用する復号スケジュールを教示していない。さらに、米国特許第8,046,660号は、チャネル側の情報に基づく、C2復号器のための最初の消失フラグ付けを考慮しない。
【0098】
図6を参照すると、積符号のための誤りおよび消失組合せ復号のための方法600のフローチャートが、1つの実施形態により示されている。方法600は、様々な実施形態で、特に
図1〜3に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、
図6に詳細に説明する操作よりも多くの操作または少ない操作が、方法600に含まれることがある。1つの手法では、方法600は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【0099】
方法600のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法600は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、CPU、ASIC、FPGAなどのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【0100】
図6に示すように、方法600は、取り込まれるデータが受け取られる操作602で始まることができる。その後、操作604において、取り込まれたデータに対して消失フラグが生成され、C2復号器に提供される。次に、操作606において、取り込まれたデータを符号化するために使用される符号語インターリーブでC1符号語の長さに等しくなるように、停止パラメータが設定される。最後に、操作608において、復号が成功する、または不成功に終わるまで、誤りまたは消失C1復号、その後に続く誤りまたは消失C2復号が、選択的に行われる。
【0101】
1つの実施形態によれば、各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、取り込まれたデータの一部に対応することができる。これらの観察されたまたは計算された状況は、取り込まれたデータにバーストの誤りが発生したことを示すことができるいかなる状況も含むことができる。様々な実施形態によれば、観察されたまたは計算された状況は、以下の少なくとも1つを含むことができる:符号語インターリーブのヘッダが検出されない、PLLサイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはC1符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超える、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくない、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび4つの符号語インターリーブのサイズに等しくない。
【0102】
別の実施形態によれば、反復プロセスは、第1の反復で、および停止パラメータがC1誤り訂正能力の2倍マイナスC1復号マージン以下であるとき、取り込まれたデータにC1誤り復号を行い、以下ではない場合、取り込まれたデータにC1消失復号を行うことと、C1復号を行った後、C1失敗の数がゼロに等しく、停止パラメータがゼロに等しいとき、復号が成功であると決定することと、C1失敗の数がC2誤り訂正能力の2倍マイナスC2復号マージンよりも大きいとき、C1復号を行った後、取り込まれたデータにC2誤り復号を行うことと、停止パラメータがゼロに等しくない、またはC1失敗の数がC2誤り訂正能力の2倍マイナスC2復号マージン以下であり、ゼロよりも大きいとき、C1復号を行った後、取り込まれたデータにC2消失復号を行うことと、C2失敗の数とC1失敗の数の両方がゼロに等しいとき、C2復号を行った後、復号が成功であると決定することと、C2失敗の数が停止パラメータ以上であるとき、C2復号を行った後、復号が不成功であると決定し、以上ではない場合、C2失敗の数に等しく停止パラメータを設定することとを含むことができる。
【0103】
別の実施形態では、反復プロセスは、第1の反復で、および停止パラメータがC1誤り訂正能力の2倍マイナスC1復号マージン以下であるとき、取り込まれたデータにC1誤り復号を行い、以下ではない場合、取り込まれたデータにC1消失復号を行うことと、C1失敗の数がゼロに等しいとき、復号を停止し、符号語チェックを行うことと、C1失敗の数がC2誤り訂正能力の2倍マイナスC2復号マージンよりも大きいとき、C1復号を行った後、取り込まれたデータにC2誤り復号を行い、大きくない場合、C1復号を行った後、取り込まれたデータにC2消失復号を行うことと、C2失敗の数がゼロに等しいとき、C2復号を行った後、復号を停止することと、C2失敗の数が停止パラメータ以上であるとき、C2復号を行った後、復号が不成功であると決定し、以上ではない場合、C2失敗の数に等しく停止パラメータを設定することとを含むことができる。符号語チェックは、すべてのC1符号語が正規であり、すべてのC2符号語が正規であると決定することを含むことができ、したがってすべてのC1符号語が正規であり、すべてのC2符号語が正規であるとき復号は成功であり、そうではない場合、復号は不成功である。
【0104】
さらなる実施形態では、C1誤り訂正能力は、取り込まれたデータで積符号を使用して訂正可能であるC1誤りの数を表すことができ、C2誤り訂正能力は、取り込まれたデータで積符号を使用して訂正可能であるC2誤りの数を表すことができる。
【0105】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、(1つまたは複数の)指定された論理機能を実施するための1つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。またいくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに留意されたい。たとえば、連続して示した2つのブロックは、実際には実質的に同時に行われることがある、またはこの2つのブロックは、関連する機能に応じて、時には逆の順序で行われることがある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う特殊用途ハードウェア・ベースのシステム、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって実行されることが可能であることに注意されたい。
【0106】
様々な実施形態について上述したが、これらを単に例として、限定ではなく提示したことを理解すべきである。したがって、本発明の実施形態の広さおよび範囲は、上述の例示的実施形態のいずれによっても限定されるべきではなく、単に添付の特許請求の範囲およびその均等物に従って定められるべきである。