JP4829821B2 - マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法 - Google Patents

マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法 Download PDF

Info

Publication number
JP4829821B2
JP4829821B2 JP2007070194A JP2007070194A JP4829821B2 JP 4829821 B2 JP4829821 B2 JP 4829821B2 JP 2007070194 A JP2007070194 A JP 2007070194A JP 2007070194 A JP2007070194 A JP 2007070194A JP 4829821 B2 JP4829821 B2 JP 4829821B2
Authority
JP
Japan
Prior art keywords
control data
monitoring
processor element
application
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007070194A
Other languages
English (en)
Other versions
JP2008234117A (ja
Inventor
佳生 廣瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007070194A priority Critical patent/JP4829821B2/ja
Publication of JP2008234117A publication Critical patent/JP2008234117A/ja
Application granted granted Critical
Publication of JP4829821B2 publication Critical patent/JP4829821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、複数のプロセッサエレメントを備えるマルチプロセッサシステムに係わり、特に、組込み型マルチプロセッサシステムの信頼性を向上させる技術に係わる。
様々な分野において組込みシステムが広く普及してきている。組込みシステムは、制御すべき対象の装置に内蔵される情報処理システムであって、1または複数のプロセッサを用いてその装置の動作を制御する。そして、近年では、高い信頼性を必要とする組込みシステム(例えば、自動車、航空機、鉄道車両、船舶等に組み込まれる制御システム)が要求されている。
高い信頼性が要求される組込みシステムにおいては、例えば、2重化システムまたは3重化システムが採用されている。3重化システムにおいては、同一の処理を並列に実行する3個のプロセッサの出力値が互いに比較され、多数決の原理に従って出力結果が決定される。このとき、特定のプロセッサの出力値が他の2個のプロセッサの出力値と異なっていた場合には、その特定のプロセッサは故障しているものと判断され、システムから切り離される。これにより、高い信頼性が実現される。2重化システムにおいては、2個のプロセッサの出力値を互いに比較することによって故障を検出できる。ただし、2重化システムでは、出力値の比較だけでは、どちらのプロセッサが故障しているのかを判定することはできない。
組込みシステムは、高い処理能力を必要とする場合には、複数のプロセッサエレメントを備えるマルチプロセッサシステム構成が採用される。ここで、このマルチプロセッサシステムの信頼性を高めるためには、上述した2重化/3重化を導入する構成が考えられる。しかし、各プロセッサエレメントをそれぞれ2重化/3重化すると、全体としてコストが大幅に増加することとなる。
一方、マルチプロセッサシステムは、複数のプロセッサエレメントを備えているので、各プロセッサエレメントが相互に動作状態を監視する機能を導入すれば、各プロセッサエレメントの故障を検出することが可能である。例えば、特許文献1、2には、各プロセッサエレメントが他のプロセッサエレメントから出力される「自己故障検出情報」あるいは「生存通知」を監視するサーバーシステムが記載されている。また、特許文献3には、各プロセッサが備えるメモリにそれぞれ全プロセッサの動作状況を監視するためのテーブルを設け、各プロセッサが互いに「ヘルス信号」を通知することによりシステムの動作状態を管理する構成が開示されている。
さらに、特許文献4に記載の組込みシステムにおいては、各プロセッサエレメントがそれぞれ自分の「動作状態」を共有メモリに書き込み、他のプロセッサエレメントがその共有メモリを参照する。このとき、異常値が検出されると、その異常値を書き込んだプロセッサエレメントが故障しているものと判断される。そして、そのプロセッサエレメントにより実行されていたアプリケーションは、他のプロセッサエレメントにより実行されるように制御される。さらに、故障が検出されたプロセッサエレメントは、リセットされた後に再起動される。
特開平7−262042号公報 特開昭63−004366号公報 特開昭63−291132号公報 特開2004−310252号公報
このように、特許文献1〜4に記載のシステムは、各プロセッサエレメントによる演算結果自体(組込みシステムにおいては、機器制御に用いる制御データに相当)をチェックするのではなく、各プロセッサエレメントの状態を表す情報を他のプロセッサエレメントが監視する構成である。すなわち、これらのシステムでは、各プロセッサエレメントがそれぞれ定期的に自分の状態をチェックし、そのチェック結果を所定の記憶領域に書き込む(あるいは、相互に通知する)。また、各プロセッサエレメントは、それぞれ定期的にその記憶領域を参照し、他のプロセッサエレメントの状態を検出する。ここで、「状態」とは、例えば、プロセッサエレメントが動作しているか否かを意味する。よって、この構成においては、故障の検出が遅れるおそれがある。また、プロセッサエレメントが動作はしているものの正しい演算を行えないような場合には、誤った演算結果が出力されることもある。したがって、このような構成のマルチプロセッサシステムを組込みシステムに採用すると、誤った演算結果が制御対象装置に与えられてしまい、その結果として誤動作を引き起こすおそれがある。
本発明の目的は、低価格で信頼性の高いマルチプロセッサシステムを提供することである。また、本発明の他の目的は、組込みシステムが備えるプロセッサエレメントの故障が制御対象装置に与える影響を抑えることである。
本発明のマルチプロセッサシステムは、複数のプロセッサエレメントを備え、制御対象装置を制御するための制御データを生成する複数の制御データ生成手段と、対応する制御データ生成手段により生成される制御データを監視する複数の監視手段と、前記複数の制御データ生成手段を前記複数のプロセッサエレメントに割り当てる第1の割当て手段と、前記複数の制御データ生成手段の割当てに基づいて、各制御データ生成手段により生成される制御データが異なるプロセッサエレメント上で動作する2以上の対応する監視手段により監視されるように、前記複数の監視手段を前記複数のプロセッサエレメントに割り当てる第2の割当て手段と、を有する。
上記マルチプロセッサシステムにおいて、各監視手段は、制御対象装置を制御するための制御データの正常性をチェックすることにより各プロセッサエレメントの状態を監視する。このため、各監視手段の処理は、基本的に、互いに異なっている。したがって、制御データ生成手段の割当てが変わったときは、第2の割当て手段は、制御データ生成手段の割当てに応じて監視手段の割当てを変更する。これにより、一部のプロセッサエレメントが故障した場合であっても、継続して動作する制御データ生成手段が生成する制御データを適切に監視することができる。したがって、プロセッサエレメントの数を増やすことなく、システムの信頼性を向上させることができる。また、各制御データ生成手段に対してそれぞれ2以上の監視手段が割り当てられるので、信頼性が高い。
本発明によれば、低価格で信頼性の高いマルチプロセッサシステムを提供することができる。
本発明に係るマルチプロセッサシステムは、図1に示すように、複数のプロセッサエレメントPE1〜PEn、および複数のプロセッサエレメントPE1〜PEnにより共有されるメモリを備える。各プロセッサエレメント上でそれぞれアプリケーションプログラム
が実行される。ここでは、プロセッサエレメントPE1〜PEnに対してそれぞれアプリケーションプログラムA1〜Anが割当てられている。そして、アプリケーションプログラムA1〜Anの演算結果は、それぞれ、メモリに設けられている対応する出力バッファB1〜Bnに書き込まれる。
監視プログラムM1〜Mnは、それぞれ、対応するアプリケーションプログラムA1〜Anの演算結果を監視する。ここで、各アプリケーションプログラムの演算結果は、それぞれ、異なる2つのプロセッサエレメント上で動作する対応する監視プログラムにより監視される。図1に示す例では、アプリケーションプログラムA1はプロセッサエレメントPE1に割り当てられ、そのアプリケーションプログラムA1の演算結果を監視する監視プログラムM1はプロセッサエレメントPEnおよびPE2に割り当てられている。同様に、アプリケーションプログラムA2はプロセッサエレメントPE2に割り当てられ、そのアプリケーションプログラムA2の演算結果を監視する監視プログラムM2はプロセッサエレメントPE1およびPE3に割り当てられている。すなわち、アプリケーションプログラムAiがプロセッサエレメントPEiに割り当てられると、対応する監視プログラムMiはプロセッサエレメントPEi+1およびPEi−1に割り当てられる(i=1、2、...n;ただし、「i=0」は「i=n」に相当する)。
監視プログラムM1〜Mnは、それぞれ、定期的に対応する出力バッファB1〜Bnに書き込まれている演算結果を参照し、その演算結果が閾値範囲に属しているか否かをチェックする。このとき、各アプリケーションの演算結果は、それぞれ1組の対応する監視プログラムによってチェックされる。そして、1組の監視プログラムによりチェックされた結果が双方とも閾値範囲に属していないという判定結果であったときは、その演算結果を生成したプロセッサエレメント(あるいは、そのプロセッサエレメント上で動作しているアプリケーション)が故障していると判断する。
上記構成によれば、マルチプロセッサシステムにおいて、各プロセッサエレメントの演算結果に基づいてそのプロセッサエレメントの故障を検出することができる。よって、この構成においては、各プロセッサエレメントから出力される「自己故障検出情報」または「生存通知」を監視する構成よりも早く故障が検出される。
上記マルチプロセッサシステムにおいて、故障したプロセッサエレメントが切り離された場合には、プロセッサエレメントとアプリケーションプログラムとの対応関係が更新される。すなわち、アプリケーションプログラムの再配置が行われる。そうすると、アプリケーションプログラムの再配置に応じて、プロセッサエレメントと監視プログラムとの対応関係も更新される。すなわち、監視プログラムも再配置される。このとき、各プロセッサエレメント上で動作するアプリケーションプログラムの演算結果が、それぞれ他のプロセッサエレメント上で動作する対応する1組の監視プログラムにより監視されるように、それらの監視プログラムの再配置が行われる。したがって、一部のプロセッサエレメントが故障した場合であっても、残りのプロセッサエレメントの演算結果の監視を継続することができる。
なお、他の方法によりプロセッサエレメントの故障が検出された場合であっても、上述の再配置は行われる。すなわち、例えば、各プロセッサエレメントから出力される「自己故障検出情報」または「生存通知」に基づいてプロセッサエレメントの故障が検出された場合にも、故障プロセッサエレメントが切り離され、上述の再配置が行われる。
このように、本発明のマルチプロセッサシステムは、各プロセッサエレメントにおいて他のプロセッサエレメント上で動作するアプリケーションプログラムの演算結果を監視するための監視プログラムを実行する構成なので、各プロセッサエレメントにおける監視処
理のための負荷は小さくなる。すなわち、各プロセッサエレメントにおいて、監視処理がアプリケーションプログラムの実行に与える影響は小さい。なお、特定のプロセッサエレメントがすべてのプロセッサエレメントを監視する構成においては、その特定のプロセッサエレメントにおいて監視処理のための負荷が大きくなる。このとき、各アプリケーションの演算結果は、複数(図1では、2つ)の監視プログラムによって監視されるので、故障検出の信頼性が高い。
また、本発明のマルチプロセッサシステムにおいては、一部のプロセッサエレメントが故障した場合には、アプリケーションの再配置に伴って、監視プログラムの再配置を行うことによって監視処理を継続できる。したがって、各プロセッサエレメントを2重化(または、3重化)することなく、信頼性の高いマルチプロセッサシステムを実現できる。すなわち、価格の上昇を招くことなくマルチプロセッサシステムの信頼性を向上させることができる。
さらに、各プロセッサエレメントの演算結果を監視するので、上記マルチプロセッサシステムを利用して装置を制御する組込みシステムにおいては、異常値が検出された場合にはその演算結果が制御対象装置へ転送されることを即座に停止でき、その制御対象装置における誤動作を回避することができる。
図2は、実施形態のマルチプロセッサシステムのハードウェア構成を示す図である。図2において、プロセッサユニット1は、8個のプロセッサエレメントPE0〜PE7を備える。各プロセッサエレメントPE0〜PE7は、互いに並列にプログラム(アプリケーションA〜Gおよび監視プログラムA〜G)を実行する。ここで、監視プログラムA〜Gは、それぞれアプリケーションA〜Gの演算結果である制御データを監視する。また、各アプリケーションに対してそれぞれ1組の監視プログラムが用意され、互いに異なるプロセッサエレメントに配置されている。アプリケーションおよび監視プログラムの配置については、後で詳しく説明する。なお、プロセッサエレメントPE0〜PE7は、PE間通信パス11により互いに接続されており、相互にデータを送受信できる。
メモリ2は、プロセッサエレメントPE0〜PE7に共有される記憶装置であり、OSおよび各種プログラム(アプリケーション、監視プログラムを含む)を実行するための作業領域として使用される。また、メモリ2には、出力バッファ領域3(3A〜3H)が設けられる。出力バッファ領域3(3A〜3H)には、それぞれアプリケーションA〜Gにより生成される制御データが書き込まれる。なお、プロセッサエレメントPE0〜PE7とメモリ2との間は、メモリバスとしてのクロスバ(XB)12により接続されている。
不揮発性メモリ21は、例えばフラッシュメモリであり、OSおよび各種プログラムが格納されている。また、不揮発性メモリ21は、メモリ2により保持されている情報、例えば故障のログ情報、構成制御用のテーブルなどが定期的にコピーされる場合もある。なお、プロセッサエレメントPE0〜PE7と不揮発性メモリ21との間は、I/Oバス13により接続されている。
プロセッサユニット1により制御される制御対象装置は、I/Oバス13を介して当該マルチプロセッサシステムに接続されている。また、各種センサもI/Oバス13を介してマルチプロセッサシステムに接続されている。
DMAコントローラ14は、クロスバ12およびI/Oバス13に接続されている。そして、DMAコントローラ14は、自立的にまたはプロセッサエレメントPE0〜PE7からの指示に応じて、出力バッファ領域3(3A〜3H)に格納されている制御データを対応する制御対象装置へ転送する。
プロセッサエレメントPE0〜PE7とクロスバ12との間には、それぞれスイッチ31が設けられている。また、プロセッサエレメントPE0〜PE7とI/Oバス13との間には、それぞれスイッチ32が設けられている。さらに、プロセッサエレメントPE0〜PE7とPE間通信パス11との間には、それぞれスイッチ33が設けられている。
構成制御ユニット34は、PE間通信パス11に接続されており、任意のプロセッサエレメントからのコマンドに従って、対応するプロセッサエレメントが備えるスイッチ31〜33を制御する。例えば、プロセッサエレメントPE0の故障が検出されたときは、構成制御ユニット34は、そのプロセッサエレメントPE0のスイッチ31〜33をオフ状態に制御する。これにより、プロセッサエレメントPE0は、マルチプロセッサシステムの共有資源および他のプロセッサエレメントから切り離される。
図3は、実施形態のマルチプロセッサシステムのソフトウェア構成を示す図である。図3に示すように、各プロセッサエレメントPE0〜PE7上でリアルタイムOSが動作する。このリアルタイムOSは、PE間通信機能を備えている。また、リアルタイムOS上でアプリケーションA〜Hおよび監視プログラムA〜Hが動作する。この実施例では、各プロセッサエレメントに対して1つのアプリケーションおよび2つの監視プログラムが割り当てられる。ここで、互いに対応するアプリケーションおよび監視プログラム(すなわち、アプリケーションおよびそのアプリケーションの演算結果を監視する1組の監視プログラム)は、異なるプロセッサエレメントに割り当てられる。さらに、各プロセッサエレメント上で管理プログラムが動作する。管理プログラムは、後で詳しく説明するが、故障検出処理および復旧処理を実行する。
なお、管理プログラムは、図3に示すように各監視プログラムA〜Hから独立したプログラムとして設けてもいし、各監視プログラムA〜Hの一部として設けるようにしてもよい。管理プログラムは、各監視プログラムA〜Hから独立したプログラムとして設ける場合には、各プロセッサエレメントにそれぞれ常駐する。
リアルタイムOSは、アプリケーションA〜Hおよび監視プログラムA〜Hを任意のプロセッサエレメントPE0〜PE7に割り当てることができる。ここで、アプリケーションA〜Dおよび監視プログラムA〜Dの割当ての変更は、例えば、リアルタイムOSのタスク切替え機能を利用して実現される。
図4は、本発明の実施形態のマルチプロセッサシステムの構成を示す図である。実施形態のマルチプロセッサシステムは、組込みシステムとして使用される。組込みシステムとは、制御すべき対象の装置に内蔵される情報処理システムであり、予め用意されているアプリケーションプログラムを実行することによりその装置の動作を制御する。制御対象装置は、特に限定されるものではないが、例えば、自動車である。
実施形態のマルチプロセッサシステムは、8個のプロセッサエレメントPE0〜PE7を備え、制御対象装置41A〜41Hの動作を制御する。なお、プロセッサエレメントの個数は、特に限定されるものではなく、4以上の任意の個数でよい。また、この実施例では、マルチプロセッサシステムが8個の装置41A〜41Hを制御するが、プロセッサエレメントの個数および制御対象装置の個数は互いに一致している必要はない。
アプリケーションA〜Hは、それぞれ、制御対象装置41A〜41Hの動作を制御するための手順を記述したソフトウェアプログラムである。そして、アプリケーションA〜Hは、図4においては、初期配置として、それぞれプロセッサエレメントPE0〜PE7に割り当てられている。すなわち、アプリケーションA〜Hは、それぞれプロセッサエレメ
ントPE0〜PE7上で実行される。そして、アプリケーションA〜Hの演算結果は、それぞれ、制御対象装置41A〜41Hを制御するための制御データA〜Hとして出力バッファ領域3A〜3Hに書き込まれる。なお、出力バッファ領域3A〜3Hは、プロセッサエレメントPE0〜PE7により共有されるメモリ(メインメモリ)2に設けられる。
アプリケーションA〜Hの配置は、必要に応じて動的に変更することができる。たとえば、アプリケーションAは、プロセッサエレメントPE0に割り当てられる必要はなく、他のプロセッサエレメントに割り当てられてもよい。ただし、各アプリケーションの書込み領域は、そのアプリケーションを実行するプロセッサエレメントには依存しない。すなわち、例えば、アプリケーションAにより生成される制御データは、基本的に、アプリケーションAがいずれのプロセッサエレメントPE0〜PE7により実行される場合であっても、出力バッファ領域3Aに書き込まれる。なお、各アプリケーションが制御データを生成して対応する出力バッファ領域に書き込む周期は、アプリケーションまたは制御対象装置の特性に依存する。
DMAコントローラ14は、出力バッファ領域3A〜3Hに格納されている制御データA〜Hを、それぞれ、制御対象装置41A〜41Hへ転送する。すなわち、各アプリケーションA〜Hにより生成される制御データが制御対象装置41A〜41Hに与えられる。そして、制御対象装置41A〜41Hは、与えられた制御データA〜Hに従って動作する。なお、制御データは、必ずしもDMAコントローラ14によって転送される必要はなく、例えば、プロセッサエレメントPE0〜PE7により転送(プログラムI/O転送など)されてもよい。
図5は、アプリケーションにより生成される制御データについて説明する図である。ここでは、3つのアプリケーション及び各アプリケーションにより生成される制御データを示す。
各アプリケーションは、自動車が備える各種センサ(たとえば、距離センサ、速度センサ、加速度センサ、ヨーレートセンサ、回転数センサ、電流センサ、フォトセンサ、温度センサ等)により得られる測定値等を利用して、対応する制御対象装置に与えるべき制御データを生成する。例えば、「プリクラッシュセーフティ用前方監視」は、「車間距離データ」および「相対速度データ」などを生成する。そして、これらの制御データは、例えば、ブレーキ制御システムに与えられる。この場合、ブレーキ制御システムは、例えば、自車と前方車両との間の距離が所定値よりも小さく、且つ、自車が前方車両に接近しつつあれば、自車の速度を低下させるように動作する。なお、各アプリケーションを実行するか否かは、ユーザが指定できるようにしてもよい。例えば、「ナイトビジョン用夜間人認識」は、日中は停止することができる。
出力モニタA〜Hは、監視プログラムA〜Hを実行することにより得られる機能であり、それぞれ、定期的に出力バッファ領域3A〜3Hを参照し、対応するアプリケーションA〜Hにより生成される制御データA〜Hをチェックする。ここで、監視プログラムA〜Hは、それぞれ対応するアプリケーションA〜Hとは異なるプロセッサエレメントに割り当てられる。また、各アプリケーションの制御データを監視する1組の監視プログラムは、それぞれ、互いに異なるプロセッサエレメントに割り当てられる。この実施例では監視プログラムA〜Hは、初期状態として、下記のようにプロセッサエレメントPE0〜PE7に割り当てられる。
(a)監視プログラムA(出力モニタA)は、プロセッサエレメントPE7、PE1に割り当てられ、それぞれプロセッサエレメントPE0上で動作するアプリケーションAが生成する制御データAを監視する。PE7が第1チェッカとして動作し、PE1が第2チェッカとして動作する。
(b)監視プログラムB(出力モニタB)は、プロセッサエレメントPE0、PE2に割り当てられ、それぞれプロセッサエレメントPE1上で動作するアプリケーションBが生成する制御データBを監視する。PE0が第1チェッカとして動作し、PE2が第2チェッカとして動作する。
(c)監視プログラムC(出力モニタC)は、プロセッサエレメントPE1、PE3に割り当てられ、それぞれプロセッサエレメントPE2上で動作するアプリケーションCが生成する制御データCを監視する。PE1が第1チェッカとして動作し、PE3が第2チェッカとして動作する。
(d)監視プログラムD(出力モニタD)は、プロセッサエレメントPE2、PE4に割り当てられ、それぞれプロセッサエレメントPE3上で動作するアプリケーションDが生成する制御データDを監視する。PE2が第1チェッカとして動作し、PE4が第2チェッカとして動作する。
(e)監視プログラムE(出力モニタE)は、プロセッサエレメントPE3、PE5に割り当てられ、それぞれプロセッサエレメントPE4上で動作するアプリケーションEが生成する制御データEを監視する。PE3が第1チェッカとして動作し、PE5が第2チェッカとして動作する。
(f)監視プログラムF(出力モニタF)は、プロセッサエレメントPE4、PE6に割り当てられ、それぞれプロセッサエレメントPE5上で動作するアプリケーションFが生成する制御データFを監視する。PE4が第1チェッカとして動作し、PE6が第2チェッカとして動作する。
(g)監視プログラムG(出力モニタG)は、プロセッサエレメントPE5、PE7に割り当てられ、それぞれプロセッサエレメントPE6上で動作するアプリケーションGが生成する制御データGを監視する。PE5が第1チェッカとして動作し、PE7が第2チェッカとして動作する。
(h)監視プログラムH(出力モニタH)は、プロセッサエレメントPE6、PE0に割り当てられ、それぞれプロセッサエレメントPE7上で動作するアプリケーションHが生成する制御データHを監視する。PE6が第1チェッカとして動作し、PE0が第2チェッカとして動作する。
このようにしてアプリケーションA〜Hおよび監視プログラムA〜Hが配置されると、アプリケーションA〜Hにより生成されるすべての制御データを、他のプロセッサエレメントを利用して2重に監視することが可能となる。
実施形態のマルチプロセッサシステムは、実行アプリ管理テーブル51および実行PE管理テーブル52を備える。実行アプリ管理テーブル51は、図6(a)に示すように、各プロセッサエレメントの動作状態を管理する。すなわち、各プロセッサエレメントについて、有効/無効を表す情報、各プロセッサエレメントに割り当てられているアプリケーションを識別する情報、各プロセッサエレメントに第1チェッカおよび第2チェッカとして割り当てられている監視プログラムを識別する情報を管理する。一方、実行PE管理テーブル52は、図6(b)に示すように、各プログラムが割り当てられたプロセッサエレメントを管理する。すなわち、各アプリケーションについて、有効/無効を表す情報、各アプリケーションを実行しているプロセッサエレメントを識別する情報、各アプリケーションに対応する監視プログラムを第1チェッカおよび第2チェッカとして実行しているプロセッサエレメントを識別する情報を管理する。なお、これらのテーブル51、52は、メモリ2に設けられる。そして、これらのテーブル51、52は、後で詳しく説明するが、アプリケーションおよび/または監視プログラムの配置の変更に伴って更新される。
出力モニタA〜Hは、それぞれ、予め決められた時間間隔で出力バッファ領域3A〜3Hに一時的に格納されている対応する制御データA〜Hを読み出し、アプリケーション毎に予め決められている閾値と比較する。ここで、閾値は、制御データの特性に応じて設定
されており、上限値だけの場合もあるし、下限値だけの場合もあるし、上限値および下限値の双方である場合もある。また、各アプリケーションにより生成される制御データは、1つの出力値だけの場合もあるし、複数の出力値を含む場合もある。例えば、図3に示す「プリクラッシュセーフティ用前方監視」は、2つの出力値(車間距離データ、相対速度データ)を含んでいる。そして、制御データが複数の出力値を含む場合には、各出力値と対応する閾値とがそれぞれ比較される。
図7は、出力モニタの動作例を示す図である。ここでは、アプリケーションAを実行することにより制御データAとしての出力値が一定間隔で生成されるものとする。生成される出力値は、順次、対応する出力バッファ領域3Aに書き込まれる。また、1組の出力モニタAは、それぞれ順次、その出力バッファ領域3Aから出力を取得する。各出力モニタAは、取得した出力値を、順次、1組の閾値(上限閾値および下限閾値)と比較する。そして、取得した出力値が上限閾値を超えていた場合または下限閾値よりも小さかった場合には、制御データが「異常出力」であると判断する。なお、上述の判断方法は、一実施例であり、各アプリケーションの特性に応じて最適な判断方法を採用することができる。
各プロセッサエレメントは、それぞれ、基本的に、割り当てられたアプリケーションを実行する。ただし、各アプリケーションについてそれぞれ監視時間間隔が予め設定されている。そして、アプリケーションは監視時間間隔ごとにいったん停止され、監視プログラムが起動される。また、監視プログラムの処理が終了すると、アプリケーションが再開される。例えば、図4において、プロセッサエレメントPE0は、アプリケーションAを実行し、監視時間間隔ごとに監視プログラムBおよび監視プログラムHを実行する。なお、アプリケーションと監視プログラムとの間の切替えは、例えば、リアルタイムOSのタスク切替え機能により実現される。
出力バッファ領域3A〜3Hから読み出した制御データが閾値範囲から外れていたときは、出力モニタA〜Hは、その制御データを生成したプロセッサエレメント(または、その制御データを生成したアプリケーション)が故障していると判断する。例えば、プロセッサエレメントPE1、PE7上で動作する1組の出力モニタAは、制御データAが異常値であることを検出すると、プロセッサエレメントPE0(または、プロセッサエレメントPE0上で動作するアプリケーションA)が故障していると判断する。
なお、監視プログラムA〜Hの配置は、必要に応じて動的に変更することができる。例えば、監視プログラムAは、図4では、プロセッサエレメントPE1、PE7に配置されているが、他の互いに異なるプロセッサエレメントに割り当てられてもよい。ただし、監視プログラムは、対応するアプリケーションとは異なるプロセッサエレメントに配置されなければならない。また、各監視プログラムが参照する出力バッファ領域は、その監視プログラムを実行するプロセッサエレメントには依存しない。すなわち、たとえば、監視プログラムAは、基本的に、いずれのプロセッサエレメントにより実行される場合であっても、出力バッファ領域3Aを参照する。また、各監視プログラムが対応する出力バッファ領域を参照する周期は、制御対象装置の特性に依存する。
監視プログラムA〜Hにより実現される出力モニタA〜Hは、それぞれアプリケーションA〜Hに応じた監視機能を提供する。すなわち、出力モニタA〜Hの動作は、基本的に互いに異なっている。よって、アプリケーションの配置が変わると、それに応じて監視プログラムの配置も変更する必要がある。
ここで、図8および図9を参照しながら、出力モニタによる故障検出手順について説明する。なお、各出力モニタは、図8に示すフローチャートの処理を定期的に実行する。このとき、各出力モニタは、それぞれ自分は第1チェッカとして動作しているのか、第2チ
ェッカとして動作しているのかを認識しているものとする。
ステップS1およびS2では、対応する出力バッファ領域を参照することにより、制御データとしての出力値をチェックする。出力値が異常であれば、ステップS3およびS4において、図9に示す出力モニタ判定結果テーブルを参照し、他方のチェッカの判定結果を読み出す。すなわち、例えば、第1チェッカとして動作する出力モニタAであれば、第2チェッカとして動作する出力モニタAの判定結果を読み出す。そして、読み出した判定結果が「1(異常)」であれば、第1および第2チェッカの判定結果がいずれも「異常」であるので、再配置手順へ進む。なお、再配置手順を実行するときは、ステップS5において、出力モニタ判定結果テーブルの他方のチェッカの判定結果をクリアする。一方、読み出した判定結果が「0(正常)」であれば、出力モニタ判定結果テーブルの自分のフィールドに「1」を設定して処理を終了する。
このように、実施形態のマルチプロセッサシステムでは、1つのアプリケーションに対して2つの出力モニタが実装され、それら2つの出力モニタの双方において「異常」が検出された場合に再配置手順が実行される。
<故障発生時の動作>
図10は、プロセッサエレメントが故障したときの動作を説明する図である。なお、マルチプロセッサシステムの構成は、図4に示したものと同じである。また、故障が発生した時点におけるアプリケーションA〜Hおよび監視プログラムA〜Hの配置も、図2に示した状態と同じである。すなわち、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図6(a)および図6(b)に示す状態である。さらに、アプリケーションA〜Hには、予め優先順位が設定されているものとする。この実施例では、アプリケーションAの優先順位が最も高く、以下順番にアプリケーションB〜Gが続き、アプリケーションHの優先順位が最も低いものとする。
上記構成のマルチプロセッサシステムにおいて、プロセッサエレメントPE1が故障したものとする。この場合、プロセッサエレメントPE1上で動作しているアプリケーションBにより生成される制御データBが異常値となる。以下、制御データBが異常値となってときに実行される復旧手順(再配置手順)を、図11に示すフローチャートを参照しながら説明する。
(1)プロセッサエレメントPE0上で動作している出力モニタB、およびプロセッサエレメントPE2上で動作している出力モニタBが、制御データBが閾値範囲から外れたことを検出する。なお、上記2つの出力モニタBは、それぞれ任意のタイミングで制御データBの異常を検出する。そして、制御データBが異常であることを後で検出した方の出力モニタB(または、その出力モニタBと同じプロセッサエレメントに実装されている管理プログラム)が以下の処理を実行する。
(2:ステップS11)実行PE管理テーブル52を参照し、故障したプロセッサエレメントとして、制御データBを生成したアプリケーションBを実行しているプロセッサエレメント(ここでは、PE1)を検出する。また、アプリケーションBを監視する監視プログラムBを実行しているプロセッサエレメント(ここでは、第1チェッカ:PE0、第2チェッカ:PE2)を検出する。そして、マルチプロセッサシステムから故障したプロセッサエレメントPE1を切り離す旨の指示を構成制御ユニット34に送る。構成制御ユニット34は、この指示に従って、プロセッサエレメントPE1に接続するスイッチ31〜33をオフ状態に制御する。これにより、故障したプロセッサエレメントPE1がマルチプロセッサシステムから切り離される。
(3:ステップS12)実行アプリ管理テーブル51を参照し、故障したプロセッサエレメント上で動作していた出力モニタにより監視されるアプリケーションを検出する。この実施例では、プロセッサエレメントPE1において、第1チェッカとして出力モニタCが動作し、第2チェッカとして出力モニタAが動作している。よって、アプリケーションC、Aが検出される。
(4:ステップS13)実行PE管理テーブル52を参照し、優先度の最も低いアプリケーションHを実行しているプロセッサエレメントを検出する。この実施例では、プロセッサエレメントPE7が検出される。続いて、そのアプリケーションHの出力を監視する出力モニタを実行しているプロセッサエレメントを検出する。この実施例では、プロセッサエレメントPE6、PE0が検出される。
(5:ステップS14)アプリケーションを再配置する。まず、優先度の最も低いアプリケーションHを停止させる。すなわち、プロセッサエレメントPE7にアプリケーションHの実行を終了させる。続いて、故障したプロセッサエレメントPE1が実行していたアプリケーションBを、プロセッサエレメントPE7に実行させる。この再配置に伴い、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図12(a)および図12(b)に示すように更新される。
(6:ステップS15)アプリケーションの再配置に応じて、監視プログラムの再配置を行う。まず、停止したアプリケーションHの出力を第1チェッカおよび第2チェッカとして監視していたプロセッサエレメントPE6、PE0に、それぞれ、故障したプロセッサエレメントPE1上で実行されていたアプリケーションBを監視するための監視プログラムBを割り当てる。すなわち、プロセッサエレメントPE6に第1チェッカとして監視プログラムBを割り当てると共に、プロセッサエレメントPE0に第2チェッカとして監視プログラムBを割り当てる。この再配置に伴い、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図13(a)および図13(b)に示すように更新される。
(7:ステップS16)故障したプロセッサエレメントPE1上で動作していたアプリケーションBを第1チェッカおよび第2チェッカとして監視していたプロセッサエレメントPE0、PE2に、それぞれ、故障プロセッサエレメントPE1上で動作していた監視プログラムC、Aを割り当てる。すなわち、プロセッサエレメントPE0に第1チェッカとして監視プログラムCを割り当てると共に、プロセッサエレメントPE2に第2チェッカとして監視プログラムAを割り当てる。この再配置に伴い、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図14(a)および図14(b)に示すように更新される。
上記手順により、故障したプロセッサエレメントPE1がマルチプロセッサシステムから切り離されると共に、優先度の最も低いアプリケーションHが停止する。このとき、他のアプリケーションA〜Gおよびそれらを監視するための監視プログラムA〜Gが再配置される。この結果、図10に示す動作状態が得られる。
なお、上述したように、アプリケーションA〜Hは、プロセッサエレメントに依存することなく、それぞれ生成した制御データA〜Hを対応する出力バッファ領域3A〜3Hに書き込む。また、監視プログラムA〜Hは、プロセッサエレメントに依存することなく、それぞれ対応する出力バッファ領域3A〜3Hを参照する。したがって、プロセッサエレメントPE1が切り離されてアプリケーションおよび監視プログラムが再配置されても、出力モニタA〜Gは、それぞれ制御データA〜Gをチェックすることができる。
また、出力モニタは、制御データの異常を検出すると、DMAコントローラ14に対してその制御データの転送を中止する旨の指示を与える。これにより、プロセッサエレメントが故障した場合には、そのプロセッサエレメント上で生成される制御データが制御対象装置へ転送されることが即座に停止される。よって、制御対象装置が誤動作を起こすことが抑制される。この後、アプリケーションおよび監視プログラムの再配置が終了すると、DMAコントローラ14は制御データの転送を再開する。
さらに、上述の実施例においては、出力モニタ(監視プログラム)がプロセッサエレメントの故障を検出しているが、他の方法(例えば、特許文献1〜4に記載の方法)によりプロセッサエレメントの故障が検出された場合も同様の復旧手順が実行される。
さらに、上述の実施例では、アプリケーションの優先順位に基づいて再配置が行われているが、本発明はこれに限定されるものではない。
次に、プロセッサエレメントPE1の故障に起因して再配置を行った後に、更にプロセッサエレメントPE4上で動作しているアプリケーションEから出力される制御データEが異常値であった場合の手順について説明する。この場合の手順は、基本的に、1つ目のプロセッサエレメントが故障した場合と同じである。即ち、下記の手順(8)〜(14)が行われる。
(8)プロセッサエレメントPE3上で動作している出力モニタE、およびプロセッサエレメントPE5上で動作している出力モニタEが、制御データEの異常を検出する。
(9:ステップS11)故障したプロセッサエレメントとして、アプリケーションEを実行しているプロセッサエレメントPE4を検出する。また、第1チェッカとして監視プログラムEを実行しているプロセッサエレメントPE3および第2チェッカとして監視プログラムEを実行しているプロセッサエレメントPE5を検出する。そして、マルチプロセッサシステムから故障したプロセッサエレメントPE4を切り離す。
(10:ステップS12)故障したプロセッサエレメント上で動作していた出力モニタにより監視されるアプリケーションを検出する。この実施例では、プロセッサエレメントPE4において、第1チェッカとして出力モニタFが動作し、第2チェッカとして出力モニタDが動作している。よって、アプリケーションF、Dが検出される。
(11:ステップS13)優先度の最も低いアプリケーションを実行しているプロセッサエレメントを検出する。この時点では、アプリケーションHが既に停止しているので、アプリケーションGを実行しているプロセッサエレメントPE6が検出される。続いて、そのアプリケーションGの出力を監視する出力モニタを実行しているプロセッサエレメントを検出する。この実施例では、プロセッサエレメントPE7、PE5が検出される。
(12:ステップS14)アプリケーションを再配置する。すなわち、優先度の最も低いアプリケーションGを停止させる。すなわち、プロセッサエレメントPE6にアプリケーションGの実行を終了させる。また、故障したプロセッサエレメントPE4が実行していたアプリケーションEを、プロセッサエレメントPE6に実行させる。
(13:ステップS15)アプリケーションの再配置に応じて、監視プログラムの再配置を行う。まず、停止したアプリケーションGの出力を第1チェッカおよび第2チェッカとして監視していたプロセッサエレメントPE5、PE7に、それぞれ、故障したプロセッサエレメントPE4上で実行されていたアプリケーションEを監視するための監視プログラムEを割り当てる。すなわち、プロセッサエレメントPE5に第1チェッカとして監視プログラムEを割り当てると共に、プロセッサエレメントPE7に第2チェッカとして監視プログラムEを割り当てる。
(14:ステップS16)故障したプロセッサエレメントPE4上で動作していたアプリケーションEを第1チェッカおよび第2チェッカとして監視していたプロセッサエレメントPE3、PE5に、それぞれ、故障プロセッサエレメントPE4上で動作していた監視プログラムF、Dを割り当てる。すなわち、プロセッサエレメントPE3に第1チェッカとして監視プログラムFを割り当てると共に、プロセッサエレメントPE5に第2チェッカとして監視プログラムDを割り当てる。
上記手順12〜手順14におけるアプリケーションおよび監視プログラムの再配置処理により、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図16(a)および図16(b)に示すように更新される。このように、実施形態のマルチプロセッサシステムにおいては、2以上のプロセッサエレメントが故障した場合には、その都度、アプリケーションおよび監視プログラムを再配置する。これにより、優先度の高いアプリケーションの動作を継続し、且つ、動作を継続するアプリケーションにより生成される制御データを常に複数の監視プログラムで監視することができる。よって、信頼性の高いマルチプロセッサシステムを実現できる。
ところで、特許文献1〜4に記載されているシステムでは、各プロセッサエレメントの状態を表す情報(例えば、生存しているか否かを表す情報など)が他のプロセッサエレメントにより監視される。この場合、各プロセッサエレメントに実装すべき監視プログラムは、同じものである。したがって、特許文献1〜4に記載のシステムでは、あるプロセッサエレメントが故障した場合であっても、監視プログラムを再配置する必要がない。
これに対して、実施形態のマルチプロセッサシステムは、各プロセッサエレメント上で異なるアプリケーションが動作し、その演算結果(実施例では、制御対象装置に与えるべき制御データ)を監視する構成である。しかし、演算結果のビット数、演算を実行する間隔、演算結果が適切か否かを判断するための閾値範囲などは、基本的に、アプリケーション毎に異なっている。このため、各アプリケーションの演算結果をチェックするための監視プログラムも、互いに異なっている。したがって、プロセッサエレメントの故障等に起因してアプリケーションを再配置したときには、それに応じて監視プログラムも再配置される。これにより、プロセッサエレメントの個数を増やすことなく、優先順位の高いアプリケーションの動作を継続すると共に、それらのアプリケーションの信頼性を確保することができる。
<他の実施形態1>
上述の実施形態では、各アプリケーションにより生成される制御データがそれぞれ2つの出力モニタによって監視される構成を示したが、本発明はこれに限定されるものではない。すなわち、本発明のマルチプロセッサシステムは、各アプリケーションにより生成される制御データがそれぞれ3以上の出力モニタによって監視される構成であってもよい。例えば、図2に示すマルチプロセッサシステムにおいて、各アプリケーションに対してそれぞれ3つの出力モニタを設ける場合には、実行アプリ管理テーブル51および実行PE管理テーブル52は、それぞれ図17(a)および図17(b)に示す構成となる。
図18は、上記構成のマルチプロセッサシステムにおいて故障が検出された場合の再配置手順を示すフローチャートである。各アプリケーションに対して3個の出力モニタを設ける構成における再配置手順は、基本的には、各アプリケーションに対して2個の出力モニタを設ける場合と同じである。ただし、3個の出力モニタを設ける構成においては、アプリケーションの再配置に応じて、第1〜第3チェッカの再配置が必要となる。例えば、プロセッサエレメントPE1が故障した場合には、再配置後に図19に示す状態に遷移する。
<他の実施形態2>
上述の実施例では、あるアプリケーションの演算結果が異常であった場合に、そのアプリケーションを実行しているプロセッサエレメントが故障していると判断したが、そのアプリケーション自体に障害が発生していると判断するようにしてもよい。この場合、障害が発生していると判断されたアプリケーションは、例えば、再ブートしてもよいし、リセットしてもよいし、停止させてもよい。
(付記1)
複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
制御対象装置を制御するための制御データを生成する複数の制御データ生成手段と、
対応する制御データ生成手段により生成される制御データを監視する複数の監視手段と、
前記複数の制御データ生成手段を前記複数のプロセッサエレメントに割り当てる第1の割当て手段と、
前記複数の制御データ生成手段の割当てに基づいて、各制御データ生成手段により生成される制御データが異なるプロセッサエレメント上で動作する2以上の対応する監視手段により監視されるように、前記複数の監視手段を前記複数のプロセッサエレメントに割り当てる第2の割当て手段と、
を有することを特徴とするマルチプロセッサシステム。
(付記2)
付記1に記載のマルチプロセッサシステムであって、
前記複数の制御データ生成手段によりそれぞれ生成される制御データを一時的に格納するメモリを備え、
前記複数の監視手段は、前記メモリに格納されている対応する制御データ生成手段により生成された制御データが正常であるか否かをチェックする
ことを特徴とするマルチプロセッサシステム。
(付記3)
付記1に記載のマルチプロセッサシステムであって、
前記複数の制御データ生成手段によりそれぞれ生成される制御データを一時的に格納するメモリと、
前記メモリから前記制御対象装置への制御データの転送を制御する転送制御手段、をさらに備え、
各制御データ生成手段に対して割り当てられた前記2以上の監視手段は、前記メモリに格納されている対応する制御データが正常であるか否かをチェックし、
前記転送制御手段は、前記2以上の監視手段によりその制御データが正常でないと判断されたときに、その制御データの前記メモリから前記制御対象装置への転送を停止する
ことを特徴とするマルチプロセッサシステム。
(付記4)
付記1に記載のマルチプロセッサシステムであって、
各制御データ生成手段に対して割り当てられた前記2以上の監視手段は、対応する制御データ生成手段により生成された制御データが正常でなかったときには、その制御データ生成手段を動かしているプロセッサエレメントが故障していると判断する
ことを特徴とするマルチプロセッサシステム。
(付記5)
付記4に記載のマルチプロセッサシステムであって、
故障していると判断されたプロセッサエレメントを当該マルチプロセッサシステムから切り離す復旧手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
(付記6)
付記1に記載のマルチプロセッサシステムであって、
各制御データ生成手段に対して割り当てられた前記2以上の監視手段は、対応する制御データ生成手段により生成された制御データが正常でなかったときには、その制御データ生成手段が故障していると判断する
ことを特徴とするマルチプロセッサシステム。
(付記7)
付記6に記載のマルチプロセッサシステムであって、
故障していると判断された制御データ生成手段を再ブート、リセットまたは停止する復旧手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
(付記8)
付記1に記載のマルチプロセッサシステムであって、
前記監視手段は、対応する制御データを一定時間間隔でチェックする
ことを特徴とするマルチプロセッサシステム。
(付記9)
付記1に記載のマルチプロセッサシステムであって、
前記第1の割当て手段は、前記監視手段により正常でない制御データが検出されたときに、その正常でない制御データを生成した制御データ生成手段が割り当てられているプロセッサエレメント以外の動作継続プロセッサエレメントに前記複数の制御データ生成手段の一部または全部を割り当て、
前記第2の割当て手段は、前記第1の割当て手段により前記動作継続プロセッサエレメントに割り当てられた各制御データ生成手段にそれぞれ対応する2以上の監視手段を、前記動作継続プロセッサエレメントのなかの互いに異なるプロセッサエレメントに割り当てる
ことを特徴とするマルチプロセッサシステム。
(付記10)
付記1に記載のマルチプロセッサシステムであって、
各プロセッサエレメントが出力する自己申告情報または各プロセッサエレメント間で送受信する状態情報に基づいてプロセッサエレメントの故障を検出する故障検出手段をさらに備え、
前記第1の割当て手段は、前記故障検出により故障と判断されたプロセッサエレメント以外の動作継続プロセッサエレメントに前記複数の制御データ生成手段の一部または全部を割り当て、
前記第2の割当て手段は、前記第1の割当て手段により前記動作継続プロセッサエレメントに割り当てられた各制御データ生成手段にそれぞれ対応する2以上の監視手段を、前記動作継続プロセッサエレメントのなかの互いに異なるプロセッサエレメントに割り当てる
ことを特徴とするマルチプロセッサシステム。
(付記11)
複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
複数のアプリケーション手段と、
対応するアプリケーション手段により得られる演算結果を監視する複数の監視手段と、
前記複数のアプリケーション手段を前記複数のプロセッサエレメントに割り当てる第1の割当て手段と、
前記複数のアプリケーション手段の割当てに基づいて、各アプリケーション手段により得られる演算結果が異なるプロセッサエレメント上で動作する2以上の監視手段により監視されるように、前記複数の監視手段を前記複数のプロセッサエレメントに割り当てる第2の割当て手段と、
を有することを特徴とするマルチプロセッサシステム。
(付記12)
複数のプロセッサエレメントを備えるマルチプロセッサシステムにおいて任意のプロセッサエレメントが故障したときの復旧方法であって、
前記複数のプロセッサエレメントを利用してアプリケーションプログラムを実行することにより、制御対象装置を制御するための制御データを生成し、
前記複数のプロセッサエレメントを利用して各アプリケーションプログラムに対応する監視プログラムを実行することにより、対応する制御データの正常性をチェックし、
正常でない制御データを生成したプロセッサエレメントを停止または当該マルチプロセッサシステムから切り離し、
当該マルチプロセッサシステムにおいて動作を継続するプロセッサエレメントに優先度の高いアプリケーションプログラムを割り当て、
動作を継続するプロセッサエレメント上で実行されるアプリケーションプログラムにより生成される制御データが、それぞれ他のプロセッサエレメント上で実行される2以上の監視プログラムにより監視されるように、監視プログラムの割当てを変更する
ことを特徴とするマルチプロセッサシステムの復旧方法。
本発明の概念を説明する図である。 実施形態のマルチプロセッサシステムのハードウェア構成を示す図である。 実施形態のマルチプロセッサシステムのソフトウェア構成を示す図である。 本発明の実施形態のマルチプロセッサシステムの構成を示す図である。 アプリケーションにより生成される制御データについて説明する図である。 (a)は実行アプリ管理テーブルの実施例、(b)は実行PE管理テーブルの実施例である。 出力モニタの動作例を示す図である。 故障検出手順を示すフローチャートである。 故障検出手順において参照される出力モニタ判定結果テーブルの実施例である。 プロセッサエレメントが故障したときの動作を説明する図である。 再配置手順のフローチャートである。 再配置手順の過程を説明する図(その1)である。 再配置手順の過程を説明する図(その2)である。 再配置手順が終了した状態を示す図である。 第2の故障が検出されたときの再配置手順を説明する図である。 第2の故障が検出されたときの再配置手順が終了した状態を示す図である。 3個の出力モニタを備える構成における管理テーブルの実施例である。 3個の出力モニタを備える構成における再配置手順のフローチャートである。 3個の出力モニタを備える構成における再配置手順が終了した状態を示す図である。
符号の説明
1 プロセッサユニット
2 メモリ
3(3A〜3H) 出力バッファ領域
11 PE間通信パス
12 クロスバ(XB)
13 I/Oバス
14 DMAコントローラ
31〜33 スイッチ
34 構成制御ユニット
41A〜41H 制御対象装置
51 実行アプリ管理テーブル
52 実行PE管理テーブル

Claims (5)

  1. 複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
    制御対象装置を制御するための制御データを生成する複数の制御データ生成手段と、
    対応する制御データ生成手段により生成される制御データを監視する複数の監視手段と、
    前記複数の制御データ生成手段を前記複数のプロセッサエレメントに割り当てる第1の割当て手段と、
    前記複数の制御データ生成手段の割当てに基づいて、各制御データ生成手段により生成される制御データが異なるプロセッサエレメント上で動作する2以上の対 応する監視手段により監視されるように、前記複数の監視手段を前記複数のプロセッサエレメントに割り当てる第2の割当て手段と、
    を有し、
    前記第1の割当て手段は、前記監視手段により正常でない制御データが検出されたときに、その正常でない制御データを生成した制御データ生成手段が割り当てられているプロセッサエレメント以外の動作継続プロセッサエレメントに前記複数の制御データ生成手段の一部または全部を割り当て、
    前記第2の割当て手段は、前記第1の割当て手段により前記動作継続プロセッサエレメントに割り当てられた各制御データ生成手段にそれぞれ対応する2以上の監視手段を、前記動作継続プロセッサエレメントのなかの互いに異なるプロセッサエレメントに割り当てることを特徴とするマルチプロセッサシステム。
  2. 請求項1に記載のマルチプロセッサシステムであって、
    前記複数の制御データ生成手段によりそれぞれ生成される制御データを一時的に格納するメモリと、
    前記メモリから前記制御対象装置への制御データの転送を制御する転送制御手段、をさらに備え、
    各制御データ生成手段に対して割り当てられた前記2以上の監視手段は、前記メモリに格納されている対応する制御データが正常であるか否かをチェックし、
    前記転送制御手段は、前記2以上の監視手段によりその制御データが正常でないと判断されたときに、その制御データの前記メモリから前記制御対象装置への転送を停止する
    ことを特徴とするマルチプロセッサシステム。
  3. 請求項1に記載のマルチプロセッサシステムであって、
    前記第1の割当て手段は、前記複数の制御データ生成手段の中で優先度の最も低いデータ生成手段を実行する動作継続プロセッサエレメントに前記複数の制御データ生成手段の一部または全部を割り当てる
    ことを特徴とするマルチプロセッサシステム。
  4. 複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
    複数のアプリケーション手段と、
    対応するアプリケーション手段により得られる演算結果を監視する複数の監視手段と、
    前記複数のアプリケーション手段を前記複数のプロセッサエレメントに割り当てる第1の割当て手段と、
    前記複数のアプリケーション手段の割当てに基づいて、各アプリケーション手段により得られる演算結果が異なるプロセッサエレメント上で動作する2以上の監 視手段により監視されるように、前記複数の監視手段を前記複数のプロセッサエレメントに割り当てる第2の割当て手段と、
    を有し、
    前記第1の割当て手段は、前記監視手段により正常でない制御データが検出されたときに、その正常でない制御データを生成したアプリケーション手段が割り当てられているプロセッサエレメント以外の動作継続プロセッサエレメントに前記複数のアプリケーション手段の一部または全部を割り当て、
    前記第2の割当て手段は、前記第1の割当て手段により前記動作継続プロセッサエレメントに割り当てられた各アプリケーション手段にそれぞれ対応する2以上の監視手段を、前記動作継続プロセッサエレメントのなかの互いに異なるプロセッサエレメントに割り当てることを特徴とするマルチプロセッサシステム。
  5. 複数のプロセッサエレメントを備えるマルチプロセッサシステムにおいて任意のプロセッサエレメントが故障したときの復旧方法であって、
    前記複数のプロセッサエレメントを利用してアプリケーションプログラムを実行することにより、制御対象装置を制御するための制御データを生成し、
    前記複数のプロセッサエレメントを利用して各アプリケーションプログラムに対応する監視プログラムを実行することにより、対応する制御データの正常性をチェックし、
    正常でない制御データを生成したプロセッサエレメントを停止または当該マルチプロセッサシステムから切り離し、
    当該マルチプロセッサシステムにおいて動作を継続するプロセッサエレメントに優先度の高いアプリケーションプログラムを割り当て、
    動作を継続するプロセッサエレメント上で実行されるアプリケーションプログラムにより生成される制御データが、それぞれ他のプロセッサエレメント上で実行される2以上の監視プログラムにより監視されるように、監視プログラムの割当てを変更する
    ことを特徴とするマルチプロセッサシステムの復旧方法。
JP2007070194A 2007-03-19 2007-03-19 マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法 Expired - Fee Related JP4829821B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007070194A JP4829821B2 (ja) 2007-03-19 2007-03-19 マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007070194A JP4829821B2 (ja) 2007-03-19 2007-03-19 マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法

Publications (2)

Publication Number Publication Date
JP2008234117A JP2008234117A (ja) 2008-10-02
JP4829821B2 true JP4829821B2 (ja) 2011-12-07

Family

ID=39906839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007070194A Expired - Fee Related JP4829821B2 (ja) 2007-03-19 2007-03-19 マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法

Country Status (1)

Country Link
JP (1) JP4829821B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198307A (ja) * 2009-02-25 2010-09-09 Hitachi Automotive Systems Ltd 自動車用制御装置
CN104054059B (zh) * 2012-01-18 2016-12-21 丰田自动车株式会社 信息处理装置和信息处理方法
JP5712243B2 (ja) * 2013-03-29 2015-05-07 グリー株式会社 監視処理方法、監視処理装置及び監視処理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS634366A (ja) * 1986-06-24 1988-01-09 Nec Corp 複合計算機の相互監視装置
JPS63291132A (ja) * 1987-05-22 1988-11-29 Nec Corp 複合計算機システムの障害判定装置
JPS6442742A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Fault monitoring method for multi-processor system
JPH05210529A (ja) * 1992-01-31 1993-08-20 Fujitsu Ltd マルチプロセッサシステム
JPH0635718A (ja) * 1992-07-15 1994-02-10 Matsushita Electric Works Ltd システム異常時のシステム縮退方式
JPH06131314A (ja) * 1992-10-22 1994-05-13 Toyota Motor Corp 中央処理装置の異常監視装置
JPH07262042A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd プロセッサ障害検出方法
JPH08287030A (ja) * 1995-04-10 1996-11-01 Hitachi Ltd 多重系計算機システムの自動再起動装置および方法
JP2001022599A (ja) * 1999-07-06 2001-01-26 Fujitsu Ltd フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
JP2004310252A (ja) * 2003-04-03 2004-11-04 Matsushita Electric Ind Co Ltd マルチプロセッサシステムの故障復帰方法
JP4595512B2 (ja) * 2004-11-29 2010-12-08 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける監視方法、及び、プロセッサ
WO2008107934A1 (ja) * 2007-03-07 2008-09-12 Fujitsu Limited マルチプロセッサシステム

Also Published As

Publication number Publication date
JP2008234117A (ja) 2008-10-02

Similar Documents

Publication Publication Date Title
US9952948B2 (en) Fault-tolerance pattern and switching protocol for multiple hot and cold standby redundancies
US8935569B2 (en) Control computer system, method for controlling a control computer system, and use of a control computer system
US20130268798A1 (en) Microprocessor System Having Fault-Tolerant Architecture
CN112004730B (zh) 车辆控制装置
US7747897B2 (en) Method and apparatus for lockstep processing on a fixed-latency interconnect
US9604585B2 (en) Failure management in a vehicle
US10042812B2 (en) Method and system of synchronizing processors to the same computational point
JP4168403B2 (ja) フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
JP4829821B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法
US10360115B2 (en) Monitoring device, fault-tolerant system, and control method
JP2009069963A (ja) マルチプロセッサシステム
US9128838B2 (en) System and method of high integrity DMA operation
JP2014048849A (ja) 安全制御システム、及び安全制御システムのプロセッサ
KR20090056124A (ko) 듀얼 프로세서 제어 장치의 고장 안전 구조
CN109491842B (zh) 用于故障安全计算系统的模块扩展的信号配对
EP3321814B1 (en) Method and apparatus for handling outstanding interconnect transactions
JP2009223506A (ja) データ処理システム
US9311212B2 (en) Task based voting for fault-tolerant fail safe computer systems
JP5748214B2 (ja) 二重化情報処理システム
JP4117685B2 (ja) フォルトトレラント・コンピュータとそのバス選択制御方法
JP2008003646A (ja) 不良モジュール検出方法および信号処理装置
JP2007323190A (ja) データ通信を行う計算制御システム及びその通信方法
JP4613019B2 (ja) コンピュータシステム
WO2008062511A1 (fr) Système multiprocesseur
JP5287198B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110916

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees