(57)【特許請求の範囲】
【請求項１】
それぞれ中央処理装置とバスとを有し互いに同一の処理を行う複数の情報処理装置と、各情報処理装置のバスと接続するとともに各情報処理装置における処理の同一性を照合する照合手段とを有する耐故障性システムにおいて、
前記照合手段を介して各情報処理装置と接続する周辺回路を備え、
前記照合手段は、各情報処理装置に対応して設けた第１の記憶手段と、各情報処理装置のバスに流れる周辺回路へのデータを該情報処理装置に対応する前記第１の記憶手段に転送する第１の転送手段と、各第１の記憶手段に記憶されているデータの整合性を照合する整合性照合手段と、整合性照合手段により各第１の記憶手段に記憶されているデータが整合性を有していると判定した場合には該データを周辺回路側に転送するとともに整合性を有していないと判定した場合には正常系の情報処理装置に係るデータのみを周辺回路側に転送する第２の転送手段とを備えた
ことを特徴とする耐故障性システム。
【請求項２】
各情報処理装置から周辺回路へのデータ書き込み時において、前記第１の転送手段は、第１の記憶手段へのデータ転送が終了すると情報処理装置に対して周辺回路へのデータ書き込みが終了したことを通知する
ことを特徴とする請求項１記載の耐故障性システム。
【請求項３】
前記照合手段は、周辺回路側から各情報処理装置へのデータを記憶する第２の記憶手段と、該第２の記憶手段に記憶されているデータを各情報処理装置へ転送するとともに、周辺回路から各情報処理装置へのデータ書き込み時において、第２の記憶手段へのデータ転送が終了すると周辺回路に対して情報処理装置へのデータ書き込みが終了したことを通知する第３の転送手段とを備えた
ことを特徴とする請求項１又は２何れか１項記載の耐故障性システム。
【請求項４】
それぞれ中央処理装置とバスとを有し互いに同一の処理を行う複数の情報処理装置と、各情報処理装置のバスと接続するとともに各情報処理装置における処理の同一性を照合する照合手段とを有する耐故障性システムの故障検出方法において、
前記照合手段を介して各情報処理装置と周辺回路とを接続し、各情報処理装置に対応して第１の記憶手段を設けるとともに、各情報処理装置のバスを流れる周辺回路へのデータを該情報処理装置に対応する第１の記憶手段に転送し、各第１の記憶手段に照合すべきデータが揃った際に該第１の記憶手段に記憶されているデータの整合性を照合し、該照合の結果整合性を有していない場合には各情報処理装置に対して結果を報告するとともに正常系の情報処理装置に係るデータのみを前記周辺回路に転送し、整合性を有している場合には該データを前記周辺回路に転送する
ことを特徴とする耐故障性システムの故障検出方法。
【請求項５】
各情報処理装置から周辺回路へのデータ書き込み時において、第１の記憶手段へのデータ転送が終了すると情報処理装置に対して周辺回路へのデータ書き込みが終了したことを通知する
ことを特徴とする請求項４記載の耐故障性システムの故障検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２４時間連続運転が要求される通信網のノードシステムや企業内のサーバなどに利用する耐故障性システムに関するものである。
【０００２】
【従来の技術】
従来、この種の耐故障性システムを実現する方式として、図１０に示すようなものが知られている。図１０は従来の耐故障性システムの構成図である。
【０００３】
図１０に示すように、この耐故障性システムは、２つの情報処理装置１１０及び１２０を備えている。各情報処理装置１１０，１２０は、それぞれバス１１１，１２１を介して中央処理装置（以下ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と言う）１１２，１２２、主記憶装置１１３，１２３、Ｉ／Ｏ装置１１４，１２４等が接続されており、一対の情報処理装置１１０及び１２０はそれぞれ同一の処理を行っている。
【０００４】
各情報処理装置１１０及び１２０のバス１１１，１２１には、照合回路１３０が接続されている。この照合回路１３０は、各バス１１１及び１２１をモニタし、各バス１１１及び１２１に流れる情報を比較する。その結果、両者に流れる情報に不一致が生じた場合には、各ＣＰＵ１１２，１２２に割込を上げて障害処理を行っている。
【０００５】
【発明が解決しようとする課題】
しかし、従来の耐故障性システムには、以下のような問題点があった。すなわち、照合回路１３０で障害を検出した際に、故障した情報処理装置を切り離すとともに正常な情報処理装置で処理を継続できたとしても、そのときには既に主記憶装置のアクセスの他に、外部記憶装置やネットワークインタフェイスなどＩ／Ｏ装置のアクセスが終了している。このため、一つの情報処理装置の障害による影響が大きくなってしまい、障害復旧が困難となる場合があった。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、一つの情報処理装置の故障による影響を最小限に留め、データの破壊や他の情報処理装置への影響を与えない耐故障性システム及びその故障検出方法を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、請求項１の発明では、それぞれ中央処理装置とバスとを有し互いに同一の処理を行う複数の情報処理装置と、各情報処理装置のバスと接続するとともに各情報処理装置における処理の同一性を照合する照合手段とを有する耐故障性システムにおいて、前記照合手段を介して各情報処理装置と接続する周辺回路を備え、前記照合手段は、各情報処理装置に対応して設けた第１の記憶手段と、各情報処理装置のバスに流れる周辺回路へのデータを該情報処理装置に対応する前記第１の記憶手段に転送する第１の転送手段と、各第１の記憶手段に記憶されているデータの整合性を照合する整合性照合手段と、整合性照合手段により各第１の記憶手段に記憶されているデータが整合性を有していると判定した場合には該データを周辺回路側に転送するとともに整合性を有していないと判定した場合には正常系の情報処理装置に係るデータのみを周辺回路側に転送する第２の転送手段とを備えたことを特徴とするものを提案する。
【０００８】
本発明によれば、各情報処理装置から周辺回路へのデータは第１の転送手段により該情報処理装置に対応する第１の記憶手段に記憶され、照合回路により該第１の記憶手段に記憶された各情報処理装置に対応するデータの整合性が照合される。そして、各データが整合性を有している場合には該データは周辺回路側に転送される。したがって、データが整合性を有していない場合には、あらかじめ用意された判断手法により疑わしいデータを判別し該データを周辺回路へ転送しないようにすれば、一つの情報処理装置の故障による影響を最小限に留め、データの破壊や他の情報処理装置への影響を回避することができる。
【０００９】
また、請求項２の発明では、請求項１記載の耐故障性システムにおいて、各情報処理装置から周辺回路へのデータ書き込み時において、前記第１の転送手段は、第１の記憶手段へのデータ転送が終了すると情報処理装置に対して周辺回路へのデータ書き込みが終了したことを通知することを特徴とするものを提案する。
【００１０】
本発明によれば、各情報処理装置から周辺回路へのデータ書き込みを行う場合には、情報処理装置は、第１の記憶手段にデータが記憶された時点で書き込み終了の通知を受ける。すなわち、周辺回路への実際のデータ書き込みが終了していなくても書き込み終了通知を受けることができるので、情報処理装置における周辺回路へのデータ書き込みを高速化することができる。
【００１１】
さらに、請求項３の発明では、請求項１又は２何れか１項記載の耐故障性システムにおいて、前記照合手段は、周辺回路側から各情報処理装置へのデータを記憶する第２の記憶手段と、該第２の記憶手段に記憶されているデータを各情報処理装置へ転送するとともに、周辺回路から各情報処理装置へのデータ書き込み時において、第２の記憶手段へのデータ転送が終了すると周辺回路に対して情報処理装置へのデータ書き込みが終了したことを通知する第３の転送手段とを備えたことを特徴とするものを提案する。
【００１２】
本発明によれば、周辺回路から情報処理装置へのデータ書き込み時には、第３の転送手段により該データが第２の記憶手段に転送され、該転送が終了すると、周辺回路に対して情報処理装置へのデータ書き込みが終了したことが通知される。すなわち、情報処理装置への実際のデータ書き込みが終了していなくても書き込み終了通知を受けることができるので、周辺回路における情報処理装置へのデータ書き込みを高速化することができる。
【００１３】
さらに、請求項４の発明では、それぞれ中央処理装置とバスとを有し互いに同一の処理を行う複数の情報処理装置と、各情報処理装置のバスと接続するとともに各情報処理装置における処理の同一性を照合する照合手段とを有する耐故障性システムの故障検出方法において、前記照合手段を介して各情報処理装置と周辺回路とを接続し、各情報処理装置に対応して第１の記憶手段を設けるとともに、各情報処理装置のバスを流れる周辺回路へのデータを該情報処理装置に対応する第１の記憶手段に転送し、各第１の記憶手段に照合すべきデータが揃った際に該第１の記憶手段に記憶されているデータの整合性を照合し、該照合の結果整合性を有していない場合には各情報処理装置に対して結果を報告するとともに正常系の情報処理装置に係るデータのみを前記周辺回路に転送し、整合性を有している場合には該データを前記周辺回路に転送することを特徴とするものを提案する。
【００１４】
本発明によれば、各情報処理装置から周辺回路へのデータは該情報処理装置に対応する第１の記憶手段に記憶され、該第１の記憶手段に記憶された各情報処理装置に対応するデータの整合性が照合される。そして、各データが整合性を有している場合には該データは周辺回路側に転送される。また、データが整合性を有していない場合には、各情報処理装置に対して該結果が報告される。したがって、一つの情報処理装置の故障による影響を最小限に留め、データの破壊や他の情報処理装置への影響を回避することができる。
【００１５】
さらに、請求項５の発明は、請求項４記載の耐故障性システムの故障検出方法において、各情報処理装置から周辺回路へのデータ書き込み時において、第１の記憶手段へのデータ転送が終了すると情報処理装置に対して周辺回路へのデータ書き込みが終了したことを通知することを特徴とするものを提案する。
【００１６】
本発明によれば、各情報処理装置から周辺回路へのデータ書き込みを行う場合には、情報処理装置は、第１の記憶手段にデータが記憶された時点で書き込み終了の通知を受ける。すなわち、周辺回路への実際のデータ書き込みが終了していなくても書き込み終了通知を受けることができるので、情報処理装置における周辺回路へのデータ書き込みを高速化することができる。
【００１７】
【発明の実施の形態】
本発明の一実施の形態に係る耐故障性システムについて図面を参照して説明する。図１は耐故障性システムの構成図、図２及び図３はバッファの構造を説明する図である。
【００１８】
図１に示すように、この耐故障性システムは、同一の処理を行う情報処理装置１０及び２０と、各情報処理装置１０及び２０と接続する耐故障性機構３０とを備えている。
【００１９】
各情報処理装置１０，２０は、それぞれ第１バス１１，２１と、第１バス１１，２１に接続した中央処理装置（以下ＣＰＵと言う）１２，２２、主記憶装置１３，２３を備えるとともに、該第１バス１１，２１にＩ／Ｏ装置を有する耐故障性機構３０を接続している。このように、この耐故障性システムでは、耐故障性を考慮してＩ／Ｏ装置を耐故障性機構３０側に配置するとともに、性能低下を防止するために主記憶装置を各情報処理装置１０，２０側に配置している。
【００２０】
耐故障性機構３０は、それぞれ情報処理装置１０，２０に対応して設けられた第１バスコントローラ３１ａ，３１ｂと、各第１バスコントローラ３１ａ，３１ｂに接続された第１バッファ３２ａ，３２ｂとを備えている。第１のバスコントローラ３１ａ，３１ｂは、それぞれ情報処理装置１０，２０の第１バス１１，２１と接続している。また、第１バスコントローラ３１ａ，３１ｂは、各情報処理装置１０，２０に設けられているアービタ（図示省略）が行う調停により、対応する各第１バス１１，２１の使用権を獲得・解放可能となっている。
【００２１】
また、耐故障性機構３０は、第１バスコントローラ３１ａ，３１ｂと接続するとともに第２バス３３と接続する第２コントローラ３４を備えている。この第２バスコントローラ３４は、第２バス３３を調停するアービタ（図示省略）を有している。また、この第２コントローラ３４は、第２バッファ３５を備えている。
【００２２】
さらに、耐故障性機構３０は第２バス３３に接続された周辺回路である外部記憶装置などのＩ／Ｏ装置３６を備えている。このＩ／Ｏ装置３６はＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラを備えており、レジスタにＣＰＵ１１，２１から制御情報を書き込まれることによって自律的にデータ送受信を行う。
【００２３】
さらに、耐故障性機構３０は、第１バッファ３２ａ，３２ｂに記憶されているデータを相互に比較する比較回路３７を備えている。この比較回路３７には、第２バスコントローラ３４からの指示に基づき第１バスコントローラ３１ａ，３１ｂを介して第１バッファ３２ａ，３２ｂからデータが入力される。比較回路３７による比較結果は第２バスコントローラ３４に対して出力される。
【００２４】
第１バスコントローラ３１ａ，３１ｂ、第２バスコントローラ３４は、それぞれ制御情報であるバスコマンドから、（Ａ）ＣＰＵがＩ／Ｏ装置へデータ・制御情報を書き込む場合、（Ｂ）ＣＰＵがＩ／Ｏ装置からデータ・ステータス情報を読み込む場合、（Ｃ）Ｉ／Ｏ装置が主記憶装置へデータを書き込む場合、（Ｄ）Ｉ／Ｏ装置が主記憶装置からデータを読み込む場合の以上４つのケースを識別可能である。
【００２５】
第１バッファ３２ａ，３２ｂは、図２に示すように、上記（Ａ）用・（Ｂ）用・（Ｄ）用の３つのバッファを備えている。上記（Ａ）用のバッファ３２ａ（Ａ），３２ｂ（Ａ）は、データ・Ｉ／Ｏ制御情報・バス制御情報・アドレスを格納するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファ、上記（Ｂ）用のバッファ３２ａ（Ｂ），３２ｂ（Ｂ）は、バス制御情報・アドレスを格納する一面のバッファ、上記（Ｄ）用のバッファ３２ａ（Ｄ），３２ｂ（Ｄ）は、データ・アドレスを格納する一面のバッファである。なお、第１バッファ３２ａ及び３２ｂの構造は互いに同じなので、図２では第１バッファ３２ａのみを図示した。
【００２６】
第２バッファ３５は、図３に示すように、上記（Ｃ）用・（Ｄ）用の２つのバッファを備えている。上記（Ｃ）用のバッファ３５（Ｃ）は、データ・Ｉ／Ｏ制御情報・バス制御情報・アドレスを格納するＦＩＦＯバッファ、上記（Ｄ）用のバッファ３５（Ｄ）は、バス制御情報・アドレスを格納する一面のバッファである。
【００２７】
以下、上記（Ａ）〜（Ｄ）の４つのケースに分けて耐故障性システムの動作について説明する。
【００２８】
まず、上記（Ａ）ＣＰＵがＩ／Ｏ装置へデータ・制御情報を書き込む場合について図４を参照して説明する。図４は耐故障性システムの動作を説明する図である。
【００２９】
［ステップＳＡ１］まず、ＣＰＵ１２は情報処理装置１０の第１バス１１のバス権を獲得し、該第１バス１１にＩ／Ｏ装置３６に対するライトコマンドを投げる。情報処理装置２０と情報処理装置１０は同一の処理を行うので、ＣＰＵ２２は情報処理装置２０の第１バス２１のバス権を獲得し、該第１バス２１にＩ／Ｏ装置３６に対するライトコマンドを投げる。
【００３０】
［ステップＳＡ２］第１バスコントローラ３１ａは、第１バッファ３２ａにバス制御情報・データ・ライトアドレスを格納する。格納が完了したら第１バスコントローラ３１ａは第１バス１１に終了信号を出力する。この時点で、ＣＰＵ１２はライト動作を終了し第１バス１１のバス権を解放する。同様に、第１バスコントローラ３１ｂは、第１バッファ３２ｂにバス制御情報・データ・ライトアドレスを格納する。格納が完了したら第１バスコントローラ３１ｂは第１バス２１に終了信号を出力する。この時点で、ＣＰＵ２２はライト動作を終了し第１バス１１のバス権を解放する。
【００３１】
［ステップＳＡ３］第２バスコントローラ３４は、第２バス３３のバス権を獲得する。また、第２バスコントローラ３４は、第１バスコントローラ３１ａ及び３１ｂの使用権を獲得する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａに対して、第１バッファ３２ａからライトアドレス・データなどを比較回路３７に入力するよう指示を出す。同様に、第２バスコントローラ３４は、第１バスコントローラ３１ｂに対して、第１バッファ３２ｂからライトアドレス・データなどを比較回路３７に入力するよう指示を出す。
【００３２】
［ステップＳＡ４］比較回路３７によりデータの整合性を照合した結果、両データが「不一致」である場合には、第２バスコントローラ３４は第１バスコントローラ３１ａ及び３１ｂに対して当該結果を通知する。第１バスコントローラ３１ａ，３１ｂは、それぞれＣＰＵ１２，２２へ割込を上げ、障害処理を行い、故障系を切り離して正常系で処理を継続する。例えば障害処理としては、それぞれの情報処理装置において、あらかじめ用意した自律試験項目により診断を実施し、その結果に基づいてより疑わしい方の情報処理装置を切り離し正常系で処理を継続させるようにする。一方、前記結果が「一致」である場合には、第２バスコントローラ３４は第２バス３３へライトコマンドを出力する。
【００３３】
［ステップＳＡ５］該当するＩ／Ｏ装置３６は、データ・制御情報等を受け取り、第２バス３３に終了信号を出力する。
【００３４】
［ステップＳＡ６］第２バスコントローラ３４は、Ｉ／Ｏ装置３６からの終了信号を受けて第２バス３３のバス権を解放する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａ，３１ｂを解放する。
【００３５】
次に、上記（Ｂ）ＣＰＵがＩ／Ｏ装置からデータ・ステータス情報を読み込む場合について図５を参照して説明する。図５は耐故障性システムの動作を説明する図である。
【００３６】
［ステップＳＢ１］まず、ＣＰＵ１２は情報処理装置１０の第１バス１１のバス権を獲得し、該第１バス１１にＩ／Ｏ装置３６に対するリードコマンドを投げる。情報処理装置２０と情報処理装置１０は同一の処理を行うので、ＣＰＵ２２は情報処理装置２０の第１バス２１のバス権を獲得し、該第１バス２１にＩ／Ｏ装置３６に対するリードコマンドを投げる。
【００３７】
［ステップＳＢ２］第１バスコントローラ３１ａは、第１バッファ３２ａにバス制御情報とリードアドレスを格納する。ここで、第１バスコントローラ３１ａは当該格納が終了しても終了信号を出力しないので、ＣＰＵ１２のリード動作は終了しない。同様に、第１バスコントローラ３１ｂは、第１バッファ３２ｂにバス制御情報とリードアドレスを格納する。ここで、第１バスコントローラ３１ｂは当該格納が終了しても終了信号を出力しないので、ＣＰＵ２２のリード動作は終了しない。
【００３８】
［ステップＳＢ３］第２バスコントローラ３４は、第２バス３３のバス権を獲得する。また、第２バスコントローラ３４は、第１バスコントローラ３１ａ及び３１ｂの使用権を獲得する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａに対して、第１バッファ３２ａからリードアドレスなどを比較回路３７に入力するよう指示を出す。同様に、第２バスコントローラ３４は、第１バスコントローラ３１ｂに対して、第１バッファ３２ｂからリードアドレスなどを比較回路３７に入力するよう指示を出す。
【００３９】
［ステップＳＢ４］比較回路３７によりデータの整合性を照合した結果、両データが「不一致」である場合には、第２バスコントローラ３４は第１バスコントローラ３１ａ及び３１ｂに対して当該結果を通知する。第１バスコントローラ３１ａ，３１ｂは、それぞれＣＰＵ１２，２２へ割込を上げ、障害処理を行い、故障系を切り離して正常系で処理を継続する。例えば障害処理としては、それぞれの情報処理装置において、あらかじめ用意した自律試験項目により診断を実施し、その結果に基づいてより疑わしい方の情報処理装置を切り離し正常系で処理を継続させるようにする。一方、前記結果が「一致」である場合には、第２バスコントローラ３４は第２バス３３へリードコマンドを出力する。
【００４０】
［ステップＳＢ５］第１バスコントローラ３１ａ，３１ｂ、第２バスコントローラ３４は解放状態となり、すべてのバス３３，１１，２１に流れる情報が通過する状態となる。
【００４１】
［ステップＳＢ６］該当するＩ／Ｏ装置３６は第２バス３３にデータを出力する。このデータは、第２バス３３、第１バス１１，２１を介してＣＰＵ１２，ＣＰＵ２２に入力される。
【００４２】
［ステップＳＢ７］データを受け取ったＣＰＵ１２，２２は第１バス１１，バス２１に終了信号を出力する。
【００４３】
［ステップＳＢ８］第２バスコントローラ３４は、ＣＰＵ１２，２２両方からの終了信号を確認して、第２バス３３のバス権を解放する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａ，３１ｂを解放する。
【００４４】
次に、上記（Ｃ）Ｉ／Ｏ装置が主記憶装置へデータを書き込む場合について図６を参照して説明する。図６は耐故障性システムの動作を説明する図である。
【００４５】
［ステップＳＣ１］まず、Ｉ／Ｏ装置３６は第２バス３３のバス権を獲得する。また、Ｉ／Ｏ装置３６は第２バスコントローラ３４の使用権も獲得する。次いで、第２バス３３に主記憶装置１３，２３に対するライトコマンドを投げる。
【００４６】
［ステップＳＣ２］第２バスコントローラ３４は、第２バッファ３５にバス制御情報・データ・ライトアドレスを格納する。格納が終了したら第２バスコントローラ３４は第２バス３３に終了信号を出力する。この時点でＩ／Ｏ装置３６はライト動作を終了し、第２バス３３のバス権を解放する。
【００４７】
［ステップＳＣ３］第２バスコントローラ３４は、第１バスコントローラ３１ａ及び３１ｂの使用権を獲得し、第１バスコントローラ３１ａ及び３１ｂを介して第１バス１１，２１のバス権も獲得する。
【００４８】
［ステップＳＣ４］第１バスコントローラ３１ａ及び３１ｂは解放状態となり、すべての第１バス１１，２１に流れる情報が通過する状態となる。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａ，３１ｂを介して第１バス１１，２１に主記憶装置１３，２３に対するライト信号及びデータ等を出力する。
【００４９】
［ステップＳＣ５］主記憶装置１３，２３のメモリアクセスコントローラは、第１バス１１，２１からのデータを記憶すると、それぞれ第１バス１１，２１に終了信号を出力する。
【００５０】
［ステップＳＣ６］第２バスコントローラ３４は、二つの終了信号を受けて第１バス１１，２１のバス権を解放する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａ及び３１ｂを解放する。
【００５１】
次に、上記（Ｄ）Ｉ／Ｏ装置が主記憶装置からデータを読み込む場合について図７を参照して説明する。図７は耐故障性システムの動作を説明する図である。
【００５２】
［ステップＳＤ１］まず、Ｉ／Ｏ装置３６は第２バス３３のバス権を獲得する。また、Ｉ／Ｏ装置３６は第２バスコントローラ３４の使用権も獲得する。次いで、第２バス３３に主記憶装置１３，２３に対するリードコマンドを投げる。
【００５３】
［ステップＳＤ２］第２バスコントローラ３４は、第２バッファ３５にバス制御情報及びリードアドレスを格納する。ここで、上記（Ｃ）のケースと異なる点は、当該格納が終了しても第２バスコントローラ３４は第２バス３３に終了信号を出力しないことである。
【００５４】
［ステップＳＤ３］第２バスコントローラ３４は、第１バスコントローラ３１ａ及び３１ｂの使用権を獲得し、第１バスコントローラ３１ａ及び３１ｂを介して第１バス１１，２１のバス権も獲得する。
【００５５】
［ステップＳＤ４］第１バスコントローラ３１ａ，３１ｂは、第２バスコントローラ３４からのリード信号のみを通過させるとともに主記憶装置１３，２３からのデータを待つ状態にする。ここで、第２バスコントローラ３４は第１バスコントローラ３１ａ，３１ｂを介して第１バス１１，２１にリード信号を出力する。
【００５６】
［ステップＳＤ５］主記憶装置１３，２３のメモリアクセスコントローラは、第２バスコントローラ３４からのリード信号に対応してデータを第１バス１１，２１に出力する。
【００５７】
［ステップＳＤ６］第１バスコントローラ３１ａ，３１ｂは、第１バス１１，２１からのデータをそれぞれ第１バッファ３２ａ，３２ｂに格納する。
【００５８】
［ステップＳＤ７］第２バスコントローラ３４は、第１バスコントローラ３１ａに対して、第１バッファ３２ａからデータを比較回路３７に入力するよう指示を出す。同様に、第２バスコントローラ３４は、第１バスコントローラ３１ｂに対して、第１バッファ３２ｂからデータを比較回路３７に入力するよう指示を出す。
【００５９】
［ステップＳＤ８］比較回路３７によりデータの整合性を照合した結果、両データが「不一致」である場合には、第２バスコントローラ３４は第１バスコントローラ３１ａ及び３１ｂに対して当該結果を通知する。第１バスコントローラ３１ａ，３１ｂは、それぞれＣＰＵ１２，２２へ割込を上げ、障害処理を行い、故障系を切り離して正常系で処理を継続する。例えば障害処理としては、それぞれの情報処理装置において、あらかじめ用意した自律試験項目により診断を実施し、その結果に基づいてより疑わしい方の情報処理装置を切り離し正常系で処理を継続させるようにする。一方、前記結果が「一致」である場合には、第２バスコントローラ３４は第２バス３３へデータを出力する。
【００６０】
［ステップＳＤ９］該当するＩ／Ｏ装置３６は、データ・制御情報を受け取り、第２バス３３に終了信号を出力する。
【００６１】
［ステップＳＤ１０］終了信号を受けた第２バスコントローラ３４は、第１バス１１，２１を解放する。次いで、第２バスコントローラ３４は、第１バスコントローラ３１ａ，３１ｂを解放する。
【００６２】
［ステップＳＤ１１］最後に、第２バスコントローラ３４は、第２バス３３を解放する。
【００６３】
以上のように、この耐故障性システムでは、ＣＰＵ・Ｉ／Ｏ装置などのバスマスタによるＩ／Ｏ装置・主記憶装置などのターゲットへのバスアクセス時点ごとに、第１バスコントローラ３１ａ，３１ｂ、第２バスコントローラ３４がバスマスタ・ターゲット間のアクセスを仲介する。つまり、バスマスタがターゲットへアクセスするコマンドをバスに発行すると、ターゲットの代わりに第１バスコントローラ３１ａ，３１ｂ、第２バスコントローラ３４が受信する。そして、第１バスコントローラ３１ａ，３１ｂ、第２バスコントローラ３４は、これをバッファに記憶する。このバッファを利用することにより、ライトアクセスの場合はバスコントローラによるバッファへの書き込み終了時点でバスマスタのトランザクションが終了するので、バスマスタのライトアクセスを高速化できる。
【００６４】
一方、第２バスコントローラ３４は、情報処理装置１０及び２０からの２つの情報が第１バッファ３１ａ及び第２バッファ３１ｂにそろったことを確認すると、比較回路３７を用いて情報の整合性を照合する。照合の結果、情報が一致している場合には第２バスコントローラ３４はＩ／Ｏ装置３６などのターゲットにアクセスし適切なタイミングでトランザクションを終了させる。前記照合の結果、情報が不一致だった場合は、障害と判断し、第２バスコントローラ３４はＣＰＵ１２，２２に当該結果を知らせ、その後、正常系だけで処理を継続する。
【００６５】
このように、バスコントローラがターゲットの代わりにトランザクションを制御することにより、データの破壊や他の情報処理装置への影響を与えることを防止することができる。具体的には、比較回路３７の照合の結果、データが整合性を有していないと判断された場合であっても、当該判断の時点ではＩ／Ｏ装置３６などの周辺回路にはデータが出力されていないので、データの破壊等を防止することができる。
【００６６】
また、バスマスタのライト動作において、バスコントロールのバッファへの書き込み終了時にトランザクションが終了するので、バスマスタのライト動作を高速化することができる。具体的には、上記（Ａ）及び（Ｃ）におけるＣＰＵのライト動作及びＩ／Ｏ装置のライト動作が高速化される。
【００６７】
なお、上記実施の形態は例示的なものであり、本発明はこれに限定されるものではない。本発明の範囲は特許請求の範囲によって示されており、この特許請求の範囲の意味の中に入るすべての変形例は本発明に含まれるものである。例えば、本実施の形態ではＩ／Ｏ装置３６のみを耐故障性機構３０に配置しているが、例えば主記憶装置なども耐故障性機構３０側に配置し、メモリアクセスに関しても本発明による制御を行ってもよい。
【００６８】
また、本実施の形態では情報処理装置の障害のみを対象としているが、図８に示すように、第２バス３３を多重化することによりＩ／Ｏ装置の障害に対処できるように構成してもよい。図８の例に係る耐故障性機構３０ａでは、第２バスコントローラ３４に第２バス３３と並行して第２バス３３ａを設けるとともに、該第２バス３３ａにＩ／Ｏ装置３６ａを接続している。すなわち、第２バス３３と第２バス３３ａ、Ｉ／Ｏ装置３６とＩ／Ｏ装置３６ａは互いに同一のものとする冗長構成である。このように構成することにより、さらに耐故障性が向上する。
【００６９】
さらに、本実施の形態では耐故障性機構３０を１台のみ設けたが、図９に示すように複数台（図８では２台）の耐故障性機構３０，３０ｂを接続するようにしてもよい。また、情報処理装置も３台以上設けるようにしてもよい。このように構成することにより、さらに耐故障性が向上する。
【００７０】
さらに、本実施の形態では、情報処理装置１０，２０から周辺回路であるＩ／Ｏ装置３６へのデータ書き込み時において、第１バスコントローラ３１ａ，３１ｂが第１バッファ３２ａ，３２ｂへのデータ転送を終了すると、情報処理装置１０，２０に対して書き込み終了を通知していたが、当該通知を行わなくても本発明を実施することができる。同様に、周辺回路であるＩ／Ｏ装置３６から情報処理装置１０，２０へのデータ書き込み時において、第２バスコントローラ３４が第２バッファ３５へのデータ転送を終了すると、Ｉ／Ｏ装置３６に対して書き込み終了を通知していたが、当該通知を行わなくても本発明を実施することができる。
【００７１】
さらに、本実施の形態では、図１などにおいて第１バスコントローラ３１ａ及び３１ｂ，第１バッファ３２ａ及び３２ｂ，第２バス３３，第２バスコントローラ３４，第２バッファ３５，比較回路３７を機能毎に分けて記載しているが、これらは複数装置で実現しても同一装置で実現してもよい。例えば、これら全てを一つのチップに集積したり、バスコントローラとバッファの組をそれぞれ一つのチップに集積したり、複数のバッファを一つのチップに集積するとともに複数のバスコントローラを一つのチップに集積するようにしてもよい。
【００７２】
さらに、本発明は、第１バス１１及び２１と第２バス３１の種類が一致していても異なるものであってもよい。
【００７３】
【発明の効果】
以上詳述したように、本発明によれば、各情報処理装置から周辺回路へのデータは該情報処理装置に対応する第１の記憶手段に記憶され、該第１の記憶手段に記憶された各情報処理装置に対応するデータの整合性が照合される。そして、各データが整合性を有している場合には該データは周辺回路側に転送される。したがって、データが整合性を有していない場合には、あらかじめ用意された判断手段により疑わしいデータを判別し該データを周辺回路へ転送しないようすれば一つの情報処理装置の故障による影響を最小限に留め、データの破壊や他の情報処理装置への影響を回避することができる。また、各情報処理装置にとっては第１の記憶手段にデータが記憶された時点で周辺回路へのデータ転送が完了したとみなすことができるので、情報処理装置から周辺回路へのデータ書き込みを高速化することができる。
【図面の簡単な説明】
【図１】耐故障性システムの構成図
【図２】バッファの構造を説明する図
【図３】バッファの構造を説明する図
【図４】耐故障性システムの動作を説明する図
【図５】耐故障性システムの動作を説明する図
【図６】耐故障性システムの動作を説明する図
【図７】耐故障性システムの動作を説明する図
【図８】他の例に係る耐故障性システムの構成図
【図９】他の例に係る耐故障性システムの構成図
【図１０】従来の耐故障性システムの構成図
【符号の説明】
１０，２０…情報処理装置、１１，２１…第１バス、１２，２２…中央処理装置（ＣＰＵ）、１３，２３…主記憶装置、３０…耐故障性機構、３１ａ，３１ｂ…第１バスコントローラ、３２ａ，３２ｂ…第１バッファ、３３…第２バス、３４…第２バスコントローラ、３５…第２バッファ、３６…Ｉ／Ｏ装置、３７…比較回路
【図１】
0003597748.tif 000002
【図２】
0003597748.tif 000003
【図３】
0003597748.tif 000004
【図４】
0003597748.tif 000005
【図５】
0003597748.tif 000006
【図６】
0003597748.tif 000007
【図７】
0003597748.tif 000008
【図８】
0003597748.tif 000009
【図９】
0003597748.tif 000010
【図１０】
0003597748.tif 000011