(57)【要約】【課題】低価格で信頼性の高いマルチプロセッサシステムを提供する。【解決手段】各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ対応するアプリケーションを実行する。各アプリケーションの優先度は、アプリケーション優先度テーブル２６において定義されている。各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ定期的に生存情報をＰＥ状態テーブル２５に書き込む。各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ定期的にＰＥ状態テーブル２５に書き込まれている生存情報を参照し、他のプロセッサエレメントの状態を監視する。優先度の高いアプリケーションを実行しているプロセッサエレメント（ＰＥ０）が故障すると、そのアプリケーションは、優先度の低いアプリケーションを実行しているプロセッサエレメント（ＰＥ３）によって引き継がれる。【選択図】図３
2008015704.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
各プロセッサエレメントにより実行される処理の優先度を管理する管理手段と、
各プロセッサエレメントの状態を監視する監視手段と、
第１の処理を実行している第１のプロセッサエレメントにおいて故障が検出されたときに、前記管理手段の処理優先度情報を参照し、前記第１の処理よりも優先度の低い第２の処理を実行している第２のプロセッサエレメントに前記第１の処理を実行させる切替え手段と、
を有するマルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムであって、
前記監視手段は、各プロセッサエレメントに設けられ、それぞれ他のプロセッサエレメントの状態を監視する
ことを特徴とするマルチプロセッサシステム。
【請求項３】
請求項２に記載のマルチプロセッサシステムであって、
各プロセッサエレメントに設けられ、それぞれ所定の時間間隔で予め決められた規則に従って生存情報を生成し、各プロセッサエレメントが参照可能なメモリ領域にその生存情報を書き込む生存情報生成手段をさらに備え、
前記監視手段は、所定の時間間隔で前記メモリ領域を参照することによりプロセッサエレメントの状態を監視する
ことを特徴とするマルチプロセッサシステム。
【請求項４】
請求項１に記載のマルチプロセッサシステムであって、
各プロセッサエレメントに設けられ、当該プロセッサエレメントの故障を検出して他のプロセッサエレメントに申告する申告手段をさらに備え、
前記監視手段は、前記申告手段による申告に基づいてプロセッサエレメントの故障を検出する
ことを特徴とするマルチプロセッサシステム。
【請求項５】
請求項１に記載のマルチプロセッサシステムであって、
前記切替え手段は、故障が検出された第１のプロセッサエレメントを停止し、その第１のプロセッサエレメントが実行していた第１の処理を、前記第２のプロセッサエレメントに実行させる
ことを特徴とするマルチプロセッサシステム。
【請求項６】
請求項５に記載のマルチプロセッサシステムであって、
前記第１のプロセッサエレメントの故障が検出されたときに前記第２のプロセッサエレメントにより実行されていた前記第２の処理は、動作中のプロセッサエレメントにより実行されている複数の処理の中で最も優先度が低い
ことを特徴とするマルチプロセッサシステム。
【請求項７】
請求項１に記載のマルチプロセッサシステムであって、
故障が検出された第１のプロセッサエレメントを再ブートする再ブート手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【請求項８】
請求項７に記載のマルチプロセッサシステムであって、
前記切替え手段は、前記再ブート手段による再ブートの後に、前記第１の処理を前記第２のプロセッサエレメントに実行させるとともに、前記第２の処理を前記第１のプロセッサエレメントに実行させる
ことを特徴とするマルチプロセッサシステム。
【請求項９】
請求項１に記載のマルチプロセッサシステムであって、
各プロセッサエレメントとメモリバスとの間、各プロセッサエレメントとプロセッサエレメント間通信パスとの間、および各プロセッサエレメントとＩ／Ｏバスとの間にそれぞれ設けられるスイッチと、
前記切替え手段からの指示に応じて前記スイッチを制御する構成制御手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【請求項１０】
複数のプロセッサエレメントを備えるマルチプロセッサシステムにおける故障発生時の回復方法であって、
各プロセッサエレメントの状態を監視し、
第１の処理を実行している第１のプロセッサエレメントにおいて故障が検出されたときに、前記第１の処理よりも優先度の低い第２の処理を実行している第２のプロセッサエレメントに前記第１の処理を実行させる、
ことを特徴とするマルチプロセッサシステムにおける故障発生時の回復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサエレメントを備えるマルチプロセッサシステムに係わり、特に、組込み型マルチプロセッサシステムの信頼性を向上させる技術に係わる。
【背景技術】
【０００２】
従来より、高い信頼性を必要とするサーバシステムとして、正常動作時に処理を実行する現用系プロセッサ、及び現用系プロセッサに障害が発生したときにその処理を引き継ぐ予備系プロセッサ（ホットスタンバイ用プロセッサ）を備える構成が実用化されている。ここで、予備系プロセッサは、現用系プロセッサが正常に動作している期間は、電源は投入されているが、実質的な処理は行っていない。そして、このようなサーバシステムは、例えば、複数のクラスタ（現用系プロセッサおよび予備系プロセッサを含むサブシステム）を備え、クラスタ間を接続する通信パス、不揮発性のストレージシステム、各クラスタを監視／制御するサービスプロセッサ（ＳＶＰ）を利用して全プロセッサにより共用可能なファイル装置を提供する。そして、障害発生時における現用系から予備系への切替えは、ホットスタンバイ機能により、数秒程度で自動的に行われる。なお、ホットスタンバイ機能を提供するサーバシステムは、例えば、特許文献１〜３に記載されている。
【０００３】
上述のようなサーバシステムにおける故障の検出方法としては、例えば、各プロセッサ内に故障検出回路を内蔵することによってハードウェア故障を検出する構成、サービスプロセッサ（ＳＶＰ）を用いて各プロセッサの動作を監視する構成が知られている。この場合、サービスプロセッサは、現用系における故障を検出すると、ソフトウェアおよびハードウェアの構成を変更する。また、特許文献４には、複数のプロセッサを備える計算機システムにおいて、各プロセッサにそれぞれ複数のＯＳを搭載し、ＯＳ間で他のＯＳの故障を監視する方法が記載されている。
【０００４】
なお、関連する技術として、特許文献５には、複数の系から構成されるコンピュータシステムにおいて各系に対して予め優先度を設定しておき、ある系において障害が検出されたときに、その系の優先度に対応する時間が経過した時点でリセット処理を行う技術が記載されている。
【０００５】
ところで、様々な分野において組込みシステムが広く普及してきている。組込みシステムは、制御すべき対象の装置に内蔵される情報処理システムであって、１または複数のプロセッサを用いてその装置の動作を制御する。そして、近年では、高い信頼性を必要とする組込みシステム（例えば、航空機や自動車に組み込まれる制御システム等）が要求されている。
【０００６】
組込みシステムの信頼性を高める技術としては、例えば、３重化されたシステムが並列に処理を実行し、多数決原理に従って最も確からしい処理結果を選択する構成が知られている。この構成においては、特定のシステムが他の２つのシステムとは異なる処理結果を繰り返し出力したときに、その特定のシステムが切り離される。また、他の技術として、現用系システムの出力を他のシステムのプロセッサが監視し、その出力値が予め決められた範囲を逸脱したときに現用系システムを停止する構成も知られている。
【特許文献１】特開平１−９９１４１号
【特許文献２】特開平１−２１６４５９号
【特許文献３】特開平２−７１３４７号
【特許文献４】特開２００２−２５９１５５号
【特許文献５】特開２００６−１１９９２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
組込みシステムの信頼性を高める方法として、上述したサーバシステムに適用されている技術を組込みシステムに導入する構成が考えられる。しかし、サーバシステムに適用されている技術においては、現用系プロセッサの他に、正常動作時に実質的に処理を実行しない予備系プロセッサおよび／または各プロセッサを監視するサービスプロセッサを設ける必要がある。このため、この方法を導入すると、価格の上昇、実装面積の増加、消費電力の増加、重量の増加を招くこととなり、組込みシステムとしては不適切である。また、既存のサーバシステムに適用されているホットスタンバイ機能では、現用系から予備系への切替え時間が数秒程度であり、組込みシステムにおいて重要なリアルタイム性を保障できないおそれがある。なお、制御対象装置の動作を制御する組込みシステムにおいては、故障の発生から数ミリ秒（長くても、数百ミリ秒）以内に復帰処理が要求されることが多い。
【０００８】
ＯＳ間で相互に故障を監視する構成では、各プロセッサの負荷が重くなり、本来の処理に影響が及ぶおそれがある。なお、組込みシステムにおいて使用されるプロセッサは、一般に、小型化／低コスト化を実現するためにその処理能力が低い場合が多い。
【０００９】
多数決動作を導入するためにシステムを３重化する構成では、リアルタイム性は確保できるが、低コスト化を図ることは困難である。また、低コスト化を図るために３重化システムを２重化システムにすると、故障を検出することは可能であるが、どちらのシステムにおいて故障が発生したのかを判断できず、代替動作を行うことができないことがある。
【００１０】
本発明の課題は、低価格で信頼性の高いマルチプロセッサシステムを提供することである。
【課題を解決するための手段】
【００１１】
本発明のマルチプロセッサシステムは、複数のプロセッサエレメントを備える構成であり、各プロセッサエレメントにより実行される処理の優先度を管理する管理手段と、各プロセッサエレメントの状態を監視する監視手段と、第１の処理を実行している第１のプロセッサエレメントにおいて故障が検出されたときに、前記管理手段の処理優先度情報を参照し、前記第１の処理よりも優先度の低い第２の処理を実行している第２のプロセッサエレメントに前記第１の処理を実行させる切替え手段、を有する。
【００１２】
上記構成のマルチプロセッサシステムにおいては、あるプロセッサエレメントが故障したときに、その故障したプロセッサエレメントにより実行されていた処理の優先度が高ければ（あるいは、その処理の優先度が最低でなければ）、以降、その処理は他のプロセッサエレメントにより実行される。従って、システムの信頼性が向上する。
【００１３】
上記マルチプロセッサシステムにおいて、監視手段を各プロセッサエレメントにそれぞれ設け、各プロセッサエレメントがそれぞれ他のプロセッサエレメントの状態を監視するようにしてもよい。この構成によれば、プロセッサエレメントの状態を監視するための専用プロセッサは不要である。
【００１４】
また、上記マルチプロセッサシステムにおいて、所定の時間間隔で予め決められた規則に従って生存情報を生成し、各プロセッサエレメントが参照可能なメモリ領域にその生存情報を書き込む生存情報生成手段を各プロセッサエレメントにそれぞれ設けるようにしてもよい。この場合、監視手段は、所定の時間間隔で前記メモリ領域を参照することによりプロセッサエレメントの状態を監視する。この構成によれば、簡単な手順で他のプロセッサエレメントの故障を検出することができる。
【発明の効果】
【００１５】
本発明によれば、低価格で信頼性の高いマルチプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の概念を説明する図である。なお、図１においては、説明を簡単にするためにプロセッサエレメント（ＰＥ）を２つだけ備える構成を示しているが、マルチプロセッサシステムを構成するプロセッサエレメントの数は特に限定されるものではない。
【００１７】
プロセッサエレメント１Ａ、１Ｂは、それぞれ与えられたアプリケーション（または、タスク）を実行する。ここで、各アプリケーションには、それぞれ優先度が設定されている。図１に示す例では、プロセッサエレメント１Ａにより実行されるアプリケーションの優先度が高く、プロセッサエレメント１Ｂにより実行されるアプリケーションの優先度が低いものとする。すなわち、プロセッサエレメント１Ａは、優先度の高い処理を実行するプロセッサエレメント（高優先プロセッサエレメント）であり、プロセッサエレメント１Ｂは、優先度の低い処理を実行するプロセッサエレメント（低優先プロセッサエレメント）である。
【００１８】
記憶領域２は、各プロセッサエレメント１Ａ、１Ｂの状態を管理するＰＥ状態テーブル３を保持する。ここで、記憶領域２は、各プロセッサエレメント１Ａ、１Ｂからアクセス可能であり、例えば、プロセッサエレメント１Ａ、１Ｂのメインメモリである。なお、ＰＥ状態テーブル３には、各プロセッサエレメントについての生存情報および自己申告情報などが格納される。
【００１９】
本発明に係るマルチプロセッサシステムの基本動作は、以下の通りである。
（１）各プロセッサエレメントは、それぞれ所定の時間間隔ごとに、生存情報を生成してＰＥ状態テーブル３に書き込む。ここで、「所定の時間間隔」は、プロセッサエレメントの故障を検出するために要する時間、および故障発生時にプロセッサエレメントを切り替えるための時間の要求値に応じて決定されるものであり、例えば、数ミリ秒〜数百ミリ秒である。また、生存情報は、各プロセッサエレメントにおいて予め決められた規則に従って生成される。すなわち、プロセッサエレメントが正常に動作している期間は、ＰＥ状態テーブル３において、そのプロセッサエレメントにより生成される生存情報は予め決められた規則に従って更新される。一方、あるプロセッサエレメントが故障すると、ＰＥ状態テーブル３において、そのプロセッサエレメントに対応する生存情報は不適切な値となる。なお、以下の説明において、生存情報を生成して記憶領域２に書き込む動作を「生存通知」と呼ぶことがある。
【００２０】
（２）各プロセッサエレメントは、自己の故障を検出したときには、その故障を他のプロセッサエレメントに通知する。以下の説明では、この動作のことを「自己申告」と呼ぶものとする。自己申告は、自己の故障を検出したプロセッサエレメントがＰＥ状態テーブル３にその旨を書き込むことにより実現される。なお、自己申告を高速で行う場合には、プロセッサエレメント間の通信のために設けられているＰＥ間通信パスを利用して自己申告情報を他のプロセッサエレメントに送信するようにしてもよい。
【００２１】
（３）各プロセッサエレメントは、それぞれ所定の時間間隔ごとに、ＰＥ状態テーブル３を参照し、他のプロセッサエレメントの状態をチェックする。以下の説明では、この動作のことを「生存監視」と呼ぶことがある。そして、ＰＥ状態テーブルにおいてあるプロについての生存情報が不適切であることが検出されると、そのプロセッサエレメントは故障していると判断される。また、自己申告をしているプロセッサエレメントが検出された場合も、そのプロセッサエレメントは故障していると判断される。さらに、ＰＥ間通信パスを介して自己申告が行われる場合は、生存監視とは無関係に、自己申告信号を受信した時点で故障の発生が検出される。このように、本発明のマルチプロセッサシステムでは、あるプロセッサエレメントにおいて故障が発生すると、他の１または複数のプロセッサエレメントによりその故障が検出される。
【００２２】
（４）低優先プロセッサエレメントが高優先プロセッサエレメントの故障を検出した場合は、以下の動作が行われる。
（４−１）故障を検出したプロセッサエレメントは、故障した高優先プロセッサエレメントの動作を停止するとともに、その高優先プロセッサエレメントをリセットする。
（４−２）故障した高優先プロセッサエレメントは、マルチプロセッサシステムの共用資源および他のプロセッサエレメントから切り離される。具体的には、例えば、メモリバス、ＰＥ間通信パス、Ｉ／Ｏバス等のアクセスパスが切断される。
（４−３）低優先プロセッサエレメントの動作をいったん停止した後、故障した高優先プロセッサエレメントで実行されていたアプリケーションをその低優先プロセッサエレメントに実行させる（代替実行）。
【００２３】
（５）高優先プロセッサエレメントが低優先プロセッサエレメントの故障を検出した場合は、以下の動作が行われる。
（５−１）故障を検出したプロセッサエレメントは、故障した低優先プロセッサエレメントの動作を停止するとともに、その低優先プロセッサエレメントをリセットする。
（５−２）故障した低優先プロセッサエレメントは、マルチプロセッサシステムの共用資源および他のプロセッサエレメントから切り離される。具体的には、例えば、メモリバス、ＰＥ間通信パス、Ｉ／Ｏバス等のアクセスパスが切断される。この後、故障した低優先プロセッサエレメントで実行されていたアプリケーションは終了する。
【００２４】
このように、本発明のマルチプロセッサシステムにおいては、優先度の高い処理を実行しているプロセッサエレメントが故障した場合には、優先度の低い処理を実行しているプロセッサエレメントがその高優先処理を引き継いで実行する。よって、高優先処理は、その高優先処理を実行していたプロセッサエレメントが故障しても、継続して実行される。そして、この故障回復機能は、待機プロセッサエレメント（すなわち、現用系プロセッサが正常に動作している期間は、実質的な処理を行わないプロセッサ）を設けることなく実現される。すなわち、本発明によれば、待機プロセッサエレメントを設けることなく、実質的にホットスタンバイ機能が提供される。
【００２５】
また、各プロセッサエレメントの状態はそれぞれ他のプロセッサエレメントにより監視されるので、システムの動作を監視するための専用プロセッサを設ける必要はない。
なお、ＬＳＩチップ上に形成される記憶領域にＰＥ状態テーブル３を設けると共に、ＰＥ間通信パスを介して自己申告を行う構成を導入すれば、故障検出および代替動作による故障回復の高速化を図ることができる。
【００２６】
図２は、組込みシステムについて説明する図である。本発明の実施形態のマルチプロセッサシステム１１は、特に限定されるものではないが、例えば、制御対象装置１０に組み込まれて使用される。制御対象装置１０は、複数の装置エレメント１２−１〜１２−ｎを備える。そして、各装置エレメント１２−１〜１２−ｎの動作は、マルチプロセッサシステム１１が複数のアプリケーションを並列に実行することにより制御される。ここで、マルチプロセッサシステム１１は、図１を参照しながら説明した機能を備えている。なお、マルチプロセッサシステム１１は、任意のプロセッサエレメントにおいて故障が発生したときに、その故障内容を表示装置１３に表示するようにしてもよい。
【００２７】
図３は、実施形態のマルチプロセッサシステムのハードウェア構成を示す図である。ここでは、実施形態のマルチプロセッサシステムは、４個のプロセッサエレメント（ＰＥ０〜ＰＥ３）を備えるものとする。また、図３に示す例では、４個のプロセッサエレメントが１つのチップ上に形成されているが、本発明のマルチプロセッサシステムは、マルチチップ型であってもよい。なお、この実施例では、マルチプロセッサシステムは、自動車の安全運転支援装置に組み込まれているものとする。
【００２８】
実施形態のマルチプロセッサシステムは、プロセッサエレメント（ＰＥ０〜ＰＥ３）２１、共有メモリ２２、不揮発性メモリ２３、動的構成制御ユニット２４を備える。プロセッサエレメント（ＰＥ０〜ＰＥ３）２１は、互いに並列にアプリケーションを実行する。この実施例では、プロセッサエレメント（ＰＥ０）は前方監視処理を実行し、プロセッサエレメント（ＰＥ１）は側方監視処理を実行し、プロセッサエレメント（ＰＥ２）はナイトビジョン処理を実行し、プロセッサエレメント（ＰＥ３）はドライバー監視処理を実行するものとする。また、プロセッサエレメント間は、ＰＥ間通信パス３０により互いに接続されている。
【００２９】
共有メモリ（外部メモリ）２２は、各プロセッサエレメント２１からアクセス可能な記憶領域であり、ＯＳおよびアプリケーションプログラムが格納されている。また、共有メモリ２２において、ＰＥ状態テーブル２５およびアプリケーション優先度テーブル２６が作成される。ＰＥ状態テーブル２５は、各プロセッサエレメント（ＰＥ０〜ＰＥ３）２１の状態を表す情報が書き込まれる。また、アプリケーション優先度テーブル２６は、各プロセッサエレメント（ＰＥ０〜ＰＥ３）２１により実行されるアプリケーションの優先度を表す情報を保持する。この実施例では、前方監視処理の優先度が最も高く、側方監視処理の優先度が２番目に高く、ナイトビジョン処理の優先度が３番目に高く、ドライバー管理処理の優先度は最も低いものとする。なお、各プロセッサエレメント２１と共有メモリ２２との間は、メモリバスとしてのクロスバ（ＸＢ）２７により接続されている。
【００３０】
なお、各プロセッサエレメント内にＰＥ状態テーブル２５およびアプリケーション優先度テーブル２６を設けるようにしてもよい。この場合、これらのテーブルにより保持される情報は、例えば、ＰＥ間通信パス３０を介して送受信される。
【００３１】
不揮発性メモリ２３は、例えばフラッシュメモリであり、各種設定値および構成制御テーブル２８が格納される。構成制御テーブル２８は、アプリケーション優先度テーブル２６を含んで構成される。なお、各プロセッサエレメント２１と不揮発性メモリ２３との間は、Ｉ／Ｏバス２９により接続されている。
【００３２】
各プロセッサエレメント２１とクロスバ２７との間には、それぞれスイッチ３１が設けられている。また、各プロセッサエレメント２１とＩ／Ｏバス２９との間には、それぞれスイッチ３２が設けられている。さらに、各プロセッサエレメント２１とＰＥ間通信パス３０との間には、それぞれスイッチ３３が設けられている。
【００３３】
動的構成制御ユニット２４は、ＰＥ間通信パス３０に接続されており、任意のプロセッサエレメントからのコマンドに従って、対応するプロセッサエレメントが備えるスイッチ３１〜３３を制御する。例えば、プロセッサエレメント（ＰＥ０）の故障が検出されたときは、動的構成制御ユニット２４は、そのプロセッサエレメント（ＰＥ０）のスイッチ３１〜３３をオフ状態に制御する。これにより、故障したプロセッサエレメントは、マルチプロセッサシステムの共有資源および他のプロセッサエレメントから切り離される。
【００３４】
図４は、動的構成制御ユニット２４の実施例を示す図である。動的構成制御ユニット２４は、ＰＥ間通信パス３０を介して制御パケットを受信する。動的構成制御ユニット２４宛ての制御パケットは、ＩＤ、コマンド、ＰＥ番号を含む。「ＩＤ」は、制御パケットの宛先として動的構成制御ユニット２４を識別する。コマンドは「切断」を指示する。「ＰＥ番号」は、故障したプロセッサエレメントを識別する。なお、この制御パケットは、他のプロセッサエレメントの故障を検出したプロセッサエレメントにより生成される。
【００３５】
ＩＤ保持部４１には、動的構成制御ユニット２４を識別するＩＤが保持されている。比較器４２は、制御パケットに格納されているＩＤとＩＤ保持部４１に保持されているＩＤとを比較する。そして、比較器４２は、それら１組のＩＤが互いに一致すると、入力レジスタ４３に対してEnable信号を与える。
【００３６】
入力レジスタ４３には、制御パケットから抽出されたコマンドおよびＰＥ番号が書き込まれる。そして、比較器４２からEnable信号が与えられると、入力レジスタ４３に保持されているコマンド及びＰＥ番号はデコーダ４４に送られる。デコーダ４４は、コマンド及びＰＥ番号を解析し、対応する制御信号をスイッチ制御回路４５〜４７に送る。スイッチ制御回路４５は、制御パケットに格納されているＰＥ番号に対応するプロセッサエレメントのスイッチ３１をオフ状態に制御する信号を生成する。同様に、スイッチ制御回路４６、４７は、それぞれ、制御パケットに格納されているＰＥ番号に対応するプロセッサエレメントのスイッチ３２、３３をオフ状態に制御する信号を生成する。
【００３７】
上記構成の動的構成制御ユニット２４は、例えば、「ＰＥ番号＝ＰＥ０」を含む制御パケットを受信すると、プロセッサエレメント（ＰＷ０）が備えるスイッチ３１〜３３をオフ状態に制御する信号を生成する。そうすると、プロセッサエレメント（ＰＷ０）が備えるスイッチ３１〜３３はオフ状態に制御される。この結果、プロセッサエレメント（ＰＥ０）は、クロスバ２７、Ｉ／Ｏバス２９、ＰＥ間通信パス３０から切り離される。
【００３８】
図５は、実施形態のマルチプロセッサシステムのソフトウェア構成を示す図である。図５に示すように、各プロセッサエレメント上でリアルタイムＯＳが動作する。このリアルタイムＯＳは、ＰＥ間通信機能を備えているものとする。また、リアルタイムＯＳ上でアプリケーションＡ〜Ｄが動作する。ここで、アプリケーションＡ〜Ｄは、図３に示す例では、それぞれ前方監視処理、側方監視処理、ナイトビジョン処理、ドライバー監視処理に相当する。さらに、実施形態のマルチプロセッサシステムには、状態マネージャ（Ｍ＃０〜Ｍ＃３）が実装されている。状態マネージャ（Ｍ＃０〜Ｍ＃３）は、後で詳しく説明するが、故障検出処理および故障回復処理を実行する。
【００３９】
次に、実施形態のマルチプロセッサシステムの動作を説明する。なお、ここでは、マルチプロセッサシステムの初期状態において、前方監視処理がプロセッサエレメント（ＰＥ０）により実行され、側方監視処理がプロセッサエレメント（ＰＥ１）により実行され、ナイトビジョン処理がプロセッサエレメント（ＰＥ２）により実行され、ドライバー監視処理がプロセッサエレメント（ＰＥ３）により実行されるものとする。また、前方監視処理の優先度が最も高く、側方監視処理の優先度が２番目に高く、ナイトビジョン処理の優先度が３番目に高く、ドライバー管理処理の優先度は最も低いものとする。そして、各アプリケーションの状態を表す情報は、図６（ａ）に示すように、アプリケーション優先度テーブル２６に書き込まれている。
【００４０】
＜生存通知＞
各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ、状態マネージャプログラム（Ｍ＃０〜Ｍ＃３）を実行する。これにより、各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、所定の時間間隔で生存通知を行う。生存通知を実行する時間間隔は、例えば、数ミリ秒〜数百ミリ秒程度である。また、生存通知は、各プロセッサエレメント（ＰＥ０〜ＰＥ３）によりそれぞれ生成される生存情報をＰＥ状態テーブル２５に書き込むことにより実現される。
【００４１】
図７は、ＰＥ状態テーブル２５の実施例である。ＰＥ状態テーブル２５は、生存通知が行われる時間間隔と同じ間隔で生成される。ここで、図７（ａ）は、時刻ＴにおけるＰＥ状態テーブルを示し、図７（ｂ）は、時刻Ｔ＋ｔａにおけるＰＥ状態テーブルを示している。なお「ｔａ」は、生存通知が行われる時間間隔に相当する。
【００４２】
生存情報は、各プロセッサエレメントにおいて、予め決められた規則に従って生成される。生存情報を生成する規則は、特に限定されるものではないが、この実施例では「新たに生成する生存情報＝前回の生存情報＋１」である。この場合、プロセッサエレメントが正常に動作しているものとすると、時刻Ｔにおける生存情報と時刻Ｔ＋ｔａにおける生存情報との差分は「１」になる。図７に示す例では、プロセッサエレメント（ＰＥ１〜ＰＥ３）の生存情報は、それぞれ「１」だけインクリメントされている。しかし、故障したプロセッサエレメントは、生存通知を行うことができない（或いは、不適切な生存情報を生成する）。この場合、時刻Ｔにおける生存情報と時刻Ｔ＋ｔａにおける生存情報との差分は「１」にはならない。図７に示す例では、プロセッサエレメント（ＰＥ０）の生存情報は、時刻Ｔ〜Ｔ＋ｔａにおいて「ａ」のまま変化していない。
【００４３】
＜自己申告＞
各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ、自己の故障を検出する機能を備えている。この機能は、各プロセッサエレメントに内蔵されるチェック回路により実現され、例えば、共有メモリのＥＣＣエラー、内蔵メモリのパリティエラー、不正命令の実行に伴うエラー、バスのパリティエラー、バスエラー等を検出することができる。
【００４４】
プロセッサエレメントは、自己の故障を検出すると、その故障を申告する。故障の申告は、自己の故障を検出したプロセッサエレメントがＰＥ状態テーブル２５に故障フラグを書き込むことにより実現される。あるいは、自己の故障を検出したプロセッサエレメントが例外処理ルーチンを起動し、ＰＥ間通信パス３０を利用して他のプロセッサエレメントに通知を行うようにしてもよい。
【００４５】
＜生存監視＞
各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、それぞれ、所定の時間間隔で生存監視を行う。生存監視を実行する時間間隔は、生存通知の時間間隔と同じであってもよいし、異なっていてもよい。この実施例では、生存通知および生存監視の時間間隔は互いに同じであり、生存通知が実行された後の所定のタイミングで対応する生存監視が行われるものとする。
【００４６】
生存監視は、各プロセッサエレメント（ＰＥ０〜ＰＥ３）がそれぞれＰＥ状態テーブル２５を参照することにより実現される。具体的には、たとえば、各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、最新のＰＥ状態テーブルおよび１つ前に生成されたＰＥ状態テーブルを読み出し、対応する生存情報を比較する。このとき、プロセッサエレメント（ＰＥ０）は、プロセッサエレメント（ＰＥ１〜ＰＥ３）について生存情報をチェックする。同様に、プロセッサエレメント（ＰＥ１）はプロセッサエレメント（ＰＥ０、ＰＥ２、ＰＥ３）について生存情報をチェックし、プロセッサエレメント（ＰＥ２）はプロセッサエレメント（ＰＥ０、ＰＥ１、ＰＥ３）について生存情報をチェックし、プロセッサエレメント（ＰＥ３）はプロセッサエレメント（ＰＥ０〜ＰＥ２）について生存情報をチェックする。
【００４７】
図７に示す実施例では、プロセッサエレメント（ＰＥ１〜ＰＥ３）の生存情報は、時刻Ｔ〜Ｔ＋ｔａにおいて、それぞれ「１」だけインクリメントされている。この場合、プロセッサエレメント（ＰＥ１〜ＰＥ３）は「正常」である判断される。これに対して、プロセッサエレメント（ＰＥ０）の生存情報は、時刻Ｔ〜Ｔ＋ｔａにおいて変化していない。この場合、プロセッサエレメント（ＰＥ０）は「故障」と判断される。なお、プロセッサエレメント（ＰＥ０）の故障は、プロセッサエレメント（ＰＥ１〜ＰＥ３）により検出される。
【００４８】
各プロセッサエレメント（ＰＥ０〜ＰＥ３）は、ＰＥ状態テーブル２５の生存情報を参照する際に、自己申告情報も参照する。自己申告情報は、基本的に、最新のＰＥ状態テーブルを参照する。
【００４９】
なお、上述の例では、連続する２つのＰＥ状態テーブルに書き込まれている生存情報を比較することよりプロセッサエレメントの状態をチェックしているが、３以上のＰＥ状態テーブルに書き込まれている生存情報に基づいてプロセッサエレメントの状態を判断するようにしてもよい。また、上述の例では、生存情報は前回の生存情報をインクリメントすることにより生成されているが、本発明はこの規則に限定されるものではない。即ち、例えば、各プロセッサエレメントがそれぞれ有するタイマが生成する時刻情報を生存通知タイミング毎にＰＥ状態テーブル２５に書き込むようにしてもよい。さらに、各プロセッサエレメント内にＰＥ状態テーブル２５を設ける構成を導入すれば、生存監視の高速化を図ることができる。
【００５０】
＜故障の検出および回復＞
図３に示すマルチプロセッサシステムにおいて、プロセッサエレメント（ＰＥ０）が故障したものとする。そうすると、図７に示すように、ＰＥ状態テーブル２５において、プロセッサエレメント（ＰＥ０）の「生存情報」は更新されなくなる。
【００５１】
プロセッサエレメント（ＰＥ１〜ＰＥ３）は、それぞれ、上述した生存監視を実行することにより、プロセッサエレメント（ＰＥ０）の故障を検出することができる。そして、プロセッサエレメント（ＰＥ１〜ＰＥ３）は、プロセッサエレメント（ＰＥ０）の故障を検出すると、下記の回復処理を行う。ただし、回復処理は、基本的に、最も優先度の低いアプリケーションを実行しているプロセッサエレメント（ここでは、ＰＥ３）により実行されることが好ましい。したがって、以下の説明では、プロセッサエレメント（ＰＥ３）によって回復処理が実行されるものとする。
【００５２】
プロセッサエレメント（ＰＥ３）は、故障したプロセッサエレメント（ＰＥ０）をリセットする。これにより、プロセッサエレメント（ＰＥ０）の動作は停止する。ここで、リセット信号は、例えば、ＰＥ間通信パス３０を介して送信される。また、プロセッサエレメント（ＰＥ３）は、制御パケットを生成して動的構成制御ユニット２４に送信する。この制御パケットには、故障したプロセッサエレメントを識別する情報として「ＰＥ番号＝ＰＥ０」が格納されている。そうすると、動的構成制御ユニット２４は、プロセッサエレメント（ＰＥ０）が備えるスイッチ３１〜３３をオフ状態に制御する。この結果、故障したプロセッサエレメント（ＰＥ０）は、クロスバ２７、Ｉ／Ｏバス２９、ＰＥ間通信パス３０から切り離される。
【００５３】
続いて、プロセッサエレメント（ＰＥ３）は、アプリケーション優先度テーブル２６を参照し、プロセッサエレメント（ＰＥ０）により実行されていたアプリケーションの優先度とプロセッサエレメント（ＰＥ３）が実行しているアプリケーションの優先度とを比較する。ここでは、プロセッサエレメント（ＰＥ３）が実行しているアプリケーションの優先度の方が低い。この場合、プロセッサエレメント（ＰＥ３）は「ドライバー監視処理」を停止し、故障したプロセッサエレメント（ＰＥ０）によって実行されていた「前方監視処理」を実行する。このとき、プロセッサエレメント（ＰＥ３）は、次に実行すべきアプリケーションとして「前方監視処理」を指定し、その後、自分自身をリセットする。これにより、アプリケーションを実行すべきプロセッサエレメントの切替えが実現される。あるいは、リアルタイムＯＳのタスクスイッチ機構を利用して、プロセッサエレメント（ＰＥ０）により実行されていた処理をプロセッサエレメント（ＰＥ３）に実行させることも可能である。
【００５４】
この後、アプリケーション優先度テーブル２６は、プロセッサエレメント（ＰＥ３）またはＯＳからの通知により、図６（ｂ）に示す状態に更新される。
上述のように、優先度の高い処理を実行していたプロセッサエレメントが故障した場合には、優先度の低い処理を実行していたプロセッサエレメントがその高優先処理を引き継いで実行する。したがって、優先度の高い処理（実際には、最も優先度の低い処理以外の処理）は、プロセッサエレメントが故障しても、継続して実行されるので、信頼性の高いマルチプロセッサシステムが実現される。また、待機プロセッサエレメントおよび故障監視のための専用プロセッサを備える必要がないので、マルチプロセッサシステムの低コスト化を図ることができる。
【００５５】
なお、生存情報を利用して故障を検出する場合の手順を説明したが、あるプロセッサエレメントにより申告された故障を他のプロセッサエレメントが検出した場合も同様の手順でアプリケーションの引継ぎが行われる。
【００５６】
図８は、状態マネージャの処理を示すフローチャートである。なお、状態マネージャは各プロセッサエレメントにおいてそれぞれ動作する。また、ここでは、自己申告は、ＰＥ間通信パス３０を介して行われるものとする。
【００５７】
ステップＳ１では、自分自身の故障をチェックする。自分自身の故障は、例えば、プロセッサエレメントに内蔵されているチェック回路から状態マネージャへの割込み信号（回復不能例外）により通知される。自分自身の故障を検出すると、ＰＥ間通信パス３０を介して他のプロセッサエレメントに対して故障の申告を行う。ステップＳ２では、他のプロセッサエレメントからの故障の申告をチェックする。そして、他のプロセッサエレメントから故障の申告を受信した場合には、代替実行処理ルーチンに進む。
【００５８】
ステップＳ１１〜Ｓ１５は、生存監視による故障検出処理ルーチンである。ステップＳ１１は、所定の時間間隔を計時する処理である。すなわち、故障検出処理ルーチンは、所定の時間間隔で実行される。ステップＳ１２では、生存通知が実行される。生存通知は、上述したように、生存情報を生成してＰＥ状態テーブル２５に書き込むことにより実現される。ステップＳ１３では、ＰＥ状態テーブル２５を読み出す。
【００５９】
ステップＳ１４〜Ｓ１５では、各プロセッサエレメントについて最新のＰＥ状態テーブルの生存情報と前回のＰＥ状態テーブルの生存情報と比較し、各プロセッサエレメントが正常であるのか故障しているのかを判断する。一実施例としては、比較される１組の生存情報が互いに一致していたときに、プロセッサエレメントが故障していると判断される。そして、故障が検出されたときは、代替実行処理ルーチンに進む。
【００６０】
ステップＳ２１〜Ｓ２７は、代替実行処理ルーチンである。この代替実行処理ルーチンは、生存監視により他のプロセッサエレメントの故障を検出したとき、および他のプロセッサエレメントから故障の申告を受信したときに実行される。
【００６１】
ステップＳ２１では、故障したプロセッサエレメントを識別するＰＥ番号を検出する。ステップＳ２２では、まず、故障したプロセッサエレメントをリセットして停止する。さらに、その故障したプロセッサエレメントを他のプロセッサエレメントから切り離す。この場合、故障したプロセッサエレメントを識別するＰＥ番号が動的構成制御ユニット２４に送信される。そうすると、動的構成制御ユニット２４は、故障したプロセッサエレメントが備えるスイッチ３１〜３３をオフ状態に制御する。この結果、故障したプロセッサエレメントは、クロスバ、Ｉ／Ｏバス、ＰＥ間通信パスから切り離される。
【００６２】
ステップＳ２３〜Ｓ２４では、アプリケーション優先度テーブル２６を参照し、故障したプロセッサエレメントが実行していたアプリケーションの優先度を確認する。そして、故障したプロセッサエレメントが実行していたアプリケーションの優先度が最も低かった場合にはステップＳ２７に進み、そうでない場合にはステップＳ２５に進む。
【００６３】
ステップＳ２５では、故障したプロセッサエレメントにより実行されていたアプリケーションを、その故障したプロセッサエレメントから引き継いで実行する。そして、ステップＳ２６において、アプリケーション優先度テーブル２６を更新する。例えば、図３に示すマルチプロセッサシステムにおいてプロセッサエレメント（ＰＥ０）が故障した場合には、アプリケーション優先度テーブル２６は、図６（ａ）に示す状態から図６（ｂ）に示す状態へ更新される。
【００６４】
なお、故障したプロセッサエレメントが実行していたアプリケーションの優先度が最も低かった場合には、そのアプリケーションは他のプロセッサエレメントに引き継がれることはなく、そのまま終了する。ただし、ステップＳ２７においてアプリケーション優先度テーブル２６の更新は行われる。
【００６５】
このように、故障したプロセッサエレメントにより実行されていたアプリケーションよりも優先度の低いアプリケーションが存在する場合には、その故障したプロセッサエレメントにより実行されていたアプリケーションは、他のプロセッサエレメントに引き継がれて実行される。なお、代替実行処理ルーチンは、例えば、最も優先度の低いアプリケーションを実行しているプロセッサエレメント、正常に動作しているプロセッサエレメントの中で一番小さいＰＥ番号を持ったプロセッサエレメント、あるいは最初に故障を検出したプロセッサエレメントにより実行される。ただし、最も優先度の低いアプリケーションを実行しているプロセッサエレメントが故障したときは、代替実行処理ルーチンは、たとえば、正常に動作しているプロセッサエレメントの中で一番小さいＰＥ番号を持ったプロセッサエレメント、または最初に故障を検出したプロセッサエレメントにより実行される。
【００６６】
なお、図８に示す実施例１の故障検出において、自己故障検出と生存監視による故障検出とをそれぞれ含む構成に限定されない。
図９は、他の実施形態の状態マネージャの処理を示すフローチャートである。なお、図８および図９に示す手順において、故障検出処理ルーチンは互いに同じであるが、代替実行処理ルーチンは異なっている。
【００６７】
図９に示すフローチャートは、特殊な条件下で発生するソフトウェアエラー（プログラムのバグを含む）を考慮して、図8に示すフローチャートを改良したものである。すなわち、特殊な条件下で発生するソフトウェアエラーは、プロセッサエレメントを再ブートすると、以降、発生しなくなることがある。そこで、図９に示すフローチャートでは、故障が検出されたプロセッサエレメントを再ブートする手順が導入されている。
【００６８】
ステップＳ３１では、再ブート履歴を参照し、故障したプロセッサエレメントが既に再ブートされているか否かをチェックする。再ブートされていなければ、ステップＳ３２において、故障したプロセッサエレメントを再ブートする。ステップＳ３３では、再ブートされたプロセッサエレメントは、再ブート前に実行していたアプリケーションと同じアプリケーションを再実行する。ステップＳ３４では、再ブートを行った旨を表す再ブート履歴に書き込む。なお、故障したプロセッサエレメントが既に再ブートされていた場合（ステップＳ３１：Ｙｅｓ）には、ステップＳ２２に進む。
【００６９】
このように、図９に示す手順では、あるプロセッサエレメントにおいて故障が検出されると、そのプロセッサエレメントを再ブートした後に、アプリケーションの実行を再開させる。この結果、故障が検出されなくなれば、いずれのアプリケーションも停止することなく継続して実行される。ただし、再ブートしてもなお故障が検出されたときは、ステップＳ２２以降の処理が実行される。このとき、ステップＳ３５においては、故障したプロセッサエレメントが実行していたアプリケーションを引き継ぐべきプロセッサエレメントが再ブートされ、その後、そのアプリケーションが実行される。
【００７０】
故障したプロセッサエレメントを再ブートした後のステップＳ３３におけるアプリケーションの再実行としては、下記の２通りの方法が考えられる。
（１）故障したプロセッサエレメントは、再ブート前に実行していたアプリケーションを再び実行する。
（２）故障したプロセッサエレメントは、他のプロセッサエレメントにより実行されている最も優先度の低いアプリケーションを実行する。また、最も優先度の低いアプリケーションを実行していたプロセッサエレメントは、再ブート前にその故障したプロセッサエレメントにより実行されていたアプリケーションを実行する。この手順によれば、再ブートされたプロセッサエレメントにおいて再び故障が検出されたときは、そのプロセッサエレメントを切り離すだけでよく、代替動作は不要となる。
【００７１】
なお、実施形態のマルチプロセッサシステムにおいて、各プロセッサエレメントがアクセス可能な複数のメモリが設けられている場合には、メモリに係わる故障が検出されたプロセッサエレメントを停止させた後に、故障と判定されたメモリ以外のメモリを使用して他のプロセッサエレメントを再ブートするようにしてもよい。
なお、図９に示す実施例２の故障検出において、自己故障検出と生存監視による故障検出とをそれぞれ含む構成に限定されない。
【００７２】
（付記１）複数のプロセッサエレメントを備えるマルチプロセッサシステムであって、
各プロセッサエレメントにより実行される処理の優先度を管理する管理手段と、
各プロセッサエレメントの状態を監視する監視手段と、
第１の処理を実行している第１のプロセッサエレメントにおいて故障が検出されたときに、前記管理手段の処理優先度情報を参照し、前記第１の処理よりも優先度の低い第２の処理を実行している第２のプロセッサエレメントに前記第１の処理を実行させる切替え手段と、
を有するマルチプロセッサシステム。
【００７３】
（付記２）付記１に記載のマルチプロセッサシステムであって、
前記監視手段は、各プロセッサエレメントに設けられ、それぞれ他のプロセッサエレメントの状態を監視する
ことを特徴とするマルチプロセッサシステム。
【００７４】
（付記３）付記２に記載のマルチプロセッサシステムであって、
各プロセッサエレメントに設けられ、それぞれ所定の時間間隔で予め決められた規則に従って生存情報を生成し、各プロセッサエレメントが参照可能なメモリ領域にその生存情報を書き込む生存情報生成手段をさらに備え、
前記監視手段は、所定の時間間隔で前記メモリ領域を参照することによりプロセッサエレメントの状態を監視する
ことを特徴とするマルチプロセッサシステム。
【００７５】
（付記４）付記３に記載のマルチプロセッサシステムであって、
前記生存情報が書き込まれるメモリ領域が各プロセッサエレメント内にそれぞれ設けられる
ことを特徴とするマルチプロセッサシステム。
【００７６】
（付記５）付記１に記載のマルチプロセッサシステムであって、
各プロセッサエレメントに設けられ、当該プロセッサエレメントの故障を検出して他のプロセッサエレメントに申告する申告手段をさらに備え、
前記監視手段は、前記申告手段による申告に基づいてプロセッサエレメントの故障を検出する
ことを特徴とするマルチプロセッサシステム。
【００７７】
（付記６）付記５に記載のマルチプロセッサシステムであって、
前記申告手段により生成される申告データは、共有メモリを介することなく、プロセッサエレメント間通信パスを介して送信される
ことを特徴とするマルチプロセッサシステム。
【００７８】
（付記７）付記５に記載のマルチプロセッサシステムであって、
前記申告手段は、メモリのＥＣＣエラー、メモリまたはバスのパリティエラー、不正な命令の実行、不正な記憶領域のアクセスを検出したときに、プロセッサエレメントの故障を申告する
ことを特徴とするマルチプロセッサシステム。
【００７９】
（付記８）付記１に記載のマルチプロセッサシステムであって、
前記切替え手段は、故障が検出された第１のプロセッサエレメントを停止し、その第１のプロセッサエレメントが実行していた第１の処理を、前記第２のプロセッサエレメントに実行させる
ことを特徴とするマルチプロセッサシステム。
【００８０】
（付記９）付記８に記載のマルチプロセッサシステムであって、
前記第１のプロセッサエレメントの故障が検出されたときに前記第２のプロセッサエレメントにより実行されていた前記第２の処理は、動作中のプロセッサエレメントにより実行されている複数の処理の中で最も優先度が低い
ことを特徴とするマルチプロセッサシステム。
【００８１】
（付記１０）付記１に記載のマルチプロセッサシステムであって、
前記切替え手段は、故障が検出された第１のプロセッサエレメントが実行している第１の処理よりも優先度の低い処理が存在しない場合には、その第１のプロセッサエレメントの処理を停止してその第１の処理を終了する
ことを特徴とするマルチプロセッサシステム。
【００８２】
（付記１１）付記１に記載のマルチプロセッサシステムであって、
故障が検出された第１のプロセッサエレメントを再ブートする再ブート手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【００８３】
（付記１２）付記１１に記載のマルチプロセッサシステムであって、
前記切替え手段は、前記再ブート手段による再ブートの後に、前記第１の処理を前記第２のプロセッサエレメントに実行させるとともに、前記第２の処理を前記第１のプロセッサエレメントに実行させる
ことを特徴とするマルチプロセッサシステム。
【００８４】
（付記１３）付記１に記載のマルチプロセッサシステムであって、
各プロセッサエレメントとメモリバスとの間、各プロセッサエレメントとプロセッサエレメント間通信パスとの間、および各プロセッサエレメントとＩ／Ｏバスとの間にそれぞれ設けられるスイッチと、
前記切替え手段からの指示に応じて前記スイッチを制御する構成制御手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【００８５】
（付記１４）付記１３に記載のマルチプロセッサシステムであって、
前記切替え手段から前記構成制御手段への指示は、前記プロセッサエレメント間通信パスを介して送信される
ことを特徴とするマルチプロセッサシステム。
【００８６】
（付記１５）付記１に記載のマルチプロセッサシステムであって、
プロセッサエレメントの故障により停止した処理に係わる情報を表示する表示手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【００８７】
（付記１６）付記１に記載のマルチプロセッサシステムであって、
プロセッサエレメントの故障により停止した処理に係わる情報を格納する不揮発性メモリをさらに備える
ことを特徴とするマルチプロセッサシステム。
【００８８】
（付記１７）付記１に記載のマルチプロセッサシステムであって、
各プロセッサエレメントがアクセス可能な複数のメモリと、
メモリに係わる故障が検出されたプロセッサエレメントを停止させた後に、故障と判定されたメモリ以外のメモリを使用して他のプロセッサエレメントを再ブートする再ブート手段をさらに備える
ことを特徴とするマルチプロセッサシステム。
【００８９】
（付記１８）付記１に記載のマルチプロセッサシステムであって、
前記監視手段および切替え手段の動作を記述したプログラムを搭載する
ことを特徴とするマルチプロセッサシステム。
【００９０】
（付記１９）複数のプロセッサエレメントを備えるマルチプロセッサシステムにおける故障発生時の回復方法であって、
各プロセッサエレメントの状態を監視し、
第１の処理を実行している第１のプロセッサエレメントにおいて故障が検出されたときに、前記第１の処理よりも優先度の低い第２の処理を実行している第２のプロセッサエレメントに前記第１の処理を実行させる、
ことを特徴とするマルチプロセッサシステムにおける故障発生時の回復方法。
【図面の簡単な説明】
【００９１】
【図１】本発明の概念を説明する図である。
【図２】組込みシステムについて説明する図である。
【図３】実施形態のマルチプロセッサシステムのハードウェア構成を示す図である。
【図４】動的構成制御ユニットの実施例である。
【図５】実施形態のマルチプロセッサシステムのソフトウェア構成を示す図である。
【図６】アプリケーション優先度テーブルの実施例である。
【図７】ＰＥ状態テーブルの実施例である。
【図８】状態マネージャの処理を示すフローチャート（実施例１）である。
【図９】状態マネージャの処理を示すフローチャート（実施例２）である。
【符号の説明】
【００９２】
１Ａ、１Ｂ      プロセッサエレメント
２      記憶領域
３      ＰＥ状態テーブル
１０      制御対象装置
１１      マルチプロセッサシステム
１３      表示装置
２１      プロセッサエレメント
２２      共有メモリ
２３      不揮発性メモリ
２４      動的構成制御ユニット
２５      ＰＥ状態テーブル
２６      アプリケーション優先度テーブル
２７      クロスバ
２９      Ｉ／Ｏバス
３０      ＰＥ間通信パス
３１〜３３      スイッチ
【図１】
2008015704.tif 000003
【図２】
2008015704.tif 000004
【図３】
2008015704.tif 000005
【図４】
2008015704.tif 000006
【図５】
2008015704.tif 000007
【図６】
2008015704.tif 000008
【図７】
2008015704.tif 000009
【図８】
2008015704.tif 000010
【図９】
2008015704.tif 000011