JP2004334845A - 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正 - Google Patents

階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正 Download PDF

Info

Publication number
JP2004334845A
JP2004334845A JP2004109711A JP2004109711A JP2004334845A JP 2004334845 A JP2004334845 A JP 2004334845A JP 2004109711 A JP2004109711 A JP 2004109711A JP 2004109711 A JP2004109711 A JP 2004109711A JP 2004334845 A JP2004334845 A JP 2004334845A
Authority
JP
Japan
Prior art keywords
data storage
volume
dimensional data
storage volume
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004109711A
Other languages
English (en)
Inventor
Ron M Roth
ロン・エム・ロス
Gadiel Seroussi
グラディエル・セロウッシ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004334845A publication Critical patent/JP2004334845A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2945Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using at least three error correction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 3次元データ記憶媒体内に記憶された符号化データのワード総数に対するデータワードの比率を高くする。
【解決手段】 本発明の一実施の形態は、3次元データ記憶媒体にデータを符号化する、空間効率のよい技法である。本発明の一実施の形態は、3次元データ記憶媒体のクラスの障害モードの認識および特徴付けと、一定のエラー制御符号化技法の選択および組み合わせと、選択して組み合わせたエラー制御符号化技法を使用して、3次元データ記憶媒体のクラスの一定の障害モードの検出および訂正を行う方法の実施とを含む。
【選択図】図1

Description

本発明は、記憶データのエラーの検出および訂正に関し、特に、階層化された3次元メモリのデータを符号化して、予想される一定のエラーのクラスの検出および訂正を可能にする、空間効率のよい方法に関する。
本発明は、一般に、電子データの伝送、記憶、および検索の間に発生するエラーの検出、ならびに、多くの場合、訂正を可能にするエラー符号訂正に関する。
多くの線形ブロック符号化エラー制御符号化方法および技法は、長さkのメッセージに分割可能なシリアル伝送データの符号化で既知である。
一般に、現在利用可能なエラー制御符号化技法が適用されるデータの記憶モデルは、記憶デバイス内における線形で2次元のワードの配置である。
2次元メモリの一定のタイプのエラーを認識して訂正する技法が開発されてきた。
このエラーには、次の小節で説明する十字交差(criss-cross)エラーが含まれる。
これらの技法の多くは、以下でも説明するように、組織線形符号を使用する。
いくつかのこれらの方法は、非特許文献1,2(Gabidulin著「Theory of Codes with Maximum Rank Distance」 Probl. Peredach. Inform., 21, pp. 3-16 (1985)、Gabidulin著「Optimal Array Error-Correcting Codes」Probl. Peredach. Inform., 21, pp. 102-106 (1985)、ならびにRothおよびSeroussi著「Reduced-Redundancy Product Codes for Burst Error Correction」IEEE Trans. Inform. Theory, 44, pp. 1395-1406 (1998))に記載されている。
Gabidulin著「Theory of Codes with Maximum Rank Distance」 Probl. Peredach. Inform., 21, pp. 3-16 (1985)、Gabidulin著「Optimal Array Error-Correcting Codes」Probl. Peredach. Inform., 21, pp. 102-106 (1985) RothおよびSeroussi著「Reduced-Redundancy Product Codes for Burst Error Correction」IEEE Trans. Inform. Theory, 44, pp. 1395-1406 (1998)
最近、3次元記憶デバイスの新しいクラスが開発された。
この3次元記憶デバイスのクラスの障害モードは、所与のサイズの3次元データ記憶デバイス内の最大記憶容量を大きくするために、3次元データ記憶媒体内に記憶された符号化データのワード総数に対するデータワードの比率を高くする効率的な3次元データエラー制御符号化技法を必要とすることが予想される。
本発明の一実施の形態は、積符号およびいくつかの線形ブロック符号を使用して、3次元データ記憶媒体にデータを符号化する空間効率のよいエラー制御符号化技法を提供する。
この技法により、3次元データ記憶媒体のクラスに起こり得る既知の障害モードに対応した一定のタイプのエラーについて、制限された個数のエラーを検出して訂正することが可能となる。
本発明の一実施の形態は、3次元データ記憶媒体にデータを符号化する、空間効率のよい技法である。
以下に説明する本発明の一実施の形態は、3次元データ記憶媒体のクラスの障害モードの認識および特徴付けと、一定のエラー制御符号化技法の選択および組み合わせと、選択して組み合わせたエラー制御符号化技法を使用して、3次元データ記憶媒体のクラスの一定の障害モードの検出および訂正を行う方法の実施とを含む。
したがって、この節は、次の3つの小節:(1)3次元データ記憶媒体のクラスの説明および3次元データ記憶媒体のクラスの障害モードの特徴付け、(2)選択したエラー制御符号化技法の数学的記述、ならびに(3)本発明の一実施の形態を表す方法の実施、に分割される。
[3次元データ記憶媒体のクラスの説明および3次元データ記憶媒体のクラスの障害モードの特徴付け]
図1は、本発明の一実施の形態を表す方法によってデータが符号化される3次元データ記憶媒体を示している。
このデータ記憶媒体は、例えばセル102などの複数のセル、すなわちデータ記憶ユニットを含む実線の長方形と考えることができる。
このデータ記憶媒体は、3つの直交軸x、y、およびz104に平行なエッジに沿った寸法、すなわちエッジに沿ったデータ記憶ユニットの個数によって特徴付けられる。
この図およびこれ以降の図ならびに説明では、伝統的でない左手座標系を使用する。
したがって、図1に示す3次元データ記憶媒体は、左方向のx軸106、上方向のy軸108、および用紙の平面から外部に向かうz軸110を有する寸法n、n、およびnを有する。
以下の解説では、3次元データ記憶ボリュームVを、以下のように、インデックスi、j、およびlを有するデータ記憶ユニットの集合として表記する。
{(i,j,l):0≦i<n,0≦j<n,0≦l<n
以下の擬似コードの実施態様では、3次元データ記憶ボリュームVの各要素を、以下に示すように、x軸に対応するインデックスx、y軸に対応するインデックスy、およびz軸に対応するインデックスzによって指定することができる。
V[x][y][z]
単一の3次元データ記憶ボリュームVにデータを符号化することについて、本発明の一実施の形態を説明する。
一般に、実際の3次元データ記憶媒体は、例えば図1に示す3次元データボリュームVのような個々の3次元データボリュームを数十万個、数百万個、さらには数十億個含む。
説明する本発明の実施の形態は、3次元データ記憶媒体全体の3次元データボリュームのそれぞれに対して、明確な順序で連続的に適用することができる。
単一の3次元データ記憶ボリュームV内のデータ記憶ユニットのいくつかのタイプのサブセットが、以下の解説および以下に提供する擬似コードの実施態様で使用される。
第1のタイプのサブセット、すなわちパーティションは、「zライン」と呼ばれる。
図2は、3次元データ記憶ボリュームV内のzラインを示している。
zラインは、すべてが同一のx軸座標およびy軸座標を有するデータ記憶ユニットの集合である。
換言すると、x座標「a」およびy座標「b」によって指定されるzラインは、次のように表記することができる。
{(i,j,l):i=a,j=b,0≦l<n
また、zラインは、「Vxy」と表記して指定することもできる。
zライン内の特定のデータ記憶ユニットは、表記「Vxy[z]」を使用して擬似コードルーチンで指定してアクセスすることができる。
図2から分かるように、zライン202は、本質的には、z軸の方向に向いたデータ記憶ユニットからなる直線状の配列である。
データ記憶ユニットの第2のタイプのサブセット、すなわちパーティションは、「xyスライス」と呼ばれる。
図3は、3次元データ記憶ボリュームV内のxyスライスを示している。
図3に示すように、xyスライスは、データ記憶ボリュームV内において、z軸に垂直なデータ記憶ユニットからなる平面である。
xyスライス内のすべてのデータ記憶ユニットは、同一のzインデックスを有する。
したがって、z軸座標「c」におけるxyスライスは、次のように指定することができる。
{(i,j,l):0≦i<n,0≦j<n,l=c}
あるいは、次のように指定することもできる。
z=c
本発明の一実施の形態を説明する擬似コードルーチンでは、xyスライス内のデータ要素を、表記「V[x][y]」を介して指定しアクセスすることができる。
付加的なサブセットとしては、yzスライスV、xzスライスV、xラインVyz、およびyラインVxzがある。
3次元データ記憶媒体のクラスには、エラー制御符号を介して検出および訂正を行う必要のある2つの異なるタイプの障害モードが存在する。
第1の障害モードは、「十字交差エラー」と呼ばれる。
図4は、データ記憶ボリュームV内におけるデータ記憶ユニットの十字交差を示している。
図4に示すように、3次元データ記憶ボリューム内のxライン402およびyライン404は、共通のデータ記憶ユニット406で交差する。
xライン402およびyライン404は、特定のxyスライス内に存在する。
第1のタイプの障害モードには、図4に示すような十字交差内の1つまたは2つ以上のデータユニットの障害が含まれる。
3次元データ記憶ボリュームVの第2のタイプの障害モードは、xyスライス全体の障害である。
以下の解説では、これらの2つの異なるタイプの障害モードを、「十字交差障害」および「スライス障害」、あるいは、「タイプ1傷害」および「タイプ2障害」と呼ぶこととする。
十字交差障害は、十字交差エラー、すなわちタイプ1エラーを引き起こし、スライス障害は、スライスエラー、すなわちタイプ2エラーを引き起こす。
説明する本発明の実施の形態は、3次元データ記憶ボリュームV内の異なるt個の十字交差エラーと、多くとも単一のスライスエラーの検出および訂正を行うように設計される。
これらのエラーは、3次元データ記憶媒体のクラスに発生し得る最も確率の高いエラーと認められる。
[選択したエラー制御符号化技法の数学的記述]
説明する本発明の実施の形態は、エラー制御符号化のいくつかの既知の技法を使用する。
この分野の優れた参考文献は、LinおよびCostello著「Error Control Coding: The Fundamentals and Applications」Prentice-Hall, Incorporated, New Jersey, 1983という教科書である。
この小節では、本発明に使用されるエラー検出技法およびエラー訂正技法の簡単な説明を行う。
さらに詳細な内容は、上記参考にした教科書、または、この分野の他の多くの教科書、論文、および雑誌記事から得ることができる。
エラー検出およびエラー訂正を説明する際に、伝送、記憶、および検索が行われるデータを1つまたは2つ以上のメッセージとして記述することが役に立つ。
ここで、メッセージμは、体(field)Fの要素であるシンボルμの順序列を含む。
メッセージμは、次のように表現することができる。
μ=(μ,μ,…μk−1
上記数式において、μ∈Fである。
体Fは、乗算および加算のもとで閉じた集合であり、逆数と加法の逆元とを含む集合である。
計算によるエラー検出およびエラー訂正では、素数と等しい大きさを有する整数の部分集合を含んだ体を使用することが一般的であり、この体では、加算演算子および乗算演算子が、モジュロ加算およびモジュロ乗算として定義される。
実際には、バイナリ体が一般的に使用される。
素数、その最も多くは2、の累乗に等しい大きさを有する体が、かなり一般的に使用される。
これらの体では、加算演算子および乗算演算子は、モジュロ既約多項式により実行される。
一般に、元のメッセージは、同様に体Fの要素の順序列を含む符号化メッセージcに符号化される。
この符号化メッセージcは、次のように表現される。
c=(c,c,…cn−1
上記数式において、c∈Fである。
説明する本発明の実施の形態は、ブロック符号化技法を使用する。
このブロック符号化技法では、データは、ブロックに符号化される。
この解説では、ブロックは、一定数のk個のシンボルを含むメッセージμであって、n個のシンボルの順序列を含むメッセージcに符号化されるメッセージμとみなすことができる。
符号化メッセージcは、一般に、元のメッセージμよりも多くの個数のシンボルを含み、したがって、nは、kよりも大きい。
rをn−kに等しいものとすると、符号化メッセージのr個の余分のシンボルは、冗長検査情報を運ぶのに使用され、この冗長検査情報により、伝送、記憶、および検索の間に発生するエラーを、極めて高い検出確率で検出することが可能になり、多くの場合、訂正することが可能になる。
伝送、記憶、および検索のためのデータの符号化、ならびに、その後の符号化データの復号は、この符号化データの転送、記憶、および検索の間にエラーが発生しない場合には、次のように表記することができる。
μ→c(s)→c(r)→μ
上記数式において、c(s)は、伝送前の符号化メッセージであり、c(r)は、最初に検索したメッセージまたは最初に受信したメッセージである。
このように、最初のメッセージμは、符号化されて、符号化メッセージc(s)が生成され、その後、この符号かメッセージc(s)は、送信もしくは記憶されるか、または、送信されて記憶され、その後、最初の受信メッセージc(r)として検索されるか、または、受信される。
最初の受信メッセージc(r)は、破損を受けていない場合、その後、復号されて、元のメッセージμが生成される。
上述したように、エラーが発生していない場合、元の符号化メッセージc(s)は、最初の受信メッセージc(r)に等しく、最初の受信メッセージc(r)は、エラー訂正を受けることなく、直接、元のメッセージμに復号される。
符号化メッセージの伝送、記憶、または検索の間にエラーが発生した場合、メッセージの符号化および復号は、次のように表現することができる。
μ(s)→c(s)→c(r)→μ(r)
したがって、上述したように、最終メッセージμは、最初のメッセージμに等しくなることもあるし、等しくならないこともある。
等しくなるかならないかは、元のメッセージμを符号化し、最初の受信メッセージc(r)を復号または復元して最終受信メッセージμを生成するのに使用されるエラー検出技法およびエラー訂正技法の忠実度に依存する。
エラー検出は、次のことを判断するプロセスである。
C(r)≠c(s)
一方、エラー訂正は、以下に示すように、破損した最初の受信メッセージから最初の符号化メッセージを復元するプロセスである。
c(r)→c(s)
符号化プロセスは、μという記号で表されるメッセージを符号化メッセージcに変換するプロセスである。
あるいは、メッセージμは、Fの要素からなる文字からのシンボルの順序集合を含むワードとみなすことができ、符号化メッセージcは、同様に、Fの要素からなる文字からのシンボルの順序集合を含む符号ワードとみなすことができる。
ワードμは、Fの要素から選択されたk個のシンボルの任意の順序付けられた組み合わせとすることができる一方、符号ワードcは、以下の符号化プロセスを介してFの要素から選択されたn個のシンボルの順序列と定義される。
{c:μ→c}
線形ブロック符号化技法は、ワードμをk次元ベクトル空間のベクトルとみなして、以下のようにベクトルμを生成行列と乗算することにより、長さkのワードを符号化する。
c=μ・G
上記方程式のシンボル表記を展開すると、次の代わりとなる表現のいずれもが生成される。
Figure 2004334845
上記方程式において、g=(gi,0,gi,1,gi,2…gi,n−1)である。
線形ブロック符号の生成行列Gは、次の形を有することができる。
Figure 2004334845
あるいは、次の形を有することができる。
k,n=[Pk,r|Ik,k
このように、生成行列Gは、行列Pをk×kの単位行列Ik,kにより増強した形に配列することができる。
生成器によってこの形に生成された符号は、「組織符号」と呼ばれる。
この生成行列が、ワードμに適用された結果、符号ワードcは、次の形を有する。
c=(c,c,…,cr−1,μ,μ,…,μk−1
上記数式において、c=μ0,i+μ1,i,…,μk−1k−1,iである。
このように、組織線形ブロック符号では、符号ワードは、r個のパリティチェックシンボルcと、その後に続く元のワードμを含んだシンボルとを含む。
エラーが発生しない場合、元のワード、すなわちメッセージμは、対応する符号ワード内で平文の形で現れ、対応する符号ワードから容易に抽出することができる。
パリティチェックシンボルは、元のメッセージ、すなわちワードμのシンボルの線形結合であることが分かる。
有用な第2の行列の1つの形は、次のように定義されるパリティチェック行列Hr,nである。
r,n=[Ir,r|−P
すなわち、次のようになる。
Figure 2004334845
パリティチェック行列は、組織エラー検出(systematic error detection)および組織エラー訂正(systematic error correction)に使用することができる。
エラー検出およびエラー訂正には、以下のように、最初の受信メッセージまたは最初の検索メッセージc(r)からシンドロームSを計算することが必要となる。
S=(s,s,…,sn−k)=c(r)・H
上記数式において、Hは、パリティチェック行列Hr,nの転置行列であり、次のように表現される。
Figure 2004334845
シンドロームベクトルSの要素は、次のようになる。
=(c(r)−c(r)0,i−c(r)r+1l,i−c(r)r+22,i−…−c(r)n−1k−1,i
エラーベクトルeが、最初の受信メッセージc(r)と最初に準備された送信符号ワードc(s)との差分、すなわちそれら両者のベクトル減算の結果として次のように定義される。
Figure 2004334845
シンドロームベクトルSは、次のように、エラーベクトルに関係する。
S=c(r)H=(c(s)+e)H=c(s)H+eH=eH
エラー訂正には、以下の符号ワードc(s)を準備した後、最初の受信メッセージc(r)を受信または検索するまでに発生したエラーを特定することが必要となる。
エラー訂正の問題は、次のようなエラーベクトルeを見つける問題である。
eH=c(r)H
その後、エラー訂正が実行され、訂正されたワード
Figure 2004334845
が生成される。
この訂正されたワードは、最も確率の高い最初に送信された符号ワードまたは最初に記憶された符号ワードを表し、次の数式によって表される。
Figure 2004334845
[本発明の一実施の形態を表す方法の実施態様]
説明する実施の形態では、3次元データ記憶ボリュームV内の各データ記憶ユニットは、q個の要素を有する体Fの要素fである。
説明する実施の形態では、fは、4ビットで記憶できる整数の範囲と等しい0〜15の範囲にある整数値のいずれであってもよい。
図5Aは、本発明の一実施の形態を実践できるデータ記憶ボリューム内のデータ記憶ユニットを示している。
図5Aは、単一のデータ記憶ユニット502を、4つの別々のビットA〜Dを含むものとして考えることができることを示している。
図5Bは、データ記憶ユニットfの可能な値のそれぞれを、ビットA〜Dのビット値の順序付けられた異なる組み合わせとして考えることができることを示している。
図5Bでは、体Fの異なる要素fに、整数「0」〜「15」に相応する文字「a」〜「p」のラベルが付けられている。
明瞭にすると、図6は、3次元データ記憶ボリュームVの各データ記憶ユニットが、16要素の体Fの4ビット相当の要素fであることを示している。
上述したように、線形ブロック符号を使用して、メッセージ、すなわちワードを符号化するには、メッセージ、すなわちワードを使用して、追加するパリティチェックシンボルと共に、メッセージ、すなわちワードを平文の形で含む符号ワードを生成する必要がある。
図7は、符号化プロセスおよび復号プロセスを示している。
図7に示すように、各メッセージ、すなわち各ワードは、k個のシンボルの順序列を含む。
したがって、図7の左側の配列702(図7には配列702の一部のみを示す)は、長さkのq個のさまざまな異なる有効メッセージ、すなわちワードを列挙している。
配列702では、各行が、異なるメッセージ、すなわちワードを表す。
図7に示す例では、各ワード、すなわちメッセージは、長さk=4を有する。
このメッセージ、すなわちワードは、図7の右側の配列704に含まれる符号ワードに符号化される。
図7では、右側の配列704の各行は、左側の配列の対応する行のメッセージに対応する異なる符号ワードである。
図7から分かるように、各符号ワード内の最後の4つのシンボルが、その符号ワードを生成した平文メッセージに対応する。
したがって、どの特定の符号化/復号線形ブロック方式についても、パラメータkは、メッセージ、すなわちワードの長さをいい、パラメータnは、符号化メッセージまたは符号ワードの長さをいい、パラメータrは、その符号の最小ハミング距離をいう。
以下では、特定の組織線形ブロック符号を、表記「C[n,k,r]」によって参照することとする。
この表記において、Cは、符号の名前であり、nは、符号ワードの長さであり、kは、長さnの符号ワードを生成するワードの長さであり、rは、符号の最小ハミング距離である。
本発明の一実施の形態を、擬似コードの実施態様およびいくつかの例図の双方を同時に参照して以下に説明する。
擬似コードの実施態様は、表記規約とプログラム言語C++の要素とのうちのいくつかを使用する高級擬似コード言語で記述される。
ただし、この高級擬似コード言語には、本発明の一実施の形態を表す方法の動作を簡潔かつ明瞭に指定するのに適した高レベルの数学表記も使用される。
以下の擬似コードには、簡潔にするために、サブルーチンのローカル変数およびスコーピングルールは使用されないことに留意されたい。
例えばC++といった通常のプログラム言語による実際の実施では、グローバル変数の除去、および、十分に構造化されたインターフェースを通じたルーチン間のデータの交換の制御といった通常のプログラムの規約に従うものと予想される。
まず、ルーチン「encode(符号化)」を提供する。
このルーチン「encode」は、以下の宣言から開始する。
ルーチンencode
1 Declarations(宣言):

3 F q個の要素の体
4 V,V' 寸法n×n×nのセルのボリューム。
各セルは体Fの要素を含む

6 C=n−kの組織線形符号C[n,k,3]
7 C=n−kの組織線形符号C[n,k,3]
8 Cxy=n−kの組織積符号C[n,k,9]
9 C=n−kの組織線形符号C[n,k,2t+1]
10 C' r'=n−k'の組織線形符号C'[n,k',t+1]
11 v0 長さnを有する体Fの要素のベクトル
12 v1 長さk'を有する体Fの要素のベクトル
13 v2、v3 長さkを有する体Fの要素のベクトル
14 sum(和) 体Fの要素の値を有する変数
15 x、y、z、i 整数
16 getInfo(n)(情報取得(n)) 入力ストリームから体Fのn個の情報要素を取得する
このルーチン「encode」は、複数のデータ記憶ユニットを含む3次元データ記憶ボリュームにデータを符号化する方法を含む。
この方法は、データの列を受信するステップと、線形積符号を使用してそのデータの列を符号化するステップであって、それによりデータをデータ値の符号配列に符号化する、データ列を符号化するステップと、2つの線形ブロック符号を使用するステップであって、それによりデータ値のベクトルにデータを符号化する、使用するステップとを含む。
ルーチン「encode」は、上記ライン3で宣言されるような体Fの要素qを含むワードを受け取って符号化する。
上記ライン4で宣言されるような、データ記憶ユニットからなる2つの異なる3次元ボリュームVおよびV'が使用される。
説明する実施の形態は、上記ライン6〜10で宣言されるような5つの異なる組織線形ブロック符号C、C、C、C、およびC'を使用する。
これら5つの異なる組織線形ブロック符号のそれぞれについてのパラメータk、n、およびrは、この宣言で指定される。
組織線形ブロック符号Cは、積符号である。
積符号は、1次元符号ワードではなく、2次元符号配列を生成する2つの簡単な組織線形符号を結合したものである。
図8は、積符号により生成される符号配列のレイアウトを示す。
図8に示すように、この符号配列は、3つのパリティチェックシンボル領域804〜806に加えて、符号配列の平文領域802内にk個の平文シンボルを含む。
これらの領域は、図8に示すような寸法および配置を有する。
符号配列は、3次元データ記憶ボリューム内では平面として記憶される。
積符号は、エラー制御符号化の分野で既知であり、上記で引用した教科書"Error Control Coding: Fundamentals and Applications"に記載されている。
ルーチン「encode」は、上記ライン11〜13で宣言される体Fの要素の4つの異なるベクトルv0、v1、v2、およびv3を使用する。
これらのベクトルは、その宣言で指定された長さを有する。
上記ライン14で宣言される変数「sum」は、体Fの要素を記憶し、この要素は、体Fの2つの要素の和を表す。
ルーチン「encode」は、上記ライン15で宣言される4つの異なる整数変数「x」、「y」、「z」、および「i」を使用する。
最後に、ルーチン「encode」は、符号化のため、体Fの指定された個数の情報要素を入力ストリームから取得する関数「getInfo」を使用する。
ルーチン「encode」は、上記ライン16で宣言される関数「getInfo」を呼び出して、3次元データ記憶ボリュームVに符号化される情報要素の連続したそれぞれの集合を取得する。
以下に示すように、ルーチン「encode」は、次の表記規約を使用する。
1 Notational Conventions(表記規約):

3 m=C(k) 符号Cを長さkの体Fの要素の列に適用して符号ワードmを生成する


6 m=C(k) 積符号Cを長さkの体Fの要素の列に適用して、寸法n、nの符号配列mを生成する

ルーチン「encode」は、4つのサブルーチンを使用する。
これらのサブルーチンを以下に個別に説明する。
第1のサブルーチンSubtractZLineFromInfoVector(情報ベクトルからzラインの減算)を以下に提供する。
1 Routine SubtractZLineFromInfoVector(x,y)

3 /*
Figure 2004334845
を計算する。
ここで、μi,jは、体Fの情報要素のベクトルであり、
Figure 2004334845
は、ボリュームVのzラインベクトルVi,jの上位のk'個の要素である。


6 */

8 v1=getInfo(kz');
9 for (i = 0, z = nz - kz'; z<nz; i++, z++)
10 {
11 v1[i] = v1[i] - Vxy[z];
12 }
SubtractZLineFromInfoVectorは、関数「getInfo」を介して情報要素ストリームからk'個の情報ユニットをフェッチし、それらの情報ユニットから、3次元データ記憶ボリュームVのzラインの現在の内容を減算する。
その結果は、ベクトルv1に残される。
サブルーチンComputeXZProjectionVector(XZ投影ベクトルの計算)を次に提供する。
1 Routine ComputeXZProjectionVector(y)

3 v0 = 0;
4 for (x =1; x < nx; x++)
5 for (z = 0; z < nz; z++)
6 {
7 v0[z] = v0[z] + Vxy'[z]
8 }
ComputeXZProjectionVectorは、3次元データ記憶ボリュームV'内のxzスライス、すなわちxz平面の内容をベクトル「v0」に投影する。
サブルーチンComputeYZProjectionVector(YZ投影ベクトルの計算)は、上記ルーチンの計算と同様にして、3次元データ記憶ボリュームV'内のyzスライスから投影ベクトル(projection vector)を計算する。
1 Routine ComputeYZProjectionVector(x)

3 v0 = 0;
4 for (y =1; y < ny; y++)
5 for (z = 0; z < nz; z++)
6 {
7 v0[z] = v0[z] + Vxy'[z]
8 }
サブルーチンComputeProjectionVolumeDifference(投影ボリュームの差分の計算)を次に提供する。
1 Routine ComputeProjectionVolumeDifference(x,y)

3 for (z = nz - kz, i = 0; z < nz; z++, i++)
4 {
5 v2[i] = v0[z] + Vxy[z]
6 }
このサブルーチンは、3次元データ記憶ボリュームVのzラインの内容をベクトル「v0」の内容に加算し、その和をベクトル「v2」に置く。
最後に、ルーチン「encode」の主要部分を提供する。
1 Main (Encode)(メイン(Encode))

3 /* 体Fのk(n−1)+k'(n−n−n+1−k)+k(n+n+1)個の情報要素を、寸法n、n、nを有する体Fの要素からなる記憶ボリュームVに符号化する


6 */
7 for (z = 1; z < nz; z++)
8 {
9 Vz = CxCy (getInfo(kxky));
10 }
11 for (x = 0; x < nx; x++)
12 for (y = 0; y < ny; y++)
13 {
14 sum = 0;
15 for(z = 1; z < nz; z++)
16 {
17 sum += Vxy[z];
18 }
19 Vxy[z] = -sum
20 }
21 for (x = 1; x < rx; x++)
22 for(y=1; y = ny; y++)
23 {
24 SubtractZLineFromInfoVector(x,y);
25 Vxy' = Cz'(v1);
26 }
27 for (y=1; y = ry; y++)
28 for (x = rx; x < nx; x++)
29 {
30 SubtractZLineFromInfoVector(x,y);
31 Vxy' = Cz'(v1);
32 }
33 for (y=1; y < ny; y++)
34 {
35 v3 = getInfo(kz);
36 ComputeXZProjectionVector(y);
37 ComputeProjectionVolumeDifference(0,y);
38 V0,y' = Cz(v3 - v2) - v0;
39 }
40 for (x = 0; x < nx; x++)
41 {
42 v3 = getInfo(kz);
43 ComputeYZProjectionVector(x);
44 ComputeProjectionVolumeDifference(x,0);
45 Vx,0' = Cz(v3 - v2) - v0;
46 }
47 for (x = 0; x < nx; x++)
48 for (y = 0; y < ny; y++)
49 {
50 Vxy = Vxy + Vxy';
51 }
このルーチンは、基本的には、入力ストリームから複数の情報要素、すなわち、ライン3のコメントで上述した個数の情報要素を取得し、これらの情報要素を3次元データ記憶ボリュームVに符号化する。
符号化の終わりにあたり、比較的少ない個数のパリティチェックシンボルと共に、これらの情報要素は、データ記憶ボリュームV内では平文の形で現れる。
最初に、ライン7〜10のforループで、ルーチン「encode」は、kという長さの情報要素を入力ストリームからフェッチし、これらの情報要素を積符号Cを介して符号配列に符号化し、n−1個のxyスライスを3次元データ記憶ボリュームV内に形成する。
図9〜図13は、ライン7〜10のforループによりn−1個のxyスライスで3次元データ記憶ボリュームVを満たす様子を示している。
この最初のステップでは、z軸座標「0」を有するxyスライスは、3次元データ記憶ボリュームVに入力されないことに留意されたい。
図9に示すように、z座標1を有する最初のxyスライスの行のパリティチェックシンボルは、Cのパリティチェックルールを情報シンボルの行902に適用して長さnの符号化された行904を生成し、これらの符号化された行、例えば符号化された行904を3次元データ記憶ボリュームV100に入力することにより満たされるものと考えることができる。
図10に示すように、特定のxyスライス1002は、部分的には、組織線形ブロック符号Cを適用して長さnの符号化された行を得ることにより生成されるk個の行から構築されると考えることができる。
図11に示すように、特定のxyスライスは、は、組織線形ブロック符号Cをk個の情報要素1104に適用することにより得られる列1102からさらに構成される。
各行の最初のk個の情報ユニットの内容および各列の最初のk個の情報ユニットの内容は、情報入力ストリームから得られる平文の情報シンボルである。
図12に示すように、最終的なxyスライス1002は、積符号Cをk個の情報要素に適用した結果を表す符号配列である。
xyスライス1002は、パリティチェックシンボルからなる垂直な領域1004および水平な領域の1006(図12の陰影を付けた部分)と共に、k個の平文の情報ユニット(図12の陰影のない部分)を含むことに留意されたい。
図13に示すように、ライン7〜10のforループは、z座標1からz座標n−1に実行して、パリティチェック要素1304および1306(これらのパリティチェック要素は陰影を有する)の左上のボリュームに平文の情報要素1302のボリュームを生成する。
積符号は、3次元データ記憶ボリュームVを満たし、パリティチェックシンボルの個数nと同等のエラー検出機能およびエラー訂正機能を提供するために使用できることに留意されたい。
しかしながら、以下から分かるように、このような技法は、上述した可能性のある2つのタイプの障害モードから発生するエラーの検出および訂正に必要な個数よりもずっと多い個数のパリティチェックシンボルを使用する。
したがって、説明する本発明の実施の形態は、3次元データ記憶ボリュームV内において、平文の情報要素を記憶するデータ記憶ユニットの使用比率をより大きくし、それに応じて、3次元データ記憶ボリュームV内におけるパリティチェック情報要素の比率を削減するために使用される。
次に、ライン11〜20のネストしたforループにおいて、ルーチン「encode」は、図13に示す3次元データ記憶ボリュームVの各zラインのデータ記憶ユニットの和を計算し、3次元データ記憶ボリュームV内の各zラインの最初の要素にその和の加法の逆元を記憶する。
このプロセスを図14および図15に示す。
図14に示すように、xおよびyの座標が(0,0)である最初のzライン1402が、ライン11〜24のネストしたforループの最初の繰り返しで考慮される。
zライン1402内のデータユニットは、モジュロ加算を使用して和が求められ、その和の加法の逆元が、zラインの最初のデータ記憶ユニット1404に記憶される。
ライン11〜20のネストしたforループの実行の結果、3次元データ記憶ボリュームV100の最初のxyスライスは、zラインの和の加法の逆元により満たされる。
図16は、ライン11〜20のネストしたforループの実行後の3次元データ記憶ボリュームVの内容を示している。
ボリュームの底部側および右側におけるボリュームのパリティチェック領域内のzラインのそれぞれ、例えばzライン1602は、パリティチェックシンボルのみを含む。
ボリュームの大部分の平文情報シンボルの部分の内部のzラインのそれぞれ、例えばzライン1604は、そのzラインの最初のデータ記憶ユニットを除くすべてで平文の情報シンボルを含む。
最初のデータ記憶ユニット、例えばzライン1604のデータ記憶ユニット1606は、そのzラインの残りのデータ記憶ユニットに記憶された情報要素の和の加法の逆元を含む。
次に、ライン21〜26のネストしたforループにおいて、ルーチン「encode」は、追加情報シンボルを第2の3次元データ記憶ボリュームV'に符号化する。
この追加情報シンボルは、3次元データ記憶ボリュームV'の右側の複数の垂直なyzスライスを形成するzラインに符号化される。
forループの引数から分かるように、ライン21〜26のネストしたforループでは、r個未満の個数に等しい複数の垂直なyzスライス、すなわち、組織線形ブロック符号Cによって生成されるパリティチェックシンボルの個数のyzスライスが、x軸座標1から開始してx軸座標r−1まで生成される。
この符号化は、特定のzラインの3次元データ記憶ボリュームVの現在の内容を、新しく得た情報要素を含むベクトルから減算すること、ライン29で、その結果のベクトルを組織線形ブロック符号C'を使用して符号化して、3次元データ記憶ボリュームV'内のz軸として記憶される符号ワードを生成することとを含む。
このプロセスを図17および図18に示す。
図17に示すように、3次元データ記憶ボリュームV'に加えられる最初のzラインに対して、k'個の情報要素が、入力ストリームから得られ、ベクトルμ1702にロードされる。
このベクトルμ1702から、3次元データ記憶ボリュームV1704の対応するzラインの内容が減算され、その結果が、ベクトル1706に置かれる。
次に、このベクトルは、ルーチン「encode」のライン29で、組織線形ブロック符号C'を使用して符号化され、符号ワード、すなわちベクトル1708が生成される。
次に、この符号ワード1708は、3次元データ記憶ボリュームV'1710に記憶される。
記憶される座標は、得られた情報要素のベクトルμ1702から減算された3次元データ記憶ボリュームV1704のzラインの座標x、yに対応するx、y座標である。
ライン21〜26のforループの実行の結果、複数の垂直なyzスライス、例えばyzスライス1802が、3次元データ記憶ボリュームV'に入力される。
1つのyzスライスのみを図18に示しているが、ライン21〜26のネストしたforループは、一般に、r−1個のこのようなyzスライスを3次元データ記憶ボリュームV'に配置する。
ライン27〜32のネストしたforループも、同様にして、組織線形ブロック符号「C'」によって符号化されたzラインの水平ブロックをデータ記憶ボリュームV'に挿入する。
ライン21〜26およびライン27〜32のネストしたforループの実行の結果は、データ記憶ボリュームV'内において、鏡像のL字型のzラインの領域となる。
図19は、ルーチン「encode」のライン21〜26およびライン27〜32のネストしたforループの実行の結果を示している。
図19では、単一のyzスライスおよび単一のxyスライスのみを示しているが、上述したように、ライン21〜26およびライン27〜32のネストしたforループは、一般に、3次元データ記憶ボリュームV'内のzラインの垂直なブロックおよび水平なブロックを生成する。
垂直なyzスライスは、x軸座標1から開始して、x軸座標r−1を通る左側まで続く。
水平なxzスライスは、y軸座標1から開始して、y軸座標r−1を通る上側まで続く。
3次元データ記憶ボリュームV'の最右端のyzスライスおよび最下端のxzスライスは、ライン27〜32のネストしたforループの実行後であってもまだ満たされないことに留意されたい。
次に、ライン33〜39およびライン40〜46のforループにおいて、3次元データ記憶ボリュームV'の最右端のyzスライスおよび最下端のxzスライスが、投影ベクトルの計算および符号化を含む多少複雑な操作を介して満たされる。
この操作は、上記擬似コードを考察することにより理解できるが、おそらくは、図20〜図23と同時に擬似コードを考察することにより最もよく理解できる。
最右端のyzスライスには、xz投影ベクトルの計算が必要となる。
図20は、この投影ベクトルの計算を示している。図20に示すように、長さkの投影ベクトル
Figure 2004334845
が、y軸座標1を有するxz平面2002内のすべてのデータ記憶ユニットの値の和を求めて、その和をベクトル
Figure 2004334845
に置くことによって計算される。
換言すると、任意の特定のz軸座標に対して、特定のz軸座標zを有する投影ベクトル
Figure 2004334845
のデータ記憶ユニットは、z軸座標zを有するxz平面2002内のすべてのデータ記憶ユニットの和を含む。
同様に、投影ベクトル
Figure 2004334845
2004は、1とr−1との間のx軸座標およびy軸座標2を有するxzスライスのすべてのzラインの和を表す。
図21は、計算された投影ベクトルを使用して、3次元データ記憶ボリュームV'に記憶するためのzラインを生成する様子を示している。
図21に示すように、3次元データ記憶ボリュームVの対応するzライン2102が、計算された投影ベクトル2104から減算され、その結果が、入力ストリームから得られたk個の情報要素2106に加算される。
その結果のベクトルは、組織線形符号Cによって(ルーチン「encode」のライン38および45で)符号化され、符号ワードベクトル2108が生成される。
この符号ワードベクトル2108から、投影ベクトルが減算される。
符号ワード2108は、3次元データ記憶ボリュームV'に記憶される。
記憶場所は、x軸座標0と、計算する投影ベクトルから減算された3次元データ記憶ボリュームVの対応するzライン2102のy軸座標に等しいy軸座標とを有するzラインである。
図22に示すように、ライン33〜39のforループの完了により、3次元データ記憶ボリュームV'の最右端のyzスライス2202が満たされる。
ただし、このyzスライスの最初のzラインは除かれる。
ライン40〜46のforループの実行の結果、3次元データ記憶ボリュームV'の最下端の水平なxzスライスにzラインが記憶される。
これらのzラインは、組織線形ブロック符号Cの符号ワードを表すものである。
ライン40〜46のforループの実行が終了すると、3次元データ記憶ボリュームV'は、0とr−1との間のx座標を有するyzスライスと、0からr−1までのy軸座標を有するxzスライスとを含む。
図23に示すように、3次元データ記憶ボリュームV'のこれらの最も外側のzライン、例えば最も外側のzライン2303は、k個の平文の情報シンボルと、r個のパリティチェックシンボル2304(図23に陰影を付けて示す)とを含む。
内部のyzスライスおよびxzスライスは、k'個の平文の情報シンボル2306と、r'個のパリティチェックシンボル2308とを有するzラインを含む。
最後に、ライン47〜51のネストしたforループにおいて、3次元データ記憶ボリュームVおよびV'のzラインが、共に加算されて、3次元データ記憶ボリュームVに記憶される。
図24は、ライン47〜51のネストしたforループの操作を示している。
図25は、ルーチン「encode」によって実行される符号化操作の最終的な結果を示している。
図25に示すように、3次元データ記憶ボリュームV100内の膨大な大部分のデータ記憶ユニットは、平文の情報シンボルを含む。
これらの記憶ユニットは、図25では、陰影を付けていない部分で示される。
z軸座標「0」を有するxyスライス2502、小さな垂直のパリティチェックシンボルの領域2504、および同様に小さな水平のパリティチェックシンボルの領域(図25では見えない)のみが、3次元データ記憶ボリュームVに含まれる。
次に、ルーチン「decode(復号)」を説明する。
このルーチンは、上述したタイプ1障害モードおよびタイプ2障害モードによって生成されたエラーが、受信または検索された3次元データ記憶ボリューム
Figure 2004334845
内に存在するかどうかを判断するために使用される。
ルーチン「decode」は、複数のデータ記憶ユニットを含む3次元データ記憶ボリューム
Figure 2004334845
のデータを復号する方法を提供する。
この方法は、3次元データ記憶ボリューム
Figure 2004334845
内のデータ値の符号化に使用される積符号に関連したパリティチェック行列の転置を使用して初期シンドロームボリュームを計算するステップと、初期シンドロームボリューム内のベクトルに復号器を適用することにより、初期シンドロームボリュームから2次シンドロームボリュームを計算するステップと、2次シンドロームボリュームおよび3次元データ記憶ボリューム
Figure 2004334845
の平面から3次元記憶ボリューム
Figure 2004334845
内の複数の平面破損エラーを判断するステップと、平面破損エラーが検出されると、エラーボリュームを計算して、そのエラーボリュームを3次元データ記憶ボリューム
Figure 2004334845
から減算することにより、その平面破損エラーを訂正する訂正するステップとを含む。
ルーチン「decode」は、次の宣言を含む
1 ROUTINE DECODE
2 Declarations:

4 t 符号化されたボリュームに許容されるタイプ1エラーの個数
5 F q個の要素からなる体
6 S
Figure 2004334845
、ΔS 寸法r×n×nのセルのボリューム。
各セルは、体Fの要素を含む。

8 S
Figure 2004334845
、ΔS 寸法n×r×nのセルのボリューム。
各セルは、体Fの要素を含む。

10 E 寸法n×n×nのセルのボリューム。
各セルは、体Fの要素を含む。
11
12 L xyスライスの異なるzインデックスの集合
13 その集合のメンバの個数を返すsize()(サイズ())、その集合の最初のメンバを返すgetFirst()(最初の取得())、およびその集合の連続した次のメンバを返すgetNext()(次の取得())を含む。
14
15
16
17
Figure 2004334845
寸法n×n×nのセルの受信ボリューム
18 各セルは、体Fの要素を含む。
19 Σ 寸法n×nのセルの平面
20 各セルは、体Fの要素を含む。
21 D1=n−kを有する組織線形符号C[n,k,3]の1エラー訂正復号器
22
23 D1=n−kを有する組織線形符号C[n,k,3]の1エラー訂正復号器
24
25 D1=n−kを有する組織線形符号C[n,k,2t+1]の1エラー訂正復号器
26
27 Dt=n−kを有する組織線形符号C[n,k,2t+1]のtエラー訂正復号器
28
29
30 D1' r=n−k'を有する組織線形符号C'[n,k',t+1]の1エラー訂正復号器
31
32 Dt' r=n−k'を有する組織線形符号C'[n,k',t+1]のt消去訂正復号器
33
34 x,y,z 整数
35 getData() 体Fの情報要素を含む符号化されたボリュームを得て、その情報要素を
Figure 2004334845
に記憶する。
36
37 error() 復号障害ルーチン
38 output(V) 体Fの情報要素を含む、訂正を受けた、符号化されたボリュームを出力する。
39
40
ライン4の定数tは、上記で宣言されるように、十字交差エラーの個数であり、説明する符号化技法が、説明する本発明の実施の形態によって検出して訂正するように設計された個数である。
上記ライン6〜9で宣言されるシンドロームボリュームS
Figure 2004334845
、ΔS、S
Figure 2004334845
、およびΔSは、すべて、上記宣言で指定した寸法を有するデータ記憶ユニットのボリュームであり、上記ライン17〜18で宣言される受信3次元データ記憶ボリューム
Figure 2004334845
の計算されたシンドロームを記憶するために使用される。
上記ライン10〜11で宣言される3次元データ記憶ボリュームEは、上述したエラーベクトルeの3Dの類似物であるエラーボリュームを記憶する。
上記ライン12〜16で宣言される集合Lは、エラーを含むと判断される受信3次元データ記憶ボリューム
Figure 2004334845
のxyスライスのzインデックスを含む。
この集合Lは、含まれるzインデックスの個数を報告し、含まれるzインデックスにアクセスするためのメンバ関数「size」、「getFirst」、および「getNext」を使用する。
寸法n×nのセルの平面は、ライン19〜20のセル配列「S」として宣言される。
このセル配列は、
Figure 2004334845
のz平面の和を求めるために使用される。
上記ライン21〜33で宣言される復号器D1、D1、D1、Dt、D1'、およびDt'は、上述したルーチン「encode」で使用される組織線形ブロック符号化器に対応する線形ブロック復号器である。
これらの復号器は、上記宣言に付随したコメントに説明されている。
ライン34では、ルーチン「decode」内で使用される整数x、y、およびzが宣言される。
上記ライン35で宣言される関数「getData」は、データ記憶源またはデータ伝送源からの符号化された情報要素を得て、それらの情報要素を3次元データ記憶ボリューム
Figure 2004334845
に置く。
上記ライン37で宣言される関数「error(エラー)」は、復号障害を報告する。
上記ライン38で宣言される関数「output(出力)」は、訂正を受けた、符号化された情報シンボルを出力ストリームに出力する。
ルーチン「decode」は、以下に提供するサブルーチンcomputeE(Eを計算)を使用する。
1 Routine computeE

3 2つの方程式を満たすEを計算して返す。
Figure 2004334845
Figure 2004334845
このサブルーチンは、当該ルーチンのライン4および5に設けられた2つの行列方程式を満たすエラーボリュームのxyスライスEを計算する。
およびH は、上述したルーチン「encode」で使用される組織線形ブロック符号CおよびCのパリティチェック行列HおよびHを転置することにより得られる。
2つの制約方程式を満たすエラーボリュームのxyスライスを計算することは、エラー制御符号化およびエラー制御復号においては、既知の数学的問題であり、当業者は、さまざまな既知の技法を提供することができる。
この計算には、復号器D1およびD1が使用される。
Figure 2004334845
の各xラインから、D1は、Eの各xラインを計算する。
次に、
Figure 2004334845
の各yラインから、D1は、Eの各yラインを計算する。
図4を参照して、Eを、その図の十字交差パターンを含むxyスライスとし、そのパターンをエラーパターンとみなす。
xライン402を除くEの各xラインは、多くとも1つのエラーしか含まないので、復号器D1は、おそらく406を除くE内のyライン404のすべての項目を復元するが、xライン402を誤って復号することがある。
その復号器は、Eのただ1つの破損したxラインであるxライン402を残す。
このxライン402は、D1に訂正される。
ルーチン「decode」の本体は、次のようになる。
Figure 2004334845
Figure 2004334845
まず、上記ライン3において、受信されるか、または、検索される符号化情報が取得され、ルーチンgetDataの呼び出しを介して、3次元データ記憶ボリューム
Figure 2004334845
に置かれる。
次に、ライン4〜8のforループにおいて、2つの初期シンドロームボリューム
Figure 2004334845
および
Figure 2004334845
が、3次元データ記憶ボリューム
Figure 2004334845
内に連続的なxyスライスの行列乗算によって計算される。
この行列乗算は、上述したルーチン「encode」に使用される組織線形ブロック符号CおよびCのパリティチェック行列HおよびHの転置行列によって行われる。
図26は、シンドロームボリューム
Figure 2004334845
の計算を示している。
3次元データ記憶ボリューム
Figure 2004334845
2604の各xyスライス、例えばxyスライス2602は、符号Cのパリティチェック行列Hのn×r転置行列2606と乗算されて、n×rのxyスライス2608が、シンドロームボリューム
Figure 2004334845
2610内に生成される。
図27は、図26と同様の方法によるシンドロームボリューム
Figure 2004334845
の計算を示している。
ライン9で、エラーボリュームEは、すべてのデータ記憶ユニットに値「0」を含むように設定される。
次に、初期シンドロームボリューム内のベクトルに復号器を適用することにより、初期シンドロームボリュームから、2次シンドロームボリュームが計算される。
ライン10〜13のforループにおいて、シンドロームボリュームSのzラインが、シンドロームボリューム
Figure 2004334845
からの対応するzラインを復号することにより計算される。
同様に、ライン14〜17のforループにおいて、シンドロームボリュームSのzラインが、シンドロームボリューム
Figure 2004334845
の対応するzラインを復号することにより計算される。
ライン19では、集合Lが、z座標を含まないように初期化される。
次に、ライン21〜24のforループにおいて、シンドロームボリュームSおよびS内の各xyスライスが、破損したxyスライスを検出するために検査され、z軸座標zを有する破損したxyスライスをそれぞれ検出することにより、そのz軸座標zが集合Lに置かれる。
平面破損エラーの個数は、集合Lに置かれたz軸座標の個数に基づいて決定することができる。
ライン25において、ルーチン「decode」は、ライン21〜24のforループでエラーが検出されたかどうかを判断する。
エラーが検出された場合には、ライン27で、ルーチン「decode」は、セル配列Sを0の値を含むように設定し、次に、ライン28〜31のforループで、
Figure 2004334845
のxyスライスの和をSに加算する。
次に、ライン32で、ルーチン「decode」は、3次元データ記憶ボリューム
Figure 2004334845
に、パリティエラーが存在するかどうかを判断する。
パリティエラーは、Sのゼロでない値によって示される。
パリティエラーが存在する場合において、tの値が1であるときは、復号エラーが、ライン36で返されて、ルーチン「decode」は,ライン37で終了する。
tが1である場合、エラーを訂正することができない。
次に、ライン39〜43のネストしたforループにおいて、シンドロームボリューム
Figure 2004334845
および
Figure 2004334845
のzラインが、エラーを検出するためにチェックされ、エラーが発見されると、xyスライスのz軸座標が、集合Lに記憶される。
集合Lが、この時、ルーチン「decode」のライン44によって検出されるように、1とは異なるサイズを有する場合には、エラーが、ライン46で返され、ルーチン「decode」は、ライン47で終了する。
上述したように、本発明の一実施の形態を表すエラー制御符号化/復号技法によると、1つの破損したxyスライスしか訂正することができないので、この場合、終了は適切な動作である。
そうでない場合において、上記ライン25の判断として、エラーが検出されないときは、3次元データ記憶ボリューム
Figure 2004334845
内の符号化された情報シンボルが、ライン52で出力され、ルーチン「decode」は、ライン53で終了する。
平文の情報シンボルは、ルーチン「encode」による符号化中に記憶された順序と逆の順序で平文の情報シンボルを単に抽出することにより、符号化された情報シンボルの出力から抽出できることに留意されたい。
次に、ルーチン「decode」は、ライン56で、単一のエラーが検出されたかどうかを判断する。
単一のエラーが検出された場合には、単一の平面破損エラーが検出され、その平面破損エラーは、エラーボリュームを計算して、3次元データ記憶ボリューム
Figure 2004334845
からエラーボリュームを減算することにより訂正することができる。
エラーボリュームE内のxyスライスは、3次元データ記憶ボリューム
Figure 2004334845
内のすべてのxyスライスの和を求めることにより計算することができる。
このエラーボリュームを、3次元データ記憶ボリューム
Figure 2004334845
から減算して、ライン59で出力することができる。
ライン61の判断として、2以上で、かつ、t個以下のエラーが検出されると、ライン63〜67およびライン68〜72のforループで、ルーチン「decode」は、シンドロームボリューム
Figure 2004334845
および
Figure 2004334845
の対応するzラインを復号することにより、シンドロームボリュームSおよびSの計算を終了する。
次に、ライン73および74で、ルーチン「decode」は、計算した初期シンドロームボリュームを、計算した2次シンドロームボリュームから減算することにより、差分シンドロームボリュームΔSおよびΔSを計算する。
次に、ライン76〜80のwhileループで、ルーチン「decode」は、エラーボリュームEのxyスライスを計算し、最後に、エラーボリュームEを3次元データ記憶ボリューム
Figure 2004334845
から減算した結果を出力する。
しかしながら、t個よりも多くのエラーがある場合、換言すると、エラーの個数が、本発明の一実施の形態を表すエラー訂正技法の設計限界を超えている場合には、エラーが、ライン83で返される。
以上に示した本発明にかかる処理は、例えば、コンピュータ上で動作する専用のハードウエア、あるいは、コンピュータにより実行されるソフトウエアにより実現されることは、当業者にとって自明のことである。
また、本発明にかかる処理がソフトウエアにより実現されるときには、このソフトウエアは、記録媒体に記録されてコンピュータに供給され、記録媒体から読み出され、コンピュータのメモリにロードされて実行されることも、当業者にとって自明のことである。
本発明を特定の実施の形態の観点から説明してきたが、本発明をこの実施の形態に限定することを意図したものではない。
当業者には、本発明の精神の範囲内に含まれる変更が容易に分かる。
例えば、本発明の方法は、多数のプログラム言語の任意のものを使用するほぼ無限の個数の方法で、かつ、ほぼ無限個の異なる制御構造、モジュール編成、および他のこのような特徴で実施することができる。
特別な場合に、短く巡回するforループ、ならびに、全行列ではなく部分行列の乗算および他の処理によって、一定の効率性を得ることができる。
本発明の技法は、ほぼ無限個の異なるタイプの体からの要素を含む多くの異なる寸法の3次元データ記憶ボリュームに適用することができる。
多種多様の適切な組織線形ブロック符号化器および対応する復号器が、本発明によって使用可能である。
もちろん、3次元データ記憶ボリュームの論理的なx軸、y軸、およびz軸の向き、ならびに、3次元データ記憶ボリュームの他のコンポーネントおよびサブコンポーネントを、物理的なデータ記憶媒体に対して任意に適応させることができる。
別のエラー検出機能およびエラー訂正機能の追加が必要とされる場合には、本発明の範囲内の代わりの方法を考え出すことができる。
例えば、パリティチェックシンボルをより多く使用すると、2つまたは3つ以上のxyスライスエラーを訂正することができる。
本発明の実施の形態を表す方法を上述したが、本発明は、これらの方法のさまざまなソフトウェアの実施態様、および、これらの方法を使用して3次元記憶ボリュームに情報を符号化するさまざまなコンピュータシステムを包含する。
上記説明は、説明のためのものであり、具体的な専門用語を使用して本発明の十分な理解を提供した。
しかしながら、これらの具体的な詳細は、本発明の実践するために必要とされないことが当業者にはよく分かる。
本発明の特定の実施の形態の上記説明は、例示および説明の目的で提供される。
上記説明は、本発明を網羅することを意図するものでもなく、また、開示した正確な形に本発明を限定することを意図するものでもない。
多くの変更および変形が、上記教示に鑑みて可能であることは明らかである。
実施の形態は、本発明の原理およびその実際の応用を最もよく説明するために、図示して説明したものである。
それによって、他の当業者は、本発明と、意図する特定の使用に適するようなさまざまな変更を有するさまざまな実施の形態とを最もよく利用することが可能になる。
本発明の範囲は、添付の特許請求の範囲およびその均等物によって画定されることが意図されている。
本発明の一実施の形態を表す方法によってデータが符号化される3次元データ記憶媒体を示す図である。 3次元データ記憶ボリュームV内のzラインを示す図である。 3次元データ記憶ボリュームV内のxyスライスを示す図である。 データ記憶ボリュームV内のデータ記憶ユニットの十字交差を示す図である。 本発明の一実施の形態を実践できるデータ記憶ボリューム内のデータ記憶ユニットを示している。 データ記憶ユニットfの可能な値のそれぞれを、ビットA〜Dのビット値の順序付けられた異なる組み合わせとして考えることができることを示している。 16要素の体Fの4ビット要素fを含む3次元データ記憶ボリュームVのデータ記憶ユニットを示す図である。 符号化プロセスおよび復号プロセスを示す図である。 積符号によって生成される符号配列のレイアウトを示す図である。 −1個のxyスライスを有する3次元データ記憶ボリュームVを満たす様子を示す図である。 −1個のxyスライスを有する3次元データ記憶ボリュームVを満たす様子を示す図である。 −1個のxyスライスを有する3次元データ記憶ボリュームVを満たす様子を示す図である。 −1個のxyスライスを有する3次元データ記憶ボリュームVを満たす様子を示す図である。 −1個のxyスライスを有する3次元データ記憶ボリュームVを満たす様子を示す図である。 z座標「0」を有するボリュームVのxyスライスにzラインのセルの和の加法の逆元を記憶する様子を示す図である。 z座標「0」を有するボリュームVのxyスライスにzラインのセルの和の加法の逆元を記憶する様子を示す図である。 本発明の一実施の形態の擬似コードの実施態様におけるライン11〜24のネストしたforループの実行後の3次元データ記憶ボリュームVの内容を示す図である。 ボリュームV'の部分的なyzスライスおよびxzスライスを満たす様子を示す図である。 ボリュームV'の部分的なyzスライスおよびxzスライスを満たす様子を示す図である。 ルーチン「encode」のライン25〜30およびライン31〜36のネストしたforループの実行結果を示す図である。 投影ベクトルの計算を示す図である。 計算された投影ベクトルを使用して、3次元データ記憶ボリュームV'のzラインにデータを記憶する様子を示す図である。 3次元データ記憶ボリュームV'の最右端のyzスライスへのデータの入力を示す図である。 3次元データ記憶ボリュームV'内のパリティチェックシンボルを示す図である。 本発明の一実施の形態の擬似コードの実施態様におけるライン51〜55のネストしたforループの操作を示す図である。 ルーチン「encode」によって実行される符号化操作の最終的な結果を示す図である。 シンドロームボリューム
Figure 2004334845
の計算を示す図である。
図26と同様の方法によるシンドロームボリューム
Figure 2004334845
の計算を示す図である。
符号の説明
100・・・3次元データ記憶ボリュームV、
102・・・セル、
104〜8・・・直交軸x,y,z、
202・・・zライン、
402・・・xライン、
404・・・yライン、
406・・・データ記憶ユニット、
502・・・データ記憶ユニット、
702・・・配列、
704・・・配列、
804〜806・・・パリティチェックシンボル領域、
902・・・行、
904・・・行、
1002・・・xyスライス、
1004・・・領域、
1006・・・領域、
1102・・・列、
1104・・・要素、
1102・・・列、
1302・・・情報要素、
1304,1306・・・パリティチェック要素、
1402・・・zライン、
1404・・・データ記憶ユニット、
1606・・・データ記憶ユニット、
1702・・・ベクトルμ、
1704・・・3次元データ記憶ボリュームV、
1706・・・ベクトル、
1708・・・ベクトル、
1710・・・3次元データ記憶ボリュームV'、
1802・・・・yzスライス、
2002・・・xz平面、
2004・・・投影ベクトル、
2102・・・zライン、
2104・・・投影ベクトル、
2106・・・情報要素、
2108・・・符号ワードベクトル、
2202・・・yzスライス、
2306・・・情報シンボル、
2308・・・パリティチェックシンボル、
2303・・・zライン、
2304・・・パリティチェックシンボル、
2306・・・情報シンボル、
2308・・・パリティチェックシンボル、
2502・・・xyスライス、
2504・・・パリティチェックシンボルの領域、
2602・・・xyスライス、
2604・・・3次元データ記憶ボリューム、
2606・・・転置行列、
2608・・・xyスライス、

Claims (10)

  1. 複数のデータ記憶ユニット(102)を含む3次元データ記憶ボリューム(100)にデータを符号化する方法であって、
    データの列を受け取ることと、
    線形積符号(802、804〜806)を使用してデータ(902、1104)をデータ値の符号配列(1102)に符号化し、かつ、2つの線形ブロック符号(704)を使用してデータ(1702、2106)をデータ値のベクトル(1708、2108)に符号化することにより、前記データの列を符号化することと
    を含む3次元データ記憶ボリュームにデータを符号化する方法。
  2. 前記データの列の受け取ることは、
    データ値の順序列を受け取ること
    をさらに含み、
    各データ値(502)は、体から選択された要素である
    請求項1に記載の3次元データ記憶ボリュームにデータを符号化する方法。
  3. 前記受け取った元のデータが、前記3次元データ記憶ボリュームのサブボリューム(1302)内で平文の形で現れ、前記符号配列(1002)が、前記3次元データ記憶ボリューム内で平面として記憶され、かつ、前記ベクトル(1708、2108)が、符号配列データ値をすでに含んでいるデータ記憶ユニットに記憶されるように、前記符号化されたデータを前記3次元データ記憶ボリューム(100)に記憶すること
    をさらに含む請求項1に記載の3次元データ記憶ボリュームにデータを符号化する方法。
  4. 前記3次元データ記憶ボリューム(100)の前記データ記憶ユニット(102)は、3つの座標軸x、y、およびz(106、108、110)に関して、x方向の0からn−1の範囲、y方向の0からn−1の範囲、およびz方向の0からn−1の範囲のデータ記憶インデックスによってインデックスされ、
    前記線形ブロック符号は、
    個のデータ値を、r個のパリティチェック値を有する寸法nの符号配列に符号化する積符号C(802、804〜806)と、
    個のデータ値(1706)を、r=n−k個のパリティチェック値を有する長さnのベクトル(1708)に符号化する線形ブロック符号(704)Cと、
    '個のデータ値(2106)を、r'個のパリティチェック値を有する長さnのベクトル(2108)に符号化する線形ブロック符号(704)C'と
    を含み、
    (n−1)個のデータ値は、z軸座標0を有する平面から開始するz方向に対して垂直なn−1個の平面(1002)に符号化され、
    '(n−n−n+1−k)個のデータ値は、1とr−1との間のx軸座標を有するx方向に対して垂直な平面(1802)、および、1とr−1との間のy軸座標を有するy方向に対して垂直な平面(2002)に符号化され、
    (n+n+1)個のデータ値は、x軸座標0を有するx方向に対して垂直な平面(2202)、および、y軸座標0を有するy方向に垂直な平面に符号化される
    請求項3に記載の3次元データ記憶ボリュームにデータを符号化する方法。
  5. コンピュータ可読媒体内に符号化された
    請求項1に記載の方法を実施するコンピュータ命令。
  6. 請求項1に記載の方法を実施して、データ値を3次元データ記憶ボリューム(100)に符号化するコンピュータ命令
    を実行するコンピュータ。
  7. 3次元データ記憶ボリューム(100)であって、
    請求項1に記載の方法によって符号化されたデータ
    を含む3次元データ記憶ボリューム。
  8. 複数のデータ記憶ユニットを含む3次元データ記憶ボリューム
    Figure 2004334845
    (2604)のデータを復号する方法であって、
    前記3次元データ記憶ボリューム
    Figure 2004334845
    内のデータ値の符号化に使用された積符号(802、804〜806)に関連したパリティチェック行列(2606)の転置行列を使用して初期シンドロームボリューム(2610)を計算することと、
    前記初期シンドロームボリューム内のベクトルに復号器を適用することにより、前記初期シンドロームボリュームから2次シンドロームボリュームを計算することと、
    前記2次シンドロームボリュームおよび
    Figure 2004334845
    の平面から、前記3次元データ記憶ボリューム
    Figure 2004334845
    内の複数の平面破損エラーを判断することと、
    平面破損エラーが検出されると、エラーボリュームを計算して、該エラーボリュームを3次元データ記憶ボリューム
    Figure 2004334845
    から減算することにより、該平面破損エラーを訂正することと
    とを含む3次元データ記憶ボリュームのデータを復号する方法。
  9. 線形ブロック復号器を使用して、前記初期シンドロームボリュームおよび前記完成した2次シンドロームボリュームから差分シンドロームボリュームを計算することと、
    前記差分シンドロームボリュームからエラーボリュームを計算して、該エラーボリュームを前記3次元データ記憶ボリューム
    Figure 2004334845
    から減算することにより、前記3次元データ記憶ボリューム
    Figure 2004334845
    内の十字交差(402、404、406)エラーを訂正することと
    をさらに含む請求項8に記載の3次元データ記憶ボリュームのデータを復号する方法。
  10. 前記3次元データ記憶ボリューム
    Figure 2004334845
    の前記データ記憶ユニットは、3つの座標軸x、y、およびz(106、108、110)に関して、x方向の0からn−1の範囲、y方向の0からn−1の範囲、およびz方向の0からn−1の範囲のデータ記憶インデックスによってインデックスされ、
    前記z方向に対して垂直な前記初期シンドロームボリューム
    Figure 2004334845
    (2608)および
    Figure 2004334845
    の平面は、
    Figure 2004334845
    および
    Figure 2004334845
    によって、パリティチェック行列(2606)の転置行列から計算され、
    2次シンドロームボリュームSおよびSは、z方向の
    Figure 2004334845
    および
    Figure 2004334845
    内のベクトルを線形ブロック復号器Dtを使用して復号することにより、前記初期シンドロームボリュームから計算され、
    初期の個数の平面破損エラーは、ゼロでない値を含むz方向に対して垂直なSおよびSの平面の個数によって決定され、
    z軸座標0を有する前記z方向に対して垂直な
    Figure 2004334845
    の前記平面が、ゼロでない場合、平面破損エラーの個数は、線形ブロック復号器D1'によって復号された
    Figure 2004334845
    および
    Figure 2004334845
    の前記z方向のゼロでないベクトルの個数
    をさらに含む請求項9に記載の3次元データ記憶ボリュームのデータを復号する方法。
JP2004109711A 2003-04-30 2004-04-02 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正 Withdrawn JP2004334845A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/427,525 US7206987B2 (en) 2003-04-30 2003-04-30 Error detection and correction in a layered, 3-dimensional storage architecture

Publications (1)

Publication Number Publication Date
JP2004334845A true JP2004334845A (ja) 2004-11-25

Family

ID=33310172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004109711A Withdrawn JP2004334845A (ja) 2003-04-30 2004-04-02 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正

Country Status (3)

Country Link
US (1) US7206987B2 (ja)
JP (1) JP2004334845A (ja)
DE (1) DE102004006528A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211209A (ja) * 2008-02-29 2009-09-17 Toshiba Corp 半導体記憶装置、その制御方法、および誤り訂正システム
JP2015103159A (ja) * 2013-11-27 2015-06-04 アイシン精機株式会社 データ記憶装置
US10114695B2 (en) 2016-02-23 2018-10-30 Fujitsu Limited Information processing device, semiconductor device, and memory inspection method

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITRM20080037A1 (it) * 2008-01-23 2009-07-24 Uni Degli Studi Perugia Procedimento per la ultrapurificazione di alginati.
US8151172B2 (en) * 2008-07-10 2012-04-03 Lsi Corporation Adjustable error-correction for a reed solomon encoder/decoder
TWI500272B (zh) * 2012-12-03 2015-09-11 Nat Univ Tsing Hua 資料偵錯系統及其方法
US9070436B2 (en) 2013-01-30 2015-06-30 Hewlett-Packard Development Company, L.P. Memory controller using crisscross error-correcting codes
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
US9804925B1 (en) * 2014-02-25 2017-10-31 Google Inc. Data reconstruction in distributed storage systems
KR20160017820A (ko) * 2014-08-06 2016-02-17 에스케이하이닉스 주식회사 코딩 방법 및 코딩 장치
US10505719B2 (en) 2016-04-28 2019-12-10 International Business Machines Corporation Method and system for rateless and pollution-attack-resilient network coding
WO2017200527A1 (en) * 2016-05-16 2017-11-23 Hewlett-Packard Development Company, L.P. Generating a shape profile for a 3d object
US10484171B2 (en) * 2016-06-17 2019-11-19 International Business Machines Corporation Method for efficient and practical key distribution in network coding systems

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2905368B2 (ja) * 1993-08-10 1999-06-14 富士通株式会社 誤り検出・訂正方法
WO1997001167A1 (en) * 1995-06-21 1997-01-09 Massachusetts Institute Of Technology Apparatus and method for accessing data on multilayered optical media
US6160787A (en) * 1996-01-11 2000-12-12 Wea Manufacturing, Inc. Multiple layer optical recording medium for use with two different wavelength laser beams
US6678237B1 (en) * 1997-03-27 2004-01-13 Imation Corp. Dual layer optical storage medium having partially reflecting layer comprising amorphous selenium
US5920578A (en) * 1997-04-23 1999-07-06 Cirrus Logic, Inc. Method and apparatus for efficiently processing a multi-dimensional code
JPH11328735A (ja) * 1998-05-13 1999-11-30 Sony Corp 光ディスクとこれを利用した光学ピックアップ
US7014815B1 (en) * 1998-10-30 2006-03-21 Burstein Technologies, Inc. Trackable optical discs with concurrently readable nonoperational features
KR100277764B1 (ko) * 1998-12-10 2001-01-15 윤종용 통신시스템에서직렬쇄상구조를가지는부호화및복호화장치
JP3698905B2 (ja) * 1999-01-11 2005-09-21 日本電気株式会社 光学的情報記録媒体、その情報記録方法、その情報消去方法
JP2000215619A (ja) * 1999-01-26 2000-08-04 Matsushita Electric Ind Co Ltd デ―タ誤り訂正装置
US6581178B1 (en) * 1999-02-15 2003-06-17 Nec Corporation Error correction coding/decoding method and apparatus
WO2000057410A1 (fr) * 1999-03-23 2000-09-28 Matsushita Electric Industrial Co., Ltd. Disque multicouche reinscriptible et dispositif d'enregistrement / reproduction d'informations
US6663935B1 (en) * 1999-05-17 2003-12-16 Sony Corporation Disk-like multilayer information recording medium and production method thereof
JP3363112B2 (ja) * 1999-06-30 2003-01-08 株式会社東芝 積層光記録媒体、積層光記録媒体の再生方法および積層光記録媒体の再生装置
JP2001118331A (ja) * 1999-10-19 2001-04-27 Sony Corp 記録装置、記録再生装置、記録方法
JP2001319344A (ja) * 2000-03-03 2001-11-16 Sony Computer Entertainment Inc フォーカス制御装置、記録媒体および光ディスク再生装置
FR2808632B1 (fr) * 2000-05-03 2002-06-28 Mitsubishi Electric Inf Tech Procede de turbo-decodage avec reencodage des informations erronees et retroaction
US20030120858A1 (en) * 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US6700862B2 (en) * 2000-10-03 2004-03-02 Matsushita Electric Industrial Co., Ltd. Optical disc and manufacturing method for the same
JP3805614B2 (ja) * 2000-11-01 2006-08-02 株式会社日立製作所 ディジタル信号の生成方法並びに記録媒体
US7107505B2 (en) * 2001-03-27 2006-09-12 Comtech Aha Corporation Concatenated turbo product codes for high performance satellite and terrestrial communications
US20030093740A1 (en) * 2001-10-19 2003-05-15 Nebojsa Stojanovic Iterative hard decoding method for multidimensional SPC
EP1317070A1 (en) * 2001-12-03 2003-06-04 Mitsubishi Electric Information Technology Centre Europe B.V. Method for obtaining from a block turbo-code an error correcting code of desired parameters

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211209A (ja) * 2008-02-29 2009-09-17 Toshiba Corp 半導体記憶装置、その制御方法、および誤り訂正システム
JP2015103159A (ja) * 2013-11-27 2015-06-04 アイシン精機株式会社 データ記憶装置
US10114695B2 (en) 2016-02-23 2018-10-30 Fujitsu Limited Information processing device, semiconductor device, and memory inspection method

Also Published As

Publication number Publication date
DE102004006528A1 (de) 2004-12-09
US7206987B2 (en) 2007-04-17
US20040221220A1 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
US8407560B2 (en) Systems and methods for encoding information for storage in an electronic memory and for decoding encoded information retrieved from an electronic memory
US7904782B2 (en) Multiple protection group codes having maximally recoverable property
US7930611B2 (en) Erasure-resilient codes having multiple protection groups
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
JP2004334845A (ja) 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正
Emiris et al. Improved algorithms for computing determinants and resultants
EP1801982A2 (en) Encoder, decoder, methods of encoding and decoding
Rahn et al. Exact performance of concatenated quantum codes
CN107659382A (zh) 用于编码信息的方法和设备
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
CN106201764A (zh) 一种数据存储方法和装置、一种数据恢复方法和装置
CN112000512A (zh) 一种数据修复方法及相关装置
US6536009B1 (en) Technique for generating single-bit error-correcting, two-bit burst error-detecting codes
CN107301881B (zh) 一种基于4位相邻和3位突发纠错码的sram存储器抗辐射加固方法及存储器系统
Schindelhauer et al. Maximum distance separable codes based on circulant cauchy matrices
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
CN103151078A (zh) 一种存储器检错纠错码生成方法
Beth et al. The quantum Hamming and hexacodes
Ahmed et al. NN-ECC: Embedding Error Correction Codes in Neural Network Weight Memories using Multi-task Learning
Cassuto et al. Low-complexity array codes for random and clustered 4-erasures
CN107615248B (zh) 分布式数据存储方法、控制设备和系统
Hou et al. Cauchy MDS array codes with efficient decoding method
CN113114276B (zh) 一种基于循环移位的网络编解码方法、装置及相关组件
Eggers A New Family of Fault Tolerant Quantum Reed-Muller Codes

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060216