(57)【要約】【課題】  従来の計算機故障検出システムでは、共通バスのデータ転送量が限られているため、自己診断情報を通知するために共通バスを使用すると、共通バスのデータ転送量は低下する。また他のプロセッサが共通バスを使用しているため、使用許可を得られず自己診断情報の出力が遅延して、正しく故障検出できないという課題があった。【解決手段】  複数の自己診断出力計算機、及び故障検出計算機、及び複数の自己診断出力計算機と故障検出計算機とを接続する自己診断情報回線を備え、自己診断出力計算機は自ら自己診断情報を作成出力し、自己診断情報回線は各自己診断出力計算機から出力される自己診断情報を伝送し、故障検出計算機は各自己診断情報回線から受信した自己診断情報に基づいて自己診断情報を送信した自己診断出力計算機の故障を検出する。【選択図】  図１
2008146222.tif 000002
【特許請求の範囲】
【請求項１】
複数の自己診断出力計算機、及び故障検出計算機、及び前記複数の自己診断出力計算機と前記故障検出計算機とを接続する自己診断情報回線を備え、
前記自己診断出力計算機は、自らの自己診断結果を示す自己診断情報を作成出力し、
前記自己診断情報回線は、前記自己診断出力計算機と各々接続し、前記自己診断出力計算機から出力される自己診断情報を伝送し、
前記故障検出計算機は、前記自己診断情報回線と全て接続し、前記自己診断情報回線から伝送された自己診断情報を受信し、受信した前記自己診断情報に基づいて前記自己診断情報を送信した自己診断出力計算機の故障を検出する
ことを特徴とする計算機故障検出システム。
【請求項２】
前記故障検出計算機はメモリ部とＣＰＵを備え、
前記メモリ部は、前記自己診断出力計算機から出力された自己診断情報を受信した場合、前記自己診断情報の受信時刻と前記自己診断情報とを対応づけたデータを格納し、
前記ＣＰＵは、前記メモリ部に格納された前記データを参照して、前記自己診断情報を送信した自己診断出力計算機の故障を検出することを特徴とする請求項１記載の計算機故障検出システム。
【請求項３】
各々の計算機における自己診断情報を作成出力する工程と、
前記出力された自己診断情報に基づき、前記自己診断情報の受信時刻と前記自己診断情報とを対応づけたデータを参照比較して前記自己診断情報を送信した計算機の故障を検出する工程と、
を備えたことを特徴とする計算機故障検出方法。
【請求項４】
前記参照比較するデータは、前記自己診断情報の受信時刻と前記自己診断情報とを対応づけたデータと、前記受信時刻の一時刻前に自己診断情報を受信した受信時刻と前記一時刻前の自己診断情報とを対応づけたデータであることを特徴とする請求項３記載の計算機故障検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マルチプロセッサ並列処理システムにおいて、プロセッサ搭載の各計算機を接続する共通バスの性能を低下させることなく計算機の故障を検出するシステムおよび方法に関する。
【背景技術】
【０００２】
従来のマルチプロセッサ並列処理システムにおいて、計算機で発生した故障を検出する方法として、プロセッサを搭載した各計算機が共通バスを介して自己診断情報を周期的に他のプロセッサに通知し、各プロセッサは、他のプロセッサから周期的に通知された自己診断情報を確認することで、故障が発生した計算機を検出する方法が知られている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平７−２１９９１０（第２〜４頁、第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしマルチプロセッサ並列処理システムにおいて、プロセッサ間のデータ通信に用いる共通バスはデータ転送量が限られている。よって、あるプロセッサが他のプロセッサに対して周期的に自己診断情報を通知するために共通バスを使用すると、プロセッサ間でのデータ通信で使用可能なデータ転送量は低下する。
【０００５】
加えて自己診断情報を通知すべきプロセッサが、例えば他のプロセッサの共通バス使用により、共通バスでのデータ通信を管理している計算機から共通バスの使用許可を得られず自己診断情報を出力できないため、自己診断情報の出力遅延が発生する可能性もある。
【０００６】
従って共通バスを用いて自己診断情報を通知することにより、共通バスのデータ転送量が低下するとともに、自己診断情報を受信した計算機において自己診断情報が更新されていない原因は、自己診断情報の出力遅延で未更新なのか、それとも送信側プロセッサ故障による送信不能で未更新なのか判断できず、正しい故障検出ができないという課題があった。
【０００７】
本発明は係る課題を解決するためになされたものであり、共通バスのデータ転送量を低下させることなく、各計算機の自己診断情報をもとに計算機の故障を正しく検出することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る計算機故障検出システムは、
複数の自己診断出力計算機、及び故障検出計算機、及び前記複数の自己診断出力計算機と前記故障検出計算機とを接続する自己診断情報回線を備え、
前記自己診断出力計算機は、自らの自己診断結果を示す自己診断情報を作成出力し、
前記自己診断情報回線は、前記自己診断出力計算機と各々接続し、前記自己診断出力計算機から出力される自己診断情報を伝送し、
前記故障検出計算機は、前記自己診断情報回線と全て接続し、前記自己診断情報回線から伝送された自己診断情報を受信し、受信した前記自己診断情報に基づいて前記自己診断情報を送信した自己診断出力計算機の故障を検出する
ことを特徴とする。
【発明の効果】
【０００９】
本発明のように、共通バスを用いずに自己診断情報回線を用いて自己診断情報を送信することにより、共通バスのデータ転送量を低下させることは無い。また自己診断情報回線では共通バスのような出力遅延が発生しないため、確実に故障検出を行うことが可能である。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、実施の形態１における計算機故障検出方法を実現するマルチプロセッサ並列処理システムの一構成例を示している。
【００１１】
図１は、自己診断出力計算機が２台、故障検出計算機が１台で構成されている。しかしマルチプロセッサ並列処理システムにおける自己診断出力計算機は、図１のように２台に限定する必要はなく、並列処理システムに必要とされる台数で並列処理システムを構成させてよいことはいうまでもない。
【００１２】
自己診断出力計算機１１は、各々共通バスＩ／Ｆ（インタフェース）部１２と、自己診断出力計算機ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）１３と、自己診断情報送信部１４とを含む構成であり、内部バス１５にて各々内部接続されている。
【００１３】
故障検出計算機１６は、共通バスＩ／Ｆ部１７と、故障検出計算機ＣＰＵ１８と、自己診断情報受信部１９と、受信メモリ部２０とを含む構成であり、内部バス２１にて各々接続されている。また故障検出計算機１６は受信時刻計測部２２を含む。受信時刻計測部２２より出力される受信時刻データ２３は、自己診断情報受信部１９に入力される。
【００１４】
図１の自己診断出力計算機１１と故障検出計算機１６は、自己診断出力計算機１１の共通バスＩ／Ｆ部１２と、故障検出計算機１６の共通バスＩ／Ｆ部１７を通じて共通バス２４により接続されている。各計算機間は、接続された共通バス２４を用いてデータ転送を行う。
【００１５】
また各自己診断出力計算機１１内部の自己診断情報送信部１４と、故障検出計算機１６内部の自己診断情報受信部１９は、図１のように各々自己診断情報回線２５により接続されている。各自己診断出力計算機１１は、接続された自己診断情報回線２５を用いて故障検出計算機へ自己診断情報を送信する。なお自己診断情報回線２５は、シリアル伝送、パラレル伝送いずれでもよい。
【００１６】
図２は、実施の形態１における自己診断出力計算機１１より出力される自己診断情報に関するテーブル及び自己診断情報のデータフレームの一例を示した図である。
【００１７】
各自己診断出力計算機１１は、自己診断出力計算機１１内部において処理される機能及びその機能を実現するためのプログラムや装置等につき、正常動作をしているか異常動作をしているかの自己診断を行う。ここではその一例として、自己診断出力計算機１１ａにおける自己診断について説明する。
【００１８】
自己診断出力計算機１１ａに搭載された自己診断出力計算機ＣＰＵ１３ａは、内部において処理される機能及びその機能を実現するためのプログラムや装置等、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリ、また情報処理等を行うＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの信号処理デバイス、及びそれらより構成される基板、装置等に対して周期的に自己診断プログラムを実行する。自己診断プログラムでは、自己診断出力計算機１１ａの各機能が正常動作か異常動作かを確認し、必要であれば、例えば機能確認用プログラムを実行して異常動作であることを検出する。
【００１９】
例えば自己診断の結果、自己診断出力計算機１１ａ内部の機能が全て正常動作している場合、自己診断出力計算機ＣＰＵ１３ａは、図２（ａ）のように自己診断情報００を得る。また例えば自己診断の結果、自己診断出力計算機１１ａ内部の機能のうち、機能１において故障２が発生している場合、自己診断出力計算機ＣＰＵ１３ａは、同様にして自己診断情報０２を得る。
【００２０】
なお図２（ａ）において、自己診断情報は１６進数表示（ｈｅｘａｄｅｃｉｍａｌ、図２（ａ）ではｈｅｘと表示）で表されており、ビット数は８ビットとしている。しかし、ビット数は８ビットに限定するものではなく、想定される故障内容全てを表示可能とするビット数としてもよいことはいうまでもない。
【００２１】
図２（ａ）の自己診断情報テーブルに基づき自己診断出力計算機ＣＰＵ１３ａは、例えば図２（ｂ）に示す自己診断情報のデータフレームを作成して自己診断情報回線２５ａに出力する。送信する自己診断情報のデータフレームの構成要素は、どの自己診断出力計算機に関する自己診断情報かを表す自己診断出力計算機ＩＤ（ＩＤｅｎｔｉｆｉｅｒ）と当該自己診断出力計算機の自己診断情報である。
【００２２】
なお自己診断情報のデータフレームは自己診断出力計算機ＣＰＵ１３ａではなく、自己診断情報送信部１４ａにおいて作成してもよいし、またデータフレーム作成用の機能ブロックや回路を設けて作成してもよい。
【００２３】
自己診断情報のデータフレームを作成した後、自己診断出力計算機１１ａの自己診断情報は、自己診断情報送信部１４ａより出力される。自己診断情報送信部１４ａより出力された自己診断出力計算機１１ａの自己診断情報は、自己診断情報回線２５ａを介して故障検出計算機１６の自己診断情報受信部１９へ入力される。
【００２４】
自己診断出力計算機１１ｂも同様の処理を行う。また自己診断出力計算機１１が３台以上ある場合も同様の処理を行う。
【００２５】
図３は、実施の形態１における故障検出計算機１６の自己診断情報受信部１９におけるデータ処理に受信時刻データ２３を使用することを説明する図である。
【００２６】
図３は、自己診断出力計算機１１ａで故障が発生し、自己診断出力計算機１１ｂは正常動作する場合を示している。図３のうち（１）と（２）は受信時刻データ２３を併用せずに故障検出を行う場合を、（３）と（４）は受信時刻データ２３を併用して故障検出を行う場合を示している。
【００２７】
まず図３の（１）と（２）を用いて、自己診断情報と受信時刻データを併用しない場合について説明する。故障検出計算機１６には、図２（ｂ）に示したように自己診断出力計算機ＩＤと自己診断出力計算機の自己診断情報が送信される。
【００２８】
ここで自己診断出力計算機１１ａの故障には、自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａが故障した場合と、自己診断出力計算機ＣＰＵ１３ａ以外が故障した場合が考えられる。そこでまず図３の（１）のように、自己診断出力計算機ＣＰＵ１３ａ以外が故障した場合、例えば機能１で故障２が発生した場合について説明する。
【００２９】
自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、動作を開始してから故障検出計算機１６における受信時刻ｔ１まで故障が発生せず、正常動作をしているとする。このとき、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、図２（ａ）のテーブルに従い、正常動作を示す自己診断情報「００」を故障検出計算機１６の自己診断情報受信部１９に入力する。従って図３の（１）に示したように、受信時刻ｔ１に、自己診断情報受信部１９にて受信された自己診断出力計算機１１ａと自己診断出力計算機１１ｂの自己診断情報はともに「００」である。
【００３０】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、上記自己診断情報を参照し、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは正常動作していると判断する。
【００３１】
次に、受信時刻ｔ１から次の自己診断情報を受信するタイミングである受信時刻ｔ２までの間に、自己診断出力計算機１１ａの機能１で故障２が発生したとする。この場合、自己診断出力計算機１１ｂは正常動作のままなので、自己診断情報は「００」のまま出力する。しかし自己診断出力計算機１１ａは、機能１で故障２が発生しているため、図２（ａ）のテーブルに従い「０２」を出力する。従って図３の（１）に示したように、受信時刻ｔ２に自己診断情報受信部１９にて受信された自己診断出力計算機１１ａの自己診断情報は「０２」、自己診断出力計算機１１ｂの自己診断情報は「００」である。
【００３２】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、上記自己診断情報を参照し、自己診断出力計算機１１ａは機能１で故障２が発生し、自己診断出力計算機１１ｂは正常動作していると判断する。
【００３３】
しかしこの方法では、ＣＰＵが故障した場合、故障検出が正しくできない。そのことを示すため、図３の（２）のように自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａが故障した場合を説明する。
【００３４】
自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、動作を開始してから故障検出計算機１６における受信時刻ｔ１まで故障が発生せず、正常動作をしているとする。このとき、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、図２（ａ）のテーブルに従い、正常動作を示す自己診断情報「００」を故障検出計算機１６の自己診断情報受信部１９に入力する。従って図３の（２）に示したように、受信時刻ｔ１に、自己診断情報受信部１９にて受信された自己診断出力計算機１１ａと自己診断出力計算機１１ｂの自己診断情報はともに「００」である。
【００３５】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、上記自己診断情報を参照し、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは正常動作していると判断する。
【００３６】
次に、受信時刻ｔ１から次の自己診断情報を受信するタイミングである受信時刻ｔ２までの間に、自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａで故障が発生したとする。この場合、自己診断出力計算機１１ｂは正常動作のままなので、自己診断情報は「００」のまま出力する。しかし自己診断出力計算機１１ａは、自己診断出力計算機ＣＰＵ１３ａで故障が発生したため、自己診断情報を送信することができず、自己診断出力計算機１１ａは自己診断情報を出力することができない。従って図３の（２）に示したように、受信時刻ｔ２に、自己診断情報受信部１９にて受信された自己診断出力計算機１１ｂの自己診断情報は「００」である。しかし自己診断出力計算機１１ａの自己診断情報は更新されないままである。
【００３７】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、上記自己診断情報を参照し、自己診断出力計算機１１ｂは正常動作していると正しく判断する。しかし、自己診断出力計算機１１ａは自己診断情報を更新しないため、故障検出計算機ＣＰＵ１８が自己診断出力計算機１１ａの自己診断情報を参照した場合、図３の（２）に示したように、更新されていない自己診断情報「００」を参照し、正常動作していると誤判断する。
【００３８】
このことから、各自己診断出力計算機１１から送信された自己診断情報のみ用いると、自己診断出力計算機ＣＰＵ１３が動作している場合は故障検出可能であるが、例えば自己診断出力計算機ＣＰＵ１３が故障等により停止した場合は故障検出できないことがわかる。
【００３９】
そこで図３の（３）と（４）に示すように、受信時刻計測部２２から出力される受信時刻データ２３を自己診断情報受信部１９に入力し、各自己診断出力計算機１１より送信される自己診断情報と受信時刻データとを併用して故障検出を行う。なお図３の（３）と（４）記載のｔ１とｔ２は、受信時刻ｔ１、受信時刻ｔ２を表すデータである。
【００４０】
故障検出計算機１６内部にある受信時刻計測部２２は、例えばカウンタ等のタイマを用いて時刻を計測しており、自己診断情報受信部１９に時刻を常時出力している。なお、各自己診断出力計算機１１と故障検出計算機１６に搭載されているタイマどうしは同期がとれており、各自己診断出力計算機１１から故障検出計算機１６へ出力される自己診断情報の受信タイミングがあらかじめわかっているならば、受信時刻計測部２２から出力される受信時刻データ２３は常時出力する必要はなく、受信タイミングに合わせて出力するだけでもよい。
【００４１】
自己診断情報受信部１９は、各自己診断出力計算機１１より自己診断情報を受信した場合、受信時刻計測部２２より出力された受信時刻データ２３を自己診断情報に付加する。
【００４２】
図３の（３）のように、自己診断出力計算機１１ａの機能１で故障２が発生した場合、受信時刻ｔ１では自己診断情報と受信時刻データ２３を合わせたデータは「００ｔ１」、受信時刻ｔ２では自己診断情報と受信時刻データ２３を合わせたデータは「０２ｔ２」となるため、図３の（１）と同様に故障検出計算機ＣＰＵ１８は自己診断情報のみを参照比較することで、自己診断出力計算機１１ａの機能１で故障２が発生したことを正しく判断することができる。
【００４３】
次に図３の（２）と同様に図３の（４）において、自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａが故障した場合を説明する。
【００４４】
自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、動作を開始してから故障検出計算機１６における受信時刻ｔ１まで故障が発生せず、正常動作をしているとする。このとき、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは、図２（ａ）のテーブルに従い、正常動作を示す自己診断情報「００」を故障検出計算機１６の自己診断情報受信部１９に入力する。従って図３の（４）に示したように、受信時刻ｔ１における、自己診断出力計算機１１ａと自己診断出力計算機１１ｂの自己診断情報と受信時刻データ２３を合わせたデータはともに「００ｔ１」となる。
【００４５】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、上記自己診断情報を参照し、図３には図示していないが、一時刻前の自己診断情報と受信時刻データ２３を合わせたデータを比較して、自己診断出力計算機１１ａと自己診断出力計算機１１ｂは正常動作していると判断する。
【００４６】
そして、受信時刻ｔ１から次の自己診断情報を受信するタイミングである受信時刻ｔ２までの間に、自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａで故障が発生したとする。この場合、自己診断出力計算機１１ｂは正常動作のままなので、自己診断情報は「００」のまま出力する。しかし自己診断出力計算機１１ａは、自己診断出力計算機ＣＰＵ１３ａで故障が発生したため、自己診断出力計算機１１ａは自己診断情報を出力することができない。
【００４７】
従って受信時刻ｔ２における、自己診断出力計算機１１ｂの自己診断情報と受信時刻データ２３を合わせたデータは「００ｔ２」である。しかし自己診断出力計算機１１ａの自己診断情報は、自己診断情報受信部１９にて受信されないため、自己診断情報と受信時刻データ２３を合わせたデータは更新されることなく「００ｔ１」のままである。
【００４８】
故障検出計算機１６の故障検出計算機ＣＰＵ１８は、後述するように上記自己診断情報と受信時刻データを合わせたデータについて、受信時刻ｔ２のデータと一時刻前の受信時刻ｔ１のデータを参照比較する。つまり自己診断出力計算機１１ｂは、受信時刻ｔ１でのデータ「００ｔ１」と受信時刻ｔ２でのデータ「００ｔ２」を参照比較することで、正常動作していると正しく判断する。
【００４９】
一方、自己診断出力計算機１１ａは、自己診断情報と受信時刻データを合わせたデータが更新されないため、受信時刻ｔ１でのデータ「００ｔ１」と受信時刻ｔ２でのデータ「００ｔ１」を参照比較し、受信時刻データが更新されていないことを検出する。
【００５０】
自己診断情報回線２５は、故障検出計算機１６と個々の自己診断出力計算機１１を接続しているため、共通バス２４を用いた場合のような他の自己診断出力計算機１１と故障検出計算機１６とのデータ送受信による自己診断情報の出力遅延は発生しない。従って、出力遅延によるデータ更新の遅延も発生しない。
【００５１】
このことから、自己診断出力計算機１１ａの自己診断情報と受信時刻データ２３を合わせたデータが受信時刻ｔ１とｔ２において更新されていない原因は、自己診断情報の出力遅延によるものではなく、自己診断出力計算機１１ａの自己診断出力計算機ＣＰＵ１３ａの故障発生により動作を停止したためと判断することができる。従って、故障検出計算機ＣＰＵ１８は自己診断出力計算機１１ａの故障を正しく検出できる。
【００５２】
図４は、実施の形態１における自己診断情報受信部１９から受信メモリ部２０に出力されるデータの一例を示す図である。
【００５３】
図４（ａ）は、自己診断出力計算機の自己診断情報と受信時刻に関するデータの一例である。例えばＮｏ．１は、自己診断出力計算機ａの自己診断情報「００」（正常）が００時０１分００秒（ｔ１）に受信されたことを表す。またＮｏ．２は、自己診断出力計算機ａの自己診断情報「０２」（機能１で故障２が発生）が００時０１分３０秒（ｔ２）に受信されたことを表す。
【００５４】
図４（ａ）のデータをもとに、故障検出計算機１６の自己診断情報受信部１９が自己診断情報を受信した場合、受信メモリ部２０に出力するデータフォーマット例を図４（ｂ）に示す。自己診断情報受信部１９には、例えば図２（ｂ）に示したように自己診断出力計算機から送信された自己診断出力計算機ＩＤと自己診断情報と、受信時刻計測部２２より出力された受信時刻データ２３が入力する。これらの入力より、図４（ｂ）の（１）に示す自己診断情報受信部データフォーマット例のようにデータを作成する。
【００５５】
次に、受信メモリ部２０に一時記憶させるため、受信メモリアドレスと受信メモリデータに分ける。図４（ｂ）の（２）に示すように、受信メモリアドレスは、自己診断出力計算機ＩＤ部と受信時刻の前後関係を表すビットであるＴＩＭＥ部より構成される。
【００５６】
ＴＩＭＥ部とは、図３でも説明したように、受信時刻ｔ２の自己診断情報と一時刻前の受信時刻ｔ１の自己診断情報とを比較して故障検出を行うため、受信時刻を用いて同一自己診断出力計算機の自己診断情報を区別するためのビットである。なお説明の便宜上、受信時刻ｔ２に基づくアドレスをＮＥＷアドレスと呼び、一時刻前の受信時刻ｔ１に基づくアドレスをＯＬＤアドレスと呼ぶこととする。
【００５７】
また図４（ｂ）の（３）に示すように、受信メモリデータは自己診断情報と受信時刻より構成される。従って、例えば、受信時刻ｔ１において正常動作している自己診断情報を受信した場合は「００ｔ１」、受信時刻ｔ２において機能１で故障２が発生している自己診断情報を受信した場合は「０２ｔ２」となる。なお説明の便宜上、受信メモリデータにおいてＮＥＷアドレスに対応するデータをＮＥＷデータと呼び、ＯＬＤアドレスに対応するデータをＯＬＤデータと呼ぶこととする。受信メモリ部２０は、自己診断情報受信部１９より出力されたＮＥＷデータを記憶する。
【００５８】
図５は、受信メモリ部２０に記憶された自己診断出力計算機ａに対するデータの比較による故障検出を示す図である。また図６は、受信メモリ部２０に一時記憶された自己診断出力計算機ａのデータを用いて故障検出を行うことを示したフローチャートの一例である。図５、図６に従い、処理内容を説明する。なお説明は自己診断出力計算機ａのみについて行うが、自己診断出力計算機ｂも同様である。
【００５９】
最初に、マルチプロセッサ並列処理システムが起動したときに故障検出をスタートさせる（ステップＳＴ１０１）。このとき受信メモリ部２０のデータは、全ビット０または全ビット１などのように適切な初期値に設定する。
【００６０】
次に、図５に示されているように、受信メモリにおける一時刻前の受信時刻におけるＮＥＷデータをＯＬＤアドレスのデータ（ＯＬＤデータ）として上書きして一時記憶する（図６  ステップＳＴ１０２）。
【００６１】
次に、受信した自己診断出力計算機ａの自己診断情報と受信時刻を示すデータを合わせたデータを受信メモリ部２０のＮＥＷデータに上書き更新して一時記憶する（図６  ステップＳＴ１０３）。
【００６２】
次に、一時記憶したＮＥＷデータと一時刻前のＮＥＷデータであるＯＬＤデータを受信メモリ部２０より読み出す（図６  ステップＳＴ１０４）。
【００６３】
次に、受信メモリ部２０より読み出したＯＬＤデータとＮＥＷデータとを比較する（図６  ステップＳＴ１０５）。
【００６４】
ここで、図５の（１）に示しているように、自己診断出力計算機ａが正常動作している場合について説明する。自己診断出力計算機ａが正常動作している場合、図５の（１）のようにＯＬＤデータとＮＥＷデータ（例えば「００ｔ１」と「００ｔ２」）は異なるため、図６のステップＳＴ１０５はＮＯとなる。
【００６５】
その場合、ＮＥＷデータが異常を示しているか判断する（図６  ステップＳＴ１０６）。異常の有無は、図４に示すように、ＮＥＷデータを構成している要素のうち自己診断情報よりわかる。
【００６６】
自己診断出力計算機ａが正常動作している場合、ＮＥＷデータは正常を示す（例えば「００ｔ２」のうちの「００」）ため、図６のステップＳＴ１０６はＮＯとなる。その場合、図６のステップＳＴ１０２に戻る。以降、同様の処理ループを繰り返す。
【００６７】
次に、図５の（２）に示しているように、自己診断出力計算機ａにおいて機能１で故障２が発生した場合について説明する。この場合、例えばＯＬＤデータは「００ｔ１」、ＮＥＷデータは「０２ｔ２」であるから、図６のステップＳＴ１０５においてＮＯを選択するところまでは上述の通りである。
【００６８】
図５の（２）では、受信時刻ｔ１とｔ２の間に機能１で故障２が発生した場合を示している。従って受信時刻ｔ２におけるＮＥＷデータには機能１で故障２が発生した情報（例えば「０２ｔ２」のうちの「０２」）が含まれているため、図６のステップＳＴ１０６はＹＥＳとなる。
【００６９】
ＮＥＷデータを構成する自己診断情報より、どの機能がどのような異常を起こしているか読み取り（図６  ステップＳＴ１０７）、自己診断出力計算機ａに異常が発生した旨の表示を行う（図６  ステップＳＴ１０８）。更に正確を期して、自己診断出力計算機ａの故障した機能と故障内容の表示をさせてもよい。
【００７０】
自己診断出力計算機ａの異常発生を表示させたら、例えば全計算機を停止させるなどして、故障検出処理を終了させる（図６  ステップＳＴ１０９）。
【００７１】
最後に、図５の（３）に示しているように、受信時刻ｔ１と受信時刻ｔ２の間に自己診断出力計算機ａにおいてＣＰＵが故障した場合について説明する。その場合、図５の（３）に示しているように受信時刻ｔ２におけるデータは更新されないため、ＯＬＤデータとＮＥＷデータは一致し（例えば「００ｔ１」と「００ｔ１」）、図６のステップＳＴ１０５はＹＥＳを選択する。
【００７２】
この場合、自己診断出力計算機ａのＣＰＵが停止等で故障しているため、自己診断情報は更新されていないと判断する（図６  ステップＳＴ１１０）。
【００７３】
自己診断出力計算機ａのＣＰＵが故障していると判断した場合は、自己診断出力計算機ａに異常が発生した旨の表示を行う（図６  ステップＳＴ１０８）。更に正確を期して、自己診断出力計算機ａのＣＰＵ故障の表示をさせてもよい。自己診断出力計算機ａの異常発生を表示させたら、例えば全計算機を停止させるなどして、故障検出処理を終了させる（図６  ステップＳＴ１０９）。
【００７４】
このように、自己診断情報と受信時刻を併用して参照比較することで、自己診断出力計算機の故障検出を行うことが可能となる。
【００７５】
故障検出後、全計算機の処理を止めるなど行い故障計算機を交換する、または故障計算機をマルチプロセッサ並列処理システムから除外して残りの計算機を用いて処理を継続する、などの処置を行うことが可能である。
【００７６】
このように、共通バス２４を用いずに自己診断情報回線２５を用いて自己診断情報を送信することにより、共通バス２４のデータ転送量を低下させることは無い。また自己診断情報回線２５では共通バス２４のような出力遅延が発生しないため、確実に故障検出を行うことが可能である。
【００７７】
更に、故障検出計算機１６内部に受信時刻計測部２２を設けて、受信した自己診断情報に受信時刻データ２３を付加し、故障検出計算機ＣＰＵ１８が参照比較することで、自己診断出力計算機の機能故障のみならず、プロセッサの故障発生により自己診断情報が更新されない場合での故障検出を行うことが可能となる、という効果を奏する。
【図面の簡単な説明】
【００７８】
【図１】実施の形態１における計算機故障検出方法を実現するマルチプロセッサ並列処理システムの一構成例を示す図である。
【図２】実施の形態１における自己診断出力計算機より出力される自己診断情報に関するテーブル及び自己診断情報のデータフレームの一例を示した図である。
【図３】実施の形態１における故障検出計算機の自己診断情報受信部におけるデータ処理に受信時刻データを使用することを説明する図である。
【図４】実施の形態１における自己診断情報受信部から受信メモリ部に出力されるデータの一例を示す図である。
【図５】実施の形態１における受信メモリに記憶された自己診断出力計算機に対するデータの比較による故障検出を示す図である。
【図６】実施の形態１における受信メモリ部に一時記憶された自己診断出力計算機のデータを用いて故障検出を行うことを示したフローチャートの一例である。
【符号の説明】
【００７９】
１１．自己診断出力計算機
１２．共通バスＩ／Ｆ部
１３．自己診断出力計算機ＣＰＵ
１４．自己診断情報送信部
１５．内部バス
１６．故障検出計算機
１７．共通バスＩ／Ｆ部
１８．故障検出計算機ＣＰＵ
１９．自己診断情報受信部
２０．受信メモリ部
２１．内部バス
２２．受信時刻計測部
２３．受信時刻データ
２４．共通バス
２５．自己診断情報回線
【図１】
2008146222.tif 000003
【図２】
2008146222.tif 000004
【図３】
2008146222.tif 000005
【図４】
2008146222.tif 000006
【図５】
2008146222.tif 000007
【図６】
2008146222.tif 000008