(57)【特許請求の範囲】
【請求項１】
積符号のための誤りおよび消失組合せ復号のためのシステムであって、プロセッサと、前記プロセッサと統合された、または前記プロセッサによって実行可能な、あるいはその両方の論理とを備え、前記論理が、
取り込まれたデータを受け取り、
前記取り込まれたデータに対して消失フラグを生成し、前記消失フラグをＣ２復号器に提供し、
復号プロセスを所定の回数反復後に停止する前記回数を規定する停止パラメータであって、前記取り込まれたデータを符号化するために使用される符号語インターリーブにおいてＣ１符号語の長さに等しくなるように前記停止パラメータを設定し、
復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、選択的に行う
ように構成された、システム。
【請求項２】
各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、前記取り込まれたデータの部分に対応する、請求項１に記載のシステム。
【請求項３】
前記観察されたまたは計算された状況が、符号語インターリーブのヘッダが検出されないこと、位相ロック・ループ（ＰＬＬ）サイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはＣ１符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超えること、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくないこと、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくないことのうちの少なくとも１つを含む、請求項２に記載のシステム。
【請求項４】
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、選択的に行うように構成された前記論理が、
第１の反復において、および前記停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、前記取り込まれたデータにＣ１消失復号を行い、以下ではないとき、前記取り込まれたデータにＣ１誤り復号を行い、
Ｃ１復号を行った後、Ｃ１失敗の数がゼロに等しく、前記停止パラメータがゼロに等しいとき、復号は成功であると決定し、
Ｃ１失敗の前記数が、Ｃ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２誤り復号を行い、
前記停止パラメータがゼロに等しくない、またはＣ１失敗の前記数が前記Ｃ２誤り訂正能力の２倍マイナス前記Ｃ２復号マージン以下であって、ゼロよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２消失復号を行い、
Ｃ２失敗の数とＣ１失敗の数の両方がゼロに等しいとき、Ｃ２復号を行った後、復号が成功であると決定し、
Ｃ２失敗の数が前記停止パラメータ以上であるとき、Ｃ２復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをＣ２失敗の前記数に等しく設定する
ように構成された論理を含む、請求項１に記載のシステム。
【請求項５】
前記Ｃ１誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、前記Ｃ２誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表す、請求項４に記載のシステム。
【請求項６】
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、選択的に行うように構成された前記論理が、
第１の反復において、および前記停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、前記取り込まれたデータにＣ１消失復号を行い、以下ではないとき、前記取り込まれたデータにＣ１誤り復号を行い、
Ｃ１失敗の数がゼロに等しいとき、復号を停止し、符号語チェックを行い、
Ｃ１失敗の前記数が、Ｃ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２誤り復号を行い、大きくないとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２消失復号を行い、
Ｃ２失敗の数がゼロに等しいとき、Ｃ２復号を行った後、復号を停止し、
Ｃ２失敗の数が前記停止パラメータ以上であるとき、Ｃ２復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをＣ２失敗の前記数に等しく設定する
ように構成された論理を含み、
前記符号語チェックが、すべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であると決定するように構成された論理を含み、すべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であるとき、復号は成功であり、そうではない場合、復号は不成功である、請求項１に記載のシステム。
【請求項７】
前記Ｃ１誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、前記Ｃ２誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表す、請求項６に記載のシステム。
【請求項８】
積符号のための誤りおよび消失組合せ復号のための方法であって、
取り込まれたデータを受け取るステップと、
前記取り込まれたデータに対して消失フラグを生成し、前記消失フラグをＣ２復号器に提供するステップと、
復号プロセスを所定の回数反復後に停止する前記回数を規定する停止パラメータであって、前記取り込まれたデータを符号化するために使用される符号語インターリーブにおいてＣ１符号語の長さに等しくなるように前記停止パラメータを設定するステップと、
復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、選択的に行うステップと
を含む、方法。
【請求項９】
各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、前記取り込まれたデータの部分に対応する、請求項８に記載の方法。
【請求項１０】
前記観察されたまたは計算された状況が、符号語インターリーブのヘッダが検出されないこと、位相ロック・ループ（ＰＬＬ）サイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはＣ１符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超えること、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくないこと、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくないことのうちの少なくとも１つを含む、請求項９に記載の方法。
【請求項１１】
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、前記選択的に行うステップが、
第１の反復において、および前記停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、前記取り込まれたデータにＣ１消失復号を行い、以下ではないとき、前記取り込まれたデータにＣ１誤り復号を行うステップと、
Ｃ１復号を行った後、Ｃ１失敗の数がゼロに等しく、前記停止パラメータがゼロに等しいとき、復号は成功であると決定するステップと、
Ｃ１失敗の前記数が、Ｃ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２誤り復号を行うステップと、
前記停止パラメータがゼロに等しくない、またはＣ１失敗の前記数が前記Ｃ２誤り訂正能力の２倍マイナス前記Ｃ２復号マージン以下であって、ゼロよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２消失復号を行うステップと、
Ｃ２失敗の数とＣ１失敗の数の両方がゼロに等しいとき、Ｃ２復号を行った後、復号が成功であると決定するステップと、
Ｃ２失敗の数が前記停止パラメータ以上であるとき、Ｃ２復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをＣ２失敗の前記数に等しく設定するステップと
を含む、請求項８に記載の方法。
【請求項１２】
前記Ｃ１誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、前記Ｃ２誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表す、請求項１１に記載の方法。
【請求項１３】
復号が成功するまたは不成功に終わるまで、前記反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、前記選択的に行うステップが、
第１の反復において、および前記停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、前記取り込まれたデータにＣ１消失復号を行い、以下ではないとき、前記取り込まれたデータにＣ１誤り復号を行うステップと、
Ｃ１失敗の数がゼロに等しいとき、復号を停止し、符号語チェックを行うステップと、
Ｃ１失敗の前記数が、Ｃ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２誤り復号を行い、大きくないとき、Ｃ１復号を行った後、前記取り込まれたデータにＣ２消失復号を行うステップと、
Ｃ２失敗の数がゼロに等しいとき、Ｃ２復号を行った後、復号を停止するステップと、
Ｃ２失敗の数が前記停止パラメータ以上であるとき、Ｃ２復号を行った後、復号は不成功であると決定し、以上ではないとき、前記停止パラメータをＣ２失敗の前記数に等しく設定するステップと
を含み、
前記符号語チェックが、すべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であると決定するステップを含み、すべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であるとき、復号は成功であり、そうではない場合、復号は不成功である、請求項８に記載の方法。
【請求項１４】
前記Ｃ１誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、前記Ｃ２誤り訂正能力が、前記取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表す、請求項１３に記載の方法。
【請求項１５】
積符号のための誤りおよび消失組合せ復号のためのコンピュータ・プログラムであって、
取り込まれたデータを受け取り、
前記取り込まれたデータに対して消失フラグを生成し、前記消失フラグをＣ２復号器に提供し、
復号プロセスを所定の回数反復後に停止する前記回数を規定する停止パラメータであって、前記取り込まれたデータを符号化するために使用される符号語インターリーブにおいてＣ１符号語の長さに等しくなるように前記停止パラメータを設定し、
復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を、選択的に行うことを
プロセッサに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストレージに関し、より詳細には、誤りおよび消失組合せ復号（combinationerror and erasure decoding）を使用して、改善された積符号復号を提供することに関する。
【背景技術】
【０００２】
磁気テープ、光ストレージ、または光ファイバ伝送などのストレージ媒体および伝送媒体は、データを符号化するために積符号を使用し、積符号はその後、媒体からデータを読み取るために復号されなければならない。積符号が、ストレージ・クラス・メモリおよびフラッシュ・メモリで使用されることもある。積符号は、２レベルの誤り訂正アーキテクチャの重要な構成要素である。テープ・ドライブにおける誤り訂正は、一般的に、第１レベルのＣ１符号および第２レベルのＣ２符号を使用する積符号に基づく、当業者にはよく知られているプロセスである。積符号語は、２次元配列として表すことができ、配列の行が、行符号（Ｃ１符号）からの符号語を含み、配列の列が、列符号（Ｃ２符号）からの符号語で構成される。
【０００３】
各データセットは、従来の技術により、図１に示すようにＭバイト×Ｎバイト（Ｍ×Ｎ）のサイズのＥＣＣ符号化された行列に構成されてテープに書き込まれた、インターリーブされた符号語の集合を使用して符号化される。この行列１５０内には、２レベルの符号化が存在する。第１のレベルの符号化は、行列の行１０２を使用する。行列の各行１０２は、Ｃ１−ＥＣＣ行パリティ１０６を含み、ｎバイトのユーザ・データにｐバイトのＣ１−ＥＣＣを追加する（たとえば、Ｎ＝ｎ＋ｐバイト）。第２のレベルの符号化、Ｃ２−ＥＣＣ列パリティ１０８は、各行列の列１０４にｑバイトのＣ２−ＥＣＣを追加する。たとえば、ｑ＝１２の場合、１２バイトのＣ２−ＥＣＣを追加して、行列１５０に１２行を追加することになる（たとえば、Ｍ＝ｍ＋ｑバイト）。
【０００４】
テープ・ストレージでは、積符号のための復号器は、ドロップ・アウトおよび同期スリップなどの非常に長い誤り事象を緩和するように設計される。いくつかのテープ・ドライブでは、Ｃ１復号器は、書込み中読取り（read-while-write）の間にも使用され、誤り復号を行い、Ｃ２復号器は、消失復号を行う。この特定の復号方策の難点は、短い誤り事象が存在する場合にうまく機能しないことである。さらに、この方策は、反復復号を使用して誤り率性能を改善することができない。
【０００５】
光ファイバ伝送チャネルなどの他の通信チャネルでは、非常に短い独立したビット誤りが存在する場合に、誤り復号が使用される。この復号方策の難点は、長い誤り事象が無視できる限りは、非常にうまく機能することである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７，００３，０６５号
【特許文献２】米国特許第８，０４６，６６０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、テープ・ストレージ・チャネルなど、チャネルおよびストレージ媒体の多くは、短い誤り事象と長い誤り事象の両方を示す。したがって、長い誤り事象と短い誤り事象の両方が存在する場合に改善された誤り率性能を発揮する、改善された復号スケジュール／方策の必要がある。
【課題を解決するための手段】
【０００８】
１つの実施形態では、積符号のための誤りおよび消失組合せ復号のためのシステムが、プロセッサと、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含み、この論理は、取り込まれたデータを受け取り、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うように構成される。
【０００９】
別の実施形態では、積符号のための誤りおよび消失組合せ復号のための方法が、取り込まれたデータを受け取ることと、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供することと、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定することと、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うこととを含む。
【００１０】
別の実施形態によれば、積符号のための誤りおよび消失組合せ復号のためのコンピュータ・プログラム製品が、プログラム・コードを包含したコンピュータ可読記憶媒体を含み、このプログラム・コードは、取り込まれたデータを受信し、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うように、プロセッサによって読取り可能／実行可能である。
【００１１】
本発明の他の態様および実施形態は、図面と併せるとき、本発明の原理を一例として示す次の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】従来の技術によるデータセット行列または配列を示す図である。
【図２】１つの実施形態によるネットワーク・ストレージ・システムを示す図である。
【図３】１つの実施形態によるテープ・ベースのデータ・ストレージ・システムの簡略化したテープ・ドライブを示す図である。
【図４】１つの実施形態による方法のフローチャートである。
【図５】別の実施形態による方法のフローチャートである。
【図６】さらに別の実施形態による方法のフローチャートである。
【発明を実施するための形態】
【００１３】
次の説明は、本発明の一般的な原理を示すために行うが、本明細書において主張する本発明の概念を制限するものではない。さらに、本明細書に記載する特定の特徴は、考えられる様々な組合せおよび順列のそれぞれで、記載する他の特徴と組み合わせて使用されることが可能である。
【００１４】
本明細書において特に別段定義しない限り、すべての用語は、本明細書から暗示される意味、ならびに当業者によって理解される、または辞書、論文などに定義される、あるいはその両方の意味を含む、その最大限の広範な解釈を与えられなければならない。
【００１５】
本明細書および添付の特許請求の範囲において使用される、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、別段の指定がない限り、複数の指示対象を含むことにもまた留意しなければならない。
【００１６】
１つの実施形態によれば、短い誤り事象および長い誤り事象が存在する場合に改善された誤り率性能を達成するために、誤りと消失の両方の復号に基づいた積符号のための復号方策が使用される。
【００１７】
１つの一般的な実施形態では、積符号のための誤りおよび消失組合せ復号のためのシステムが、プロセッサと、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含み、この論理は、取り込まれたデータを受信し、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うように構成される。
【００１８】
別の一般的な実施形態では、積符号のための誤りおよび消失組合せ復号のための方法が、取り込まれたデータを受け取るステップと、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供するステップと、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定するステップと、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うステップとを含む。
【００１９】
別の一般的な実施形態によれば、積符号のための誤りおよび消失組合せ復号のためのコンピュータ・プログラム製品が、プログラム・コードを包含したコンピュータ可読記憶媒体を含み、このプログラム・コードは、取り込まれたデータを受け取り、取り込まれたデータに対して消失フラグを生成して、消失フラグをＣ２復号器に提供し、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように停止パラメータを設定し、復号が成功するまたは不成功に終わるまで、反復プロセスで、誤りまたは消失Ｃ１復号、続いて誤りまたは消失Ｃ２復号を選択的に行うように、プロセッサによって読取り可能／実行可能である。
【００２０】
当業者には理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されることが可能である。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではすべて一般的に「論理」、「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、コンピュータ可読プログラム・コードを包含した１つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることができる。
【００２１】
１つまたは複数のコンピュータ可読媒体の任意の組合せを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であることが可能である。コンピュータ可読記憶媒体が、たとえば電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらなる具体例（非網羅的リスト）には、以下のものが含まれる：ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気記憶デバイス、または上記の任意の好適な組合せ。この文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって、またはこれらに接続して使用するためにプログラムを収容するまたは格納することができる任意の有形媒体とすることができる。
【００２２】
コンピュータ可読信号媒体は、たとえばベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードを包含した伝搬データ信号を含むことができる。このような伝搬信号は、１つまたは複数の電線、光ファイバなどを有する電気的接続など、電磁気、光、またはその任意の好適な組合せを含んだ、ただしこれらに限らない、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、またはこれらに接続して使用するためにプログラムを伝える、伝搬する、または伝送することができる任意のコンピュータ可読媒体であってもよい。
【００２３】
コンピュータ可読媒体に包含されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、または上記の任意の好適な組合せを含む、ただしこれらに限らない、任意の適切な媒体を使用して送信されてもよい。
【００２４】
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの、従来の手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、すべてユーザのコンピュータ上で実行する、一部ユーザのコンピュータ上で実行する、スタンド・アロン型ソフトウェア・パッケージとして、一部はユーザのコンピュータ上で実行し、一部はリモート・コンピュータ上で実行する、またはすべてリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）などの、任意のタイプのネットワークを通じてユーザのコンピュータに接続することができる、または（たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータへの接続を行うことができる。
【００２５】
本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して、本発明の諸態様を以下に述べる。フローチャート図またはブロック図、あるいはその両方の各ブロック、およびフローチャート図またはブロック図、あるいはその両方の中のブロックの組合せは、コンピュータ・プログラム命令によって実施され得ることは理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに明記される機能／行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すことができる。
【００２６】
またこれらのコンピュータ・プログラム命令は、コンピュータ可読媒体に格納された命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに明記される機能／行為を実施する命令を組み込んだ製品を作り出すように、コンピュータ可読媒体に格納されて、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように指示することもできる。
【００２７】
またコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに明記される機能／行為を実施するためのプロセスを提供するように、コンピュータ実施プロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることもできる。
【００２８】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、（１つまたは複数の）指定された論理機能を実施するための１つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。またいくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに留意されたい。たとえば、連続して示した２つのブロックは、実際には実質的に同時に行われることがある、またはこの２つのブロックは、関連する機能に応じて、時には逆の順序で行われることがある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、明記された機能または行為を行う特殊用途ハードウェア・ベースのシステム、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって実施され得ることに注意されたい。
【００２９】
次に図２を参照すると、１つの実施形態によりネットワーク・ストレージ・システム１０の概略図が示されている。このネットワーク・ストレージ・システム１０は、好適なストレージ・システムの一例にすぎず、本明細書に記載する発明の実施形態の使用または機能の範囲に関するいかなる制限も示唆することを意図されていない。いずれにせよ、ネットワーク・ストレージ・システム１０は、実装されること、または以上に示す機能のいずれかを行うこと、あるいはその両方が可能である。
【００３０】
ネットワーク・ストレージ・システム１０には、数多くの他の汎用または特殊用途コンピューティング・システム環境または構成で動作可能であるコンピュータ・システム／サーバ１２がある。コンピュータ・システム／サーバ１２とともに使用するのに適している可能性がある、よく知られているコンピューティング・システム、または環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、これらに限らない。
【００３１】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的な文脈で説明されることがある。一般的に、プログラム・モジュールは、特定のタスクを行うまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散クラウド・コンピューティング環境で実行されることがある。分散クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ記憶装置を含んだローカルとリモートの両方のコンピュータ・システム記憶媒体に置かれることがある。
【００３２】
図２に示されるように、ネットワーク・ストレージ・システム１０中のコンピュータ・システム／サーバ１２が、汎用コンピューティング・デバイスの形で示される。１つの実施形態では、コンピュータ・システム１２は、テープ・ドライブ・システムと併せて使用されることがある。コンピュータ・システム／サーバ１２の構成要素は、１つもしくは複数のプロセッサまたは処理ユニット１６と、システム・メモリ２８と、システム・メモリ２８を含めた様々なシステム・コンポーネントをプロセッサ１６に結合するバス１８とを含むことができるが、これらに限らない。
【００３３】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスなど、いくつかのタイプのバス構造のいずれかの１つまたは複数を表す。例として、限定ではないが、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Micro Channel Architecture）バス、拡張ＩＳＡ（ＥＩＳＡ：EnhancedISA）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：VideoElectronics Standards Association）ローカル・バス、および周辺構成要素相互接続（ＰＣＩ：Peripheral Component Interconnects）バスが含まれる。
【００３４】
コンピュータ・システム／サーバ１２は、一般に様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能であるいかなる利用可能媒体であってもよく、揮発媒体と不揮発媒体、取り外し可能な媒体と取り外し不可能な媒体を共に含む。
【００３５】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０、またはキャッシュ・メモリ３２、あるいはその両方のような揮発メモリの形式のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不可能、揮発性／不揮発性の、コンピュータ・システム記憶媒体をさらに含むことができる。例として、取り外し不可能な、不揮発性磁気媒体（図示せず、一般的に「ハード・ディスク」と呼ばれ、ＨＤＤで操作されることが可能である）からの読取りおよびこれへの書込みを行うために、ストレージ・システム３４を設けることができる。図示していないが、取り外し可能な不揮発性磁気ディスク（たとえば、「フロッピー（Ｒ）・ディスク」）のからの読取りおよびこれへの書込みを行うための磁気ディスク・ドライブ、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体のような取り外し可能な不揮発性光ディスクからの読取りまたはこれへの書込みを行うための光ディスク・ドライブを設けることができる。このような場合、１つまたは複数のデータ媒体のインターフェイスでそれぞれをバス１８に接続することができる。以下にさらに示し、説明するように、メモリ２８は、本明細書に記載する実施形態の機能を実行するように構成された一組（たとえば少なくとも１つ）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むことができる。
【００３６】
一組（少なくとも１つ）のプログラム・モジュール４２を有するプログラム／ユーティリティ４０は、限定ではなく例としてメモリ２８に、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、記憶することができる。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、あるいはその何らかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール４２は、一般に、本明細書に記載する本発明の実施形態の機能または方法、あるいはその両方を実行する。
【００３７】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などのような１つまたは複数の外部デバイス１４、またはユーザがコンピュータ・システム／サーバ１２と対話できるようにする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（たとえばネットワーク・カード、モデムなど）、あるいはその組合せと通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェイス２２を介して行うことができる。さらにコンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、または一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（たとえばインターネット）、あるいはその組合せのような、１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。図示するように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他の構成要素と通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素、あるいはその両方を、コンピュータ・システム／サーバ１２と併せて使用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限らない。
【００３８】
図３は、様々な実施形態により使用することができる、テープ・ベースのデータ・ストレージ・システムの簡略化したテープ・ドライブ１００を示す。図３にはテープ・ドライブの１つの特定の実装を示しているが、本明細書に記載する実施形態は、任意のタイプのテープ・ドライブ・システムの状況で実施され得ることに留意されたい。
【００３９】
図のように、テープ１２２を支持するために、テープ供給カートリッジ１２０および巻き取りリール１２１が設けられる。リールの１つまたは複数は、取り外し可能なカセットの一部を形成することがあり、必ずしもテープ・ドライブ１００の一部ではない。図３に示すようなテープ・ドライブ１００は、任意のタイプのテープ・ヘッド１２６の上にテープ１２２を動かすようにテープ供給カートリッジ１２０および巻き取りリール１２１を駆動する（１つまたは複数の）駆動モータをさらに含むことがある。
【００４０】
ガイド１２５が、テープ・ヘッド１２６を通るようテープ１２２を誘導する。このようなテープ・ヘッド１２６はさらに、ケーブル１３０によりコントローラ・アセンブリ１２８に結合される。コントローラ１２８は、一般的に、サーボ・チャネル１３４と、データ・フロー処理を含んだデータ・チャネル１３６とを備える。コントローラ１２８は、リールの動き（図３に示さず）と、トラック追従、書込み、読取りなどのヘッド機能とを制御する。ケーブル１３０は、テープ１２２に記録されるようにヘッド１２６にデータを送り、テープ１２２からヘッド１２６によって読み取られるデータを受け取るための読取り／書込み回路を含むことができる。アクチュエータ１３２が、書込みまたは読取り操作を行うために、ヘッド１２６をテープ１２２上のトラックの集合に動かす。
【００４１】
１つの実施形態では、テープ・ドライブ１００は、テープ・ドライブ１００およびコントローラ１２８によってアクセス可能であるデータ・バッファ１３８を備えることができる。このデータ・バッファ１３８は、リング・バッファとして構成されてもよく、１つの部分を予備データ・バッファ１４０として、１つまたは複数の部分に分割されてもよく、予備データ・バッファ１４０もまたリング・バッファに構成されて、テープ１２２からの読取り操作中の部分的データセットを記憶するために使用されてもよい。
【００４２】
当業者には理解されるように、データを送受信するために、およびテープ・ドライブ１００の操作を制御し、テープ・ドライブ１００の状態をホストに伝えるために、テープ・ドライブ１００とホスト（一体型または外部）との通信のためのインターフェイスが設けられてもよい。
【００４３】
１つの実施形態によれば、実際のテープ復号において一般に経験されるように、短い誤り事象と長い誤り事象の両方に遭遇するとき、従来の技法よりも優れた誤り率性能を実現するために、誤りと消失の両方の復号に基づいた積符号のための復号方策が使用される。この復号方策の革新的な側面は、誤りまたは消失復号を行うための条件分岐と、積符号を復号するための反復復号アルゴリズムが一定数の反復の後に停止することを保証するために導入されるパラメータ（本明細書ではＥ２と呼ばれる）に基づく停止メカニズムと、積符号の復号が始まる前のＣ２復号のための最初の消失フラグ付けとを含む。
【００４４】
復号アルゴリズムを停止するための１つの従来の手法は、所定数または一定数の反復を発生させること、その後復号を停止することである。しかしながら、この手法は、Ｅ２パラメータの使用と調和して使用され、それによってさらに優れた性能をもたらし、復号の待ち時間を抑える可能性がある。
【００４５】
様々な実施形態によれば、本明細書に記載する技法は、Ｃ１復号の後にＣ２復号が続く非反復復号モード（単一の反復）で、またはＣ１／Ｃ２復号のいくつかの反復が行われる反復復号モードで、使用されることがある。これらの技法は、オンザフライで、または誤り回復手順（ＥＲＰ：error recovery procedure）の間に使用されてもよい。短い誤り事象および長い誤り事象が存在する場合の誤り率性能の改善、認証されたレガシーＣ２消失復号方式を最初の復号ステップとして使用できること、反復および非反復復号を行うことができることなど、本明細書に記載する技法を使用することによって、多くの利点が実現される可能性がある。
【００４６】
例示の目的で、次のパラメータは、復号試験の際に使用された。Ｃ１符号については、次のパラメータを有して、リード・ソロモン（ＲＳ）符号が使用された：ＲＳ（Ｎ１＝２４０，Ｋ１＝２３０，ｄ１＝１１）Ｃ２符号については、パラメータは、ＲＳ（Ｎ２＝９６，Ｋ２＝８４，ｄ２＝１３）であった。ここでＮ１およびＮ２は、配列中の各符号語におけるバイト数に等しいブロック長であり、Ｋ１およびＫ２は、各符号語におけるデータバイト数に等しいメッセージ長であり、ｄ１およびｄ２は、Ｎ−Ｋ＋１に等しい距離または最小距離である。ここでｄ−１消失がＲＳ符号によって訂正され得る。
【００４７】
第１の例示的な復号方策（方策Ａ）によれば、消失ポインタを用いて非反復復号が行われることが可能である。Ｃ１復号器によって訂正されることが可能である誤りの数、ｔ１は、ｔ１＝（ｄ１−１）／２＝（１１−１）／２＝５という関係に基づいて求められるので、Ｃ１復号器に対して訂正可能な誤りの量は、ｔ１＝５と求めることができる。この例のために、方策Ａでは、Ｃ１復号器は、最大４つの誤り（誤訂正を減らすために１のマージンを含めるためにｔ１＝５−１）を訂正することができ、訂正不可能な行は、Ｃ２復号器には消失としてマーク付けされると仮定する。Ｃ２復号器はその後、消失モードで動作し、さらなるマージンを含めず、最大ｄ２−１＝１２の消失を訂正する。奇数の最小距離ｄ２については、最大消失訂正能力は、ｄ２−１＝……２×ｔ２によって、最大誤り訂正能力に関係付けられる。
【００４８】
別の例示的な復号方策（方策Ｂ）では、反復復号が使用され、Ｃ１復号器およびＣ２復号器が方策Ａと同様に動作することが可能である。成功する場合、復号方策はＣ１復号の後に終了し、成功しない場合、Ｃ２復号器は、どの行が訂正されたか、およびどの行にＣ１復号失敗が含まれるかについて知らされる。Ｃ２復号器はその後、誤りのあるサブ配列（subarray）上で誤り復号を行い、Ｃ１／Ｃ２復号の第２のパスを適用する。
【００４９】
方策ＢのためにＣ２復号器において誤りおよび消失復号パラメータを選択するために、同期スリップ、欠けているヘッダのために欠けているデータなど、わかっている長い欠陥のある行が、Ｃ２復号器には消失としてフラグ付けされる。
【００５０】
次に、長い誤りバーストについて、たとえば、Ｃ１符号語に沿った非常に長い誤り事象の、最悪のケースのシナリオにおけるサイクル・スリップについて、上述ように方策ＡおよびＢの動作を仮定すると、Ｃ１失敗率は、Ｃ２復号器入力におけるバイト誤り率の優れた評価基準である。この場合、消失復号のみが、誤り復号のみよりも実質的によい。Ｃ１符号語に沿ってランダム誤りに遭遇する別のシナリオでは、Ｃ１失敗率は、Ｃ２復号器入力におけるバイト誤り率の非常に悲観的な評価基準であり、誤り復号のみが、消失復号のみよりも実質的によい。Ｃ２消失復号に失敗した、方策ＡおよびＢから生成された、取り込まれたデータの分析が、これらの場合にＣ２誤り復号が誤りを訂正できたことを示した。
【００５１】
しかしながら、現実世界の適用において、取り込まれたデータ中の誤りが、常に長い誤りバーストであるとも、ランダム誤りであるとも限らない。どのタイプの誤りに遭遇するかにかかわらず、２パスの反復復号（方策Ｂの特定の実施）は、方策Ａによって処理され得るＣ１誤り率よりもおよそ１００倍高いＣ１誤り率を処理することができる。さらに、方策Ｂが２つの完全に誤った（消失した）行を利用するとき、方策Ｂの誤りのみのモード（error-only mode）が、方策Ａよりも１５倍大きいＣ１失敗率を処理することができる。その上、方策Ｂが、誤り／消失モードで２つの完全に誤った（消失した）行を利用するとき、方策Ａに比べて５０倍大きいＣ１失敗率が処理され得る。
【００５２】
これはすべて、誤りおよび消失復号は、非反復方策であろうと、反復方策であろうと、従来の方法よりも優れた誤り率性能をもたらすという決定に至る。
【００５３】
次に図４を参照すると、積符号のための誤りおよび消失組合せ復号のための方法４００のフローチャートが、１つの実施形態により示されている。この方法４００は、様々な実施形態で、特に図１〜３に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、図４に詳細に説明する操作よりも多くの操作または少ない操作が、方法４００に含まれることがある。１つの手法では、方法４００は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【００５４】
方法４００のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法４００は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【００５５】
図４に示すように、方法４００は、取り込まれるデータが受け取られる動作４０２で始まることができる。データは、磁気テープ、光ドライブ、光通信ファイバなど、任意の好適な記憶媒体から取り込まれてもよい。取り込まれるデータは、その記憶または伝送あるいはその両方のために積符号（Ｃ１／Ｃ２）ですでに符号化されている、１つまたは複数のデータ・チャネルから受け取られるデータである。
【００５６】
動作４０４では、信頼できないデータまたは欠けているデータ、あるいはその両方を有する行を示す消失フラグが、取り込まれたデータに対して生成され、Ｃ２復号器に提供される。各消失フラグが、誤りバースト状況（長いバーストの誤り）など、消失復号を使用してよりよく回復される、観察された、計算された、または予想された状況により（誤り復号では放置されるのに対して）Ｃ２消失復号中に消去されるとして扱われることになる取り込まれたデータの部分に対応する。
【００５７】
１つの実施形態によれば、消失フラグは、長い誤りバーストを示している次の状況のいずれかに基づいて生成されることがある：符号語インターリーブ（インターリーブされた４つの符号語を含むＣＷＩ−４など）のヘッダが検出されないもしくは欠けている、または位相ロック・ループ（ＰＬＬ）サイクル・スリップが検出される、または変調復号器の出力におけるＣＷＩ−４（もしくはＣ１符号語）内の検出される連続した不正変調符号語の数が所定の閾値量（１０個の１７ビットの変調符号語など）を超える、または前方同期パターン（所定の１７ビット・パターンなど）と再同期パターン（所定の３３ビット・パターンなど）との間のビット数がヘッダおよび４つの符号語インターリーブのサイズ（たとえば、７７７６ビット）に等しくない、または再同期パターンと後方同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズ（たとえば、７７７６ビット）に等しくない、あるいはこれらの状況の組合せ。
【００５８】
様々な実施形態によれば、ＰＬＬサイクル・スリップが、当技術分野で知られている技法により、たとえば、米国特許第７，００３，０６５号の方法を適用することによって、検出されることが可能である。また、閾値量は、Ｃ１符号の訂正能力、インターリービング係数、および変調符号語の長さによって決まる任意の好適な数であってもよい。たとえば、考慮されるＣＷＩ−４および長さ１７の変調符号については、１０個の連続した不正変調符号語が、Ｃ１符号で訂正することができない長い誤り事象を示す。さらに、当技術分野で知られている任意の技法を使用して、ＣＷＩ−４ヘッダを検出しようと試みることが可能である。７７７６ビットは、２つの同期パターン間のビット数をカウントすることに基づいて計算され、ヘッダの１２バイト、プラス、ＣＷＩ−４の４×２４０バイト、すなわち７７７６ビットになる。異なるサイズのヘッダまたは符号語インターリーブ、あるいはその両方を有する他のレイアウトについては、この７７７６ビットは、他のデータ・フォーマットを反映するように調整されてもよい。
【００５９】
操作４０６において、停止パラメータ（Ｅ２）が、ＣＷＩ−４においてＣ１符号語の長さ（Ｎ１）に等しくなるように、たとえば、Ｅ２＝Ｎ１に設定される。停止パラメータは、その後、（復号が成功すること、または不成功に終わることのいずれかにより）方法４００を停止するときを決定するために使用することができる。
【００６０】
操作４０８において、Ｃ１誤り復号が取り込まれたデータに行われる。１つの実施形態によれば、Ｃ１誤り復号は、リードバックされたＣ１符号語を有する行が不変のままである（たとえ４０４または４２０で生成された消失フラグによって決定が正しくないことが示されても、消去あるいは別の方法で変更されない）誤りおよび消失復号を含む。当然ながら、第１の反復では（または、非反復プロセスでは）、Ｃ２失敗はなく、したがってこれは未決定（moot）である。
【００６１】
操作４１０において、取り込まれたデータ上でＣ１（誤りまたは消失）復号を行った後に検出されるＣ１失敗の数（Ｆ１）がゼロに等しい、たとえばＦ１＝０かどうかが決定される。ゼロに等しい場合、方法４００は操作４１４に進み、ゼロに等しくない場合、方法４００は操作４１２に進む。
【００６２】
操作４１２において、Ｃ１失敗の数（Ｆ１）が、Ｃ２誤り訂正能力（ｔ２）の２倍マイナスＣ２復号マージン（ｍ２）よりも大きい、たとえばＦ１＞２ｔ２−ｍ２かどうかが決定される。大きい場合、方法４００は操作４２０に進み、大きくない場合、方法４００は操作４１８に進む。Ｃ２復号マージンは、マージンが誤り復号に使用されているか、または消失復号に使用されているかによって同じ、または異なることがある。
【００６３】
Ｃ２誤り訂正能力（ｔ２）は、特定の取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表し、Ｃ２に選択されたＲＳ符号のパラメータに応じて１、２、４、６、７、１０などの、ゼロよりも大きい値を有する整数とすることができる。Ｃ２復号マージン（ｍ２）は、自動的に設定される、またはＣ２誤り訂正能力（ｔ２）とＣ２復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。１つの実施形態では、マージンは、単にＣ２消失復号と関連していることがある、またはＣ２誤りおよび消失復号と関連していることがある。
【００６４】
操作４１４において、停止パラメータ（Ｅ２）がゼロに等しい、たとえばＥ２＝０かどうかが決定される。等しい場合、方法４００は操作４１６に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法４００は操作４２０に進む。
【００６５】
操作４１８において、Ｃ２消失復号が、（Ｃ１復号が行われた後に、またはいかなるＣ１復号もない本来の取り込まれた形式で）取り込まれたデータに行われる。１つの実施形態によれば、Ｃ２消失復号は、Ｃ１失敗が消去される誤りおよび消失復号を含む。Ｃ１復号後にＣ２消失復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ１失敗が存在し、消失データとして扱われることになる。
【００６６】
操作４２０において、Ｃ２誤り復号が、（Ｃ１復号を行った後に、またはいかなるＣ１復号もなく本来の取り込まれた形式で）取り込まれたデータに行われる。１つの実施形態によれば、Ｃ２誤り復号は、Ｃ１失敗が不変のままである（決定が正しくないことが示されても、消去あるいは別の方法で変更されない）誤りおよび消失復号を含む。Ｃ１復号後にＣ２復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ１失敗が存在することになる。復号器は、Ｃ２復号失敗が発生した列に消失フラグを生成する。
【００６７】
操作４２２において、Ｃ１失敗の数（Ｆ１）とＣ２失敗の数（Ｆ２）の両方がゼロに等しい、たとえばＦ１＝０、かつＦ２＝０かどうかが決定される。等しい場合、方法４００は操作４２４に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法４００は操作４２６に進む。
【００６８】
操作４２６において、Ｃ２失敗の数（Ｆ２）が停止パラメータ（Ｅ２）以上である、たとえばＦ２≧Ｅ２かどうかが決定される。以上である場合、方法４００は操作４２８に進み、復号が不成功となり、誤りが回復不可能／訂正不可能であるので停止し、以上ではない場合、方法４００は停止パラメータ（Ｅ２）がＣ２失敗の数（Ｆ２）に設定される操作４３０に進む。このように、反復が単により少ないＣ２誤りに向かって収束し、発散してより多くのＣ２誤りを招く、または自然に解決することのないループ状況で行き詰まる、あるいはその両方にならないことが保証される。
【００６９】
操作４３２において、停止パラメータ（Ｅ２）がＣ１誤り訂正能力（ｔ１）の２倍マイナスＣ１復号マージン（ｍ１）以下である、たとえばＥ２≦２ｔ１−ｍ１かどうかが決定される。Ｃ１復号マージンは、マージンが誤り復号に使用されているか、消失復号に使用されているかによって、同じである、または異なることがある。
【００７０】
以下である場合、方法４００は、操作４２０からの消失フラグを使用して取り込まれたデータにＣ１消失復号を行う操作４３４に進み、以下ではない場合、方法４００は操作４０８に進んで、Ｃ１誤り復号を再び行う。１つの実施形態では、Ｃ１消失復号は、Ｃ２失敗が消失データとして扱われる誤りおよび消失復号を含む。方法４００において、最初のＣ１復号後にＣ２復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ２失敗が存在することになり、消失データとして扱われることになる。
【００７１】
Ｃ１誤り訂正能力（ｔ１）は、特定の取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、Ｃ１に選択されたＲＳ符号のパラメータに応じて、１、２、５、６、７、１０などの、ゼロよりも大きい値を有する整数とすることができる。Ｃ１復号マージン（ｍ１）は、自動的に設定される、またはＣ１誤り訂正能力（ｔ１）とＣ１復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。１つの実施形態では、マージンは、単にＣ１消失復号と関連していることがある、またはＣ１誤りおよび消失復号と関連していることがある。
【００７２】
方法４００は、操作４１６、または操作４２４、または操作４２８、あるいはこれらの組合せにおいて停止ポイントの１つに到達するまで続く。停止パラメータＥ２は、方法４００がエンドレス・ループに陥らず、限られた数の反復内で操作４１６、または操作４２４、または操作４２８、あるいはこれらの組合せにおいて停止ポイントの１つに確実に到達することを保証するように設計される。
【００７３】
１つの実施形態によれば、方法４００は、システムによって行われることが可能である。たとえば、システムは、積符号のための誤りおよび消失組合せ復号のために構成されることが可能であり、システムは、プロセッサ（ＣＰＵ、ＡＳＩＣ、ＦＰＧＡ、ＩＣなど）と、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含むことができる。論理は、ハードウェア、ソフトウェア、またはその何らかの組合せであってもよく、方法４００の１つまたは複数の操作を実行するように構成されてもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【００７４】
別の実施形態では、コンピュータ・プログラム製品が、積符号のための誤りおよび消失組合せ復号のために設計されてもよく、このコンピュータ・プログラム製品は、プログラム・コードを包含したコンピュータ可読記憶媒体を含む。１つの実施形態では、プログラム・コードは、方法４００の１つまたは複数の操作を実行するために、テープ・ドライブ、プロセッサなどのデバイスによって読取り可能、または実行可能、あるいはその両方であってもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【００７５】
図５を参照すると、積符号のための誤りおよび消失組合せ復号のための方法５００のフローチャートが、１つの実施形態により示されている。方法５００は、様々な実施形態で、特に図１〜３に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、図５に詳細に説明する操作よりも多くの操作または少ない操作が、方法５００に含まれることがある。１つの手法では、方法５００は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【００７６】
方法５００のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法５００は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなどのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【００７７】
図５に示すように、方法５００は、取り込まれるデータが受け取られる操作５０２で始まることができる。データは、磁気テープ、光ドライブ、光通信ファイバなど、任意の好適な記憶媒体から取り込まれてもよい。取り込まれるデータは、その記憶または伝送あるいはその両方のために積符号（Ｃ１／Ｃ２）ですでに符号化されている、１つまたは複数のデータ・チャネルから受け取られるデータである。
【００７８】
動作５０４では、信頼できないデータまたは欠けているデータ、あるいはその両方を有する行を示す消失フラグが、取り込まれたデータに対して生成され、Ｃ２復号器に提供される。各消失フラグが、誤りバースト状況（長いバーストの誤り）など、消失復号を使用してよりよく回復される、観察された、または予想された状況により（誤り復号では放置されるのに対して）消失復号中に消去されるとして扱われることになる取り込まれたデータの部分に対応する。
【００７９】
１つの実施形態によれば、消失フラグは、長い誤りバーストを示している次の状況のいずれかに基づいて生成されることがある：符号語インターリーブ（インターリーブされた４つの符号語を含むＣＷＩ−４など）のヘッダが検出されないもしくは欠けている、またはＰＬＬサイクル・スリップが検出される、または変調復号器の出力におけるＣＷＩ−４（もしくはＣ１符号語）内の検出される連続した不正変調符号語の数が所定の閾値量を超える、または前方同期パターンと再同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズ（たとえば、７７７６ビット）に等しくない、または再同期パターンと後方同期パターンとの間のビット数が、ヘッダおよび４つの符号語インターリーブのサイズ（たとえば、７７７６ビット）に等しくない、あるいはこれらの組合せ。
【００８０】
様々な実施形態によれば、ＰＬＬサイクル・スリップが、当技術分野で知られている任意の技法により検出されることが可能である。さらに、当技術分野で知られている任意の技法を使用して、ＣＷＩ−４ヘッダを検出しようと試みることが可能である。７７７６ビットは、２つの同期パターン間のビット数をカウントすることに基づいて計算され、ヘッダの１２バイト、プラス、ＣＷＩ−４の４×２４０バイト、すなわち７７７６ビットになる。異なるサイズのヘッダまたは符号語インターリーブ、あるいはその両方を有する他のレイアウトについては、この７７７６ビットは、他のデータ・フォーマットを反映するように調整されてもよい。
【００８１】
操作５０６において、停止パラメータ（Ｅ２）が、ＣＷＩ−４においてＣ１符号語の長さ（Ｎ１）に等しくなるように、たとえばＥ２＝Ｎ１に設定される。停止パラメータは、その後、（復号が成功すること、または不成功に終わることのいずれかにより）方法５００を停止するときを決定するために使用することができる。
【００８２】
操作５０８において、Ｃ１誤り復号が取り込まれたデータに行われる。１つの実施形態によれば、Ｃ１誤り復号は、リードバックされたＣ１符号語を有する行が不変のままである（たとえ消失フラグによって決定が正しくないことが示されても、消去あるいは別の方法で変更されない）誤りおよび消失復号を含む。
【００８３】
操作５１０において、取り込まれたデータ上でＣ１（誤りまたは消失）復号を行った後に検出されるＣ１失敗の数（Ｆ１）がゼロに等しい、たとえばＦ１＝０かどうかが決定される。等しい場合、方法５００は操作５１８に進み、等しくない場合、方法５００は操作５１２に進む。
【００８４】
操作５１２において、Ｃ１失敗の数（Ｆ１）が、Ｃ２誤り訂正能力（ｔ２）の２倍マイナスＣ２復号マージン（ｍ２）よりも大きい、たとえばＦ１＞２ｔ２−ｍ２かどうかが決定される。大きい場合、方法５００は操作５１６に進み、大きくない場合、方法５００は操作５１４に進む。
【００８５】
Ｃ２誤り訂正能力（ｔ２）は、特定の取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表し、Ｃ２に選択されたＲＳ符号のパラメータに応じて１、２、５、６、７、１０などの、ゼロよりも大きい値を有する整数とすることができる。Ｃ２復号マージン（ｍ２）は、自動的に設定される、またはＣ２誤り訂正能力（ｔ２）とＣ２復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。１つの実施形態では、マージンは、単にＣ２消失復号と関連していることがある、またはＣ２誤りおよび消失復号と関連していることがある。
【００８６】
操作５１４において、Ｃ２消失復号が、（Ｃ１復号を行った後に、またはいかなるＣ１復号もなく本来の取り込まれた形式で）取り込まれたデータに行われる。１つの実施形態によれば、Ｃ２消失復号は、Ｃ１失敗が消去される誤りおよび消失復号を含む。Ｃ１復号後にＣ２消失復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ１失敗が存在することになり、消失データとして扱われることになる。
【００８７】
操作５１６において、Ｃ２誤り復号が、（Ｃ１復号を行った後に、またはいかなるＣ１復号もなく本来の取り込まれた形式で）取り込まれたデータに行われる。１つの実施形態によれば、Ｃ２誤り復号は、Ｃ１失敗が不変のままである（決定が正しくないことが示されても、消去あるいは別の方法で変更されない）誤りおよび消失復号を含む。Ｃ１復号後にＣ２復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ１失敗が存在することになる。復号器は、Ｃ２復号失敗が発生した列に消失フラグを生成する。
【００８８】
操作５２０において、Ｃ２失敗の数（Ｆ２）がゼロに等しい、たとえばＦ２＝０かどうかが決定される。等しい場合、方法５００は操作５２２に進み、復号が成功したので、たとえば復号されたデータ中にもはや検出される誤りがないので停止し、等しくない場合、方法５００は操作５２４に進む。
【００８９】
操作５２４において、Ｃ２失敗の数（Ｆ２）が停止パラメータ（Ｅ２）以上である、たとえばＦ２≧Ｅ２かどうかが決定される。以上である場合、方法５００は操作５２６に進み、復号が不成功となり、誤りが回復不可能／訂正不可能であるので停止し、以上ではない場合、方法５００は停止パラメータ（Ｅ２）がＣ２失敗の数（Ｆ２）に設定される操作５２８に進む。このように、反復が単により少ないＣ２誤りに向かって収束し、発散してより多くのＣ２誤りを招く、または自然に解決することのないループ状況で行き詰まる、あるいはその両方にならないことが保証される。
【００９０】
操作５３０において、停止パラメータ（Ｅ２）がＣ１誤り訂正能力（ｔ１）の２倍マイナスＣ１復号マージン（ｍ１）以下である、たとえばＥ２≦２ｔ１−ｍ１かどうかが決定される。以下である場合、方法５００は、操作５１６からの消失フラグを使用して取り込まれたデータにＣ１消失復号を行う操作５３２に進み、以下ではない場合、方法５００は操作５０８に進んで、Ｃ１誤り復号を再び行う。１つの実施形態では、Ｃ１消失復号は、Ｃ２失敗が消去される誤りおよび消失復号を含む。方法５００において、最初のＣ１復号後にＣ２消失復号が行われるとき、第１の反復において（または非反復プロセスにおいて）さえも、（ｎｏｎｅが検出されない限り）Ｃ２失敗が存在することになり、消失データとして扱われることになる。
【００９１】
Ｃ１誤り訂正能力（ｔ１）は、特定の取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表し、Ｃ１に選択されたＲＳ符号のパラメータに応じて、１、２、５、６、７、１０などの、ゼロよりも大きい値を有する整数とすることができる。Ｃ１復号マージン（ｍ１）は、自動的に設定される、またはＣ１誤り訂正能力（ｔ１）とＣ１復号器がいくつの誤りを訂正することができるかの「より安全な」概算との間にマージンを設ける管理者または他のユーザによって選択されることがある値である。１つの実施形態では、マージンは、単にＣ１消失復号と関連していることがある、またはＣ１誤りおよび消失復号と関連していることがある。
【００９２】
方法５００は、操作５１８、または操作５２２、または操作５２６、あるいはこれらの組合せにおいて停止ポイントの１つに到達するまで続く。停止パラメータＥ２は、方法５００がエンドレス・ループに陥らず、限られた数の反復内で操作５１８、または操作５２２、または操作５２６、あるいはこれらの組合せにおいて停止ポイントの１つに確実に到達することを保証するように設計される。
【００９３】
復号方法５００が、１つの実施形態により操作５１８、または操作５２２、または操作５２６、あるいはこれらの組合せにおいて停止ポイントの１つで停止するとき、復号されたデータ（積符号語）のすべての行および列が、正規の（legal）Ｃ１符号語（行）および正規のＣ２符号語（列）であるかどうかが決定されることが可能である。積符号語が正規である（許可される）とき、復号は成功であり、正規ではない場合、復号は不成功である（復号失敗）。
【００９４】
１つの実施形態によれば、方法５００は、システムによって行われることが可能である。たとえば、システムは、積符号のための誤りおよび消失組合せ復号のために構成されることが可能であり、システムは、プロセッサ（ＣＰＵ、ＡＳＩＣ、ＦＰＧＡ、ＩＣなど）と、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方の論理とを含むことができる。論理は、ハードウェア、ソフトウェア、またはその何らかの組合せであってもよく、方法５００の１つまたは複数の操作を実行するように構成されてもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【００９５】
別の実施形態では、コンピュータ・プログラム製品が、積符号のための誤りおよび消失組合せ復号のために設計されてもよく、このコンピュータ・プログラム製品は、プログラム・コードを包含したコンピュータ可読記憶媒体を含む。１つの実施形態では、プログラム・コードは、方法５００の１つまたは複数の操作を実行するために、テープ・ドライブ、プロセッサなどのデバイスによって読取り可能、または実行可能、あるいはその両方であってもよく、様々な手法で、本明細書には詳細に記載していないさらなる機能を行うように構成されてもよい。
【００９６】
積符号の反復復号が、当技術分野において知られているが、これは、特定の消失および誤り復号スケジュールを使用して行われてこなかった。たとえば、米国特許第８，０４６，６６０号が、不揮発性メモリのための積符号復号器について記載する。この復号器は、１次元符号語および２次元符号語を復号する。第１の復号器が１次元符号語の１つに誤りを検出するとき、その１次元符号語は、消失としてマーク付けされる。第２の復号器が、この消失に基づいて２次元符号語の１つに別の誤りを検出する。第１および第２の符号器は、１次元符号語および２次元符号語中の他の誤りを決定するために、符号語を反復して復号する。
【００９７】
しかしながら、米国特許第８，０４６，６６０号は、特定の復号スケジュールを開示せず、むしろ、積符号の標準的な反復誤りおよび消失復号に限られている。詳細には、これは、有限数の反復のうちに完了することを保証される、誤りおよび消失復号を使用する復号スケジュールを教示していない。さらに、米国特許第８，０４６，６６０号は、チャネル側の情報に基づく、Ｃ２復号器のための最初の消失フラグ付けを考慮しない。
【００９８】
図６を参照すると、積符号のための誤りおよび消失組合せ復号のための方法６００のフローチャートが、１つの実施形態により示されている。方法６００は、様々な実施形態で、特に図１〜３に示す環境のいずれかにおいて、本発明に従って行われることが可能である。当然ながら、この説明を読むと当業者には理解されるように、図６に詳細に説明する操作よりも多くの操作または少ない操作が、方法６００に含まれることがある。１つの手法では、方法６００は、テープ媒体からのデータを復号するために使用されてもよく、テープ媒体は、当技術分野で知られているいかなる好適な磁気データ記憶テープであってもよい。
【００９９】
方法６００のステップのそれぞれは、動作環境の任意の好適な構成要素によって行われてもよい。たとえば、様々な非限定的な実施形態において、方法６００は、部分的にまたは全体的に、テープ・ドライブ、光ドライブ、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなどのプロセッサによって行われることがあり、プロセッサは、システム、装置、ドライブ、ストレージ・デバイスなどに組み込まれる、またはこれらの中で動作する、あるいはその両方であってもよく、プロセッサで組み込まれる、またはプロセッサがアクセスできる、あるいはその両方の論理を有してもよい。
【０１００】
図６に示すように、方法６００は、取り込まれるデータが受け取られる操作６０２で始まることができる。その後、操作６０４において、取り込まれたデータに対して消失フラグが生成され、Ｃ２復号器に提供される。次に、操作６０６において、取り込まれたデータを符号化するために使用される符号語インターリーブでＣ１符号語の長さに等しくなるように、停止パラメータが設定される。最後に、操作６０８において、復号が成功する、または不成功に終わるまで、誤りまたは消失Ｃ１復号、その後に続く誤りまたは消失Ｃ２復号が、選択的に行われる。
【０１０１】
１つの実施形態によれば、各消失フラグが、観察されたまたは計算された状況により、消失復号中に消去されるとして扱われることになる、取り込まれたデータの一部に対応することができる。これらの観察されたまたは計算された状況は、取り込まれたデータにバーストの誤りが発生したことを示すことができるいかなる状況も含むことができる。様々な実施形態によれば、観察されたまたは計算された状況は、以下の少なくとも１つを含むことができる：符号語インターリーブのヘッダが検出されない、ＰＬＬサイクル・スリップの検出、変調復号器の出力における符号語インターリーブまたはＣ１符号語内の検出される連続した不正な変調符号語の数が所定の閾値量を超える、前方同期パターンと再同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくない、および再同期パターンと後方同期パターンとの間のビット数がヘッダおよび４つの符号語インターリーブのサイズに等しくない。
【０１０２】
別の実施形態によれば、反復プロセスは、第１の反復で、および停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、取り込まれたデータにＣ１誤り復号を行い、以下ではない場合、取り込まれたデータにＣ１消失復号を行うことと、Ｃ１復号を行った後、Ｃ１失敗の数がゼロに等しく、停止パラメータがゼロに等しいとき、復号が成功であると決定することと、Ｃ１失敗の数がＣ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、取り込まれたデータにＣ２誤り復号を行うことと、停止パラメータがゼロに等しくない、またはＣ１失敗の数がＣ２誤り訂正能力の２倍マイナスＣ２復号マージン以下であり、ゼロよりも大きいとき、Ｃ１復号を行った後、取り込まれたデータにＣ２消失復号を行うことと、Ｃ２失敗の数とＣ１失敗の数の両方がゼロに等しいとき、Ｃ２復号を行った後、復号が成功であると決定することと、Ｃ２失敗の数が停止パラメータ以上であるとき、Ｃ２復号を行った後、復号が不成功であると決定し、以上ではない場合、Ｃ２失敗の数に等しく停止パラメータを設定することとを含むことができる。
【０１０３】
別の実施形態では、反復プロセスは、第１の反復で、および停止パラメータがＣ１誤り訂正能力の２倍マイナスＣ１復号マージン以下であるとき、取り込まれたデータにＣ１誤り復号を行い、以下ではない場合、取り込まれたデータにＣ１消失復号を行うことと、Ｃ１失敗の数がゼロに等しいとき、復号を停止し、符号語チェックを行うことと、Ｃ１失敗の数がＣ２誤り訂正能力の２倍マイナスＣ２復号マージンよりも大きいとき、Ｃ１復号を行った後、取り込まれたデータにＣ２誤り復号を行い、大きくない場合、Ｃ１復号を行った後、取り込まれたデータにＣ２消失復号を行うことと、Ｃ２失敗の数がゼロに等しいとき、Ｃ２復号を行った後、復号を停止することと、Ｃ２失敗の数が停止パラメータ以上であるとき、Ｃ２復号を行った後、復号が不成功であると決定し、以上ではない場合、Ｃ２失敗の数に等しく停止パラメータを設定することとを含むことができる。符号語チェックは、すべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であると決定することを含むことができ、したがってすべてのＣ１符号語が正規であり、すべてのＣ２符号語が正規であるとき復号は成功であり、そうではない場合、復号は不成功である。
【０１０４】
さらなる実施形態では、Ｃ１誤り訂正能力は、取り込まれたデータで積符号を使用して訂正可能であるＣ１誤りの数を表すことができ、Ｃ２誤り訂正能力は、取り込まれたデータで積符号を使用して訂正可能であるＣ２誤りの数を表すことができる。
【０１０５】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、（１つまたは複数の）指定された論理機能を実施するための１つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。またいくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに留意されたい。たとえば、連続して示した２つのブロックは、実際には実質的に同時に行われることがある、またはこの２つのブロックは、関連する機能に応じて、時には逆の順序で行われることがある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う特殊用途ハードウェア・ベースのシステム、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって実行されることが可能であることに注意されたい。
【０１０６】
様々な実施形態について上述したが、これらを単に例として、限定ではなく提示したことを理解すべきである。したがって、本発明の実施形態の広さおよび範囲は、上述の例示的実施形態のいずれによっても限定されるべきではなく、単に添付の特許請求の範囲およびその均等物に従って定められるべきである。
【図１】
0006415557.tif 000002
【図２】
0006415557.tif 000003
【図３】
0006415557.tif 000004
【図４】
0006415557.tif 000005
【図５】
0006415557.tif 000006
【図６】
0006415557.tif 000007