(57)【要約】【課題】二重化したＮＶＲＡＭの情報が不一致状態でもどちらのＮＶＲＡＭの情報を採用すべきか判断できるようにする。【解決手段】各ＢＭＣ２１，３１に含まれないＮＶＲＡＭ１１，１２を設け、ＢＭＣ２１内部にバックアップＮＶＲＡＭ２１１を、ＢＭＣ３１内部にバックアップＮＶＲＡＭ３１１を設け、ＢＭＣ２１（３１）がＮＶＲＡＭ１１，１２にデータを書き込む際、バックアップＮＶＲＡＭ２１１（３１１）にもデータから算出したハッシュ値（またはチェックサム）を書き込む。ＢＭＣ２１（３１）初期化時はＮＶＲＡＭ１１，１２のデータを比較し、一致ならそのデータをそのまま使用、一致しない場合、バックアップＮＶＲＡＭ２１１（３１１）とハッシュ値（またはチェックサム）の比較を行い、ＮＶＲＡＭ１１，１２のうち一致する方のデータを使用する。どちらとも一致しない場合、ＮＶＲＡＭ１１，１２を規定の値で初期化する。【選択図】図１
2008204327.tif 000002
【特許請求の範囲】
【請求項１】
記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システムにおける制御方法であって、
前記制御装置は、
前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込みステップと、
起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較ステップと、
前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを備える
ことを特徴とする二重化システムにおける制御方法。
【請求項２】
第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システムにおける制御方法であって、
前記第１の制御装置は、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込みステップと、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較ステップと、
前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを備え、
前記第２の制御装置は、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込みステップと、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定ステップと、
前記第３の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較ステップと、
前記第２の比較ステップにおける比較結果に応じて、前記データの正否を判定する第４の判定ステップとを備える
ことを特徴とする二重化システムにおける制御方法。
【請求項３】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値である
ことを特徴とする請求項２に記載の二重化システムにおける制御方法。
【請求項４】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムである
ことを特徴とする請求項２に記載の二重化システムにおける制御方法。
【請求項５】
前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項２乃至４のいずれかに記載の二重化システムにおける制御方法。
【請求項６】
前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項２乃至４のいずれかに記載の二重化システムにおける制御方法。
【請求項７】
前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項２乃至４のいずれかに記載の二重化システムにおける制御方法。
【請求項８】
前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項２乃至４のいずれかに記載の二重化システムにおける制御方法。
【請求項９】
記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システム制御装置であって、
前記制御装置は、
前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込み手段と、
前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込み手段と、
起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定手段と、
前記第１の判定手段によって、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較手段と、
前記第１の比較手段による比較結果に応じて、前記データの正否を判定する第２の判定手段とを備える
ことを特徴とする二重化システム制御装置。
【請求項１０】
第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システム制御装置であって、
前記第１の制御装置は、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込み手段と、
前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込み手段と、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定手段と、
前記第１の判定手段によって、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較手段と、
前記第１の比較手段による比較結果に応じて、前記データの正否を判定する第２の判定手段とを備え、
前記第２の制御装置は、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込み手段と、
前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込み手段と、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定手段と、
前記第３の判定手段によって、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較手段と、
前記第２の比較手段による比較結果に応じて、前記データの正否を判定する第４の判定手段とを備える
ことを特徴とする二重化システムにおける制御装置。
【請求項１１】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値である
ことを特徴とする請求項１０に記載の二重化システムにおける制御装置。
【請求項１２】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムである
ことを特徴とする請求項１０に記載の二重化システムにおける制御装置。
【請求項１３】
前記第１の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項１０乃至１２のいずれかに記載の二重化システムにおける制御装置。
【請求項１４】
前記第２の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項１０乃至１２のいずれかに記載の二重化システムにおける制御装置。
【請求項１５】
前記第１の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、または双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項１０乃至１２のいずれかに記載の二重化システムにおける制御装置。
【請求項１６】
前記第２の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、または双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項１０乃至１２のいずれかに記載の二重化システムにおける制御装置。
【請求項１７】
記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システムにおける制御プログラムであって、
前記制御装置に、
前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込みステップと、
起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較ステップと、
前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを実行させる
ことを特徴とする二重化システムにおける制御プログラム。
【請求項１８】
第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システムにおける制御プログラムであって、
前記第１の制御装置に、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込みステップと、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較ステップと、
前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを実行させ、
前記第２の制御装置に、
前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込みステップと、
前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込みステップと、
起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定ステップと、
前記第３の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較ステップと、
前記第２の比較ステップにおける比較結果に応じて、前記データの正否を判定する第４の判定ステップとを実行させる
ことを特徴とする二重化システムにおける制御プログラム。
【請求項１９】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値である
ことを特徴とする請求項１８に記載の二重化システムにおける制御プログラム。
【請求項２０】
前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムである
ことを特徴とする請求項１８に記載の二重化システムにおける制御プログラム。
【請求項２１】
前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項１８乃至２０のいずれかに記載の二重化システムにおける制御プログラム。
【請求項２２】
前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新される
ことを特徴とする請求項１８乃至２０のいずれかに記載の二重化システムにおける制御プログラム。
【請求項２３】
前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項１８乃至２０のいずれかに記載の二重化システムにおける制御プログラム。
【請求項２４】
前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれる
ことを特徴とする請求項１８乃至２０のいずれかに記載の二重化システムにおける制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化システムにおける記憶装置の制御方法に関し、特に、二重化システムにおける書き換え回数に制限のあるＮＶＲＡＭ等で構成される記憶装置を制御する二重化システムにおける記憶装置の制御方法に関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、温度やファンの回転数、電源の状態などを監視する機能や、ＯＳに依存せずに遠隔制御を行うための機能を持ったいわゆるＢＭＣ(Baseboard Management Controller)が従来から使用されている。そのようなＢＭＣを持つシステムを二重化する場合には、それぞれのＢＭＣが連携して二重化システムの制御を行う。
このＢＭＣは、システム監視や遠隔制御のために必要な設定情報を格納する不揮発性メモリ（例えばＮＶＲＡＭ（Nonvolatile Random Access Memory）等）を持つが、二重化システムにおいては単一点故障（１つのハードウェアの故障によりシステム全体が機能しなくなること）を防ぐために、ＮＶＲＡＭの二重化も必要となる。
特許文献１記載の発明では、サービスプロセッサ（ＢＭＣに対応する）に内蔵ディスク（ＮＶＲＡＭに対応する）を内蔵して二重化する方法が示されている。この発明では、サービスプロセッサおよび内蔵ディスクをそれぞれ二重化し、サービスプロセッサのいずれかが故障したときや、内蔵ディスクのいずれかが故障したときでも、単一点故障を防ぐことができる。
【特許文献１】特開平３−１６７６３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術には以下のような問題点があった。
第１の問題点は、片方のシステムやＢＭＣの交換を行う際に、事前に保存しておいたＢＭＣのＮＶＲＡＭの情報を書き戻す手順が必要となることである。その理由は、ＮＶＲＡＭそのものが交換対象の中に含まれているためである。
第２の問題点は、二重化したＮＶＲＡＭの情報に不一致が発生した場合に、ＢＭＣがどちらのＮＶＲＡＭの情報を採用すべきか判断できない場合があることである。その理由は、ＢＭＣのＮＶＲＡＭには容量や書き換え回数の制限が厳しいものが多く、ＮＶＲＡＭの書き換え時にタイムスタンプを同時に書き込み、このタイムスタンプを二重化したＮＶＲＡＭのどちらの情報が新しいものなのかを判断するための条件とすることができないことがあるためである。これは、例えば、二重化したＮＶＲＡＭの情報に不一致が発生した状態でＢＭＣの初期化が行われるような場合に問題となる。これらのことは、特許文献１に記載の発明においても同様である。
本発明の目的は、二重化システムにおいて、システムやＢＭＣが交換された場合でも、そのままＮＶＲＡＭを使用できるＮＶＲＡＭの制御方法を提供することにある。また、本発明の他の目的は、二重化したＮＶＲＡＭの情報に不一致が発生した場合でも、正しい方のＮＶＲＡＭの情報を使用できるＮＶＲＡＭの制御方法を提供することにある。
【課題を解決するための手段】
【０００４】
請求項１に記載の二重化システムにおける制御方法は、記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システムにおける制御方法であって、前記制御装置は、前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込みステップと、起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定ステップと、前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較ステップと、前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを備えることを特徴とする。
請求項２に記載の二重化システムにおける制御方法は、第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システムにおける制御方法であって、前記第１の制御装置は、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込みステップと、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定ステップと、前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較ステップと、前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを備え、前記第２の制御装置は、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込みステップと、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定ステップと、前記第３の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較ステップと、前記第２の比較ステップにおける比較結果に応じて、前記データの正否を判定する第４の判定ステップとを備えることを特徴とする。
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値とすることができる。
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムとすることができる。
また、前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
また、前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
請求項９に記載の二重化システム制御装置は、記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システム制御装置であって、前記制御装置は、前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込み手段と、前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込み手段と、起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定手段と、前記第１の判定手段によって、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較手段と、前記第１の比較手段による比較結果に応じて、前記データの正否を判定する第２の判定手段とを備えることを特徴とする。
請求項１０に記載の二重化システム制御装置は、第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システム制御装置であって、前記第１の制御装置は、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込み手段と、前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込み手段と、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定手段と、前記第１の判定手段によって、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較手段と、前記第１の比較手段による比較結果に応じて、前記データの正否を判定する第２の判定手段とを備え、前記第２の制御装置は、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込み手段と、前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込み手段と、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定手段と、前記第３の判定手段によって、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較手段と、前記第２の比較手段による比較結果に応じて、前記データの正否を判定する第４の判定手段とを備えることを特徴とする。
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値とすることができる
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムとすることができる。
また、前記第１の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第２の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第１の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、または双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
また、前記第２の比較手段による比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、または双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
請求項１７に記載の二重化システムにおける制御プログラムは、記憶部を有し所定の制御処理を実行する二重化された制御装置と、前記制御装置とは独立して設けられ、前記制御装置によってデータの書き換えが可能な二重化された記憶装置とを備える二重化システムにおける制御プログラムであって、前記制御装置に、前記記憶装置の少なくともいずれか一方にデータを書き込む第１の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記記憶部の一方に書き込む第２の書き込みステップと、起動時に、前記記憶装置の双方に書き込まれた前記データ同士を比較し、両者が一致するか否かを判定する第１の判定ステップと、前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記記憶装置の一方に書き込まれた前記データから算出された算出値、および前記記憶装置の他方に書き込まれた前記データから算出された算出値のそれぞれと、前記記憶部の一方に書き込まれた前記算出値とを比較する第１の比較ステップと、前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを実行させることを特徴とする。
請求項１８に記載の二重化システムにおける制御プログラムは、第１の記憶装置を有し所定の制御処理を実行する第１の制御装置と、第２の記憶装置を有し所定の制御処理を実行する第２の制御装置と、前記第１の制御装置および前記第２の制御装置とは独立して設けられ、前記第１の制御装置および前記第２の制御装置によってデータの書き換えが可能な第３の記憶装置および第４の記憶装置とを備える二重化システムにおける制御プログラムであって、前記第１の制御装置に、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第１の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記第１の記憶装置に書き込む第２の書き込みステップと、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第１の判定ステップと、前記第１の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第１の記憶装置に書き込まれた前記算出値とを比較する第１の比較ステップと、前記第１の比較ステップにおける比較結果に応じて、前記データの正否を判定する第２の判定ステップとを実行させ、前記第２の制御装置に、前記第３の記憶装置および前記第４の記憶装置のうちの少なくともいずれかにデータを書き込む第３の書き込みステップと、前記データに対して所定の演算を行うことによって算出された算出値を前記第２の記憶装置に書き込む第４の書き込みステップと、起動時に、前記第３の記憶装置に書き込まれた前記データと、前記第４の記憶装置に書き込まれた前記データとを比較し、両者が一致するか否かを判定する第３の判定ステップと、前記第３の判定ステップにおいて、両者が一致しないと判定されたとき、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のそれぞれと、前記第２の記憶装置に書き込まれた前記算出値とを比較する第２の比較ステップと、前記第２の比較ステップにおける比較結果に応じて、前記データの正否を判定する第４の判定ステップとを実行させることを特徴とする。
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのハッシュ値とすることができる。
また、前記算出値は、前記データに基づいて算出された前記データのサイズよりも小さいサイズのチェックサムとすることができる。
また、前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第１の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値のいずれか一方と、前記第２の記憶装置に書き込まれた前記算出値とが一致した場合、前記第３の記憶装置および前記第４の記憶装置のうち、一致した方に記憶されている前記データによって、一致しなかった方に記憶されている前記データが更新されるようにすることができる。
また、前記第１の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第１の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
また、前記第２の比較ステップにおける比較の結果、前記第３の記憶装置に書き込まれた前記データから算出された算出値、および前記第４の記憶装置に書き込まれた前記データから算出された算出値の双方とも、前記第２の記憶装置に書き込まれた前記算出値と一致した場合、および双方とも一致しなかった場合、前記第３の記憶装置および前記第４の記憶装置に対して所定の初期値が書き込まれるようにすることができる。
【発明の効果】
【０００５】
本発明によれば、二重化された第１の制御装置または第２の制御装置の一方が交換された場合でも、二重化された第３の記憶装置または第４の記憶装置をそのまま使用することができ、作業効率を向上させることができる。
また、第１の制御装置または第２の制御装置による第３の記憶装置または第４の記憶装置へのデータの書き込み中にエラーが発生し、第３の記憶装置のデータと第４の記憶装置のデータとが一致しなくなった場合でも、第１の制御装置または第２の制御装置の初期化開始時には第３の記憶装置のデータと第４の記憶装置のデータのうち正しい方のデータを初期値として使用することができる。
また、第１の制御装置または第２の制御装置が交換され、第３の記憶装置のデータと第４の記憶装置のデータとが一致しない状態になっている場合でも、第１の制御装置または第２の制御装置の初期化開始時に、第３の記憶装置および第４の記憶装置とは別の装置で設定されていたデータが第３の記憶装置および第４の記憶装置の初期値として使用されることがないようにすることができる。これにより、誤ったデータが初期値として使用されることを抑制することができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１を参照すると、本発明の一実施の形態としての二重化ＮＶＲＡＭ制御システムが示されている。図１において、二重化ＮＶＲＡＭ１はシステム２とシステム３に接続されている。システム２とシステム３はそれぞれが交換単位であり、システム２とシステム３で構成される二重化システムにおいては、二重化システム運用中にシステム２またはシステム３を交換することができる。
【０００７】
二重化ＮＶＲＡＭ１はＮＶＲＡＭ１１とＮＶＲＡＭ１２を備えている。ＮＶＲＡＭ１１とＮＶＲＡＭ１２はそれぞれＢＭＣ２１のためのＮＶＲＡＭ領域とＢＭＣ３１のためのＮＶＲＡＭ領域を持つ。システム２はＢＭＣ２１を備えている。システム３はＢＭＣ３１を備えている。ＢＭＣ２１はバックアップＮＶＲＡＭ２１１を備えている。ＢＭＣ３１はバックアップＮＶＲＡＭ３１１を備えている。ＢＭＣ２１とＢＭＣ３１はそれぞれが交換単位であっても良い。ＢＭＣ２１およびＢＭＣ３１は、図示はしないが、それぞれ各種処理を実行するとともに各部を制御するＣＰＵ（Central Processing Unit）と、制御プログラムや各種設定値等を記憶するＲＯＭ（ＲＯＭ）と、ＣＰＵが各種処理や各部を制御する際に必要とされる各種データ等を一時的に記憶するＲＡＭ（Random Access Memory）と、二重化ＮＶＲＡＭ１や、他のシステム（システム１またはシステム２）のＢＭＣ２１またはＢＭＣ３１との間で各種データやコマンドの送受信を行う入出力制御装置等を備え、ＣＰＵがＲＯＭに記憶されている制御プログラムに従って、二重化ＮＶＲＡＭ１へのデータの書き込みや、バックアップＮＶＲＡＭ２１１，３１１へのデータやハッシュ値またはチェックサム等の書き込みや、比較処理、判定処理等、後述する各種処理を実行するようになっている。
【０００８】
次に、図１の二重化ＮＶＲＡＭ制御システムの動作について説明する。ＢＭＣ２１またはＢＭＣ３１が二重化ＮＶＲＡＭ１にデータの書き込みを行う際には、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の両方にそれぞれ書き込みを行い、バックアップＮＶＲＡＭ２１１またはバックアップＮＶＲＡＭ３１１にも同じ内容のデータの書き込みを行う。
【０００９】
ＢＭＣ２１またはＢＭＣ３１が二重化ＮＶＲＡＭ１からデータの読み込みを行う場合には、ＮＶＲＡＭ１１とＮＶＲＡＭ１２のどちらからデータの読み込みを行っても良い。
【００１０】
ＢＭＣ２１またはＢＭＣ３１の動作中に、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうちのどちらか一方が故障した場合には、自系ＢＭＣが停止するまではＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち使用できる方のみを使用する。
【００１１】
ＢＭＣ２１（またはＢＭＣ３１）の起動時には、それぞれ次の手順で二重化ＮＶＲＡＭ１の初期化を行う。まず、ＮＶＲＡＭ１１に記憶されているデータとＮＶＲＡＭ１２に記憶されているデータを比較し、一致する場合には、ＮＶＲＡＭ１１に記憶されているデータとＮＶＲＡＭ１２に記憶されているデータをそのまま使用する。
【００１２】
一方、ＮＶＲＡＭ１１に記憶されているデータとＮＶＲＡＭ１２に記憶されているデータが一致しない場合には、ＮＶＲＡＭ１１に記憶されているデータとＮＶＲＡＭ１２に記憶されているデータをそれぞれ、バックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）と比較し、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち、バックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）とデータが一致した方のデータを、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうちデータが一致しなかった方に書き込む。ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のどちらもそれぞれバックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）とデータが一致しない場合には、ＢＭＣ２１（またはＢＭＣ３１）は、ＮＶＲＡＭ１１とＮＶＲＡＭ１２に規定の初期値をそれぞれ書き込む。
【００１３】
次に、本発明の他の実施の形態の構成および動作について説明する。本実施の形態の基本的構成は上記の通りであるが、ＢＭＣ２１，３１が備えるバックアップＮＶＲＡＭ２１１，３１１についてさらに工夫している。その構成は図１に示した上記実施の形態の場合と同一である。
【００１４】
ＢＭＣ２１（またはＢＭＣ３１）が二重化ＮＶＲＡＭ１にデータの書き込みを行う際には、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の両方にデータの書き込みを行い、バックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）にはＮＶＲＡＭ１１とＮＶＲＡＭ１２に書き込むデータのハッシュ値またはチェックサムのみを書き込む。ハッシュ値とは、例えば、データ全体から求めたハッシュ値とすることができる。チェックサムとは、データをブロック単位で分割し、各ブロック内のデータを数値とみなして合計を取ったものとして算出することができる。各ブロックの大きさは特に限定されない。
【００１５】
ＢＭＣ２１（またはＢＭＣ３１）が二重化ＮＶＲＡＭ１からデータの読み込みを行う場合には、ＮＶＲＡＭ１１とＮＶＲＡＭ１２のどちらから読み込みを行っても良い。
【００１６】
ＢＭＣ２１（またはＢＭＣ３１）動作中に、ＮＶＲＡＭ１１またはＮＶＲＡＭ１２のどちらかが故障した場合には、自系ＢＭＣ２１（またはＢＭＣ３１）が停止するまでは、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち使用できる方のみを使用する。
【００１７】
ＢＭＣ２１（またはＢＭＣ３１）の起動時には、それぞれ次の手順で二重化ＮＶＲＡＭ１の初期化を行う。
【００１８】
（ＢＭＣ２１の場合）
図２のフローチャートに示したように、ＮＶＲＡＭ１１のＢＭＣ２１が書き込みを行う領域に記憶されているデータと、ＮＶＲＡＭ１２のＢＭＣ２１が書き込みを行う領域に記憶されているデータとを比較し（ステップＳ１）、比較の結果、両者が一致しない場合（ステップＳ２のＮＯ）には、まず、ＮＶＲＡＭ１１のＢＭＣ２１が書き込みを行う領域に記憶されているデータに基づいてハッシュ値またはチェックサムを計算し（捨てプログラムＳ３）、計算した結果として得られたハッシュ値またはチェックサムと、バックアップＮＶＲＡＭ２１１に格納されているハッシュ値またはチェックサムとの比較を行う（比較Ａ）（ステップＳ４）。両者が一致する場合（ステップＳ２のＹＥＳ）、そのままデータを使用する（ステップＳ１０）。
【００１９】
次に、ＮＶＲＡＭ１２のＢＭＣ２１が書き込みを行う領域に記憶されているデータに基づいてハッシュ値またはチェックサムを計算し（ステップＳ５）、計算した結果として得られたハッシュ値またはチェックサムと、バックアップＮＶＲＡＭ２１１に格納されているハッシュ値またはチェックサムとの比較を行う（比較Ｂ）（ステップＳ６）。
【００２０】
（比較Ａ）および（比較Ｂ）のどちらか一方のみが「一致する」という結果になれば（ステップＳ７のＹＥＳ）、一致した方の結果を正しいものとみなし、ＢＭＣ２１は、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち、「一致する」という結果が得られた方のデータを、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち、「一致しない」という結果が得られた方に書き込む（ステップＳ８）。
【００２１】
（比較Ａ）の結果も（比較Ｂ）の結果も「不一致」だった場合（ステップＳ７のＮＯ）には、ＮＶＲＡＭ１１のデータもＮＶＲＡＭ１２のデータも正しくないことが明らかなため、ＢＭＣ２１は、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の双方に規定の初期値を書き込み初期化する（ステップＳ９）。
【００２２】
（比較Ａ）の結果も（比較Ｂ）の結果も「一致する」となった場合（ステップＳ７のＮＯ）、おそらくＮＶＲＡＭ１１のデータとＮＶＲＡＭ１２のデータのどちらかは正しいと思われるが、どちらが正しいのかを判断することはできないため、ＢＭＣ２１は、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の双方に規定の初期値を書き込み初期化する（ステップＳ９）。
【００２３】
（ＢＭＣ３１の場合）
図３のフローチャートに示したように、ＮＶＲＡＭ１１のＢＭＣ３１が書き込みを行う領域に記憶されているデータとＮＶＲＡＭ１２のＢＭＣ３１が書き込みを行う領域に記憶されているデータとを比較し（ステップＳ２１）、両者が一致しない場合（ステップＳ２２のＮＯ）には、まず、ＮＶＲＡＭ１１のＢＭＣ３１が書き込みを行う領域に記憶されているデータに基づいてハッシュ値またはチェックサムを計算し（ステップＳ２３）、計算した結果として得られたハッシュ値またはチェックサムと、バックアップＮＶＲＡＭ３１１に格納されているハッシュ値またはチェックサムとの比較を行う（比較Ｃ）（ステップＳ２４）。
【００２４】
次に、ＮＶＲＡＭ１２のＢＭＣ３１が書き込みを行う領域に記憶されているデータに基づいてハッシュ値またはチェックサムを計算し（ステップＳ２５）、計算した結果として得られたハッシュ値またはチェックサムと、バックアップＮＶＲＡＭ３１１に格納されているハッシュ値またはチェックサムとの比較を行う（比較Ｄ）（ステップＳ２６）。
【００２５】
（比較Ｃ）および（比較Ｄ）のどちらか一方のみが「一致する」という結果になれば（ステップＳ２７のＹＥＳ）、一致した方の結果を正しいものとみなし、ＢＭＣ３１は、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち、「一致する」という結果が得られた方のデータを、ＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち、「一致しない」という結果が得られた方に書き込む（ステップＳ２８）。
【００２６】
（比較Ｃ）の結果も（比較Ｄ）の結果も「不一致」だった場合（ステップＳ２７のＮＯ）には、ＮＶＲＡＭ１１の値もＮＶＲＡＭ１２の値も正しくないことが明らかなため、ＢＭＣ３１は、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の双方に規定の初期値を書き込み初期化する（ステップＳ２９）。
【００２７】
（比較Ｃ）の結果も（比較Ｄ）の結果も「一致する」となった場合（ステップＳ２７のＮＯ）、おそらくＮＶＲＡＭ１１の値とＮＶＲＡＭ１２の値のどちらかは正しいと思われるが、どちらが正しいのかを判断することはできないため、ＢＭＣ３１は、ＮＶＲＡＭ１１とＮＶＲＡＭ１２の双方に規定の初期値を書き込み初期化する（ステップＳ２９）。
【００２８】
上記各実施の形態では、二重化されるそれぞれのシステム２，３には直接含まれないＮＶＲＡＭ１１，１２を２つ設けて二重化を行い、それぞれのシステム２，３に設けられた各ＢＭＣ２１，３１内部にもバックアップＮＶＲＡＭ２１１，３１１をそれぞれ設け（ＢＭＣ２１内にバックアップＮＶＲＡＭ２１１を設け、ＢＭＣ３１内にバックアップＮＶＲＡＭ  ３１１を設ける）、ＢＭＣ２１（またはＢＭＣ３１）が二重化されたＮＶＲＡＭ１１，１２にデータを書き込む際には、必ずＢＭＣ２１（またはＢＭＣ３１）内部のバックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）にも同一内容のデータの書き込みを行う。そして、ＢＭＣ２１（またはＢＭＣ３１）の初期化時には、二重化されたＮＶＲＡＭ１１，１２同士で記憶されているデータを比較し、それらのデータが一致していれば、各々記憶されているデータをそのままＮＶＲＡＭ１１，１２の値として使用する。一方、それらのデータが一致しない場合には、ＮＶＲＡＭ１１，１２のデータとバックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）のデータとの比較をそれぞれ行い、一致する方のデータをＮＶＲＡＭ１１，１２のデータとしてそれぞれ使用する。どちらとも一致しない場合には、ＮＶＲＡＭ１１，１２の内容をそれぞれ規定の値で初期化する。
【００２９】
二重化されたＮＶＲＡＭ１１，１２は、ＢＭＣ２１，３１に直接含まれないため、それぞれのシステム２，３やＢＭＣ２１，３１を交換した場合でも、ＮＶＲＡＭ１１，１２のデータをそのまま使用することができる。また、ＢＭＣ２１またはＢＭＣ３１の初期化時に、二重化されたＮＶＲＡＭ１１，１２にデータの不一致が発生していても、ＢＭＣ２１（またはＢＭＣ３１）の内部のバックアップＮＶＲＡＭ２１１（またはバックアップＮＶＲＡＭ３１１）のデータから、ＮＶＲＡＭ１１，１２のどちらのデータが正しいかを判断することができる。さらに、バックアップＮＶＲＡＭ２１１，３１１のデータそのものをＮＶＲＡＭ１１，１２のデータとして使用しないため、誤って以前のシステムで設定されていたデータを使用しないようにすることができる。
【００３０】
以上説明したように、本実施の形態によれば、次のような効果を得ることができる。第１の効果は、二重化されたシステム２またはシステム３が交換された場合でも、二重化ＮＶＲＡＭ１をそのまま使用することができることである。また、ＢＭＣ２１とＢＭＣ３１が交換単位である場合には、ＢＭＣ２１またはＢＭＣ３１が交換された場合でも二重化ＮＶＲＡＭ１をそのまま使用することができる。その理由は、二重化ＮＶＲＡＭ１は、システム２、システム３、ＢＭＣ２１、ＢＭＣ３１のいずれかが交換された場合でも、交換前と同じ内容のデータを保持しているためである。
【００３１】
第２の効果は、ＮＶＲＡＭ１１またはＮＶＲＡＭ１２への書き込みが完了していない状態でＢＭＣ２１またはＢＭＣ３１が停止して、ＮＶＲＡＭ１１のデータおよびＮＶＲＡＭ１２のデータが不一致の状態になっても、初期化開始時にはＮＶＲＡＭ１１およびＮＶＲＡＭ１２のうち正しい方のデータを初期値として使用することができることである。その理由は、バックアップＮＶＲＡＭ２１１またはバックアップＮＶＲＡＭ３１１には二重化ＮＶＲＡＭ１に最後に書き込まれたデータが記録されているためである。
【００３２】
第３の効果は、システム２またはシステム３が交換された場合に、二重化ＮＶＲＡＭ１を構成するＮＶＲＡＭ１１のデータとＮＶＲＡＭ１２のデータが不一致の状態になっていても、別のシステム（ＮＶＲＡＭ１以外のシステム）で設定されていたＮＶＲＡＭ情報（この例ではバックアップＮＶＲＡＭ２１１またはＮＶＲＡＭ３１１のデータ）を使用してしまうことがないことである。また、ＢＭＣ２１とＢＭＣ３１が交換単位である場合には、ＢＭＣ２１またはＢＭＣ３１が交換された場合でも同様である。その理由は、二重化ＮＶＲＡＭ１を構成するＮＶＲＡＭ１１のデータとＮＶＲＡＭ１２のデータが不一致の状態でも、バックアップＮＶＲＡＭ２１１またはＮＶＲＡＭ３１１のデータをそのまま使用することがないためである。
【００３３】
また、バックアップＮＶＲＡＭ２１１およびバックアップＮＶＲＡＭ３１１に、データそのものではなく、データから算出したハッシュ値またはチェックサムを書き込むようにすることにより、バックアップＮＶＲＡＭ２１１およびバックアップＮＶＲＡＭ３１１の容量を小さくすることができる。これにより、消費電力や製造コストを削減することができる。
【００３４】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【産業上の利用可能性】
【００３５】
本発明は、例えば、ＢＭＣを含むシステムだけでなく、二重化された他のシステムにも適用することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施の形態の構成例を示すブロック図である。
【図２】図１の一方のＢＭＣの処理手順を説明するためのフローチャートである。
【図３】図１の他方のＢＭＣの処理手順を説明するためのフローチャートである。
【符号の説明】
【００３７】
１  二重化ＮＶＲＡＭ
２，３  システム
１１，１２  ＮＶＲＡＭ
２１，３１  ＢＭＣ
２１１，３１１  バックアップＮＶＲＡＭ
【図１】
2008204327.tif 000003
【図２】
2008204327.tif 000004
【図３】
2008204327.tif 000005