(57)【要約】  【課題】  解決しようとする課題は、ソフトウエアプログラムと連携して動作するメモリにおいて、記録保持するデータが破壊された場合、プログラムからのデータ参照要求に対し、正常なデータを効率良く読み出すことができない問題である。【解決手段】  メモリのアドレス単位の単位データ毎にパリティを付加して主データ、副データの組み合わせで繰り返して記録し、ソフトウエアプログラムからの問い合わせに対し、前記単位データ毎に主データのパリティと副データのパリティを評価して読み出す。【選択図】図２
2008204400.tif 000002
【特許請求の範囲】
【請求項１】
所定サイズの各データブロックに各データを書き込み、書き込まれたデータを読み出すデータ書き込み、読み出し方法において、
前記書き込みに際し、前記各データについて、同一内容のデータを連続する複数のデータブロックに書き込み、
前記読み出しに際し、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出されない場合は、前記連続する複数のデータブロック分だけシフトした読み出し位置から次のデータを読み出し、
前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出された場合は、該最初のデータブロックのサイズに応じてシフトした読み出し位置から、前記連続する複数のデータブロックの２番目のデータを読み出し、該２番目のデータが正常であれば、前記連続する複数のデータブロックの残りのデータブロック数に応じてシフトした読み出し位置から前記次のデータを読み出す、ことを特徴とするデータ書き込み、読み出し方法。
【請求項２】
請求項１に記載の前記正常、異常の検出は、前記データブロック内に格納されるポインタに付加された誤り検出ビットを用いることを特徴とする請求項１記載のデータ書き込み、読み出し方法。
【請求項３】
所定サイズの各データブロックに各データを書き込み、書き込まれたデータを読み出すデータ書き込み、読み出しを行なうメモリであって、
前記書き込みに際し、前記各データについて、同一内容のデータを連続する複数のデータブロックに書き込む手段と、
前記読み出しに際し、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出されない場合は、前記連続する複数のデータブロック分だけシフトした読み出し位置から次のデータを読み出す手段と、
前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出された場合は、該最初のデータブロックのサイズに応じてシフトした読み出し位置から、前記連続する複数のデータブロックの２番目のデータを読み出し、該２番目のデータが正常であれば、前記連続する複数のデータブロックの残りのデータブロック数に応じてシフトした読み出し位置から前記次のデータを読み出す手段と、
を備えたことを特徴とするメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複製多重化して保持するメモリへのデータの書き込み方法及びメモリからの読み出し制御方法に係り、特にソフトウエアプログラムからの参照データを保持するデータのソフトウエアからの読み出し指令に対し、正常なデータを効率よく読み出すことができるデータの書き込み、読み出しに関する。
【背景技術】
【０００２】
近年、各種装置の電子化に伴い、ＣＰＵを組み込んだソフトウエアプログラムの手順に従い、ソフトウエアプログラムの実行に必要なデータを連携するメモリから読み出しプログラムを実行する方式が多くなっている。
【０００３】
図７は本発明対象のソフトウエアプログラムとデータメモリの連携を示す図である。（１）のソフトウエアプログラムに対し（２）のデータメモリの関係を示している。
【０００４】
ソフトウエアプログラムの処理が始まり、ステップＳ２にてステップＳ３で必要なデータの参照の処理手順となる。所要データを保持するデータメモリにデータメモリのアドレスを基に読み出し指令を行なう。データメモリよりデータ“ａｂｃ”（ａｂｃで表示）を読み出し、Ｓ３に挿入し、ソフトウエアプログラムを実行する。
【０００５】
ソフトウエアプログラムで必要となるデータは“ａｂｃ”のように１つのアドレスで保持するデータの他、複数のアドレスに跨るデータが必要となる場合がある。ステップＳｎでは“ｃｄ１”、“ｃｄ２”、“ｃｄ３”の連続したデータが必要である場合を示している。プログラムの処理手順に従い、“ｃｄ１”、“ｃｄ２”、“ｃｄ３”を１ケ毎読み出す、あるいは３ケ連続して読み出す手順が採用される。
【０００６】
しかしながら、データメモリに保持するデータが破壊されている場合があり、対策が必要である。データの破壊はデータの書き込み時、あるいは保持状態で、雑音印加などの何らかの要因により破壊される。
【０００７】
図８は従来の記録構造での問題点を説明する図である。ポインタを含むデータの破壊に対する問題点を示している。
【０００８】
ここでは、１つのアドレスに対し、前のデータの格納アドレスを示すｂｅｆｏｒｅ  ｐｏｉｎｔｅｒと次ぎのデータの格納アドレスを示すｎｅｘｔ  ｐｏｉｎｔｅｒとデータを記録する記録構造を考える。また、各ｐｏｉｎｔｅｒに各々４バイト、データ１２０バイトの計１２８バイトとする。
【０００９】
（１）は破壊の無い正常の場合を（２）は破壊がある場合の例である。（１）の場合、アドレス「０１００ｈ」で定まるｄａｔａより“ｄａｔａ１”を得て、ｎｅｘｔ  ｐｏｉｎｔｅｒの値「０１８０ｈ」より、次ぎのアドレス「０１８０ｈ」に進み、“ｄａｔａ２”を得ることができる。
【００１０】
一方（２）で示すｎｅｘｔ  ｐｏｉｎｔｅｒ＝０１８０ｈが破壊され、「ｘｘｘｘｘ」の格納ポインタを指示した場合、アドレス「ｘｘｘｘｘ」は“ｄａｔａ２”ではなく問題となる。
【００１１】
特許文献１では、共用で利用する共通メモリにおいて、記録データのページを１つのブロックとし、ブロックの最後に次ぎのブロックのポインタと併せパリティを付加する対策が開示されている。しかしながら、本方法ではパリティ異常の判断によるデータ異常を検出してもブロック内のどのアドレス、どのデータかの異常は判断できない問題がある。
【００１２】
破壊への対策として一般に、メモリを複製多重化して保持し、複製多重化データを比較・照合・判断して採用するデータを決め方法がある。しかしながら、ソフトウエアプログラムを実行するためのデータメモリの場合、複製多重化データの比較・照合・判断処理の制御が複雑となり、本発明で対象とするソフトウエアプログラムと連携したデータメモリには適用できない。
【特許文献１】特開２００１−５１１２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の解決しようとする課題は、ソフトウエアプログラムと連携して動作するデータメモリにおいて、記録保持するデータが破壊された場合、プログラムからのデータ参照要求に対し、正常なデータを効率良く読み出すことができない問題である。
【課題を解決するための手段】
【００１４】
第１の発明は、所定サイズの各データブロックに各データを書き込み、書き込まれたデータを読み出すデータ書き込み、読み出し方法である。
【００１５】
前記書き込みに際し、前記各データについて、同一内容のデータを連続する複数のデータブロックに書き込み、前記読み出しに際し、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出されない場合は、前記連続する複数のデータブロック分だけシフトした読み出し位置から次のデータを読み出し、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出された場合は、該最初のデータブロックのサイズに応じてシフトした読み出し位置から、前記連続する複数のデータブロックの２番目のデータを読み出し、該２番目のデータが正常であれば、前記連続する複数のデータブロックの残りのデータブロック数に応じてシフトした読み出し位置から前記次のデータを読み出す。
【００１６】
第２の発明は、第１の発明の記載の前記正常、異常の検出は、前記データブロック内に格納されるポインタに付加された誤り検出ビットを用いる。
【００１７】
第３の発明は、所定サイズの各データブロックに各データを書き込み、書き込まれたデータを読み出すデータ書き込み、読み出しを行なうメモリである。
【００１８】
前記書き込みに際し、前記各データについて、同一内容のデータを連続する複数のデータブロックに書き込む手段と、前記読み出しに際し、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出されない場合は、前記連続する複数のデータブロック分だけシフトした読み出し位置から次のデータを読み出す手段と、前記連続する複数のデータブロックのうち最初のデータブロックについて読み出しを行って、読み出されたデータに異常が検出された場合は、該最初のデータブロックのサイズに応じてシフトした読み出し位置から、前記連続する複数のデータブロックの２番目のデータを読み出し、該２番目のデータが正常であれば、前記連続する複数のデータブロックの残りのデータブロック数に応じてシフトした読み出し位置から前記次のデータを読み出す手段と、を備える。
【発明の効果】
【００１９】
本発明によりソフトウエアプログラムで必要となるデータを保持するデータメモリを効率よく制御し、正常なデータを複雑な処理を要することなく実現できる。
【発明を実施するための最良の形態】
【００２０】
（実施例１）
図１は本発明のメモリへの基本記録構造を示す図である。メモリへの記録単位を１つのアドレスに対し、格納ポインタとしてパリティ付きのｂｅｆｏｒｅ  ｐｏｉｎｔｅｒとｎｅｘｔ  ｐｏｉｎｔｅｒ、及び単位データで構成する構造とする。以下ではこの記録単位を基本記録構造と表現する。パリティの付与の方法は例えば、ｂｅｆｏｒｅ  ｐｏｉｎｔｅｒは格納ポインタの情報に付与し、ｎｅｘｔ  ｐｏｉｎｔｅｒは格納ポインタと単位データを合わせた情報にパリティを付与する。これは情報のバイト数、破壊可能性の情報量、重要度により任意組み合わせて付与すれば良い。パリティの付与方法については後述する。また、基本記録構造の各要素の情報容量として、図１では、例として格納ポインタに、各々４バイト、単位データは１２０バイトとしているが、対象とするデータの単位情報量、ソフトウエアプログラムの性質、メモリ媒体の構造によりバイト数を定めれば良い。
【００２１】
図２は本発明のメモリ二重化時の記録構造と記録論理を示す図である。（１）はメモリ二重化時の記録構造を示し、（２）は（１）で述べた基本記録構造に記録するデータと格納ポインタとデータの記録論理を示している。
（１）メモリ二重化の記録構造
ソフトウエアプログラムが作成され、その処理手順に必要となるデータが定まった場合に、予めデータメモリにデータを記録・保持しておく。その記録・保持の構造は以下となる。
【００２２】
メモリの基本記録構造の１つに主データとして、パリティ付きのｂｅｆｏｒｅ  ｐｏｉｎｔｅｒとｎｅｘｔ  ｐｏｉｎｔｅｒ及び単位データを記録し、次のアドレスの基本記録構造に同一の情報を複製して記録・保持する。すなわち、プログラム手順により定まるある処理ステップで必要なデータをデータメモリに記録・保持する場合、アドレス毎に同一の情報を複製して主データ、副データに記録する。また、複数アドレスに跨るデータの塊の場合、次のアドレスに主データ、副データとしてデータを記録し、データの塊を１つのアドレス毎に主データ、副データの繰り返しで連続して記録・保持する。
【００２３】
ここで、パリティは格納ポインタ、あるいは格納ポインタとデータを併せた情報に予め定めた演算によりパリティを付けたものである。
（２）記録論理
（１）で述べたメモリ二重化時の記録構造への記録論理として、例えば、３つのアドレスに跨る“ｄａｔａ１”“ｄａｔａ２”“ｄａｔａ３”がこの順番で１つの塊の場合を例に説明する。
【００２４】
ここでは説明上、アドレスは２桁の十進数で示す。また、ｂｅｆｏｒｅ  ｐｏｉｎｔｅｒをＢＰ、ｎｅｘｔ  ｐｏｉｎｔｅｒをＮＰと以下では表現する。
【００２５】
初期アドレスを“１０”とする。主データとして、アドレス「１０」のＮＰとして“１１”、ｄａｔａとして“ｄａｔａ１”を記録する。副データとしてアドレス「１１」にＢＰ“１０”、ＮＰ“１２”と“ｄａｔａ１”を記録する。次ぎのアドレス「１２」に主データとして、ＢＰ“１１”、ＮＰ“１３”と“ｄａｔａ２”を記録し、副データとして、アドレス「１３」にＢＰ“１２”、ＮＰ“１４”と“ｄａｔａ２”を記録する。同様にアドレス「１４」、アドレス「１５」に各ＢＰ、ＮＰと“ｄａｔａ３”を記録する。なお、アドレス「１０」のＢＰはここでは「０９」とし、パリティは各々“ａ１”、“ａ２”、“ｂ１”、“ｂ２”、“ｃ１”、“ｃ２”としている。なお、上記の例えば、ＢＰ“１１”の表現はＢＰの情報がアドレス「１１」であることを示し、他も同様である。以下ではこのように表現する。
【００２６】
このように、ソフトウエアプログラムの処理ステップで必要となるがその初期アドレス（＝ｎ０）とその関連する複数のアドレスに跨るアドレスの最大数までの情報を得て主データ、副データとして記録・保持する。すなわち、最大数の基本記録構造で構成する一連の単位データを主データ／副データ、主データ／副データとして連続数の最大数（＝Ｎｍａｘ）になるまで連続して複製して記録・保持する。
【００２７】
また、別の処理ステップで必要となるデータは、簡単には、処理ステップ順に、次のアドレスから記録・保持すれば良い。しかしながら、初期アドレス＝ｎ０と最大数Ｎｍａｘに対応してデータをソフトウエアプログラムと連携させておけば処理ステップ順に記録・保持することは必ずしも必要でない。
【００２８】
図３は本発明の一実施形態の二重化時のデータメモリの読み出しみ動作フローを示す図である。ソフトウエアプログラムからのデータの読み出し指令に対しデータを読み出す場合、二重化されているデータメモリの情報の破壊を確認しながら正常なデータを返答するための読み出し動作フローを示している。なお以下では、アドレス＝ｎでのＢＰ、ＮＰのパリティをＢＰ（ｎ）、ＮＰ（ｎ）、ｄａｔａをｄａｔａ「ｎ」と表現する。
Ｓ１：プログラムからのデータ読み出し指令に対し、その内容（初期アドレス＝ｎ０、最大データ数＝Ｎｍａｘ）を確認し、主データ構造のアドレス「ｎ＝ｎ０」にアクセスし、データ「ｎ」の読み出し処理を開始する。
Ｓ２：主データ構造のＢＰ（ｎ）、ＮＰ（ｎ）のパリティ演算を行ない、各々のパリティが正常か否か評価する。
Ｓ３：主データ構造のＢＰ（ｎ）、ＮＰ（ｎ）の両パリティが正常か否か確認し、正常な場合はＳ４に進み、異常がある場合はＳ６に進む。
Ｓ４、Ｓ５：主データ構造のデータ「ｎ」を採用し、次の処理を行なう。
ア．ｎ＝ｎ+１とする。
イ．ｎ≦Ｎｍａｘの場合：副データ構造分のアドレスをスキップしてＳ２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
ウ．ｎ＞Ｎｍａｘの場合：終了となる。
Ｓ６：以後の主データ構造分のアドレスをスキップし、次のアドレス（副データ構造）へ進む。
Ｓ７：副データ構造のＢＰ（ｎ）、ＮＰ（ｎ）のパリティ演算を行ない、各々のパリティが正常か否か評価する。
Ｓ８：副データ構造のＢＰ（ｎ）、ＮＰ（ｎ）の両パリティが正常か否か確認し、正常な場合はＳ９に進み、異常がある場合はＳ１１に進む。
Ｓ９、Ｓ１０：副データ構造のデータ「ｎ」を採用し、次の処理を行なう。
ア．ｎ＝ｎ+１とする。
イ．ｎ≦Ｎｍａｘの場合：Ｓ２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
ウ．ｎ＞Ｎｍａｘの場合：終了となる。
Ｓ１１：次の処理を行なう。
ア．主データ構造、副データ構造の各々のＢＰ（ｎ）、ＮＰ（ｎ）の評価判定基準（主データ採用、副データ採用、主／副データ破棄、等）に従いデータ「ｎ」を決定する。
イ．ｎ＝ｎ+１とする。
ウ．ｎ≦Ｎｍａｘの場合はＳ２に戻る。すなわち、（すなわち、次の主データ構造のアドレスに進む。）
エ．ｎ＞Ｎｍａｘの場合：終了となる。
【００２９】
図４は本発明でのパリティ異常時の評価判定例を示す図である。主データ、副データの各ＢＰ、ＮＰにパリティ異常があった場合に読み出しデータとして採用するデータを示している。ここでは一例として、ＮＰのパリティはデータを含めてパリティを付与した場合を示している。
１）全てのＢＰ、ＮＰが正常な場合：主データを優先して採用する。
２）ＮＰが正常な場合：正常なデータを採用する。主データ、副データが共に正常な場合は主データのデータとする。
３）その他の場合：主データ、副データを破棄し、読み出しデータとして採用しない。なお、主データ、副データを破棄した場合（二重に破壊されている）は、二重障害として所定のアラームを所定の通知先に送る。ここでは説明を省略する。
【００３０】
ここでは、ＢＰのパリティに比し、ＮＰのパリティの優先として（ＮＰのパリティは単位データを含め情報量が多く破壊される可能性が高い）持たせた場合のデータの採用判定の例を示したが、二重に破壊されている場合も、データの性質、パリティの付与の方法により採用判定を運用基準により決めておけば良い。
【００３１】
次に格納ポインタに付与するパリティの付与方法を以下に述べる。
１）格納ポインタ（あるいは格納ポインタ＋単位データ）にＣＲＣ（巡回符号）演算結果の剰余を付与
ポインタに３バイト、ＣＲＣ演算剰余に１バイトとして計４バイトで構成する。例えば、生成多項式は８ビットを適用して情報系列の除算の剰余を１バイトとして書き込み時（記録・保持時）に生成し、読み出し時はポインタとＣＲＣ演算値を多項式で除算した結果が“０”になれば正常と判断する。
２）格納ポインタ（あるいは格納ポインタ＋単位データ）の情報のチェックサムとしてパリティを付与
ポインタに３バイト、演算値に１バイトとして計４バイトで構成する。チェックサムは、ポインタの情報に１バイト単位で反転して１加算し１バイトとして書き込み時に生成し、読み出し時にポインタとチェックサムを合わせて１バイト単位に加算した結果が“０”になれば正常と判断する。
（実施例２）
図５は本発明のメモリ三重化時の記録構造と記録論理を示す図である。（１）はメモリ三重化時の記録構造を示し、（２）は（１）で述べた基本記録構造に記録するデータと格納ポインタとデータの記録論理を示している。図２で述べた二重化時の記録構造と格納ポインタ、データの記録論理と基本的には同一なので簡単に説明する。
（１）メモリ三重化の記録構造
記録メモリの基本記録構造の１つに主データとして、ＢＰとＮＰ及び単位データを記録し、次のアドレスの基本記録構造に複製して副データを記録・保持する。すなわち、プログラム手順により定まるデータをデータメモリに記録する場合、同一の情報を主データ、副データ１、副データ２と連続して記録して保持する。
【００３２】
即ち、メモリの基本記録構造の１つに主データとして、パリティ付きのｂｅｆｏｒｅ  ｐｏｉｎｔｅｒとｎｅｘｔ  ｐｏｉｎｔｅｒ及び単位データを記録し、次の連続する２つのアドレスの基本記録構造に同一の情報を複製した副データ１、副データ２として記録・保持する。１つのデータが複数のアドレスに跨る場合はさらに、主データ、副データ１、副データ２として連続して記録・保持する。また、パリティは二重化の場合と同様に、格納ポインタ、あるいは格納ポインタとデータを併せた情報に予め定めた演算によりパリティを付けたものである。
（２）記録論理
二重化の場合と同様に、例えば、３つのアドレスに跨る“ｄａｔａ１”、“ｄａｔａ２”がこの順番で１つの塊の場合を例に説明する。アドレスは２桁の十進数で示す。
【００３３】
初期アドレスを「１０」とする。主データとして、アドレス「１０」のＮＰとして“１１”、ｄａｔａとして“ｄａｔａ１”を記録する。副データ１としてアドレス「１１」にＢＰ“１０”、ＮＰ“１２”と“ｄａｔａ１”を記録する。副データ２としてアドレス「１２」にＢＰ“１１”、ＮＰ“１３”と“ｄａｔａ１”を記録する。次ぎのアドレス「１３」に主データとして、ＢＰ“１２”、ＮＰ“１４”と“ｄａｔａ２”を記録し、副データ１として、アドレス「１４」にＢＰ“１３”、ＮＰ“１５”と“ｄａｔａ２”を記録する。副データ２としてアドレス「１５」にＢＰ“１４”、ＮＰ“１６”と“ｄａｔａ２”を記録する。
【００３４】
以下同様にして、プログラムのあるステップで必要となるデータが複数のアドレスに跨る場合はそのアドレスの最大数までのデータを主データ、副データ１、副データ２として最大数まで連続して記録・保持する。すなわち、最大数の基本記録構造で構成する一連の単位データを記録・保持する。
【００３５】
図６は本発明の一実施形態の三重化時のデータメモリの読み出しみ動作フローを示す図である。データメモリを三重化した場合の読み出すデータの評価判定を示している。
Ｓ２１：プログラムからのデータ読み出し指令に対し、その内容（初期アドレス＝ｎ０、最大データ数＝Ｎｍａｘ）を確認し、主データ構造のアドレス（ｎ＝ｎ０）にアクセスし、データ「ｎ」の読み出し処理を開始する。
Ｓ２２：主データ構造のＢＰ（ｎ）、ＮＰ（ｎ）のパリティ演算を行ない、各々のパリティが正常か否か評価する。
Ｓ２３：主データ構造のＢＰ（ｎ）、ＮＰ（ｎ）の両パリティが正常か否か確認し、正常な場合はＳ２４に進み、異常がある場合はＳ２６に進む。
Ｓ２４、Ｓ２５：主データ構造のデータ「ｎ」を採用し、次の処理を行なう。
ア．ｎ＝ｎ+１とする。
イ．ｎ≦Ｎｍａｘの場合：副データ構造分のアドレスをスキップしＳ２２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
Ｓ２６：以後の主データ構造分のアドレスをスキップし、次のアドレス（副データ１構造）へ進む。
Ｓ２７：副データ１構造のＢＰ（ｎ）、ＮＰ（ｎ）のパリティ演算を行ない、各々のパリティが正常か否か評価する。
Ｓ２８：副データ１構造のＢＰ（ｎ）、ＮＰ（ｎ）の両パリティが正常か否か確認し、正常な場合はＳ２９に進み、異常がある場合はＳ３１に進む。
Ｓ２９、Ｓ３０：副データ１構造のデータ「ｎ」を採用し、次の処理を行なう。
ア．ｎ＝ｎ+１とする。
イ．ｎ≦Ｎｍａｘの場合：副データ２構造分のアドレスをスキップしＳ２２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
ウ．ｎ＞Ｎｍａｘの場合：終了となる。
Ｓ３１：以後の副データ１構造分のアドレスをスキップし、次のアドレス（副データ構造２）に進む。
Ｓ３２：副データ２構造のＢＰ（ｎ）、ＮＰ（ｎ）のパリティ演算を行ない、各々のパリティが正常か否か評価する。
Ｓ３３：副データ２構造のＢＰ（ｎ）、ＮＰ（ｎ）の両パリティが正常か否か確認し、正常な場合はＳ３４に進み、異常がある場合はＳ３６に進む。
Ｓ３４、Ｓ３５：副データ２構造のデータ「ｎ」を採用し、次の処理を行なう。
ア．ｎ＝ｎ+１とする。
イ．ｎ≦Ｎｍａｘの場合はＳ２２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
ウ．ｎ＞Ｎｍａｘの場合：終了となる。
Ｓ３６：次の処理を行なう。
ア．主データ構造、副データ構造の各々のＢＰ（ｎ）、ＮＰ（ｎ）の評価判定基準（主データ採用、副データ採用、主／副データ破棄、等）に従いデータ「ｎ」を決定する。
イ．ｎ＝ｎ+１とする。
ウ．ｎ≦Ｎｍａｘの場合はＳ２２に戻る。（すなわち、次の主データ構造のアドレスに進む。）
エ．ｎ＞Ｎｍａｘの場合：終了となる。
【００３６】
Ｓ３６で行なうデータの採用は図４の説明で述べたような以下の方法で行なう。重複するが説明する。
１）全てのＢＰ、ＮＰが正常な場合：主データを優先して採用する。
２）ＮＰが正常な場合：正常な方を採用する。主データ、副データ１、副データ２が正常な場合は、優先順位を主データ、副データ１、副データ２とする。
３）その他の場合：主データ、副データ１、副データ２を破棄し、読み出しデータとして採用しない。なお、主データ、副データ１、副データ２が破棄した場合（二重、三重に破壊されている）は、多重障害として所定のアラームを所定の通知先に送る。ここでは説明を省略する。
【００３７】
ここでは、ＢＰのパリティに比し、ＮＰのパリティに重要性を持たせた場合のデータの採用判定の例を示したが、多重に破壊されている場合も、データの性質、パリティの付与の方法により採用判定を運用基準によりどのデータを採用するか決めておけば良い。
【図面の簡単な説明】
【００３８】
【図１】図１は本発明のメモリへの基本記録構造を示す図である。
【図２】図２は本発明のメモリ二重化時の記録構造と記録論理を示す図である。
【図３】図３は本発明の一実施形態の二重化時のデータメモリの読み出しみ動作フローを示す図である。
【図４】図４は本発明でのパリティ異常時の評価判定例を示す図である。
【図５】図５は本発明のメモリ三重化時の記録構造と記録論理を示す図である。
【図６】図６は本発明の一実施形態の三重化時のデータメモリの読み出しみ動作フローを示す図である。
【図７】図７は本発明対象のソフトウエアプログラムとデータメモリの連携を示す図である。
【図８】図８は従来の記録構造での問題点を説明する図である。
【図１】
2008204400.tif 000003
【図２】
2008204400.tif 000004
【図３】
2008204400.tif 000005
【図４】
2008204400.tif 000006
【図５】
2008204400.tif 000007
【図６】
2008204400.tif 000008
【図７】
2008204400.tif 000009
【図８】
2008204400.tif 000010