(57)【要約】【課題】信頼性の向上を実現可能な情報処理システムを提供する。【解決手段】外部からの共通の入力に応じて同一の処理を実行し、第１〜第３処理結果をそれぞれ出力する処理ブロック３１０Ａ〜３１０Ｃと、各処理ブロックにそれぞれ対応する診断ブロック３００Ａ〜３００Ｃと、外部送受信ブロック１０αとを備える。処理ブロック３１０Ａ〜３１０Ｃは、再構成可能回路部３１９Ａ〜３１９Ｃを含む。外部送受信ブロックおよび診断ブロックのそれぞれは、第１〜第３処理結果を多数決判定する多数決判定部１４ａα，１４ｂ〜１４ｄと、多数決判定結果にエラーが有った場合に診断を行う障害診断部２３ａα，２３ｂ〜２３ｄとを有する。ここで、障害診断部のそれぞれは、エラーを反映して生成した障害診断情報を他の障害診断部との間で第一通信部を介して共有する処理を行う。【選択図】図１Ａ
2014178793.tif 000002
【特許請求の範囲】
【請求項１】
外部からの共通の入力に応じて同一の処理を実行し、第１〜第３処理結果をそれぞれ出力する第１〜第３処理ブロックと、
前記第１〜第３処理ブロックにそれぞれ対応して設けられる第１〜第３診断ブロックと、
第４診断ブロックと、を備え、
前記第Ｎ処理ブロック（Ｎ＝１，２，３）は、
回路の構成情報を記憶する第Ｎ構成情報記憶部と、
前記回路の構成情報に応じた回路を構築し、当該回路の動作によって前記第Ｎ処理結果を出力する第Ｎ再構成可能回路部と、を有し、
前記第Ｍ診断ブロック（Ｍ＝１，２，３，４）は、
前記第１〜第３処理結果が入力され、前記第１〜第３処理結果の中のいずれかにエラーが有る場合には、当該エラーが有る処理結果を特定する第Ｍエラー判定結果を出力する第Ｍ多数決判定部と、
前記第Ｍエラー判定結果が入力され、障害を診断する第Ｍ障害診断部と、
他の診断ブロックとの間で通信を行うための第Ｍ通信部と、を有し、
前記第Ｍ障害診断部は、前記第Ｍエラー判定結果を反映した第Ｍ診断情報を前記第Ｍ通信部を介して他の障害診断部に送信し、前記他の障害診断部からの診断情報を前記第Ｍ通信部を介してそれぞれ受信する第Ｍ共有部を有する、情報処理システム。
【請求項２】
請求項１記載の情報処理システムにおいて、
前記第Ｍ障害診断部は、さらに、前記第Ｍ共有部で共有した前記第１〜第４診断情報に基づいて、前記第１〜第３処理ブロックの中のいずれかに障害が有るか否かを判定し、前記第１〜第３処理ブロックの中のいずれかに障害が有る場合には、前記第１〜第３処理ブロックの中から定めた回復先および回復元の処理ブロックの情報を含む第Ｍ回復プランを生成する第Ｍ回復プラン判定部を有し、
前記第Ｍ診断ブロックは、さらに、前記第Ｍ回復プランに基づいて、前記回復先の処理ブロックの自動回復処理を実行する第Ｍ回復プラン実行部を有する、情報処理システム。
【請求項３】
請求項２記載の情報処理システムにおいて、
前記第Ｍ回復プラン実行部が前記回復先の処理ブロックの自動回復処理を実行している期間、前記回復先の処理ブロック以外の処理ブロックは、前記外部からの共通の入力に応じて同一の処理を実行する、情報処理システム。
【請求項４】
請求項３記載の情報処理システムにおいて、
前記第Ｍ障害診断部は、さらに、前記第Ｍ回復プラン判定部によって生成された前記第Ｍ回復プランを、前記第Ｍ通信部を介して、ビザンチン合意プロトコルを用いて他の回復プラン判定部との間で交換し、当該交換した結果に基づいて確定した第Ｍ回復プランを前記第Ｍ回復プラン実行部に出力する第Ｍ回復プラン合意部を有する、情報処理システム。
【請求項５】
請求項４記載の情報処理システムにおいて、
前記第Ｎ処理ブロックは、さらに、前記第Ｎ再構成可能回路部の処理の実行過程で得られるステートを保持する第Ｎステート記憶部を有し、
前記第Ｍ回復プラン実行部は、前記回復先の処理ブロックの自動回復処理を実行する際に、前記回復先の処理ブロック内の構成情報記憶部の記憶情報に加えて、ステート記憶部の記憶情報を回復させる、情報処理システム。
【請求項６】
請求項５記載の情報処理システムにおいて、
前記第Ｎステート記憶部は、第１時点におけるステートが保持される第Ｎステート退避部を有し、
前記第４回復プラン実行部は、前記第１時点の後に外部から入力されるデータを順次保持するデータ保持部を有し、
前記第１〜第３回復プラン実行部のそれぞれは、
前記回復先の処理ブロック内の構成情報記憶部の記憶情報を回復させる構成回復部と、
前記回復先の処理ブロック内のステート記憶部に対して前記回復元の処理ブロック内のステート退避部で保持されるステートを設定し、前記回復先の処理ブロック内の構成情報記憶部の記憶情報が回復したのちに前記回復先の処理ブロックに向けて前記第４回復プラン実行部内の前記データ保持部で保持されるデータを順次出力するステート回復部と、を有する、情報処理システム。
【請求項７】
請求項４記載の情報処理システムにおいて、
前記第４診断ブロックは、外部との間のインタフェースを担う外部送受信ブロック内に設けられ、
前記第４診断ブロック内の前記第４多数決判定部は、前記第１〜第３処理結果に対して多数決判定を行うことで外部に出力する処理結果を定め、
前記外部送受信ブロックは、通常用とバックアップ用を含めて冗長化されており、
前記通常用と前記バックアップ用の切り替えは、前記第Ｍ共有部で共有した前記第１〜第４診断情報に基づいて行われる、情報処理システム。
【請求項８】
外部からの共通の入力に応じて同一の処理を実行し、第１〜第３処理結果をそれぞれ出力する第１〜第３処理ブロックと、
前記第１〜第３処理ブロックにそれぞれ対応して設けられる第１〜第３診断ブロックと、
第４診断ブロックと、を備え、
前記第Ｎ処理ブロック（Ｎ＝１，２，３）は、
回路の構成情報を記憶する第Ｎ構成情報記憶部と、
前記回路の構成情報に応じた回路を構築し、当該回路の動作によって前記第Ｎ処理結果を出力する第Ｎ再構成可能回路部と、
前記第Ｎ再構成可能回路部の処理の実行過程で得られるステートを保持する第Ｎステート記憶部と、を有し、
前記第Ｍ診断ブロック（Ｍ＝１，２，３，４）は、
前記第１〜第３処理結果が入力され、前記第１〜第３処理結果の中のいずれかにエラーが有る場合には、当該エラーが有る処理結果を特定する第Ｍエラー判定結果を出力する第Ｍ多数決判定部と、
前記第Ｍエラー判定結果が入力され、障害を診断し、前記第１〜第３処理ブロックの中のいずれかの処理ブロックに障害が有ると診断した場合には、回復先および回復元の処理ブロックの情報を含めた第Ｍ回復プランを生成する第Ｍ障害診断部と、
他の診断ブロックとの間で通信を行うための第Ｍ通信部と、
前記第Ｍ障害診断部で生成された前記第Ｍ回復プランに基づいて、前記回復先の処理ブロックの自動回復処理を実行する第Ｍ回復プラン実行部と、を有し、
前記第Ｍ障害診断部は、
前記第Ｍエラー判定結果を反映した第Ｍ診断情報を前記第Ｍ通信部を介して他の障害診断部に送信し、前記他の障害診断部からの診断情報を前記第Ｍ通信部を介してそれぞれ受信する第Ｍ共有部と、
前記第Ｍ共有部で共有した前記第１〜第４診断情報に基づいて、前記第Ｍ回復プランを定める第Ｍ回復プラン判定部と、を有し、
前記第Ｍ回復プラン実行部は、前記回復先の処理ブロックの自動回復処理を実行する際に、前記回復先の処理ブロック内の構成情報記憶部の記憶情報に加えて、ステート記憶部の記憶情報を回復させる、情報処理システム。
【請求項９】
請求項８記載の情報処理システムにおいて、
前記第Ｎステート記憶部は、第１時点におけるステートが保持される第Ｎステート退避部を有し、
前記第４回復プラン実行部は、前記第１時点の後に外部から入力されるデータを順次保持するデータ保持部を有し、
前記第１〜第３回復プラン実行部のそれぞれは、
前記回復先の処理ブロック内の構成情報記憶部の記憶情報を回復させる構成回復部と、
前記回復先の処理ブロック内のステート記憶部に対して前記回復元の処理ブロック内のステート退避部で保持されるステートを設定し、前記回復先の処理ブロック内の構成情報記憶部の記憶情報が回復したのちに前記回復先の処理ブロックに向けて前記第４回復プラン実行部内の前記データ保持部で保持されるデータを順次出力するステート回復部と、を有する、情報処理システム。
【請求項１０】
請求項９記載の情報処理システムにおいて、
前記第Ｍ障害診断部は、さらに、前記第Ｍ回復プラン判定部によって生成された前記第Ｍ回復プランを、前記第Ｍ通信部を介して、ビザンチン合意プロトコルを用いて他の回復プラン判定部との間で交換し、当該交換した結果に基づいて確定した第Ｍ回復プランを前記第Ｍ回復プラン実行部に出力する第Ｍ回復プラン合意部を有する、情報処理システム。
【請求項１１】
請求項９記載の情報処理システムにおいて、
前記第４診断ブロックは、外部との間のインタフェースを担う外部送受信ブロック内に設けられ、
前記第４診断ブロック内の前記第４多数決判定部は、前記第１〜第３処理結果に対して多数決判定を行うことで外部に出力する処理結果を定め、
前記外部送受信ブロックは、通常用とバックアップ用を含めて冗長化されており、
前記通常用と前記バックアップ用の切り替えは、前記第Ｍ共有部で共有した前記第１〜第４診断情報の内容ならびに一致・不一致に基づいて行われる、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関し、例えば、高信頼性が要求される金融機関向け等の情報処理システムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、ＦＰＧＡ（Field Programmable Gate Array）内において、三重化された処理系統と、その各処理結果の多数決を行う多数決判定論理部と、障害が発生した処理系統を検出し、当該処理系統を正常な処理系統の回路構成情報を用いて再構成する各種回路部とを備えた情報処理装置が示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２１６０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、金融取引分野等では、取引遅延を原因とする損失を削減したいという継続的な需要があり、これまで、様々な方法で低遅延化が行われてきた。近年では、人に変わり、コンピュータによって取引を行うアルゴリズム取引が一般になったことで、低遅延化の需要はコンピュータが動作するマイクロ秒、ナノ秒オーダーにまで進んでいる。従来は、ソフトウェア技術やコンピュータシステムの技術進歩によって低遅延化が行われてきたが、マイクロ秒、ナノ秒オーダーの低遅延化に対しては限界があり、金融取引処理の専用回路による、さらなる低遅延化（低レイテンシ化）が望まれている。
【０００５】
従来、専用回路を用いて低遅延化を行うため、低遅延化対象処理のＡＳＩＣ（Application Specific Integrated Circuit）化が行われてきた。しかし近年では、半導体技術の発展により、ＡＳＩＣに比べ低コストで、ハードウェアの配線や論理を動的に変更可能なＦＰＧＡを用いることが一般的である。ＦＰＧＡは多様なＩ／Ｏ技術に対応しており、一般的なコンピュータネットワークへの接続も可能なため、一般的なコンピュータによって従来行われていた金融処理全てをＦＰＧＡで実現する事も可能である。また、ＦＰＧＡを用いることで、一般的なコンピュータを使用した場合に冗長であった処理を廃し、金融取引処理に最低限必要な処理だけをＦＰＧＡ上に実装する事が可能となり、従来の一般的なコンピュータでは達成できなかった低遅延化が可能になる。
【０００６】
しかし、ＦＰＧＡを用いることで新たな問題が発生する。ＦＰＧＡは回路の構成を自由にプログラミング可能にするため、回路構成情報を書き換え可能なメモリに格納している。この回路構成情報を格納しているメモリはＣＲＡＭ（Configuration RAM）等と呼ばれる。近年の高性能化や高機能化を支えるため、ＣＲＡＭには高速大容量化に向いているＳＲＡＭ（Static Random Access Memory）が使用される場合が多い。そのため、ＣＲＡＭでは、アルファ線や中性子線等の放射線によって、ビット反転が起こる可能性が高い。このビット反転によって発生する一過性の障害はソフトエラーと呼ばれる。ソフトエラーの発生確率は、半導体製造プロセスの微細化により増加している。
【０００７】
このような問題に対処するため、ソフトエラーを検出、訂正する方法を備えたＦＰＧＡも存在する。ただし、このようなＦＰＧＡでは、ソフトエラーの検出に伴いミリ秒オーダーの遅延が発生する恐れがある。したがって、マイクロ秒、ナノ秒オーダーの金融取引処理の中で、このようなＦＰＧＡ内のソフトエラー検出機構を利用して信頼性の向上を図ったとしても、エラーを検出した時点では、既に誤った処理結果がシステム外部のユーザへ渡り、誤った処理結果を用いて次の取引を行う可能性がでてくる。金融取引処理において、誤った処理結果をシステムが提供することは、ユーザに対して多額の損害を与える可能性があるため、このようなＦＰＧＡ内のソフトエラー検出機構をマイクロ秒、ナノ秒オーダーの低遅延化が必要な金融取引処理で活用することは困難となる。
【０００８】
こうした低遅延環境において、エラーをほぼリアルタイムに検出、訂正するため、例えば、特許文献１に示されるような多数決方式を用いることが考えられる。これは三つ以上の同じ処理を行う処理系統を用意し、各系統それぞれで処理した結果を比べ、最も確からしい結果を正常な結果とみなす方法である。一般に、二重障害が起きる確率は非常に小さいため、三重化を行うことで、仮に一系統が障害しても、他の二系統が正しい結果を出力すれば、出力結果の多数決によってエラーを検出・訂正できる。また、エラーの原因がＦＰＧＡのＣＲＡＭ上で起きたソフトエラーである場合、一過性の現象であるため、特許文献１のように、正常な回路構成情報を再びＦＰＧＡのＣＲＡＭに入力すれば回復が可能である。
【０００９】
しかしながら、特許文献１の技術では、多数決によってエラー検出や訂正を行える範囲が部分的となる恐れがある。具体的には、ＦＰＧＡ内の三重化回路のエラー検出や訂正、およびＣＲＡＭの再構成は行えるが、多数決の判定を行う多数決判定論理部や、ＦＰＧＡ本体や、ＦＰＧＡの自動回復を行う装置等が単一障害点を持つエラーを発生すると、そのエラーは特許文献１の技術では検出、訂正が困難となり、ＣＲＡＭの再構成も困難となる。金融取引サービスの性質上、単一障害の発生後もサービスを継続する可用性が必須である。可用性を実現するためには、単一障害の発生後もエラー検出を行え、最悪でもエラーを外部へ漏らさずに停止する必要がある。
【００１０】
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、信頼性の向上を実現可能な情報処理システムを提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１２】
本実施の形態による情報処理システムは、外部からの共通の入力に応じて同一の処理を実行し、第１〜第３処理結果をそれぞれ出力する第１〜第３処理ブロックと、第１〜第３処理ブロックにそれぞれ対応して設けられる第１〜第３診断ブロックと、第４診断ブロックとを備える。第Ｎ処理ブロック（Ｎ＝１，２，３）は、回路の構成情報を記憶する第Ｎ構成情報記憶部と、当該回路の構成情報に応じた回路を構築し、当該回路の動作によって第Ｎ処理結果を出力する第Ｎ再構成可能回路部とを有する。第Ｍ診断ブロック（Ｍ＝１，２，３，４）は、第１〜第３処理結果が入力され、その中のいずれかにエラーが有る場合には当該エラーが有る処理結果を特定する第Ｍエラー判定結果を出力する第Ｍ多数決判定部と、第Ｍエラー判定結果が入力され障害を診断する第Ｍ障害診断部と、他の診断ブロックとの間で通信を行うための第Ｍ通信部とを有する。ここで、第Ｍ障害診断部は、第Ｍエラー判定結果を反映した第Ｍ診断情報を第Ｍ通信部を介して他の障害診断部に送信し、他の障害診断部からの診断情報を第Ｍ通信部を介してそれぞれ受信する第Ｍ共有部を有する。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、情報処理システムにおいて、信頼性の向上が実現可能になる。
【図面の簡単な説明】
【００１４】
【図１Ａ】本発明の実施の形態１における情報処理システムの全体構成例を示すブロック図である。
【図１Ｂ】図１Ａにおける外部送受信ブロックのより詳細な構成例を示すブロック図である。
【図１Ｃ】図１Ａにおける診断ブロックのより詳細な構成例を示すブロック図である。
【図２】図１Ａ〜図１Ｃの情報処理システムにおいて、その全体の処理内容の一例を示すフローチャートである。
【図３】図２において、その障害回復処理の概略的な処理内容の一例を示すフローチャートである。
【図４】図１Ａ〜図１Ｃの情報処理システムにおいて、その構成不良箇所診断部の処理内容の一例を示すフローチャートである。
【図５】図１Ａ〜図１Ｃの情報処理システムにおいて、そのシステム障害診断部の処理内容の一例を示すフローチャートである。
【図６】図１Ａ〜図１Ｃの情報処理システムにおいて、その障害診断情報共有部の処理内容の一例を示すフローチャートである。
【図７】図１Ａ〜図１Ｃの情報処理システムにおいて、その回復プラン判定部および回復プラン合意部の処理内容の一例を示すフローチャートである。
【図８】図７のフローチャートにおいて、回復プランを判定する際の判定基準の一例を示す表である。
【図９】図１Ａ〜図１Ｃの情報処理システムにおいて、その外部送受信ブロック内の回復プラン実行部の詳細な構成例を示すブロック図である。
【図１０】図１Ａ〜図１Ｃの情報処理システムにおいて、その診断ブロック内の回復プラン実行部の詳細な構成例を示すブロック図である。
【図１１】図１０の回復プラン実行部において、当該回復プラン実行部が回復先の処理系統に属する場合の処理内容の一例を示すフローチャートである。
【図１２】図１０の回復プラン実行部において、当該回復プラン実行部が回復元の処理系統に属する場合の処理内容の一例を示すフローチャートである。
【図１３】図１０の回復プラン実行部において、当該回復プラン実行部が回復先および回復元の処理系統のいずれにも属しない場合の処理内容の一例を示すフローチャートである。
【図１４】図９の回復プラン実行部の処理内容の一例を示すフローチャートである。
【図１５】図１Ａ〜図１Ｃの情報処理システムにおいて、その回復プラン実行部が行う手動回復処理の処理内容の一例を示すフローチャートである。
【図１６】図１Ａ〜図１Ｃの情報処理システムにおいて、そのモード情報に格納される各モードの一例およびその関係の一例を表す状態遷移図である。
【図１７】図１Ａ〜図１Ｃの情報処理システムにおいて、そのシステム構成情報に格納される内容の一例を示す図である。
【図１８】図１Ａ〜図１Ｃの情報処理システムにおいて、その障害診断情報共有部が行う図６とは異なる処理内容の一例を示すフローチャートである。
【図１９】図６のフローチャートにおいて、障害診断情報の交換方法の一例を示すシーケンス図である。
【図２０】図７のフローチャートにおいて、回復プランのビザンチン合意プロトコルに基づく交換方法の一例を示すシーケンス図である。
【図２１】図７のフローチャートにおいて、回復プランのビザンチン合意プロトコルに基づく交換方法の一例を示すシーケンス図である。
【図２２】本発明の実施の形態２による情報処理システムにおいて、その処理ブロックの構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１６】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１７】
《実施の形態の概要》
本実施の形態では、情報処理システム内に、単一障害点を少なくとも１つ含む場合を想定する。例えば、特許文献１と同様に、再構成可能回路部（代表的にはＦＰＧＡ）内に、三重化された処理系統と、その各処理結果を多数決判定する多数決判定部とを設けると、処理系統ではなく、多数決判定部に単一障害点が含まれる場合に、エラーの検出・訂正が困難となる。
【００１８】
また、システムの信頼性を高めるためには、再構成可能回路部によって構成される処理系統に障害が生じた際に、それを検出し、当該障害が発生した処理系統を自動回復するための診断ブロックを設けることが望ましい。ただし、多数決判定部の場合と同様に、処理系統ではなく、診断ブロックに単一障害点が含まれる場合がある。そこで、本実施の形態では、処理系統のみならず、多数決判定部および診断ブロックを少なくとも三重化させた情報処理システムを構築する。この際には、少なくとも三重化させる形態として様々な選択肢が考えられるため、どのような形態を用いるのが適切かを考慮する必要がある。
【００１９】
さらに、別の要求事項として、例えば金融取引処理等では、入力データと前回の処理結果等の内部状態（ステート）を持ち、当該内部状態によって次の処理結果が変化する処理（以降、ステートフル処理と呼ぶ）が用いられる。例えば、特許文献１の技術では、内部状態を持たない（すなわちステートレスな）処理系統を想定しているため、ある処理系統に障害が生じた際に、その処理系統（すなわち再構成可能回路部）の回路構成を再構成できたとしても、内部状態（ステート）を回復することは困難となる。そこで、この内部状態（ステート）の回復方法も含めて、前述した情報処理システムの適切な形態を考慮する必要がある。
【００２０】
このようなことを鑑みて、本実施の形態よる情報処理システムは、例えば、図１Ａ〜図１Ｃ、図９および図１０を参照して、代表的には、以下のような構成および動作を備える。
【００２１】
（１）本実施の形態による情報処理システムは、外部からの共通の入力に応じて同一の処理を実行し、第１〜第３処理結果をそれぞれ出力する第１〜第３処理ブロック（３１０Ａ〜３１０Ｃ）と、第１〜第３処理ブロックにそれぞれ対応して設けられる第１〜第３診断ブロック（３００Ａ〜３００Ｃ）と、第４診断ブロック（１０α）とを有する。第Ｎ処理ブロック（Ｎ＝１，２，３）は、回路の構成情報を記憶する第Ｎ構成情報記憶部（３１８Ａ〜３１８Ｃ）と、当該回路の構成情報に応じた回路を構築し、当該回路の動作によって第Ｎ処理結果を出力する第Ｎ再構成可能回路部（３１９Ａ〜３１９Ｃ）とを有する。第Ｍ診断ブロック（Ｍ＝１，２，３，４）は、第Ｍ多数決判定部（１４ｂ〜１４ｄ，１４ａα）と、第Ｍ共有部（１８ｂ〜１８ｄ，１８ａα）を含む第Ｍ障害診断部（２３ｂ〜２３ｄ，２３ａα）と、他の診断ブロックとの間で通信を行うための第Ｍ通信部（３０１Ａ〜３０１Ｃ，１３α）とを有する。
【００２２】
例えば、第１〜第３処理ブロックのいずれかに単一障害が生じた場合、３個の処理ブロック内の再構成可能回路部から出力される第１〜第３処理結果の中の一つが他と異なる。第Ｍ診断ブロック内の第Ｍ多数決判定部は、第１〜第３処理結果が入力され、第１〜第３処理結果の中のいずれかにエラーが有る場合には、エラーが有る処理結果を特定する情報を含む第Ｍエラー判定結果を第Ｍ障害診断部に出力する。この際に、第１〜第４診断ブロックは正常であることを前提とすると、第１〜第４多数決判定部から出力される第１〜第４エラー判定結果は全て同じになる。第Ｍ障害診断部は、第Ｍエラー判定結果に基づいて、どの処理ブロック内の再構成可能回路部に単一障害が有るかを判断することができる。
【００２３】
ただし、単一障害が処理ブロックではなく多数決判定部で生じる場合がある。例えば、第１多数決判定部に単一障害が生じた場合、第１障害診断部は、第１多数決判定部から、あたかも第１〜第３処理ブロックの中のいずれかに単一障害が有るかのような第１エラー判定結果を受ける可能性がある。すなわち、第１〜第４障害診断部の中のいずれか一つの障害診断部のみが障害が有ると判定し、残りの障害診断部は障害が無いと判定するような事態が生じ得る。
【００２４】
そこで、第Ｍ障害診断部は、第Ｍ多数決判定部から受けた第Ｍエラー判定結果を反映して第Ｍ診断情報を生成し、第Ｍ診断情報を第Ｍ通信部を介して他の障害診断部に向けて送信し、他の障害診断部からの診断情報を第Ｍ通信部を介してそれぞれ受信する。すなわち、第Ｍ障害診断部は、第１〜第４障害診断部の間で第１〜第４診断情報を共有するための第Ｍ共有部を有する。この共有動作によって、各障害診断部は、単一障害が多数決判定部で生じている場合を検出できる。
【００２５】
具体的には、各障害診断部は、例えば、第１〜第４診断情報の共有が正常に行われた場合、多数決判定部に単一障害は発生していないと判断できる。一方、各障害診断部は、第１〜第４診断情報の中のいずれか一つの診断情報のみを受信したような場合には、当該診断情報を送信した診断ブロック内の多数決判定部に単一障害が生じている可能性があると判断できる。なお、例えば、単一障害の発生箇所が診断ブロック内の通信部で有った場合でも、当該診断ブロック内の多数決判定部に向けた第１〜第３処理結果の入力動作が不安定となるため、結果的に多数決判定部に単一障害が生じた場合と同様の事態が生じ得る。このように、第Ｍ共有部を有することで、特許文献１と異なり多数決判定部に障害が生じている場合を検出することが可能となり、情報処理システムの信頼性の向上が図れる。
【００２６】
（２）また、第Ｍ障害診断部（２３ｂ〜２３ｄ，２３ａα）は、さらに、第Ｍ回復プラン判定部（１９ｂ〜１９ｄ，１９ａα）を有し、第Ｍ診断ブロック（３００Ａ〜３００Ｃ，１０α）は、さらに、第Ｍ回復プラン実行部（２１ｂ〜２１ｄ，２１ａα）を有する。第Ｍ回復プラン判定部は、第Ｍ共有部で共有した第１〜第４診断情報に基づいて、第１〜第３処理ブロックの中のいずれか一つに障害が有るか否かを判定し、第１〜第３処理ブロックの中のいずれか一つに障害が有る場合には第Ｍ回復プランを生成する。第Ｍ回復プラン実行部は、第Ｍ回復プランに基づいて、回復先の処理ブロックの自動回復処理を実行する。
【００２７】
具体的には、第Ｍ回復プラン判定部は、例えば、第１〜第４診断情報の共有が正常に行われ、第１〜第４診断情報に包含される第１〜第４エラー判定結果が全て一致している場合には、第１〜第３処理ブロックの中のいずれか一つの単一障害であると判断する。そして、第Ｍ回復プラン判定部は、当該処理ブロックの単一障害を自動回復する（すなわち再構成可能回路部を再構成する）ための回復プラン（自動回復プラン）を定める。自動回復プランの中には、例えば、一致している第１〜第４エラー判定結果から判明する回復先の処理ブロック（すなわち単一障害が生じている処理ブロック）および回復元の処理ブロック（すなわち正常な処理ブロック）の情報等が含まれる。
【００２８】
一方、例えば、第１〜第４診断情報の中のいずれか一つの診断情報のみが生成される場合には、単一障害が診断ブロック内で生じている可能性が有る。すなわち、前述した多数決判定部や通信部で生じている場合が考えられ、これに限らず、障害診断部で生じている場合も考えられる。このような場合には、自動回復を行うことが困難となり得るため、各障害診断部は、手動での回復が必要であることを表す回復プラン（手動回復プラン）を定める。手動回復プランの中には、例えば、第１〜第４障害情報から推定される障害の発生箇所（すなわちどの診断ブロックで障害が発生しているか）の情報等が含まれる。例えば、第１〜第４診断情報の中のいずれか一つの診断情報のみが生成される場合、この一つの診断情報を生成した診断ブロックに障害が発生していると推定される。第Ｍ回復プラン実行部は、第Ｍ障害診断部から自動回復プランが送信された場合には、当該自動回復プランに基づく自動回復処理を実行し、手動回復プランが送信された場合には、外部に向けて手動回復が必要な旨を表す通知等を行う。
【００２９】
（３）回復プラン実行部によって自動回復処理が行われている期間では、回復先の処理ブロックを除く残り２個の処理ブロック（その内の１個は回復元の処理ブロックでもある）は、外部からの共通の入力に応じた同一の処理をそのまま継続する。この際に、多数決判定部は、当該２個の処理ブロックからの２個の処理結果を受け、当該２個の処理結果が同一の場合には当該同一の処理結果を外部に向けて出力する。一方、多数決判定部は、当該２個の処理結果が異なる場合には、システムの停止等を行う。
【００３０】
また、回復プラン実行部によって手動回復の通知がなされてから、これに応じた手動回復が完了するまでの期間では、正常な診断ブロックに対応する処理ブロックは、外部からの共通の入力に応じた同一の処理をそのまま継続する。正常な診断ブロックは、前述したように、障害診断部からの手動回復プランに基づいて特定することができる。このように、情報処理システムは、仮に１個の処理ブロックで障害が生じている間でも残り２個の処理ブロックを用いて縮退運転を行う。この縮退運転の期間では、情報処理システムは、多数決判定部を用いてエラーを訂正することは困難となるものの、多数決判定部を用いてエラーを検出することは可能となっている。これによって、情報処理システムの稼働を継続しつつ誤った処理結果が外部に流出することを防止することができ、情報処理システムの信頼性を向上させることが可能になる。
【００３１】
（４）第Ｍ障害診断部（２３ｂ〜２３ｄ，２３ａα）は、さらに、第Ｍ回復プラン合意部（２０ｂ〜２０ｄ，２０ａα）を有する。第Ｍ回復プラン合意部は、第Ｍ回復プラン判定部によって生成された第Ｍ回復プランを、第Ｍ通信部を介して、ビザンチン合意プロトコルを用いて他の回復プラン判定部との間で交換し、当該交換した結果に基づいて確定した第Ｍ回復プランを第Ｍ回復プラン実行部に出力する。例えば、回復プラン判定部で単一障害が生じた場合や、あるいは通信部等でビザンチン障害が生じた場合等では、各障害診断部によって誤った回復プランが定められる可能性が有る。そこで、各障害診断部は、ビザンチン合意プロトコルを用いて回復プランを合意する。
【００３２】
具体的には、まず、第Ｍ回復プラン合意部は、第Ｍ回復プラン判定部によって生成された第Ｍ回復プランを他の障害診断部との間でビザンチン合意プロトコルにより交換する。次いで、第Ｍ回復プラン合意部は、このビザンチン合意プロトコルの交換によって得られた第１〜第４回復プランが全て一致する場合に、当該回復プランを一致した回復プランとして第Ｍ回復プラン実行部に送信する。一方、第１〜第４回復プランが全て一致する場合に該当しない場合には、ビザンチン障害等を含めて診断ブロック内に障害が存在する可能性が有る。この場合、第Ｍ回復プラン合意部は、例えば、第１〜第４回復プランの中から合意によって得た回復プラン（例えば、４個の回復プランの中で一致する３個の回復プラン）を手動回復プランとして第Ｍ回復プラン実行部に送信する。
【００３３】
第Ｍ回復プラン実行部は、第Ｍ回復プラン合意部から一致した回復プランが送信され、それが自動回復プランである場合には、当該自動回復プランに基づく自動回復処理を実行する。一方、第Ｍ回復プラン実行部は、第Ｍ回復プラン合意部から手動回復プランが送信された際には、外部に向けて手動回復が必要な旨を表す通知等を行う。このように、ビザンチン合意プロトコルを経た上で自動回復プランに基づく自動回復処理を行うことで、誤った自動回復処理が行われるような事態を防止でき、信頼性を高めることが可能になる。例えば、ある診断ブロックが自身の単一障害によって誤った回復プランを定めた場合や、ある診断ブロックでビザンチン障害が生じた場合には、ビザンチン合意プロトコルで一致した回復プランが得られないため、情報処理システムとして誤った自動回復処理は実行されない。
【００３４】
また、第１〜第４回復プランが全て一致する場合に該当しない場合でも、ビザンチン合意プロトコルを用いた合意によって、障害が生じていない系統に属する３個の診断ブロックの間で同じ手動回復プランを定めることが可能になる。そして、この手動回復プランに基づいて、各診断ブロックの中から正常な診断ブロックを特定することができ、当該正常な診断ブロックを用いて前述したような縮退運転を実行することが可能になる。
【００３５】
（５）回復プラン実行部が、自動回復プランに基づいて自動回復処理を実行する際に、各処理ブロックでの処理内容がステートフル処理であることを前提とすると、再構成可能回路部の自動回復処理（回路の再構成）に加えて、そのステートも回復する必要がある。そこで、第Ｎ処理ブロック（３１０Ａ〜３１０Ｃ）は、さらに、第Ｎ再構成可能回路部の処理の実行過程で得られるステートを保持する第Ｎステート記憶部（３１４Ａ〜３１４Ｃ）を有する。そして、第Ｍ回復プラン実行部（２１ｂ〜２１ｄ，２１ａα）は、回復先の処理ブロックの自動回復処理を実行する際に、回復先の処理ブロック内の構成情報記憶部の記憶情報に加えて、ステート記憶部の記憶情報を回復させる。これによって、特許文献１と異なり、ステートフル処理を含む金融機関向け等の情報処理システムにおいても自動回復処理を実現することが可能になる。
【００３６】
（６）回復先の処理ブロック内の構成情報記憶部の記憶情報を回復させる際には、特に限定はされないが、例えば、回復元の処理ブロック内の構成情報記憶部の記憶情報をコピーする処理や、あるいは、別途、不揮発性メモリ等に回路の構成情報を記憶させておき、当該記憶情報をコピーする処理等を行えばよい。一方、回復先の処理ブロック内のステート記憶部の記憶情報を回復させる際には、例えば、以下のような構成を備えればよい。
【００３７】
第Ｎステート記憶部（３１４Ａ〜３１４Ｃ）は、ステートの回復を開始する第１時点におけるステートが保持される第Ｎステート退避部（３１５Ａ１〜３１５Ｃ１）を有する。第４回復プラン実行部（２１ａα）は、当該第１時点の後に外部から入力されるデータを順次保持するデータ保持部（２１８ａα）を有する。第１〜第３回復プラン実行部（２１ｂ〜２１ｄ）のそれぞれは、回復先の処理ブロック内の構成情報記憶部の記憶情報を回復させる構成回復部（２１４ｂ〜２１４ｄ）と、ステート記憶部の記憶情報を回復させるステート回復部（２１５ｂ〜２１５ｄ）とを有する。ステート回復部は、まず、回復先の処理ブロック内のステート記憶部に対して回復元の処理ブロック内のステート退避部で保持されるステートを設定する。次いで、回復先の処理ブロック内の構成情報記憶部の記憶情報が回復したのちに回復先の処理ブロックに向けて第４回復プラン実行部内のデータ保持部で保持されるデータを順次出力する。これにより、障害から回復した処理ブロックは、ステートを含めて正常な処理ブロックと同じ状態に順次近づいていき、正常な処理ブロックと同じ状態に達した時点で、ステートを含めて完全に障害から回復する。
【００３８】
（７）第４診断ブロック（１０α）は、例えば、外部との間のインタフェースを担う外部送受信ブロック（１０α）内に設けられてもよい。そして、第４診断ブロック内の第４多数決判定部（１４ａα）は、第１〜第３処理結果に対して多数決判定を行うことで外部に出力する処理結果を定める。すなわち、外部に出力するための最終的な処理結果は、第４多数決判定部によって定められる。ただし、この場合、第４多数決判定部に障害が生じた場合には、外部に向けて正しい処理結果を出力することが困難となる。そこで、外部送受信ブロックは、通常用（１０α）とバックアップ用（１０β）を含めて冗長化することが望ましい。第４多数決判定部の障害の有無は、例えば、前述したように第Ｍ共有部での第１〜第４診断情報の共有結果に基づいて判定することができる。したがって、この判定結果に基づいて通常用とバックアップ用の切り替えを行えばよい。
【００３９】
なお、多数決判定部の障害を想定して、例えば、第１〜第４多数決判定部の間で、それぞれの多数決判定によって得られた処理結果をビザンチン合意し、これによって外部に出力するための最終的な処理結果を定めるような方式等が考えられる。ただし、この場合、ビザンチン合意に伴い、外部に向けて処理結果を出力する際のレイテンシが増大し、情報処理システムの高速性が阻害される恐れがある。そこで、このように、１個の多数決判定部で最終的な処理結果を定める方式とし、かつこの１個の多数決判定部（それを含んだ外部送受信ブロック）を冗長化することで、高速性と信頼性の両立を図ることが可能になる。
【００４０】
以上のように、本実施の形態の情報処理システムを用いることで、代表的には、信頼性の向上が実現可能になる。例えば、ＦＰＧＡ等の再構成可能回路を含むコンポーネントが少なくとも三重化された情報処理システムにおいて、任意のコンポーネントに単一障害が発生した後も、情報処理を停止することなく、障害前と同じステートフル処理を継続して実行することが可能になる。
【００４１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００４２】
（実施の形態１）
《情報処理システムの全体構成》
図１Ａは、本発明の実施の形態１における情報処理システムの全体構成例を示すブロック図である。図１Ｂは、図１Ａにおける外部送受信ブロックのより詳細な構成例を示すブロックであり、図１Ｃは、図１Ａにおける診断ブロックのより詳細な構成例を示すブロック図である。図１Ａの情報処理システムは、外部送受信ブロック１０α，１０βと、診断ブロック３００Ａ，３００Ｂ，３００Ｃと、処理ブロック３１０Ａ，３１０Ｂ，３１０Ｃと、通信路Ｌ１，Ｌ２を備える。
【００４３】
外部送受信ブロック１０α，１０βは、同一構成のブロックからなるＨＡ（High Availability）システム（言い換えれば冗長システム）であり、外部送受信ブロック１０αは実行系（通常用）、外部送受信ブロック１０βは待機系（バックアップ用）である。外部送受信ブロック１０α，１０βは、同一構成からなるＨＡシステムであるが、外部送受信ブロックが単一障害後も正常に稼働できる機能を備えていれば、本実施の形態はこれに限定されない。
【００４４】
診断ブロック３００Ａ，３００Ｂ，３００Ｃは、同一構成であり、三重化された処理ブロック３１０Ａ，３１０Ｂ，３１０Ｃをそれぞれ診断および回復させるためのブロックである。診断ブロック３００Ａ，３００Ｂ，３００Ｃは、例えば、ＦＰＧＡ等の再構成可能回路で構成したり、またはＣＰＵ（Central Processing Unit）等によるプログラム処理を実行するコンピュータシステムで構成したり、あるいはこれらの組合せで構成することが可能である。診断ブロック３００Ａ，３００Ｂ，３００Ｃは、同一構成の三重化されたブロックであるが、診断ブロックにおける単一障害点が三重化されていれば、本実施の形態はこれに限定されない。
【００４５】
処理ブロック３１０Ａ，３１０Ｂ，３１０Ｃは、同一構成であり、診断ブロック３００Ａ，３００Ｂ，３００Ｃと同様に三重化されており、外部送受信ブロック１０α，１０βから共通に送信される入力データを処理するためのブロックである。処理ブロック３１０Ａ，３１０Ｂ，３１０Ｃは、同一構成の三重化されたブロックであるが、処理ブロックにおける単一障害点が三重化されていれば、本実施の形態はこれに限定されない。
【００４６】
通信路Ｌ１は、外部送受信ブロック１０α，１０βと、図１Ａの情報処理システムを利用する外部の情報処理装置との間で通信を行うための通信路である。通信路Ｌ２は、外部送受信ブロック１０α，１０βと、診断ブロック３００Ａ，３００Ｂ，３００Ｃと、処理ブロック３１０Ａ，３１０Ｂ，３１０Ｃとの間で内部通信を行うための通信路である。例えば、通信路Ｌ１，Ｌ２を構成する各部品等は冗長化されており、高信頼な通信が行えることを前提とする。ただし、通信路Ｌ１，Ｌ２が十分に高信頼であれば、本実施の形態はこれに限定されない。
【００４７】
外部送受信ブロック１０αは、外部通信部１１αと、入力データ投入部１２αと、第一通信部１３αと、障害診断回復系統ａαを備える。障害診断回復系統ａαは、多数決判定部１４ａαと、障害診断部２３ａαと、回復プラン実行部２１ａαを備える。障害診断部２３ａαは、より詳細には、図１Ｂに示すように、システム障害診断部１６ａαと、障害診断情報共有部１８ａαと、回復プラン判定部１９ａαと、回復プラン合意部２０ａαを有する。また、障害診断回復系統ａαは、より詳細には、図１Ｂに示すように、システム構成情報１７ａαと、モード情報２２ａαを更に有する。
【００４８】
また、図示していないが、外部送受信ブロック１０βも同様に、外部通信部１１βと、入力データ投入部１２βと、第一通信部１３βと、障害診断回復系統ａβを備える。障害診断回復系統ａβは、多数決判定部１４ａβと、障害診断部２３ａβと、回復プラン実行部２１ａβを備える。障害診断部２３ａβは、より詳細には、図１Ｂと同様に、システム障害診断部１６ａβと、障害診断情報共有部１８ａβと、回復プラン判定部１９ａβと、回復プラン合意部２０ａβを有する。また、障害診断回復系統ａβは、より詳細には、図１Ｂと同様に、システム構成情報１７ａβと、モード情報２２ａβを更に有する。
【００４９】
診断ブロック３００Ａは、第一通信部３０１Ａと、第二通信部３０３Ａと、障害診断回復系統ｂを備える。障害診断回復系統ｂは、多数決判定部１４ｂと、障害診断部２３ｂと、回復プラン実行部２１ｂを有する。障害診断部２３ｂは、より詳細には、図１Ｃに示すように、構成不良箇所診断部３０２Ａと、システム障害診断部１６ｂと、障害診断情報共有部１８ｂと、回復プラン判定部１９ｂと、回復プラン合意部２０ｂを有する。また、障害診断回復系統ｂは、より詳細には、図１Ｃに示すように、システム構成情報１７ｂと、モード情報２２ｂを更に有する。
【００５０】
診断ブロック３００Ｂ，３００Ｃも、詳細な図示は省略するが、診断ブロック３００Ａと同様の構成を有する。すなわち、診断ブロック３００Ｂは、診断ブロック３００Ａにおける各構成要素（３０１Ａ〜３０３Ａ，ｂ，１４ｂ，１６ｂ〜２１ｂ，２３ｂ）にそれぞれ対応する各構成要素（３０１Ｂ〜３０３Ｂ，ｃ，１４ｃ，１６ｃ〜２１ｃ，２３ｃ）を備える。同様に、診断ブロック３００Ｃは、診断ブロック３００Ａにおける各構成要素（３０１Ａ〜３０３Ａ，ｂ，１４ｂ，１６ｂ〜２１ｂ，２３ｂ）にそれぞれ対応する各構成要素（３０１Ｃ〜３０３Ｃ，ｄ，１４ｄ，１６ｄ〜２１ｄ，２３ｄ）を備える。
【００５１】
処理ブロック３１０Ａは、第一通信部３１１Ａと、ステートフル処理部３１２Ａと、ステート記憶部３１４Ａと、ステート記憶管理部３１３Ａと、第二通信部３１６Ａと、構成情報記憶部３１８Ａと、構成情報記憶管理部３１７Ａを有する。処理ブロック３１０Ａは、例えば、ＦＰＧＡ等によって構成される。ここでは、ステートフル処理部３１２Ａ、第一通信部３１１Ａおよびステート記憶管理部３１３Ａは、再構成可能回路部３１９Ａによって構成され、当該再構成可能回路部３１９Ａの回路構成は、構成情報記憶部３１８Ａの記憶情報に応じて任意に設定可能となっている。構成情報記憶部３１８Ａは、一般的に、ＣＲＡＭ（Configuration RAM）等と呼ばれ、例えばＳＲＡＭ等で構成される。
【００５２】
構成情報記憶管理部３１７Ａは、診断ブロック３００Ａが第二通信部３０３Ａ，３１６Ａを介して構成情報記憶部３１８Ａにアクセス等を行う際の制御を行う。すなわち、構成情報記憶管理部３１７Ａは、診断ブロック３００Ａが再構成可能回路部３１９Ａの回路の再構成等を行う際の制御を行う。ステート記憶部３１４Ａには、ステートフル処理部３１２Ａでの処理の過程で生じるステートが適宜記憶される。ステート記憶管理部３１３Ａは、このステートを記憶する際の制御を行う。また、ステート記憶管理部３１３Ａは、診断ブロック３００Ａが第二通信部３０３Ａ，３１６Ａを介してステート記憶部３１４Ａにアクセス等を行う際の制御も行う。ステート記憶部３１４Ａは、詳細は後述するが、ステートの回復を実現するために、第一バンク３１５Ａ１と第二バンク３１５Ａ２を備える。
【００５３】
処理ブロック３１０Ｂ，３１０Ｃも、詳細な図示は省略するが、処理ブロック３１０Ａと同様の構成を有する。すなわち、処理ブロック３１０Ｂは、処理ブロック３１０Ａにおける各構成要素（３１１Ａ〜３１４Ａ，３１５Ａ１，３１５Ａ２，３１６Ａ〜３１９Ａ）にそれぞれ対応する各構成要素（３１１Ｂ〜３１４Ｂ，３１５Ｂ１，３１５Ｂ２，３１６Ｂ〜３１９Ｂ）を備える。同様に、処理ブロック３１０Ｃは、処理ブロック３１０Ａにおける各構成要素（３１１Ａ〜３１４Ａ，３１５Ａ１，３１５Ａ２，３１６Ａ〜３１９Ａ）にそれぞれ対応する各構成要素（３１１Ｃ〜３１４Ｃ，３１５Ｃ１，３１５Ｃ２，３１６Ｃ〜３１９Ｃ）を備える。
【００５４】
このように、本実施の形態１の情報処理システムは、図１Ａに示すように、診断ブロック３００Ａおよび処理ブロック３１０Ａを処理系統ＡＡ、診断ブロック３００Ｂおよび処理ブロック３１０Ｂを処理系統ＢＢ、診断ブロック３００Ｃおよび処理ブロック３１０Ｃを処理系統ＣＣとして、三重化された処理系統を備えている。三重化を行うことで、単一障害発生後もエラー検知とエラー訂正を行うための処理結果が３つ得られる。すなわち、処理系統ＡＡ〜処理系統ＣＣ内のステートフル処理部３１２Ａ〜３１２Ｃは、同一の回路構成が設定されることで同一の処理を行い、その各処理結果を第一通信部３１１Ａ〜３１１Ｃを介して出力する。また、本実施の形態１の情報処理システムは、障害の診断および回復を行うための四重化された障害診断回復系統ａα（又はａβ），ｂ〜ｄを備えている。四重化を行うことで、障害診断回復系統自身がビザンチン障害を含めて単一障害を有する場合にも対応できる。
【００５５】
《情報処理システムの全体動作》
図２は、図１Ａ〜図１Ｃの情報処理システムにおいて、その全体の処理内容の一例を示すフローチャートである。図２において、まず、外部通信部１１αは、通信路Ｌ１から受信した入力データを受信し、入力データ投入部１２αへ送信する。入力データ投入部１２αは、システム構成情報１７ａαに格納されている情報をもとに各処理系統の処理ブロック３１０Ａ〜３１０Ｃが有する第一通信部３１１Ａ〜３１１Ｃへ入力データをブロードキャストする（ステップＳ２０１）。
【００５６】
次に、ステートフル処理部３１２Ａ〜３１２Ｃは、第一通信部３１１Ａ〜３１１Ｃを介して入力データを受信し、それぞれ同一の処理を行う（ステップＳ２０２）。続いて、ステートフル処理部３１２Ａ〜３１２Ｃは、ステップＳ２０２の結果、自身の内部状態（ステート）が変化するため、当該ステートをステート記憶管理部３１３Ａ〜３１３Ｃにそれぞれ送信する。ステート記憶管理部３１３Ａ〜３１３Ｃは、受信したステート情報をステート記憶部３１４Ａ〜３１４Ｃへ保存する（ステップＳ２０３）。
【００５７】
次に、ステートフル処理部３１２Ａ〜３１２Ｃは、処理結果である出力データを、第一通信部３１１Ａ〜３１１Ｃへ送信する。第一通信部３１１Ａ〜３１１Ｃは、外部送受信ブロック１０αの第一通信部１３αおよび診断ブロック３００Ａ〜３００Ｃの第一通信部３０１Ａ〜３０１Ｃへ当該出力データをブロードキャストする。第一通信部１３αおよび第一通信部３０１Ａ〜３０１Ｃは、第一通信部３１１Ａ〜３１１Ｃから受信した３つの処理結果（出力データ）を受信し、多数決判定部１４ａαおよび多数決判定部１４ｂ〜１４ｄへそれぞれ送信する（ステップＳ２０４）。
【００５８】
多数決判定部１４ａα，１４ｂ〜１４ｄは、受信した３つの処理結果（出力データ）を比較し、１つも異なるデータが存在しないか否かを判定する（ステップＳ２０５）。１つも異なるデータが存在しない、つまり、３つの出力データ全てが同一と判定された場合、多数決判定部１４ａαのみ、当該同一の出力データを、出力データ投入部１５αへ送信する。出力データ投入部１５αは、出力データに対応する入力データを送信してきた相手を送信先に設定し、当該出力データを外部通信部１１αへ送信する。外部通信部１１αは、通信路Ｌ１を使用して出力データを送信する。一方、多数決判定部１４ｂ〜１４ｄは、出力データを破棄する（ステップＳ２０６）。ステップＳ２０６が終了したのち、再びステップＳ２０１から処理を繰り返すことで、通常の処理が継続的に行われる。
【００５９】
このように、図１Ａ〜図１Ｃの情報処理システムでは、多数決判定部１４ａαで多数決判定した処理結果（出力データ）が外部に向けて出力される。したがって、仮に多数決判定部１４ａαに障害が生じた際には、外部に向けて正しい処理結果を出力することが困難となる。そこで、ここでは、二重化された多数決判定部１４ａα，１４ａβ（外部送受信ブロック１０α，１０β）を備え、一方に障害が生じた場合には他方に切り替える構成を用いている。なお、詳細は後述するが、多数決判定部１４ａα等の障害の有無は、障害診断部２３ａα，２３ｂ〜２３ｄによって判別することが可能である。
【００６０】
図２のステップＳ２０５において、１つでも異なるデータが存在する、つまり、３つの処理結果（出力データ）中にエラーが存在すると判定された場合、多数決判定部１４ａα，１４ｂ〜１４ｄは、３つの出力データのうち、２つ以上の同一データが存在するか否かを判定する（ステップＳ２０７）。ステップＳ２０７で２つ以上の同一データが存在すると判定された場合、多数決判定部１４ａα，１４ｂ〜１４ｄは、エラーが有る処理結果を特定するエラー判定結果を障害診断部２３ａα，２３ｂ〜２３ｄに出力し、障害回復処理の実行を開始させる（ステップＳ２０８）。
【００６１】
障害回復処理の詳細は、図３以降の説明で述べるが、多数決判定部１４ａα，１４ｂ〜１４ｄのエラー判定結果および出力データは、システム障害診断部１６ａα，１６ｂ〜１６ｄ、及び、構成不良箇所診断部３０２Ａ〜３０２Ｃへ送信され、障害状況の診断が行われる。その後、当該診断の結果から得られる障害診断情報の共有、回復プランの判定、回復プランの合意と進み、最終的に、回復プランの実行が行われる。これらの処理は、図２のフローチャートと並行して実行されるため、２つ以上の同一データが存在し、エラーが訂正可能な状態であれば、通常の処理を継続したまま、障害回復を実行する事が可能である。
【００６２】
図２のステップＳ２０８の処理と並行して、多数決判定部１４ａα，１４ｂ〜１４ｄは、エラーを訂正する。具体的には、３つの出力データのうち、同一である２つを正常な出力データとみなし、多数決判定部１４ａαのみ、当該正常な出力データを出力データ投入部１５αへ送信する。出力データ投入部１５αは、出力データに対応する入力データを送信してきた相手を送信先に設定し、出力データを外部通信部１１αおよび通信路Ｌ１を介して送信する（ステップＳ２０９）。また、図２のステップＳ２０７で、２つ以上の同一データが存在しない、つまり、全ての出力データが異なると判定された場合、多数決判定部１４ａα，１４ｂ〜１４ｄは、情報処理システムを停止する（ステップＳ２１０）。
【００６３】
《障害回復処理の概略》
図３は、図２において、その障害回復処理の概略的な処理内容の一例を示すフローチャートである。図２のステップＳ２０７で、２つ以上同一のデータが存在し、エラーが訂正可能な状態と判定された場合、ステップＳ２０８での障害回復処理として、図３のフローチャートが実行される。図３において、まず、障害診断部２３ａα，２３ｂ〜２３ｄは、自身の障害診断回復系統ａα，ｂ〜ｄが、障害回復モードであるか否かを判定する（ステップＳ３０１）。詳細なモードについては、図１６で後述する。
【００６４】
障害診断部２３ａα，２３ｂ〜２３ｄは、モード情報２２ａα，２２ｂ〜２２ｄが、障害回復モードであった場合は処理を終了し、通常モードであった場合は障害回復モードへ移行する（ステップＳ３０２）。具体的には、障害診断部２３ａα，２３ｂ〜２３ｄは、モード情報２２ａα，２２ｂ〜２２ｄを、障害回復モードへ書き変える。
【００６５】
次に、多数決判定部１４ａα，１４ｂ〜１４ｄのエラー判定結果および出力データは、システム障害診断部１６ａα，１６ｂ〜１６ｄ、及び、構成不良箇所診断部３０２Ａ〜３０２Ｃへ送信され、障害の診断が行われる（ステップＳ３０３）。システム障害診断部１６ａα，１６ｂ〜１６ｄで行う診断の詳細は図５で、構成不良箇所診断部３０２Ａ〜３０２Ｃで行う診断の詳細は図４で後述する。概略を説明すると、これらの診断部は、処理ブロックやシステム（具体的には第一通信部）における障害の発生箇所、障害の状態を診断し、例えば、どの処理ブロックに障害が生じたのか、または、どの診断ブロックもしくは外部送受信ブロックに障害が生じたのかを示す障害診断情報を作成する。そして、これらの診断部は、作成した障害診断情報を障害診断情報共有部１８ａα，１８ｂ〜１８ｄへ渡す。
【００６６】
次に、障害診断情報共有部１８ａαは、システム障害診断部１６ａαの診断結果に基づいて作成した障害診断情報を他の障害診断情報共有部１８ｂ〜１８ｄに送信する。障害診断情報共有部１８ｂは、システム障害診断部１６ｂ及び構成不良箇所診断部３０２Ａの診断結果に基づいて作成した障害診断情報を他の障害診断情報共有部１８ａα，１８ｃ，１８ｄに送信する。同様にして、障害診断情報共有部１８ｃ，１８ｄも障害診断情報を送信する。すなわち、障害診断情報共有部１８ａα，１８ｂ〜１８ｄのそれぞれは、自身の障害診断情報を他の障害診断情報共有部に向けて送信し、また、他の障害診断情報共有部の障害診断情報を受信することで障害診断情報の交換および共有を行う（ステップＳ３０４）。
【００６７】
具体的な処理は、図６で後述するが、各障害診断回復系統ａα，ｂ〜ｄは、図３のステップＳ３０３の処理を完了した時点では、個々の障害診断回復系統において障害を検知したのみであり、実際の障害の発生箇所によっては、誤検知の可能性がある。当該誤検知は、例えば、多数決判定部等に障害が生じた場合に生じ得る。そのため、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、他の障害診断回復系統の状況を把握するため、障害診断情報をお互いに共有し、共有した各障害診断情報を、回復プラン判定部１９ａα，１９ｂ〜１９ｄへ渡す。
【００６８】
ここで、例えば、処理ブロック３１０Ａ〜３１０Ｃの中に障害が無い場合、各障害診断回復系統内の多数決判定部１４ａα，１４ｂ〜１４ｄはエラー判定結果の出力を行わず、当該エラー判定結果等を反映した障害診断情報の生成は行われない。しかしながら、ある障害診断回復系統のみが障害を検知し、これに伴う障害診断情報が、当該障害を検知した障害診断回復系統以外の障害診断回復系統内の障害診断情報共有部へ送信される事態が起こり得る。このような事態は、具体的には、例えば、当該障害を検知した障害診断回復系統内の多数決判定部や、システム障害診断部や、構成不良箇所診断部や、第一通信部に障害が生じた場合に起こり得る。
【００６９】
そこで、詳細は図１８で後述するが、各障害診断回復系統の障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、障害回復モード中のステップＳ３０４だけでなく、通常モードの場合も、常に他の障害診断回復系統からの障害診断情報を待ちうけ、障害に対応する。これにより、例えば、障害診断回復系統aαが、他の障害診断回復系統ｂ〜ｃでは障害を検知していないのにも関わらず障害を検知し、他の障害診断回復系統ｂ〜ｄの障害診断情報共有部１８ｂ〜１８ｄが、当該障害に対する障害診断情報を受け取った場合にも適切に障害に対応できる。具体的には、このような場合、診断ブロック３００Ａ〜３００Ｃは、障害診断回復系統ａαに障害が生じていると判断し、例えば、「障害診断回復系統ａαに障害が有る」旨を表す信号を外部送受信ブロック１０βに送信する。これを受けて、外部送受信ブロック１０βは、外部送受信ブロック１０αの全処理を引き継ぐ。
【００７０】
次に、図３において、回復プラン判定部１９ａα，１９ｂ〜１９ｄは、障害診断情報共有部で共有した各障害診断情報から、実行するべき回復プランを判定する（ステップＳ３０５）。具体的な処理は、図７および図８で後述するが、自動的に回復可能と診断した場合、回復元の処理ブロックと回復先の処理ブロックを定め、この情報等を含んだ自動回復プランを、回復プラン合意部２０ａα，２０ｂ〜２０ｄへ渡す。また、自動的な回復が不可能と診断した場合、障害診断情報（すなわち障害が生じた診断ブロックを特定する情報等）を含めた手動回復プランを、回復プラン合意部２０ａα，２０ｂ〜２０ｄへ渡す。
【００７１】
続いて、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、回復プラン判定部１９ａα，１９ｂ〜１９ｄから渡された回復プランを実行するための合意を回復プラン合意部の間で行う（ステップＳ３０６）。具体的な処理は、図７および図８で後述するが、この合意プロセスによって、例えば、回復プラン判定部の障害や第一通信部等のビザンチン障害等によって、誤った回復プランが生成され、それが実行されるような事態を防止することが可能になる。
【００７２】
次に、回復プラン実行部２１ａα，２１ｂ〜２１ｄは、合意した回復プランを実行する（ステップＳ３０７）。具体的な処理は、図１１〜図１５で後述するが、回復が正常に行えた場合は通常モードへ移行し、もとの三重系へ復帰する。回復が正常に行えなかった場合は、障害回復処理を中断し、手動での回復を促す。
【００７３】
《構成不良箇所診断部の処理内容》
図４は、図１Ａ〜図１Ｃの情報処理システムにおいて、その構成不良箇所診断部の処理内容の一例を示すフローチャートである。図４のフローチャートは、図３のステップＳ３０３における構成不良箇所診断部３０２Ａ〜３０２Ｃの処理内容を表すものである。図４において、まず、構成不良箇所診断部３０２Ａ〜３０２Ｃは、多数決判定部１４ｂ〜１４ｄから渡されるエラー判定結果から、自身が障害系統かどうか（言い換えれば自身の処理ブロックに障害が生じている可能性が有るか否か）を判定する（ステップＳ４０１）。そして、構成不良箇所診断部３０２Ａ〜３０２Ｃは、障害系統が自身の管理下にあるか否かを判定する（ステップＳ４０２）。
【００７４】
具体的には、例えば、多数決判定部１４ｂ〜１４ｄは、処理系統ＡＡからの処理結果（出力データ）のみ処理系統ＢＢ，ＣＣと異なっている場合は、処理系統ＡＡを障害系統とするエラー判定結果を出力する。この場合、構成不良箇所診断部３０２Ａは、自身が障害系統であり、障害系統が自身の管理下にあると判定し、構成不良箇所診断部３０２Ｂ，３０２Ｃは、処理系統ＡＡが障害系統であり、障害系統は自身の管理下に無いと判定する。
【００７５】
構成不良箇所診断部３０２Ａ〜３０２Ｃは、障害系統が自身の管理下にないと判定した場合、処理を終了する。一方、構成不良箇所診断部３０２Ａ〜３０２Ｃは、障害系統が自身の管理下にあると判定した場合、第二通信部３０３Ａ〜３０３Ｃおよび第二通信部３１６Ａ〜３１６Ｃを経由して、構成情報記憶管理部３１７Ａ〜３１７Ｃへ障害箇所の情報を要求する（ステップＳ４０３）。なお、実際には、構成不良箇所診断部３０２Ａ〜３０２Ｃの中のいずれか一つ（例えば３０２Ａ）が自身に対応する構成情報記憶管理部（例えば３１７Ａ）へ障害箇所の情報を要求することになる。
【００７６】
続いて、構成情報記憶管理部３１７Ａ〜３１７Ｃは、構成情報記憶部３１８Ａ〜３１８Ｃを検査し、障害箇所の情報を収集し、構成不良箇所診断部３０２Ａ〜３０２Ｃへ応答する（ステップＳ４０４）。なお、当該処理は、実際には、処理系統ＡＡ〜ＣＣのいずれか一つで行われる。また、具体的な処理内容としては、例えば、ソフトエラーの診断回路を用いる方式や、または、回復プランに含まれる回復元の処理ブロック内の構成情報記憶部の記憶情報を期待値として比較判定する方式や、あるいは、予め正しい記憶情報を不揮発性メモリ等に格納しておき、その記憶情報を期待値として比較判定する方式等が挙げられる。
【００７７】
次に、構成不良箇所診断部３０２Ａ〜３０２Ｃは、一定時間以内に、構成情報記憶管理部３１７Ａ〜３１７Ｃから応答があるか否かを判定する（ステップＳ４０５）。構成不良箇所診断部３０２Ａ〜３０２Ｃは、一定時間内に構成情報記憶管理部３１７Ａ〜３１７Ｃから障害箇所に関する情報の応答があった場合、当該情報を障害診断情報共有部１８ｂ〜１８ｄへ渡す（ステップＳ４０６）。一方、構成不良箇所診断部３０２Ａ〜３０２Ｃは、一定時間内に構成情報記憶管理部３１７Ａ〜３１７Ｃからの応答がなかった場合、再構成不能という情報を障害診断情報共有部１８ｂ〜１８ｄへ渡す（ステップＳ４０７）。
【００７８】
《システム障害診断部の処理内容》
図５は、図１Ａ〜図１Ｃの情報処理システムにおいて、そのシステム障害診断部の処理内容の一例を示すフローチャートである。図５のフローチャートは、図３のステップＳ３０３におけるシステム障害診断部１６ａα，１６ｂ〜１６ｄの処理内容を表すものである。図５において、まず、システム障害診断部１６ａα，１６ｂ〜１６ｄは、他の障害診断回復系統が有する第一通信部１３α，３０１Ａ〜３０１Ｃが応答するか否かをチェックする（ステップＳ５０１）。具体的には、システム障害診断部１６ａαを例とすると、システム障害診断部１６ａαは、例えば、第一通信部１３αを介して第一通信部３０１Ａ〜３０１Ｃに向けてＰｉｎｇ等のツールを用いて応答があるかどうかをチェックする。
【００７９】
次いで、システム障害診断部１６ａα，１６ｂ〜１６ｄは、第一通信部から応答がない場合、通信不可との情報を障害診断情報共有部１８ａα，１８ｂ〜１８ｄへ渡し、処理を終了する（ステップＳ５０２）。一方、全ての第一通信部から応答がある場合、通信可能との情報を障害診断情報共有部１８ａα，１８ｂ〜１８ｄへ渡す（ステップＳ５０３）。これによって、多数決判定部からのエラー判定結果によって示される障害の原因が、第一通信部１３α，３０１Ａ〜３０１Ｃのいずれかにあるのか否かが判別される。
【００８０】
《障害診断情報共有部の処理内容》
図６は、図１Ａ〜図１Ｃの情報処理システムにおいて、その障害診断情報共有部の処理内容の一例を示すフローチャートである。図６のフローチャートは、図３のステップＳ３０４において、他の障害診断回復系統の状況を把握するために障害診断情報共有部１８ａα，１８ｂ〜１８ｄで行われる処理内容を表すものである。図６において、まず、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、システム障害診断部１６ａα，１６ｂ〜１６ｄから受け取った診断結果から、通信が可能かどうかをチェックする（ステップＳ６０１）。具体的には、図５のステップＳ５０３に示したように、通信可能との情報を受け取った場合のみ、通信可能と判断する。
【００８１】
次いで、通信可能と判定された場合、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、自身の障害診断情報をブロードキャストで送信することで、各障害診断情報共有部の間で障害診断情報を交換する（ステップＳ６０２）。詳細な交換方法は図１９で後述する。続いて、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、交換が正常に終了したか否かをチェックする（ステップＳ６０３）。具体的には、タイムアウトや、データのエラー等が無いかをチェックする。
【００８２】
交換が正常に終了した場合、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、交換によって取得した各障害診断情報を回復プラン判定部１９ａα，１９ｂ〜１９ｄへ渡し処理を終了する（ステップＳ６０４）。一方、交換が正常に終了しなかった場合、もしくは、ステップＳ６０１において通信不可だと判定された場合、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、手動回復プランを作成し、回復プラン実行部２１ａα，２１ｂ〜２１ｄへ渡し、処理を終了する（ステップＳ６０５）。
【００８３】
例えば、多数決判定部に障害が生じた場合には、当該障害が生じた多数決判定部に対応する障害診断情報共有部は、他の障害診断情報共有部から障害診断情報を受信しないため、ステップＳ６０３の処理でタイムアウトとなり、ステップＳ６０５の処理へ移行する。この際に、その他の障害診断情報共有部は、後述する図１８のフローによって、当該障害が生じた多数決判定部の存在を認識する。
【００８４】
《回復プラン判定部および回復プラン合意部の処理内容》
図７は、図１Ａ〜図１Ｃの情報処理システムにおいて、その回復プラン判定部および回復プラン合意部の処理内容の一例を示すフローチャートである。図８は、図７のフローチャートにおいて、回復プランを判定する際の判定基準の一例を示す表である。図７および図８は、図３のステップＳ３０５およびＳ３０６において、回復プランの判定と合意を行うために回復プラン判定部１９ａα，１９ｂ〜１９ｄおよび回復プラン合意部２０ａα，２０ｂ〜２０ｄで行われる処理内容を表すものである。
【００８５】
図７において、まず、回復プラン判定部１９ａα，１９ｂ〜１９ｄは、回復プランを判定する（ステップＳ７０１）。具体的に説明すると、まず、その前段階で、各障害診断回復系統ａα，ｂ〜ｄ毎に、自身の多数決判定部からのエラー判定結果や、自身の構成不良箇所診断部での診断結果や、自身のシステム障害診断部での診断結果に基づいて別個独立に障害診断情報が生成される。各障害診断情報は、それぞれ、どの処理ブロックに障害が生じたのか、または、どの診断ブロックもしくは外部送受信ブロックに障害が生じたのかを各障害診断回復系統ａα，ｂ〜ｄ毎の判断で定めたものとなる。その後、当該各障害診断情報は、障害診断情報共有部１８ａα，１８ｂ〜１８で共有される。回復プラン判定部１９ａα，１９ｂ〜１９ｄのそれぞれは、この共有された各障害診断情報を参照し、図８の表８００に基づいて、障害が自動回復可能であるのか、自動回復不可能であるのかを判定する。
【００８６】
図８の表８００では、３個の処理ブロック３１０Ａ〜３１０Ｃ（再構成可能回路部３１９Ａ〜３１９Ｃ）の中のいずれか１個に障害が有る場合に自動回復が可能と判定され、それ以外の場合には、自動回復が不可能と判定される。例えば、共有した各障害診断情報に含まれる故障した処理ブロックを特定する情報（言い換えれば各多数決判定部からの各エラー判定結果）が全て一致し、かつ当該処理ブロックの障害の存在が対応する構成不良箇所診断部で検証され、かつ各システム障害診断部で通信障害が検出されなかった場合には、自動回復が可能と判定される。回復プラン判定部１９ａα，１９ｂ〜１９ｄは、自動回復が可能と判定した場合、自動回復プランを生成し、自動回復が不可能と判定した場合、手動回復プランを生成する。
【００８７】
自動回復プランの中には、障害が有る処理ブロックを表す回復先の処理ブロックと、障害が無い処理ブロックの中から選択した回復元の処理ブロックの情報等が含まれる。この回復元の処理ブロックは、回復プラン判定部１９ａα，１９ｂ〜１９ｄの中で予め共通に設定されている優先順位等に基づいて選択される。また、手動回復プランの中には、各障害診断情報から推定される障害の発生箇所（すなわちどの診断ブロックで障害が発生しているか）の情報等が含まれる。例えば、共有された４個の障害診断情報の中のいずれか１個が他と矛盾するような場合には、この１個の障害診断情報に対応する診断ブロックに障害が発生していると推定される。
【００８８】
次いで、生成された回復プランは、回復プラン合意部２０ａα，２０ｂ〜２０ｄへ渡される。回復プラン合意部２０ａα，２０ｂ〜２０ｄは、ビザンチン合意プロトコルに従い、回復プランを交換する（ステップＳ７０２）。詳細な交換方法は図２０および図２１で後述するが、このようなビザンチン合意プロトコルを用いることによって、ビザンチン障害が１つ存在しても、ビザンチン障害が起きている系統を除く、残り３つの障害診断回復系統の回復プランを同一にすることができる。つまり、回復プラン決定後の状態遷移を、ビザンチン障害が起きている系統を除く、残り３つの障害診断回復系統で同一にすることができる。
【００８９】
これにより、例えば、ビザンチン障害が発生した系統が、実際には障害が発生していないにも関わらず、障害の自動回復処理の実行に入ったとしても、障害の自動回復処理に必要な他の３つの障害診断回復系統が障害の自動回復処理を実行していないため、障害の自動回復処理が途中でエラーとなる。この場合、適切にエラー処理を行うことで、例えば、ビザンチン障害が起きていない残り３つの障害診断回復系統およびそれに対応する処理系統を用いて縮退運転等を行うことが可能になる。
【００９０】
続いて、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、回復プランの交換が正常に終了したか否かをチェックする（ステップＳ７０３）。正常に終了した場合、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、交換した各回復プランを比較し、全ての障害診断回復系統の回復プランが一致しているか否かをチェックする（ステップＳ７０４）。回復プランが一致していなければ、どこかでビザンチン障害が発生しているため、回復プランの一致をみることで、ビザンチン障害による不安定なシステム環境での障害回復処理を防ぐことが可能である。
【００９１】
全ての障害診断回復系統の回復プランが一致している場合、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、当該一致した回復プランを回復プラン実行部２１ａα，２１ｂ〜２１ｄへ渡す（ステップＳ７０５）。一方、全ての障害診断回復系統の回復プランが一致している場合に該当しない場合、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、当該回復プランを手動回復プランに変更し、それを回復プラン実行部２１ａα，２１ｂ〜２１ｄへ渡す（ステップＳ７０７）。また、ステップＳ７０３において回復プランの交換が正常に終了しなかった場合にも、回復プラン合意部２０ａα，２０ｂ〜２０ｄは、当該回復プランを手動回復プランに変更し、それを回復プラン実行部２１ａα，２１ｂ〜２１ｄへ渡す（ステップＳ７０６）。
【００９２】
《回復プラン実行部の詳細構成》
図９は、図１Ａ〜図１Ｃの情報処理システムにおいて、その外部送受信ブロック内の回復プラン実行部の詳細な構成例を示すブロック図である。ここでは、外部送受信ブロック１０αを代表として説明するが、外部送受信ブロック１０βも同様である。図９に示す回復プラン実行部２１ａαは、回復制御部２１１ａαと、手動回復プラン通知部２１６ａαと、入力データ再投入部２１７ａαと、入力データ再投入キュー２１８ａαから構成される。詳細は図１１〜図１５で後述するが、回復制御部２１１ａαは、手動回復プラン通知部２１６ａα、入力データ再投入部２１７ａαを制御し、手動回復プラン、及び、自動回復プランを実行する。
【００９３】
入力データ再投入部２１７ａαは、ステートの回復を行う際に必要な入力データを、入力データ再投入キュー２１８ａαに保存し、必要になった時点で、回復先の処理ブロックへ順に入力データを投入する。手動回復プラン通知部２１６ａαは、受け取った回復プランが手動回復プランであった場合に、それを手動回復プラン情報として外部へ通知する。
【００９４】
図１０は、図１Ａ〜図１Ｃの情報処理システムにおいて、その診断ブロック内の回復プラン実行部の詳細な構成例を示すブロック図である。ここでは、診断ブロック３００Ａを代表として説明するが、診断ブロック３００Ｂ，３００Ｃも同様である。図１０に示す回復プラン実行部２１ｂは、回復制御部２１１ｂと、再構成データ生成部２１２ｂと、回路データ２１３ｂと、構成回復部２１４ｂと、ステート回復部２１５ｂと、手動回復プラン通知部２１６ｂから構成される。詳細は図１１〜図１５で後述するが、回復制御部２１１ｂは、再構成データ生成部２１２ｂと、構成回復部２１４ｂと、ステート回復部２１５ｂと、手動回復プラン通知部２１６ｂとを制御する。
【００９５】
再構成データ生成部２１２ｂは、例えば構成回復部２１４ｂによって得られる障害箇所の情報と、回路データ２１３ｂとから再構成するべき障害箇所の再構成データを生成する。また、構成回復部２１４ｂは、再構成データを構成情報記憶管理部３１７Ａへ送信し、再構成可能回路部３１９Ａの自動回復（回路の再構成）を行う。ステート回復部２１５ｂは、再構成可能回路部３１９Ａの回路の再構成が完了した後、正常なステートを持つ回復元の処理ブロックからステートをコピーし、当該ステートをステート記憶管理部３１３Ａを通して第一バンク３１５Ａ１に上書きする。
【００９６】
手動回復プラン通知部２１６ｂは、受け取った回復プランが手動回復プランであった場合に、それを手動回復プラン情報として外部へ通知する。なお、ここでは、回路データ２１３ｂは、回復プラン実行部２１ｂ内に存在するが、処理系統間で三重化されていれば、処理ブロックや診断ブロック内の他の異なる場所に存在してもよい。
【００９７】
《回復プラン実行部（回復先の処理系統内）の詳細動作》
図１１は、図１０の回復プラン実行部において、当該回復プラン実行部が回復先の処理系統に属する場合の処理内容の一例を示すフローチャートである。図１１のフローチャートは、図３のステップＳ３０７における障害回復処理として実行される。図１１において、まず、回復プラン実行部２１ｂ〜２１ｄに入力された回復プランは、回復制御部２１１ｂ〜２１１ｄによって受信され、回復制御部２１１ｂ〜２１１ｄは、当該回復プランが手動回復プランかどうかをチェックする（ステップＳ１１０１）。回復プランが手動回復プランで無ければ、ステップＳ１１０２へ移行し、自動回復プランに基づく自動回復処理が行われる。以下、自動回復プランが示す回復先の処理系統が処理系統ＡＡであり、回復元の処理系統が処理系統ＢＢである場合を例として説明を行う。
【００９８】
ステップＳ１１０２において、回復制御部２１１ｂは、他の回復制御部２１１ａα，２１１ｃ，２１１ｄに向けて再構成の開始通知を第一通信部３０１Ａおよび通信路Ｌ２を用いてブロードキャストする。次いで、回復制御部２１１ｂは、再構成可能回路部３１９Ａを再構成する（ステップＳ１１０３）。
【００９９】
具体的には、まず、回復制御部２１１ｂは、構成回復部２１４ｂに障害箇所の情報を要求する。構成回復部２１４ｂは、構成不良箇所診断部３０２ＡのステップＳ４０３〜Ｓ４０５の処理と同様にして障害箇所の情報を取得し、取得に成功した場合、当該障害箇所の情報を再構成データ生成部２１２ｂへ渡す。再構成データ生成部２１２ｂは、障害箇所の情報と回路データ２１３ｂを用いて、再構成が必要な箇所の再構成データを生成し、それを構成回復部２１４ｂへ渡す。構成回復部２１４ｂは、第二通信部３０３Ａ，３１６Ａを用いて、再構成データを構成情報記憶管理部３１７Ａへ送る。構成情報記憶管理部３１７Ａは、再構成データをもとに、構成情報記憶部３１８Ａを上書きし、正常な回路へ復元する。復元が正常に完了した場合、構成情報記憶管理部３１７Ａは、その旨を構成回復部２１４ｂを介して回復制御部２１１ｂへ通知する。
【０１００】
続いて、回復制御部２１１ｂは、再構成が正常に終了したか否かをチェックする（ステップＳ１１０４）。再構成が正常に終了した場合、回復制御部２１１ｂは、他の回復制御部２１１ａα，２１１ｃ，２１１ｄに向けてステート回復の開始通知を第一通信部３０１Ａおよび通信路Ｌ２を用いてブロードキャストする。次に、回復制御部２１１ｂは、制御をステート回復部２１５ｂへ渡し、正常なステートの受信と既存のステートの上書きを行う（ステップＳ１１０６）。
【０１０１】
具体的には、ステート回復部２１５ｂは、第一通信部３０１Ａおよび通信路Ｌ２を用いて、正常な回復元の処理ブロック内のステート回復部２１５ｃと通信し、当該処理ブロック内の正常なステートを受け取る。ステート回復部２１５ｂは、受け取った正常なステートを、第二通信部３０３Ａ，３１６Ａを用いて、ステート記憶管理部３１３Ａへ送信する。ステート記憶管理部３１３Ａは、受信した正常なステートをステート記憶部３１４Ａへ上書きする。ステート記憶管理部３１３Ａは、上書きの完了後、その旨を第二通信部３０３Ａ，３１６Ａを用いて、ステート回復部２１５ｂへ通知する。
【０１０２】
次に、ステート回復部２１５ｂは、ステート回復が正常に終了したか否かをチェックする（ステップＳ１１０７）。ステート回復が正常に終了した場合、ステート回復部２１５ｂは、その旨を回復制御部２１１ｂへ通知し、回復制御部２１１ｂは、他の回復制御部２１１ａα，２１１ｃ，２１１ｄへステート回復の終了通知を第一通信部３０１Ａおよび通信路Ｌ２を用いてブロードキャストする（ステートＳ１１０８）。この際に、詳細は図１４で後述するが、ステート回復の終了通知を受けた、外部送受信ブロック１０αが有する入力データ再投入部２１７ａαは、自動回復処理の最中に受信して、まだ処理を行っていない分の入力データの再投入を開始する。ステートフル処理部３１２Ａは、当該再投入された入力データを順次処理する。
【０１０３】
続いて、回復制御部２１１ｂは、多数決判定部１４ｂに対して、入力データ再投入部２１７ａαから送られてくる入力データを処理した結果が、他の正常な処理系統が処理した結果に追いついたかを確認する（ステップＳ１１０９）。確認した結果、追いついていない場合、回復制御部２１１ｂは、もう一度ステップＳ１１０９を実行する。確認した結果、追いついていた場合、回復制御部２１１ｂは、他の回復制御部２１１ａα，２１１ｃ，２１１ｄとの間で、回復完了の合意を前述した回復プランの合意と同様の方法で行う（ステップＳ１１１０）。次に、回復制御部２１１ｂは、回復完了の合意が正常にとれたか否かを確認する（ステップＳ１１１１）。回復完了の合意が正常に行われた場合、回復制御部２１１ｂは、回復が完了したとして、通常モードへ移行する（ステップＳ１１１２）。具体的には、回復制御部２１１ｂは、モード情報２２ｂを通常モードへ上書きし、自動回復処理を終了する。
【０１０４】
また、ステップＳ１１０４において、回復制御部２１１ｂは、再構成が正常に終了しなかった場合、その旨を含んだ手動回復プランを作成する（ステップＳ１１１３）。ステップＳ１１０７において、ステート回復が正常に終了しなかった場合、回復制御部２１１ｂは、その旨を含んだ手動回復プランを作成する（ステップＳ１１１４）。ステップＳ１１１１において、回復完了の合意が正常に行われなかった場合、回復制御部２１１ｂは、その旨を含んだ手動回復プランを作成する（ステップＳ１１１５）。ステップＳ１１０１において、回復プランが手動回復プランであった場合、もしくは、ステップＳ１１１３〜Ｓ１１１５によって手動回復プランが作成された場合、詳細は図１５で後述するが、回復制御部２１１ａα，２１１ｂ〜２１１ｄ、及び、手動回復プラン通知部２１６ａα，２１６ｂ〜２１６ｃによって当該手動回復プランに基づく手動回復処理が行われる（ステップＳ１１１６）。
【０１０５】
《回復プラン実行部（回復元の処理系統内）の詳細動作》
図１２は、図１０の回復プラン実行部において、当該回復プラン実行部が回復元の処理系統に属する場合の処理内容の一例を示すフローチャートである。図１２のフローチャートは、図３のステップＳ３０７における障害回復処理として実行される。図１２において、まず、回復プラン実行部２１ｂ〜２１ｄに入力された回復プランは、回復制御部２１１ｂ〜２１１ｄによって受信され、回復制御部２１１ｂ〜２１１ｄは、当該回復プランが手動回復プランかどうかをチェックする（ステップＳ１２０１）。回復プランが手動回復プランで無ければ、ステップＳ１２０２へ移行し、自動回復プランに基づく自動回復処理が行われる。以下、自動回復プランが示す回復先の処理系統が処理系統ＡＡであり、回復元の処理系統が処理系統ＢＢである場合を例として説明を行う。
【０１０６】
ステップＳ１２０２において、回復制御部２１１ｃは、回復先の処理系統の回復制御部２１１ｂが再構成の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかをチェックする（ステップＳ１２０２）。タイムアウトするまでに再構成の開始通知を受信できた場合、回復制御部２１１ｃは、回復先の回復制御部２１１ｂがステート回復の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかをチェックする（ステップＳ１２０３）。
【０１０７】
タイムアウトするまでにステート回復の開始通知を受信できた場合、回復制御部２１１ｃは、制御をステート回復部２１５ｃへ渡す。ステート回復部２１５ｃは、ステート記憶管理部３１３Ｂに、ステートの書込み先を、第二バンク３１５Ｂ２へ切り替える事を、第二通信部３０３Ｂ，３１６Ｂを用いて要求する（ステップＳ１２０４）。次に、ステート回復部２１５ｃは、第一バンク３１５Ｂ１上のステートを、回復先のステート回復部２１５ｂへ第一通信部３０１Ｂおよび通信路Ｌ２を用いて送信する（ステップＳ１２０５）。
【０１０８】
具体的には、ステート回復部２１５ｃは、ステート記憶管理部３１３Ｂに、第一バンク３１５Ｂ１上のステートを読み出すよう、第二通信部３０３Ｂ，３１６Ｂを用いて要求する。ステート記憶管理部３１３Ｂは、第一バンク３１５Ｂ１上のステートを読み出し、当該ステートをステート回復部２１５ｃに向けて第二通信部３１６Ｂ，３０３Ｂを用いて送信する。ステート回復部２１５ｃは、この送信された正常なステートを回復先のステート回復部２１５ｂへ第一通信部３０１Ｂおよび通信路Ｌ２を用いて送信し、制御を回復制御部２１１ｃへ戻す。
【０１０９】
次に、回復制御部２１１ｃは、回復先の回復制御部２１１ｂがステート回復の終了通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかをチェックする（ステップＳ１２０６）。タイムアウトするまでにステート回復の終了通知を受信できた場合、回復制御部２１１ｃは、制御をステート回復部２１５ｃへ渡す。ステート回復部２１５ｃは、ステート記憶管理部３１３Ｂに、ステートの書込み先を、第一バンク３１５Ｂ１に戻す事を、第二通信部３０３Ｂ，３１６Ｂを用いて要求する（ステップＳ１２０７）。詳細は図１４で後述するが、この際に、ステート回復の終了通知を受けた、外部送受信ブロック１０αが有する入力データ再投入部２１７ａαは、自動回復処理の最中に受信して、まだ処理を行っていない分の入力データの再投入を開始する。
【０１１０】
続いて、回復制御部２１１ｃは、多数決判定部１４ｃに対して、自身を含めた正常な処理系統の処理結果が、入力データ再投入部２１７ａαから送られてくる入力データを処理している回復先の処理系統の処理結果に追いつかれたか否かを確認する（ステップＳ１２０８）。確認した結果、追いつかれていない場合、回復制御部２１１ｃは、もう一度ステップＳ１２０８を実行する。確認した結果、追いつかれた場合、回復制御部２１１ｃは、他の回復制御部２１１ａα，２１１ｂ，２１１ｄとの間で、回復完了の合意を前述した回復プランの合意と同様の方法で行う（ステップＳ１２０９）。次に、回復制御部２１１ｃは、回復完了の合意が正常にとれたか否かを確認する（ステップＳ１２１０）。回復完了の合意が正常に行われた場合、回復制御部２１１ｃは、回復が完了したとして、通常モードへ移行する（ステップＳ１２１１）。具体的には、回復制御部２１１ｃは、モード情報２２ｃを通常モードへ上書きし、自動回復処理を終了する。
【０１１１】
また、ステップＳ１２０２においてタイムアウトした場合、回復制御部２１１ｃは、その旨を含んだ手動回復プランを作成する（ステップＳ１２１２）。ステップＳ１２０３においてタイムアウトした場合、回復制御部２１１ｃは、その旨を含んだ手動回復プランを作成する（ステップＳ１２１３）。ステップＳ１２０６においてタイムアウトした場合、回復制御部２１１ｃは、その旨を含んだ手動回復プランを作成する（ステップＳ１２１４）。ステップＳ１２１０において、回復完了の合意が正常に行われなかった場合、回復制御部２１１ｃは、その旨を含んだ手動回復プランを作成する（ステップＳ１２１５）。ステップＳ１２０１において、回復プランが手動回復プランであった場合、もしくは、ステップＳ１２１２〜Ｓ１２１５によって手動回復プランが作成された場合、詳細は図１５で後述するが、回復制御部２１１ａα，２１１ｂ〜２１１ｄ、及び、手動回復プラン通知部２１６ａα，２１６ｂ〜２１６ｃによって当該手動回復プランに基づく手動回復処理が行われる（ステップＳ１２１６）。
【０１１２】
《回復プラン実行部（回復先および回復元でない処理系統内）の詳細動作》
図１３は、図１０の回復プラン実行部において、当該回復プラン実行部が回復先および回復元の処理系統のいずれにも属しない場合の処理内容の一例を示すフローチャートである。図１３のフローチャートは、図３のステップＳ３０７における障害回復処理として実行される。図１３において、まず、回復プラン実行部２１ｂ〜２１ｄに入力された回復プランは、回復制御部２１１ｂ〜２１１ｄによって受信され、回復制御部２１１ｂ〜２１１ｄは、当該回復プランが手動回復プランかどうかをチェックする（ステップＳ１３０１）。回復プランが手動回復プランで無ければ、ステップＳ１３０２へ移行し、自動回復プランに基づく自動回復処理が行われる。以下、自動回復プランが示す回復先の処理系統が処理系統ＡＡであり、回復元の処理系統が処理系統ＢＢである場合を例として説明を行う。
【０１１３】
ステップＳ１３０２において、回復制御部２１１ｄは、回復先の回復制御部２１１ｂが再構成の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかをチェックする（ステップＳ１３０２）。タイムアウトするまでに再構成の開始通知を受信できた場合、回復制御部２１１ｄは、回復先の回復制御部２１１ｂがステート回復の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかをチェックする（ステップＳ１３０３）。タイムアウトするまでにステート回復の開始通知を受信できた場合、回復制御部２１１ｄは、回復先の回復制御部２１１ｂがステート回復の終了通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかチェックする（ステップＳ１３０４）。
【０１１４】
タイムアウトするまでにステート回復の終了通知を受信できた場合、詳細は図１４で後述するが、ステート回復の終了通知を受けた、外部送受信ブロック１０αが有する入力データ再投入部２１７ａαは、自動回復処理の最中に受信して、まだ処理を行っていない分の入力データの再投入を開始する。回復制御部２１１ｄは、多数決判定部１４ｄに対して、自身を含めた正常な処理系統の処理結果が、入力データ再投入部２１７ａαから送られてくる入力データを処理している回復先の処理系統の処理結果に追いつかれたか否かを確認する（ステップＳ１３０５）。確認した結果、追いつかれていない場合、回復制御部２１１ｄは、もう一度ステップＳ１３０５を実行する。確認した結果、追いつかれた場合、回復制御部２１１ｄは、他の回復制御部２１１ａα，２１１ｂ，２１１ｃとの間で、回復完了の合意を前述した回復プランの合意と同様の方法で行う（ステップＳ１３０６）。次に、回復制御部２１１ｄは、回復完了の合意が正常にとれたか否かを確認する（ステップＳ１３０７）。回復完了の合意が正常に行われた場合、回復制御部２１１ｄは、回復が完了したとして、通常モードへ移行する（ステップＳ１３０８）。具体的には、回復制御部２１１ｄは、モード情報２２ｄを通常モードへ上書きし、自動回復処理を終了する。
【０１１５】
また、ステップＳ１３０２においてタイムアウトした場合、回復制御部２１１ｄは、その旨を含んだ手動回復プランを作成する（ステップＳ１３０９）。ステップＳ１３０３においてタイムアウトした場合、回復制御部２１１ｄは、その旨を含んだ手動回復プランを作成する（ステップＳ１３１０）。ステップＳ１３０４においてタイムアウトした場合、回復制御部２１１ｄは、その旨を含んだ手動回復プランを作成する（ステップＳ１３１１）。ステップＳ１３０７において、回復完了の合意が正常に行われなかった場合、回復制御部２１１ｄは、その旨を含んだ手動回復プランを作成する（ステップＳ１３１２）。ステップＳ１３０１において、回復プランが手動回復プランであった場合、もしくは、ステップＳ１３０９〜Ｓ１３１２によって手動回復プランが作成された場合、詳細は図１５で後述するが、回復制御部２１１ａα，２１１ｂ〜２１１ｄ、及び、手動回復プラン通知部２１６ａα，２１６ｂ〜２１６ｃによって当該手動回復プランに基づく手動回復処理が行われる（ステップＳ１３１３）。
【０１１６】
《回復プラン実行部（外部送受信ブロック内）の詳細動作》
図１４は、図９の回復プラン実行部の処理内容の一例を示すフローチャートである。図１４のフローチャートは、図３のステップＳ３０７における障害回復処理として実行される。図１４において、まず、回復プラン実行部２１ａαに入力された回復プランは、回復制御部２１１ａαによって受信され、回復制御部２１１ａαは、当該回復プランが手動回復プランかどうかをチェックする（ステップＳ１４０１）。回復プランが手動回復プランで無ければ、ステップＳ１４０２へ移行し、自動回復プランに基づく自動回復処理が行われる。以下、自動回復プランが示す回復先の処理系統が処理系統ＡＡであり、回復元の処理系統が処理系統ＢＢである場合を例として説明を行う。
【０１１７】
ステップＳ１４０２において、回復制御部２１１ａαは、回復先の処理系統内の第一通信部３１１Ａに向けた入力データの送信をやめる（ステップＳ１４０２）。次に、回復制御部２１１ａαは、回復先の回復制御部２１１ｂが再構成の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかチェックする（ステップＳ１４０３）。タイムアウトするまでに再構成の開始通知を受信できた場合、回復制御部２１１ａαは、回復先の回復制御部２１１ｂがステート回復の開始通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかチェックする（ステップＳ１４０４）。
【０１１８】
タイムアウトするまでにステート回復の開始通知を受信できた場合、回復制御部２１１ａαは、入力データ再投入部２１７ａαに、入力データ投入部１２αからの入力データをキャプチャし、入力データ再投入キュー２１８ａαへ保存し続けるよう要求する（ステップＳ１４０５）。続いて、回復制御部２１１ａαは、回復先の回復制御部２１１ｂがステート回復の終了通知を行うのをタイムアウトするまで待ち、タイムアウトしたかどうかチェックする（ステップＳ１４０６）。タイムアウトするまでにステート回復の終了通知を受信できた場合、回復制御部２１１ａαは、入力データ投入部１２αに、正常な処理系統への入力データの投入スピードを低下させるよう要求する（ステップＳ１４０７）。
【０１１９】
次に、回復制御部２１１ａαは、入力データ再投入キュー２１８ａαから入力データを一つ取り出し、回復先の処理系統に送信するよう、入力データ再投入部２１７ａαへ要求する（ステップＳ１４０８）。続いて、回復制御部２１１ａαは、多数決判定部１４ａαに対して、入力データ再投入部２１７ａαから送られてくる入力データを処理した回復先の処理系統の処理結果が、他の正常な処理系統からの処理結果に追いついたか否かを確認する（ステップＳ１４０９）。
【０１２０】
確認した結果、追いついていない場合、回復制御部２１１ａαは、もう一度ステップＳ１４０８へ進む。確認した結果、追いついていた場合、回復制御部２１１ａαは、入力データ再投入部２１７ａαに、「入力データ投入部１２αからの入力データをキャプチャし、入力データ再投入キュー２１８ａαへ保存する」ことの停止を要求する。さらに、回復制御部２１１ａαは、入力データ投入部１２αに、正常な処理系統への入力データの投入スピードを正常なスピードへ戻すよう要求する（ステップＳ１４１０）。
【０１２１】
続いて、回復制御部２１１ａαは、他の回復制御２１１ｂ〜２１１ｄとの間で、回復完了の合意を前述した回復プランの合意と同様の方法で行う（ステップＳ１４１１）。次に、回復制御部２１１ａαは、回復完了の合意が正常にとれたか否かを確認する（ステップＳ１４１２）。回復完了の合意が正常に行われた場合、回復制御部２１１ａαは、回復が完了したとして、通常モードへ移行する（ステップＳ１４１３）。具体的には、回復制御部２１１ａαは、モード情報２２ａαを通常モードへ上書きし、自動回復処理を終了する。
【０１２２】
また、ステップＳ１４０３においてタイムアウトした場合、回復制御部２１１ａαは、その旨を含んだ手動回復プランを作成する（ステップＳ１４１４）。ステップＳ１４０４においてタイムアウトした場合、回復制御部２１１ａαは、その旨を含んだ手動回復プランを作成する（ステップＳ１４１５）。ステップＳ１４０６においてタイムアウトした場合、回復制御部２１１ａαは、その旨を含んだ手動回復プランを作成する（ステップＳ１４１６）。ステップＳ１４１２において、回復完了の合意が正常に行われなかった場合、回復制御部２１１ａαは、その旨を含んだ手動回復プランを作成する（ステップＳ１４１７）。ステップＳ１４０１において、回復プランが手動回復プランであった場合、もしくは、ステップＳ１４１４〜Ｓ１４１７によって手動回復プランが作成された場合、詳細は図１５で後述するが、回復制御部２１１ａα，２１１ｂ〜２１１ｄ、及び、手動回復プラン通知部２１６ａα，２１６ｂ〜２１６ｃによって当該手動回復プランに基づく手動回復処理が行われる（ステップＳ１４１８）。
【０１２３】
《回復プラン実行部（手動回復処理時）の詳細動作》
図１５は、図１Ａ〜図１Ｃの情報処理システムにおいて、その回復プラン実行部が行う手動回復処理の処理内容の一例を示すフローチャートである。図１５のフローチャートは、前述したステップＳ１１１６、ステップＳ１２１６、ステップＳ１３１３、およびステップＳ１４１８における手動回復処理として、回復プラン実行部２１ａα，２１ｂ〜２１ｄによって実行される。
【０１２４】
図１５において、まず、手動回復プラン通知部２１６ａα，２１６ｂ〜２１６ｄは、回復制御部２１１ａα，２１１ｂ〜２１１ｄを介して受信した手動回復プランを、手動回復プラン情報として、例えば、各処理系統に備わるログ記録部（図示は省略）や、通信路Ｌ２に接続された監視装置（図示は省略）へ送信する（ステップＳ１５０１）。次に、回復制御部２１１ａα，２１１ｂ〜２１１ｄは、手動回復プラン内の情報から、自身が障害系統かどうかを判定する。自身が障害系統だと判定した場合、障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄのいずれかは、モード情報２２ａα，２２ｂ〜２２ｄを手動回復待ちモードへ書きかえる（ステップＳ１５０３）。
【０１２５】
続いて、例えば、監視装置を管理する管理者等は、手動回復プラン情報に基づく手動回復処理を実施する（ステップＳ１５０４）。次に、障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄのいずれかは、手動回復処理が完了し、管理者等からその旨が通知されると、モード情報２２ａα，２２ｂ〜２２ｄを手動回復済みモードへ書きかえる（ステップＳ１５０５）。次いで、障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄのいずれかは、自身の手動回復済みモードへの移行を、他の回復制御部２１１ａα，２１１ｂ〜２１１ｄへ通知する（ステップＳ１５０６）。その後、障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄのいずれかは、モード情報２２ａα，２２ｂ〜２２ｄを障害回復モードへ書きかえ、前述したステップＳ３０１へ進む（ステップＳ１５０７）。
【０１２６】
一方、ステップＳ１５０２において自身が障害系統だと判定されなかった場合、非障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄは、モード情報２２ａα，２２ｂ〜２２ｄを縮退運転モードへ書きかえる（ステップＳ１５０８）。次に、非障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄは、障害系統からの手動回復済みモードへの移行通知を待ち、通知が届いているか否かをチェックする（ステップＳ１５０９）。通知が届いていない場合、もう一度ステップＳ１５０９を実行する。通知が届いた場合、非障害系統に対応する回復制御部２１１ａα，２１１ｂ〜２１１ｄは、モード情報２２ａα，２２ｂ〜２２ｄを障害回復モードへ書きかえ、前述したステップＳ３０１へ進む（ステップＳ１５１０）。
【０１２７】
《モード情報の詳細》
図１６は、図１Ａ〜図１Ｃの情報処理システムにおいて、そのモード情報に格納される各モードの一例およびその関係の一例を表す状態遷移図である。図１６に示すように、モード情報２２ａα，２２ｂ〜２２ｄに格納されるモードは、通常モード１６０と、障害回復モード１６１と、手動回復待ちモード１６２と、手動回復済みモード１６３と、縮退運転モード１６４から構成される。
【０１２８】
通常モード１６０から障害回復モード１６１への遷移１６０１６１は、ステップＳ３０２によって行われる。障害回復モード１６１から通常モード１６０への遷移１６１１６０は、ステップＳ１１１２、ステップＳ１２１１、ステップＳ１３０８、ステップＳ１４１３によって行われる。障害回復モード１６１から手動回復待ちモード１６２への遷移１６１１６２は、ステップＳ１５０３によって行われる。障害回復モード１６１から縮退運転モード１６４への遷移１６１１６４は、ステップＳ１５０８によって行われる。手動回復待ちモード１６２から手動回復済みモード１６３への遷移１６２１６３は、ステップＳ１５０５によって行われる。手動回復済みモード１６３から障害回復モード１６１への遷移１６３１６１はステップＳ１５０７によって行われる。縮退運転モード１６４から障害回復モード１６１への遷移１６４１６１はステップＳ１５１０によって行われる。
【０１２９】
例えば、各モード情報２２ａα，２２ｂ〜２２ｄは、自動回復処理が行われている間は共に障害回復モード１６１となり、自動回復処理が完了すると共に通常モード１６０となる。また、例えば、手動回復処理が行われている間、当該手動回復処理の回復先となる障害系統のモード情報は、手動回復待ちモード１６２となり、それ以外のモード情報は縮退運転モード１６４となる。そして、当該障害系統の手動回復処理が完了すると、当該障害系統のモード情報は、手動回復済みモード１６３となり、これを受けて、それ以外のモード情報は、障害回復モード１６１となる。その後、当該障害系統のモード情報は、障害回復モード１６１を介して通常モード１６０となり、それ以外のモード情報も、通常モード１６０となる。
【０１３０】
モード情報が縮退運転モード１６４となっている各処理系統は、縮退運転を行う。すなわち、例えば、処理系統ＡＡに手動回復処理が必要な障害が生じた場合、処理系統ＢＢ、処理系統ＣＣ、および外部送受信ブロック１０αのモード情報は、共に縮退運転モード１６４となり、処理系統ＢＢおよび処理系統ＣＣは、外部送受信ブロック１０αからの入力データに応じた処理をそのまま継続する。この際に、外部送受信ブロック１０αの多数決判定部１４ａαは、当該２個の処理系統からの２個の処理結果を受け、当該２個の処理結果が同一の場合には当該同一の処理結果を外部に向けて出力する。一方、多数決判定部１４ａαは、当該２個の処理結果が異なる場合には、システムの停止等を行う。
【０１３１】
また、モード情報が障害回復モード１６１であり、各処理系統で自動回復処理が行われている間、回復先の処理系統を除いた残り２個の処理系統と外部送受信ブロックは、前述した縮退運転モード１６４の場合と同様にして縮退運転を行う。この縮退運転の期間では、情報処理システムは、多数決判定部を用いてエラーを訂正することは困難となるものの、エラーを検出することは可能となっている。これによって、情報処理システムの稼働を継続しつつ誤った処理結果が外部に流出することを防止することができ、フェイルセーフやフェイルソフトの観点で情報処理システムの信頼性を向上させることが可能になる。
【０１３２】
《システム構成情報の詳細》
図１７は、図１Ａ〜図１Ｃの情報処理システムにおいて、そのシステム構成情報に格納される内容の一例を示す図である。図１７に示すように、システム構成情報１７ａα，１７ｂ〜１７ｄのそれぞれには、図１に示した外部送受信ブロック１０α，１０β、診断ブロック３００Ａ〜３００Ｃ、および処理ブロック３１０Ａ〜３１０Ｃの間の接続関係等が保持される。当該システム構成情報１７ａα，１７ｂ〜１７ｄは、例えば、通信を行う際や、障害発生時の各系統間の依存関係を解決する際等で使用される。
【０１３３】
《障害診断情報共有部の他の処理内容》
図１８は、図１Ａ〜図１Ｃの情報処理システムにおいて、その障害診断情報共有部が行う図６とは異なる処理内容の一例を示すフローチャートである。図６は、障害回復モードとなっている障害診断情報共有部１８ａα，１８ｂ〜１８ｄで実行されるが、図１８は、通常モードとなっている（すなわち多数決判定部からエラー判定結果を受けていない）障害診断情報共有部１８ａα，１８ｂ〜１８ｄで実行され、図２のフローチャートと並行して実行される。
【０１３４】
図１８において、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、他の障害診断回復系統からの障害診断情報を待ちうける（ステップＳ１８０１）。他の障害診断回復系統から障害診断情報が送られてきた場合、障害診断情報共有部１８ａα，１８ｂ〜１８ｄは、前述した図３のフローチャートを実行する（ステップＳ１８０２）。ここで、例えば、障害診断回復系統ａα内の多数決判定部１４ａαに障害が生じ、障害診断回復系統ａαから障害診断情報共有部１８ｂ〜１８ｄに向けて障害診断情報が送られてきた場合を想定する。
【０１３５】
この場合、各障害診断回復系統ｂ〜ｄは、図３のステップＳ３０２において障害回復モードへ移行し、ステップＳ３０３において障害診断情報を生成する。当該障害診断情報には、例えば、自身の多数決判定部で障害が検出されない旨の情報や、あるいは、障害診断回復系統ａαからのみ障害診断情報を受信した旨の情報が含まれる。その後、ステップＳ３０４において、各障害診断情報共有部１８ａα，１８ｂ〜１８ｄは障害診断情報を共有する。この際には、障害診断情報共有部１８ｂ〜１８ｄ間では障害が検出されない旨あるいは障害診断回復系統ａαからのみ障害診断情報を受信した旨で一致し、障害診断情報共有部１８ａαの障害診断情報のみが異なることになる。この場合、障害診断情報共有部１８ｂ〜１８ｄ（又は回復プラン判定部１９ｂ〜１９ｄ）は、障害診断回復系統ａαに障害があると判断し、その旨の信号を外部送受信ブロック１０βに通知し、外部送受信ブロック１０αから外部送受信ブロック１０βへの切り替えを行わせる。
【０１３６】
また、例えば、障害診断回復系統ｂ内の多数決判定部１４ｂに障害が生じ、障害診断回復系統ｂから障害診断情報共有部１８ａα，１８ｃ，１８ｄに向けて障害診断情報が送られてきた場合を想定する。この場合、各障害診断回復系統ａα，ｃ，ｄは、図３のステップＳ３０２において障害回復モードへ移行し、ステップＳ３０３において障害診断情報を生成する。当該障害診断情報は、例えば、自身の多数決判定部で障害が検出されない旨の内容や、あるいは、障害診断回復系統ｂからのみ障害診断情報を受信した旨の内容を持つ。
【０１３７】
その後、図３のステップＳ３０４において、各障害診断情報共有部１８ａα，１８ｂ〜１８ｄは障害診断情報を共有する。この際には、障害診断情報共有部１８ａα，１８ｃ，１８ｄ間では障害が検出されない旨あるいは障害診断回復系統ｂからのみ障害診断情報を受信した旨で一致し、障害診断情報共有部１８ｂの障害診断情報のみが異なることになる。この場合、図３のステップＳ３０５において、回復プラン判定部１９ａα，１９ｃ，１９ｄは、診断ブロック３００Ａに障害があると判断し、その旨を表す手動回復プランを作成する。その後、ステップＳ３０６およびＳ３０７の処理が実行される。
【０１３８】
なお、ここでは、障害診断回復系統ａαに障害がある際には外部送受信ブロックを早期に切り替えることが望ましいため、障害診断情報共有部１８ｂ〜１８ｄ（又は回復プラン判定部１９ｂ〜１９ｄ）が当該切り替えを指示する例で説明を行った。ただし、場合によっては、図３のステップＳ３０５〜Ｓ３０７を処理を経たのち、回復プラン実行部によって当該切り替えの指示が行われるような処理を用いることも可能である。さらに、場合によっては、障害診断情報共有部１８ｂ〜１８ｄに、障害診断回復系統ａαからの障害診断情報のみを受けた時点で、外部送受信ブロックの切り替えの指示を出させるような処理を用いることも可能である。いずれにしても、障害診断情報共有部１８ａα，１８ｂ〜１８ｄによって障害診断情報の共有を行うことで、障害診断情報共有部のいずれか一つのみから障害診断情報が生成されるような事態（すなわち多数決判定部等に障害が生じた事態）を検出することが可能になる。
【０１３９】
また、図３のフローチャートは、ステップＳ２０８およびステップＳ１８０２の２つのステップから並列に起動される可能性がある。そのため、２つの並列で動作するステップが同時に障害回復モードへ遷移しないように、ステップＳ３０１およびステップＳ３０２は、ひと固まりの処理として実行される必要がある。
【０１４０】
《障害診断情報共有部における障害診断情報の交換方法》
図１９は、図６のフローチャートにおいて、障害診断情報の交換方法の一例を示すシーケンス図である。図１９に示すように、各障害診断回復系統ａα，ｂ〜ｄは、図６のステップＳ６０２において、自身が生成したデータ（ここでは障害診断情報）Ａ１９０，Ｂ１９０〜Ｄ１９０を、他の各障害診断回復系統へブロードキャストすることによって、データを交換する。その後、障害診断回復系統ａα，ｂ〜ｄのそれぞれは、図６のステップＳ６０３において、交換によって得られたデータ１９１と、自身が生成したデータ（Ａ１９０，Ｂ１９０〜Ｄ１９０のいずれか）とを合わせ、Ａ１９０〜Ｄ１９０が全て揃えば成功、何らかのエラーにより全てが揃わなければ失敗と判断する。
【０１４１】
《回復プラン合意部における回復プランの交換方法》
図２０および図２１は、図７のフローチャートにおいて、回復プランのビザンチン合意プロトコルに基づく交換方法の一例を示すシーケンス図である。図２０には、ビザンチン合意プロトコルを用いて、例えば系統aが生成したデータ（ここでは回復プラン）を共有する際の処理内容が示されている。ビザンチン合意プロトコルは、あるｎ個のタスク間での合意、つまり同じデータの共有の際、ｍ個のタスク中に障害が存在しているが、どのタスクに障害が存在しているか分からない状態でも、障害が発生しているタスク以外のタスク間で、同一データの共有を行い、正しく合意を取るためのプロトコルである。データを共有するため、１個のタスクが他の（ｎ−１）個のタスクにデータを送るが、このとき、合意が成立するのは、以下の３つの条件が成立するときである。
【０１４２】
１つ目は、全ての障害のないタスク間では、受信データに関して合意が成立する。２つ目は、送信のタスクが正常であるなら、前記１つ目の条件で合意されたデータは実際に送信されたデータに一致する。３つ目は、前記１つ目の条件および２つ目の条件のもとでｍ個のタスクに障害が含まれているとき、ビザンチン合意が成立するのは、ｎ≧３ｍ＋１の関係が成立するときである。
【０１４３】
ビザンチン合意プロトコルは、図７のステップＳ７０２において、回復プランの確実な共有のために実行される。図２０では、系統ａが作成したデータ（ここでは回復プラン）を、Ａ（２００）で示している。また、ここでは、系統ｂが、データの送信時に間違ったデータを送信してしまうタイプのビザンチン障害であることを前提に説明する。まず、系統ａは、１回目の通信として、データＡ（２００）を他の系統ｂ〜ｄへブロードキャストする。系統ｂ〜ｄで受信されたＡ（２００）は、Ａ（２００）に対するｉ番目の受信データであるという意味でＡｉ（ｉ＝１，２，３）と表し、ここでは１番目の受信データであるため、Ａ１（２０１）としている。正しく受信された場合、Ａ１、Ａ２、Ａ３は全て同一のデータである。
【０１４４】
次に、データＡ１（２０１）を受信した系統ｂ〜ｄは、２回目の通信として、自身と、系統ａ以外の残り２つの系統へそれぞれＡ１（２０１）を送信する。系統ｃ，ｄは、正常に動作しているため、正しいデータであるＡ２（２０２）およびＡ３（２０３）を受信する事ができるが、系統ｂは送信時に誤ったデータ（ここではＡ’，Ａ”）を送信してしまうタイプのビザンチン障害であるため、系統ｃ，ｄは、誤ったデータＡ’３（２０４），Ａ”３（２０５）を受信している。
【０１４５】
次に、系統ｂ〜ｄは、異なる経路から受信した３つのデータ、Ａ１（２０１）Ａ２（２０２）及びＡ３（２０３）またはＡ’３（２０４）またはＡ”３（２０５）を多数決し、多数決判定結果として、Ａ２０６〜Ａ２０８を得る。このようにビザンチン合意プロトコルを用いることによって、系統ｃ，ｄは、系統ｂから誤ったデータＡ’３（２０４）、Ａ”３（２０５）を受け取ったにもかかわらず、正しい結果であるＡ（２０７），Ａ（２０８）を得ることができる。
【０１４６】
図２１には、ビザンチン合意プロトコルを用いて、図２０に示した処理内容と同様に、系統a，ｂ，ｃ，ｄのそれぞれが自身のデータ（ここでは回復プラン）Ａ（２１０），Ｂ（２１１），Ｃ（２１２），Ｄ（２１３）を共有する際の処理内容が示されている。図２１では、系統ａが、データの送信時に間違ったデータを送信してしまうタイプのビザンチン障害であることを前提に説明する。つまり、単一障害を前提とすると、例えば第一通信部１３αや障害診断情報共有部１８ａα等がビザンチン障害に陥った場合の説明となる。
【０１４７】
図２０で前述したように、各系統ａ〜ｄは、ビザンチン合意プロトコルに従って、自身の系統以外のデータについて、３つずつ、データを受信する。この例では、系統ａは、系統ｂに向けて誤ったデータＡ”を、系統ｂ，ｃに向けて誤ったデータＡ’を送信している。また、系統ａは、系統ｂからのデータＢを受けて系統ｃ，ｄに向けて誤ったデータＢ’を送信し、系統ｃからのデータＣを受けて系統ｂ，ｄに向けて誤ったデータＣ’を送信し、系統ｄからのデータＤを受けて系統ｂ，ｃに向けて誤ったデータＤ’を送信している。
【０１４８】
これにより、系統ｂ〜ｄが受信したデータの中には、誤ったデータが一部含まれている。ただし、データの交換が終了したのち、系統ａ〜ｄが異なる経路から受信した３つのデータを多数決判定した結果、系統ａは、Ａ，Ｂ，Ｃ，Ｄを、系統ｂ〜ｄは、Ａ’，Ｂ，Ｃ，Ｄを得ることができる。このように、ビザンチン合意プロトコルによって、全ての系統で交換したデータを少なくともビザンチン障害が生じた系統以外の系統で同じものにすることができる。すなわち、系統ａでビザンチン障害が生じた場合、系統ｂ〜ｄは、系統ａのデータＡを正しく得られない場合があるが、系統ｂ〜ｄのデータＢ〜Ｄを正しく得ることはできる。
【０１４９】
その結果、ビザンチン障害が生じた系統以外の３つの系統ｂ〜ｄは、データ（ここでは回復プラン）Ｂ〜Ｄの一致に基づいて、系統ａを障害発生箇所とする障害発生後の動作（手動回復処理や縮退運転等）を正しく実行することが可能になる。なお、ビザンチン障害が存在する場合には正しい自動回復処理が行えない場合がある。したがって、図２１のように、例えば３個のデータＣが得られずに２個のデータＣと１個のデータＣ’によって多数決判定を行うといったような多数決判定の必要性が生じるような場合には、図７のステップＳ７０４において、回復プランを不一致として処理することが望ましい。
【０１５０】
以上、本実施の形態１の情報処理システムを用いることで、代表的には、信頼性の向上が実現可能になる。
【０１５１】
（実施の形態２）
《処理ブロックの構成（変形例）》
図２２は、本発明の実施の形態２による情報処理システムにおいて、その処理ブロックの構成例を示すブロック図である。図２２に示す処理ブロック３１０Ａは、前述した図１の情報処理システムにおける処理ブロック３１０Ａの変形例となっている。ここでは、図１の処理ブロック３１０Ａを代表として説明するが、図１の処理ブロック３１０Ｂ，３１０Ｃに対しても図２２の構成例が適用される。
【０１５２】
図２２に示す処理ブロック３１０Ａは、図１の処理ブロックと比較して、再構成可能回路部３１９Ａ内の構成が異なっており、それ以外の構成に関しては図１と同様である。図２２に示す再構成可能回路部３１９Ａは、図１の再構成可能回路部内のステートフル処理部３１２Ａの代わりに三重化されたステートフル処理部［１］３１２Ａ１〜［３］３１２Ａ３と、多数決判定部３２０Ａを備えている。
【０１５３】
ステートフル処理部［１］３１２Ａ１〜［３］３１２Ａ３は、第一通信部３１１Ａを介して入力された入力データと、ステート記憶部３１４Ａからステート記憶管理部３１３Ａを介して入力されたステートとを用いて同一の処理を行い、これによって得られる処理結果（出力データ）およびステートを多数決判定部３２０Ａにそれぞれ出力する。多数決判定部３２０Ａは、３個の処理結果（出力データ）の多数決判定を行い、これによって得られる処理結果（出力データ）を第一通信部３１１Ａを介して出力し、また、３個のステートの多数決判定を行い、これによって得られるステートをステート記憶管理部３１３Ａを介してステート記憶部３１４Ａに書き込む。
【０１５４】
このように、本実施の形態２の情報処理システムは、再構成可能回路部内で多数決判定を行い、更に、図１の外部送受信ブロック１０αおよび診断ブロック３００Ａ〜３００Ｃ内でも多数決判定を行うといったように２段階の多数決判定を行う構成となっている。このような構成例を用いると、例えば、ステートフル処理部［１］３１２Ａ１〜［３］３１２Ａ３のいずれか一つに障害が生じたような場合でも、回復処理や縮退運転等を行わずに情報処理システムとしての処理を継続的に行うことが可能になる。言い換えれば、見かけ上、処理ブロックの耐障害性を向上させることが可能になる。
【０１５５】
ただし、再構成可能回路部内の多数決判定部３２０Ａに障害が生じた場合には回復処理が必要となる。また、本実施の形態２の情報処理システムは、実施の形態１における図１の情報処理システムと比較して、再構成可能回路部での回路規模の増大やレイテンシの増大等が生じ得る。したがって、回路規模、レイテンシ、および信頼性のバランスの観点では、本実施の形態２の情報処理システムよりも、実施の形態１における図１の情報処理システムの方が望ましいと考えられる。
【０１５６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１５７】
例えば、ここでは、ビザンチン障害を含めた単一障害に対応するため、３個の処理ブロック３１０Ａ〜３１０Ｃと４個の障害診断回復系統ａα，ｂ〜ｄを備えたが、２個の障害に対応する場合には、例えば、多数決判定を可能にするための５個の処理ブロックと、２個の障害発生時にビザンチン合意を得るための７個の障害診断回復系統を備えればよい。
【符号の説明】
【０１５８】
１０α，１０β  外部送受信ブロック
１１α，１１β  外部通信部
１２α，１２β  入力データ投入部
１３α，１３β，３０１Ａ〜３０１Ｃ  第一通信部
１４ａα，１４ａβ，１４ｂ〜１４ｄ  多数決判定部
１５α，１５β  出力データ投入部
１６ａα，１６ａβ，１６ｂ〜１６ｄ  システム障害診断部
１７ａα，１７ａβ，１７ｂ〜１７ｄ  システム構成情報
１８ａα，１８ａβ，１８ｂ〜１８ｄ  障害診断情報共有部
１９ａα，１９ａβ，１９ｂ〜１９ｄ  回復プラン判定部
２０ａα，２０ａβ，２０ｂ〜２０ｄ  回復プラン合意部
２１１ａα  回復制御部
２１１ｂ  回復制御部
２１２ｂ  再構成データ生成部
２１３ｂ  回路データ
２１４ｂ  構成回復部
２１５ｂ  ステート回復部
２１６ａα  手動回復プラン通知部
２１６ｂ  手動回復プラン通知部
２１７ａα  入力データ再投入部
２１８ａα  入力データ再投入キュー
２１ａα，２１ａβ，２１ｂ〜２１ｄ  回復プラン実行部
２２ａα，２２ａβ，２２ｂ〜２２ｄ  モード情報
２３ａα，２３ａβ，２３ｂ〜２３ｄ  障害診断部
３００Ａ〜３００Ｃ  診断ブロック
３０２Ａ〜３０２Ｃ  構成不良箇所診断部
３０３Ａ〜３０３Ｃ  第二通信部
３１０Ａ〜３１０Ｃ  処理ブロック
３１１Ａ〜３１１Ｃ  第一通信部
３１２Ａ，３１２Ａ１〜３２１Ａ３  ステートフル処理部
３１３Ａ〜３１３Ｃ  ステート記憶管理部
３１４Ａ〜３１４Ｃ  ステート記憶部
３１５Ａ１〜３１５Ｃ１  第一バンク
３１５Ａ２〜３１５Ｃ２  第二バンク
３１６Ａ〜３１６Ｃ  第二通信部
３１７Ａ〜３１７Ｃ  構成情報記憶管理部
３１８Ａ〜３１８Ｃ  構成情報記憶部
３２０Ａ  多数決判定部
ＡＡ〜ＣＣ  処理系統
Ｌ１，Ｌ２  通信路
ａα，ａβ，ｂ〜ｄ  障害診断回復系統
【図１Ａ】
2014178793.tif 000003
【図１Ｂ】
2014178793.tif 000004
【図１Ｃ】
2014178793.tif 000005
【図２】
2014178793.tif 000006
【図３】
2014178793.tif 000007
【図４】
2014178793.tif 000008
【図５】
2014178793.tif 000009
【図６】
2014178793.tif 000010
【図７】
2014178793.tif 000011
【図８】
2014178793.tif 000012
【図９】
2014178793.tif 000013
【図１０】
2014178793.tif 000014
【図１１】
2014178793.tif 000015
【図１２】
2014178793.tif 000016
【図１３】
2014178793.tif 000017
【図１４】
2014178793.tif 000018
【図１５】
2014178793.tif 000019
【図１６】
2014178793.tif 000020
【図１７】
2014178793.tif 000021
【図１８】
2014178793.tif 000022
【図１９】
2014178793.tif 000023
【図２０】
2014178793.tif 000024
【図２１】
2014178793.tif 000025
【図２２】
2014178793.tif 000026