(57)【要約】【課題】ＦＴサーバのＣＰＵサブシステムの同期化処理に失敗した場合、同期化するために利用者に負担がかかる。【解決手段】  判定手段８５１は、第１のＣＰＵサブシステム８２と第２のＣＰＵサブシステム８４とが同期して動作しているか否かを判定する。パワーサイクル手段８５２が、判定手段８５１で同期して動作していないと判定された場合、第２のＣＰＵサブシステム８４に対してパワーサイクルをかける。コピー手段８５３は、パワーサイクル手段８５２が第２のＣＰＵサブシステム８４に対してパワーサイクルをかけた後、第１のＣＰＵサブシステム８２のコンテキストを第２のＣＰＵサブシステム８４にコピーする。同期手段８５４は、コピー手段８５３によるコピーが完了した後、第１のＣＰＵサブシステム８２および第２のＣＰＵサブシステム８４に対し、同期リセットをかける。【選択図】図８
2015194847.tif 000002
【特許請求の範囲】
【請求項１】
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバであって、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段と、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段と、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段とを備えたことを特徴とするフォールトトレラントサーバ。
【請求項２】
請求項１記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定する判定手段を備えたことを特徴とするフォールトトレラントサーバ。
【請求項３】
請求項２記載のフォールトトレラントサーバにおいて、
前記判定手段は、前記同期手段による同期リセットが行われた後、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定することを特徴とするフォールトトレラントサーバ。
【請求項４】
請求項１，２または３記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムにエラーが発生したことを検出するエラー検出手段と、
前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第１のＣＰＵサブシステムのエラーが検出された場合、前記第１のＣＰＵサブシステムを切り離すスイッチ手段を備えたことを特徴とするフォールトトレラントサーバ。
【請求項５】
請求項４記載のフォールトトレラントサーバにおいて、
前記エラー検出手段は、前記第２のＣＰＵサブシステムにエラーが発生したことを検出し、
前記スイッチ手段は、前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第２のＣＰＵサブのエラーが検出された場合、前記第２のＣＰＵサブシステムを切り離すことを特徴とするフォールトトレラントサーバ。
【請求項６】
請求項２乃至５の何れか１項に記載のフォールトトレラントサーバにおいて、
前記判定手段は、前記第１のサブシステム内のバス上の信号と、前記第２のサブシステム内のバス上の信号とが一致しているか否かに基づいて同期動作しているか否かを判定することを特徴とするフォールトトレラントサーバ。
【請求項７】
請求項１乃至６の何れか１項に記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムのコンテキストは、前記第１のメモリの内容と前記第１のＣＰＵのレジスタの内容とを含むことを特徴とするフォールトトレラントサーバ。
【請求項８】
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバの同期化方法であって、
パワーサイクル手段が、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけ、
コピー手段が、前記パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーし、
同期手段が、前記コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかけることを特徴とする同期化方法。
【請求項９】
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第１のＣＰＵと第１のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバを、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアを二重化して同期動作させるフォールトトレラントサーバ、同期化方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータは社会生活の基盤を担っており、障害によるサービスの停止は、大きな損失を招く恐れがある。そのため、障害発生時においてもサービスを継続させることが要求されている。このような要求を満たす技術としてシステムを二重化するフォールトトレラント技術が注目されており、フォールトトレラント技術を採用したコンピュータとしてフォールトトレラントサーバが知られている（例えば、特許文献１参照）。なお、以下の説明ではフォールトトレラントサーバをＦＴサーバと記す場合がある。
【０００３】
ＦＴサーバは、二重化されたサブシステムを備えており、各系のサブシステムは、それぞれＣＰＵサブシステムと、Ｉ／Ｏサブシステムと、二重化制御回路（ＦＴコントローラ）とを備えている。ＣＰＵサブシステムは、ＣＰＵやメモリを備えており、各系のＣＰＵサブシステムは、クロック単位で完全に同期して動作するように、二重化制御回路によって制御される。このような方式は、ロックステップ方式と呼ばれる。また、各系のＩ／Ｏサブシステムは、ＨＤＤやＬＡＮコントローラ等を備えており、ホットスタンバイの形態をとる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７８６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＴサーバにおいては、運用開始時などに、両系のＣＰＵサブシステムを同期させて動作させるため、同期化処理を行う。同期化処理は、システムの電源ＯＮを契機に開始され、先ず、一方の系（例えば、＃０系）のＣＰＵサブシステムを起動する。次に、他方の系（例えば、＃１系）のＣＰＵサブシステムを起動し、＃０系のＣＰＵサブシステムのコンテキストを＃１系のＣＰＵサブシステムにコピーする。ここで、コンテキストとは、メモリやＣＰＵのレジスタの内容である。そして、＃０系と＃１系のＣＰＵサブシステムの状態が完全に一致したら同期リセットをかける。
【０００６】
上記した同期化処理を行うことにより、通常は、＃０系と＃１系のＣＰＵサブシステムを同期して動作させることができる。しかし、ごく稀に、上記した同期化処理を行っても同期ずれが発生してしまう場合がある。＃０系のＣＰＵサブシステムと＃１系のＣＰＵサブシステムとを同期化できない場合、従来は、利用者がシステム全体の電源をＯＦＦ，ＯＮして、再度、同期化処理を行わせるようにしている。このため、利用者に負担がかかるという問題がある。
【０００７】
[発明の目的]
そこで、本発明の目的は、ＣＰＵサブシステムの同期化に失敗した場合、ＣＰＵサブシステムを同期化するために利用者に負担がかかるという課題を解決したＦＴサーバを提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係るフォールトトレラントサーバは、
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバであって、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段と、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段と、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段とを備える。
【０００９】
本発明に係る同期化方法は、
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバの同期化方法であって、
パワーサイクル手段が、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけ、
コピー手段が、前記パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーし、
同期手段が、前記コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける。
【００１０】
本発明に係るプログラムは、
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第１のＣＰＵと第１のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバを、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段として機能させる。
【発明の効果】
【００１１】
本発明によれば、ＦＴサーバのＣＰＵサブシステムの同期化処理に失敗した場合に利用者にかかる負担を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係るＦＴサーバの構成例を示すブロック図である。
【図２】本発明の第１の実施の形態で使用する二重化制御回路の構成例を示すブロック図である。
【図３】本発明の第１の実施の形態で行う同期化処理の一例の一部を示すフローチャートである。
【図４】本発明の第１の実施の形態で行う同期化処理の一例の残りの部分を示すフローチャートである。
【図５】位相ずれが発生する回路の一例を示すブロック図である。
【図６】図５の回路が正常動作しているときのタイミングチャートである。
【図７】図５の回路に位相ずれが発生したときのタイミングチャートである。
【図８】本発明の第２の実施の形態に係るＦＴサーバの構成例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
次に、図面を参照して本発明の実施の形態について詳細に説明する。
【００１４】
[本発明の第１の実施の形態]
図１を参照すると、本発明の第１の実施の形態に係るＦＴサーバは、同一構成の＃０系のサブシステム１と＃１系のサブシステム２とを備えており、両系のサブシステム１，２は、クロックや外部信号に対して完全に同期して動作するように構成されている。
【００１５】
＃０系のサブシステム１は、ＣＰＵ１１１及びメモリ１１２を含む＃０系のＣＰＵサブシステム１１と、ＨＤＤ１２１、ＬＡＮコントローラ１２２及び増設カード１２３を含む＃０系のＩ／Ｏサブシステム１２と、二重化制御回路１３とを備えている。また、＃１系のサブシステム２は、ＣＰＵ２１１及びメモリ２１２を含む＃１系のＣＰＵサブシステム２１と、ＨＤＤ２２１、ＬＡＮコントローラ２２２及び増設カード２２３を含む＃１系のＩ／Ｏサブシステム２２と、二重化制御回路２３とを備えている。
【００１６】
＃０系のサブシステム１内のＣＰＵサブシステム１１とＩ／Ｏサブシステム１２とは、二重化制御回路１３を介して互いにアクセス可能に接続され、＃１系のサブシステム２内のＣＰＵサブシステム２１とＩ／Ｏサブシステム２２とは、二重化回路２３を介して互いにアクセス可能に接続されている。また、＃０系のＣＰＵサブシステム１１と＃１系のＣＰＵサブシステム２１とは、二重化制御回路１３，２３およびクロスリンクにより互いにアクセス可能に接続されている。
【００１７】
図２を参照すると、二重化制御回路１３，２３は、起動手段１３１，２３１と、コピー手段１３２，２３２と、同期手段１３３，２３３と、パワーサイクル手段１３４，２３４と、判定手段１３５，２３５と、エラー検出手段１３６，２３６と、スイッチ手段１３７，２３７と、主系記憶部１３８，２３８と、制御手段１３９，２３９とを備えている。
【００１８】
起動手段１３１，２３１は、自系のＣＰＵサブシステム１１，２１を起動する機能を有する。
【００１９】
コピー手段１３２，２３２は、自系のＣＰＵサブシステム１１，２１のコンテキストを他系のＣＰＵサブシステム２１，１１にコピーする機能を有する。ここで、＃０系のＣＰＵサブシステム１１のコンテキストとは、ＣＰＵ１１１のレジスタの内容や、メモリ１１２の内容であり、＃１系のＣＰＵサブシステム２１のコンテキストとは、ＣＰＵ２１１のレジスタの内容や、メモリ２１２に内容である。
【００２０】
同期手段１３３，２３３は、自系のＣＰＵサブシステム１１，２１に同期リセットをかける機能を有する。
【００２１】
パワーサイクル手段１３４，２３４は、自系のＣＰＵサブシステム１１，２１にパワーサイクル（電源のＯＦＦ、ＯＮ）をかける機能を有する。
【００２２】
判定手段１３５，２３５は、＃０系、＃１系のＣＰＵサブシステムが同期して動作しているか否かを判定する機能を有する。より具体的には、判定手段１３５，２３５は、自系のサブシステム１，２内のバス上の信号（アドレス、データ、コマンド、実行結果など）と他系のサブシステム２，１内のバス上の信号がタイミングを含めて一致しているか否かを判定することにより、＃０系，＃１系のＣＰＵサブシステム１１，２１が同期しているか否かを判定する。
【００２３】
エラー検出手段１３６，２３６は、ＣＰＵサブシステム１１，２１にエラーが発生したことを検出する機能を有する。より具体的には、ＣＰＵサブシステム１１，２１は、自身にエラーが発生した場合、そのことを示すエラー信号を出力し、エラー検出手段１３６，２３６は、ＣＰＵサブシステム１１，２１から出力されるエラー信号に基づいて、ＣＰＵサブシステム１１，２１にエラーが発生したことを検出する。なお、ＣＰＵサブシステム１１，２１がエラー信号を出力するエラーは、部品の交換など修理が必要なエラーである。
【００２４】
スイッチ手段１３７，２３７は、自系のＣＰＵサブシステム１１，２１や、自系のＩ／Ｏサブシステム１２，２２などをシステムから切り離したり、システムに接続したりする機能を有する。
【００２５】
主系記憶部１３８，２３８には、＃０系と＃１系との内のどちらを主系として動作させかを示す主系情報が記録される。なお、以下の説明では、主系でない系を従系と記す。
【００２６】
制御手段１３９，２３９は、二重化制御回路１３，２３内の各手段１３１〜１３７，２３１〜２３７を制御する機能を有する。
【００２７】
なお、二重化制御回路１３内の各手段１３１〜１３７，１３９は、ＣＰＵによって実現可能であり、その場合は、例えば、次のようにする。ＣＰＵを手段１３１〜１３７，１３９として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、ＣＰＵに上記プログラムを読み取らせる。ＣＰＵは、読み取ったプログラムに従って自身の動作を制御することにより、自ＣＰＵ上に手段１３１〜１３７，１３９を実現する。
【００２８】
次に、本実施の形態の動作について詳細に説明する。
【００２９】
ＦＴサーバの運用開始時や、部品交換時などに＃０系，＃１系のＣＰＵサブシステム１１，２１を同期動作させる場合、利用者はＦＴサーバの電源をＯＮにする。これにより、＃０系，＃１系の二重化制御回路１３，２３内の制御手段１３９，２３９が図３，図４のフローチャートに示す処理を実行する。
【００３０】
制御手段１３９，２３９は、先ず、主系記憶部１３８，２３８を参照し、自系が主系になっているか否かを判定する（図３のステップＳ３１）。今、例えば、主系記憶部１３８，２３８に、＃０系を主系として動作させることを示す主系情報が記録されているとする。
【００３１】
＃０系の制御手段１３９は、自系が主系であるので（ステップＳ３１がＹｅｓ）、ステップＳ３２の処理を行い、＃１系の制御手段２３９は、自系が従系であるので（ステップＳ３１がＮｏ）、図４のステップＳ４９に移行し、主系からの指示待ち状態になる。
【００３２】
主系の制御手段１３９は、ステップＳ３２において、起動手段１３１に対して自系のＣＰＵサブシステム１１を起動することを指示する。これにより、起動手段１３１は、自系のＣＰＵサブシステム１１を起動する。
【００３３】
次に、主系の制御手段１３９は、従系（＃１系）の制御手段２３９に対して従系のＣＰＵサブシステム２１を起動することを指示する（ステップＳ３３）。これにより、制御手段２３９は、自系の起動手段２３１に対して自系のＣＰＵサブシステム２１を起動することを指示し、この指示に従って、起動手段２３１は、自系のＣＰＵサブシステム２１を起動する（図４のステップＳ４９がＹｅｓ、ステップＳ５０）。
【００３４】
その後、主系の制御手段１３９は、自系のコピー手段１３２に対して、自系のＣＰＵサブシステム１１のコンテキストを他系のＣＰＵサブシステム２１にコピーすることを指示する。これにより、主系のコピー手段１３２は、ＣＰＵサブシステム１１のコンテキスト（ＣＰＵ１１１のレジスタの内容とメモリ１１２の内容を含む）を他系のサブシステム２へ転送すると共に、他系の制御手段２３９に対して、上記コンテキストをＣＰＵサブシステム２１にコピーすることを指示する（ステップＳ３４）。この指示に応答して従系の制御手段２３９は、自系のコピー手段２３２に対して、主系から送られてきたコンテキストを自系のＣＰＵサブシステム２１にコピーすることを指示し、この指示に従ってコピー手段２３２は、ＣＰＵサブシステム１１のコンテキストを自系のＣＰＵサブシステム２１にコピーする（ステップＳ４９がＹｅｓ、ステップＳ５０）。
【００３５】
その後、主系の制御手段１３９は、自系の同期手段１３３に対して自系のＣＰＵサブシステム１１をリセットすることを指示すると共に、従系の制御手段２３９に対して従系のＣＰＵサブシステム２１をリセットすることを指示する（ステップＳ３５）。主系の同期手段１３３は、制御手段１３９の指示に従ってＣＰＵサブシステム１１をリセットする。また、従系の制御手段２３９は、主系の制御手段１３９からの指示に従って、同期手段２３３に対してＣＰＵサブシステム２１のリセットを指示し、同期手段２３３は、この指示に従ってＣＰＵサブシステム２１をリセットする（ステップＳ４９がＹｅｓ、ステップＳ５０）。つまり、ステップＳ３５，Ｓ４９，Ｓ５０により、同期リセットが行われたことになる。
【００３６】
その後、主系の制御手段１３９は、自系の判定手段１３５に対して、両系のＣＰＵサブシステム１１，２１が同期動作しているか否か（同じ動作をしているか否か）を判定することを指示し、判定手段１３５は、この指示に従って両系のＣＰＵサブシステム１１，２１が同期動作しているか否かを判定する（ステップＳ３６）。より具体的には、判定手段１３５は、＃０系のサブシステム１内のバス上の信号（アドレス、データ、コマンド、処理結果など）と、＃１系のサブシステム２内のバス上の信号とを比較し、両者が一致している場合は、同期動作していると判定し、不一致の場合は、同期動作していないと判定する。
【００３７】
ここで、両系が同期動作しない原因の１つとして、ＰＬＬ(Phase Locked Loop)の出力が期待値と異なる位相にロックされてしまうことが挙げられる。
【００３８】
図５は、ＰＬＬを利用したシリアルインタフェースの構成例を示すブロック図であり、このようなシリアルインタフェースは、ＣＰＵサブシステムと二重化制御回路との間や、二重化制御回路とＩ／Ｏサブシステムとの間でデータを送受信するために使用される。図５を参照すると、シリアルインタフェースは、送信側装置３と受信側装置４とから構成されている。
【００３９】
送信側装置３は、ＰＬＬを利用したシンセサイザ３１と、分周回路３２と、位相調整ディレイ回路３３と、パラレルシリアル変換器３４とを備えている。また、受信側装置４は、シリアルパラレル変換器４１と、リカバリクロック生成回路４２と、ＦＩＦＯ(First In First Out)４３と、ＰＬＬ４４とを備えている。
【００４０】
送信側装置３では、ＰＬＬを利用したシンセサイザ３１がコアクロックを逓倍し、分周回路３２がシンセサイザ３１から出力されたクロックを分周し、位相調整ディレイ回路３３が分周回路３２から出力されたクロックを遅延させることにより、送信クロックを作成する。そして、パラレルシリアル変換器３４が、送信クロックに従って送信データをシリアルデータに変換し、受信側装置４へ送信する。
【００４１】
また、受信側装置４では、リカバリクロック生成回路４２が送信側装置３から送られてくるデータに基づいてリカバリクロックを生成し、シリアルパラレル変換器４１が上記リカバリクロックに従って受信データをパラレルデータに変換する。このパラレルデータは、リカバリクロックに従ってＦＩＦＯ４３に書き込まれ、ＦＩＦＯ４３に書き込まれたデータは、ＰＬＬ４４から出力されるクロックに従って読み出される。
【００４２】
図６は、ＰＬＬを利用したシンセサイザ３１が正常動作したときのシリアルインタフェースの動作を示すタイムチャート、図７は、シンセサイザ３１の出力の位相が期待値からずれた場合の動作を示すタイミングチャートである。
【００４３】
図７に示すように、送信クロックが図６に比較して少し後ろにずれた場合、受信データをＦＩＦＯ４３に取り込むタイミングが丁度１クロック分後ろにずれる形となる。つまり、図７のように送信クロックの位相が期待値からずれた場合、正常動作時とはデータの受信タイミングが異なるものとなってしまう。以上が両系が同期動作しない理由の１つである。
【００４４】
そして、判定手段１３５において、ＣＰＵサブシステム１１，２１が同期動作していると判定された場合（ステップＳ３６がＹｅｓ）は、主系の制御手段１３９は従系の制御手段２３９に対して同期化完了を通知した後（ステップＳ５２）、同期化処理を終了する。また、従系の制御手段２３９は、主系から同期化完了が通知されると、同期化処理を終了する。
【００４５】
これに対して、同期動作していないと判定された場合（ステップＳ３６がＮｏ）は、主系の制御手段１３９は、エラー検出手段１３６によってＣＰＵサブシステム１１，２１のエラーが検出されているか否かを判定する（ステップＳ３７）。
【００４６】
そして、エラーが検出されている場合（ステップＳ３７がＹｅｓ）は、エラーの発生しているＣＰＵサブシステムをシステムから切り離す（ステップＳ３８）。より具体的には、主系の制御手段１３９は、自系のＣＰＵサブシステム１１にエラーが発生している場合は、自系のスイッチ手段１３７に対してＣＰＵサブシステム１１を切り離すことを指示し、他系のＣＰＵサブシステム２１にエラーが発生している場合は、他系の制御手段２３９に対して他系のＣＰＵサブシステム切り離すことを指示する。他系の制御手段２３９は、上記指示に応答してスイッチ手段２３７に対してＣＰＵサブシステム２１を切り離すことを指示し、この指示に従ってスイッチ手段２３７は、ＣＰＵサブシステム２１をシステムから切り離す。
【００４７】
エラーが発生したＣＰＵサブシステムをシステムから切り離すと、主系の制御手段１３９は、従系の制御手段２３９に対して同期化失敗を通知し（図４のステップＳ５３）、その後、同期化処理を終了する。また、従系の制御手段２３９も、主系から同期化失敗が通知されると、同期化処理を終了する。
【００４８】
これに対して、エラーが発生していない場合（ステップＳ３７がＮｏ）は、主系の制御手段１３９は、従系の制御手段２３９に対して従系のＣＰＵサブシステム２１の切り離しを指示する（図４のステップＳ４１）。この指示に応答して、従系の制御手段２３９は、自系のスイッチ手段２３７に対して自系のＣＰＵサブシステム２１を切り離すことを指示し、スイッチ手段２３７は、この指示に従ってＣＰＵサブシステム２１を切り離す（ステップＳ４９がＹｅｓ、ステップＳ５０）。
【００４９】
その後、主系の制御手段１３９は、従系の制御手段２３９に対して、ＣＰＵサブシステム２１にパワーサイクル（電源のＯＦＦ、ＯＮ）をかけるように指示する（ステップＳ４２）。この指示に応答して従系の制御手段２３９は、自系のパワーサイクル手段２３４に対して自系のＣＰＵサブシステム２１にパワーサイクルをかけることを指示し、この指示に従って、パワーサイクル手段２３４は、ＣＰＵサブシステム２１に対するパワーサイクルを実行し、ＣＰＵサブシステム２１を起動する。パワーサイクルを実行することにより、ＰＬＬの位相ずれなど、ＣＰＵサブシステム内の位相ずれをかなりの確率で解消することができる。
【００５０】
その後、主系の制御手段１３９は、前述したステップＳ３４と同様の処理を行うことにより、主系のＣＰＵサブシステム１１のコンテキストを従系のＣＰＵサブシステム２１にコピーする（ステップＳ４３）。
【００５１】
更に、主系の制御手段１３９は、前述したステップＳ３５と同様の処理を行うことにより、両系のＣＰＵサブシステム１１，２１に同期リセットをかける（ステップＳ４４）。
【００５２】
その後、主系の制御手段１３９は、前述したステップＳ３６と同様の処理を行うことにより、両系のＣＰＵサブシステム１１，２１が同期動作しているか否かを判定する（ステップＳ４５）。
【００５３】
そして、同期動作している場合（ステップＳ４５がＹｅｓ）は、主系の制御手段１３９は、従系の制御手段２３９に対して同期化完了を通知した後（ステップＳ５２）、同期化処理を終了する。従系の制御手段２３９は、上記通知に応答して、同期化処理を終了する。
【００５４】
これに対して、同期動作していない場合（ステップＳ４５がＮｏ）は、カウント値ｉをインクリメント（＋１）し、その後、カウント値ｉが予め定められている値Ｎ（ここではＮ＝２とする）が以上であるか否かを判定する（ステップＳ４６，Ｓ４７）。ここで、カウント値ｉの初期値は「０」である。また、従系のＣＰＵサブシステム１１に対してパワーサイクルをかけても同期動作しなかったので、同期動作しない原因が主系のＣＰＵサブシステム１１内の位相ずれにあると想定される。そこで、現時点において主系のＣＰＵサブシステム１１にパワーサイクルをかけるため、主系の制御手段１３９は、主系と従系とを入れ替える（ステップＳ４８）。より具体的には、現時点において主系の制御手段１３９は、自系の主系記憶部１３８に記録されている主系情報を＃１系を示すものに変更すると共に、現時点において従系の制御手段２３９に対して主系記憶部２３８に記録されている主系情報を＃１系を示すものに変更することを指示する。この指示に従って、従系の制御手段２３９は、主系記憶部２３８に記録されている主系情報を＃１系を示すものに変更する（ステップＳ４９がＹｅｓ、ステップＳ５０）。以上の処理により、＃０系が従系、＃１系が主系に変更される。また、ステップＳ４８では、現在のカウント値ｉを他系の制御手段２３９に通知する処理も行い、通知を受けた制御手段２３９は、ステップＳ４６においてカウント値ｉをインクリメントする際には、通知されたカウント値ｉをインクリメントする。
【００５５】
そして、新たに従系になった＃０系の制御手段１３９は、主系からの指示待ち状態に移行する（ステップＳ５１がＮｏ、ステップＳ４９）。
【００５６】
一方、新たに主系となった＃１系の制御手段２３９は、ステップＳ５１の判定結果がＹｅｓとなるので、ステップＳ４１の処理を行う。これ以降、前述したステップＳ４２〜Ｓ４５と同様の処理が行われる（但し、主系と従系とが入れ替わっている）。
【００５７】
そして、ステップＳ４５において、両系のＣＰＵサブシステム１１，２１が同期して動作していると判定した場合は、主系の制御手段２３９は、従系の制御手段１３９に対して同期化完了を通知した後（ステップＳ５２）、同期化処理を終了する。また、従系の制御手段１３９は、同期化完了が通知されると、同期化処理を終了する。
【００５８】
これに対して、両系のＣＰＵサブシステム１１，２１が同期動作していないと判定した場合（ステップＳ４５がＮｏ）は、主系の制御手段２３９は、制御手段１３９から通知されているカウント値ｉ＝「１」を＋１する（ステップＳ４７がＹｅｓ）。この結果、カウント値ｉ＝「２」＝Ｎとなるので（ステップＳ４７がＹｅｓ）、主系の制御手段２３９は、従系の制御手段１３９に対して同期化失敗を通知し（ステップＳ５３）、その後、同期化処理を終了する。また、従系の制御手段１３９も、同期化失敗が通知されると、同期化処理を終了する。
【００５９】
なお、上述した実施の形態では、Ｎ＝「２」としたが、Ｎは「１」以上であれば、任意の値とすることができる。
【００６０】
[第１の実施の形態の効果]
本実施の形態によれば、ＦＴサーバのＣＰＵサブシステムの同期化処理に失敗した場合であっても、システム停止を伴わず、且つ利用者に負担をかけることなく、ＣＰＵサブシステムを同期化することができる。その理由は、両系のＣＰＵサブシステムが同期して動作していない場合、一方の系のＣＰＵサブシステムにパワーサイクルをかけるようにしているからである。
【００６１】
また、本実施の形態では、一方の系のＣＰＵサブシステムにパワーサイクルをかけても両系のＣＰＵサブシステムを同期させることができなかった場合、他系のＣＰＵサブシステムにパワーサイクルをかけるようにしているので、ＣＰＵサブシステムを同期化できる確率が高まる。
【００６２】
また、本実施の形態では、エラー検出手段によって、エラーが検出されたＣＰＵサブシステムをシステムから切り離すようにしているので、エラーの影響がＦＴサーバ全体に及ばないようにすることができる。
【００６３】
[本発明の第２の実施の形態]
次に、本発明の第２の実施の形態について詳細に説明する。
【００６４】
図８を参照すると、本実施の形態に係るＦＴサーバは、第１のＣＰＵサブシステム８２を備えた第１のサブシステム８１と、第２のＣＰＵサブシステム８４を備えた第２のサブシステム８３とを備えており、両ＣＰＵサブシステム８２，８４は、同期して動作する。第１、第２のＣＰＵサブシステム８２，８４は、それぞれ第１、第２のＣＰＵと、第１、第２のメモリとを有する。
【００６５】
判定手段８５１は、第１のＣＰＵサブシステム８２と第２のＣＰＵサブシステム８４とが同期して動作しているか否かを判定する。パワーサイクル手段８５２が、判定手段８５１で同期して動作していないと判定された場合、第２のＣＰＵサブシステム８４に対して電源をＯＦＦ、ＯＮするパワーサイクルをかける。コピー手段８５３は、パワーサイクル手段８５２が第２のＣＰＵサブシステム８４に対してパワーサイクルをかけた後、第１のメモリの内容と第１のＣＰＵのレジスタの内容とを含む第１のＣＰＵサブシステム８２のコンテキストを第２のＣＰＵサブシステム８４にコピーする。同期手段８５４は、コピー手段８５３によるコピーが完了した後、第１のＣＰＵサブシステム８２および第２のＣＰＵサブシステム８４に対し、同期リセットをかける。
【００６６】
[第２の実施の形態の効果]
本実施の形態によれば、ＦＴサーバのＣＰＵサブシステムの同期化処理に失敗した場合に利用者に係る負担を低減することができる。その理由は、第１、第２のＣＰＵサブシステムが同期して動作していない場合、第２の出力サブシステムに対してパワーサイクルをかけるようにしているからである。
【００６７】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【００６８】
（付記１）
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバであって、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段と、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段と、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段とを備えたことを特徴とするフォールトトレラントサーバ。
【００６９】
（付記２）
付記１記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定する判定手段を備えたことを特徴とするフォールトトレラントサーバ。
【００７０】
（付記３）
付記２記載のフォールトトレラントサーバにおいて、
前記判定手段は、前記同期手段による同期リセットが行われた後、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定することを特徴とするフォールトトレラントサーバ。
【００７１】
（付記４）
付記１，２または３記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムにエラーが発生したことを検出するエラー検出手段と、
前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第１のＣＰＵサブシステムのエラーが検出された場合、前記第１のＣＰＵサブシステムを切り離すスイッチ手段を備えたことを特徴とするフォールトトレラントサーバ。
【００７２】
（付記５）
付記４記載のフォールトトレラントサーバにおいて、
前記エラー検出手段は、前記第２のＣＰＵサブシステムにエラーが発生したことを検出し、
前記スイッチ手段は、前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第２のＣＰＵサブのエラーが検出された場合、前記第２のＣＰＵサブシステムを切り離すことを特徴とするフォールトトレラントサーバ。
【００７３】
（付記６）
付記２乃至５の何れか１付記に記載のフォールトトレラントサーバにおいて、
前記判定手段は、前記第１のサブシステム内のバス上の信号と、前記第２のサブシステム内のバス上の信号とが一致しているか否かに基づいて同期動作しているか否かを判定することを特徴とするフォールトトレラントサーバ。
【００７４】
（付記７）
付記１乃至６の何れか１項に記載のフォールトトレラントサーバにおいて、
前記第１のＣＰＵサブシステムのコンテキストは、前記第１のメモリの内容と前記第１のＣＰＵのレジスタの内容とを含むことを特徴とするフォールトトレラントサーバ。
【００７５】
（付記８）
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第２のＣＰＵと第２のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバの同期化方法であって、
パワーサイクル手段が、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけ、
コピー手段が、前記パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーし、
同期手段が、前記コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかけることを特徴とする同期化方法。
【００７６】
(付記９)
付記８記載の同期化方法において、
判定手段が、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定することを特徴とする同期化方法
【００７７】
（付記１０）
付記９記載の同期化方法において、
前記判定手段が、前記同期手段による同期リセットが行われた後、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定することを特徴とする同期化方法。
【００７８】
（付記１１）
付記８，９または１０記載の同期化方法において、
エラー検出手段が、前記第１のＣＰＵサブシステムにエラーが発生したことを検出し、
前記スイッチ手段が、前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第１のＣＰＵサブシステムのエラーが検出された場合、前記第１のＣＰＵサブシステムを切り離すことを特徴とする同期化方法。
【００７９】
（付記１２）
第１のＣＰＵと第１のメモリとを有する第１のＣＰＵサブシステムを備えた第１のサブシステムと、第１のＣＰＵと第１のメモリとを有する第２のＣＰＵサブシステムを備えた第２のサブシステムとを同期して動作させるフォールトトレラントサーバを、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作していない場合、前記第２のＣＰＵサブシステムに対して電源をオフ、オンするパワーサイクルをかけるパワーサイクル手段、
該パワーサイクル手段が前記第２のＣＰＵサブシステムに対してパワーサイクルをかけた後、前記第１のＣＰＵサブシステムのコンテキストを前記第２のＣＰＵサブシステムにコピーするコピー手段、
該コピー手段によるコピーが完了した後、前記第１のＣＰＵサブシステムおよび前記第２のＣＰＵサブシステムに対し、同期リセットをかける同期手段として機能させるためのプログラム。
【００８０】
(付記１３)
付記１２記載のプログラムにおいて、
前記フォールトトレラントサーバを、
前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定する判定手段として機能させるためのプログラム。
【００８１】
（付記１４）
付記１３記載のプログラムにおいて、
前記判定手段は、前記同期手段による同期リセットが行われた後、前記第１のＣＰＵサブシステムと前記第２のＣＰＵサブシステムとが同期して動作しているか否かを判定することを特徴とするプログラム。
【００８２】
（付記１５）
付記１２，１３または１４記載のプログラムにおいて、
前記フォールトトレラントサーバを、
前記第１のＣＰＵサブシステムにエラーが発生したことを検出するエラー検出手段、
前記判定手段で同期動作していないと判定され、且つ、前記エラー検出手段で前記第１のＣＰＵサブシステムのエラーが検出された場合、前記第１のＣＰＵサブシステムを切り離すスイッチ手段として機能させるためのプログラム。
【符号の説明】
【００８３】
１，２・・・サブシステム
１１，２１・・・ＣＰＵサブシステム
１１１，２１１・・・ＣＰＵ
１１２，２１２・・・メモリ
１２，２２・・・Ｉ／Ｏサブシステム
１２１，２２１・・・ＨＤＤ
１２２，２２２・・・ＬＡＮコントローラ
１２３，２２３・・・増設カード
１３，２３・・・二重化制御回路
１３１，２３１・・・起動手段
１３２，２３２・・・コピー手段
１３３，２３３・・・同期手段
１３４，２３４・・・パワーサイクル手段
１３５，２３５・・・判定手段
１３６，２３６・・・エラー検出手段
１３７，２３７・・・スイッチ手段
１３８，２３８・・・主系記憶部
１３９，２３９・・・制御手段
３・・・送信側装置
３１・・・シンセサイザ
３２・・・分周回路
３３・・・位相調整ディレイ回路
３４・・・パラレルシリアル変換器
４・・・送信側装置
４１・・・シリアルパラレル変換器
４２・・・リカバリクロック生成回路
４３・・・ＦＩＦＯ
４４・・・ＰＬＬ
【図１】
2015194847.tif 000003
【図２】
2015194847.tif 000004
【図３】
2015194847.tif 000005
【図４】
2015194847.tif 000006
【図５】
2015194847.tif 000007
【図６】
2015194847.tif 000008
【図７】
2015194847.tif 000009
【図８】
2015194847.tif 000010