(57)【要約】【課題】  情報処理装置の情報処理部を排他的に制御する２つの制御装置の一方の記憶部が保持する情報が破壊された場合、制御装置の他方により、破壊された情報を修復する。【解決手段】  第１の制御装置は、第１の記憶部が保持する情報処理部を制御する制御プログラムと第２の制御装置を監視する監視プログラムとを実行する第１の演算処理部と、第１の制御部とを有する。第２の制御装置は、第２の記憶部が保持する第１の制御装置を監視する監視プログラムを実行する第２の演算処理部と、第２の制御部とを有する。第１の演算処理部は、第２の制御装置の停止を検出した場合、第１の制御部および第２の制御部を介して第２の記憶部が保持する情報の誤りを修復し、第１の制御部および第２の制御部を介して第２の演算処理部を再起動させ、第２の演算処理部に第１の制御装置を監視する監視プログラムを実行させる。【選択図】    図１
2019016218.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を実行する情報処理部と、前記情報処理部を制御する第１の制御装置と、前記情報処理部を制御する第２の制御装置とを有する情報処理装置において、
前記第１の制御装置は、
前記情報処理部を制御する制御プログラムと前記第２の制御装置を監視する監視プログラムとを保持する第１の記憶部と、
前記第１の記憶部が保持する制御プログラムと監視プログラムとを実行する第１の演算処理部と、
前記第２の制御装置を制御する指示を前記第２の制御装置に出力するとともに、前記第２の制御装置からの指示に基づいて、前記第１の演算処理部の状態と前記第１の記憶部のアクセスとを制御する第１の制御部とを有し、
前記第２の制御装置は、
前記情報処理部を制御する制御プログラムと前記第１の制御装置を監視する監視プログラムとを保持する第２の記憶部と、
前記第２の記憶部が保持する監視プログラムを実行する第２の演算処理部と、
前記第１の制御装置を制御する指示を前記第１の制御装置に出力するとともに、前記第１の制御装置からの指示に基づいて、前記第２の演算処理部の状態と前記第２の記憶部のアクセスとを制御する第２の制御部とを有し、
前記第１の演算処理部は、前記第２の制御装置の停止を検出した場合、前記第１の制御部および前記第２の制御部を介して前記第２の記憶部をアクセスし、前記第２の記憶部が保持する情報が誤りを含む場合、前記第２の記憶部が保持する情報の誤りを修復し、前記第１の制御部および前記第２の制御部を介して前記第２の演算処理部を再起動させ、前記第２の演算処理部に前記第１の制御装置を監視する監視プログラムを実行させることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置において、
前記第２の演算処理部は、前記第１の制御装置の停止を検出した場合、前記第２の記憶部が保持する制御プログラムの実行を開始し、前記第２の制御部および前記第１の制御部を介して前記第１の記憶部をアクセスし、前記第１の記憶部が保持する情報が誤りを含む場合、前記第１の記憶部が保持する情報の誤りを修復し、前記第２の制御部および前記第１の制御部を介して前記第１の演算処理部を再起動させ、前記第１の演算処理部に前記第２の制御装置を監視する監視プログラムを実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の制御部は、
前記第１の記憶部を前記第１の演算処理部または前記第２の演算処理部のいずれかに接続する第１の接続部と、
前記第２の制御装置からの指示に基づいて、前記第１の接続部の接続を切り替える第１の切替制御部と、
前記第２の制御装置からの指示に基づいて、前記第１の演算処理部を再起動する第１の起動制御部とを有し、
前記第２の制御部は、
前記第２の記憶部を前記第１の演算処理部または前記第２の演算処理部のいずれかに接続する第２の接続部と、
前記第１の制御装置からの指示に基づいて、前記第２の接続部の接続を切り替える第２の切替制御部と、
前記第１の制御装置からの指示に基づいて、前記第２の演算処理部を再起動する第２の起動制御部とを有することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第１の制御部は、
前記第２の制御装置からの指示に基づいて、前記第１の記憶部のアクセスを制御する第１のアクセス制御部と、
前記第２の制御装置からの指示に基づいて、前記第１の演算処理部を再起動する第１の起動制御部とを有し、
前記第２の制御部は、
前記第１の制御装置からの指示に基づいて、前記第２の記憶部のアクセスを制御する第２のアクセス制御部と、
前記第１の制御装置からの指示に基づいて、前記第２の演算処理部を再起動する第２の起動制御部とを有することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項５】
前記第１の起動制御部は、前記第２の演算処理部が前記第１の記憶部にアクセスする期間、前記第２の制御装置からの指示に基づいて、前記第１の演算処理部をリセット状態に設定し、
前記第２の起動制御部は、前記第１の演算処理部が前記第２の記憶部にアクセスする期間、前記第１の制御装置からの指示に基づいて、前記第２の演算処理部をリセット状態に設定することを特徴とする請求項３または請求項４に記載の情報処理装置。
【請求項６】
前記第１の演算処理部または前記第２の演算処理部のうち、前記制御プログラムを実行する演算処理部は、前記第１の記憶部が保持する情報と前記第２の記憶部が保持する情報とを互いに同期させる処理を実行し、
前記第２の制御装置を監視する監視プログラムを実行する前記第１の演算処理部は、前記第２の記憶部が保持する情報が誤りを含む場合、前記第１の記憶部が保持する情報を使用して、前記第２の記憶部が保持する情報の誤りを修復し、
前記第１の制御装置を監視する監視プログラムを実行する前記第２の演算処理部は、前記第１の記憶部が保持する情報が誤りを含む場合、前記第２の記憶部が保持する情報を使用して、前記第１の記憶部が保持する情報の誤りを修復することを特徴とする請求項１ないし請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１の演算処理部は、前記第２の記憶部が保持する情報の誤りを修復できない場合、前記第２の制御装置の故障を示す情報を前記第１の制御装置の外部に出力することを特徴とする請求項１ないし請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第２の演算処理部は、前記第１の記憶部が保持する情報の誤りを修復できない場合、前記第１の制御装置の故障を示す情報を前記第２の制御装置の外部に出力することを特徴とする請求項２ないし請求項７のいずれか１項に記載の情報処理装置。
【請求項９】
情報処理を実行する情報処理部と第１の制御装置とともに情報処理装置に含まれ、前記第１の制御装置により監視され、前記情報処理部を制御するとともに前記第１の制御装置を監視する制御装置において、
前記情報処理部を制御する制御プログラムと前記第１の制御装置を監視する監視プログラムとを保持する記憶部と、
前記記憶部が保持する制御プログラムと監視プログラムとを実行する演算処理部と、
前記第１の制御装置を制御する指示を前記第１の制御装置に出力するとともに、前記第１の制御装置からの指示に基づいて、前記演算処理部の状態と前記記憶部のアクセスとを制御する制御部とを有し、
前記演算処理部は、前記第１の制御装置の停止を検出した場合、前記制御部を介して前記第１の制御装置が有する第１の記憶部のアクセスを制御し、前記第１の記憶部が保持する情報が誤りを含む場合、前記第１の記憶部が保持する情報の誤りを修復し、前記制御部を介して前記第１の制御装置が有する第１の演算処理部を再起動させ、前記制御装置を監視する監視プログラムを前記第１の演算処理部に実行させることを特徴とする制御装置。
【請求項１０】
情報処理を実行する情報処理部と第１の制御装置とともに情報処理装置に含まれ、前記情報処理部を制御する前記第１の制御装置により監視され、前記第１の制御装置を監視し、前記情報処理部を制御する制御装置において、
前記情報処理部を制御する制御プログラムと前記第１の制御装置を監視する監視プログラムとを保持する記憶部と、
前記記憶部が保持する監視プログラムを実行する演算処理部と、
前記第１の制御装置を制御する指示を前記第１の制御装置に出力するとともに、前記第１の制御装置からの指示に基づいて、前記演算処理部の状態と前記記憶部のアクセスとを制御する制御部とを有し、
前記演算処理部は、前記第１の制御装置の停止を検出した場合、前記記憶部が保持する制御プログラムの実行を開始し、前記制御部を介して前記第１の制御装置が有する第１の記憶部のアクセスを制御し、前記第１の記憶部が保持する情報が誤りを含む場合、前記第１の記憶部が保持する情報の誤りを修復し、前記制御部を介して前記第１の制御装置が有する第１の演算処理部を再起動させ、前記制御装置を監視する監視プログラムを前記第１の演算処理部に実行させることを特徴とする制御装置。
【請求項１１】
情報処理を実行する情報処理部と、前記情報処理部を制御する第１の制御装置と、前記情報処理部を制御する第２の制御装置とを有する情報処理装置であって、前記第１の制御装置が、前記情報処理部を制御する制御プログラムと前記第２の制御装置を監視する監視プログラムとを保持する第１の記憶部と、前記第１の記憶部が保持する制御プログラムと監視プログラムとを実行する第１の演算処理部と、前記第２の制御装置を制御する指示を前記第２の制御装置に出力するとともに、前記第２の制御装置からの指示に基づいて、前記第１の演算処理部の状態と前記第１の記憶部のアクセスとを制御する第１の制御部とを有し、前記第２の制御装置が、前記情報処理部を制御する制御プログラムと前記第１の制御装置を監視する監視プログラムとを保持する第２の記憶部と、前記第２の記憶部が保持する監視プログラムを実行する第２の演算処理部と、前記第１の制御装置を制御する指示を前記第１の制御装置に出力するとともに、前記第１の制御装置からの指示に基づいて、前記第２の演算処理部の状態と前記第２の記憶部のアクセスとを制御する第２の制御部とを有する情報処理装置に制御方法において、
前記第１の演算処理部は、前記第２の制御装置の停止を検出した場合、前記第１の制御部および前記第２の制御部を介して前記第２の記憶部をアクセスし、前記第２の記憶部が保持する情報が誤りを含む場合、前記第２の記憶部が保持する情報の誤りを修復し、前記第１の制御部および前記第２の制御部を介して前記第２の演算処理部を再起動させ、前記第２の演算処理部に前記第１の制御装置を監視する監視プログラムを実行させることを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
交換機の動作を監視する保守運用システムにおいて、交換機を監視する制御装置は、監視処理に使用する情報を含むファイルを保持する。制御装置が保持するファイルが壊れた場合、保守運用システムによる交換機を監視する動作は停止し、監視処理の再開は困難になる。そこで、ファイルを制御装置と交換機との両方に保持し、制御装置が保持するファイルが壊れた場合、交換機から制御装置にファイルを転送することで、交換機を監視する監視処理を再開可能にする手法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−６８７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、サーバ等の情報処理装置は、情報処理を実行するシステム基板を制御する制御装置を有する。制御装置は、システム基板の制御を実行するファームウェアを保持するフラッシュメモリやＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の書き替え可能な不揮発性の記憶装置を有し、記憶装置が保持するファームウェアを実行することで、システム基板を制御する。例えば、制御装置によりファームウェアを書き替え中に停電等が発生し、ファームウェアが破壊された場合、制御装置は正常に起動できなくなる。制御装置が正常に起動しない場合、ファームウェアを記憶装置に書き込めないため、制御装置は動作不能になる。この場合、制御装置に含まれる記憶装置を正常なファームウェアが保持された記憶装置に交換するなどの保守作業を行うことで、制御装置は動作可能になる。
【０００５】
一方、情報処理装置に運用系と予備系の２つ制御装置を設け、２つ制御装置を排他的に使用してシステム基板を制御することで、情報処理装置の信頼性は、情報処理装置に１つの制御装置を設ける場合に比べて向上する。しかしながら、１つの制御装置が設けられる情報処理装置と同様に、制御装置のいずれかにおいてファームウェアが破壊された場合、破壊されたファームウェアを保持する記憶装置を有する制御装置は動作不能になる。この場合にも、制御装置を動作させるために、記憶装置の交換などの保守作業が行われる。
【０００６】
１つの側面では、本発明は、情報処理装置の情報処理部を排他的に制御する２つの制御装置の一方の記憶部が保持する情報が破壊された場合、制御装置の他方により、破壊された情報を修復することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施態様では、情報処理を実行する情報処理部と、情報処理部を制御する第１の制御装置と、情報処理部を制御する第２の制御装置とを有する情報処理装置において、第１の制御装置は、情報処理部を制御する制御プログラムと第２の制御装置を監視する監視プログラムとを保持する第１の記憶部と、第１の記憶部が保持する制御プログラムと監視プログラムとを実行する第１の演算処理部と、第２の制御装置を制御する指示を第２の制御装置に出力するとともに、第２の制御装置からの指示に基づいて、第１の演算処理部の状態と第１の記憶部のアクセスとを制御する第１の制御部とを有し、第２の制御装置は、情報処理部を制御する制御プログラムと第１の制御装置を監視する監視プログラムとを保持する第２の記憶部と、第２の記憶部が保持する監視プログラムを実行する第２の演算処理部と、第１の制御装置を制御する指示を第１の制御装置に出力するとともに、第１の制御装置からの指示に基づいて、第２の演算処理部の状態と第２の記憶部のアクセスとを制御する第２の制御部とを有し、第１の演算処理部は、第２の制御装置の停止を検出した場合、第１の制御部および第２の制御部を介して第２の記憶部をアクセスし、第２の記憶部が保持する情報が誤りを含む場合、第２の記憶部が保持する情報の誤りを修復し、第１の制御部および第２の制御部を介して第２の演算処理部を再起動させ、第２の演算処理部に第１の制御装置を監視する監視プログラムを実行させる。
【発明の効果】
【０００８】
１つの側面では、本発明は、情報処理装置の情報処理部を排他的に制御する２つの制御装置の一方の記憶部が保持する情報が破壊された場合、制御装置の他方により、破壊された情報を修復することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置、制御装置および情報処理装置の制御方法の一実施形態を示す図である。
【図２】図１に示す情報処理装置の動作の一例を示す図である。
【図３】図１に示す情報処理装置の動作の別の例を示す図である。
【図４】情報処理装置、制御装置および情報処理装置の制御方法の別の実施形態を示す図である。
【図５】図４に示す情報処理装置の動作の一例を示す図である。
【図６】図４に示す情報処理装置の動作の別の例を示す図である。
【図７】図４に示す情報処理装置の動作のさらなる別の例を示す図である。
【図８】図５、図６および図７に示すフラッシュメモリの診断と修復の一例を示す図である。
【図９】図４に示す情報処理装置において、運用系の制御ボードのＭＰＵの動作の一例を示す図である。
【図１０】図４に示す情報処理装置において、待機系の制御ボードのＭＰＵの動作の一例を示す図である。
【図１１】図４に示す情報処理装置において、ＦＰＧＡの動作の一例を示す図である。
【図１２】情報処理装置、制御装置および情報処理装置の制御方法の別の実施形態を示す図である。
【図１３】図１２に示す情報処理装置において、運用系の制御ボードのＭＰＵの動作の一例を示す図である。
【図１４】図１２に示す情報処理装置において、待機系の制御ボードのＭＰＵの動作の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、情報処理装置、制御装置および情報処理装置の制御方法の一実施形態を示す。図１に示す情報処理装置１００は、例えば、サーバであり、情報処理を実行する情報処理部１０と、情報処理部１０を制御する制御装置２０、３０とを有する。情報処理部１０は、ＣＰＵ（Central Processing Unit）等の演算処理装置としてのプロセッサ１２と、図示しない主記憶装置、電源ユニット、ハードディスクドライブ装置および通信インタフェース等を有する。
【００１２】
制御装置２０、３０は、互いに同じ構成を有し、制御装置２０、３０の一方が運用系の制御装置として動作し、制御装置２０、３０の他方が待機系の制御装置として機能する。すなわち、二重化された制御装置２０、３０のいずれかにより、情報処理部１０の制御が排他的に実行される。なお、以下では、制御装置２０が運用系として動作し、制御装置３０が待機系として動作する例が説明される。
【００１３】
制御装置２０は、演算処理部２２と、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を保持する記憶部２４と、制御部２６とを有する。制御装置３０は、演算処理部３２と、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を保持する記憶部３４と、制御部３６とを有する。例えば、演算処理部２２、３２は、ＭＰＵ（Micro-Processing Unit）等のプロセッサであり、制御部２６、３６は、ＦＰＧＡ（Field-Programmable Gate Array）等の動的に論理を再構成可能なデバイスを含む。
【００１４】
なお、制御装置２０は、記憶部２４から転送される制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を保持するＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等のメモリ（図示せず）を有する。同様に、制御装置３０は、記憶部３４から転送される制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を保持するＳＤＲＡＭ等のメモリ（図示せず）を有する。演算処理部２２は、制御装置２０が運用系として動作する場合、制御装置２０のメモリに転送された制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を実行する。演算処理部３２は、制御装置３０が待機系として動作する場合、制御装置３０のメモリに転送された監視プログラムＰＧＭ２を実行する。
【００１５】
制御プログラムＰＧＭ１は、情報処理部１０を制御するとともに情報処理部１０の動作状態を監視するために、制御装置２０の記憶部２４および制御装置３０の記憶部３４にそれぞれ組み込まれた組み込みファームウェアの一例である。監視プログラムＰＧＭ２は、他の制御装置（３０または２０）の動作を監視するために、自制御装置（２０または３０）の記憶部（２４、３４）に組み込まれた組み込みファームウェアの一例である。
【００１６】
なお、記憶部２４、３４は、情報処理部１０のＣＰＵ１２が実行するＰＯＳＴ（Power-On Self-Test）ファームウェアまたはＯＢＰ（OpenBoot PROM）ファームウェア等のファームウェアを保持してもよい。この場合、記憶部２４（または記憶部３４）に保持されたＣＰＵ１２用のファームウェアは、情報処理部１０の主記憶装置に転送された後、ＣＰＵ１２により実行される。
【００１７】
演算処理部２２、３２は、通信線ＣＬ１を介して互いに接続される。演算処理部２２は、制御部２６を介して通信線ＣＬ２に接続され、演算処理部３２は、制御部３６を介して通信線ＣＬ２に接続される。通信線ＣＬ２は、情報処理部１０と制御部２６、３６とを相互に接続する。記憶部２４は、演算処理部２２または制御部２６によりアクセス可能であり、記憶部３４は、演算処理部３２または制御部３６によりアクセス可能である。
【００１８】
制御部２６は、制御装置２０が運用系として動作中に、演算処理部２２からの指示に基づいて、情報処理部１０を制御し、情報処理部１０の動作状態（温度、電圧等）を示す情報を情報処理部１０から読み出し、読み出した情報を記憶部２４等に格納する。また、制御部２６は、制御装置２０が運用系または待機系として動作中に、演算処理部２２からの指示に基づいて、通信線ＣＬ２および制御部３６を介して記憶部３４にアクセス可能である。さらに、制御部２６は、制御装置２０が運用系または待機系として動作中に、制御部３６および通信線ＣＬ２を介して受信する演算処理部３２からの指示に基づいて、記憶部２４にアクセスし、または演算処理部２２のリセット状態を制御する。
【００１９】
制御部３６は、制御装置３０が運用系として動作中に、演算処理部３２からの指示に基づいて、情報処理部１０を制御し、情報処理部１０の動作状態（温度、電圧等）を示す情報を情報処理部１０から読み出し、読み出した情報を記憶部３４等に格納する。また、制御部３６は、制御装置３０が運用系または待機系として動作中に、演算処理部３２からの指示に基づいて、通信線ＣＬ２および制御部２６を介して記憶部２４にアクセス可能である。さらに、制御部３６は、制御装置３０が運用系または待機系として動作中に、制御部２６および通信線ＣＬ２を介して受信する演算処理部２２からの指示に基づいて、記憶部３４にアクセスし、または演算処理部３２のリセット状態を制御する。
【００２０】
すなわち、演算処理部２２は、制御部２６、３６を介して、制御装置３０の記憶部３４が保持する情報を読み出すことができ、記憶部３４に情報を書き込むことができる。同様に、演算処理部３２は、制御部３６、２６を介して、制御装置２０の記憶部２４が保持する情報を読み出すことができ、記憶部２４に情報を書き込むことができる。
【００２１】
演算処理部２２は、記憶部２４が保持する監視プログラムＰＧＭ２を実行することで、通信線ＣＬ１を介して演算処理部３２の動作を監視する。演算処理部３２は、記憶部３４が保持する監視プログラムＰＧＭ２を実行することで、通信線ＣＬ１を介して演算処理部２２の動作を監視する。すなわち、制御装置２０は、制御装置３０の動作を監視し、制御装置３０は、制御装置２０の動作を監視する。
【００２２】
運用系の制御装置２０の演算処理部２２は、記憶部２４が保持する制御プログラムＰＧＭ１を実行することで、制御部２６および通信線ＣＬ２を介して情報処理部１０を制御するとともに情報処理部１０の動作状態を監視する。制御装置３０が待機系から運用系に切り替えられた場合、制御装置３０の演算処理部３２は、記憶部３４が保持する制御プログラムＰＧＭ１を実行する。そして、演算処理部３２は、制御部３６および通信線ＣＬ２を介して情報処理部１０を制御するとともに情報処理部１０の動作状態を監視する。
【００２３】
なお、各記憶部２４、３４は、情報処理部１０に設定された設定データおよび情報処理部１０の動作状態を示すステータスを保持するために割り当てられた図示しないデータ領域を有する。運用系の制御装置２０（または、制御装置３０）は、制御プログラムＰＧＭ１の実行により、情報処理部１０の設定データまたはステータスを監視する。例えば、運用系の制御装置２０は、設定データまたはステータスが変更された場合、変更された設定データまたはステータスを記憶部２４のデータ領域に書き込む。
【００２４】
また、運用系の制御装置２０は、監視プログラムＰＧＭ２の実行により、待機系の制御装置３０と通信し、変更された設定データまたはステータスを待機系の記憶部３４のデータ領域に書き込ませる。すなわち、運用系の制御装置２０の記憶部２４が保持する設定データおよびステータスと、待機系の制御装置３０の記憶部３４が保持する設定データおよびステータスとは、互いに同期される。制御装置３０が運用系の場合にも、待機系の制御装置２０との間で、設定データまたはステータスは同期される。
【００２５】
図２は、図１に示す情報処理装置１００の動作の一例を示す。すなわち、図２は、情報処理装置１００の制御方法の一例を示す。図２は、制御装置２０が運用系として動作し、制御装置３０が待機系として動作している状態で、待機系の制御装置３０がハングアップした場合の動作を示す。
【００２６】
運用系の制御装置２０の演算処理部２２は、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を実行する（図２（ａ））。待機系の制御装置３０の演算処理部３２は、監視プログラムＰＧＭ２を実行する（図２（ｂ））。演算処理部２２は、所定の周期で演算処理部３２の動作状態を監視し、演算処理部３２は、所定の周期で演算処理部２２の動作状態を監視する（図２（ｃ））。
【００２７】
演算処理部３２は、例えば、記憶部３４に誤った情報が書き込まれたことにより、監視プログラムＰＧＭ２を正常に実行できなくなり、ハングアップする（図２（ｄ））。演算処理部２２は、例えば、演算処理部３２に発行した監視用のパケットに対する演算処理部３２からの応答を所定の時間受信しないことに基づいて、演算処理部３２のハングアップを検出する（図２（ｅ））。すなわち、運用系の制御装置２０は、待機系の制御装置３０の停止を検出する。
【００２８】
なお、監視プログラムＰＧＭ２等の更新中に、情報処理装置１００の電源ケーブルが電源タップ等から誤って外れされた場合、または停電が発生した場合にも、ハングアップが発生する。ハングアップの発生により、監視プログラムＰＧＭ２等の更新処理が正常に終了しない場合、例えば、制御装置３０は、更新後の再起動で正常に起動されず、再起動を繰り返す。この場合、演算処理部３２は、監視プログラムＰＧＭ２を実行する状態まで遷移しないため、監視用のパケットに対する応答を発行せず、制御装置２０により制御装置３０の停止が検出される。
【００２９】
次に、演算処理部２２は、制御部２６、通信線ＣＬ２および制御部３６を介して記憶部３４にアクセスし、記憶部３４に保持された情報を読み出し、読み出した情報に基づいて、記憶部３４が保持する情報が正しいか否かの診断を実行する（図２（ｆ））。例えば、記憶部３４の診断は、記憶部３４から読み出した情報を、記憶部２４が保持する情報と比較することにより実行される。なお、演算処理部２２は、記憶部３４の診断を開始する前に、制御部２６、通信線ＣＬ２および制御部３６を介して演算処理部３２をリセット状態に設定してもよい。
【００３０】
例えば、演算処理部２２は、記憶部３４が保持する情報に誤りが含まれることを検出し、記憶部３４に保持された誤った情報が演算処理部３２のハングアップの原因であると判定する。そして、演算処理部２２は、記憶部２４から読み出した正しい情報を記憶部３４に格納することで、記憶部３４に保持された情報を修復する（図２（ｇ））。
【００３１】
すなわち、待機系の制御装置３０が停止した場合、運用系の制御装置２０は、制御部２６、３６を介して待機系の制御装置３０の記憶部３４にアクセスすることで、記憶部３４に保持された情報の診断および修復を実行することができる。換言すれば、記憶部３４を演算処理部３２、２２のいずれからもアクセス可能にすることで、待機系の制御装置３０の演算処理部３２が再起動できない場合にも、記憶部３４に保持されたファームウェア等を書き替えることができる。また、記憶部２４、３４に保持された情報は、互いに同期されているため、記憶部２４に保持された情報を記憶部３４にコピーすることで、記憶部３４に保持された情報を修復することができる。
【００３２】
次に、演算処理部２２は、記憶部３４に保持された情報を修復した後、制御部２６、通信線ＣＬ２および制御部３６を介して演算処理部３２を再起動する（図２（ｈ））。再起動された演算処理部３２は、記憶部３４に保持された修復済みの監視プログラムＰＧＭ２を図示しないＳＤＲＡＭ等のメモリに転送し、監視プログラムＰＧＭ２の実行を再開する（図２（ｉ））。記憶部３４に保持された情報が修復されたため、演算処理部３２は、正常に起動され、監視プログラムＰＧＭ２を正常に実行する。そして、演算処理部３２は、演算処理部２２の動作状態の監視を再開する（図２（ｊ））。すなわち、動作を停止した待機系の制御装置３０の動作が復旧される。
【００３３】
図３は、図１に示す情報処理装置１００の動作の別の例を示す。すなわち、図３は、情報処理装置１００の制御方法の別の例を示す。図３は、制御装置２０が運用系として動作し、制御装置３０が待機系として動作している状態で、運用系の制御装置２０がハングアップした場合の動作を示す。図２と同一または同様の動作については、詳細な説明は省略する。
【００３４】
図３では、運用系の制御装置２０の演算処理部２２は、例えば、記憶部２４に誤った情報が書き込まれたことにより、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２の少なくともいずれかを正常に実行できなくなり、ハングアップする（図３（ａ））。演算処理部３２は、例えば、演算処理部２２に発行した監視用のパケットに対する演算処理部２２からの応答を所定の時間受信しないことに基づいて、演算処理部２２のハングアップを検出する（図３（ｂ））。すなわち、待機系の制御装置３０は、運用系の制御装置２０の停止を検出する。
【００３５】
なお、制御プログラムＰＧＭ１または監視プログラムＰＧＭ２等の更新中に、情報処理装置１００の電源ケーブルが電源タップ等から誤って外れた場合、または停電が発生した場合にも、ハングアップが発生する。この場合、演算処理部２２は、例えば、再起動を繰り返し、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を実行する状態まで遷移しない。
【００３６】
待機系の制御装置３０の演算処理部３２は、運用系の制御装置３０の停止を検出した場合、記憶部３４に保持された制御プログラムＰＧＭ１の実行を開始する（図３（ｃ））。すなわち、待機系の制御装置３０が、運用系に切り替わり、制御装置２０に代わって、情報処理部１０の制御および監視を実行する。これにより、運用系の制御装置２０が停止した場合にも情報処理部１０の制御および監視を継続することができる。
【００３７】
図２と同様に、演算処理部３２は、制御部３６、通信線ＣＬ２および制御部２６を介して記憶部２４にアクセスし、記憶部２４に保持された情報を読み出し、読み出した情報に基づいて、記憶部２４が保持する情報が正しいか否かの診断を実行する（図３（ｄ））。例えば、記憶部２４の診断は、記憶部２４から読み出した情報を、記憶部３４が保持する情報と比較することにより実行される。なお、演算処理部３２は、記憶部２４の診断を開始する前に、制御部３６、通信線ＣＬ２および制御部２６を介して演算処理部２２をリセット状態に設定してもよい。
【００３８】
演算処理部３２は、記憶部２４が保持する情報に誤りが含まれるため、記憶部２４に保持された誤った情報が演算処理部２２のハングアップの原因であると判定する。そして、演算処理部３２は、記憶部３４から読み出した正しい情報を記憶部２４に格納することで、記憶部２４に保持された情報を修復する（図３（ｅ））。
【００３９】
すなわち、運用系の制御装置２０が停止した場合、待機系の制御装置３０は、制御部３６、２６を介して運用系の制御装置２０の記憶部２４にアクセスすることで、記憶部２４に保持された情報の診断および修復を実行することができる。換言すれば、記憶部２４を演算処理部３２、２２のいずれからもアクセス可能にすることで、運用系の制御装置２０の演算処理部２２が再起動できない場合にも、記憶部２４に保持されたファームウェア等を書き替えることができる。また、記憶部２４、３４に保持された情報は、互いに同期されているため、記憶部３４に保持された情報を記憶部２４にコピーすることで、記憶部２４に保持された情報を修復することができる。
【００４０】
次に、図２と同様に、演算処理部３２は、記憶部２４に保持された情報を修復した後、制御部３６、通信線ＣＬ２および制御部２６を介して演算処理部２２を再起動する（図３（ｆ））。再起動された演算処理部２２は、停止していた監視プログラムＰＧＭ２の実行を再開する（図３（ｇ））。この際、演算処理部３２は、制御プログラムＰＧＭ１の実行を再開しない。すなわち、動作を停止した運用系の制御装置２０は、待機系に切り替わる。そして、演算処理部２２は、演算処理部３２の動作状態の監視を再開する（図３（ｈ））。
【００４１】
以上、図１に示す実施形態では、制御装置２０、３０の一方が停止した場合、制御装置２０、３０の他方により、制御装置２０、３０の一方の記憶部２４（または、記憶部３４）の診断および修復を実行することができる。すなわち、記憶部２４、３４を演算処理部３２、２２のいずれからもアクセス可能にすることで、停止した制御装置２０（または、制御装置３０）の記憶部２４（または、記憶部３４）に保持されたファームウェア等を書き替えることができる。また、記憶部２４、３４に保持された情報は、互いに同期されているため、例えば、記憶部２４に保持された情報を記憶部３４にコピーすることで、記憶部３４に保持された情報を修復することができる。
【００４２】
図４は、情報処理装置、制御装置および情報処理装置の制御方法の別の実施形態を示す。図１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図４に示す情報処理装置１１０は、例えば、サーバであり、情報処理を実行する部品を有するシステムボード１１と、システムボード１１を制御する制御ボード４０、５０とを有する。システムボード１１は、情報処理を実行する情報処理部の一例であり、制御ボード４０、５０は、システムボード１１を制御する制御装置の一例である。
【００４３】
制御ボード４０、５０は、互いに同じ構成を有しており、制御ボード４０、５０の一方が運用系の制御ボードとして動作し、制御ボード４０、５０の他方が待機系の制御ボードとして機能する。以下では、制御ボード４０が運用系として動作し、制御ボード５０が待機系として動作する例が説明される。
【００４４】
制御ボード４０は、ＭＰＵ４２と、ＵＳＢ（Universal Serial Bus）インタフェースを有するフラッシュメモリ４４と、ＦＰＧＡ４６と、スイッチ４８とを有する。制御ボード５０は、ＭＰＵ５２と、ＵＳＢインタフェースを有するフラッシュメモリ５４と、ＦＰＧＡ５６と、スイッチ５８とを有する。ＭＰＵ４２は、第１の演算処理部の一例であり、ＭＰＵ５２は、第２の演算処理部の一例である。フラッシュメモリ４４は、第１の記憶部の一例であり、フラッシュメモリ５４は、第２の記憶部の一例である。ＦＰＧＡ４６は、第１の制御部の一例であり、ＦＰＧＡ５６は、第２の制御部の一例である。スイッチ４８は、第１の接続部の一例であり、スイッチ５８は、第２の接続部の一例である。
【００４５】
ＭＰＵ４２は、複数の入出力ポートを含むＵＳＢコントローラ４３（ＵＳＢＣ）を有し、ＭＰＵ５２は、複数の入出力ポートを含むＵＳＢコントローラ５３（ＵＳＢＣ）を有する。ＵＳＢコントローラ４３の入出力ポートのいずれかは、信号線を介してスイッチ４８に接続され、ＵＳＢコントローラ４３の入出力ポートの他のいずれかは、信号線を介して制御ボード５０のスイッチ５８に接続される。ＵＳＢコントローラ５３の入出力ポートのいずれかは、信号線を介してスイッチ５８に接続され、ＵＳＢコントローラ５３の入出力ポートの他のいずれかは、信号線を介して制御ボード４０のスイッチ４８に接続される。
【００４６】
フラッシュメモリ４４、５４の各々は、１ポートタイプであり、制御プログラムＰＧＭ１、監視プログラムＰＧＭ２、および様々なデータＤＴを保持する記憶領域を有する。データＤＴは、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２で使用するデータと、システムボード１１を監視することで得られるシステムボード１１の設定データおよびステータス情報とを含む。以下では、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２は、プログラムファイルとも称され、データＤＴは、データファイルとも称される。なお、フラッシュメモリ４４、５４は、ＣＰＵ１２が実行するＰＯＳＴファームウェアまたはＯＢＰファームウェア等のファームウェアを保持してもよい。フラッシュメモリ４４、５４に保持されたＣＰＵ１２用のファームウェアは、システムボード１１の主記憶装置に転送された後、ＣＰＵ１２により実行される。
【００４７】
ＦＰＧＡ４６は、ＭＰＵ４２のリセットを制御するリセット制御部ＲＳＴＣＮＴ１と、スイッチ４８の切り替えを制御するスイッチ制御部ＳＷＣＮＴ１とを有する。ＦＰＧＡ５６は、ＭＰＵ５２のリセットを制御するリセット制御部ＲＳＴＣＮＴ２と、スイッチ５８の切り替えを制御するスイッチ制御部ＳＷＣＮＴ２とを有する。リセット制御部ＲＳＴＣＮＴ１は、第１の起動制御部の一例であり、リセット制御部ＲＳＴＣＮＴ２は、第２の起動制御部の一例である。スイッチ制御部ＳＷＣＮＴ１は、第１の切替制御部の一例であり、スイッチ制御部ＳＷＣＮＴ２は、第２の切替制御部の一例である。
【００４８】
スイッチ４８は、ＦＰＧＡ４６のスイッチ制御部ＳＷＣＮＴ１による制御に基づいて、ＵＳＢコントローラ４３、５３のいずれか一方をフラッシュメモリ４４に接続する。スイッチ５８は、ＦＰＧＡ５６のスイッチ制御部ＳＷＣＮＴ２による制御に基づいて、ＵＳＢコントローラ４３、５３のいずれか一方をフラッシュメモリ５４に接続する。すなわち、スイッチ４８により、ＭＰＵ４２、５２を１ポートタイプのフラッシュメモリ４４に接続することができ、スイッチ５８により、ＭＰＵ４２、５２を１ポートタイプのフラッシュメモリ５４に接続することができる。そして、フラッシュメモリ４４、５４の各々を、ＭＰＵ４２、５２の両方からアクセスすることができる。換言すれば、ＭＰＵ４２は、スイッチ５８を介して他の制御ボード５０のフラッシュメモリ５４に直接アクセスすることができ、ＭＰＵ５２は、スイッチ４８を介して他の制御ボード４０のフラッシュメモリ４４に直接アクセスすることができる。
【００４９】
ＭＰＵ４２、５２は、ＬＡＮ（Local Area Network）等の通信線ＣＬ１を介して互いに接続される。ＭＰＵ４２は、ＦＰＧＡ４６を介して通信線ＣＬ２に接続され、ＭＰＵ５２は、ＦＰＧＡ５６を介して通信線ＣＬ２に接続される。通信線ＣＬ２は、システムボード１１とＦＰＧＡ４６、５６とを相互に接続する。
【００５０】
なお、フラッシュメモリ４４、５４がＵＳＢインタフェース以外の入出力インタフェースを有する場合、ＭＰＵ４２、５２は、フラッシュメモリ４４、５４が有する入出力インタフェースに適合するコントローラを有する。
【００５１】
図５は、図４に示す情報処理装置１１０の動作の一例を示す。すなわち、図５は、情報処理装置１１０の制御方法の一例を示す。図５は、制御ボード４０が運用系として動作し、制御ボード５０が待機系として動作している状態で、待機系の制御ボード５０がハングアップした場合の動作を示す。図２と同様の動作については、詳細な説明は省略する。
【００５２】
図５の初期状態において、ＭＰＵ４２は、スイッチ４８を介して接続されたフラッシュメモリ４４に保持された制御プログラムＰＧＭ１および監視プログラムＰＧＭ２を実行する。ＭＰＵ５２は、スイッチ５８を介して接続されたフラッシュメモリ５４に保持された監視プログラムＰＧＭ２を実行する（図５（ａ）、（ｂ））。ＭＰＵ４２、５２は、図２と同様に、互いに監視する動作を実行し、ＭＰＵ４２は、ＭＰＵ５２のハングアップを検出する（図５（ｃ））。ハングアップの原因は、フラッシュメモリ５４に誤った情報が書き込まれたことにより、監視プログラムＰＧＭ２を正常に実行できなくなったこととする。
【００５３】
ＭＰＵ４２は、ＦＰＧＡ４６および通信線ＣＬ２を介して、ＭＰＵ５２をリセットする指示をＦＰＧＡ５６に発行する（図５（ｄ））。ＦＰＧＡ５６は、指示に基づいて、ＭＰＵ５２をリセットし、リセット状態を維持する。ＭＰＵ５２のリセット状態は、ＭＰＵ４２によりＭＰＵ５２のリセットが解除されるまで維持される。また、ＭＰＵ４２は、ＦＰＧＡ４６および通信線ＣＬ２を介して、ＦＰＧＡ５６にスイッチ５８の切替指示を発行する（図５（ｅ））。ＦＰＧＡ５６は、切替指示に基づいて、スイッチ５８を制御し、ＭＰＵ５２とフラッシュメモリ５４との接続を解除させ、フラッシュメモリ５４をＭＰＵ４２に接続させる。
【００５４】
ＭＰＵ４２は、スイッチ５８を介して接続されたフラッシュメモリ５４をマウントした後、図２と同様に、フラッシュメモリ５４に保持されたファイルの診断を実行し、壊れたファイルを修復する（図５（ｆ））。例えば、ファイルの診断とファイルの修復とは、独立ではなく並行して実行される。ＭＰＵ４２は、診断によりプログラムファイルの破壊を検出した場合、フラッシュメモリ４４が保持するプログラムファイルをフラッシュメモリ５４に書き込む。ＭＰＵ４２は、診断によりデータファイルの破壊を検出した場合、フラッシュメモリ４４が保持するデータファイルをフラッシュメモリ５４に書き込む。ファイルの診断と修復の例は、図８に示される。
【００５５】
この後、ＭＰＵ４２は、ＦＰＧＡ４６および通信線ＣＬ２を介して、ＦＰＧＡ５６にスイッチ５８の切替指示を発行する（図５（ｇ））。ＦＰＧＡ５６は、切替指示に基づいて、スイッチ５８を制御し、ＭＰＵ４２とフラッシュメモリ５４との接続を解除し、フラッシュメモリ５４をＭＰＵ５２に接続する。次に、ＭＰＵ４２は、ＦＰＧＡ４６および通信線ＣＬ２を介して、ＭＰＵ５２のリセットを解除する指示をＦＰＧＡ５６に発行する（図５（ｈ））。ＦＰＧＡ５６は、指示に基づいて、ＭＰＵ５２のリセットを解除する。
【００５６】
リセットの解除により、ＭＰＵ５２は、再起動され、フラッシュメモリ５４から監視プログラムＰＧＭ２をＳＤＲＡＭ等のメモリに転送する。そして、ＭＰＵ５２は、メモリに転送された監視プログラムＰＧＭ２の実行を再開し、ＭＰＵ４２の動作状態の監視を再開する（図５（ｉ））。
【００５７】
図６は、図４に示す情報処理装置１１０の動作の別の例を示す。すなわち、図６は、情報処理装置１１０の制御方法の別の例を示す。図６は、制御ボード４０が運用系として動作し、制御ボード５０が待機系として動作している状態で、運用系の制御ボード４０がハングアップした場合の動作を示す。図３および図５と同様の動作については、詳細な説明は省略する。
【００５８】
図６では、ＭＰＵ４２、５２は、互いに監視する動作を実行し、ＭＰＵ５２がＭＰＵ４２のハングアップを検出する（図６（ａ））。ハングアップの原因は、フラッシュメモリ４４に誤った情報が書き込まれたことにより、監視プログラムＰＧＭ２を正常に実行できなくなったこととする。
【００５９】
ＭＰＵ５２は、運用系の制御ボード４０が実行していた制御プログラムＰＧＭ１の代わりに、フラッシュメモリ５４に保持された制御プログラムＰＧＭ１の実行を開始し、制御ボード５０を運用系として動作させる（図６（ｂ））。次に、ＭＰＵ５２は、ＦＰＧＡ５６および通信線ＣＬ２を介して、ＭＰＵ４２をリセットする指示をＦＰＧＡ４６に発行する（図６（ｃ））。ＦＰＧＡ４６は、指示に基づいて、ＭＰＵ４２をリセットし、リセット状態を維持する。ＭＰＵ４２のリセット状態は、ＭＰＵ５２によりＭＰＵ４２のリセットが解除されるまで維持される。また、ＭＰＵ５２は、ＦＰＧＡ５６および通信線ＣＬ２を介して、ＦＰＧＡ４６にスイッチ４８の切替指示を発行する（図６（ｄ））。ＦＰＧＡ４６は、切替指示に基づいて、スイッチ４８を制御し、ＭＰＵ４２とフラッシュメモリ４４との接続を解除させ、フラッシュメモリ４４をＭＰＵ５２に接続させる。
【００６０】
ＭＰＵ５２は、スイッチ４８を介してフラッシュメモリ４４をマウントした後、フラッシュメモリ４４に保持されたファイルの診断を実行し、壊れたファイルを修復する（図６（ｅ））。ＭＰＵ５２は、診断によりプログラムファイルの破壊を検出した場合、フラッシュメモリ５４が保持するプログラムファイルをフラッシュメモリ４４に書き込む。ＭＰＵ５２は、診断によりデータファイルの破壊を検出した場合、フラッシュメモリ５４が保持するデータファイルをフラッシュメモリ４４に書き込む。ファイルの診断と修復の例は、図８に示される。
【００６１】
この後、ＭＰＵ５２は、ＦＰＧＡ５６および通信線ＣＬ２を介して、ＦＰＧＡ４６にスイッチ４８の切替指示を発行する（図６（ｆ））。ＦＰＧＡ４６は、切替指示に基づいて、スイッチ４８を制御し、ＭＰＵ５２とフラッシュメモリ４４との接続を解除し、フラッシュメモリ４４をＭＰＵ４２に接続する。そして、ＭＰＵ５２は、ＦＰＧＡ５６および通信線ＣＬ２を介して、ＭＰＵ４２のリセットを解除する指示をＦＰＧＡ４６に発行する（図６（ｇ））。ＦＰＧＡ４６は、指示に基づいて、ＭＰＵ４２のリセットを解除する。リセットの解除により、ＭＰＵ４２は、再起動され、監視プログラムＰＧＭ２の実行を再開する（図６（ｈ））。制御プログラムＰＧＭ１は、制御ボード５０により実行されているため、ＭＰＵ４２は、制御プログラムＰＧＭ１を実行しない。すなわち、制御ボード５０は、待機系として動作する。
【００６２】
図７は、図４に示す情報処理装置１１０の動作のさらなる別の例を示す。すなわち、図７は、情報処理装置１１０の制御方法の別の例を示す。図３および図５と同様の動作については、詳細な説明は省略する。
【００６３】
図７において、ＭＰＵ４２がフラッシュメモリ５４の診断と修復を開始するまでの動作は、図５と同じである。図７では、ＭＰＵ４２は、フラッシュメモリ５４の診断と修復の途中で、フラッシュメモリ５４が修復できないと判定する。すなわち、ＭＰＵ４２は、フラッシュメモリ５４の物理的な故障を検出する。物理的な故障を検出した場合、ＭＰＵ４２は、情報処理装置１１０の外部に接続される表示装置等に、制御ボード５０が故障したことを表示し、制御プログラムＰＧＭ１を実行を継続する。これにより、情報処理装置１１０の管理者は、表示装置に表示された制御ボード５０の故障を示すメッセージ等を見ることで、制御ボード５０の故障を認識することができ、制御ボード５０を交換することができる。なお、図６において、フラッシュメモリ４４の診断と修復の途中で、待機系のＭＰＵ５２がフラッシュメモリ４４を修復できないと判定した場合、ＭＰＵ５２は、表示装置等に、制御ボード４０が故障したことを表示する。
【００６４】
図８は、図５、図６および図７に示すフラッシュメモリの診断と修復の一例を示す。図８に示すフローは、ＭＰＵ４２が、フラッシュメモリ４４に保持された監視プログラムＰＧＭ２を実行することで実現され、あるいは、ＭＰＵ５２が、フラッシュメモリ５４に保持された監視プログラムＰＧＭ２を実行することで実現される。以下では、ＭＰＵ４２がフラッシュメモリ５４に保持された情報の診断と修復を実行する例が説明される。
【００６５】
まず、ステップＳ１０において、ＭＰＵ４２は、フラッシュメモリ５４からＭＢＲ（Master Boot Record）の情報を読み出し、フラッシュメモリ４４に保持されたＭＢＲの情報と比較することで、ＭＢＲを診断する。次に、ステップＳ１２において、ＭＰＵ４２は、ＭＢＲの比較結果が一致しない場合、ＭＢＲに異常があると診断し、処理をステップＳ１４に移行し、ＭＢＲの比較結果が一致する場合、ＭＢＲが正常であると診断し、処理をステップＳ１６に移行する。
【００６６】
ステップＳ１４において、ＭＰＵ４２は、ＭＢＲが保持される記憶領域をフォーマットし、フォーマットした記憶領域にブートストラップローダ等のファームウェアとパーティション情報等のデータを書き込み、処理をステップＳ１６に移行する。ファームウェアとデータの書き込みは、例えば、フラッシュメモリ４４からフラッシュメモリ５４にファームウェアとデータをコピーすることにより実行される。なお、ステップＳ１０、Ｓ１２、Ｓ１４の処理は、プログラムファイルの診断とデータファイルの診断とに含まれる共通の処理である。
【００６７】
ステップＳ１６において、ＭＰＵ４２は、フラッシュメモリ５４に保持されたプログラムファイルのファイルシステムの整合性を、例えば、ファイルシステムの整合性をチェックするためのツールであるｆｓｃｋ（file system check）コマンドを使用して検証する。次に、ステップＳ１８において、ＭＰＵ４２は、プログラムファイルのファイルシステムに異常がある場合、処理をステップＳ２０に移行し、プログラムファイルのファイルシステムが正常である場合、処理をステップＳ２２に移行する。
【００６８】
ステップＳ２０において、ＭＰＵ４２は、プログラムファイルが保持されるフラッシュメモリ５４の記憶領域をフォーマットし、フォーマットした記憶領域に制御プログラムＰＧＭ１および監視プログラムＰＧＭ２等の正常なプログラムファイルを書き込む。この後、処理はステップＳ２２に移行される。プログラムファイルの書き込みは、例えば、フラッシュメモリ４４からフラッシュメモリ５４にプログラムファイルをコピーすることにより実行される。
【００６９】
ステップＳ２２において、ＭＰＵ４２は、フラッシュメモリ５４に保持されたプログラムファイルのチェックサムを診断する。例えば、チェックサムの診断は、プログラムファイルのチェックサムを算出し、算出したチェックサムと、フラッシュメモリ５４に予め保持されたプログラムファイルのチェックサムとを比較することで実行される。次に、ステップＳ２４において、ＭＰＵ４２は、チェックサムに異常がある場合、処理をステップＳ２６に移行し、チェックサムが正常である場合、処理をステップＳ２２に移行する。
【００７０】
ステップＳ２６において、ＭＰＵ４２は、制御プログラムＰＧＭ１および監視プログラムＰＧＭ２等の正常なプログラムファイルを、フラッシュメモリ５４の所定の記憶領域に書き込み、処理をステップＳ２８に移行する。プログラムファイルの書き込みは、例えば、フラッシュメモリ４４からフラッシュメモリ５４にプログラムファイルをコピーすることにより実行される。
【００７１】
ステップＳ２８において、ステップＳ１６と同様に、ＭＰＵ４２は、フラッシュメモリ５４に保持されたデータファイルのファイルシステムの整合性を、例えば、ｆｓｃｋコマンドを使用して検証する。次に、ステップＳ３０において、ＭＰＵ４２は、データファイルのファイルシステムに異常がある場合、処理をステップＳ３２に移行し、データファイルのファイルシステムが正常である場合、処理をステップＳ３４に移行する。
【００７２】
ステップＳ３２において、ＭＰＵ４２は、データファイルが保持されるフラッシュメモリ５４の記憶領域をフォーマットし、フォーマットした記憶領域に、フラッシュメモリ４４が保持するデータファイルをコピーし、処理をステップＳ３４に移行する。
【００７３】
ステップＳ３４において、ＭＰＵ４２は、例えば、データベースの検査ユーティリティであるｄｂ＿ｖｅｒｉｆｙを使用して、フラッシュメモリ５４に保持されたデータファイルを診断する。次に、ステップＳ３６において、ＭＰＵ４２は、データファイルに異常がある場合、処理をステップＳ３８に移行し、データファイルが正常である場合、処理をステップＳ４０に移行する。ステップＳ３８において、ＭＰＵ４２は、正常なデータファイルを、フラッシュメモリ５４の所定の記憶領域に書き込み、処理をステップＳ４０に移行する。データファイルの書き込みは、例えば、フラッシュメモリ４４からフラッシュメモリ５４にデータファイルをコピーすることにより実行される。
【００７４】
ステップＳ４０において、ＭＰＵ４２は、全ての修復が完了した場合、処理を終了し、ＭＢＲ、プログラムファイルおよびデータファイルの少なくともいずれかの修復ができなかった場合、処理をステップＳ４２に移行する。ステップＳ４２において、ＭＰＵ４２は、フラッシュメモリ５４が物理的に故障したと判定し、処理を終了する。なお、ステップＳ４０、Ｓ４２による判定は、ステップＳ１４、Ｓ２０、Ｓ３２、Ｓ３８による修復毎に実行されてもよい。
【００７５】
図９は、図４に示す情報処理装置１１０において、運用系の制御ボードのＭＰＵの動作の一例を示す図である。運用系の制御ボードのＭＰＵは、監視プログラムＰＧＭ２を実行することで、図９に示す動作を実現する。図９に示す動作は、所定の頻度で繰り返し実行される。図９では、制御ボード４０が運用系であり、制御ボード５０が待機系であるとする。
【００７６】
制御ボード４０のＭＰＵ４２は、制御ボード５０のＭＰＵ５２に送信した監視用のパケットに対する応答の有無に基づいて、制御ボード５０の生存監視を実行する。ステップＳ５０において、ＭＰＵ４２は、監視用のパケットに対する応答を所定時間（例えば、５分）受信しない場合、制御ボード５０のハングアップを検出し、処理をステップＳ５２に移行する。ＭＰＵ４２は、監視用のパケットに対する応答を所定時間内に受信した場合、制御ボード５０が正常に動作していると判断し、処理を終了する。
【００７７】
ステップＳ５２において、ＭＰＵ４２は、待機系のＦＰＧＡ５６に待機系のＭＰＵ５２のリセットを指示する。次に、ステップＳ５４において、ＭＰＵ４２は、待機系のフラッシュメモリ５４をＭＰＵ４２に接続するために、待機系のＦＰＧＡ５６に待機系のスイッチ５８の切り替えを指示する。
【００７８】
次に、ステップＳ５６において、ＭＰＵ４２は、待機系のフラッシュメモリ５４に保持されたプログラムファイルの診断を実行する。次に、ステップＳ５８において、ＭＰＵ４２は、プログラムファイルに異常がある場合、処理をステップＳ６０に移行し、プログラムファイルが正常な場合、処理をステップＳ６２に移行する。ステップＳ６０において、ＭＰＵ４２は、待機系のフラッシュメモリ５４に保持されたプログラムファイルを修復する。ステップＳ５６、Ｓ５８、Ｓ６０の処理は、図８に示したステップＳ１０からＳ２６の処理に対応する。
【００７９】
次に、ステップＳ６２において、ＭＰＵ４２は、待機系のフラッシュメモリ５４に保持されたデータファイルの診断を実行する。次に、ステップＳ６４において、ＭＰＵ４２は、データファイルに異常がある場合、処理をステップＳ６６に移行し、データファイルが正常な場合、処理をステップＳ６８に移行する。ステップＳ６４において、ＭＰＵ４２は、待機系のフラッシュメモリ５４に保持されたデータファイルを修復する。ステップＳ６２、Ｓ６４、Ｓ６６の処理は、図８に示したステップＳ１０、Ｓ１２、Ｓ２８からＳ３８の処理に対応する。
【００８０】
次に、ステップＳ６８において、ＭＰＵ４２は、ステップＳ５２からＳ６６による診断および修復において、修復できない異常があった場合、または、他に修復できない異常があった場合、処理をステップＳ７４に移行する。ステップＳ６８において、ＭＰＵ４２は、修復できない異常がない場合、処理をステップＳ７０に移行する。
【００８１】
ステップＳ７０において、ＭＰＵ４２は、待機系のフラッシュメモリ５４を待機系のＭＰＵ５２に接続するために、待機系のＦＰＧＡ５６に待機系のスイッチ５８の切り替えを指示する。次に、ステップＳ７２において、ＭＰＵ４２は、待機系のＦＰＧＡ５６に待機系のＭＰＵ５２のリセットの解除を指示し、処理を終了する。一方、ステップＳ７４において、ＭＰＵ４２は、待機系の制御ボード５０に故障が発生したことを、情報処理装置１１０を管理する管理装置等に通知し、処理を終了する。管理装置等は、ＭＰＵ４２からの通知に基づいて、制御ボード５０の故障の発生を、情報処理装置１１０に接続された表示装置等に表示する。なお、情報処理装置１１０の管理者等は、故障の発生の表示に基づいて、待機系の制御ボード５０を交換するなどの処置を行う。
【００８２】
図１０は、図４に示す情報処理装置において、待機系の制御ボードのＭＰＵの動作の一例を示す。待機系の制御ボードのＭＰＵは、監視プログラムＰＧＭ２を実行することで、図１０に示す動作を実現する。図１０に示す動作は、所定の頻度で繰り返し実行される。図１０では、制御ボード４０が運用系であり、制御ボード５０が待機系であるとする。図９と同様の動作については、詳細な説明は省略する。図１０は、ステップＳ５１を含むことを除き、図９の動作と同様である。但し、図９では監視の対象が待機系であるのに対して、図１０では監視の対象は運用系である。
【００８３】
制御ボード５０のＭＰＵ５２は、制御ボード４０のＭＰＵ４２に送信した監視用のパケットに対する応答の有無に基づいて、制御ボード４０の生存監視を実行する。ＭＰＵ５２は、ステップＳ５０において、監視用のパケットに対する応答を所定時間受信せずに制御ボード４０のハングアップを検出した場合、ステップＳ５２の処理を実行する前に、ステップＳ５１の処理を実行する。
【００８４】
ステップＳ５１において、ＭＰＵ５２は、ハングアップしたＭＰＵ４２に代わって、制御プログラムＰＧＭ１の実行を開始し、処理をステップＳ５２に移行する。すなわち、制御ボード５０は、運用系としての動作を開始する。この後の処理は、図９と同様である。
【００８５】
図１１は、図４に示す情報処理装置１１０において、ＦＰＧＡの動作の一例を示す図である。図１１に示す動作は、所定の頻度で繰り返し実行される。図１１に示す動作は、制御ボード４０のＦＰＧＡ４６および制御ボード５０のＦＰＧＡ５６に共通の動作であるため、以下では、ＦＰＧＡ４６の動作が説明される。
【００８６】
まず、ステップＳ８０において、ＦＰＧＡ４６は、ＦＰＧＡ５６を介してＭＰＵ５２からＭＰＵ４２のリセットの指示を受信した場合、処理をステップＳ８２に移行し、ＭＰＵ４２のリセットの指示を受信しない場合、処理をステップＳ８４に移行する。ステップＳ８２において、ＦＰＧＡ４６は、ＭＰＵ４２をリセットし、リセット状態を維持し、処理を終了する。
【００８７】
ステップＳ８４において、ＦＰＧＡ４６は、フラッシュメモリ４４をＭＰＵ５２（他ＭＰＵ）に接続する指示を、ＦＰＧＡ５６を介してＭＰＵ５２から受信した場合、処理をステップＳ８６に移行する。ＦＰＧＡ４６は、フラッシュメモリ４４をＭＰＵ５２に接続する指示を受信しない場合、処理をステップＳ８８に移行する。ステップＳ８６において、ＦＰＧＡ４６は、ＭＰＵ４２とフラッシュメモリ４４との接続を解除し、フラッシュメモリ４４をＭＰＵ５２（他ＭＰＵ）に接続し、処理を終了する。
【００８８】
ステップＳ８８において、ＦＰＧＡ４６は、フラッシュメモリ４４をＭＰＵ４２（自ＭＰＵ）に接続する指示を、ＦＰＧＡ５６を介してＭＰＵ５２から受信した場合、処理をステップＳ９０に移行する。ＦＰＧＡ４６は、フラッシュメモリ４４をＭＰＵ４２に接続する指示を受信しない場合、処理をステップＳ９２に移行する。ステップＳ９０において、ＦＰＧＡ４６は、ＭＰＵ５２とフラッシュメモリ４４との接続を解除し、フラッシュメモリ４４をＭＰＵ４２（自ＭＰＵ）に接続し、処理を終了する。
【００８９】
ステップＳ９２において、ＦＰＧＡ４６は、ＦＰＧＡ５６を介してＭＰＵ５２からＭＰＵ４２のリセットの解除の指示を受信した場合、処理をステップＳ９４に移行し、ＭＰＵ４２のリセットの解除の指示を受信しない場合、処理を終了する。ステップＳ９４において、ＦＰＧＡ４６は、ＭＰＵ４２のリセットを解除し、処理を終了する。
【００９０】
以上、図４から図１１に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、制御ボード４０、５０の一方が停止した場合、制御ボード４０、５０の他方により、制御ボード４０、５０の一方のフラッシュメモリ（４４または５４）の診断および修復を実行することができる。また、フラッシュメモリ４４、５４が保持する情報は、互いに同期しているため、フラッシュメモリ４４、５４の一方からフラッシュメモリ４４、５４の他方に情報をコピーすることで、フラッシュメモリ４４、５４の他方に保持された情報を修復することができる。
【００９１】
さらに、図４から図１１に示す実施形態では、スイッチ４８、５８の切り替えにより、フラッシュメモリ４４、５４の各々を、ＭＰＵ４２、５２の両方から直接アクセスすることができる。フラッシュメモリ４４、５４に保持された情報を修復できない場合、情報処理装置１１０に接続される表示装置等を介して、情報処理装置１１０の管理者にフラッシュメモリ４４、５４の故障を通知することで、管理者に制御ボード５０の交換を促すことができる。
【００９２】
図１２は、情報処理装置、制御装置および情報処理装置の制御方法の別の実施形態を示す。図１から図１１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図１２に示す情報処理装置１２０は、例えば、サーバであり、システムボード１１と、システムボード１１を制御する制御ボード６０、７０とを有する。制御ボード６０、７０は、システムボード１１を制御する制御装置の一例である。
【００９３】
制御ボード６０、７０は、互いに同じ構成を有しており、制御ボード６０、７０の一方が運用系の制御ボードとして動作し、制御ボード６０、７０の他方が待機系の制御ボードとして機能する。以下では、制御ボード６０が運用系として動作し、制御ボード７０が待機系として動作する例が説明される。
【００９４】
制御ボード６０は、図４に示す制御ボード４０と同様に、ＭＰＵ６２と、フラッシュメモリ６４およびＦＰＧＡ６６を有する。制御ボード７０は、図４に示す制御ボード５０と同様に、ＭＰＵ７２、フラッシュメモリ７４およびＦＰＧＡ７６を有する。ＭＰＵ６２、７２は、ＬＡＮ等の通信線ＣＬ１を介して互いに接続され、ＦＰＧＡ６６、７６とシステムボード１１とは、通信線ＣＬ２を介して相互に接続される。ＭＰＵ６２は、第１の演算処理部の一例であり、ＭＰＵ７２は、第２の演算処理部の一例である。フラッシュメモリ６４は、第１の記憶部の一例であり、フラッシュメモリ７４は、第２の記憶部の一例である。ＦＰＧＡ６６は、第１の制御部の一例であり、ＦＰＧＡ７６は、第２の制御部の一例である。
【００９５】
フラッシュメモリ６４、７４は、２つのアクセス要求をそれぞれ独立に受信可能な２ポートタイプである。フラッシュメモリ６４、７４の各々は、図４に示すフラッシュメモリ４４、５４と同様に、制御プログラムＰＧＭ１を保持するプログラム領域と、監視プログラムＰＧＭ２を保持するプログラム領域と、様々なデータＤＴを保持するデータ領域とを有する。
【００９６】
ＭＰＵ６２は、フラッシュメモリ６４のアクセスを制御するメモリコントローラＭＣＮＴを含み、メモリコントローラＭＣＮＴは、フラッシュメモリ６４の入出力ポートのいずれかに接続される。ＭＰＵ７２は、フラッシュメモリ７４のアクセスを制御するメモリコントローラＭＣＮＴを含み、メモリコントローラＭＣＮＴは、フラッシュメモリ７４の入出力ポートのいずれかに接続される。
【００９７】
ＦＰＧＡ６６は、ＭＰＵ６２のリセットを制御するリセット制御部ＲＳＴＣＮＴ１と、ＤＭＡＣ１（Direct Memory Access Controller）と、フラッシュメモリ６４のアクセスを制御するメモリコントローラＭＣＮＴ１とを含む。メモリコントローラＭＣＮＴ１は、フラッシュメモリ６４の入出力ポートのいずれかに接続される。ＦＰＧＡ７６は、ＭＰＵ７２のリセットを制御するリセット制御部ＲＳＴＣＮＴ２と、ＤＭＡＣ２と、フラッシュメモリ７４のアクセスを制御するメモリコントローラＭＣＮＴ２とを含む。メモリコントローラＭＣＮＴ２は、フラッシュメモリ７４の入出力ポートのいずれかに接続される。メモリコントローラＭＣＮＴ１は、第１のアクセス制御部の一例であり、メモリコントローラＭＣＮＴ２は、第２のアクセス制御部の一例である。
【００９８】
ＤＭＡＣ１は、ＭＰＵ６２から受信するメモリアクセス要求パケットおよびデータ等をＦＰＧＡ７６のメモリコントローラＭＣＮＴ２に転送し、メモリコントローラＭＣＮＴ２から転送されるメモリアクセス要求パケットに対応する応答等をＭＰＵ６２に転送する。メモリコントローラＭＣＮＴ２は、ＤＭＡＣ１を介してＭＰＵ６２からメモリアクセス要求パケット（読み出し要求）を受信した場合、フラッシュメモリ７４からデータを読み出し、読み出したデータを含む応答をＤＭＡＣ１を介してＭＰＵ６２に出力する。メモリコントローラＭＣＮＴ２は、ＤＭＡＣ１を介してＭＰＵ６２からメモリアクセス要求パケット（書き込み要求）を受信した場合、メモリアクセス要求パケットに含まれる書き込みデータをフラッシュメモリ７４に書き込む。
【００９９】
ＤＭＡＣ２は、ＭＰＵ７２から受信するメモリアクセス要求パケットおよびデータ等をＦＰＧＡ６６のメモリコントローラＭＣＮＴ１に転送し、メモリコントローラＭＣＮＴ１から転送されるメモリアクセス要求パケットに対応する応答等をＭＰＵ７２に転送する。メモリコントローラＭＣＮＴ１は、ＤＭＡＣ２を介してＭＰＵ７２からメモリアクセス要求パケット（読み出し要求）を受信した場合、フラッシュメモリ６４からデータを読み出し、読み出したデータを含む応答をＤＭＡＣ２を介してＭＰＵ７２に出力する。メモリコントローラＭＣＮＴ１は、ＤＭＡＣ２を介してＭＰＵ７２からメモリアクセス要求パケット（書き込み要求）を受信した場合、メモリアクセス要求パケットに含まれる書き込みデータをフラッシュメモリ６４に書き込む。
【０１００】
図１２に示す情報処理装置１２０の動作は、スイッチ４８、５８を切り替える制御がないことを除き、図５から図７に示した動作と同様である。すなわち、図５から図７に示した動作から、スイッチ４８、５８を切り替える制御を省き、ＭＰＵ、フラッシュメモリおよびＦＰＧＡの符号を図１２に合わせることで、情報処理装置１２０の動作が実現される。
【０１０１】
なお、上述したように、ＭＰＵ６２による他の制御ボード７０のフラッシュメモリ７４に対するアクセスは、ＤＭＡＣ１およびメモリコントローラＭＣＮＴ２を介して実行される。ＭＰＵ７２による他の制御ボード６０のフラッシュメモリ６４に対するアクセスは、ＤＭＡＣ２およびメモリコントローラＭＣＮＴ１を介して実行される。ＦＰＧＡ６６にＤＭＡＣ１およびメモリコントローラＭＣＮＴ１を設け、ＦＰＧＡ７６にＤＭＡＣ２およびメモリコントローラＭＣＮＴ２を設けることで、フラッシュメモリ６４、７４の各々を、ＭＰＵ６２、７２の両方からアクセスすることができる。
【０１０２】
図１３は、図１２に示す情報処理装置１２０において、運用系の制御ボードのＭＰＵの動作の一例を示す。運用系の制御ボードのＭＰＵは、監視プログラムＰＧＭ２を実行することで、図１３に示す動作を実現する。図１３では、制御ボード６０が運用系であり、制御ボード７０が待機系であるとする。図９と同じ動作については、詳細な説明は省略する。
【０１０３】
図１３に示す動作は、図９に示したステップＳ５４、Ｓ７０の動作がないことを除き、図９に示した動作と同様である。すなわち、ステップＳ５２の処理の後、ステップＳ５６の処理が実行され、ステップＳ６８において異常がないと判定された場合、ステップＳ７２の処理が実行される。フラッシュメモリ７４に保持されたプログラムファイルおよびデータファイルの診断と修復は、ＭＰＵ６２がＤＭＣＡ１およびメモリコントローラＭＣＮＴ２を介してフラッシュメモリ７４にアクセスすることで実行される。
【０１０４】
なお、２ポートタイプのフラッシュメモリ７４では、メモリコントローラＭＣＮＴ２がフラッシュメモリ７４をアクセスしている間に、ＭＰＵ７２がフラッシュメモリ７４にアクセスすることが可能である。ハングアップしたＭＰＵ７２によるフラッシュメモリ７４への意図しないアクセスが実行された場合、ＭＰＵ６２によるフラッシュメモリ７４の診断と修復とが正しく実行されないおそれがある。そこで、ステップＳ５２でＭＰＵ７２のリセットを指示されたＦＰＧＡ７６は、ＭＰＵ６２によりフラッシュメモリ７４の診断と修復とが実行されている期間、ＭＰＵ７２のリセット状態を維持する。換言すれば、リセット制御部ＲＳＴＣＮＴ２は、ＭＰＵ６２がフラッシュメモリ７４にアクセスする期間、ＭＰＵ６２からの指示に基づいて、ＭＰＵ７２をリセット状態に設定する。これにより、ハングアップしたＭＰＵ７２によるフラッシュメモリ７４への意図しないアクセスを抑止することができ、フラッシュメモリ７４の診断と修復とが正しく実行されないことを抑止することができる。
【０１０５】
図１４は、図１２に示す情報処理装置１２０において、待機系の制御ボードのＭＰＵの動作の一例を示す。待機系の制御ボードのＭＰＵは、監視プログラムＰＧＭ２を実行することで、図１４に示す動作を実現する。図１４では、制御ボード６０が運用系であり、制御ボード７０が待機系であるとする。図１０および図１３と同じ動作については、詳細な説明は省略する。
【０１０６】
図１４に示す動作は、図１０に示したステップＳ５４、Ｓ７０の動作がないことを除き、図１０および図１３に示した動作と同様である。すなわち、図１３と同様に、ステップＳ５２の処理の後、ステップＳ５６の処理が実行され、ステップＳ６８において異常がないと判定された場合、ステップＳ７２の処理が実行される。また、ステップＳ５２では、ＭＰＵ６２のリセットを指示されたＦＰＧＡ６６が、ＭＰＵ７２によりフラッシュメモリ６４の診断と修復とが実行されている期間、ＭＰＵ６２のリセット状態を維持する。これにより、ハングアップしたＭＰＵ６２によるフラッシュメモリ６４への意図しないアクセスを抑止することができ、ＭＰＵ７２によるフラッシュメモリ６４の診断と修復とが正しく実行されないことを抑止することができる。
【０１０７】
以上、図１２から図１４に示す実施形態においても、図１から図１１に示す実施形態と同様の効果を得ることができる。さらに、図１２から図１４に示す実施形態では、ＦＰＧＡ６６にＤＭＡＣ１およびメモリコントローラＭＣＮＴ１を設け、ＦＰＧＡ７６にＤＭＡＣ２およびメモリコントローラＭＣＮＴ２を設ける。これにより、フラッシュメモリ６４、７４の各々を、ＭＰＵ６２、７２の両方からアクセスすることができる。また、例えば、ＭＰＵ６２がフラッシュメモリ７４の診断と修復を実行する場合、ハングアップしたＭＰＵ７２のリセット状態をＦＰＧＡ７６により維持する。これにより、２ポートタイプのフラッシュメモリ７４が制御ボード７０に設けられる場合にも、ハングアップしたＭＰＵ７２によるフラッシュメモリ７４への意図しないアクセスを抑止することができる。この結果、ＭＰＵ６２によるフラッシュメモリ７４の診断と修復とが正しく実行されないことを抑止することができる。
【０１０８】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１０９】
１０…情報処理部；１１…システムボード；１２…プロセッサ；２０…制御装置；２２…演算処理部；２４…記憶部；２６…制御部；３０…制御装置；３２…演算処理部；３４…記憶部；３６…制御部；４０…制御ボード；４２…ＭＰＵ；４３…ＵＳＢコントローラ；４４…フラッシュメモリ；４６…ＦＰＧＡ；４８…スイッチ；５０…制御ボード；５２…ＭＰＵ；５３…ＵＳＢコントローラ；５４…フラッシュメモリ；５６…ＦＰＧＡ；５８…スイッチ；６０…制御ボード；６２…ＭＰＵ；６４…フラッシュメモリ；６６…ＦＰＧＡ；７０…制御ボード；７２…ＭＰＵ；７４…フラッシュメモリ；７６…ＦＰＧＡ；１００、１１０、１２０…情報処理装置；ＣＬ１、ＣＬ２…通信線；ＤＴ…データ；ＰＧＭ１…制御プログラム；ＰＧＭ２…監視プログラム；ＲＳＴＣＮＴ１、ＲＳＴＣＮＴ２…リセット制御部；ＳＷＣＮＴ１、ＳＷＣＮＴ２…スイッチ制御部
【図１】
2019016218.tif 000003
【図２】
2019016218.tif 000004
【図３】
2019016218.tif 000005
【図４】
2019016218.tif 000006
【図５】
2019016218.tif 000007
【図６】
2019016218.tif 000008
【図７】
2019016218.tif 000009
【図８】
2019016218.tif 000010
【図９】
2019016218.tif 000011
【図１０】
2019016218.tif 000012
【図１１】
2019016218.tif 000013
【図１２】
2019016218.tif 000014
【図１３】
2019016218.tif 000015
【図１４】
2019016218.tif 000016