(57)【要約】【課題】圧縮情報を活用することで、分散メモリ・Ｉ／Ｏ構成及び共有メモリ・Ｉ／Ｏ構成で、高速かつ高信頼に故障を検出する。【解決手段】複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、前記複数の比較圧縮手段が、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断する。【選択図】図１
2010218012.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、
前記複数の比較圧縮手段が、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出装置。
【請求項２】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、
前記複数の比較圧縮手段が、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出装置。
【請求項３】
請求項１に記載の故障検出装置において、前記演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏを更に備えており、
前記複数の比較圧縮手段が、前記演算処理装置からのアクセスを前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏへ振り分け、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出装置。
【請求項４】
請求項３に記載の故障検出装置において、前記振り分けは、前記演算処理装置からのアクセスのアドレスに従って行われることを特徴とする故障検出装置。
【請求項５】
請求項１乃至４の何れか１項に記載の故障検出装置において、前記情報の前記圧縮は、
前記演算処理装置と、前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏがやり取りする情報をハッシュ関数を用いてハッシュにすることにより行われることを特徴とする故障検出装置。
【請求項６】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備えた故障検出装置における、故障検出方法において、
前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出方法。
【請求項７】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備えた故障検出装置における、故障検出方法において、
前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出方法。
【請求項８】
請求項６に記載の故障検出方法において、前記演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏを更に備えており、
前記演算処理装置からのアクセスを前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏへ振り分け、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出方法。
【請求項９】
請求項８に記載の故障検出方法において、前記振り分けは、前記演算処理装置からのアクセスのアドレスに従って行われることを特徴とする故障検出方法。
【請求項１０】
請求項６乃至９の何れか１項に記載の故障検出方法において、前記情報の前記圧縮は、
前記演算処理装置と、前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏがやり取りする情報をハッシュ関数を用いてハッシュにすることにより行われることを特徴とする故障検出方法。
【請求項１１】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、
前記複数の比較圧縮手段が、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断する故障検出装置としてコンピュータを機能させることを特徴とする故障検出プログラム。
【請求項１２】
複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、
前記複数の比較圧縮手段が、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断する故障検出装置としてコンピュータを機能させることを特徴とする故障検出プログラム。
【請求項１３】
請求項１１に記載の故障検出プログラムにおいて、前記演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏを更に備えており、
前記複数の比較圧縮手段が、前記演算処理装置からのアクセスを前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏへ振り分け、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出プログラム。
【請求項１４】
請求項１３に記載の故障検出プログラムにおいて、前記振り分けは、前記演算処理装置からのアクセスのアドレスに従って行われることを特徴とする故障検出プログラム。
【請求項１５】
請求項１１乃至１４の何れか１項に記載の故障検出プログラムにおいて、前記情報の前記圧縮は、
前記演算処理装置と、前記分散メモリ・Ｉ／Ｏ又は前記共有メモリ・Ｉ／Ｏがやり取りする情報をハッシュ関数を用いてハッシュにすることにより行われることを特徴とする故障検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮情報を利用することで、故障を検出することが可能な装置、その方法及びそのプログラムに関する。
【背景技術】
【０００２】
高信頼性を要求する市場においては、複数の低信頼な半導体デバイスを多重化して、そして、その入出力情報を比較することで、半導体デバイスの故障を検出する装置が一般に広く用いられている。
【０００３】
しかしながら、近年の半導体デバイス、メモリ・Ｉ／Ｏなどの非同期化に伴い、そのような入出力情報にズレが生じるため、入出力情報の比較自体が非常に困難になっている。
【０００４】
従って、半導体デバイスの入出力情報にズレが生じたとしてもそれを許容し、かつ、高速で高効率な故障検出を行うことが望まれている。
【０００５】
このような入出力情報にズレが生じる環境において故障検出を行う技術として以下のような技術がある。なお、本明細書や特許請求の範囲において複数の半導体デバイスが共有するメモリ・Ｉ／Ｏのことを「共有メモリＩ／Ｏ」と呼び、このような構成のことを「共有メモリ・Ｉ／Ｏ構成」と呼ぶものとする。
【０００６】
一方、複数の半導体デバイスがそれぞれ対応するメモリ・Ｉ／Ｏを有し、共有状態となっていないメモリ・Ｉ／Ｏのことを「分散メモリＩ／Ｏ」と呼び、このような構成のことを「分散メモリ・Ｉ／Ｏ構成」と呼ぶものとする。
【０００７】
図１９は、分散メモリ・Ｉ／Ｏ構成での、半導体デバイスの多重化装置を模式的に示す図である（このような装置の例として例えば特許文献１参照）。
【０００８】
図１９に示す例では、比較部７１１が、第１のプロセッサ７０１及び第２のプロセッサ７０２と、第１のメモリＩ／Ｏ７２１及び第２のメモリＩ／Ｏ７２２との入出力情報を比較する。
【０００９】
ここで、比較部７１１内にバッファを設けることで、第１のプロセッサ７０１と第２のプロセッサ７０２への入出力情報を保存し、その結果、多少のズレが生じたとしても、そのズレを許容して比較することができる。
【００１０】
図２０は、共有メモリ・Ｉ／Ｏ構成での、半導体デバイスの多重化装置を模式的に示す図である（このような装置の例として例えば特許文献２参照）。
【００１１】
図２０に示す例では、第１のプロセッサ８０１及び第２のプロセッサ８０２プロセッサに対して、アクセス管理部８１１は、共有メモリＩ／Ｏ８２１へのアクセスを比較する。アクセス管理部８１１は、第１のプロセッサ８０１及び第２のプロセッサ８０２プロセッサからのアクセスを待ち合わせし、そして、両プロセッサからの要求が一致した場合に、共有メモリＩ／Ｏ８２１へとアクセスを発行する。
【００１２】
また、アクセス管理部８１１は、共有メモリＩ／Ｏ８２１からの応答を第１のプロセッサ８０１及び第２のプロセッサ８０２プロセッサへと返す。
【００１３】
ここで、アクセス管理部８１１内にバッファを設けることで、第１のプロセッサ８０１及び第２のプロセッサ８０２プロセッサからの出力を保存し、その結果、多少のズレが生じたとしても、そのズレを許容して比較することができる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−１７８６１８号公報
【特許文献２】特開平８−２１２０９３号公報
【特許文献３】特許第２５０００３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、図１９及び図２０に示した方式は、以下の二つの問題点を有している。
【００１６】
一つめの問題点は、ズレを許容するために大量のバッファが必要となることである。
【００１７】
二つめの問題点は、非同期化の進展により、ズレの検出自体がますます困難になるので、高速性が失われることである。これらの点に鑑みて図２１に記載のような技術が存在する。
【００１８】
図２１は、分散メモリ・Ｉ／Ｏ構成での、圧縮情報を用いた、半導体デバイスの多重化装置を模式的に示す図である（このような装置の例として例えば特許文献３参照）。
【００１９】
図２１に示す例では、第１のメモリＩ／Ｏ９２１及び第２のメモリＩ／Ｏ９１２を用いて、第１の圧縮機構付プロセッサ９０１と第２の圧縮機構付プロセッサ９０２が、同一のアプリケーションを実行する。この時、第１の圧縮機構付プロセッサ９０１と第２の圧縮機構付プロセッサ９０２は、各々アプリケーションの実行中の様々な情報、例えば、命令実行順序、メモリアクセスアドレス、レジスタアクセスなどの内部情報を不可逆圧縮して保存する。
【００２０】
最後に、そのアプリケーションの実行終了後に、第１の圧縮機構付プロセッサ９０１と第２の圧縮機構付プロセッサ９０２は得られた圧縮情報を比較する。これにより、アプリケーション実行後の圧縮情報を比較するだけで、故障検出ができるので、大量のバッファを設けるなどして入出力のズレに対応する必要がなくなる。
【００２１】
しかしながら、図２１に示した方式は、以下の二つの問題点を有している。
【００２２】
一つめの問題点は、プロセッサに圧縮機構を加える必要があり、そして、圧縮機構自身の信頼性に問題があることである。
【００２３】
二つめの問題点は、共有メモリ・Ｉ／Ｏ構成では、同一メモリ領域へ両プロセッサからのアクセスが多重に出力されてしまい、その結果、メモリの一貫性に問題が生じることである。
【００２４】
これらの問題点があることから、圧縮情報を活用することで、分散メモリ・Ｉ／Ｏ構成及び共有メモリ・Ｉ／Ｏ構成で、高速かつ高信頼に故障を検出することは困難であった。
【００２５】
そこで、本発明は圧縮情報を活用することで、分散メモリ・Ｉ／Ｏ構成及び共有メモリ・Ｉ／Ｏ構成で、高速かつ高信頼に故障を検出することが可能な、圧縮情報を利用した故障検出装置、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明の第１の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、前記複数の比較圧縮手段が、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出装置が提供される。
【００２７】
本発明の第２の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、前記複数の比較圧縮手段が、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出装置が提供される。
【００２８】
本発明の第３の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備えた故障検出装置における、故障検出方法において、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出方法が提供される。
【００２９】
本発明の第４の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備えた故障検出装置における、故障検出方法において、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断することを特徴とする故障検出方法が提供される。
【００３０】
本発明の第５の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための分散メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該分散メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、前記複数の比較圧縮手段が、前記演算処理装置と前記分散メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断する故障検出装置としてコンピュータを機能させることを特徴とする故障検出プログラムが提供される。
【００３１】
本発明の第６の観点によれば、複数の演算処理装置と、当該演算処理装置が情報の入出力を行うための共有メモリ・Ｉ／Ｏと、当該演算処理装置のそれぞれ及び当該共有メモリ・Ｉ／Ｏに接続されている複数の比較圧縮手段と、を備え、前記複数の比較圧縮手段が、前記演算処理装置と前記共有メモリ・Ｉ／Ｏがやり取りするアクセス内容を監視し、当該監視の結果リードアクセスだった場合は、前記共有メモリ・Ｉ／Ｏがやり取りする情報を圧縮し、前記複数の比較圧縮手段相互間で当該圧縮した情報を交換及び比較し、当該監視の結果ライトアクセスだった場合は、当該アクセスについて前記複数の比較圧縮手段相互間で同期を取ったうえで当該アクセスの内容を比較し、前記何れかの比較において比較結果が不一致の場合に、前記複数の演算処理装置の何れか或いは全てが故障していると判断する故障検出装置としてコンピュータを機能させることを特徴とする故障検出プログラムが提供される。
【発明の効果】
【００３２】
本発明によれば、分散メモリ・Ｉ／Ｏ構成と共有メモリ・Ｉ／Ｏ構成で、圧縮情報の統一した活用により、高速に故障検出を行うことが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態の故障検出装置の基本的構成を示す図である。
【図２】本発明の実施形態のアクセス分類表２００の構成例を示す図である。
【図３】本発明の実施形態の比較圧縮手段における情報の流れを示す図である。
【図４】本発明の実施形態の比較圧縮手段の動作を説明するフローチャートである。
【図５】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置の構成を示す図である。
【図６】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図７】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図８】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図９】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図１０】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図１１】本発明の実施形態の分散メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図１２】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図１３】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図１４】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図１５】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図１６】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図１７】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置における情報の流れを示す図である。
【図１８】本発明の実施形態の共有メモリ・Ｉ／Ｏを有する故障検出装置の動作を説明するフローチャートである。
【図１９】本願発明に関連する第１の技術の構成を示す図である。
【図２０】本願発明に関連する第２の技術の構成を示す図である。
【図２１】本願発明に関連する第３の技術の構成を示す図である。
【発明を実施するための形態】
【００３４】
本発明は、概略、プロセッサからの分散メモリ・Ｉ／Ｏないし共有メモリ・Ｉ／Ｏへのアクセスを監視し、そして、監視した内容を圧縮して比較することで故障を検出するというものである。
【００３５】
すなわち、本発明においては、分散メモリ・Ｉ／Ｏ構成においては、リード・ライトアクセスの圧縮情報を比較することで故障を検出する。一方、共有メモリ・Ｉ／Ｏ構成においては、リードアクセスは分散メモリ・Ｉ／Ｏ構成と同様に圧縮情報を比較することで、片や、ライトアクセスは同期を行って比較することで故障を検出する。これにより、分散メモリ・Ｉ／Ｏ構成ないし共有メモリ・Ｉ／Ｏ構成にて、高速かつ高信頼に故障を検出することが可能である。
【００３６】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【００３７】
図１は、本発明の実施形態の一例である、圧縮情報を活用する故障検出装置１０００を示す図である。
【００３８】
図１を参照すると、故障検出装置１０００は、第１のプロセッサ１０１と第２のプロセッサ１０２、第１の比較圧縮部１１１と第２の比較圧縮部１１２、第１の分散メモリＩ／Ｏ１２１と第２の分散メモリＩ／Ｏ１２２及び共有メモリＩ／Ｏ１３０を有する。
【００３９】
第１のプロセッサ１０１と第２のプロセッサ１０２は、演算処理を行う部分であり、具体的には、例えばＣＰＵが挙げられる。しかし、第１のプロセッサ１０１と第２のプロセッサ１０２は、ＣＰＵのみに限定されるものではなく、例えば、ＤＳＰや再構成可能デバイス（ＦＰＧＡ）等であってもよい。また、その具体的構成は、チップ、ＳｏＣ、ＩＰコアなど様々な様態により実現させることが可能である。なお、第１のプロセッサ１０１と第２のプロセッサ１０２は、本発明の演算処理装置に相当するものである。
【００４０】
第１の分散メモリＩ／Ｏ１２１、第２の分散メモリＩ／Ｏ１２２及び共有メモリＩ／Ｏ１３０は、プロセッサが各々のメモリにアクセスするためのＩ／Ｏである。
【００４１】
第１の比較圧縮部１１１と第２の比較圧縮部１１２は、第１のプロセッサ１０１と第２のプロセッサ１０２の入出力に関する情報を圧縮することにより「圧縮情報」を生成して、生成した圧縮情報を比較する。ここで、比較結果が一致していれば、第１のプロセッサ１０１と第２のプロセッサ１０２に故障が無いことが分かる。一方、比較結果が不一致であれば、第１のプロセッサ１０１と第２のプロセッサ１０２の何れか又は両者に故障があることがわかる。
【００４２】
更に、第１の比較圧縮部１１１と第２の比較圧縮部１１２は、第１の分散メモリＩ／Ｏ１２１と第２の分散メモリＩ／Ｏ１２２、共有メモリＩ／Ｏ１３０へのアクセスを振り分けることで、分散メモリ・Ｉ／Ｏ構成においても、共有メモリ・Ｉ／Ｏ構成においても、また両者を備える構成においても、圧縮情報を活用した故障検出が可能である。
【００４３】
ここで、圧縮情報としては、メモリ・Ｉ／Ｏアクセスにおけるアドレスないしデータのハッシュや、ある特定メモリアドレスのデータ等が例示できる。また、他にも、命令と、データ読み込み、データ書き込みそれぞれのアクセス情報のハッシュであってもよい。また、それぞれの情報を別々に圧縮して保存してもよいし、全てを圧縮して保存してもよい。
【００４４】
すなわち本実施形態でいう圧縮情報とは、入出力情報から生成可能な、あらゆる圧縮情報を指すものとする。なお、具体的な圧縮情報としてどのような内容の情報を採用するかということは、本実施形態の要旨ではないため、特に限定されるものではない。
【００４５】
第１の比較圧縮部１１１と第２の比較圧縮部１１２が行う圧縮情報の比較は、入出力アクセスを数えて一定間隔で行ってもよいし、第１のプロセッサ１０１と第２のプロセッサ１０２からの特定アドレスへのアクセス検出時に行ってもよい。すなわち、お互いが同期可能な情報を用いれば、どのような方法及び間隔で行ってもよい。
【００４６】
また、今回は、各実施形態について、プロセッサ数、比較圧縮部数、分散メモリ・Ｉ／Ｏ数を２つと想定して説明を行っているが、これも例示に過ぎない。当然ながら、プロセッサ数等が３つ以上の構成においても、対応する数の比較圧縮部を設け、各々結合することで同様の装置が実現可能である。
【００４７】
次に、図２を用いて故障検出装置１０００における、比較圧縮部（第１の比較圧縮部１１１及び第２の比較圧縮部１１２）に含まれるアクセス分類表について説明する。図２には、アクセス分類表の一例を示す。
【００４８】
図２を参照すると、比較圧縮部は、アクセス分類表２００によって、0x00000000から0x3FFFFFFFのアドレスに関しては分散メモリ・Ｉ／Ｏへアクセスを発行し、また、0x40000000から0x9FFFFFFFのアドレスに関しては共有メモリ・Ｉ／Ｏへアクセスを発行するように規定している。
【００４９】
次に、図２に示したアクセス分類表２００に従って、第２の比較圧縮部１１２が各メモリＩ／Ｏにアクセスを行う場合を例にして説明する。
【００５０】
図３は、故障検出装置１０００における、比較圧縮部のアクセス分類動作を説明する図である。なお、以降説明に用いる図において、矢印脇のＳと数字からなる符合は、各ステップにおいて伝達される信号の流れを示すものである。また、図４は動作を表すフローチャートである。
【００５１】
図３及び４を用いてまず、第２の比較圧縮部１１２が第２の分散メモリＩ／Ｏ１２２へアクセスを行う場合について説明する。
【００５２】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からアドレス0x10000000を有するアクセスを受理する（Ｓ１、ステップＡ３０１）。
【００５３】
第２の比較圧縮部１１２は、アクセス分類表２００に従って、第２の分散メモリＩ／Ｏ１２２へ上記アクセスを発行する（Ｓ２、ステップＡ３０２）。
【００５４】
次に、図３及び４を用いて第２の比較圧縮部１１２が共有メモリＩ／Ｏ１３０へアクセスを行う場合について説明する。
【００５５】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からアドレス0x50000000を有するアクセスを受理する（Ｓ３、ステップＡ３０３）。
【００５６】
第２の比較圧縮部１１２は、アクセス分類表２００に従って、共有メモリＩ／Ｏ１３０へ上記アクセスを発行する（Ｓ４、ステップＡ３０４）。
【００５７】
第１の比較圧縮部１１１及び第２の比較圧縮部１１２は、以上の処理を行うことにより各メモリＩ／Ｏにアクセスを振り分ける。
【００５８】
図５は、本発明の一実施形態である分散メモリ・Ｉ／Ｏ構成における故障検出装置２０００について示す図である。
【００５９】
故障検出装置２０００は、第１のプロセッサ１０１と第２のプロセッサ１０２、第１の比較圧縮部１１１と第２の比較圧縮部１１２、第１の分散メモリＩ／Ｏ１２１と第２の分散メモリＩ／Ｏ１２２を有する。なお、図１に示す故障検出装置１０００とは、共有メモリＩ／Ｏ１３０を有していない点で相違する。
【００６０】
第１の比較圧縮部１１１と第２の比較圧縮部１１２は、第１のプロセッサ１０１と第２のプロセッサ１０２の入出力に関する情報を圧縮することにより「圧縮情報」を生成して、比較する。ここで、比較結果が一致していれば、第１のプロセッサ１０１と第２のプロセッサ１０２に故障が無いことが分かる。一方、比較結果が不一致であれば、第１のプロセッサ１０１と第２のプロセッサ１０２の何れか又は両者に故障があることがわかる。
【００６１】
次に、図６及び７のフローチャートを用いて故障検出装置２０００の第２のプロセッサ１０２が第２の分散メモリＩ／Ｏ１２２へのリードアクセスを行う場合について説明する。ここでいう、リードアクセスには第２のプロセッサ１０２からの命令アクセスをも含むものとする。また、故障検出装置１０００が分散メモリＩ／Ｏにアクセスする場合も同様の動作を行う。
【００６２】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からリードアクセスを受理する（Ｓ５、ステップＡ４０１）。
【００６３】
第２の比較圧縮部１１２は、第２の分散メモリＩ／Ｏ１２２へリードアクセスを発行する。そして、当該アクセスアドレス情報を圧縮して保存する（Ｓ６、ステップＡ４０２）。
【００６４】
第２の比較圧縮部１１２は、第２の分散メモリＩ／Ｏ１２２からリードアクセスに対応するリードデータを受理する。そして、リードデータ情報を圧縮して保存する（Ｓ７、ステップＡ４０３）。
【００６５】
第２の比較圧縮部１１２は、リードデータを第２のプロセッサ１０２へ返す（Ｓ８、ステップＡ４０４）。
【００６６】
以上、今回の説明では、リードアクセスの、アドレスとデータ情報を各々保存する場合を例にして説明を行ったが、このような圧縮保存方法としてどのような方法を用いても構わない。
【００６７】
次に、図８及び９のフローチャートを用いて、図６及び７を用いて説明したものとは異なる動作の一例を説明する。
【００６８】
この例では、第２のプロセッサ１０２が第２の分散メモリＩ／Ｏ１２２へのリードアクセスではなく、ライトアクセスを行う場合について説明する。
【００６９】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からライトアクセスを受理する（Ｓ９、ステップＡ４０５）。
【００７０】
第２の比較圧縮部１１２は、第２の分散メモリＩ／Ｏ１２２へライトアクセスを発行する。そして、当該アクセスのアドレス情報を圧縮して保存する。また、当該アクセスのデータ情報も圧縮して保存する（Ｓ１０、ステップＡ４０６）。
【００７１】
以上、今回の説明では、ライトアクセスの、アドレスとデータ情報を各々保存する場合を例にして説明を行ったが、このような圧縮保存方法としてどのような方法を用いても構わない。
【００７２】
次に、図１０及び１１のフローチャートを用いて故障検出装置１０００又は故障検出装置２０００において、第１の比較圧縮部１１１と第２の比較圧縮部１１２が分散メモリＩ／Ｏのアクセスに伴って保存した圧縮情報の比較を行う場合について説明する。なお、故障検出装置１０００の第１の比較圧縮部１１１と第２の比較圧縮部１１２については、共有メモリＩ／Ｏのアクセスに伴って保存した圧縮情報の比較を行う場合も考えられるが、この点については後述する。
【００７３】
第１の比較圧縮部１１１と第２の比較圧縮部１１２は、お互いにリードアクセスのアドレス圧縮情報と、リードアクセスのデータ圧縮情報と、ライトアクセスのアドレス圧縮情報と、ライトアクセスのデータ圧縮情報の何れか又は全てを交換して比較する（Ｓ１１、Ｓ１２、ステップＡ４０７）。
【００７４】
ここで、比較結果が一致していれば（ステップＡ４０８においてＹｅｓ）、第１のプロセッサ１０１と第２のプロセッサ１０２に故障が無いことが分かる（ステップＳ４０９）。一方、比較結果が不一致であれば（ステップＡ４０８においてＮｏ）、第１のプロセッサ１０１と第２のプロセッサ１０２の何れか又は両者に故障があることがわかる（ステップＳ４１０）。
【００７５】
図１２は、本発明の一実施形態であって、共有メモリ・Ｉ／Ｏ構成である故障検出装置３０００を示す図である。故障検出装置３０００は、第１のプロセッサ１０１と第２のプロセッサ１０２、第１の比較圧縮部１１１と第２の比較圧縮部１１２、共有メモリＩ／Ｏ１３０を有する。
【００７６】
なお、図１に示す故障検出装置１０００とは、第１の分散メモリＩ／Ｏ１２１及び第２の分散メモリＩ／Ｏ１２２を有していない点で相違する。
【００７７】
共有メモリ・Ｉ／Ｏ構成における第１の比較圧縮部１１１と第２の比較圧縮部１１２は、共有メモリＩ／Ｏ１３０へのアクセス情報を圧縮して保存する。そして、各々の圧縮情報を交換して比較する。ここで、比較結果が一致していれば、第１のプロセッサ１０１と第２のプロセッサ１０２に故障が無いことが分かる。一方、比較結果が不一致であれば、第１のプロセッサ１０１と第２のプロセッサ１０２の何れか又は両者に故障があることがわかる。
【００７８】
なお、比較は、リードアクセスに関しては、アクセスを数えて一定間隔で行っても良いし、また、第１のプロセッサ１０１と第２のプロセッサ１０２からの特定アドレスへのアクセス検出時に行っても良い。ただし、お互いが同期可能な情報を用いれば、どのような方法と間隔で行ってもよい。
【００７９】
一方、ライトアクセスに関しては、第１のプロセッサ１０１と第２のプロセッサ１０２が各々ライトアクセスを共有メモリＩ／Ｏ１３０へ発行すると、第１のプロセッサ１０１と第２のプロセッサ１０２の動作にズレがある場合、共有メモリ２００へ同一のアクセスが複数発行されてしまう。したがって、ライトアクセスについては、ライトアクセス発行時に同期をとって、単一のアクセスを発行することを行う。
【００８０】
次に、図１３及び１４のフローチャートを用いて共有メモリ・Ｉ／Ｏ構成である故障検出装置３０００の動作について説明する。また、故障検出装置１０００が分散共有メモリＩ／Ｏ１３０にアクセスする場合も同様の動作を行う。
この例では、第２のプロセッサ１０２が共有メモリＩ／Ｏ１３０へのリードアクセスを行う場合について説明する。ここでいう、リードアクセスには第２のプロセッサ１０２からの命令アクセスをも含むものとする。
【００８１】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からリードアクセスを受理する（Ｓ１３、ステップＡ５０１）。
【００８２】
第２の比較圧縮部１１２は、共有メモリＩ／Ｏ１３０へリードアクセスを発行する。そして、当該アクセスアドレス情報を圧縮して保存する（Ｓ１４、ステップＡ５０２）。
【００８３】
第２の比較圧縮部１１２は、共有メモリＩ／Ｏ１３０からリードアクセスに対応するリードデータを受理する。そして、リードデータ情報を圧縮して保存する（Ｓ１５、ステップＡ５０３）。
【００８４】
第２の比較圧縮部１１２は、リードデータを第２のプロセッサ１０２へ返す（Ｓ１６、ステップＡ５０４）。
【００８５】
以上、今回の説明では、リードアクセスの、アドレスとデータ情報を各々保存する場合を例にして説明を行ったが、このような圧縮保存方法としてどのような方法を用いても構わない。
【００８６】
次に、図１５及び１６のフローチャートを用いて共有メモリ・Ｉ／Ｏ構成である故障検出装置１０００の第１の比較圧縮部１１１と第２の比較圧縮部１１２が共有メモリＩ／Ｏのアクセスに伴って保存した圧縮情報の比較を行う場合及び故障検出装置３０００が圧縮情報の比較を行う場合について説明する。
【００８７】
この例では、第１の比較圧縮部１１１と第２の比較圧縮部１１２がリードアクセスの圧縮情報の比較を行う。
【００８８】
第１の比較圧縮部１１１と第２の比較圧縮部１１２は、お互いにリードアクセスのアドレス圧縮情報と、リードアクセスのデータ圧縮情報とを交換して比較する（Ｓ１７、Ｓ１８、ステップＡ５０５）。
【００８９】
ここで、比較結果が一致していれば（ステップＡ５０６においてＹｅｓ）、第１のプロセッサ１０１と第２のプロセッサ１０２に故障が無いことが分かる（ステップＳ５０７）。
【００９０】
一方、比較結果が不一致であれば（ステップＡ５０６においてＮｏ）、第１のプロセッサ１０１と第２のプロセッサ１０２の何れか又は両者に故障があることがわかる（ステップＳ５０８）。
【００９１】
次に、図１７及び１８のフローチャートを用いて共有メモリ・Ｉ／Ｏ構成である故障検出装置１０００の第１の比較圧縮部１１１と第２の比較圧縮部１１２が共有メモリＩ／Ｏのアクセスに伴って保存した圧縮情報の比較を行う場合及び故障検出装置３０００が圧縮情報の比較を行う場合について説明する。
【００９２】
この例では、第２のプロセッサ１０２が共有メモリＩ／Ｏ１３０へのリードアクセスではなく、ライトアクセスを行う場合について説明する。
【００９３】
第１の比較圧縮部１１１は、第１のプロセッサ１０１からライトアクセスを受理する（Ｓ１９、ステップＡ６０１）。
【００９４】
第１の比較圧縮部１１１は、第２の比較圧縮部１１２へ当該ライトアクセスを転送する。そして、第２の比較圧縮部１１２は当該ライトアクセスを内部に記録する（Ｓ２０、ステップＡ６０２）。
【００９５】
第２の比較圧縮部１１２は、第２のプロセッサ１０２からライトアクセスを受理する（Ｓ２１、ステップＡ６０３）。
【００９６】
そして、第１の比較圧縮部１１１から過去に受理したライトアクセスと比較し、そのアクセス情報が一致しているかどうか比較する（ステップＡ６０４）。一致していれば（ステップＡ６０４においてＹｅｓ）、ステップＡ６０５へ進む。
【００９７】
ステップＡ６０５において、第２の比較圧縮部１１２は、ライトアクセスを共有メモリＩ／Ｏ１３０へと発行する（Ｓ２２、ステップＡ６０５）。
【００９８】
一方、ステップＡ６０４の比較の結果、一致していなければ（ステップＡ６０４においてＮｏ）、故障を検出し、エラー信号を出力する（ステップＡ６０６）。
【００９９】
以上、ライトアクセスについては、アクセス毎にアクセス情報を比較して同期する例形態を説明したが、一般の共有メモリ・Ｉ／Ｏ構成を有する並列処理装置において用いられる、同期を行う機構であれば何でも構わない。
【０１００】
以上説明した本発明の実施形態は、以下のような効果を奏する。
【０１０１】
第１の効果は、分散メモリ・Ｉ／Ｏ構成、共有メモリ・Ｉ／Ｏ構成、或いはこの何れもが存在する構成で高速に故障検出が可能となることである。その理由は、圧縮情報の統一した活用が可能になるためである。
【０１０２】
第２の効果は、高信頼に故障を検出できることである。その理由は、プロセッサ内部に圧縮機構を加える必要がないためである。
【０１０３】
第３の効果は、圧縮情報を活用しながら、メモリの一貫性を守るという課題を解決できることである。その理由は、ライトアクセスについては同期を行って比較することで故障を検出するためである。
【０１０４】
なお、本発明の実施形態である故障検出装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【０１０５】
また、前記各実施形態では、圧縮情報を活用して、高速かつ高信頼に故障を検出可能な装置及び方法を例に説明した。もっとも、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【符号の説明】
【０１０６】
１０１、７０１、８０１  第１のプロセッサ
１０２、７０２、８０２  第２のプロセッサ
１１１  第１の比較圧縮部
１１２  第２の比較圧縮部
１２１、７２１、９１１  第１の分散メモリＩ／Ｏ
１２２、７２２、９１２  第２の分散メモリＩ／Ｏ
１３０、８２１  共有メモリＩ／Ｏ
２００  アクセス分類表
７００、８００、９００，１０００、２０００、３０００  故障検出装置
７１１  比較部
８１１  アクセス管理部
９０１  第１の圧縮機構付きプロセッサ
９０２  第２の圧縮機構付きプロセッサ
９２１  第１の圧縮情報
９２２  第２の圧縮情報
【図１】
2010218012.tif 000003
【図２】
2010218012.tif 000004
【図３】
2010218012.tif 000005
【図４】
2010218012.tif 000006
【図５】
2010218012.tif 000007
【図６】
2010218012.tif 000008
【図７】
2010218012.tif 000009
【図８】
2010218012.tif 000010
【図９】
2010218012.tif 000011
【図１０】
2010218012.tif 000012
【図１１】
2010218012.tif 000013
【図１２】
2010218012.tif 000014
【図１３】
2010218012.tif 000015
【図１４】
2010218012.tif 000016
【図１５】
2010218012.tif 000017
【図１６】
2010218012.tif 000018
【図１７】
2010218012.tif 000019
【図１８】
2010218012.tif 000020
【図１９】
2010218012.tif 000021
【図２０】
2010218012.tif 000022
【図２１】
2010218012.tif 000023