(57)【要約】【課題】積符号語のためのダイアグノスティクスを伴う復号後エラーチェックを行うシステム、方法、およびコンピュータ・プログラムを提供する。【解決手段】一実施態様において、システムはコントローラおよびこのコントローラに統合されるかもしくはこのコントローラにより実行可能であるかまたはその両方であるロジックを含む。ロジックは、符号化済みデータに対して反復復号を行って復号済みデータを得るように構成される。反復復号では少なくとも３つの復号操作が行われ、それらの復号操作は、Ｃ１復号およびＣ２復号を含む群から選択される。ロジックは、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られていないことに応答して、その第１部分に対して復号後エラー・ダイアグノスティクスを行うようにも構成される。復号後エラー・シグネチャを生成するための他のシステム、方法、およびコンピュータ・プログラムが他の実施態様において提示される。【選択図】図１３
2019503603.tif 000002
【特許請求の範囲】
【請求項１】
コントローラと、前記コントローラに統合されもしくは前記コントローラにより実行可能でありまたはその両方であるロジックとを含むシステムであって、前記ロジックは、
復号済みデータを得るために符号化済みデータに対して反復復号を実施し、ここで、少なくとも３つの復号操作が前記反復復号において実施され、前記復号操作はＣ１復号およびＣ２復号を含む群から選択され、
前記符号化済みデータの前記反復復号後に前記復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを実行する、ように構成される、
システム。
【請求項２】
前記ロジックは、前記符号化済みデータの前記反復復号において少なくとも１つの復号操作後に、前記復号済みデータの第２部分において有効な積符号語が得られたことに応答して、前記第２部分を出力するようにさらに構成される、請求項１に記載のシステム。
【請求項３】
前記復号操作は、最初のＣ１復号と、その次のＣ２復号と、その次の再度のＣ１復号とを含む、請求項１に記載のシステム。
【請求項４】
前記復号操作は、最初のＣ２復号と、その次のＣ１復号と、その次の再度のＣ２復号とを含む、請求項１に記載のシステム。
【請求項５】
前記復号済みデータに対して復号後エラー・ダイアグノスティクスを実施するように構成されている前記ロジックは、前記復号済みデータにおけるエラー・シグネチャを特定するようにさらに構成される、請求項１に記載のシステム。
【請求項６】
前記復号済みデータにおける前記エラー・シグネチャを特定するように構成された前記ロジックは、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を得、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出された前記復号済みデータ内のＣ１符号語の数（Ｄ）を得、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出された前記復号済みデータ内のＣ１符号語の数（Ｍ）を得る
ようにさらに構成される、
請求項５に記載のシステム。
【請求項７】
前記ロジックは前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、ならびに前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義するようにさらに構成される、請求項６に記載のシステム。
【請求項８】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項７に記載のシステム。
【請求項９】
コントローラで実施される方法であって、前記方法は、
復号済みデータを得るために符号化済みデータに対して反復復号を実施するステップであって、少なくとも３つの復号操作が前記反復復号において実施され、前記復号操作はＣ１復号およびＣ２復号を含む群から選択される、前記反復復号を実施するステップ、および
前記符号化済みデータの前記反復復号後に前記復号済みデータの第１部分において有効な積符号語が得られていないことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを実施するステップ、
を含む、方法。
【請求項１０】
前記符号化済みデータの前記反復復号の少なくとも１つの復号操作の後に前記復号済みデータの第２部分において有効な積符号語が得られていることに応答して、前記第２部分を出力するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記復号操作は、最初のＣ１復号と、その次のＣ２復号と、その次の再度のＣ１復号とを含む、請求項９に記載の方法。
【請求項１２】
前記復号操作は、最初のＣ２復号と、その次のＣ１復号と、その次の再度のＣ２復号とを含む、請求項９に記載の方法。
【請求項１３】
前記復号済みデータに対して前記復号後エラー・ダイアグノスティクスを実施する前記ステップは前記復号済みデータにおいてエラー・シグネチャを特定するステップを含む、請求項９に記載の方法。
【請求項１４】
前記復号済みデータにおいてエラー・シグネチャを特定する前記ステップは、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得るステップ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を得るステップ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得るステップ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｄ）を得るステップ、および
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｍ）を得るステップ、
を含む、請求項１３に記載の方法。
【請求項１５】
前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、および前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義するステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項１５に記載の方法。
【請求項１７】
コンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令がコンピュータ可読記憶媒体を用いて具現化される前記コンピュータ可読記憶媒体を含み、前記具現化されるプログラム命令は、コントローラにより実行可能であって前記コントローラに、復号済みデータを得るために符号化済みデータに対して反復復号を前記コントローラにより実行させ、ここで前記反復復号において少なくとも３つの復号操作が行われ、前記復号操作はＣ１復号およびＣ２復号を含む群から選択され、かつ、前記符号化済みデータの前記反復復号後に、前記復号済みデータの第１部分において有効な積符号語を得られていないことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを前記コントローラにより行わせる、コンピュータ・プログラム製品。
【請求項１８】
前記具現化されるプログラム命令は前記コントローラによりさらに実行可能であって前記コントローラに、前記符号化済みデータの前記反復復号の少なくとも１つの復号操作の後に前記復号済みデータの第２部分において有効な積符号語が得られていることに応答して、前記第２部分を前記コントローラにより出力させる、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記復号操作は、最初のＣ１復号、その次のＣ２復号、およびその次の再度のＣ１復号を含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２０】
前記復号操作は、最初のＣ２復号、その次のＣ１復号、およびその次の再度のＣ２復号を含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２１】
前記コントローラにより実行可能であって前記コントローラに前記復号済みデータに対して復号後エラー・ダイアグノスティクスを実施させる前記具現化されるプログラム命令は、さらに、前記コントローラに前記復号済みデータにおけるエラー・シグネチャを特定させる、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２２】
前記コントローラにより実行可能であって前記コントローラに前記復号済みデータにおける前記エラー・シグネチャを特定させる前記具現化されるプログラム命令は、さらに、前記コントローラに、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得させ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２復号後の数（Ｗ’）を得させ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得させ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｄ）を得させ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｍ）を得させる、
請求項２１に記載のコンピュータ・プログラム製品。
【請求項２３】
前記具現化されるプログラム命令は前記コントローラによりさらに実行可能であって前記コントローラに前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、ならびに前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義させる、請求項２２に記載のコンピュータ・プログラム製品。
【請求項２４】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項２３に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストレージ・システムに関し、特に、積符号のためのダイアグノスティクスを伴う復号後エラー・チェックに関する。
【背景技術】
【０００２】
現在使用されているリニア・テープ・ドライブは、誤り訂正符号化（ＥＣＣ：ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｉｎｇ）のために２次元積符号を使用する。これらの積符号は、一般に、Ｃ１行符号およびＣ２列符号から成る２つの直交配置成分符号を含む。Ｃ１およびＣ２符号は、一般に、それぞれ最小ハミング距離ｄ１およびｄ２を有する線形ブロック符号であり、これらの符号は、ＧＦ（２）のガロア体（ＧＦ：Ｇａｌｏｉｓ  Ｆｉｅｌｄ）上の二進ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号などの二進（ビット・ベースの）符号またはｑビットのシンボルを有するＧＦ（Ｑ＝２ｑ）上のリード・ソロモン（ＲＳ：Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）符号などの、シンボル・アルファベット・サイズＱのシンボル・ベース符号、またはｑビットのシンボルを有するＧＦ（Ｑ＝２ｑ）上の非二進ＢＣＨ符号などであり得る。ストレージおよび伝送システムにおいては、通例Ｑ＝２（１ビット・シンボル、すなわち、二進符号）、Ｑ＝１６（４ビット・シンボル）、Ｑ＝６４（６ビット・シンボル）、Ｑ＝２５６（８ビット・シンボル）、Ｑ＝５１２（９ビット・シンボル）、Ｑ＝１０２４（１０ビット・シンボル）、またはＱ＝４０９６（１２ビット・シンボル）、などである。
【０００３】
テープ記憶装置および光学式記憶装置技術は、通例、ＲＳ符号であるＣ１およびＣ２符号を使用するが、フラッシュ・メモリおよび光通信技術は通例二進ＢＣＨ符号であるＣ１およびＣ２符号を使用する。
【０００４】
積符号を用いる復号済みデータに対してエラー訂正を行うとき、潜在的エラー発生源が幾つかある。１）１つ以上の復号エラーに起因するＥＣＣ復号器による誤訂正、２）１つ以上の復号失敗に起因するＥＣＣ復号器による復号後の未訂正エラーの残存、および３）復号の間および後にデータを記憶するために使用されるバッファもしくはメモリまたはその両方のエラー訂正における不安定性に関連するメモリ・エラー。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
積符号内の全てのＣ１行および全てのＣ２列の復号が成功することを必要とする積符号語の復号の失敗は、一時的なもしくは永久的なまたはその両方のエラーをもたらし、積符号のための復号器（場合によっては反復復号器）は有効な積符号語を生じさせない。しかし、在来のデータ記憶装置およびデータ伝送システムにおいてはそのような失敗後にダイアグノスティクスは行われない。
【課題を解決するための手段】
【０００６】
１つの態様によると、コントローラおよびこのコントローラに統合されるかもしくはこのコントローラにより実行可能であるかまたはその両方であるロジックを含むシステムが提供される。ロジックは、符号化済みデータに対して反復復号を行って復号済みデータを得るように構成される。その反復復号では少なくとも３つの復号操作が行われ、それらの復号操作は、Ｃ１復号およびＣ２復号を含む群から選択される。ロジックは、符号化済みデータの反復復号後に第１部分において有効な積符号語が得られなかったことに応答して、復号済みデータのその第１部分に対して、復号後エラー・ダイアグノスティクスを行うようにも構成される。
【０００７】
１つの態様によると、符号化済みデータに対して反復復号を行って復号済みデータを得るステップを含むコントローラで実施される方法が提供される。反復復号において少なくとも３つの復号操作が行われ、それらの復号操作は、Ｃ１復号およびＣ２復号を含む群から選択される。コントローラで実施される方法は、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、その第１部分に対して、復号後エラー・ダイアグノスティクスを行うステップも含む。
【０００８】
１つの態様では、コンピュータ・プログラムが提供される。コンピュータ・プログラムは、コントローラに、復号済みデータを得るために符号化済みデータに対して反復復号を行わせる。その反復復号において少なくとも３つの復号操作が行われ、それらの復号操作はＣ１復号およびＣ２復号を含む群から選択される。プログラムはさらに、コントローラに、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、その第１部分に対する復号後エラー・ダイアグノスティクスを行わせる。
【０００９】
本発明の他の態様および実施形態が、次の詳細な説明から明らかになる。詳細な説明は、図面とあわせて検討されたとき本発明の原理の例示となる。
【００１０】
次に、添付図面を参照して本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００１１】
【図１】１つの実施形態による、ネットワーク・ストレージ・システムを示す。
【図２】１つの実施形態による、テープ・ベースのデータ・ストレージ・システムのテープ・ドライブを簡単に示す。
【図３】１つの実施形態によるテープ・カートリッジの略図である。
【図４】１つの実施形態による、積符号を用いてデータをサブ・データ・セット（ＳＤＳ：ｓｕｂ  ｄａｔａ  ｓｅｔ）に編成するために使用され得る論理データ・アレイを示す。
【図５】図５Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じた検出済みエラーの無い積符号語を示す。図５Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じた検出済みエラーの無い積符号語を示す。
【図６】図６Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じた検出済みメモリ・エラーのある積符号語を示す。図６Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じた検出済みメモリ・エラーのある積符号語を示す。
【図７】図７Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じたチャネル・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。図７Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じたチャネル・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。
【図８】図８Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じたチャネル・シンボル・エラー、メモリ・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。図８Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じたチャネル・シンボル・エラー、メモリ・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。
【図９】図９Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じた検出済みチャネル・エラーを有する積符号語を示す。図９Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じた検出済みチャネル・エラーを有する積符号語を示す。
【図１０】図１０Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じたチャネル・エラーおよびメモリ・エラーの組み合わせを有する積符号語を示す。図１０Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じたチャネル・エラーおよびメモリ・エラーの組み合わせを有する積符号語を示す。
【図１１】図１１Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じたチャネル・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。図１１Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じたチャネル・シンボル・エラーおよび挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。
【図１２】図１２Ａは、１つの実施形態による、最後にＣ１復号操作を有する反復復号から生じたチャネル、メモリ、および挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。図１２Ｂは、１つの実施形態による、最後にＣ２復号操作を有する反復復号から生じたチャネル、メモリ、および挿入済みシンボル・エラーの組み合わせを有する積符号語を示す。
【図１３】１つの実施形態による方法のフローチャートを示す。
【図１４】１つの実施形態による方法のフローチャートを示す。
【図１５】１つの実施形態による方法のフローチャートを示す。
【図１６】１つの実施形態による方法のフローチャートを示す。
【図１７】１つの実施形態による方法のフローチャートを示す。
【図１８】１つの実施形態による方法のフローチャートを示す。
【図１９】１つの実施形態による方法のフローチャートを示す。
【図２０】１つの実施形態による方法のフローチャートを示す。
【図２１】１つの実施形態による方法のフローチャートを示す。
【図２２】１つの実施形態による方法のフローチャートを示す。
【発明を実施するための形態】
【００１２】
次の説明は、本発明の一般的原理を示す目的で行われるのであり、本明細書にて特許請求される発明概念を限定する意図は無い。さらに、本明細書に記載された特定の特徴は、可能な様々な組み合わせおよび置換の各々において、他の記載された特徴と組み合わされて使用され得る。
【００１３】
本明細書で特に別様に定義されている場合を除いて、全ての用語に、明細書から示唆される意味ならびに当業者に理解されている意味もしくは辞書、条約などで定義されている意味、またはそれらのいずれかの組み合わせの意味を含む、最大限広範な解釈が与えられるものとする。
【００１４】
明細書および添付の特許請求の範囲で用いられるとき、単数形「ａ」、「ａｎ」および「ｔｈｅ」は、別様に明示されていなければ複数の指示対象を含むということにも留意しなければならない。用語「含む（ｃｏｍｐｒｉｓｅｓ）」もしくは「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」またはその両方は、この明細書で使用されるとき、述べられた特徴、完全体（ｉｎｔｅｇｅｒ）、ステップ、操作、エレメント、もしくはコンポーネント、またはそれらのいずれかの組み合わせの存在を特定するけれども、１つ以上の他の特徴、完全体、ステップ、操作、エレメント、コンポーネント、もしくはそれらの群またはそれらのいずれかの組み合わせの存在または追加を排除しないということも理解されるであろう。本明細書で使用される「約（ａｂｏｕｔ）」という用語は、当業者に理解されるように、この用語「約」が前に付く値と、用語「約」が付く値に穏当に近い任意の値とを示す。別様に示されていなければ、「約」という用語は、この用語「約」が前に付く値±その値の１０％を示す。例えば、「約１０」は、両端を含めて９．０から１１．０の全ての値を示す。
【００１５】
次の記載は、積符号語に対して復号後エラー・ダイアグノスティクスを行うためのシステム、方法、およびコンピュータ・プログラム製品を開示する。エラー・ダイアグノスティクスは、復号中に復号失敗に起因して、復号中に誤訂正に起因して、およびデータがメモリに記憶されている間のデータ・ストレージに際して、生じる種々のタイプのエラーを特定することができる。
【００１６】
エラーが生じるとき、可能ならば、すなわち復号後エラー・ダイアグノスティクスを行うために、復号後エラー・タイプおよびエラー位置を特定することが望ましい。復号済みデータに対してエラー訂正符号化（ＥＣＣ）が正しく適用されたこと、および、エラー訂正が適用された後にＥＣＣバッファまたはメモリに何らかのエラーが導入されていないこと、をベリファイするように構成されたシステム、方法、およびコンピュータ・プログラム製品が、種々の実施形態によって本明細書に記載される。特定の実施形態で積符号を復号した後に残存しているエラーのタイプを特定するように構成された数個のアルゴリズムも記載される。
【００１７】
１つの一般的な実施形態において、システムは、コントローラおよびこのコントローラに統合されるかもしくはこのコントローラにより実行可能であるかまたはその両方であるロジックを含む。ロジックは、符号化済みデータに対して反復復号を行って復号済みデータを得るように構成される。その反復復号では少なくとも３つの復号操作が行われ、それらの復号操作は、Ｃ１復号およびＣ２復号を含む群から選択される。ロジックは、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、その第１部分に対して復号後エラー・ダイアグノスティクスを行うようにも構成される。
【００１８】
別の一般的な実施形態では、コントローラで実施される方法は、符号化済みデータに対して反復復号を行って復号済みデータを得ることを含む。反復復号において少なくとも３つの復号操作が行われ、それらの復号操作は、Ｃ１復号およびＣ２復号を含む群から選択される。コントローラで実施される方法は、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、その第１部分に対して復号後エラー・ダイアグノスティクスを行うことも含む。
【００１９】
別の一般的な実施形態においては、コンピュータ・プログラムは、コントローラに、復号済みデータを得るために符号化済みデータに対して反復復号を行わせる。その反復復号において少なくとも３つの復号操作が行われ、それらの復号操作はＣ１復号およびＣ２復号を含む群から選択される。プログラムはさらに、コントローラに、符号化済みデータの反復復号後に復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、その第１部分に対する復号後エラー・ダイアグノスティクスを行わせる。
【００２０】
ここで図１を参照すると、１つの実施形態による、ネットワーク・ストレージ・システム１０の略図が示されている。このネットワーク・ストレージ・システム１０は、適切なストレージ・システムの単なる一例に過ぎず、本明細書に記載された発明の実施形態の用途や機能性の範囲に関して限定を示唆するように意図してはいない。それでも、ネットワーク・ストレージ・システム１０は、実装されることができ、もしくは叙上で明らかにされた機能性のいずれかを実施することができ、またはその両方をすることができる。
【００２１】
ネットワーク・ストレージ・システム１０において、コンピュータ・システム／サーバ１２があり、これは他の多数の汎用もしくは特殊目的コンピューティング・システム環境または構成で動作し得る。コンピュータ・システム／サーバ１２とともに使用するのに適し得る周知のコンピューティング・システム、環境もしくは構成またはそれらのいずれかの組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、それらに限定はされない。
【００２２】
コンピュータ・システム／サーバ１２は、コンピュータ・システムにより実行されるプログラム・モジュールなどのコンピュータ・システム実行可能な命令の一般的文脈において記載され得る。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定のアブストラクト・データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム／サーバ１２は、通信ネットワークを通して連結されるリモート処理デバイスによりタスクが実施される分散型クラウド・コンピューティング環境で実践され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置され得る。
【００２３】
図１に示すように、ネットワーク・ストレージ・システム１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合させるバス１８を含み得るが、それらに限定はされない。
【００２４】
バス１８は、メモリ・バスもしくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィクス・ポート、および、種々のバス・アーキテクチャのうちのいずれかを使用するプロセッサもしくはローカル・バスを含む種々のタイプのバス構造のうちの１つ以上のいずれかを表す。限定をせずに例を挙げると、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、エンハンストＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００２５】
コンピュータ・システム／サーバ１２は、通例、種々のコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２がアクセスできる任意の利用可能な媒体であり得、揮発性および不揮発性の両方の媒体、リムーバブルおよび非リムーバブルの媒体を含む。
【００２６】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）３０もしくはキャッシュ・メモリ３２またはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ１２は、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ・システム・ストレージ媒体をさらに含み得る。単に例を挙げると、ストレージ・システム３４は、ＨＤＤで操作され得る、図示されていなくて通例「ハード・ディスク」と称される非リムーバブルな不揮発性磁気媒体に対して読み出しおよび書き込みを行うために、設けられ得る。図示されてはいないが、リムーバブルな不揮発性磁気ディスク（例えば、「フレキシブルディスク」）に対して読み出しおよび書き込みを行うための磁気ディスク・ドライブ、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどのリムーバブルな不揮発性光ディスクまたは他の光学式媒体に対して読み出しおよび書き込みを行うための光ディスク・ドライブを設けることができる。そのような場合、各々を１つ以上のデータ媒体インターフェースによりバス１８に接続することができる。さらに図示されかつ以下で記載されるように、メモリ２８は、本明細書に記載された実施形態の機能を実行するように構成された一組（例えば少なくとも１つ）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むことができる。
【００２７】
一組（少なくとも１つ）のプログラム・モジュール４２を有するプログラム／ユーティリティ４０は、オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同じく、限定ではなく例として、メモリ２８に記憶され得る。オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装を含み得る。プログラム・モジュール４２は、一般に、本明細書に記載された発明の実施形態の機能もしくは方法論またはその両方を実行する。
【００２８】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つ以上の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２とインタラクトすることを可能にする１つ以上のデバイス、もしくはコンピュータ・システム／サーバ１２が１つ以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、またはそれらのいずれかの組み合わせと通信することもできる。そのような通信は、入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェース２２を介して行われ得る。さらに、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般的ワイド・エリア・ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくは公衆ネットワーク（例えば、インターネット）またはそれらのいずれかの組み合わせなどの１つ以上のネットワークと通信することができる。図示のように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されてはいないが、コンピュータ・システム／サーバ１２と関連して他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方を使用し得ることが理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、独立ディスクの冗長アレイ（ＲＡＩＤ：ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）システム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどを含むが、それらに限定はされない。
【００２９】
図２はテープ・ベースのデータ・ストレージ・システムのテープ・ドライブ１００を簡単に示しており、これは本発明の文脈において使用され得る。テープ・ドライブの１つの特定の実装が図２に示されているが、本明細書に記載された実施形態は任意のタイプのテープ・ドライブ・システムの文脈において実装され得ることに留意するべきである。
【００３０】
図示されているように、テープ１２２を支持するためテープ供給カートリッジ１２０および巻取りリール１２１が設けられている。これらのリールのうちの１つ以上は、リムーバブル・カートリッジの一部を形成することができ、必ずしもテープ・ドライブ１００の一部ではない。図２に示されているようなテープ・ドライブは、テープ１２２を任意のタイプのテープ・ヘッド１２６上を移動させるためにテープ供給カートリッジ１２０および巻取りリール１２１を駆動する駆動モータ（単数または複数）をさらに含み得る。そのようなヘッドは、リーダ、ライタまたはその両方のアレイを含み得る。
【００３１】
ガイド１２５は、テープ１２２を案内してテープ・ヘッド１２６を横断させる。このようなテープ・ヘッド１２６は、ケーブル１３０を介してコントローラ１２８に結合される。コントローラ１２８は、テープ・ドライブ１００の任意のサブシステムを制御するためのプロセッサもしくは任意のロジックまたはその両方であり得、あるいはそれらを含み得る。例えば、コントローラ１２８は、通例、サーボ追従、データ書き込み、データ読み出しなどのヘッド機能を制御する。コントローラ１２８は少なくとも１つのサーボ・チャネルおよび少なくとも１つのデータ・チャネルを含むことができ、それらのチャネルは各々、テープ１２２に書き込まれもしくはテープ１２２から読み出されまたはその両方が行われるべき情報を処理しもしくは記憶しまたはその両方を行うように構成されたデータ・フロー処理ロジックを含む。コントローラ１２８は、当該技術において知られているロジックならびに本明細書で開示される任意のロジックの下で動作することができ、従って、種々の実施形態において、本明細書に含まれるテープ・ドライブについての任意の記述についてプロセッサと見なされ得る。コントローラ１２８は、任意の既知タイプのメモリ１３６に結合され得、このメモリはコントローラ１２８によって実行可能な命令を記憶することができる。さらに、コントローラ１２８は、本明細書で提示される方法論のうちの幾つかまたは全部を実施または制御するように構成され得るかもしくはプログラマブルであり得るか、またはその両方であり得る。従って、コントローラ１２８は、１つ以上のチップ、モジュールもしくはブロックまたはそれらのいずれかの組み合わせにプログラムされたロジック、ソフトウェア、ファームウェア、もしくは１つ以上のプロセッサが利用し得る他の命令またはそれらのいずれかの組み合わせ、など、およびそれらの組み合わせによって種々の操作を行うように構成されるべきであると考えられ得る。
【００３２】
ケーブル１３０は、テープ１２２に記録されるべきデータをヘッド１２６に送信するとともにテープ１２２からヘッド１２６により読み出されたデータを受信する読み出し／書き込み回路を含み得る。アクチュエータ１３２は、テープ１２２に対するヘッド１２６の位置を制御する。
【００３３】
すべて当業者に理解されるように、テープ・ドライブ１００およびホスト（内部または外部）の間でデータを送受信する通信のために、かつテープ・ドライブ１００の動作を制御しテープ・ドライブ１００のステータスをホストに伝えるために、インターフェース１３４も設けることができる。
【００３４】
図３は、１つの実施形態による例示的テープ・カートリッジ１５０を示す。そのようなテープ・カートリッジ１５０は、図２に示されているようなシステムとともに使用され得る。図示されているように、テープ・カートリッジ１５０は、ハウジング１５２、ハウジング１５２内のテープ１２２、およびハウジング１５２に結合された不揮発性メモリ１５６を含む。幾つかのアプローチでは、不揮発性メモリ１５６は、図３に示されているように、ハウジング１５２の内部に埋め込まれ得る。他のアプローチでは、ハウジング１５２を改変せずに不揮発性メモリ１５６をハウジング１５２の内側または外側に取り付けることができる。例えば、不揮発性メモリは、糊付きラベル１５４に埋め込まれ得る。１つの好ましい実施形態では、不揮発性メモリ１５６は、テープ・カートリッジ１５０の内側または外側に埋め込まれまたは結合されるフラッシュ・メモリ・デバイス、ＲＯＭデバイスなどであり得る。不揮発性メモリは、テープ・ドライブおよびテープ操作ソフトウェア（ドライバ・ソフトウェア）、もしくは他のデバイスまたはそれらのいずれかの組み合わせによりアクセス可能である。
【００３５】
図４は、１つの実施形態による、データをサブ・データ・セット（ＳＤＳ）に編成するために使用され得る論理的データ・アレイ４００を示す。図示されているように、このデータ・アレイは複数の行４０２および列４０４を含む。データ・アレイ４００の各行４０２は、複数のＣ１符号語を含む符号語インターリーブ（ＣＷＩ：ｃｏｄｅｗｏｒｄ  ｉｎｔｅｒｌｅａｖｅ）である。ＣＷＩが４つのインターリーブされた符号語を含むとき、そのＣＷＩはＣＷＩ−４と称される。ＳＤＳ内のデータは、Ｃ１行パリティ（これは後にデータ・アレイ４００を生成するために改変されるので図示されていない）を生成するための各行４０２におけるＣ１符号化と、Ｃ２列パリティ４０８を生成するための各列４０４におけるＣ２符号化とによって保護される。
【００３６】
図示されているように、各行４０２のためのヘッダ４０６は、Ｃ１符号化スキームを用いて、ヘッダ４０６を計算するようにＣ１パリティ（行４０２だけの中のデータについて計算された）を改変してＣ１’パリティを生成することにより符号化され得る。この実施形態では、ヘッダ４０６は１−レベルのＥＣＣ（Ｃ１’パリティ４１０のみ）により保護されるが、データは２−レベルのＥＣＣ（Ｃ１’パリティ４１０およびＣ２パリティ４０８）により保護される。
【００３７】
各データ・セットは複数のサブ・データ・セットを含み、各サブ・データ・セットは論理的２次元アレイによって表され得る。各データ・セットは複数のＳＤＳを含み、列符号化済みＳＤＳの各行（ＣＷＩ）にヘッダが割り当てられるので、通常は、単一のデータ・セットに数百のヘッダが割り当てられる。現在使用されているリニア・テープ・ドライブは、同時に最大３２のトラックを磁気テープ媒体に読み書きする。積符号のＣ１行符号語は、バイト−インターリーブ方式で磁気テープ媒体の複数の個々のトラックに書き込まれ、その後、それらの個々のトラックから同時に読み出される。
【００３８】
使用されるＥＣＣのタイプに関わらず、ＥＣＣ復号器によって誤訂正が生じているか否か判断するために、本明細書に記載されている実施形態により、ＥＣＣの現存するパワーを活用することができる。復号器のエラー訂正バッファもしくはメモリまたはその両方に発生した、デバイス自体の不安定性に起因するエラーなど、任意のエラーのタイプを判断するためにＥＣＣを使用することもできる。
【００３９】
１つの実施形態では、反復復号は３つの復号操作を含み得る。Ｃ１復号、その次のＣ２復号、およびその次の再度のＣ１復号。
【００４０】
１つの代替実施形態では、反復復号は、別の順序の３つの復号操作を含み得る。Ｃ２復号、その次のＣ１復号、およびその次の再度のＣ２復号。これらの実施形態の各々において、Ｃ１およびＣ２復号を交互にして、もっと多くの復号ステップを、最後のＣ１またはＣ２復号操作の後で、行うことができる。
【００４１】
１つの特定の実施形態では、反復復号は、２４０に等しい符号語長さ（Ｎ１）および１３に等しい最小ハミング距離（ｄ１）を有する（すなわち、Ｎ１＝２４０、ｄ１＝１３）リード・ソロモンＲＳ（２４０，２２８）符号であるＣ１符号と、１９２に等しい符号語長さ（Ｎ２）および２５に等しい最小ハミング距離（ｄ２）を有する（すなわち、Ｎ２＝１９２、ｄ２＝２５）ＲＳ（１９２，１６８）符号であるＣ２符号とを利用することができる。
【００４２】
ＥＣＣ復号器は、ストリーミング・モードで動作している間、Ｃ１−Ｃ２−Ｃ１反復復号を行い、次にＣ２シンドローム・チェックおよびＣ１シンドローム・チェックを行うように構成され得る。符号化済みデータ（これは、受け取った積符号語を含む）の復号は、復号後、個々の積符号語内の全てのＣ１符号語が許され（すなわち、全てのＣ１符号語がゼロ・シンドロームを有し、それは全てのＣ１符号語がＣ１シンドローム・チェックに合格したことと同等である）、かつ、その同じ個々の積符号語内の全てのＣ２符号語が許される（すなわち、全てのＣ２符号語がゼロ・シンドロームを有し、それは全てのＣ２符号語がＣ２シンドローム・チェックに合格したことと同等である）場合に限り、成功と見なされる。そうでなければ、復号は失敗と見なされる。
【００４３】
代替実施形態では、ＥＣＣ復号器は、ストリーミング・モードで動作している間、Ｃ２−Ｃ１−Ｃ２反復復号を行い、次にＣ１シンドローム・チェックおよびＣ２シンドローム・チェックを行うように構成され得る。復号成功の判断は上記と同じである。
【００４４】
受け取った積符号語をその中に有する符号化済みデータの復号が完了した後、エラー源がチェックされ得る。エラー源は、チャネル・エラー（復号失敗に起因する）、復号器エラーに起因する復号エラー（誤訂正に起因する）、および復号器もしくはシステムまたはその両方のバッファもしくはメモリまたはその両方（埋め込み型ダイナミック・ランダム・アクセス・メモリ（ｅＤＲＡＭ：ｅｍｂｅｄｄｅｄ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）など）におけるメモリ・エラーなどの種々の原因によるものであり得る。
【００４５】
復号後エラー・チェックは、復号に失敗した積符号語に検出された任意のエラーについて１つ以上のエラー・シグネチャを判断することを含み得る。これらのエラー・シグネチャは、ＥＣＣ復号から確認できる複数のパラメータに基づいて判断され得る。例えば、最後のＣ１復号操作後に復号済みデータに残っている任意のエラーのエラー・シグネチャは、パラメータＵ、Ｕ’、Ｗ、Ｗ’、Ｄ、Ｄ’、Ｍ、およびＭ’を用いて定義され得る。ここで、Ｕは最後のＣ１復号操作後に受け取った積符号語内の訂正不能のＣ１符号語の数（Ｃ１復号失敗）として判断され、Ｕ’は最後のＣ２復号操作後に受け取った積符号語内の訂正不能のＣ２符号語の数（Ｃ２復号失敗）として判断され、ＷはＣ１シンドローム・チェック実施後に検出された受け取った積符号語内のノンゼロ・シンドロームを有するＣ１符号語の数（無効なＣ１符号語）として判断され、Ｗ’はＣ２シンドローム・チェック実施後に検出された受け取った積符号語内のノンゼロ・シンドロームを有するＣ２符号語の数（無効なＣ２符号語）として判断され、ＤはＣ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有する受け取った積符号語内のＵ個の訂正不能Ｃ１符号語以外のＣ１符号語の数として判断され（ｄ１はＣ１符号についての最小ハミング距離である）、Ｄ’はＣ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有する受け取った積符号語内のＵ’個の訂正不能Ｃ２符号語以外のＣ２符号語の数として判断され（ｄ２はＣ２符号についての最小ハミング距離である）、ＭはＣ２エラー位置判断後に検出されたｄ１個未満のシンボル・エラーを有する復号済み積符号語内のＵ個の訂正不能Ｃ１符号語以外のＣ１符号語の数として判断され、Ｍ’はＣ１エラー位置判断後に検出されたｄ２個未満のシンボル・エラーを有する復号済み積符号語内のＵ’個の訂正不能Ｃ２符号語以外のＣ２符号語の数として判断される。Ｃ１およびＣ２エラー位置は、鍵方程式を解くことによってシンドローム多項式から求められ得る。例えば、Ｃ１復号器およびＣ２復号器において鍵方程式を解くためにユークリッドの互除法を使用することができる。
【００４６】
複数のエラー・シグネチャは、Ｃ１復号が最後に行われる復号シーケンスについて以下の表１に示すように二進３組により表され得る。各組（Ｓ）はＳ＝［ｃｄｍ］として定義される。ｃ、ｄ、およびｍの値は次の通りに設定される。Ｕ＝０に応答してｃ＝０、およびＣ１復号後のチャネル・エラーの存在を意味するＵ＞０に応答してｃ＝１、Ｄ＝０に応答してｄ＝０、およびＣ１復号器エラー（誤訂正）の存在を意味するＤ＞０に応答してｄ＝１、ならびにＭ＝０に応答してｍ＝０、およびメモリ・エラーの存在を意味するＭ＞０に応答してｍ＝１。
【００４７】
【表１】
2019503603.tif 000003
【００４８】
別の複数のエラー・シグネチャは、Ｃ２復号が最後に行われた復号シーケンスについて下記の表２に示すように、二進３組により表され得る。各組（Ｓ’）はＳ’＝［ｃ’ｄ’ｍ’］により定義される。ｃ’、ｄ’、およびｍ’の値は次のように設定される。Ｕ’＝０に応答してｃ’＝０、およびＣ２復号後のチャネル・エラーの存在を意味するＵ’＞０に応答してｃ’＝１、Ｄ’＝０に応答してｄ’＝０、およびＣ２復号器エラー（誤訂正）の存在を意味するＤ’＞０に応答してｄ’＝１、ならびにＭ’＝０に応答してｍ’＝０、およびメモリ・エラーの存在を意味するＭ’＞０に応答してｍ’＝１。
【００４９】
【表２】
2019503603.tif 000004
【００５０】
本記載を読めば当業者にとっては明らかとなるように、より多くのまたはより少ないタイプのエラーを定義し、それらを復号済みデータにおいて特定することができる。さらに、組は、例えば二進２組、二進４組など、復号済みデータにおいて診断されるべきエラー・タイプに対応するより多くのまたはより少ないエントリを持つことができる。
【００５１】
図５Ａ〜１２Ｂにおいて、本明細書における記載のために、各図に示されている復号済み積符号語を作るために使用される積符号はｄ１＝５を有するＲＳ（Ｎ１、Ｋ１）Ｃ１符号とｄ２＝５のＧＦ（２５６）上のＲＳ（Ｎ２、Ｋ２）Ｃ２符号とに基づき得るということが仮定され得る。無論、他の任意の適切な積符号を使用することができ、この積符号は、単に説明の便宜上選択され、本明細書に記載された実施形態と関連して使用され得る積符号に対して何らの限定をもなさない。
【００５２】
さらに、図５Ａ〜１２Ｂにおいてもたらされる復号済み積符号語についての記載は、それぞれ最小ハミング距離ｄ１およびｄ２を有する任意の線形ブロック符号、ＧＦ（Ｑ）上のＣ１およびＧＦ（Ｑ）上のＣ２、に対して当てはまり得る。
【００５３】
ここで図５Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果に従って復号済み積符号語５００が示されている。復号済み積符号語５００はＮ１個の列とＮ２個の行とを有し、２次元Ｎ１×Ｎ２積符号語となっている。
【００５４】
復号済み積符号語５００において、その中の全てのシンボルがエラー無しで復号されたか、または、この復号済み積符号語５００を生成した反復復号の間に訂正され得たので、検出可能なエラーは存在しない。この積符号語５００の中の複数のシンボルのうちの幾つかは不正確に復号された（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるけれども、反復復号はそのようなエラーを検出することはできなかったので、これは有効な積符号語である。
【００５５】
１つの例示的実施形態では、上記の積符号語を仮定すると、復号済み積符号５００において、Ｓ＝［０００］のエラー・シグネチャについてＵ＝０、Ｗ’＝０、およびＭ＝０である。このことは復号済み積符号５００の全てのＣ１符号語およびＣ２符号語が許される符号語であることの結果であり、従って、未訂正Ｃ１符号語は無く（Ｕ＝０）、全てのＣ２符号語のシンドロームはゼロである（Ｗ’＝０）。さらに、ｅＤＲＡＭまたは他の何らかの適切なバッファ・メモリなどのバッファ・メモリにおいてメモリ・エラーは検出されない（Ｍ＝０）。
【００５６】
図５Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語５５０を示す。復号済み積符号語５５０はＮ２個の列とＮ１個の行とを有し、２次元Ｎ２×Ｎ１積符号語となっている。復号済み積符号語５５０の全てのＣ１符号語およびＣ２符号語は許される符号語であり、従って、未訂正Ｃ２符号語は無く（Ｕ’＝０）、全てのＣ１符号語のシンドロームはゼロ（Ｗ＝０）であるので、復号済み積符号語５５０においてはＳ’＝［０００］のエラー・シグネチャについてＵ’＝０、Ｗ＝０、Ｍ’＝０、である。さらに、ｅＤＲＡＭまたは他の何らかの適切なバッファ・メモリなどのバッファ・メモリにおいてメモリ・エラーは検出されない（Ｍ’＝０）。
【００５７】
図６Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語６００が示されている。復号済み積符号語６００において、１つの検出可能なエラー、バッファ・メモリにおけるそのメモリ・シンボル・エラーと関連するシンボルの不正確なストレージに起因するメモリ・シンボル・エラー（ｅ）、が存在する。この積符号語６００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、そのメモリ・システム・エラーの故に、この積符号語は有効な積符号語ではない。
【００５８】
復号済み積符号語６００においては、未訂正Ｃ１符号語は無く（Ｕ＝０）、復号済み積符号語６００において唯一のＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝１）、復号済み積符号語６００においてＣ１符号語のうちの１つがノンゼロ・シンドロームを有し（Ｗ＝１）、Ｕ以外の１つのＣ１符号語がｄ１個未満のシンボル・エラーを有するためにメモリ・エラーが検出されるので（Ｍ＝１）、Ｓ＝［００１］のエラー・シグネチャについてＵ＝０、Ｗ’＝１、Ｗ＝１、Ｍ＝１である。
【００５９】
図６Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語６５０を示す。未訂正Ｃ２符号語は無く（Ｕ’＝０）、復号済み積符号語６５０において唯一のＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝１）、復号済み積符号語６５０においてＣ１符号語のうちの１つがノンゼロ・シンドロームを有し（Ｗ＝１）、Ｕ’以外の１つのＣ２符号語がｄ２個未満のシンボル・エラーを有するためにメモリ・エラーが検出されるので（Ｍ’＝１）、この復号済み積符号語６５０についてのエラー・シグネチャはＵ’＝０、Ｗ＝１、Ｗ’＝１、およびＭ’＝１からもたらされるＳ’＝［００１］であろう。
【００６０】
ここで図７Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語７００が示されている。復号済み積符号語７００においては、Ｃ１復号の前のチャネル・シンボル・エラー（ｘ）、およびＣ１復号器エラーに起因して挿入されたシンボル・エラー（ｏ）を含む数個のエラーが同じＣ１符号語に存在する。この積符号語７００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、エラーのこの組み合わせの故に、この積符号語は有効な積符号語ではない。
【００６１】
未訂正Ｃ１符号語は無く（Ｕ＝０）、復号済み積符号語７００において５個のＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝５）、復号済み積符号語７００においてどのＣ１符号語もノンゼロ・シンドロームを有せず（Ｗ＝０）、Ｃ２エラー位置を判断した後に検出された少なくともｄ１個のシンボル・エラーを有するＵ以外のＣ１符号語は無く（Ｄ＝０）、メモリ・エラーは検出されないので（Ｍ＝０）、復号済み積符号語７００においては、Ｓ＝［０１０］のエラー・シグネチャについてＵ＝０、Ｗ’＝５、Ｗ＝０、Ｄ＝１、およびＭ＝０である。
【００６２】
図７Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語７５０を示す。未訂正Ｃ２符号語は無く（Ｕ’＝０）、復号済み積符号語７５０においてノンゼロ・シンドロームを有するＣ２符号語は無く（Ｗ’＝０）、復号済み積符号語７５０においてＣ１符号語のうちの５個はノンゼロ・シンドロームを有し（Ｗ＝５）、Ｃ１エラー位置を判断した後に検出された少なくともｄ２個のシンボル・エラーを有するＵ’以外のＣ２符号語は無く（Ｄ’＝０）、メモリ・エラーは検出されないので（Ｍ’＝０）、この復号済み積符号語７５０のエラー・シグネチャはＵ’＝０、Ｗ＝５、Ｗ’＝０、Ｄ’＝１、およびＭ’＝０からもたらされるＳ’＝［０１０］であろう。
【００６３】
ここで図８Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語８００が示されている。復号済み積符号語８００の中には、Ｃ１復号の前のチャネル・シンボル・エラー（ｘ）、およびＣ１復号器エラーに起因して挿入されたシンボル・エラー（ｏ）を含む数個のエラーが同じＣ１符号語内に存在し、別のＣ１符号語内に１つのメモリ・エラー（ｅ）が存在する。この積符号語８００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、エラーのこの組み合わせの故に、この積符号語は有効な積符号語ではない。
【００６４】
未訂正Ｃ１符号語は無く（Ｕ＝０）、復号済み積符号語８００においてノンゼロ・シンドロームを有する６個の符号語（Ｗ’＝６）、メモリ・エラーに起因して復号済み積符号語８００においてＣ１符号語のうちの１つはノンゼロ・シンドロームを有し（Ｗ＝１）、Ｕ以外の１つのＣ１符号語はＣ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有し（Ｄ＝１）、Ｃ２エラー位置判断後に検出されたｄ１個未満のシンボル・エラーを有するＵ以外の１つのＣ１符号語に起因して１つのメモリ・エラーが検出されるので（Ｍ＝１）、復号済み積符号語８００においてはエラー・シグネチャＳ＝［０１１］についてＵ＝０、Ｗ’＝６、Ｗ＝１、Ｄ＝１、およびＭ＝１である。
【００６５】
図８Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語８５０を示す。未訂正Ｃ２符号語は無く（Ｕ’＝０）、復号済み積符号語８５０では１つのＣ２符号語はノンゼロ・シンドロームを有し（Ｗ’＝１）、復号済み積符号語８５０においてＣ１符号語のうちの６個はノンゼロ・シンドロームを有し（Ｗ＝６）、Ｕ’以外の１つのＣ２符号語はＣ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有し（Ｄ’＝１）、１つのメモリ・エラーが検出されるので（Ｍ’＝１）、この復号済み積符号語８５０についてのエラー・シグネチャは、Ｕ’＝０、Ｗ’＝１、Ｗ＝６、Ｄ’＝１、およびＭ’＝１からもたらされるＳ’＝［０１１］であろう。
【００６６】
ここで図９Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語９００が示されている。復号済み積符号語９００には、同じＣ１符号語に数個のエラー、すなわち、Ｃ１復号の前の３個のチャネル・シンボル・エラー（ｘ）、が存在する。この積符号語９００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、それらのチャネル・シンボル・エラーの故に、この積符号語は有効な積符号語ではない。
【００６７】
１つの未訂正Ｃ１符号語があり（Ｕ＝１）、復号済み積符号語９００においては３つのＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝３）、復号済み積符号語９００においてはＣ１符号語のうちの１つがノンゼロ・シンドロームを有し（Ｗ＝１）、Ｃ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有するＵ以外のＣ１符号語は無く（Ｄ＝０）、メモリ・エラーは検出されないので（Ｍ＝０）、復号済み積符号語９００においては、Ｓ＝［１００］のエラー・シグネチャについてＵ＝１、Ｗ’＝３、Ｗ＝１、Ｄ＝０、およびＭ＝０である。
【００６８】
図９Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語９５０を示す。１つの未訂正Ｃ２符号語があり（Ｕ’＝１）、復号済み積符号語９５０において３つのＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝３）、復号済み積符号語９５０においてＣ１符号語のうちの１つはノンゼロ・シンドロームを有し（Ｗ＝１）、Ｃ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有するＵ’以外のＣ２符号語は無く（Ｄ’＝０）、メモリ・エラーは検出されないので（Ｍ’＝０）、この復号済み積符号語９５０についてのエラー・シグネチャは、Ｕ’＝１、Ｗ＝１、Ｗ’＝３、Ｄ’＝０、およびＭ’＝０からもたらされるＳ’＝［１００］であろう。
【００６９】
ここで図１０Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語１０００が示されている。復号済み積符号語１０００においては、Ｃ１復号前の３個のチャネル・シンボル・エラー（ｘ）を含む数個のエラーが同じＣ１符号語に存在し、別のＣ１符号語にメモリ・エラー（ｅ）が存在する。この積符号語１０００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、エラーのこの組み合わせの故に、この積符号語は有効な積符号語ではない。
【００７０】
１つの未訂正Ｃ１符号語があり（Ｕ＝１）、復号済み積符号語１０００において４個のＣ２符号語はノンゼロ・シンドロームを有し（Ｗ’＝４）、復号済み積符号語１０００においてＣ１符号語のうちの２個はノンゼロ・シンドロームを有し（Ｗ＝２）、Ｃ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有するＵ以外のＣ１符号語は無く（Ｄ＝０）、Ｕ以外の１つのＣ１符号語がＣ２エラー位置判断後に検出されたｄ１個未満のシンボル・エラーを有するために１つのメモリ・エラーが検出されるので（Ｍ＝１）、復号済み積符号語１０００においては、Ｓ＝［１０１］のエラー・シグネチャについてＵ＝１、Ｗ’＝４、Ｗ＝２、Ｄ＝０、およびＭ＝１である。
【００７１】
図１０Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語１０５０を示す。１つの未訂正Ｃ２符号語があり（Ｕ’＝１）、復号済み積符号語１０５０において２個のＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝２）、復号済み積符号語１０５０においてＣ１符号語のうちの４個はノンゼロ・シンドロームを有し（Ｗ＝４）、Ｃ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有するＵ’以外のＣ２符号語は無く（Ｄ’＝０）、１つのメモリ・エラーが検出されるので（Ｍ’＝１）、この復号済み積符号語１０５０についてのエラー・シグネチャはＵ’＝１、Ｗ＝４、Ｗ’＝２、Ｄ’＝０、およびＭ’＝１からもたらされるＳ’＝［１０１］であろう。
【００７２】
ここで図１１Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語１１００が示されている。復号済み積符号語１１００においては、１つのＣ１符号語内のＣ１復号前の３個のチャネル・シンボル・エラー（ｘ）と、別のＣ１符号語内の別の３個のチャネル・エラーおよびＣ１復号器エラーに起因して挿入された２個のシンボル・エラー（ｏ）とを含む、数個のエラーが２つのＣ１符号語に存在する。この積符号語１１００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、それらのエラーの組み合わせの故に、この積符号語は有効な積符号語ではない。
【００７３】
１つの未訂正Ｃ１符号語があり（Ｕ＝１）、復号済み積符号語１１００において８個のＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝８）、復号済み積符号語１１００においてＣ１符号語のうちの１つはノンゼロ・シンドロームを有し（Ｗ＝１）、Ｕ以外の１つのＣ１符号語はＣ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有し（Ｄ＝１）、メモリ・エラーは検出されないので（Ｍ＝０）、復号済み積符号語１１００においては、Ｓ＝［１１０］のエラー・シグネチャについてＵ＝１、Ｗ’＝８、Ｗ＝１、Ｄ＝１、およびＭ＝０である。
【００７４】
図１１Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語１１５０を示す。１つの未訂正Ｃ２符号語があり（Ｕ’＝１）、復号済み積符号語１１５０において１つのＣ２符号語はノンゼロ・シンドロームを有し（Ｗ’＝１）、復号済み積符号語１１５０においてＣ１符号語のうちの８つはノンゼロ・シンドロームを有し（Ｗ＝８）、Ｕ’以外の１つのＣ２符号語はＣ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有し（Ｄ’＝１）、メモリ・エラーは検出されないので（Ｍ’＝０）、この復号済み積符号語１１５０についてのエラー・シグネチャはＵ’＝１、Ｗ＝８、Ｗ’＝１、Ｄ’＝１、およびＭ’＝０からもたらされるＳ’＝［１１０］であろう。
【００７５】
ここで図１２Ａを参照すると、最後の復号操作としてＣ１復号を有する反復復号の１つのあり得る結果による復号済み積符号語１２００が示されている。この復号済み積符号語１２００において、１つのＣ１符号語内のＣ１復号前の３つのチャネル・シンボル・エラー（ｘ）と、第２のＣ１符号語内の別の３つのチャネル・エラーおよびＣ１復号器エラーに起因して挿入された２つのシンボル・エラー（ｏ）と、第３のＣ１符号語内のメモリ・エラーとを含む、数個のエラーが３つのＣ１符号語に存在する。この積符号語１２００の他の複数のシンボルのうちの幾つかは不正確に復号されている（復号済みデータが読み出された媒体に記憶されたものとは異なるか、または符号化済みデータを生成したデータとは異なる）可能性があるが、反復復号はそのようなエラーを検出できなかった。しかし、それらのエラーの組み合わせの故に、この積符号語は有効な積符号語ではない。
【００７６】
１つの未訂正Ｃ１符号語があり（Ｕ＝１）、復号済み積符号語１２００において９つのＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝９）、復号済み積符号語１２００においてＣ１符号語のうちの２つがノンゼロ・シンドロームを有し（Ｗ＝２）、Ｕ以外の１つのＣ１符号語がＣ２エラー位置判断後に検出された少なくともｄ１個のシンボル・エラーを有し（Ｄ＝１）、Ｕ以外の１つのＣ１符号語がＣ２エラー位置判断後に検出されたｄ１個未満のシンボル・エラーを有するために１つのメモリ・エラーが検出されるので（Ｍ＝１）、復号済み積符号語１２００においては、Ｓ＝［１１１］のエラー・シグネチャについてＵ＝１、Ｗ’＝９、Ｗ＝２、Ｄ＝１、およびＭ＝１である。
【００７７】
図１２Ｂは、最後の復号操作としてＣ２復号を有する反復復号の１つのあり得る結果による復号済み積符号語１２５０を示す。１つの未訂正Ｃ２符号語があり（Ｕ’＝１）、復号済み積符号語１２５０において２つのＣ２符号語がノンゼロ・シンドロームを有し（Ｗ’＝２）、復号済み積符号語１２５０においてＣ１符号語のうちの９つがノンゼロ・シンドロームを有し（Ｗ＝９）、Ｕ’以外の１つのＣ２符号語がＣ１エラー位置判断後に検出された少なくともｄ２個のシンボル・エラーを有し（Ｄ’＝１）、１つのメモリ・エラーが検出されるので（Ｍ’＝１）、この復号済み積符号語１２５０についてのエラー・シグネチャはＵ’＝１、Ｗ＝９、Ｗ’＝２、Ｄ’＝１、およびＭ’＝１からもたらされるＳ’＝［１１１］であろう。
【００７８】
ソリッドステート・メモリ、光ストレージ、光伝送などに用いられる積符号に対しては、エラー・リカバリー手順（ＥＲＰ：ｅｒｒｏｒ  ｒｅｃｏｖｅｒｙ  ｐｒｏｃｅｄｕｒｅ）においてダイアグノスティクス後アクションを使用することもでき（例えば、ダイアグノスティクスの結果）、この手順はデータ・リカバリー手順（ＤＲＰ：ｄａｔａ  ｒｅｃｏｖｅｒｙ  ｐｒｏｃｅｄｕｒｅ）と称されることもある。ＥＲＰまたはＤＲＰについて２つの実施形態がある。すなわち、ａ）復号済みデータをバッファに記憶している間にエラーが発生する場合など（メモリ・エラー、ソフト・エラー）、データがバッファにおいて依然として利用可能であることに応じてデータの復号を繰り返す、あるいはｂ）光学式／磁気／ソリッドステート媒体からデータを再読して、その光学式／磁気／ソリッドステート媒体から再読された波形に応答してデータの復号を繰り返すかまたは追加の復号もしくはより強力な復号で再読済み波形を復号する（例えば、正常な復号を達成するための、より多くのＣ１／Ｃ２反復）。
【００７９】
ここで図１３を参照すると、１つの実施形態による反復復号の方法１３００が示されている。方法１３００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のうちのいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１３に特に記載されている操作より多いかまたは少ない操作が方法１３００に含まれ得る。
【００８０】
方法１３００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１３００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１３００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【００８１】
図１３に示されているように、方法１３００は操作１３０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【００８２】
操作１３０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために、反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【００８３】
操作１３０６において、Ｃ１復号済みデータを生成するために、積符号語を含む符号化済みデータに対してＣ１復号が実施される。
【００８４】
操作１３０８において、復号済みデータを生成するために積符号語を含むＣ１復号済みデータに対してＣ２復号が実施される。
【００８５】
操作１３１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ１／Ｃ２復号の２回の反復についてはＰ＝２である、等々である。
【００８６】
ｉがＰに等しくなければ、方法１３００はＣ１／Ｃ２復号を繰り返すために操作１３０４に戻る。ｉがＰに等しければ、方法１３００は操作１３１２へ続く。
【００８７】
操作１３１２において、最終復号済みデータを生成するためにＣ１復号が復号済みデータに対して重ねて実施され、訂正不能Ｃ１符号語の数（Ｕ）が計算される。
【００８８】
操作１３１４において、積符号語内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を計算するために最終復号済みデータに対してＣ２シンドローム・チェックが実施される。
【００８９】
操作１３１６において、積符号語内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を計算するために最終復号済みデータに対してＣ１シンドローム・チェックが実施される。
【００９０】
図示されているように、方法１３００は、エラー・シグネチャを判断するためにパラメータＵ、Ｗ’、およびＷを得ることに依拠している。次に、方法１３００は、復号済み積符号語についてエラー・シグネチャを計算するために図１７のＡへ続く。図１７については、図１４〜１６で反復復号のための他の実施形態を記載した後に記載する。
【００９１】
ここで図１４を参照すると、１つの実施形態による反復復号の方法１４００が示されている。方法１４００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１４に特に記載されている操作より多いかまたは少ない操作が方法１４００に含まれ得る。
【００９２】
方法１４００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１４００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１４００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【００９３】
図１４に示されているように、方法１４００は操作１４０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【００９４】
操作１４０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【００９５】
操作１４０６において、Ｃ１復号済みデータを生成するために、積符号語を含む符号化済みデータに対してＣ１復号が実施される。
【００９６】
操作１４０８において、復号済みデータを生成するために積符号語を含むＣ１復号済みデータに対してＣ２復号が実施される。
【００９７】
操作１４１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ１／Ｃ２復号の２回の反復についてはＰ＝２である、等々である。
【００９８】
ｉがＰに等しくなければ、方法１４００はＣ１／Ｃ２復号を繰り返すために操作１４０４に戻る。ｉがＰに等しければ、方法１４００は操作１４１２へ続く。
【００９９】
操作１４１２において、Ｃ１復号後データを生成するために復号済みデータに対してＣ１復号が重ねて実施される。
【０１００】
操作１４１４において、最終復号済みデータを生成するためにＣ１復号後データに対してＣ２復号が実施される。さらに、訂正不能Ｃ２符号語の数（Ｕ’）が計算される。
【０１０１】
操作１４１６において、積符号語内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を計算するために最終復号済みデータに対してＣ１シンドローム・チェックが実施される。
【０１０２】
操作１４１８において、積符号語内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を計算するために最終復号済みデータに対してＣ２シンドローム・チェックが実施される。
【０１０３】
図示されているように、方法１４００は、エラー・シグネチャを判断するためにパラメータＵ’、Ｗ’、およびＷを得ることに依拠している。次に、方法１４００は、復号済み積符号語についてエラー・シグネチャを計算するために図１８のＢへ続く。図１８については、図１７でエラー・シグネチャを計算するための他の実施形態を記載した後に記載する。
【０１０４】
ここで図１５を参照すると、１つの実施形態による反復復号の方法１５００が示されている。方法１５００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１５に特に記載されている操作より多いかまたは少ない操作が方法１５００に含まれ得る。
【０１０５】
方法１５００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１５００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１５００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１０６】
図１５に示されているように、方法１５００は操作１５０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【０１０７】
操作１５０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【０１０８】
操作１５０６において、Ｃ２復号済みデータを生成するために積符号語を含む符号化済みデータに対してＣ２復号が実施される。
【０１０９】
操作１５０８において、復号済みデータを生成するために積符号語を含むＣ２復号済みデータに対してＣ１復号が実施される。
【０１１０】
操作１５１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し、例えば、Ｃ２／Ｃ１復号の２完全反復、３完全反復、４完全反復など、任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ２／Ｃ１復号の２反復についてはＰ＝２である、等々である。
【０１１１】
ｉがＰに等しくなければ、方法１５００はＣ２／Ｃ１復号を繰り返すために操作１５０４に戻る。ｉがＰに等しければ、方法１５００は操作１５１２へ続く。
【０１１２】
操作１５１２において、最終復号済みデータを生成するために復号済みデータに対してＣ２復号が重ねて実施され、復号済みデータ内の訂正不能Ｃ２符号語の数（Ｕ’）が計算される。
【０１１３】
操作１５１４において、積符号語内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を計算するために最終復号済みデータに対してＣ１シンドローム・チェックが実施される。
【０１１４】
操作１５１６において、積符号語内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を計算するために最終復号済みデータに対してＣ２シンドローム・チェックが実施される。
【０１１５】
図示されているように、方法１５００はエラー・シグネチャを判断するためにパラメータＵ’、Ｗ’、およびＷを得ることに依拠している。次に、方法１５００は、復号済み積符号語についてエラー・シグネチャを計算するために図１８のＢへ続く。
【０１１６】
ここで図１６を参照すると、１つの実施形態による反復復号の方法１６００が示されている。方法１６００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１６に特に記載されている操作より多いかまたは少ない操作が方法１６００に含まれ得る。
【０１１７】
方法１６００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１６００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１６００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１１８】
図１６に示されているように、方法１６００は操作１６０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【０１１９】
操作１６０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【０１２０】
操作１６０６において、Ｃ２復号済みデータを生成するために積符号語を含む符号化済みデータに対してＣ２復号が実施される。
【０１２１】
操作１６０８において、復号済みデータを生成するために積符号語を含むＣ２復号済みデータに対してＣ１復号が実施される。
【０１２２】
操作１６１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し、任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ２／Ｃ１復号の２反復についてはＰ＝２である、等々である。
【０１２３】
ｉがＰに等しくなければ、方法１６００はＣ２／Ｃ１復号を繰り返すために操作１６０４に戻る。ｉがＰに等しければ、方法１６００は操作１６１２へ続く。
【０１２４】
操作１６１２において、Ｃ２復号後データを生成するために復号済みデータに対してＣ２復号が実施される。
【０１２５】
操作１６１４において、最終復号済みデータを生成するためにＣ２復号後データに対してＣ１復号が実施される。さらに、最終復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）が計算される。
【０１２６】
操作１６１６において、積符号語内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を計算するために最終復号済みデータに対してＣ２シンドローム・チェックが実施される。
【０１２７】
操作１６１８において、積符号語内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を計算するために最終復号済みデータに対してＣ１シンドローム・チェックが実施される。
【０１２８】
図示されているように、方法１６００はエラー・シグネチャを判断するためにパラメータＵ、Ｗ’、およびＷを得ることに依拠している。次に、方法１６００は、復号済み積符号語についてエラー・シグネチャを計算するために図１７のＡへ続く。
【０１２９】
ここで図１７を参照すると、１つの実施形態による方法１７００が示されており、この方法は図１３および１６に示されている方法のいずれかの後に実施され得る。再び図１７を参照すると、方法１７００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１７に特に記載されている操作より多いかまたは少ない操作が方法１７００に含まれ得る。
【０１３０】
方法１７００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１７００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１７００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１３１】
図１７に示されているように、方法１７００は先に実施された反復復号方法からのつながりのＡから操作１７０２で開始され、ここで訂正不能Ｃ１符号語の数（Ｕ）がゼロに等しいかどうかが判断される（例えば、Ｕ＝０）。Ｕがゼロに等しければ、方法１７００は操作１７０４へ続き、そうでなければ、方法１７００は操作１７１２へ移動する。
【０１３２】
操作１７０４において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ２符号語（無効なＣ２符号語）の数がゼロに等しいかどうかが判断される（例えば、Ｗ’＝０）。Ｗ’がゼロに等しければ、方法１７００は操作１７１４へ移動し、そうでなければ、方法１７００は操作１７０６へ続く。
【０１３３】
操作１７０６において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ２符号語（無効なＣ２符号語）の数がＣ１符号についての最小ハミング距離（ｄ１）より小さいかどうかが判断される（例えば、Ｗ’＜ｄ１）。Ｗ’がｄ１より小さければ、方法１７００は操作１７０８へ続き、そうでなければ、方法１７００は操作１７１６へ移動する。
【０１３４】
操作１７０８において、Ｗ’＜ｄ１に応答してメモリ・エラーが検出されており、操作１７１０においてＳ＝［００１］のエラー・シグネチャが出力される。
【０１３５】
操作１７１２において、Ｕ≠０に応答してチャネル・エラーが検出されており、方法１７００は操作１７１８へ続く。
【０１３６】
操作１７１４において、復号が成功していると判断されており、方法１７００は操作１７２６へ続く。
【０１３７】
操作１７１６において、Ｗ’≧ｄ１に応答してＣ１復号器エラーが検出され、方法１７００は操作１７２８へ続く。
【０１３８】
操作１７１８において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ１符号語（無効なＣ１符号語）の数（Ｗ）が訂正不能Ｃ１符号語の数（Ｕ）に等しいかどうかが判断される（例えば、Ｗ＝Ｕ）。ＷがＵに等しければ、方法１７００は操作１７２４へ移動し、そうでなければ、方法１７００は操作１７２０へ続く。
【０１３９】
操作１７２０において、Ｗ≠ＵでありかつＵ≠０であることに応答してメモリ・エラーが検出されており、操作１７２２において、Ｓ＝［１ｄ１］のエラー・シグネチャが出力され、ここでｄはＤの値に基づき、Ｄ＝０ならばｄ＝０であり、Ｄ＞０であればｄ＝１である。
【０１４０】
操作１７２４において、Ｓ＝［１ｄ０］のエラー・シグネチャが出力され、ここでｄはＤの値に基づき、Ｄ＝０ならばｄ＝０であり、Ｄ＞０ならばｄ＝１である。
【０１４１】
操作１７２６において、積符号語内の全ての符号語の復号に成功したことに応答してＳ＝［０００］のエラー・シグネチャが出力される。
【０１４２】
操作１７２８において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ１符号語（無効なＣ１符号語）の数（Ｗ）がゼロに等しいかどうかが判断される（例えば、Ｗ＝０）。Ｗが０に等しければ方法１７００は操作１７３０へ移動し、そうでなければ、方法１７００は操作１７３２へ続く。
【０１４３】
操作１７３０において、Ｓ＝［０１０］のエラー・シグネチャが出力される。
【０１４４】
操作１７３２において、Ｗ’≧ｄ１でありかつＷ≠０であることに応答してメモリ・エラーが検出されており、操作１７３４においてＳ＝［０１１］のエラー・シグネチャが出力される。
【０１４５】
１つの実施形態によると、方法１７００でエラー・シグネチャが得られた後、符号化済みデータを媒体から再読する前に、もしくは反復復号を重ねて試みる前に、またはその両方の前に、そのエラー・シグネチャにより識別される特定のタイプのエラーを修正するために１つ以上のアクションを実施することができる。それらのアクションは、媒体の物理的位置をリード・センサ（単数または複数）に対して横方向に調整すること、リード・センサ（単数または複数）に関して媒体を前方にまたは後方に移動させること、符号化済みデータを復号するためにより強くまたはより弱く集中的な復号アルゴリズム（単数または複数）を使用すること、符号化済みデータを復号するために１つ以上の異なる復号アルゴリズムを使用すること、復号スキームでの反復の数を増やしまたは減らすこと、再読中の媒体の移動速度を高めまたは低めること、などを含むことができる。
【０１４６】
ここで図１８を参照すると、図１４および１５に示されている方法のいずれかの後に実施され得る、１つの実施形態による方法１８００が示されている。再び図１８を参照すると、方法１８００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１８に特に記載されている操作より多いかまたは少ない操作が方法１８００に含まれ得る。
【０１４７】
方法１８００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１８００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１８００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１４８】
図１８に示されているように、方法１８００は先に実施された反復復号方法からのつながりのＢから操作１８０２で開始され、ここで訂正不能Ｃ２符号語の数（Ｕ’）がゼロに等しいかどうかが判断される（例えば、Ｕ’＝０）。Ｕ’がゼロに等しければ、方法１８００は操作１８０４へ続き、そうでなければ、方法１８００は操作１８１２へ移動する。
【０１４９】
操作１８０４において、Ｃ１シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ１符号語（無効なＣ１符号語）の数がゼロに等しいかどうかが判断される（例えば、Ｗ＝０）。Ｗがゼロに等しければ、方法１８００は操作１８１４へ移動し、そうでなければ、方法１８００は操作１８０６へ続く。
【０１５０】
操作１８０６において、Ｃ１シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ１符号語（無効なＣ１符号語）の数がＣ２符号についての最小ハミング距離（ｄ２）より小さいかどうかが判断される（例えば、Ｗ＜ｄ２）。Ｗがｄ２より小さければ、方法１８００は操作１８０８へ続き、そうでなければ、方法１８００は操作１８１６へ移動する。
【０１５１】
操作１８０８において、Ｗ＜ｄ２に応答してメモリ・エラーが検出されており、操作１８１０においてＳ’＝［００１］のエラー・シグネチャが出力される。
【０１５２】
操作１８１２において、Ｕ’≠０に応答してチャネル・エラーが検出されており、方法１８００は操作１８１８へ続く。
【０１５３】
操作１８１４において、復号が成功していると判断されており、方法１８００は操作１８２６へ続く。
【０１５４】
操作１８１６において、Ｗ≧ｄ２に応答してＣ２復号器エラーが検出され、方法１８００は操作１８２８へ続く。
【０１５５】
操作１８１８において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ２符号語（無効なＣ２符号語）の数（Ｗ’）が訂正不能Ｃ２符号語の数（Ｕ’）に等しいかどうかが判断される（例えば、Ｗ’＝Ｕ’）。Ｗ’がＵ’に等しければ、方法１８００は１８２４へ移動し、そうでなければ、方法１８００は操作１８２０へ続く。
【０１５６】
操作１８２０において、Ｗ’≠Ｕ’でありかつＵ’≠０であることに応答してメモリ・エラーが検出されており、操作１８２２においてＳ’＝［１ｄ’１］のエラー・シグネチャが出力され、ここでｄ’はＤ’の値に基づき、Ｄ’＝０ならばｄ’＝０であり、Ｄ’＞０であればｄ’＝１である。
【０１５７】
操作１８２４において、Ｓ’＝［１ｄ’０］のエラー・シグネチャが出力され、ここでｄ’はＤ’の値に基づき、Ｄ’＝０ならばｄ’＝０であり、Ｄ’＞０ならばｄ’＝１である。
【０１５８】
操作１８２６において、積符号語内の全ての符号語の復号に成功したことに応答してＳ’＝［０００］のエラー・シグネチャが出力される。
【０１５９】
操作１８２８において、Ｃ２シンドロームのチェック後に検出された積符号語内のノンゼロ・シンドロームを有するＣ２符号語（無効なＣ２符号語）の数（Ｗ’）がゼロに等しいかどうかが判断される（例えば、Ｗ’＝０）。Ｗ’が０に等しければ方法１８００は操作１８３０へ移動し、そうでなければ、方法１８００は操作１８３２へ続く。
【０１６０】
操作１８３０において、Ｓ’＝［０１０］のエラー・シグネチャが出力される。
【０１６１】
操作１８３２において、Ｗ＜ｄ２でありかつＷ’≠０であることに応答してメモリ・エラーが検出されており、操作１８３４においてＳ’＝［０１１］のエラー・シグネチャが出力される。
【０１６２】
１つの実施形態によると、方法１８００でエラー・シグネチャが得られた後、符号化済みデータを媒体から再読する前に、もしくは反復復号を重ねて試みる前に、またはその両方の前に、そのエラー・シグネチャにより識別される特定のタイプのエラーを修正するために１つ以上のアクションを実施することができる。それらのアクションは、媒体の物理的位置をリード・センサ（単数または複数）に対して横方向に調整すること、リード・センサ（単数または複数）に関して媒体を前方にまたは後方に移動させること、符号化済みデータを復号するためにより強くまたはより弱く集中的な復号アルゴリズム（単数または複数）を使用すること、符号化済みデータを復号するために１つ以上の異なる復号アルゴリズムを使用すること、復号スキームでの反復の数を増やしまたは減らすこと、再読中の媒体の移動速度を高めまたは低めること、などを含むことができる。
【０１６３】
ここで図１９を参照すると、反復復号のための１つの実施形態による方法１９００が示されている。方法１９００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図１９に特に記載されている操作より多いかまたは少ない操作が方法１９００に含まれ得る。
【０１６４】
方法１９００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法１９００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法１９００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１６５】
図１９に示されているように、方法１９００は操作１９０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【０１６６】
操作１９０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【０１６７】
操作１９０６において、Ｃ１復号済みデータを生成するために積符号語を含む符号化済みデータに対してＣ１復号が実施される。
【０１６８】
操作１９０８において、復号済みデータを生成するために積符号語を含むＣ１復号済みデータに対してＣ２復号が実施される。
【０１６９】
操作１９１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し、任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ１／Ｃ２復号の２反復についてはＰ＝２である、等々である。
【０１７０】
ｉがＰに等しくなければ、方法１９００はＣ１／Ｃ２復号を繰り返すために操作１９０４に戻る。ｉがＰに等しければ、方法１９００は操作１９１２へ続く。
【０１７１】
操作１９１２において、最終復号済みデータを生成するために復号済みデータに対してＣ１復号が再び実施され、積符号語内の訂正不能Ｃ１符号語の数（Ｕ）が計算される。
【０１７２】
その後、方法１９００は、復号済み積符号語についてエラー・シグネチャを計算するために図２０のＣへ続く。
【０１７３】
ここで図２０を参照すると、１つの実施形態による方法２０００が示されている。方法２０００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図２０に特に記載されている操作より多いかまたは少ない操作が方法２０００に含まれ得る。
【０１７４】
方法２０００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法２０００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法２０００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１７５】
図２０に示されているように、方法２０００は操作２００２から始まることができ、ここで、Ｗ’と称されるノンゼロＣ２シンドローム（無効なＣ２符号語）の数を計算するために最終復号済みデータに対してＣ２シンドローム・チェックが実施される。
【０１７６】
操作２００４において、無効なＣ２符号語と復号中に得られた他の情報とに基づいてＣ２エラー位置が計算される。
【０１７７】
操作２００６において、Ｃ２エラー位置がＣ１エラー位置に変換される。積符号語においてＣ１およびＣ２符号語は直交するので、Ｃ２符号語内のエラーの位置はＣ１符号語内のエラーの位置に変換され得、その逆も行われ得る。
【０１７８】
操作２００８において、訂正不能Ｃ１符号語（Ｕ）以外の、少なくともｄ１個のシンボル・エラーを有するＣ１符号語の数（Ｄ）が計算される。さらに、訂正不能Ｃ１符号語（Ｕ）以外の、ｄ１個未満のシンボル・エラーを有するＣ１符号語の数（Ｍ）が計算される。これらの値、ＤおよびＭ、の両方はＣ２エラー位置が判断された後に計算される。
【０１７９】
操作２０１０において、前述の関係に基づいてｃ、ｄ、およびｍが計算され、対応するエラー・シグネチャＳ＝［ｃｄｍ］が出力される。
【０１８０】
１つの実施形態によると、方法２０００でエラー・シグネチャが得られた後、符号化済みデータを媒体から再読する前に、もしくは反復復号を重ねて試みる前に、またはその両方の前に、そのエラー・シグネチャにより識別される特定のタイプのエラーを修正するために１つ以上のアクションを実施することができる。それらのアクションは、媒体の物理的位置をリード・センサ（単数または複数）に対して横方向に調整すること、リード・センサ（単数または複数）に関して媒体を前方にまたは後方に移動させること、符号化済みデータを復号するためにより強くまたはより弱く集中的な復号アルゴリズム（単数または複数）を使用すること、符号化済みデータを復号するために１つ以上の異なる復号アルゴリズムを使用すること、復号スキームでの反復の数を増やしまたは減らすこと、再読中の媒体の移動速度を高めまたは低めること、などを含むことができる。
【０１８１】
方法２０００は、例として図１９に示されている方法１９００など、最後の復号操作としてのＣ１復号をもって終了するＣ１／Ｃ２反復復号の後、Ｕの判断、ならびにＤおよびＭの計算に依拠するエラー・シグネチャ計算である。
【０１８２】
ここで図２１を参照すると、１つの実施形態による方法２１００が示されている。方法２１００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図２１に特に記載されている操作より多いかまたは少ない操作が方法２１００に含まれ得る。
【０１８３】
方法２１００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法２１００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法２１００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１８４】
図２１に示されているように、方法２１００は操作２１０２から始まることができ、ここで反復カウンタ（ｉ）がゼロに設定される（例えば、ｉ＝０）。この反復カウンタは、積符号語を含む受け取った符号化済みデータに対して復号が行われる反復の数を追跡するために使用される。
【０１８５】
操作２１０４において、復号の別の（または第１の）反復がデータに対して行われようとしていることを示すために反復カウンタは１インクリメントされる（例えば、ｉ＝ｉ＋１）。
【０１８６】
操作２１０６において、Ｃ２復号済みデータを生成するために積符号語を含む符号化済みデータに対してＣ２復号が実施される。
【０１８７】
操作２１０８において、復号済みデータを生成するために積符号語を含むＣ２復号済みデータに対してＣ１復号が実施される。
【０１８８】
操作２１１０において、反復カウンタが積符号語を復号するための所定の完全反復最大数（Ｐ）に等しいか否かが判断される（例えば、ｉ＝Ｐ）。Ｐは、任意の所望の目標を達成し、任意の数の反復をもたらすように設定され得る。ストリーミング・モードではＰ＝１であり、Ｃ２／Ｃ１復号の２反復についてはＰ＝２である、等々である。
【０１８９】
ｉがＰに等しくなければ、方法２１００はＣ２／Ｃ１復号を繰り返すべく操作２１０４に戻る。ｉがＰに等しければ、方法２１００は操作２１１２へ続く。
【０１９０】
操作２１１２において、最終復号済みデータを生成するために復号済みデータに対してＣ２復号が再び実施される。次に、方法２１００は、復号済み積符号語についてのエラー・シグネチャを計算するために図２２のＤに続く。
【０１９１】
ここで図２２を参照すると、１つの実施形態による方法２２００が示されている。方法２２００は、種々の実施形態で、とりわけ図１〜１２に示されている環境のいずれかにおいて本発明に従って実施され得る。無論、本記載を読めば当業者に理解されるように、図２２に特に記載されている操作より多いかまたは少ない操作が方法２２００に含まれ得る。
【０１９２】
方法２２００の各ステップは、動作環境の任意の適切なコンポーネントによって実施され得る。例えば、種々の実施形態で、方法２２００は、コントローラ、プロセッサ、テープ・ドライブ、または１つ以上のプロセッサをその中に有する他の何らかのデバイスによって部分的にもしくは完全に実施され得る。ハードウェアもしくはソフトウェアまたはその両方で実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有する、プロセッサ、例えば、処理回路（単数または複数）、チップ（単数または複数）、もしくはモジュール（単数または複数）、またはそれらのいずれかの組み合わせを任意のデバイスで利用して方法２２００の１つ以上のステップを実施することができる。例示的プロセッサは、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど、それらの組み合わせ、または当該技術分野で知られている他の任意の適切なコンピューティング・デバイスを含むが、それらに限定はされない。
【０１９３】
図２２に示されているように、方法２２００は操作２２０２から始まることができ、ここで、Ｗと称されるノンゼロＣ１シンドローム（無効なＣ１符号語）の数を計算するために最終復号済みデータに対してＣ１シンドローム・チェックが実施される。
【０１９４】
操作２２０４において、無効なＣ１符号語と復号中に得られた他の情報とに基づいてＣ１エラー位置が計算される。
【０１９５】
操作２２０６において、Ｃ１エラー位置がＣ２エラー位置に変換される。積符号語においてＣ１およびＣ２符号語は直交するので、Ｃ１符号語内のエラーの位置はＣ２符号語内のエラーの位置に変換され得、その逆も行われ得る。
【０１９６】
操作２２０８において、訂正不能Ｃ２符号語（Ｕ’）以外の、少なくともｄ２個のシンボル・エラーを有するＣ２符号語の数（Ｄ’）が計算される。さらに、訂正不能Ｃ２符号語（Ｕ’）以外の、ｄ２個未満のシンボル・エラーを有するＣ２符号語の数（Ｍ’）が計算される。これらの値、Ｄ’およびＭ’、の両方はＣ１エラー位置が判断された後に計算される。
【０１９７】
操作２２１０において、前述の関係に基づいてｃ’、ｄ’、およびｍ’が計算され、対応するエラー・シグネチャＳ’＝［ｃ’ ｄ’ｍ’］が出力される。
【０１９８】
１つの実施形態によると、方法２２００でエラー・シグネチャが得られた後、符号化済みデータを媒体から再読する前に、もしくは反復復号を重ねて試みる前に、またはその両方の前に、そのエラー・シグネチャにより識別される特定のタイプのエラーを修正するために１つ以上のアクションを実施することができる。それらのアクションは、媒体の物理的位置をリード・センサ（単数または複数）に対して横方向に調整すること、リード・センサ（単数または複数）に関して媒体を前方にまたは後方に移動させること、符号化済みデータを復号するためにより強くまたはより弱く集中的な復号アルゴリズム（単数または複数）を使用すること、符号化済みデータを復号するために１つ以上の異なる復号アルゴリズムを使用すること、復号スキームでの反復の数を増やしまたは減らすこと、再読中の媒体の移動速度を高めまたは低めること、などを含むことができる。
【０１９９】
方法２２００は、最後の復号操作としてのＣ２復号操作をもって終了するＣ２／Ｃ１反復復号の後、Ｕ’の判断、ならびにＤ’およびＭ’の計算に依拠するエラー・シグネチャ計算である。
【０２００】
１つの実施形態では、エラーがメモリにおけるソフト失敗に起因するのか、Ｃ１復号器またはＣ２復号器による誤訂正であるのか、あるいは訂正不能エラーであるのかを識別するためにＣ１およびＣ２復号器ならびにＣ１およびＣ２シンドローム・チェッカーについてのエラー訂正ステータスを使用することができる。表３は、１つの実施形態による、復号器ステータス、シンドローム・チェッカー・ステータス、およびどのタイプのエラーが存在するのかということの関係を示す。
【０２０１】
【表３】
2019503603.tif 000005
【０２０２】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品またはその全部であり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または複数のコンピュータ可読記憶媒体）を含み得る。
【０２０３】
コンピュータ可読記憶媒体は、命令実行デバイスに用いられる命令を保持し記憶することのできる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、または前述のものの任意の適切な組み合わせであり得るが、それらに限定はされない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは次のもの、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、またはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル・バーサタイル・ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、機械符号化デバイス、例えばパンチ・カードまたは命令が記録されている溝の中の隆起構造、および前述のものの任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波（例えば光ファイバ・ケーブルを通って進む光パルス）、またはワイヤを伝わる電気信号などの一時的信号自体であると解釈されるべきではない。
【０２０４】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらのいずれかの組み合わせ、を介して外部コンピュータもしくは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバまたはそれらのいずれかの組み合わせを含み得る。各コンピューティング／処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取って、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイスの中のコンピュータ可読記憶媒体に記憶させるべく転送する。
【０２０５】
本発明の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、
命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態セッティング・データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、もしくは同様のもののオブジェクト指向プログラミング言語および「Ｃ」プログラミング言語もしくは類似のプログラミング言語等の在来の手続き型プログラミング言語を含む１つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でかつ部分的にリモート・コンピュータ上でまたは完全にリモート・コンピュータもしくはサーバ上で、実行し得る。後者のシナリオでは、リモート・コンピュータはローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザのコンピュータに接続され得、あるいは接続は（例えば、インターネット・サービス・プロバイダを用いてインターネットを通して）外部コンピュータに対してなされ得る。幾つかの実施形態では、本発明の態様を実施するために、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用してこの電子回路を個人化することによりコンピュータ可読プログラム命令を実行し得る。
【０２０６】
本発明の態様は本明細書において本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方と関連して記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、フローチャート図もしくはブロック図またはその両方のブロックの組み合わせはコンピュータ可読プログラム命令により実装され得るということが理解されるであろう。
【０２０７】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルなデータ処理装置のプロセッサを介して実行する命令がフローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックで指定されている機能／動作を実行する手段を作るように、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルなデータ処理装置のプロセッサに供給されてマシンを作り得る。これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体がフローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックで指定されている機能／動作の態様を実装する命令を含む製造物品を含むように、コンピュータ、プログラマブルなデータ処理装置もしくは他のデバイスまたはそれらのいずれかの組み合わせに対して特定の仕方で機能させることのできるコンピュータ可読記憶媒体に記憶されることもできる。
【０２０８】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルな装置、または他のデバイス上で実行する命令がフローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックで指定されている機能／動作を実行するように、一連の操作ステップをコンピュータ、他のプログラマブルな装置または他のデバイス上で実施させてコンピュータ実行のプロセスを生成するために、コンピュータ、他のプログラマブルなデータ処理装置または他のデバイスにロードされることもできる。
【０２０９】
図面のフローチャートおよびブロック図は、本発明の種々の実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。このことに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能（単数または複数）を実装するための１つ以上の実行可能な命令を含むモジュール、セグメント、または命令の部分を表すことができる。幾つかの代替の実装では、ブロックに示されている機能は、図面に示されている順序から外れて行われ得る。例えば、連続して示されている２つのブロックは、実際には、実質的に同時に実行され得、またはそれらのブロックは、ときには、関連する機能性に応じて逆の順序で実行され得る。ブロック図もしくはフローチャート図またはその両方の各ブロック、および、ブロック図もしくはフローチャート図またはその両方のブロック群の組み合わせは、指定された機能または動作を実施しまたは特殊目的ハードウェアおよびコンピュータ命令の組み合わせを実行する特殊目的ハードウェア・ベース・システムにより実装され得るということも留意されたい。
【０２１０】
さらに、種々の実施形態によるシステムは、プロセッサと、そのプロセッサと統合されるかもしくはそのプロセッサにより実行可能であるかまたはその両方であるロジックとを含むことができ、そのロジックは、本明細書に詳述されているプロセス・ステップのうちの１つ以上を実施するように構成される。統合されているということは、ＡＳＩＣ、ＦＰＧＡなど、プロセッサにロジックがハードウェア・ロジックとして埋め込まれているということを意味する。プロセッサにより実行可能であるということは、ロジックが、ハードウェア・ロジック、ソフトウェア・ロジック、例えばファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などであるか、または、プロセッサによりアクセス可能でそのプロセッサによる実行時に或る機能性をプロセッサに実施させるように構成されたハードウェアおよびソフトウェア・ロジックの何らかの組み合わせであるということを意味する。当該技術分野で知られているように、ソフトウェア・ロジックは任意のメモリ・タイプのローカルもしくはリモート・メモリまたはその両方に記憶され得る。ソフトウェア・プロセッサ・モジュールもしくはハードウェア・プロセッサ、例えばＡＳＩＣ、ＦＰＧＡ、ＣＰＵ、集積回路（ＩＣ：ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、グラフィクス処理装置（ＧＰＵ：ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）など、またはその両方など、当該技術分野で知られている任意のプロセッサが使用され得る。
【０２１１】
前述のシステムもしくは方法論またはその両方の種々の特徴を任意に組み合わせて、上で提示した記載から複数の組み合わせを作ることができるということは明らかであろう。
【０２１２】
オンデマンドでサービスを提供するように顧客のために展開されたサービスの形で本発明の実施形態を提供できることもさらに認識されるであろう。
【０２１３】
種々の実施形態が上に記載されているが、それらは単なる例として与えられているのであって、限定として与えられているわけではないことが理解されるべきである。従って、好ましい実施形態の広さおよび範囲は上記の例示的実施形態のいずれによっても限定されるべきではなく、添付の特許請求の範囲およびそれらの等価物のみに従って定義されるべきである
【図１】
2019503603.tif 000006
【図２】
2019503603.tif 000007
【図３】
2019503603.tif 000008
【図４】
2019503603.tif 000009
【図５】
2019503603.tif 000010
【図６】
2019503603.tif 000011
【図７】
2019503603.tif 000012
【図８】
2019503603.tif 000013
【図９】
2019503603.tif 000014
【図１０】
2019503603.tif 000015
【図１１】
2019503603.tif 000016
【図１２】
2019503603.tif 000017
【図１３】
2019503603.tif 000018
【図１４】
2019503603.tif 000019
【図１５】
2019503603.tif 000020
【図１６】
2019503603.tif 000021
【図１７】
2019503603.tif 000022
【図１８】
2019503603.tif 000023
【図１９】
2019503603.tif 000024
【図２０】
2019503603.tif 000025
【図２１】
2019503603.tif 000026
【図２２】
2019503603.tif 000027
【手続補正書】
【提出日】平成30年7月19日(2018.7.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントローラと、前記コントローラに統合されもしくは前記コントローラにより実行可能でありまたはその両方であるロジックとを含むシステムであって、前記ロジックは、
復号済みデータを得るために符号化済みデータに対して反復復号を実施し、ここで、少なくとも３つの復号操作が前記反復復号において実施され、前記復号操作はＣ１復号およびＣ２復号を含む群から選択され、
前記符号化済みデータの前記反復復号後に前記復号済みデータの第１部分において有効な積符号語が得られなかったことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを実行する、ように構成される、
システム。
【請求項２】
前記ロジックは、前記符号化済みデータの前記反復復号において少なくとも１つの復号操作後に、前記復号済みデータの第２部分において有効な積符号語が得られたことに応答して、前記第２部分を出力するようにさらに構成される、請求項１に記載のシステム。
【請求項３】
前記復号操作は、最初のＣ１復号と、その次のＣ２復号と、その次の再度のＣ１復号とを含む、請求項１に記載のシステム。
【請求項４】
前記復号操作は、最初のＣ２復号と、その次のＣ１復号と、その次の再度のＣ２復号とを含む、請求項１に記載のシステム。
【請求項５】
前記復号済みデータに対して復号後エラー・ダイアグノスティクスを実施するように構成されている前記ロジックは、前記復号済みデータにおけるエラー・シグネチャを特定するようにさらに構成される、請求項１に記載のシステム。
【請求項６】
前記復号済みデータにおける前記エラー・シグネチャを特定するように構成された前記ロジックは、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を得、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出された前記復号済みデータ内のＣ１符号語の数（Ｄ）を得、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出された前記復号済みデータ内のＣ１符号語の数（Ｍ）を得る
ようにさらに構成される、
請求項５に記載のシステム。
【請求項７】
前記ロジックは前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、ならびに前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義するようにさらに構成される、請求項６に記載のシステム。
【請求項８】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項７に記載のシステム。
【請求項９】
コントローラで実施される方法であって、前記方法は、
復号済みデータを得るために符号化済みデータに対して反復復号を実施するステップであって、少なくとも３つの復号操作が前記反復復号において実施され、前記復号操作はＣ１復号およびＣ２復号を含む群から選択される、前記反復復号を実施するステップ、および
前記符号化済みデータの前記反復復号後に前記復号済みデータの第１部分において有効な積符号語が得られていないことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを実施するステップ、
を含む、方法。
【請求項１０】
前記符号化済みデータの前記反復復号の少なくとも１つの復号操作の後に前記復号済みデータの第２部分において有効な積符号語が得られていることに応答して、前記第２部分を出力するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記復号操作は、最初のＣ１復号と、その次のＣ２復号と、その次の再度のＣ１復号とを含む、請求項９に記載の方法。
【請求項１２】
前記復号操作は、最初のＣ２復号と、その次のＣ１復号と、その次の再度のＣ２復号とを含む、請求項９に記載の方法。
【請求項１３】
前記復号済みデータに対して前記復号後エラー・ダイアグノスティクスを実施する前記ステップは前記復号済みデータにおいてエラー・シグネチャを特定するステップを含む、請求項９に記載の方法。
【請求項１４】
前記復号済みデータにおいてエラー・シグネチャを特定する前記ステップは、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得るステップ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２符号語の数（Ｗ’）を得るステップ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得るステップ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｄ）を得るステップ、および
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｍ）を得るステップ、
を含む、請求項１３に記載の方法。
【請求項１５】
前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、および前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義するステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項１５に記載の方法。
【請求項１７】
コントローラに、復号済みデータを得るために符号化済みデータに対して反復復号を実行させ、ここで前記反復復号において少なくとも３つの復号操作が行われ、前記復号操作はＣ１復号およびＣ２復号を含む群から選択され、かつ、前記符号化済みデータの前記反復復号後に、前記復号済みデータの第１部分において有効な積符号語を得られていないことに応答して、前記第１部分に対して復号後エラー・ダイアグノスティクスを行わせる、コンピュータ・プログラム。
【請求項１８】
前記コントローラに、前記符号化済みデータの前記反復復号の少なくとも１つの復号操作の後に前記復号済みデータの第２部分において有効な積符号語が得られていることに応答して、前記第２部分を前記コントローラにより出力させる、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記復号操作は、最初のＣ１復号、その次のＣ２復号、およびその次の再度のＣ１復号を含む、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記復号操作は、最初のＣ２復号、その次のＣ１復号、およびその次の再度のＣ２復号を含む、請求項１７に記載のコンピュータ・プログラム。
【請求項２１】
前記コントローラに前記復号済みデータにおけるエラー・シグネチャを特定させる、請求項１７に記載のコンピュータ・プログラム。
【請求項２２】
前記コントローラに、
前記復号済みデータ内の訂正不能Ｃ１符号語の数（Ｕ）を得させ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ２復号後の数（Ｗ’）を得させ、
前記復号済みデータ内のノンゼロ・シンドロームを有するＣ１符号語の数（Ｗ）を得させ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて少なくとも閾値（ｄ１）個のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｄ）を得させ、
前記数（Ｕ）の訂正不能Ｃ１符号語を除いて前記閾値（ｄ１）個未満のシンボル・エラーがその中に検出されている前記復号済みデータ内のＣ１符号語の数（Ｍ）を得させる、
請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記コントローラに前記復号済みデータについて８つのエラー・シグネチャ、すなわち、前記復号済みデータにおいてどのエラー・タイプも発見されないことを表す第１エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第２エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第３エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つの復号器エラー（Ｄ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第４エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）が発見されることを表す第５エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第６エラー・シグネチャ、前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）および少なくとも１つの復号器エラー（Ｄ＞０）が発見されることを表す第７エラー・シグネチャ、ならびに前記復号済みデータにおいて少なくとも１つのチャネル・エラー（Ｕ＞０）、少なくとも１つの復号器エラー（Ｄ＞０）、および少なくとも１つのメモリ・エラー（Ｍ＞０）が発見されることを表す第８エラー・シグネチャ、を定義させる、請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記第１エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第２エラー・シグネチャはＵ＝０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第３エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第４エラー・シグネチャはＵ＝０、Ｄ＞０、およびＭ＞０という状態に応答して特定され、前記第５エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＝０という状態に応答して特定され、前記第６エラー・シグネチャはＵ＞０、Ｄ＝０、およびＭ＞０という状態に応答して特定され、前記第７エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＝０という状態に応答して特定され、前記第８エラー・シグネチャはＵ＞０、Ｄ＞０、およびＭ＞０という状態に応答して特定される、請求項２３に記載のコンピュータ・プログラム。
【国際調査報告】
2019503603.tif 000028
2019503603.tif 000029
2019503603.tif 000030