(57)【要約】【課題】ガロア体の積演算テーブルを参照して、ガロア体を用いたパリテイデータから、二重故障時のデータを復元する装置において、テーブル容量を削減する。【解決手段】重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値を用い、この重み付け値と、そのインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体積演算テーブル（２０）と、二重故障の復元にも、このテーブル（２０）を参照するコントローラ（２２）を設ける。二重故障の復元に、一重故障の復元の重み付け値を使用でき、テーブル容量を削減でき、低価格に寄与する。【選択図】図２
2008186400.tif 000002
【特許請求の範囲】
【請求項１】
データを分割し、分割されたデータを各々格納する複数のデータストレージユニットと、
前記分割されたデータの組み合わせから得た第１のパリテイデータと、各データストレージユニットに割り当てられた各々異なる値のガロア体による重み付け値を前記分割されたデータに積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとを格納するパリテイストレージユニットと、
重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値と、前記重み付け値のインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体の積乗算テーブルと、
前記ガロア体の積演算テーブルを参照して、前記第２のパリテイデータを演算するとともに、前記ガロア体の積演算テーブルを参照して、１つの前記データストレージユニットが故障した一重故障時のデータ復元演算と２つの前記データストレージユニットが故障した二重故障時のデータ復元演算とを行うコントロールユニットとを有し、
前記コントロールユニットは、前記二重故障のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重故障のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照する
ことを特徴とするＲＡＩＤ装置。
【請求項２】
前記コントロールユニットは、
前記故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記一重故障のデータ復元を行うとともに、
前記２つの故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記二重故障のデータ復元を行う
ことを特徴とする請求項１のＲＡＩＤ装置。
【請求項３】
前記コントロールユニットは、
前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値と前記２つの故障したデータストレージユニット以外の前記データストレージユニットの重み付け値で、前記ガロア体の積演算テーブルを参照して、前記ガロア体の積演算結果を得て、前記得た積演算結果をＥＯＲ演算し、前記２つの故障したデータストレージユニットに割り当てられた重み付け値と前記ＥＯＲ演算結果で、前記ガロア体の積演算テーブルを参照して、前記二重故障の復元データを得る
ことを特徴とする請求項２のＲＡＩＤ装置。
【請求項４】
前記データの１シンボルのビット数のうち使用するビット数が、２ｍで（但し、ｍは整数で、２以上）である時に、前記データストレージユニットの数ｎを、２ｍ−１以下に設定した
ことを特徴とする請求項１のＲＡＩＤ装置。
【請求項５】
前記ガロア体の積演算テーブルは、ガロア体をＧＦ（２＾ｋ）とした時に、（ｎ＋２ｍ−１）×２＾ｋのテーブルサイズで構成した
ことを特徴とする請求項４のＲＡＩＤ装置。
【請求項６】
重み付け値の集合が、加法で閉じているように選択されたｎ個のデータの重み付け値と、前記重み付け値のインバースである一重障害のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体の積演算テーブルと、
前記ｎ個のデータと、前記ｎ個のデータの組み合わせから得た第１のパリテイデータと、各データに割り当てられた各々異なる値のガロア体による重み付け値を前記ｎ個のデータの各々に積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとからなるデータ群を使用し、前記ガロア体の積演算テーブルを参照して、１つの前記データが消失した一重障害時のデータ復元演算と２つの前記データが消失した二重障害時のデータ復元演算とを行うコントロールユニットとを有し、
前記コントロールユニットは、前記二重障害のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重障害のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照する
ことを特徴とするデータ復元装置。
【請求項７】
前記コントロールユニットは、
前記消失したデータに割り当てられた前記一重障害のデータ復元の重み付け値と、前記消失したデータ以外の前記データの値とで、前記ガロア体の積演算テーブルを参照して、前記一重障害のデータ復元を行うとともに、
前記２つの消失したデータに割り当てられた前記一重障害のデータ復元の重み付け値と、前記２つの消失したデータ以外の前記データの値とで、前記ガロア体の積演算テーブルを参照して、前記二重障害のデータ復元を行う
ことを特徴とする請求項６のデータ復元装置。
【請求項８】
前記コントロールユニットは、
前記２つの消失したデータ以外の前記データの値と前記２つの消失したデータ以外の前記データの重み付け値で、前記ガロア体の積演算テーブルを参照して、前記ガロア体の積演算結果を得て、前記得た積演算結果をＥＯＲ演算し、前記２つの消失したデータに割り当てられた重み付け値と前記ＥＯＲ演算結果で、前記ガロア体の積演算テーブルを参照して、前記二重障害の復元データを得る
ことを特徴とする請求項７のデータ復元装置。
【請求項９】
前記データの１シンボルのビット数のうち使用するビット数が、２ｍで（但し、ｍは整数で、２以上）である時に、前記データの数ｎを、２ｍ−１以下に設定した
ことを特徴とする請求項６のデータ復元装置。
【請求項１０】
前記データの数ｎを、２ｍ−１に近い数に設定した
ことを特徴とする請求項９のデータ復元装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ガロア体演算により、データのパリテイを生成し、且つそのパリテイを用いて、データを復元するＲＡＩＤ装置及びガロア体を用いたデータ復元装置に関し、特に、ガロア体乗算テーブルを用いて、データのパリテイを生成し、且つそのパリテイを用いて、データを復元するＲＡＩＤ装置及びガロア体を用いたデータ復元装置に関する。
【背景技術】
【０００２】
近年の電子化の普及により、データの重要性が増加している。このため、一部のデータが消失しても、他のデータとパリテイとから、消失データを復元するデータ復元方法が、必要となる。例えば、ディスクの２重故障を復元できる方法として、ＲＡＩＤ（Redundant Array of Independent Disks）６が知られている。このＲＡＩＤ６の方式として、１次元冗長方式が提案されている（例えば、特許文献１参照）。
【０００３】
図８のＲＡＩＤ６の構成で説明すると、ＲＡＩＤコントローラ１１０に、５台のデータディスク装置（ハードディスクドライブ）１０１，１０２，１０３，１０４，１０５と、２台のパリテイディスク装置（ハードディスクドライブ）１０６，１０７が、バス１１２で、接続される。
【０００４】
１次元冗長方式は、データから２種類のパリテイを生成する。図１０に示すように、１つ目のパリティＰは、従来のＲＡＩＤ５と同じく、各データＤ０，Ｄ１，Ｄ２，Ｄ３、Ｄ４の足し算（ＸＯＲ）を行った結果を、パリティとする。そして、このパリテイＰは、第１のパリテイディスク装置１０６に保存する。尚、以下、「＋」の記号は、ＸＯＲ（排他的論理和）を示す。
【０００５】
２つ目のパリティＱは、各データＤ０，Ｄ１，Ｄ２，Ｄ３、Ｄ４に対し、ガロア体の元Ａ０〜Ａ４（α＾０〜α＾４）の積演算による重み付け行った後、それらを足し合わせた結果（ＸＯＲ）をパリティとする。即ち、下記（１）式の演算により、パリテイＱを生成する。
【０００６】
【数１】
2008186400.tif 000003
そして、このパリテイＱは、第２のパリテイディスク装置１０７に保存される。
【０００７】
このガロア体の元Ａ０〜Ａ４（α＾０〜α＾４）は、各データディスク装置１０１，１０２，１０３，１０４，１０５に対して、１つ決定され、１重故障、２重故障の復元のためには、各データディスク装置１０１，１０２，１０３，１０４，１０５で、異なっている必要がある。例えば、図１０に示すように、データビット数を１６ビットとすると、ガロア体ＧＦ（２＾１６）は、２の１６乗個の有限個の点を取りうる。又、ガロア体の四則演算が、所定の法則（同一次数のガロア体の元同士のＥＯＲは、「０」、乗算は、次数の加算）で可能である。１次元冗長方式は、パリテイの分散が可能であり、２重故障の検出、復元に有効である。
【０００８】
又、一重故障の復元には、例えば、ディスク装置１０２の故障の場合に、データＤ１を復元するには、式（１）を変形し、下記（２）式を得る。
【０００９】
【数２】
2008186400.tif 000004
式（２）から、パリテイＱと，データＤ１以外のＤ０〜Ｄ４と、ガロア体の元Ａ０〜Ａ４及び（Ａ１）−１を用いて、下記（３）式により、データＤ１を復元する。
【００１０】
【数３】
2008186400.tif 000005
尚、パリテイＰによっても、復元できるが、パリテイＰの信頼性が低い場合を考慮して、パリテイＱから復元するアルゴリズムを用意する。
【００１１】
又、二重故障の復元には、ディスク装置１０２，１０３の故障の場合に、データＤ１、Ｄ２を復元するには、式（１）から下記式（４）を得る。
【００１２】
【数４】
2008186400.tif 000006
式（４）の右辺を「Ｆ」とすると、下記式（５）が得られる。
【００１３】
【数５】
2008186400.tif 000007
次に、図１０に示したパリテイＰの生成式を変形し、下記式（６）を得る。
【００１４】
【数６】
2008186400.tif 000008
式（６）の右辺を「Ｇ」とすると、下記式（７）が得られる。
【００１５】
【数７】
2008186400.tif 000009
これにより、式（５）と式（７）で、Ｄ１，Ｄ２の連立方程式が得られ、この連立方程式を解く。先ず、式（７）を「Ａ１」倍すると、下記式（８）を得る。
【００１６】
【数８】
2008186400.tif 000010
式（５）と式（８）を足す（ＥＯＲをとる）と、下記式（９）が得られる。
【００１７】
【数９】
2008186400.tif 000011
式（９）を変形すると、Ｄ２の下記式（１０）を得る。
【００１８】
【数１０】
2008186400.tif 000012
又、式（７）を変形すると、Ｄ１の下記式（１１）を得る。
【００１９】
【数１１】
2008186400.tif 000013
式（１０）の右辺に、式（４）、式（５）の「Ｆ」と、式（６）、式（７）の「Ｇ」を代入して、Ｄ２の復元式（１２）を得る。
【００２０】
【数１２】
2008186400.tif 000014
同様に、式（１１）の右辺に、式（６）、式（７）の「Ｇ」を代入して、Ｄ１の復元式（１３）を得る。
【００２１】
【数１３】
2008186400.tif 000015
このように、ガロア体を利用したパリテイ生成、データ復元においては、ガロア体の積演算として、データＤとガロア体の元Ａの２つの変数を用いて、演算を行う必要がある。このため、ＲＡＩＤ５のＸＯＲ演算（パリテイＰの演算）に対し、パリテイ生成に処理時間を要し、性能が劣化する。
【００２２】
このガロア体の積演算を簡略化するため、図９に示すように、データＤとガロア体の元Ａとの乗算結果を格納するガロア体積演算テーブル１２０を作成しておき、テーブル１２０を参照して、各データとガロア体の元との積演算結果を得ることが提案されている（特許文献１）。
【特許文献１】日本国特開２０００−２５９３５９号公報（図５、図６）
【発明の開示】
【発明が解決しようとする課題】
【００２３】
例えば、ＲＡＩＤの構成を、ｎデータ＋２パリティとし、ガロア体は、１シンボル１６ビットのガロア体ＧＦ(2^16)とすると、各データディスクに対する重み付けとして必要なガロア体の元Ａは、α^(i1), α^(i2), α^(i3),・・・, α^(in) (ij∈{0,1,・・,65534})となる。ここで、「＾」は、乗を示す。
【００２４】
このガロア体の元を使用する場合には、一重故障の復元で使用する重み付けは、式（３）のように、α^(-i1), α^(-i2), α^(-i3),・・・, α^(-in)となる。更に、二重故障の復元で使用する重み付けは、式（１２）から、下記式（１４）で決定される。
【００２５】
【数１４】
2008186400.tif 000016
従って、従来のように、各データディスクに対する重み付けの値を、ランダムに選んだときは、データディスクと、一重故障と、２重故障との重み付けに、重複部分が現れず、必要なガロア体の元の個数は、データディスクのｎ個と、一重故障のｎ個と、二重故障のｎ（ｎ−１）／２個の和となる。
【００２６】
１シンボル（１６ビット）のデータＤに対して取りうる値は、２の１６乗＝６５５３６通りある。このため、図９のように、重み付けに必要なガロア体と１シンボルのデータ値からなる重み付け積演算テーブル１２０を作成する場合、（ｎ＋ｎ＋ｎ（ｎ−１）／２）×６５５３６のテーブルが必要になる。例えば，ｎ＝１４とするとき，１１９×６５５３６個のテーブルが必要になり、テーブルの容量、即ち、メモリの容量が膨大となり、装置の低価格化の阻害となる。
【００２７】
従って、本発明の目的は、ガロア体積演算テーブルの容量を削減するためのＲＡＩＤ装置及びデータ復元装置を提供することにある。
【００２８】
又、本発明の他の目的は、ガロア体積演算テーブルの容量を削減して、低価格の装置を提供するためのＲＡＩＤ装置及びデータ復元装置を提供することにある。
【００２９】
更に、本発明の他の目的は、ガロア体積演算テーブルの容量を削減して、高速に積演算を実現するためのＲＡＩＤ装置及びデータ復元装置を提供することにある。
【課題を解決するための手段】
【００３０】
この目的の達成のため、本発明のＲＡＩＤ装置は、データを分割し、分割されたデータを各々格納する複数のデータストレージユニットと、前記分割されたデータの組み合わせから得た第１のパリテイデータと、各データストレージユニットに割り当てられた各々異なる値のガロア体による重み付け値を前記分割されたデータに積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとを格納するパリテイストレージユニットと、重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値と、前記重み付け値のインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体の積乗算テーブルと、前記ガロア体の積乗算テーブルを参照して、前記第２のパリテイデータを演算するとともに、前記ガロア体の積演算テーブルを参照して、１つの前記データストレージユニットが故障した一重故障時のデータ復元演算と２つの前記データストレージユニットが故障した二重故障時のデータ復元演算とを行うコントロールユニットとを有し、前記コントロールユニットは、前記二重故障のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重故障のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照する。
【００３１】
又、本発明のデータ復元装置は、重み付け値の集合が、加法で閉じているように選択されたｎ個のデータの重み付け値と、前記重み付け値のインバースである一重障害のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体の積演算テーブルと、前記ｎ個のデータと、前記ｎ個のデータの組み合わせから得た第１のパリテイデータと、各データに割り当てられた各々異なる値のガロア体による重み付け値を前記ｎ個のデータの各々に積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとからなるデータ群を使用し、前記ガロア体の積演算テーブルを参照して、１つの前記データが消失した一重障害時のデータ復元演算と２つの前記データが消失した二重障害時のデータ復元演算とを行うコントロールユニットとを有し、前記コントロールユニットは、前記二重障害のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重障害のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照する。
【００３２】
更に、本発明では、好ましくは、前記コントロールユニットは、前記故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記一重故障のデータ復元を行うとともに、前記２つの故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記二重故障のデータ復元を行う。
【００３３】
更に、本発明では、好ましくは、前記コントロールユニットは、前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値と前記２つの故障したデータストレージユニット以外の前記データストレージユニットの重み付け値で、前記ガロア体の積演算テーブルを参照して、前記ガロア体の積演算結果を得て、前記得た積演算結果をＥＯＲ演算し、前記２つの故障したデータストレージユニットに割り当てられた重み付け値と前記ＥＯＲ演算結果で、前記ガロア体の積演算テーブルを参照して、前記二重故障の復元データを得る。
【００３４】
更に、本発明では、好ましくは、前記データの１シンボルのビット数のうち使用するビット数が、２ｍで（但し、ｍは整数で、２以上）である時に、前記データストレージユニットの数ｎを、２ｍ−１以下に設定した。
【００３５】
更に、本発明では、好ましくは、前記データストレージユニットの数ｎを、２ｍ−１に近い数に設定した。
【００３６】
更に、本発明では、好ましくは、前記ガロア体の積演算テーブルは、ガロア体をＧＦ（２＾ｋ）とした時に、（ｎ＋２ｍ−１）×２＾ｋのテーブルサイズで構成した。
【００３７】
更に、本発明では、好ましくは、前記コントロールユニットは、第２のパリテイデータＱを、各データディスクユニットのデータＤ１〜Ｄｎと、各データディスクユニットの重み付け値Ａ１〜Ａｎとの積のＥＯＲで演算するとともに、前記二重故障の復元データＤｊ，Ｄｉを、下記式（１７）、（１８）により演算する。
【００３８】
【数１７】
2008186400.tif 000017
【００３９】
【数１８】
2008186400.tif 000018
更に、本発明では、好ましくは、前記ガロア体の積演算テーブルの前記データディスク装置毎の重み付け値Ａｊは、下記式（１９）において、重み付け値の集合が、加法で閉じているように設定された。
【００４０】
【数１９】
2008186400.tif 000019
更に、本発明では、好ましくは、前記ガロア体の積演算テーブルの前記一重故障の復元に使用する重み付け値は、前記データディスク装置毎の重み付け値ＡｊのインバースＡｊ−１である。
【００４１】
更に、本発明では、好ましくは、前記ガロア体の積演算テーブルの前記二重故障の復元に使用する重み付け値は、前記２つの故障したデータストレージユニットの重み付け値のＥＯＲ結果のインバースである。
【発明の効果】
【００４２】
重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値を用い、この重み付け値と、そのインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体積演算テーブルを構成するので、二重故障の復元にも、このテーブルを使用でき、テーブル容量を削減でき、低価格に寄与する。
【発明を実施するための最良の形態】
【００４３】
以下、本発明の実施の形態を、ＲＡＩＤ装置、ガロア体積演算テーブル、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００４４】
（ＲＡＩＤ装置）
図１は、本発明の一実施の形態のＲＡＩＤ装置の構成図、図２は、そのガロア体を用いたパリテイ生成、データ復元部の構成図、図３は、図１のＲＡＩＤ６のパリテイ生成及びデータ復元演算の説明図である。図１に示すように、ＲＡＩＤ装置は、ホストコンピュータ１６に接続されたＲＡＩＤコントローラ１２と、ＲＡＩＤコントローラ１２にＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）ループ１４等により接続され、且つ制御される複数（ここでは、１４台）のデータディスク装置（ハードディスクドライブ）１０−１〜１０−１４と、２台のパリテイディスク装置（ハードディスクドライブ）１０−１５，１０−１６とからなる。即ち、２重パリテイを持つＲＡＩＤ６の構成である。
【００４５】
このＲＡＩＤコントローラ１２は、図２に示すように、ガロア体積演算テーブル２０と、このガロア体積演算テーブル２０を参照して、パリテイＱの作成及び一重故障、二重故障のデータ復元を行う演算回路２２とを有する。
【００４６】
ここで、１シンボルを１６ビットとすると、ガロア体ＧＦ（２＾１６）を使用する。演算回路２２のパリテイ生成演算及びデータ復元演算を、図３で説明する。
【００４７】
図３に示すように、第１のパリテイＰは、データディスク装置１０−１〜１０−１４の列方向のデータＤ０〜Ｄ１３のＸＯＲで生成され、第１のパリテイディスク装置１０−１５の対応アドレスに格納される。第２のパリテイＱは、式（１）と同様に、データディスク装置１０−１〜１０−１４の列方向のデータＤ０〜Ｄ１３を、ガロア体の積演算による重み付け後に、ＸＯＲして生成され、第２のパリテイディスク装置１０−１６の対応アドレスに格納される。
【００４８】
尚、図３の記号「＋」は、ＸＯＲ演算を示す。又、ガロア体ＧＦ（２の１６乗）の原始多項式（生成多項式）は、下記式（１５）で表される。
【００４９】
【数１５】
2008186400.tif 000020
又、データ復元に用いる復元式は、一重故障の場合に、データＤｉを復元するには、式（３）から、下記式（１６）を演算する。
【００５０】
【数１６】
2008186400.tif 000021
更に、二重故障の場合に、データＤｉ，Ｄｊを復元するには、各々式（１２）、（１３）から、下記式（１７）、（１８）を演算する。
【００５１】
【数１７】
2008186400.tif 000022
【００５２】
【数１８】
2008186400.tif 000023
尚、式（１７）、（１８）において、記号「＾」の印のある項は、式から取り除くことを意味する。
【００５３】
ＲＡＩＤコントローラ１２は、データをディスク装置１０−１〜１０−１４にライト処理する際に、ＸＯＲ演算により、パリテイＰを計算し、第１のパリテイディスク装置１０−１５に格納し、ガロア体の積演算テーブル２０から積演算結果を得て、ＸＯＲ演算を行い、パリテイＱを計算し、第２のパリテイディスク装置１０−１６に格納する。
【００５４】
同様に、ＲＡＩＤコントローラ１２は、データをディスク装置１０−１〜１０−１４及びディスク装置１０−１５，１０−１６からリードした際に、一重故障を検出した時は、式（１６）に従い、ガロア体の積演算テーブル２０から積演算結果を得て、ＸＯＲ演算を行い、データＤｉを復元する。
【００５５】
又、二重故障を検出した時は、式（１７）に従い、ガロア体の積演算テーブル２０から積演算結果を得て、ＸＯＲ演算を行い、データＤｊを復元し、更に、式（１８）により、データＤｉを復元する。
【００５６】
（ガロア体積演算テーブル）
図４は、本発明の一実施の形態のデータディスク装置のガロア体の元（重み付け）の設定の説明図、図５は、図４を用いて決定したガロア体の元の説明図、図６は、本発明の一実施の形態のガロア体積演算テーブルの説明図、図７は、比較例として、従来のガロア体積演算テーブルの説明図である。
【００５７】
本発明では、重み付けとして必要なガロア体の元を減らすために、１重故障、２重故障で使用する重み付けの重複部分を増やす。このためには、ガロア体の元を、ある規則性にしたがって、選ぶ。
【００５８】
先ず、ＲＡＩＤの構成を、ｎデータ＋２パリティとし、ｎが２のｍ乗−１ (ｍは整数で、２以上の値)以下であることを条件とする。そして、好ましくは、ｎが、２のｍ乗−１に近い値を持つとする（例えば、ｎ＝３，７，１４，１５，３０，３１・・・）。
【００５９】
この条件で、各データディスク装置ｊに対する重み付け値（ガロア体の元）Ａｊを、以下の式（１９）のように、決定する。
【００６０】
【数１９】
2008186400.tif 000024
但し、式（１９）において、「ｊ」は、データディスク番号であり、１≦ｊ≦ｎである。又、ｎは、データディスク装置の数であり、ｍは、1シンボルのうち使用するビット数２のｍ乗のｍである。例えば、データディスク装置数ｎ＝１４、1シンボルのうち使用するビット数が４ビットである場合に、１≦ｊ≦１４、α＾（ｍ−１）＝α＾３となる。即ち、各データディスク装置ｊに対する重み付け値（ガロア体の元）Ａｊを、α＾０〜α＾３の組み合わせで、定義する。
【００６１】
そして、この式（１９）のｇｆｗの行列（gfw(j,0),gfw(j,1),・・・, gfw(j,m-1))を、「ｊ」に対し、図４に示すように、設定する。即ち、１０進数の「ｊ」を、２進数で表現し、最下位ビット側から順次、この２進数を、「gfw(j,0),gfw(j,1),・・・, gfw(j,m-1)」に割り振る。
【００６２】
このようにすると、図４の任意の２つのデータディスク番号の「ｊ」の２進数「gfw(j,0),gfw(j,1),・・・, gfw(j,m-1)」のＥＯＲ（排他的論理和）をとると、他の数字の「ｊ」の２進数「gfw(j,0),gfw(j,1),・・・, gfw(j,m-1)」に一致するような関係となる。
【００６３】
例えば、ｊ＝１の２進数と、ｊ＝２の２進数とのＥＯＲをとると、ｊ＝３の２進数となる。同様に、ｊ＝１の２進数と、ｊ＝３の２進数とのＥＯＲをとると、ｊ＝２の２進数となり、ｊ＝２の２進数と、ｊ＝３の２進数とのＥＯＲをとると、ｊ＝１の２進数となる。
【００６４】
即ち、この重み付けの集合（行列）は、加法（ＥＯＲ）で閉じていることが特徴である。図４を、式（１９）に当てはめ、各データディスク番号ｊの重み付け値（ガロア体の元）Ａｉを示すと、図５のように表される。
【００６５】
図５に示すように、任意の２つのデータディスク番号の「ｊ」の重み付け値のＥＯＲ（排他的論理和）をとると、他のデータディスク番号の重み付け値となる関係の重み付け値が、各データディスク番号に割り当てられる。
【００６６】
ここで、例えば、ｊ＝３の重み付け値（α＾０＋α＾１）は、重み付け値α＾４９５９４で表されている。前述の生成（原始）多項式（図３参照）から、下記式（２０）が成立する。
【００６７】
【数２０】
2008186400.tif 000025
これと、前述のガロア体の元の四則演算則を用いて、単一のガロア体の元に変形することにより、ｊ＝３の重み付け値（α＾０＋α＾１）を、重み付け値α＾４９５９４で表すことができる。他の複数のガロア体の元のＥＯＲからなる重み付け値を、単一の重み付け値に変換する場合も、同様である。
【００６８】
一重故障の復元で使用する重み付け値は、データディスク番号に割り当てられた重み付け値のインバースであるから、１重故障で使用する重み付けＡ１ｊは、下記式（２１）で表される。
【００６９】
【数２１】
2008186400.tif 000026
但し、同様に、１≦ｊ≦ｎである。「ｊ」は、一重故障したデータディスク番号であり、１≦ｊ≦ｎである。又、ｎは、データディスク装置の数であり、ｍは、1シンボルのうち使用するビット数２のｍ乗のｍである。
【００７０】
次に、２重故障で使用する重み付け値は、説明する。２重故障の復元では、式（１２）に示したように、２つのガロア体の元（重み付け値）のＥＯＲを、必要とするが、前述のデータディスク番号に対する重み付け値の選択で使用した図４の重み付けの集合が、加法（ＥＯＲ）で閉じているため、重複使用できる。
【００７１】
即ち、２重故障で使用する重み付け値Ａ２ｊは、２つのガロア体の元（重み付け値）のＥＯＲのインバースであるから、一重故障の復元で使用する重み付け値と一致するものがある。このため、追加する二重故障の復元で使用する重み付け値は、下記式（２２）で表される。
【００７２】
【数２２】
2008186400.tif 000027
但し、ｊは、二重故障で使用する重み付け値のポインタであり、その範囲が、ｎ＋１≦ｊ≦（２＾ｍ）−１である。例えば、前述のように、データディスク装置数ｎ＝１４、ｍ＝４である場合に、ｊ＝１５のみを、１つの二重故障の重み付け値として、追加すれば、良い。
【００７３】
このように、重み付け値をランダムに選択する従来の場合と異なり、本発明では、２重故障で使用する重み付けの追加分が少ない。この理由は、２重故障の復元では、式（１２）に示したように、２つのガロア体のＥＯＲを、必要とするが、前述のデータディスク番号に対する重み付け値の選択で使用した図４の重み付けの集合が、加法（ＥＯＲ）で閉じているため、重複使用できるからである。
【００７４】
この重み付け方法に必要なガロア体と1シンボルのうち使用するビット２の4乗のデータ値からなる重み付け積演算結果のテーブル（図２参照）を作成する場合、（ｎ＋（２＾ｍ）−１）×６５５３６枡のテーブルですむ。例えば、ｎ＝１４とするとき，ｍ＝４であるから、（14＋16-1）＝２９×６５５３６枡のテーブルで済む。
【００７５】
従って、前述の従来のランダム法で必要とした、１１９×６５５３６のテーブル容量に比し、この重み付け方法によるテーブルサイズは０．２４倍、約１／５となり、テーブルに必要なメモリ容量の節約が可能となる。
【００７６】
図６及び図７により、具体例で説明する。尚、図６、図７では、データディスク装置数を、ｎ＝１５の例で説明する。図７のように、データディスク番号ｊに対し、ランダムに重み付け値を選択した場合、即ち、データディスク番号ｊが、２の乗数となる重み付け値α＾0、α＾１、・・・を選択した場合には、加法で閉じるなどの関連性がない。
【００７７】
一重故障の復元で用いる重み付け値は、そのインバースとなる。例えば、データディスク番号ｊ＝１にα＾１を重み付け値として、使用すると、データディスク番号ｊ＝１の故障には、α＾１のインバースである２の１６乗−１−１＝６５５３６−２＝６５５３４乗のαを重み付け値に使用する。他のデータディスク番号の場合も、同様である。
【００７８】
又、二重故障の復元で用いる重み付け値は、式（１７）から、その２つのデータディスク番号の重み付け値のＥＯＲのインバースである。例えば、データディスク番号ｊ＝０と、他のデータディスク番号ｊ＝１の二重故障の復元に用いる重み付け値は、（α＾０＋α＾１）＾−１、即ち、α＾１５９４１となる。
【００７９】
図７に示すように、データディスク番号に対する重み付け値間に関連性がないため、一重故障で使用した重み付け値を使用できない。同様に、データディスク番号ｊ＝１と、他のデータディスク番号ｊ＝２〜１４との二重故障の場合も同様であり、別々の重み付け値を使用しなければならない。
【００８０】
一方、本発明では、図６に示すように、データディスク番号ｊに対し、図４及び図５で説明した加法で閉じる法則の重み付け値を使用している。即ち、データディスク番号ｊの重み付け値は、他の２つのデータディスク番号の重み付け値のＥＯＲになるという関連性がある値を使用している。
【００８１】
一重故障の復元で用いる重み付け値は、従来と同様に、そのインバースとなる。例えば、データディスク番号ｊ＝２の故障には、α＾49594のインバースである２の１６乗−１−49594＝６５５３６−４９５９５＝１５９４１乗のαを重み付け値に使用する。他のデータディスク番号の場合も、同様である。
【００８２】
又、二重故障の復元で用いる重み付け値は、式（１７）から、その２つのデータディスク番号の重み付け値のＥＯＲのインバースである。例えば、データディスク番号ｊ＝０と、他のデータディスク番号ｊ＝１の二重故障の復元に用いる重み付け値は、（α＾０＋α＾１）＾−１、即ち、α＾１５９４１となる。
【００８３】
即ち、この重み付け値は、一重故障の復元で用いるデータディスク番号ｊ＝２の重み付け値と、一致する。この理由は、データディスク番号ｊ＝２の重み付け値Ａｉは、データディスク番号ｊ＝０、ｊ＝１の重み付け値のＥＯＲの関係にあるからである。
【００８４】
同様に、データディスク番号ｊ＝０と、他のデータディスク番号ｊ＝２〜１４の二重故障の復元に用いる重み付け値は、一重故障の復元で用いる重み付け値に一致する。
【００８５】
又、同様の理由で、データディスク番号ｊ＝１と、他のデータディスク番号ｊ＝２〜１４の二重故障の復元に用いる重み付け値も、図６に示すように、一重故障の復元で使用した重み付け値を使用できる。
【００８６】
このため、この例では、ｎ＝１５であるから、一重故障の復元で使用する重み付け値を、二重故障の復元でも、使用でき、二重故障の復元の重み付け値は、一重故障の復元に用いる重み付け値があれば、特別に設定する必要がない。
【００８７】
図２のガロア体積演算テーブル２０の縦方向の欄は、データディスク番号に対する重み付け値の数と、一重故障の復元に使用する重み付け値の数と、式（２２）の追加分の数の和で済む。即ち、従来のように、更に、二重故障の復元に使用する重み付け値の数分の欄を、テーブルに必要としない。このため、図２のテーブル２０は、図９の従来のテーブル１２０に比し、テーブルサイズが、１／５で済み、メモリの節約に有効であり、テーブルを使用したデータ復元の高速にも寄与する。
【００８８】
（他の実施の形態）
前述の実施の形態では、１５台のデータディスク装置と２台のパリテイディスク装置とで構成されるＲＡＩＤ６のストレージ装置で、説明したが、他の台数の構成にも適用できる。
【００８９】
又、一重故障、二重故障のデータ復元を、ストレージ装置のＲＡＩＤ６のデータ復元の例で説明したが、複数のシンボルに対し、パリテイＰ、パリテイＱを付して、データ転送する場合のシンボルの復元にも使用できる。
【００９０】
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
【００９１】
（付記１）データを分割し、分割されたデータを各々格納する複数のデータストレージユニットと、前記分割されたデータの組み合わせから得た第１のパリテイデータと、各データストレージユニットに割り当てられた各々異なる値のガロア体による重み付け値を前記分割されたデータに積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとを格納するパリテイストレージユニットと、前記各重み付け値と前記データの値との乗算結果を格納するガロア体の積乗算テーブルを参照して、前記第２のパリテイデータを演算するとともに、前記ガロア体の積演算テーブルを参照して、１つの前記データストレージユニットが故障した一重故障時のデータ復元演算と２つの前記データストレージユニットが故障した二重故障時のデータ復元演算とを行うコントロールユニットとを有し、前記ガロア体の積演算テーブルは、重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値と、前記重み付け値のインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納し、前記コントロールユニットは、前記二重故障のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重故障のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照することを特徴とするＲＡＩＤ装置。
【００９２】
（付記２）前記コントロールユニットは、前記故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記一重故障のデータ復元を行うとともに、前記２つの故障したデータストレージユニットに割り当てられた前記一重故障のデータ復元の重み付け値と、前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値とで、前記ガロア体の積演算テーブルを参照して、前記二重故障のデータ復元を行うことを特徴とする付記１のＲＡＩＤ装置。
【００９３】
（付記３）前記コントロールユニットは、前記２つの故障したデータストレージユニット以外の前記データストレージユニットのデータの値と前記２つの故障したデータストレージユニット以外の前記データストレージユニットの重み付け値で、前記ガロア体の積演算テーブルを参照して、前記ガロア体の積演算結果を得て、前記得た積演算結果をＥＯＲ演算し、前記２つの故障したデータストレージユニットに割り当てられた重み付け値と前記ＥＯＲ演算結果で、前記ガロア体の積演算テーブルを参照して、前記二重故障の復元データを得ることを特徴とする付記２のＲＡＩＤ装置。
【００９４】
（付記４）前記データの１シンボルのビット数のうち使用するビット数が、２ｍで（但し、ｍは整数で、２以上）である時に、前記データストレージユニットの数ｎを、２ｍ−１以下に設定したことを特徴とする付記１のＲＡＩＤ装置。
【００９５】
（付記５）前記データストレージユニットの数ｎを、２ｍ−１に近い数に設定したことを特徴とする付記４のＲＡＩＤ装置。
【００９６】
（付記６）前記ガロア体の積演算テーブルは、ガロア体をＧＦ（２＾ｋ）とした時に、（ｎ＋２ｍ−１）×２＾ｋのテーブルサイズで構成したことを特徴とする付記４のＲＡＩＤ装置。
【００９７】
（付記７）前記コントロールユニットは、第２のパリテイデータＱを、各データディスクユニットのデータＤ１〜Ｄｎと、各データディスクユニットの重み付け値Ａ１〜Ａｎとの積のＥＯＲで演算するとともに、前記二重故障の復元データＤｊ，Ｄｉを、下記式（１７）、（１８）により演算することを特徴とする付記３のＲＡＩＤ装置。
【００９８】
【数１７】
2008186400.tif 000028
【００９９】
【数１８】
2008186400.tif 000029
（付記８）前記ガロア体の積演算テーブルの前記データディスク装置毎の重み付け値Ａｊは、下記式（１９）において、重み付け値の集合が、加法で閉じているように設定されたことを特徴とする付記４のＲＡＩＤ装置。
【０１００】
【数１９】
2008186400.tif 000030
（付記９）前記ガロア体の積演算テーブルの前記一重故障の復元に使用する重み付け値は、前記データディスク装置毎の重み付け値ＡｊのインバースＡｊ−１であることを特徴とする付記８のＲＡＩＤ装置。
【０１０１】
（付記１０）前記ガロア体の積演算テーブルの前記二重故障の復元に使用する重み付け値は、前記２つの故障したデータストレージユニットの重み付け値のＥＯＲ結果のインバースであることを特徴とする付記９のＲＡＩＤ装置。
【０１０２】
（付記１１）重み付け値の集合が、加法で閉じているように選択されたｎ個のデータの重み付け値と、前記重み付け値のインバースである一重障害のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体の積演算テーブルと、前記ｎ個のデータと、前記ｎ個のデータの組み合わせから得た第１のパリテイデータと、各データに割り当てられた各々異なる値のガロア体による重み付け値を前記ｎ個のデータの各々に積演算し、且つ積演算結果を用いて生成方程式を演算して得た第２のパリテイデータとからなるデータ群を使用し、前記ガロア体の積演算テーブルを参照して、１つの前記データが消失した一重障害時のデータ復元演算と２つの前記データが消失した二重障害時のデータ復元演算とを行うコントロールユニットとを有し、前記コントロールユニットは、前記二重障害のデータ復元の重み付け値として、前記ガロア体の積演算テーブルの前記一重障害のデータ復元の重み付け値を使用して、前記ガロア体の積演算テーブルを参照することを特徴とするデータ復元装置。
【０１０３】
（付記１２）前記コントロールユニットは、前記消失したデータに割り当てられた前記一重障害のデータ復元の重み付け値と、前記消失したデータ以外の前記データの値とで、前記ガロア体の積演算テーブルを参照して、前記一重障害のデータ復元を行うとともに、前記２つの消失したデータに割り当てられた前記一重障害のデータ復元の重み付け値と、前記２つの消失したデータ以外の前記データの値とで、前記ガロア体の積演算テーブルを参照して、前記二重障害のデータ復元を行うことを特徴とする付記１１のデータ復元装置。
【０１０４】
（付記１３）前記コントロールユニットは、前記２つの消失したデータ以外の前記データの値と前記２つの消失したデータ以外の前記データの重み付け値で、前記ガロア体の積演算テーブルを参照して、前記ガロア体の積演算結果を得て、前記得た積演算結果をＥＯＲ演算し、前記２つの消失したデータに割り当てられた重み付け値と前記ＥＯＲ演算結果で、前記ガロア体の積演算テーブルを参照して、前記二重障害の復元データを得ることを特徴とする付記１２のデータ復元装置。
【０１０５】
（付記１４）前記データの１シンボルのビット数のうち使用するビット数が、２ｍで（但し、ｍは整数で、２以上）である時に、前記データの数ｎを、２ｍ−１以下に設定したことを特徴とする付記１１のデータ復元装置。
【０１０６】
（付記１５）前記データの数ｎを、２ｍ−１に近い数に設定したことを特徴とする付記１４のデータ復元装置。
【０１０７】
（付記１６）前記ガロア体の積演算テーブルは、ガロア体をＧＦ（２＾ｋ）とした時に、（ｎ＋２ｍ−１）×２＾ｋのテーブルサイズで構成したことを特徴とする付記１４のデータ復元装置。
【０１０８】
（付記１７）前記コントロールユニットは、第２のパリテイデータＱを、各データＤ１〜Ｄｎと、各データの重み付け値Ａ１〜Ａｎとの積のＥＯＲで演算するとともに、前記二重障害の復元データＤｊ，Ｄｉを、下記式（１７）、（１８）により演算することを特徴とする付記１３のデータ復元装置。
【０１０９】
【数１７】
2008186400.tif 000031
【０１１０】
【数１８】
2008186400.tif 000032
（付記１８）前記ガロア体の積演算テーブルの前記データ毎の重み付け値Ａｊは、下記式（１９）において、重み付け値の集合が、加法で閉じているように設定されたことを特徴とする付記１４のデータ復元装置。
【０１１１】
【数１９】
2008186400.tif 000033
（付記１９）前記ガロア体の積演算テーブルの前記一重障害の復元に使用する重み付け値は、前記データ毎の重み付け値ＡｊのインバースＡｊ−１であることを特徴とする付記１８のデータ復元装置。
【０１１２】
（付記２０）前記ガロア体の積演算テーブルの前記二重障害の復元に使用する重み付け値は、前記２つの消失したデータの重み付け値のＥＯＲ結果のインバースであることを特徴とする付記１９のデータ復元装置。
【産業上の利用可能性】
【０１１３】
重み付け値の集合が、加法で閉じているように選択された各データストレージユニットの重み付け値を用い、この重み付け値と、そのインバースである一重故障のデータ復元の重み付け値と、前記データの値との乗算結果を格納するガロア体積演算テーブルを構成するので、二重故障の復元にも、このテーブルを使用でき、テーブル容量を削減でき、低価格に寄与する。
【図面の簡単な説明】
【０１１４】
【図１】本発明の一実施形態のＲＡＩＤ装置の構成図である。
【図２】図１のパリテイ生成及びデータ復元構成の説明図である。
【図３】図１のパリテイＰ，Ｑ、及びデータ復元アルゴリズムの説明図である。
【図４】図３のデータディスク装置に対する重み付けベクトルの説明図である。
【図５】図４の重み付けベクトルによるデータディスク装置の重み付け値の説明図である。
【図６】本発明のデータディスク装置の重み付け値を使用した一重故障の復元及び二重故障の復元の重み付け値の説明図である。
【図７】従来のデータディスク装置の重み付け値を使用した一重故障の復元及び二重故障の復元の重み付け値の説明図である。
【図８】従来のＲＡＩＤ６の構成図である。
【図９】従来のＲＡＩＤ６のガロア体積演算テーブルの説明図である。
【図１０】従来のガロア体の積演算の説明図である、
【符号の説明】
【０１１５】
１０−１〜１０−１４  データディスク装置
１０−１５〜１０−１６  パリテイディスク装置
１２  ＲＡＩＤコントローラ
１４  接続バス
１６  ホスト
２０  ガロア体積演算テーブル
２２  演算回路
１０１〜１０５  データディスク装置
１０６〜１０７  パリテイディスク装置
１１０  ＲＡＩＤコントローラ
１１２  接続バス
１２０  ガロア体積演算テーブル
【図１】
2008186400.tif 000034
【図２】
2008186400.tif 000035
【図３】
2008186400.tif 000036
【図４】
2008186400.tif 000037
【図５】
2008186400.tif 000038
【図６】
2008186400.tif 000039
【図７】
2008186400.tif 000040
【図８】
2008186400.tif 000041
【図９】
2008186400.tif 000042
【図１０】
2008186400.tif 000043