(57)【要約】二重化計算システムは同一の機能を持つ第１の演算処理部（Ａ系）と第２の演算処理部（Ｂ系）の二つの系からなる。診断制御部は一方の系が演算処理動作中に他方の系の診断を行う。診断制御部は診断動作に合わせて入力制御部を通して第１、第２の演算処理部への入力を制御し、出力制御部は診断結果に応じて第１、第２の演算処理部からの出力を制御する。診断終了後、診断されなかった系の記憶部から診断された系の記憶部へ値を写して二重化動作に復帰する。
2011068177.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶部を備えた第１の演算処理部の入力と、前記第１の演算処理部と同じ機能をもち、第２の記憶部を備えた第２の演算処理部の入力とが入力制御部に接続され、
前記第１の演算処理部の出力と前記第２の演算処理部の出力とが比較部と出力制御部とに接続され、
前記第１の演算処理部と前記第２の演算処理部とを診断可能な診断制御部を備え、
前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行う二重化計算システムにおいて、
前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第１の演算処理部は処理を継続している時に、前記診断制御部は前記第２の演算処理部の診断を行い、診断終了後に第１の記憶部の値を第２の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うように制御する機能を有し、
前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第２の演算処理部は処理を継続している時に、前記診断制御部は前記第１の演算処理部の診断を行い、診断終了後に第２の記憶部の値を第１の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うように制御する機能を有し、
前記入力制御部は、前記診断制御部によって実行される診断の状態に合わせて前記二重化計算システムの入力を制御する機能を有し、
前記出力制御部は、前記比較部の比較結果と、前記診断制御部の診断結果とに基づいて前記二重化計算システムの出力を制御する機能を有する、
ことを特徴とする二重化計算システム。
【請求項２】
請求項１に記載の二重化計算システムにおいて、
前記第１の演算処理部の電圧、周波数の少なくとも一方を制御する第１の電圧・周波数制御部と、
前記第２の演算処理部の電圧、周波数の少なくとも一方を制御する第２の電圧・周波数制御部と、
を備えたことを特徴とする二重化計算システム。
【請求項３】
請求項２に記載の二重化計算システムにおいて、
前記入力制御部と前記第１の演算処理部の入力との間に第１の入力バッファ部を介する経路を設け、
前記入力制御部と前記第２の演算処理部の入力との間に第２の入力バッファ部を介する経路を設け、
前記第１の演算処理部の出力と、前記比較部および前記出力制御部との間に第１の出力バッファ部を介する経路を設け、
前記第２の演算処理部の出力と、前記比較部および前記出力制御部との間に第２の出力バッファ部を介する経路を設け、
前記第１の記憶部または前記第２の記憶部の値を保持可能な記憶退避部を備え、
前記診断制御部は、
前記第１の演算処理部の診断開始前に、前記第１の記憶部の値を前記記憶退避部に退避させる機能と、
前記第１の演算処理部の診断開始後に、前記二重化計算システムへの入力値を前記第１の入力バッファ部に蓄えさせると共に、前記第２の演算処理部の出力値を前記第２の出力バッファ部に蓄えさせる機能と、
前記第１の演算処理部の診断終了後に、前記記憶退避部に退避させた値を前記第１の記憶部に戻し、前記第１の演算処理部の演算処理を再開させる機能と、
前記第２の演算処理部の診断開始前に、前記第２の記憶部の値を前記記憶退避部に退避させる機能と、
前記第２の演算処理部の診断開始後に、前記二重化計算システムへの入力値を前記第２の入力バッファ部に蓄えさせると共に、前記第１の演算処理部の出力値を前記第１の出力バッファ部に蓄えさせる機能と、
前記第２の演算処理部の診断終了後に、前記記憶退避部に退避させた値を前記第２の記憶部に戻し、前記第２の演算処理部の演算処理を再開させる機能と、
を具備することを特徴とする二重化計算システム。
【請求項４】
請求項３に記載の二重化計算システムにおいて、
前記診断制御部は、
前記第１の演算処理部の診断開始後に、前記二重化計算システムへの入力値を前記第２の入力バッファ部に蓄えさせる機能と、前記第２の演算処理部の診断開始後に、前記二重化計算システムへの入力値を前記第１の入力バッファ部に蓄えさせる機能を具備し、
前記診断制御部は更に、前記比較部の比較結果が不一致であった場合、前記記憶退避部の値を前記第１の記憶部と前記第２の記憶部とに戻す機能を有し、
前記第１の入力バッファ部と前記第２の入力バッファ部とに蓄えられた入力値とを用いて再計算を行うことを特徴とする二重化計算システム。
【請求項５】
請求項１から４のいずれか１項に記載の二重化計算システムにおいて、前記比較部の比較結果が不一致であった場合、前記出力制御部は従前の出力値を保持することを特徴とする二重化計算システム。
【請求項６】
請求項１から５のいずれか１項に記載の二重化計算システムにおいて、
前記診断制御部により実行された診断の結果、不具合が発見された場合、診断制御部は不具合が発見された前記第１の演算処理部もしくは前記第２の演算処理部の動作を停止し、
前記出力制御部は他方の演算処理部の出力を二重化計算システムの出力とすることを特徴とする二重化計算システム。
【請求項７】
請求項１から５のいずれか１項に記載の二重化計算システムにおいて、
前記診断制御部により実行された診断の結果を保存する診断結果リストを備え、
前記診断制御部は、前記比較部の比較結果が不一致であった場合、前記診断結果リストを参照して前記第１の演算処理部と前記第２の演算処理部のどちらに不具合があるかを判別し、
不具合があると判別した前記第１の演算処理部もしくは前記第２の演算処理部の動作を停止し、
前記出力制御部は、動作を停止しない方の演算処理部の出力を二重化計算システムの出力とすることを特徴とする二重化計算システム。
【請求項８】
請求項７に記載の二重化計算システムにおいて、不具合が原因で停止させられた前記第１の演算処理部または前記第２の演算処理部を修理または交換し、二重化動作に戻すことを特徴とする二重化計算システム。
【請求項９】
第１の記憶部を備えた第１の演算処理部の入力と、前記第１の演算処理部と同じ機能を有し第２の記憶部を備えた第２の演算処理部の入力とを入力制御部に接続し、前記第１の演算処理部の出力と前記第２の演算処理部の出力とを比較部と出力制御部とに接続し、前記第１の演算処理部と前記第２の演算処理部とを診断可能な診断制御部を備え、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行う二重化計算方法において、
前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第１の演算処理部は処理を継続している時に、前記診断制御部が前記第２の演算処理部の診断を行い、診断終了後に第１の記憶部の値を第２の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うようにする一方、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第２の演算処理部は処理を継続している時に、前記診断制御部が前記第１の演算処理部の診断を行い、診断終了後に第２の記憶部の値を第１の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うようにし、
前記入力制御部により、前記診断制御部によって実行される診断の状態に合わせて前記二重化計算システムの入力を制御し、前記出力制御部により、前記比較部の比較結果と、前記診断制御部の診断結果とに基づいて前記二重化計算システムの出力を制御することを特徴とする二重化計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化した系からなり、二重化した系の間で同期して動作する二重化計算システムに関し、特に、各系の診断が可能な二重化計算システム及び二重化計算方法に関する。
【背景技術】
【０００２】
計算システムが、金融、原子力プラント、基幹業務などで使われるようになり、この種の計算システムには高い信頼性が求められている。
高信頼性計算システムの構成方法として、ある演算処理機能を持つ系と、この系と同一の機能を持つ別の系を準備し、二つの系を同期して動作させる二重化計算システムが提案されている。
この二重化計算システムは、例えば図１に示すように、演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂの二つの系からなり、それらの出力が比較部５０と出力制御部４０とに入力される。比較部５０は二つの系からの値を比較し、比較結果が不一致の場合は演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂのいずれかに故障があると判断し、出力制御部４０にその旨を指示する。この場合、出力制御部４０は出力を停止する。このことによって二重化計算システムの外部にエラーが出力されることがなく計算システムの信頼性を向上できる。
更に、図２、図３に示すように、演算処理部（Ａ系）８０Ａを診断する診断部（Ａ系）３１Ａと演算処理部（Ｂ系）８０Ｂを診断する診断部（Ｂ系）３１Ｂとを備えた二重化計算システムが提案されている（特許文献１：特許第３２１０５２７号参照）。この二重化計算システムにおいては、エラーが検出された場合には、診断部（Ａ系）３１Ａ、診断部（Ｂ系）３１がそれぞれ、演算処理部（Ａ系）８０Ａ、演算処理部（Ｂ系）８０Ｂを診断してエラーの原因となる故障のある系を特定し、故障のない系だけで縮退動作する。
【発明の開示】
【０００３】
図３に示すように、特許文献１に記載の二重化計算システムにおいては、通常、Ａ系とＢ系とが演算処理動作を行っている。比較部５０において不一致を検出すると、Ａ系とＢ系は演算処理動作を停止し、診断部（Ａ系）３１Ａ、診断部（Ｂ系）３１Ｂにおいて、それぞれ診断動作を開始する。すなわち、この二重化計算システムでは、診断動作のために通常の演算処理動作が停止してしまうという課題がある。
また、診断部は演算処理部で発生した故障によるエラーが起きた後に診断を開始するため、エラーを起こす前に故障を検知できないという課題がある。
本発明は、上記の事情を考慮してなされたものであり、二重化計算システムの一方の系が演算処理動作中に他方の系の診断を行い、診断動作による演算処理動作の停止を引き起こさずに故障の検知を可能にする二重化計算システムを提供することを目的とする。
本発明はまた、エラーを起こす前に故障の検知を可能にする二重化計算システムを提供することを目的とする。
本発明は更に、上記二重化計算システムと同様の効果を得ることのできる二重化計算方法を提供することを目的とする。
本発明の態様によれば、第１の記憶部を備えた第１の演算処理部の入力と、前記第１の演算処理部と同じ機能を有し第２の記憶部を備えた第２の演算処理部の入力とが入力制御部に接続され、前記第１の演算処理部の出力と前記第２の演算処理部の出力とが比較部と出力制御部とに接続され、前記第１の演算処理部と前記第２の演算処理部とを診断可能な診断制御部を備え、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行う二重化計算システムが提供される。
本発明の態様による二重化計算システムにおいては、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第１の演算処理部は処理を継続している時に、前記診断制御部は前記第２の演算処理部の診断を行い、診断終了後に第１の記憶部の値を第２の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うように制御する機能を有する。また、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第２の演算処理部は処理を継続している時に、前記診断制御部は前記第１の演算処理部の診断を行い、診断終了後に第２の記憶部の値を第１の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うように制御する機能を有する。前記入力制御部は、前記診断制御部によって実行される診断の状態に合わせて前記二重化計算システムの入力を制御する機能を有する。前記出力制御部は、前記比較部の比較結果と、前記診断制御部の診断結果とに基づいて前記二重化計算システムの出力を制御する機能を有する。
本発明の他の態様によれば、第１の記憶部を備えた第１の演算処理部の入力と、前記第１の演算処理部と同じ機能を有し第２の記憶部を備えた第２の演算処理部の入力とを入力制御部に接続し、前記第１の演算処理部の出力と前記第２の演算処理部の出力とを比較部と出力制御部とに接続し、前記第１の演算処理部と前記第２の演算処理部とを診断可能な診断制御部を備え、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行う二重化計算方法が提供される。
本二重化計算方法においては、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第１の演算処理部は処理を継続している時に、前記診断制御部が前記第２の演算処理部の診断を行い、診断終了後に第１の記憶部の値を第２の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うようにする一方、前記第１の演算処理部と前記第２の演算処理部とが同期して同一処理を行っている途中で、前記第２の演算処理部は処理を継続している時に、前記診断制御部が前記第１の演算処理部の診断を行い、診断終了後に第２の記憶部の値を第１の記憶部に写して、前記第１の演算処理部と前記第２の演算処理部とが再び同期して同一処理を行うようにする。また、前記入力制御部により、前記診断制御部によって実行される診断の状態に合わせて前記二重化計算システムの入力を制御し、前記出力制御部により、前記比較部の比較結果と、前記診断制御部の診断結果とに基づいて前記二重化計算システムの出力を制御する。
本発明によれば、二重化計算システムの一方の系が演算処理動作中に他方の系の診断を行うことで、診断動作による演算処理動作の停止を引き起こさない効果がある。また、診断により、エラーを起こす前に故障の検知が可能になる。
これらにより、二重化計算システムの信頼性を高める効果が得られる。
【図面の簡単な説明】
【０００４】
図１は関連技術による二重化計算システムの構成例を示すブロック図である。
図２は特許文献１に記載の二重化計算システムの構成を示すブロック図である。
図３は図２に示された二重化計算システムの動作の一例を説明するための図である。
図４は本発明の第１の実施形態による二重化計算システムの構成を示すブロック図である。
図５は図４に示された二重化計算システムの動作を説明するためのフローチャートである。
図６は図４に示された二重化計算システムの動作の一例を説明するための図である。
図７は本発明の第２の実施形態による二重化計算システムの構成を示すブロック図である。
図８は本発明の第３の実施形態による二重化計算システムの動作を説明するフローチャートである。
図９は本発明の図８に示された二重化計算システムの動作を説明するためのフローチャートである。
図１０は図８に示された二重化計算システムの動作の一例を説明するための図である。
図１１は図８に示された二重化計算システムにおいて不一致が検出された場合の動作を説明するためのフローチャートである。
図１２は図８に示された二重化計算システムにおいて不一致が検出された場合の動作の一例を説明するための図である。
図１３は本発明の第４の実施形態による二重化計算システムの構成を示すブロック図である。
図１４は図１３に示された二重化計算システムの動作を説明するためのフローチャートである。
図１５は図１３に示された二重化計算システムにおいて不一致が検出された場合の動作を説明するためのフローチャートである。
図１６は図１３に示された二重化計算システムの動作の一例を説明するための図である。
【発明を実施するための形態】
【０００５】
以下、本発明をいくつかの実施形態について図面に基づいて詳細に説明する。
図４は本発明の第１の実施形態による二重化計算システムの構成を示すブロック図である。以降で説明される図面において、同種の構成要素には同じ参照番号を付している。
図４を参照すると、二重化計算システム１の入力は入力制御部１０を通して演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂの入力に接続される。演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂは、同期して同一処理を行なうことができる。演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂの出力は出力制御部４０を通して二重化計算システム１の出力へ接続される。また、演算処理部（Ａ系）８０Ａと演算処理部（Ｂ系）８０Ｂの出力は比較部５０へ入力される。比較部５０の比較結果に基づいて出力制御部４０が出力を制御する。診断制御部３０は、入力制御部１０と出力制御部４０とを通してそれぞれ二重化計算システム１の入力と出力とを制御すると共に、演算処理部（Ａ系）８０Ａもしくは演算処理部（Ｂ系）８０Ｂのいずれか一方を診断し、診断結果を得る。演算処理部（Ａ系）８０Ａ、演算処理部（Ｂ系）８０Ｂはそれぞれ記憶部（Ａ系）７０Ａ、記憶部（Ｂ系）７０Ｂを有し、診断制御部３０の制御下で記憶部（Ａ系）７０Ａの記憶情報を記憶部（Ｂ系）７０Ｂに写したり、記憶部（Ｂ系）７０Ｂの記憶情報を記憶部（Ａ系）７０Ａに写したりすることができる。
図５は本発明の第１の実施形態による二重化計算システム１の動作を説明するためのフローチャートであり、図６は本発明の第１の実施形態による二重化計算システム１の動作の一例を説明するための図である。
通常の二重化動作において、二重化計算システム１は、入力制御部１０によって二重化計算システム１の入力が演算処理部（Ａ系）８０Ａの入力と演算処理部（Ｂ系）８０Ｂの入力とに接続されている。また、演算処理部（Ａ系）８０Ａの出力と演算処理部（Ｂ系）８０Ｂの出力とが比較部５０によって比較される。更に、比較部５０の比較結果に基づいて出力制御部４０が二重化計算システム１の出力を制御している。
診断制御部３０は、演算処理部（Ａ系）８０Ａの診断時刻であるかどうかを判定する（ステップＳ１１Ａ）。判定の結果、演算処理部（Ａ系）８０Ａの診断時刻である場合（図６の時刻Ｔ０）、診断制御部３０は、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ｂ系）８０Ｂの入力のみに接続する一方、出力制御部４０によって演算処理部（Ｂ系）８０Ｂの出力を二重化計算システム１の出力に接続し、比較部５０の機能を無効化する（ステップＳ１２Ａ）。
次に診断制御部３０は、演算処理部（Ａ系）８０Ａの事前診断を開始し（ステップＳ１３Ａ）、診断結果の可否を判定する（ステップＳ１４Ａ）。診断制御部３０は、診断結果が可（ステップＳ１４ＡのＹ）の場合は、診断結果の可否を判定するステップ（ステップＳ１４Ａ）の直後に演算処理部（Ｂ系）８０Ｂの記憶部７０Ｂに記憶された演算処理の値を演算処理部（Ａ系）８０Ａの記憶部７０Ａにコピーし（ステップＳ１５Ａ）、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ａ系）８０Ａの入力と演算処理部（Ｂ系）８０Ｂの入力とに接続し、比較部５０を有効化する（ステップＳ１６）ことにより二重化動作に復帰する（図６の時刻Ｔ１）。
ステップＳ１１Ａにおいて演算処理部（Ａ系）８０Ａの診断時刻でない場合、診断制御部３０は演算処理部（Ｂ系）８０Ｂの診断時刻であるかどうかを判定する（ステップＳ１１Ｂ）。判定の結果、演算処理部（Ｂ系）８０Ｂの診断時刻である場合（図６の時刻Ｔ２）、診断制御部３０は、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ａ系）８０Ａの入力のみに接続する一方、出力制御部４０によって演算処理部（Ａ系）８０Ａの出力を二重化計算システム１の出力に接続し、比較部５０の機能を無効化する（ステップＳ１２Ｂ）。
次に診断制御部３０は、演算処理部（Ｂ系）８０Ｂの事前診断を開始し（ステップＳ１３Ｂ）、診断結果の可否を判定する（ステップＳ１４Ｂ）。診断制御部３０は、診断結果が可（ステップＳ１４ＢのＹ）の場合は、診断結果の可否を判定するステップ（ステップＳ１４Ｂ）の直後に演算処理部（Ａ系）８０Ａの記憶部７０Ａに記憶された演算処理の値を演算処理部（Ｂ系）８０Ｂの記憶部７０Ｂにコピーし（ステップＳ１５Ｂ）、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ａ系）８０Ａの入力と演算処理部（Ｂ系）８０Ｂの入力とに接続し、比較部５０を有効化する（ステップＳ１６）ことにより二重化動作に復帰する（図６の時刻Ｔ３）。
演算処理部（Ａ系）８０Ａの診断時刻でも演算処理部（Ｂ系）８０Ｂの診断時刻でもない場合（ステップＳ１１ＢのＮ）は二重化動作が継続される。
診断結果判定（ステップＳ１４ＡまたはステップＳ１４Ｂ）が否（Ｎ）の場合は、それぞれ演算処理部（Ａ系）８０Ａまたは演算処理部（Ｂ系）８０Ｂの動作を停止し、演算処理部（Ｂ系）８０Ｂまたは演算処理部（Ａ系）８０Ａの一方で片系動作を行う（図６の時刻Ｔ５）。
上述のように、演算処理を開始する前の事前診断により、２つの系の演算処理部に存在する故障を発見し、故障のある系がエラーを発生する前に動作を停止させることによって、二重化計算システムはエラーを発生せず継続した動作が可能になる。これにより二重化計算システムの信頼性を高めることができる。
例えば、二重化計算システムの演算処理部に乗算器が含まれるが乗算器を使う頻度が低いとする。そして、二重化計算システムの使用中に一方の系の乗算器に故障が発生したとする。
上述したような事前診断動作が実行されない場合、乗算器を使うときになって初めて乗算器の故障が出力エラーとなって比較部での不一致により発覚する。この場合、二つの系の演算処理結果の比較だけではどちらの系に故障があるかを判別できないので二重化計算システムは動作を停止して診断を開始する必要がある。
一方、本発明の第１の実施形態のように事前診断動作が実行される場合、乗算器を使わないときでも診断制御部３０での事前診断によって乗算器に故障がないかどうかが診断される。診断制御部３０は、診断の結果故障があると判定したら、故障のある系の動作を停止させ、故障のない系のみで片系動作をさせる。以後、乗算器を使うときになっても、故障のない系で動作しているのでエラーが出力されることはなく、二重化計算システムは停止せずに動作を継続できる。
また、片系動作になった後、故障のある系の演算処理部を修理し、あるいは故障のある系の演算処理部を故障のない演算処理部に交換し再び二重化動作に戻す。その結果、故障前の信頼性を保つことができる。なお、修理もしくは交換するのは演算処理部の全部であっても、故障部分だけであってもよい。
図７は本発明の第２の実施形態による二重化計算システムの構成を示すブロック図である。第２の実施形態による二重化計算システムにおいては、図４に示した第１の実施形態の構成に、演算処理部（Ａ系）８０Ａの電圧、周波数の少なくとも一方を変える電圧・周波数制御部（Ａ系）１００Ａと演算処理部（Ｂ系）８０Ｂの電圧、周波数の少なくとも一方を変える電圧・周波数制御部（Ｂ系）１００Ｂとが付加されている。
演算処理部（Ａ系）８０Ａの事前診断において、電圧・周波数制御部（Ａ系）１００Ａによって演算処理部（Ａ系）８０Ａの電圧、周波数の少なくとも一方を変え、すなわち診断条件を変えることによって演算処理部（Ａ系）８０Ａの診断を効率的に行うことができる。同様にして、演算処理部（Ｂ系）８０Ｂの事前診断において、電圧・周波数制御部（Ｂ系）１００Ｂによって演算処理部（Ｂ系）８０Ｂの電圧、周波数の少なくとも一方を変え、すなわち診断条件を変えることによって演算処理部（Ｂ系）８０Ｂの診断を効率的に行うことができる。例えば、通常の電圧で正常に動作する場合でも、電圧を下げると故障になりかけている部分がエラーを起こす場合がある。このようなケースを想定した診断を実行することで事前診断の精度を高め、効率的に診断を行なうことができる。同様に、通常の周波数で正常に動作する場合でも、周波数を上げると故障になりかけている部分がエラーを起こす場合がある。このようなケースを想定した診断を実行することで事前診断の精度を高め、効率的に診断を行なうことができる。
このようにして、診断される演算処理部の電圧、周波数の少なくとも一方を変えることによって通常の動作電圧、通常の周波数では顕在化しない故障を発見することができ、診断の精度を高める効果がある。
図８は本発明の第３の実施形態による二重化計算システムの構成を示すブロック図である。第３の実施形態においては、図７に示した第２の実施形態の構成に加えて、入力制御部１０と演算処理部（Ａ系）８０Ａとの間に入力バッファ入力制御部（Ａ系）６１Ａと入力バッファ部（Ａ系）６０Ａと入力バッファ出力制御部（Ａ系）６２Ａとを経由する経路（第１の入力バッファ部を介する経路）を設けると共に、入力制御部１０と演算処理部（Ｂ系）８０Ｂとの間に入力バッファ入力制御部（Ｂ系）６１Ｂと入力バッファ部（Ｂ系）６０Ｂと入力バッファ出力制御部（Ｂ系）６２Ｂとを経由する経路（第２の入力バッファ部を介する経路）を設けている。
一方、演算処理部（Ａ系）８０Ａと出力制御部４０及び比較部５０との間に出力バッファ入力制御部（Ａ系）９１Ａと出力バッファ部（Ａ系）９０Ａと出力バッファ出力制御部（Ａ系）９２Ａとを経由する経路（第１の出力バッファ部を介する経路）を設けると共に、演算処理部（Ｂ系）８０Ｂと出力制御部４０及び比較部５０との間に出力バッファ入力制御部（Ｂ系）９１Ｂと出力バッファ部（Ｂ系）９０Ｂと出力バッファ出力制御部（Ｂ系）９２Ｂとを経由する経路（第２の出力バッファ部を介する経路）を設けている。
また、記憶部（Ａ系）７０Ａと記憶部（Ｂ系）７０Ｂはそれぞれ、診断制御部３０に接続された記憶退避部２０に接続されている。入力バッファ入力制御部、入力バッファ出力制御部はそれぞれ、例えば入力バッファ部（Ａ系）６０Ａについて言えば、診断制御部３０の制御により、入力バッファ部（Ａ系）６０Ａを経由する経路または入力バッファ部（Ａ系）６０Ａをバイパスする経路を設定するためのものである。同様に、出力バッファ入力制御部、出力バッファ出力制御部はそれぞれ、例えば出力バッファ部（Ａ系）９０Ａについて言えば、診断制御部３０の制御により、出力バッファ部（Ａ系）９０Ａを経由する経路または出力バッファ部（Ａ系）９０Ａをバイパスする経路を設定するためのものである。
図９は本発明の第３の実施形態による二重化計算システム１の動作を説明するフローチャートであり、図１０は本発明の第３の実施形態による二重化計算システム１の動作の一例を説明するための図である。
診断制御部３０は演算処理部（Ａ系）８０Ａの診断時刻であるかどうかを判定する（ステップＳ１１Ａ）。演算処理部（Ａ系）８０Ａの診断時刻である場合（図１０の時刻Ｔ０）、診断制御部３０は、入力制御部１０、入力バッファ入力制御部（Ａ系）６１Ａ、入力バッファ出力制御部（Ａ系）６２Ａによって二重化計算システム１の入力を、入力バッファ部（Ａ系）６０Ａを介して演算処理部（Ａ系）８０Ａに接続するが、入力制御部１０、入力バッファ入力制御部（Ｂ系）６１Ｂ、入力バッファ出力制御部（Ｂ系）６２Ｂによって二重化計算システム１の入力を、入力バッファ部（Ｂ系）６０Ｂを介さずに演算処理部（Ｂ系）８０Ｂに接続する。診断制御部３０はまた、出力バッファ入力制御部９１Ｂによって演算処理部（Ｂ系）８０Ｂの出力を出力バッファ部（Ｂ系）９０Ｂに接続する。診断制御部３０は更に、記憶部（Ａ系）７０Ａの値を記憶退避部２０に退避させ、比較部５０の機能を無効化する（ステップＳ２２Ａ）。
次に、演算処理部（Ｂ系）８０Ｂは周波数ｆで処理を行いその出力を出力バッファ部（Ｂ系）９０Ｂに蓄える。一方、診断制御部３０は演算処理部（Ａ系）８０Ａの事前診断を開始し（ステップＳ１３Ａ）、診断結果が可・否のいずれであるかを判定する（ステップＳ１４Ａ）。
診断制御部３０は、診断結果が可の場合は、記憶退避部２０に退避させた値を記憶部（Ａ系）７０Ａにコピーする。一方、演算処理部（Ａ系）８０Ａは入力バッファ部（Ａ系）６０Ａからの入力で演算処理を周波数ｆ’で開始し（図１０の時刻Ｔ１）、比較部５０の機能が有効化される（ステップＳ２５Ａ）。比較部５０は、出力バッファ部（Ａ系）９０Ａを介さずに送られてきた演算処理部（Ａ系）８０Ａの演算処理結果と出力バッファ部（Ｂ系）９０Ｂとの値を比較する。比較部５０の比較結果を受けて出力制御部４０は二重化計算システム１の出力を制御する。ここで、周波数ｆ’は通常の周波数ｆよりも高く、時間差Ｔ２−Ｔ１の間に、時間差Ｔ２−Ｔ０の間の演算処理が完了するように設定されているものとする。このために、電圧・周波数制御部（Ａ系）１００Ａにより適切な電圧と周波数が演算処理部（Ａ系）８０Ａに対して設定される。特に、演算処理部（Ａ系）８０Ａが通常の周波数ｆより高い周波数ｆ’で安定動作するために高い電圧を印加することが望ましい。
ステップＳ１１Ａにおいて演算処理部（Ａ系）８０Ａの診断時刻でない場合、診断制御部３０は演算処理部（Ｂ系）８０Ｂの診断時刻であるかどうかを判定する（ステップＳ１１Ｂ）。演算処理部（Ｂ系）８０Ｂの診断時刻である場合（図１０の時刻Ｔ２）、診断制御部３０は、入力制御部１０、入力バッファ入力制御部（Ａ系）６１Ａ、入力バッファ出力制御部（Ａ系）６２Ａによって二重化計算システム１の入力を入力バッファ部（Ａ系）６０Ａを介さずに演算処理部（Ａ系）８０Ａに接続するが、入力制御部１０、入力バッファ入力制御部（Ｂ系）６１Ｂ、入力バッファ出力制御部（Ｂ系）６２Ｂによって二重化計算システム１の入力を入力バッファ部（Ｂ系）６０Ｂを介して演算処理部（Ｂ系）８０Ｂに接続する。診断制御部３０は、出力バッファ入力制御部９１Ａによって演算処理部（Ａ系）８０Ａの出力を出力バッファ部（Ａ系）９０Ａに接続する。診断制御部３０は更に、記憶部（Ｂ系）７０Ｂの値を記憶退避部２０に退避させ、比較部５０の機能を無効化する（ステップＳ２２Ｂ）。
次に、演算処理部（Ａ系）８０Ａは周波数ｆで処理を行いその出力を出力バッファ部（Ａ系）９０Ａに蓄える。一方、診断制御部３０は演算処理部（Ｂ系）８０Ｂの事前診断を開始し（ステップＳ１３Ｂ）、診断結果が可・否のいずれであるかを判定する（ステップＳ１４Ｂ）。
診断制御部３０は、診断結果が可の場合は、記憶退避部２０に退避させた値を記憶部（Ｂ系）７０Ｂにコピーする。一方、演算処理部（Ｂ系）８０Ｂは入力バッファ部（Ｂ系）６０Ｂからの入力で演算処理を周波数ｆ”で開始し（図１０の時刻Ｔ３）、比較部５０の機能が有効化される（ステップＳ２５Ｂ）。比較部５０は、出力バッファ部（Ｂ系）９０Ｂを介さずに送られてきた演算処理部（Ｂ系）８０Ｂの演算処理結果と出力バッファ部（Ａ系）９０Ａとの値を比較する。比較部５０の比較結果を受けて出力制御部４０は二重化計算システム１の出力を制御する。ここで、周波数ｆ”は通常の周波数ｆよりも高く、時間差Ｔ４−Ｔ３の間に、時間差Ｔ４−Ｔ２の間の演算処理が完了するように設定されているものとする。このために、電圧・周波数制御部（Ｂ系）１００Ｂにより適切な電圧と周波数が演算処理部（Ｂ系）８０Ｂに対して設定される。特に、演算処理部（Ｂ系）８０Ｂが通常の周波数ｆより高い周波数ｆ”で安定動作するために高い電圧を印加することが望ましい。なお、周波数ｆ’とｆ”とは同じでも異なっていてもよい。
診断制御部３０は、診断結果判定（ステップＳ１４ＡまたはステップＳ１４Ｂ）が否の場合は、それぞれ演算処理部（Ａ系）８０Ａまたは演算処理部（Ｂ系）８０Ｂの動作を停止させ、演算処理部（Ｂ系）８０Ｂまたは演算処理部（Ａ系）８０Ａの一方で片系動作を行わせる（図１０の時刻Ｔ５）。
以上のように、事前診断を行う系においては、事前診断動作中の入力値を入力バッファ部に一時的に保存し、かつ、記憶部の値を記憶退避部２０に保存し、事前診断動作完了後に、保存された入力値と記憶部の値を用いて通常の演算処理速度より速い演算速度で演算処理を行う。一方、事前診断を行わない系においては、演算処理部の出力値を出力バッファ部に一時的に保存する。そして、比較部５０は事前診断が行なわれた系からの出力値と事前診断を行なわない系からの出力値を比較することで途切れることなくすべての演算処理結果を比較することが可能になり、二重化計算システムの信頼性を向上できる。
図１１は本発明の第３の実施形態による二重化計算システム１の比較部５０において不一致を検出した場合の動作を説明するためのフローチャートであり、図１２は本発明の第３の実施形態による二重化計算システム１の比較部５０において不一致を検出した場合の動作の一例を示す図である。
比較部５０が不一致を検出した場合（図１２の時刻Ｔ４）、診断制御部３０は記憶退避部２０に退避した値、すなわち図９のステップＳ２２Ｂにおいて記憶退避部２０に退避させた記憶部（Ｂ系）７０Ｂの値を記憶部（Ａ系）７０Ａと記憶部（Ｂ系）７０Ｂとにコピーし（ステップＳ２６）、比較部５０の機能を有効化する（ステップＳ２７）。
次に、演算処理部（Ａ系）８０Ａは記憶部（Ａ系）７０Ａの値を用いて入力バッファ部（Ａ系）６０Ａからの入力値で演算処理を周波数ｆで開始する。同時に、演算処理部（Ｂ系）８０Ｂは記憶部（Ｂ系）７０Ｂの値を用いて入力バッファ部（Ｂ系）６０Ｂからの入力値で演算処理を周波数ｆで開始する（ステップＳ２８）。
診断制御部３０は、比較部５０の比較結果が一致・不一致のいずれであるかを判定し（ステップＳ２９）、一致していれば事前診断処理動作を再開する（図１２の時刻Ｔ５）。一致していなければ、診断制御部３０は停止処理動作を行う。
出力エラーの原因が時刻Ｔ２から時刻Ｔ４の間で発生したソフトエラーなどの一時的な誤動作であった場合、診断制御部３０は不一致を検出した時刻Ｔ４からその前の時刻Ｔ２へさかのぼって演算処理を再実行させることで、速やかにエラーから復帰できる。なお、一時的な誤動作であるかどうかの判別は、例えば時刻Ｔ４の時点で不一致を検出したが、再実行して時刻Ｔ５までに不一致が検出されなかったら、時刻Ｔ４の時点で検出した不一致はどちらかの系の一時的な誤動作であったというようにして判別できる。上記の動作では、事前診断の前に二重化計算システム１の入力は入力バッファ部（Ａ系）６０Ａを介して演算処理部（Ａ系）８０Ａに接続され、入力バッファ部（Ｂ系）６０Ｂを介して演算処理部（Ｂ系）８０Ｂに接続されていることが望ましい。
なお、比較部５０が不一致を検出した場合、出力制御部は従前の出力値を保持し続けてもよい。この動作によって、誤った値を出力しないというフェールセーフ機能を実現できる。
図１３は本発明の第４の実施形態による二重化計算システム１の構成を示すブロック図である。第４の実施形態による二重化計算システムは、図４に示した第１の実施形態の構成に、診断結果リスト１１０が付加されている。
診断結果リスト１１０は診断制御部３０の事前診断結果（故障のある系と故障箇所）を順次保存する。比較部５０の比較結果が不一致であった場合、診断制御部３０は診断結果リスト１１０を参照して不一致の内容から故障のある系を推定し、出力制御部４０に対して故障があると推定した系の出力を停止することを指示する機能を持つ。
図１４は本発明の第４の実施形態による二重化計算システム１の動作を説明するためのフローチャートであり、図１５は本発明の第４の実施形態による二重化計算システム１の比較部５０において不一致を検出した場合の動作を説明するためのフローチャートである。図１６は本発明の第４の実施形態による二重化計算システム１の動作の一例を示す図である。
図１４を参照すると、図５に示した本発明の第１の実施形態による二重化計算システム１の動作を説明するフローチャートとの違いは、診断結果判定（ステップＳ１４ＡまたはＳ１４Ｂ）が否の場合である。この場合、診断制御部３０は、診断結果を診断結果リスト１１０に書き込み（ステップＳ３７）、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ａ系）８０Ａの入力と演算処理部（Ｂ系）８０Ｂの入力とに接続し、比較部５０を有効化する（ステップＳ１６）ことにより二重化動作に復帰する（図１６の時刻Ｔ３）。
次に、図１５を参照すると、比較部５０が不一致を検出した場合（図１６の時刻Ｔ４）、診断制御部３０は診断結果リスト１１０を参照し（ステップＳ４８）、不一致の内容から演算処理部（Ａ系）８０Ａの故障であるかどうかを判定する（ステップＳ４９Ａ）。
診断制御部３０は、演算処理部（Ａ系）８０Ａの故障と判定した場合、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ｂ系）８０Ｂの入力のみに接続する。診断制御部３０はまた、出力制御部４０によって演算処理部（Ｂ系）８０Ｂの出力を二重化計算システム１の出力に接続し、比較部５０の機能を無効化する（ステップＳ１２Ａ’）。
診断制御部３０は、演算処理部（Ａ系）８０Ａの故障と判定しなかった場合、演算処理部（Ｂ系）８０Ｂの故障であるかどうかを判定する（ステップＳ４９Ｂ）。
診断制御部３０は、演算処理部（Ｂ系）８０Ｂの故障と判定した場合、入力制御部１０によって二重化計算システム１の入力を演算処理部（Ａ系）８０Ａの入力のみに接続する。診断制御部３０はまた、出力制御部４０によって演算処理部（Ａ系）８０Ａの出力を二重化計算システム１の出力に接続し、比較部５０の機能を無効化する（ステップＳ１２Ｂ’）。
診断制御部３０は、ステップＳ４９Ｂにおいて演算処理部（Ｂ系）８０Ｂの故障と判定しなかった場合、どちらの系に故障があるか判定不可能であるので、二重化計算システム１を停止する。
以上のように、診断制御部は、事前故障診断で故障を発見した場合、診断結果を記録するだけで直ちに故障のある系を停止させず、出力の不一致を検出したときに故障がある系を停止させて片系動作に移行することで、二重化動作をできるだけ長い時間続けることが可能になり、二重化計算システムの信頼性を向上することができる。
以上、本発明をいくつかの実施形態に即して説明したが、本発明は上記実施形態の構成に限定されるものでなく、本発明の範囲内で当業者であればなしうる各種変形、修正を含むことは勿論である。
この出願は、２００９年１２月２日に出願された日本出願特願第２００９−２７４０７７号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【図１】
2011068177.tif 000003
【図２】
2011068177.tif 000004
【図３】
2011068177.tif 000005
【図４】
2011068177.tif 000006
【図５】
2011068177.tif 000007
【図６】
2011068177.tif 000008
【図７】
2011068177.tif 000009
【図８】
2011068177.tif 000010
【図９】
2011068177.tif 000011
【図１０】
2011068177.tif 000012
【図１１】
2011068177.tif 000013
【図１２】
2011068177.tif 000014
【図１３】
2011068177.tif 000015
【図１４】
2011068177.tif 000016
【図１５】
2011068177.tif 000017
【図１６】
2011068177.tif 000018
【国際調査報告】
2011068177.tif 000019
2011068177.tif 000020
2011068177.tif 000021
2011068177.tif 000022