(57)【要約】【課題】コストを抑制しつつ、プロセッサエレメントの監視を実現する。【解決手段】マルチプロセッサシステム１は、第１のプロセッサエレメント２が監視対象プロセスを実行した際のバスアクセス情報を記憶する記憶部６と、第１のプロセッサエレメント２による監視対象プロセスの実行の完了後に、第２のプロセッサエレメント３に対し、監視プロセスの実行を要求する要求部７と、記憶部６に記憶された第１のプロセッサエレメント２のアクセスについてのバスアクセス情報と、第２のプロセッサエレメント３が監視プロセスを実行した際に第２のプロセッサエレメント３から入力されるバスアクセス情報とを比較する比較部８とを有するバス機構を備える。そして、第２のプロセッサエレメント３は、空き時間に監視プロセスを実行する。【選択図】図１
2018041311.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサエレメントと、
第２のプロセッサエレメントと、
前記第１のプロセッサエレメントによってアクセスされるアクセス対象部と、
前記第１のプロセッサエレメントと前記アクセス対象部との間のアクセス経路上に設けられたバス機構と
を備え、
前記バス機構は、
前記第１のプロセッサエレメントが監視対象プロセスを実行した際に発生する前記アクセス対象部に対するアクセスについてのバスアクセス情報を記憶する記憶部と、
前記第１のプロセッサエレメントによる前記監視対象プロセスの実行の完了後に、前記第２のプロセッサエレメントに対し、前記監視対象プロセスと同じ処理からなる監視プロセスの実行を要求する要求部と、
前記記憶部に記憶された前記第１のプロセッサエレメントのアクセスについてのバスアクセス情報と、前記第２のプロセッサエレメントが前記監視プロセスを実行した際に前記第２のプロセッサエレメントから入力されるバスアクセス情報とを比較する比較部とを有し、
前記第２のプロセッサエレメントは、空き時間に前記監視プロセスを実行する
マルチプロセッサシステム。
【請求項２】
前記第２のプロセッサエレメントは、周期的に、所定のプロセス及び前記監視プロセスを実行し、
前記空き時間は、前記第２のプロセッサエレメントにおける前記所定のプロセス及び前記監視プロセスの実行周期のうち、前記所定のプロセスが実行されない時間帯である
請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記第１のプロセッサエレメントは、前記監視対象プロセスの実行の開始時に、前記監視対象プロセスの実行の開始を前記バス機構に通知し、
前記バス機構は、前記監視対象プロセスの実行が開始されることの通知があった場合に、前記記憶部、前記要求部、及び前記比較部による処理を行う
請求項１に記載のマルチプロセッサシステム。
【請求項４】
前記第１のプロセッサエレメントは、前記監視対象プロセスの実行の開始時に、さらに、監視対象のアクセス範囲を前記バス機構に通知し、
前記記憶部は、監視対象として通知された前記アクセス範囲に含まれるアクセスについてのバスアクセス情報を記憶し、
前記比較部は、監視対象として通知された前記アクセス範囲に含まれるアクセスについてのバスアクセス情報について比較する
請求項３に記載のマルチプロセッサシステム。
【請求項５】
前記バス機構は、前記第２のプロセッサエレメントが前記監視プロセスを実行している間、
前記第２のプロセッサエレメントによる前記アクセス対象部へのリードアクセス要求に対し、前記記憶部に記憶された前記第１のプロセッサエレメントによるリードデータを前記第２のプロセッサエレメントに出力し、
前記第２のプロセッサエレメントによる前記アクセス対象部へのライトアクセス要求に対し、前記アクセス対象部へのライトアクセスを行わない
請求項１に記載のマルチプロセッサシステム。
【請求項６】
前記比較部は、リードアクセスについてのバスアクセス情報の比較として、前記記憶部に記憶された前記第１のプロセッサエレメントのリードアドレスと、前記第２のプロセッサエレメントが前記監視プロセスを実行した際に前記第２のプロセッサエレメントから入力されるリードアドレスを比較する
請求項１に記載のマルチプロセッサシステム。
【請求項７】
前記比較部は、ライトアクセスについてのバスアクセス情報の比較として、
前記記憶部に記憶された前記第１のプロセッサエレメントのライトアドレスと、前記第２のプロセッサエレメントが前記監視プロセスを実行した際に前記第２のプロセッサエレメントから入力されるライトアドレスとの比較、及び
前記記憶部に記憶された前記第１のプロセッサエレメントのライトデータと、前記第２のプロセッサエレメントが前記監視プロセスを実行した際に前記第２のプロセッサエレメントから入力されるライトデータとの比較を行う
請求項１に記載のマルチプロセッサシステム。
【請求項８】
前記記憶部は、前記監視対象プロセス毎に設けられた領域に、前記監視対象プロセスを実行した際に発生する前記アクセス対象部に対するアクセスについてのバスアクセス情報を記憶し、
前記バス機構は、前記第１のプロセッサエレメントによる監視対象プロセスの実行中に前記第１のプロセッサエレメントに新たに別の監視対象プロセスについての割り込み処理が発生した場合、割り込み処理の発生前の監視対象プロセスに対応する前記領域とは異なる前記領域に、前記割り込み処理についていのバスアクセス情報を格納する
請求項１に記載のマルチプロセッサシステム。
【請求項９】
前記比較部による比較結果がバスアクセス情報の不一致を示す場合、予め定められたエラー処理を実施するエラー処理部をさらに有する
請求項１に記載のマルチプロセッサシステム。
【請求項１０】
車両に搭載される第１のモータと、
前記第１のモータに対する制御信号を生成する第１のプロセッサエレメントと、
前記車両に搭載される第２のモータと、
前記第２のモータに対する制御信号を生成する第２のプロセッサエレメントと、
前記第１のプロセッサエレメントによってアクセスされるアクセス対象部と、
前記第１のプロセッサエレメントと前記アクセス対象部との間のアクセス経路上に設けられたバス機構と
を備え、
前記バス機構は、
前記第１のプロセッサエレメントが監視対象プロセスを実行した際に発生する前記アクセス対象部に対するアクセスについてのバスアクセス情報を記憶する記憶部と、
前記第１のプロセッサエレメントによる前記監視対象プロセスの実行の完了後に、前記第２のプロセッサエレメントに対し、前記監視対象プロセスと同じ処理からなる監視プロセスの実行を要求する要求部と、
前記記憶部に記憶された前記第１のプロセッサエレメントのアクセスについてのバスアクセス情報と、前記第２のプロセッサエレメントが前記監視プロセスを実行した際に前記第２のプロセッサエレメントから入力されるバスアクセス情報とを比較する比較部とを有し、
前記第２のプロセッサエレメントは、空き時間に前記監視プロセスを実行する
車両制御システム。
【請求項１１】
前記第１のプロセッサエレメント及び前記第２のプロセッサエレメントは、周期的に、前記制御信号の生成のための信号生成プロセス及び前記監視プロセスを実行し、
前記監視対象プロセスは、前記第１のプロセッサエレメントによる前記信号生成プロセスであり、
前記空き時間は、前記信号生成プロセス及び前記監視プロセスの実行周期のうち、前記信号生成プロセスが実行されない時間帯である
請求項１０に記載の車両制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチプロセッサシステム及び車両制御システムに関し、例えばバス機構を用いた監視を行うマルチプロセッサシステム及び車両制御システムに関する。
【背景技術】
【０００２】
近年、自動車市場などにおいて、マルチコア処理などによる高性能化と、ＤＬＳ（デュアルロックステップ：Dual Lock Step）又はＴＭＲ（３値多数決：ternary majority rule）などのフェールセーフティ技術との両立が求められている。このため、様々な技術が提案されている。
【０００３】
例えば、特許文献１では、プロセッサエレメントを密に結合することなくマルチプロセッサシステムの機能安全を実現するマルチプロセッサシステムについて開示している。このマルチプロセッサシステムでは、バス機構が、複数のプロセッサエレメントのバスアクセス要求を保持及び比較し、プロセッサエレメントの異常を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１５３２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された機能安全のための構成によれば、ＤＬＳを実現する場合には２つのプロセッサエレメントが同じ処理を実行する必要があり、ＴＭＲを実現する場合には３つのプロセッサエレメントが同じ処理を実行する必要がある。つまり、機能安全を実現させる為には、監視対象のプロセッサエレメントとは別に、監視専用のプロセッサエレメントを用意する必要がある。つまり、監視対象のプロセッサエレメントが実行するプログラムと同じプログラムを実行する監視専用のプロセッサエレメントを、最低一つ用意する必要がある。このため、高コスト化を招くという問題がある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、マルチプロセッサシステムは、第１のプロセッサエレメントが監視対象プロセスを実行した際のバスアクセス情報を記憶する記憶部と、第１のプロセッサエレメントによる監視対象プロセスの実行の完了後に、第２のプロセッサエレメントに対し、監視プロセスの実行を要求する要求部と、記憶部に記憶された第１のプロセッサエレメントのアクセスについてのバスアクセス情報と、第２のプロセッサエレメントが監視プロセスを実行した際に第２のプロセッサエレメントから入力されるバスアクセス情報とを比較する比較部とを有するバス機構を備える。そして、第２のプロセッサエレメントは、空き時間に監視プロセスを実行する。
【発明の効果】
【０００８】
前記一実施の形態によれば、コストを抑制しつつ、プロセッサエレメントの監視を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態の概要にかかるマルチプロセッサシステムの構成の一例を示すブロック図である。
【図２】実施の形態１にかかるマルチプロセッサシステムの詳細な構成の一例を示すブロック図である。
【図３】記憶領域におけるデータの格納例について示す模式図である。
【図４Ａ】実施の形態１にかかるマルチプロセッサシステムにおいて割り込みが発生しない場合の動作例を示すフローチャートである。
【図４Ｂ】実施の形態１にかかるマルチプロセッサシステムにおいて割り込みが発生しない場合の動作例を示すフローチャートである。
【図５Ａ】監視対象プロセスを実行中のＰＥにおいて、割り込み処理が発生した場合の動作例を示すフローチャートである。
【図５Ｂ】監視対象プロセスを実行中のＰＥにおいて、監視対象プロセスを含まない割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。
【図６Ａ】監視対象プロセスを実行中のＰＥにおいて、監視対象プロセスを含む割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。
【図６Ｂ】監視対象プロセスを実行中のＰＥにおいて、監視対象プロセスを含む割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。
【図７Ａ】監視プロセスを実行中のＰＥにおいて、割り込み処理が発生した場合の動作例を示すフローチャートである。
【図７Ｂ】監視プロセスを実行中のＰＥにおいて、割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。
【図８】実施の形態２にかかる車両制御システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
＜実施の形態の概要＞
実施の形態の詳細について説明する前に、まず、実施の形態の概要について説明する。図１は、実施の形態の概要にかかるマルチプロセッサシステム１の構成の一例を示すブロック図である。マルチプロセッサシステム１は、第１のプロセッサエレメント２と、第２のプロセッサエレメント３と、バス機構４と、アクセス対象部５とを有する。
【００１２】
第１のプロセッサエレメント２は、動作が監視されるプロセッサエレメントである。第２のプロセッサエレメント３は、第１のプロセッサエレメント２により実行される監視対象のプロセスと同じ処理からなるプロセス（以下、監視プロセスと称する）を実行する。以下、監視対象のプロセスについて、監視対象プロセスと称することとする。
【００１３】
アクセス対象部５は、第１のプロセッサエレメント２が、監視対象プロセスを実行する際に第１のプロセッサエレメントによってアクセスされる。
【００１４】
バス機構４は、第１のプロセッサエレメント２とアクセス対象部５との間のアクセス経路上に設けられており、アクセス対象部５へのアクセスを制御する。ここで、バス機構４は、図１に示されるように、記憶部６と、要求部７と、比較部８とを有する。
【００１５】
記憶部６は、第１のプロセッサエレメント２が監視対象プロセスを実行した際に発生するアクセス対象部５に対するアクセスについてのバスアクセス情報を記憶する。記憶部６に記憶されるバスアクセス情報には、例えば、リードアクセスに対するアクセス先情報及びリードデータと、ライトアクセスに対するアクセス先情報及びライトデータが含まれる。
【００１６】
要求部７は、第１のプロセッサエレメント２による監視対象プロセスの実行の完了後に、第２のプロセッサエレメント３に対し、監視プロセスの実行を要求する。第２のプロセッサエレメント３は、要求部７からの要求があった後に、監視プロセスを実行する。第２のプロセッサエレメント３は、要求部７からの要求を受信後、空き時間に監視プロセスを実行する。第２のプロセッサエレメント３は、例えば、監視プロセスの実行以外の処理である所定の処理を行わない時間帯に、監視プロセスを実行する。この所定の処理は、監視プロセスの実行よりも高い優先度を有する処理であってもよい。第２のプロセッサエレメント３が、この所定の処理を行わない時間帯に監視プロセスを実行することで、所定の処理の実行を支障せずに済む。
【００１７】
比較部８は、記憶部６に記憶された第１のプロセッサエレメント２のアクセスについてのバスアクセス情報と、第２のプロセッサエレメント３が監視プロセスを実行した際に第２のプロセッサエレメントからバス機構４に入力されるバスアクセス情報とを比較する。両バスアクセス情報が一致する場合、第１のプロセッサエレメント２の動作が正常であることを意味する。これに対し、両バスアクセス情報が一致しない場合、第１のプロセッサエレメント２の動作が異常であることを意味する。このため、比較部８による比較処理により、第１のプロセッサエレメント２の動作を監視することができる。
【００１８】
マルチプロセッサシステム１によれば、上述の通り、要求部７は、第１のプロセッサエレメント２による監視対象プロセスの実行の完了後に、第２のプロセッサエレメント３に対し、監視プロセスの実行を要求する。そして、第２のプロセッサエレメント３は、自身の空き時間に監視プロセスを実行する。このため、第２のプロセッサエレメント３は、監視プロセスの実行以外のプロセスを実行することが可能である。言い換えると、第２のプロセッサエレメント３は、第１のプロセッサエレメント２の監視専用のプロセッサエレメントでなくてよい。よって、マルチプロセッサシステム１によれば、コストを抑制しつつ、プロセッサエレメントの監視を実現することができる。
【００１９】
なお、上述の説明では、動作が監視されるプロセッサエレメントは、第１のプロセッサエレメント２であったが、第２のプロセッサエレメント３も動作が監視されてもよい。この場合、第１のプロセッサエレメント２は、第２のプロセッサエレメント３により実行される監視対象プロセスと同じ処理内容からなる監視プロセスを実行する。また、この場合、第２のプロセッサエレメント３が監視対象プロセスを実行する際、アクセス対象部５は第２のプロセッサエレメントによってもアクセスされることとなる。このように、相互に監視が行われてもよい。
【００２０】
＜実施の形態の詳細＞
＜実施の形態１＞
次に、実施の形態の詳細について説明する。図２は、実施の形態１にかかるマルチプロセッサシステム１０の詳細な構成の一例を示すブロック図である。図２に示されるように、マルチプロセッサシステム１０は、ＰＥ１００、２００と、バス機構３００と、周辺ＩＰ（intellectual property）群４００とを有している。
【００２１】
ＰＥ１００、２００は、上述の第１のプロセッサエレメント２、第２のプロセッサエレメント３に対応したプロセッサエレメントである。ＰＥ１００、２００は、プロセッサコアなどと称され、プログラムを実行してデータ処理を行うことができる回路である。本実施の形態では、ＰＥ１００、２００は、周期的に所定の処理を実現するために、周期的に所定のプロセスを実行する。例えば、ＰＥ１００、２００は、周期Ｔの時間内で、所定のプロセスの実行を完了する。そして、ＰＥ１００、２００は、次のサイクルにおいても、周期Ｔの時間内で、所定のプロセスの実行を完了する。ＰＥ１００、２００は、これを繰り返す。ここで、各サイクルにおいて、ＰＥ１００、２００が、仮に、所定のプロセスの実行を時間ｔ１で完了できるとすると、周期Ｔのうち、時間ｔ２（＝Ｔ−ｔ１）は、空き時間となる。つまり、空き時間は、ＰＥ１００、２００における所定のプロセス及び監視プロセスの実行周期のうち、所定のプロセスが実行されない時間帯である。ＰＥ１００、２００は、この空き時間ｔ２において、互いを監視するための監視プロセスを実行する。すなわち、ＰＥ１００、２００は、周期的に、所定のプロセス及び監視プロセスを実行する。
【００２２】
より具体的には、ＰＥ１００、２００は、監視対象プロセス、監視プロセス、監視対象プロセスでも監視プロセスでもないプロセス（通常プロセスと呼ぶこととする）のいずれかを実行する。上述の所定のプロセスは、監視対象プロセスと通常プロセスとを含む。ただし、所定のプロセスの全てが監視対象である場合、所定のプロセスは通常プロセスを含まないこととなる。監視プロセスは、一方のＰＥが実行した監視対象プロセスを監視するために他方のＰＥにより実行されるプロセスであり、この監視対象プロセスと処理内容が同じプロセスである。
【００２３】
ＰＥ１００、２００は、監視対象プロセスの実行開始時及び実行終了時、並びに、監視プロセスの実行開始時及び実行終了時に、その旨をバス３０１を介してバス機構３００に通知する。バス機構３００は、監視対象プロセスの実行が開始されることの通知があった場合に、上述の記憶部６、要求部７、及び比較部８に相当するバス機構３００の各構成による処理を行う。このため、バス機構３００は、ＰＥ１００、２００が実行する全てのプロセスについて監視処理を行わずに済み、処理量を低減することができる。また、ＰＥ１００、２００は、割り込み処理の実行開始時及び実行終了時に、その旨を、バス３０２を介してバス機構３００に通知する。なお、本説明において、監視対象プロセスの実行開始時の通知は、監視対象プロセス開始通知と呼ばれ、監視対象プロセスの実行終了時の通知は、監視対象プロセス終了通知と呼ばれうる。また、本説明において、監視プロセスの実行開始時の通知は、監視プロセス開始通知と呼ばれ、監視プロセスの実行終了時の通知は、監視プロセス終了通知と呼ばれうる。さらに、本説明において、割り込み処理の実行開始時の通知は、割り込み発生通知と呼ばれ、割り込み処理の実行終了時の通知は、割り込み終了通知と呼ばれうる。
【００２４】
監視対象プロセス開始通知、監視対象プロセス終了通知、監視プロセス開始通知、及び監視プロセス終了通知は、バス機構３００の後述する監視制御部３２０に入力される。また、割り込み発生通知及び割り込み終了通知は、バス機構３００の後述する割り込み制御部３１０に入力される。
【００２５】
さらに、ＰＥ１００、２００は、監視対象プロセスの実行開始時に、監視有効範囲情報をバス３０１を介してバス機構３００に通知する。ここで、監視有効範囲情報とは、監視対象のアクセス範囲を示す情報である。周辺ＩＰ群４００に対して発生し得るアクセス範囲の全てについて監視する必要がない場合、ＰＥ１００、２００は、監視有効範囲情報を通知することにより、監視対象のアクセス範囲をバス機構３００に通知する。これにより、バス機構は、監視プロセスの実行に伴い発生する全てのアクセスではなく、監視が必要なアクセスのみについて監視処理を行なえばよい。このため、バス機構３００の処理量を低減することができる。
【００２６】
またさらに、ＰＥ１００、２００は、監視対象プロセスの実行開始時に、記憶領域情報をバス３０１を介してバス機構３００に通知する。ここで、記憶領域情報とは、監視対象プロセスの実行により発生するアクセスのうち、監視有効範囲に含まれるアクセスにより生じるバスアクセス情報の記憶に必要な記憶容量を示す情報である。
【００２７】
監視有効範囲情報、及び記憶領域情報も、バス機構３００の後述する監視制御部３２０に入力される。
【００２８】
周辺ＩＰ群４００は、上述のアクセス対象部５に対応しており、ＰＥ１００、２００によりアクセスされる回路である。例えば、周辺ＩＰ群４００には、メモリなどの記憶装置、ＡＤ変換器、タイマ回路などが含まれるが、これらに限らず、ＰＥ１００、２００によるリードアクセス又はライトアクセスの対象となる回路であればよい。また、周辺ＩＰ群４００は、必ずしも複数のアクセス対象部を有していなくてもよく、１つのアクセス対象部のみを有していてもよい。周辺ＩＰ群４００は、バス機構３００を介して、ＰＥ１００、２００からアクセスされる。
【００２９】
バス機構３００は、上述のバス機構４に対応しており、ＰＥ１００、２００と周辺ＩＰ群４００との間のアクセス経路上に設けられている。バス機構３００は、ＰＥ１００、２００からの周辺ＩＰ群４００へのアクセスを制御する。バス機構３００は、バス３０１、３０２、制御部３０３、記憶部３０４及び比較判定部３０５を有する。
【００３０】
バス３０１は、ＰＥ１００、２００が周辺ＩＰ群４００にアクセスする際のバスアクセス情報を伝送するための伝送路である。また、バス３０２は、ＰＥ１００、２００に発生した割り込み処理についての割り込み情報を伝送するための伝送路である。
【００３１】
制御部３０３は、ＰＥ１００、２００の周辺ＩＰ群４００へのアクセスの制御、及びＰＥ１００、２００の監視制御を含む制御を行う制御回路である。記憶部３０４は、上述の記憶部６と対応しており、監視対象のＰＥ１００、２００が監視対象プロセスを実行した際に発生する周辺ＩＰ群４００に対するアクセスについてのバスアクセス情報を記憶する記憶装置である。比較判定部３０５は、上述の比較部８に対応しており、ＰＥ１００、２００のうち一方のＰＥが監視対象プロセスを実行した際のバスアクセス情報と、他方のＰＥが監視プロセスを実行した際のバスアクセス情報とを比較し、ＰＥ１００、２００に異常が発生していないか否かを判定する回路である。なお、制御部３０３、記憶部３０４、比較判定部３０５の詳細な構成については、後述する。
【００３２】
ここで、本実施の形態における監視方法について理解を助けるために、図３を参照し、本実施の形態における監視の具体例について説明する。図３は、記憶部３０４の後述する記憶領域におけるデータの格納例について示す模式図である。なお、以下の説明においては、ＰＥ１００が監視対象のＰＥであり（すなわち、ＰＥ１００が監視対象プロセスを実行するＰＥであり）、ＰＥ２００がＰＥ１００を監視するための監視プロセスを実行するＰＥであるものとする。
【００３３】
図３では、具体的には、ＰＥ１００による監視対象プロセスの実行の際にバスアクセス情報が記憶される記憶領域である記憶領域３６２について示している。本実施の形態では、監視対象プロセス毎にＩＤが割り当てられている。記憶領域３６２においては、ＩＤ毎の領域が確保される。図３において、ＩＤｎ＿Ｓｔａｒｔは、ＩＤの値がＩＤｎ（ただし、ｎ＝１，２，３，・・・）である監視対象プロセスのために確保された領域の先頭アドレスである。また、ＩＤｎ＿Ｅｎｄは、ＩＤの値がＩＤｎである監視対象プロセスのために確保された領域の最終アドレスである。また、Ｐ１は、ＩＤｎ＿Ｓｔａｒｔを示すポインタであり、Ｐ２は、ＰＥ１００が監視対象プロセスを実行する際のバスアクセス情報の格納先を示すポインタ、又はＰＥ２００が監視プロセスを実行する際のバスアクセス情報の参照先を示すポインタである。ポインタＰ２は、ポインタＰ１に対する相対アドレスであり、ＰＥ１００による監視対象プロセスの実行が完了した際、及びＰＥ２００による監視プロセスの実行が完了した際に、０に初期化される。
【００３４】
図３に示されるように、ＰＥ１００による監視対象プロセスの実行の際にリードアクセスが発生した場合、記憶領域３６２にはバスアクセス情報としてリードアドレス及びリードデータが格納される。同様に、ＰＥ１００による監視対象プロセスの実行の際にライトアクセスが発生した場合、記憶領域３６２にはバスアクセス情報としてライトアドレス及びライトデータが格納される。
【００３５】
具体的には、ＰＥ１００による監視対象プロセスの実行の際にリードアクセスが発生した場合、次のような手順で、バス機構３００は処理を行う。まず、バス機構３００は、ＰＥ１００から要求されたリードアドレスを、ポインタＰ１及びポインタＰ２で特定される格納先に格納する。次に、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されたリードアドレスデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。リードアドレスデータのデータ量に相当するアドレス値は、所定の値であってもよい。次に、バス機構３００は、リードアドレスに基づいて周辺ＩＰ群４００から取得したリードデータを、更新されたポインタＰ２で特定される格納先に格納する。そして、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されたリードデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。リードデータのデータ量に相当するアドレス値は、所定の値であってもよい。そして、バス機構３００は、ＰＥ１００にリードデータを送信する。バス機構３００は、監視対象プロセスの実行に伴うリードアクセスが発生する度に、以上の処理を行う。
【００３６】
また、ＰＥ１００による監視対象プロセスの実行の際にライトアクセスが発生した場合、次のような手順で、バス機構３００は処理を行う。まず、バス機構３００は、ＰＥ１００から要求されたライトアドレスを、ポインタＰ１及びポインタＰ２で特定される格納先に格納する。次に、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されたライトアドレスデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。ライトアドレスデータのデータ量に相当するアドレス値は、所定の値であってもよい。次に、バス機構３００は、ＰＥ１００から要求されたライトデータを、更新されたポインタＰ２で特定される格納先に格納する。そして、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されたライトデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。ライトデータのデータ量に相当するアドレス値は、所定の値であってもよい。そして、バス機構３００は、ライトアドレスにより特定される周辺ＩＰ群４００に対し、ライトデータを書き込む。バス機構３００は、監視対象プロセスの実行に伴うライトアクセスが発生する度に、以上の処理を行う。
【００３７】
バス機構３００は、ＰＥ１００による監視対象プロセスの実行が全て完了すると、ＰＥ２００に対し、監視プロセスの実行を要求する。ここで、ＰＥ２００による監視プロセスの実行に際して、周辺ＩＰ群４００に対するアクセスが生じた場合、バス機構３００は以下に示すように動作する。
【００３８】
ＰＥ２００による監視プロセスの実行の際にリードアクセスが発生した場合、次のような手順で、バス機構３００は処理を行う。まず、バス機構３００は、ＰＥ２００から要求されたリードアドレスと、ポインタＰ１及びポインタＰ２で特定される格納先に格納されているリードアドレスとを比較する。次に、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されているリードアドレスデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。次に、バス機構３００は、ポインタＰ１及びポインタＰ２で特定される格納先に格納されているリードデータをＰＥ２００に送信する。そして、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されているリードデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。バス機構３００は、監視プロセスの実行に伴うリードアクセスが発生する度に、以上の処理を行う。
【００３９】
また、ＰＥ２００による監視プロセスの実行の際にライトアクセスが発生した場合、次のような手順で、バス機構３００は処理を行う。まず、バス機構３００は、ＰＥ２００から要求されたライトアドレスと、ポインタＰ１及びポインタＰ２で特定される格納先に格納されているライトアドレスとを比較する。次に、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されているライトアドレスデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。次に、バス機構３００は、ＰＥ２００から要求されたライトデータと、ポインタＰ１及びポインタＰ２で特定される格納先に格納されているライトデータとを比較する。そして、バス機構３００は、ポインタＰ２の値を更新する。すなわち、バス機構３００は、格納されているライトデータのデータ量に相当するアドレス値を加算することにより、ポインタＰ２を更新する。バス機構３００は、監視プロセスの実行に伴うライトアクセスが発生する度に、以上の処理を行う。
【００４０】
上記の説明の通り、バス機構３００は、監視対象プロセスの実行に伴うリードアクセスについては、リードアドレスのみを確認し、ＰＥ１００、２００の異常の有無を判定する。また、バス機構３００は、監視対象プロセスの実行に伴うライトアクセスについては、ライトアドレス及びライトデータを確認し、ＰＥ１００、２００の異常の有無を判定する。
【００４１】
次に、バス機構３００の具体的な構成例について説明する。なお、以下の説明では、監視対象のＰＥを監視対象ＰＥと称し、監視対象ＰＥの監視のために、監視対象ＰＥが実行した監視対象プロセスと同じ処理内容の監視プロセスを実行するＰＥを監視処理実行ＰＥと称する。例えば、ＰＥ１００が、監視対象ＰＥであり、ＰＥ２００が監視処理実行ＰＥとして振る舞うが、逆であってもよい。
＜制御部３０３＞
図２に示されるように、制御部３０３は、割り込み制御部３１０、監視制御部３２０、監視関連情報制御部３３０、バスアクセス情報制御部３４０、及び判定制御部３５０を有する。また、監視関連情報制御部３３０は、ＩＤ制御部３３１、ポインタ制御部３３２、監視有効範囲判断部３３３、及び記憶領域情報制御部３３４を有する。以下にそれぞれの構成について説明を記載する。
【００４２】
＜割り込み制御部３１０＞
割り込み制御部３１０は、監視制御部３２０に対し、ＰＥ１００、２００に生じた割り込みに応じた監視処理の制御を要求する制御回路である。割り込み制御部３１０は、具体的には、次の動作を行う。
【００４３】
割り込み制御部３１０は、ＰＥ１００、２００からの割り込み発生通知を受け、監視制御部３２０に、実行中の監視処理の中断を要求する。また、割り込み制御部３１０は、ＰＥ１００、２００からの割り込み終了通知を受け、監視制御部３２０に、中断されていた監視処理の再開を要求する。
【００４４】
＜監視制御部３２０＞
監視制御部３２０は、バス機構３００における監視処理を制御する制御回路である。監視制御部３２０は、具体的には、次の動作を行う。
【００４５】
監視制御部３２０は、監視対象ＰＥから、監視対象プロセス開始通知を受信すると、監視関連情報制御部３３０に対して、ＩＤ及びポインタの設定を要求する。また、監視制御部３２０は、監視対象プロセス開始通知とともに受信した、監視有効範囲情報及び記憶領域情報を監視関連情報制御部３３０に出力する。また、監視制御部３２０は、監視対象ＰＥから監視対象プロセス開始通知を受けると、その旨をバスアクセス情報制御部３４０に通知し、以後、監視対象プロセス終了通知を受信するまで、又は割り込み制御部３１０からの監視処理の中断要求を受信するまで、監視対象ＰＥからのバスアクセス情報を監視対象プロセスとしてバスアクセス情報制御部３４０に出力する。
【００４６】
監視制御部３２０は、監視対象ＰＥからの監視対象プロセス終了通知を受信すると、監視処理実行ＰＥに対して、監視プロセスの実行を要求する。すなわち、監視制御部３２０は、上述の要求部７と対応している。また、監視制御部３２０は、監視対象ＰＥからの監視対象プロセス終了通知を受信すると、その旨をバスアクセス情報制御部３４０に通知し、以降、監視対象ＰＥからの監視対象プロセス開始通知を受信するまで、監視対象ＰＥからのバスアクセス情報を通常プロセスとしてバスアクセス情報制御部３４０に出力する。
【００４７】
監視制御部３２０は、監視処理実行ＰＥからの監視プロセス開始通知を受けると、バスアクセス情報制御部３４０に対して、監視処理実行ＰＥから周辺ＩＰ群４００へのアクセスの禁止を要求する。また、監視制御部３２０は、監視処理実行ＰＥからの監視プロセス開始通知を受信すると、その旨をバスアクセス情報制御部３４０に通知し、以後、監視処理実行ＰＥからのバスアクセス情報を監視プロセスとしてバスアクセス情報制御部３４０に出力する。
【００４８】
監視制御部３２０は、監視処理実行ＰＥからの監視プロセス終了通知を受けると、バスアクセス情報制御部３４０に対して、監視処理実行ＰＥから周辺ＩＰ群４００へのアクセスの許可を要求する。また、監視制御部３２０は、監視処理実行ＰＥからの監視プロセス終了通知を受信すると、その旨をバスアクセス情報制御部３４０に通知し、以後、監視処理実行ＰＥからのバスアクセス情報を通常プロセスとしてバスアクセス情報制御部３４０に出力する。さらに、監視制御部３２０は、監視処理実行ＰＥからの監視プロセス終了通知を受けると、監視関連情報制御部３３０に対して、ＩＤのリセット、ポインタのリセット、監視有効範囲情報のリセット、及び確保された記憶領域の解放を要求する。
【００４９】
監視制御部３２０は、監視対象プロセスが実行されている際に、割り込み制御部３１０からの中断要求を受けると、監視関連情報制御部３３０に対して、ＩＤ、ポインタ及び監視有効範囲情報の退避を要求する。
【００５０】
監視制御部３２０は、監視プロセスが実行されている際に、割り込み制御部３１０からの中断要求を受けると、バスアクセス情報制御部３４０に対して、監視処理実行ＰＥから周辺ＩＰ群４００へのアクセスの許可を要求する。
【００５１】
監視制御部３２０は、監視対象プロセスについての監視処理の再開要求を割り込み制御部３１０から受けると、監視関連情報制御部３３０に対して、ＩＤ、ポインタ及び監視有効範囲情報の復帰を要求する。そして、監視制御部３２０は、この再開要求を受信すると、その旨をバスアクセス情報制御部３４０に通知し、以後、監視対象プロセス終了通知を受信するまで、又は、割り込み制御部３１０からの中断要求を受信するまで、監視対象ＰＥからのバスアクセス情報を監視対象プロセスとしてバスアクセス情報制御部３４０に出力する。
【００５２】
監視制御部３２０は、監視プロセスについての監視処理の再開要求を割り込み制御部３１０から受けると、バスアクセス情報制御部３４０に対して、監視処理実行ＰＥから周辺ＩＰ群４００へのアクセスの禁止を要求する。また、監視制御部３２０は、割り込み制御部３１０からこの再開要求を受けると、その旨をバスアクセス情報制御部３４０に通知し、以後、監視処理実行ＰＥからのバスアクセス情報を監視プロセスとしてバスアクセス情報制御部３４０に出力する。
【００５３】
＜ＩＤ制御部３３１＞
ＩＤ制御部３３１は、監視対象プロセス毎に割り振られるＩＤを管理する制御回路である。ＩＤ制御部３３１は、具体的には、次の動作を行う。
【００５４】
ＩＤ制御部３３１は、監視制御部３２０からのＩＤの設定要求、退避要求、及び復帰要求を受信する。ＩＤ制御部３３１は、監視制御部３２０からのＩＤの設定要求を受信すると、監視対象プロセスに対し固有のＩＤを割り当てる。そして、ＩＤ制御部３３１は、現在の実行対象のＩＤを格納するためのレジスタである、ＩＤ制御部３３１に設けられた図示しない管理用レジスタに、割り当てたＩＤを格納する。また、これととともに、ＩＤ制御部３３１は、記憶部３０４に対し、監視対象プロセスとＩＤとを対応付けて記憶するよう要求する。また、ＩＤ制御部３３１は、監視制御部３２０からのＩＤの退避要求を受けると、管理用レジスタに格納されているＩＤを、ＩＤ制御部３３１に設けられた図示しない退避用レジスタに格納する。また、ＩＤ制御部３３１は、監視制御部３２０からのＩＤの復帰要求を受けると、退避用レジスタに格納されているＩＤを、管理用レジスタに復帰させる。また、ＩＤ制御部３３１は、監視制御部３２０からのＩＤのリセット要求を受けると、管理用レジスタをリセットする。
【００５５】
＜ポインタ制御部３３２＞
ポインタ制御部３３２は、上述のポインタＰ１及びポインタＰ２を管理する制御回路である。ポインタ制御部３３２は、具体的には、次の動作を行う。
【００５６】
ポインタ制御部３３２は、監視制御部３２０からのポインタの設定要求、退避要求、復帰要求、及びリセット要求を受信する。ポインタ制御部３３２は、監視制御部３２０からのポインタの設定要求を受信すると、上述のポインタＰ１及びポインタＰ２の初期設定を行う。ポインタ制御部３３２は、初期設定されたポインタＰ１の参照値について、記憶部３０４にＩＤと対応付けて記憶するよう要求し、初期設定されたポインタＰ２の参照値についてポインタ制御部３３２に設けられた図示しない管理用レジスタに格納する。なお、本実施の形態では、ポインタＰ１について、記憶部３０４に格納しているが、ポインタＰ２と同様、ポインタ制御部３３２に設けられたレジスタ等において管理してもよい。また、ポインタ制御部３３２は、監視制御部３２０からのポインタの退避要求を受けると、管理用レジスタに格納されているポインタの参照値を、ポインタ制御部３３２に設けられた図示しない退避用レジスタに格納する。また、ポインタ制御部３３２は、監視制御部３２０からのポインタの復帰要求を受けると、退避用レジスタに格納されているポインタの参照値を、管理用レジスタに復帰させる。また、ポインタ制御部３３２は、監視制御部３２０からのポインタのリセット要求を受けると、管理用レジスタをリセットする。さらに、ポインタ制御部３３２は、バスアクセス情報制御部３４０からのポインタ参照値の更新要求を受け、管理用レジスタに格納されているポインタＰ２の参照値を更新する。
【００５７】
＜監視有効範囲判断部３３３＞
監視有効範囲情報を設定するための制御回路である。監視有効範囲判断部３３３は、具体的には、次の動作を行う。
【００５８】
監視有効範囲判断部３３３は、監視制御部からの監視有効範囲情報を受信する。また、監視有効範囲判断部３３３は、監視制御部からの監視有効範囲情報の退避要求、復帰要求、及びリセット要求を受信する。監視有効範囲判断部３３３は、監視制御部３２０からの監視有効範囲情報を受信すると、監視有効範囲情報を、監視有効範囲判断部３３３に設けられた図示しない管理用レジスタに格納する。また、監視有効範囲判断部３３３は、監視制御部３２０からの監視有効範囲情報の退避要求を受信すると、管理用レジスタに格納されている監視有効範囲情報を、監視有効範囲判断部３３３に設けられた図示しない退避用レジスタに格納する。また、監視有効範囲判断部３３３は、監視制御部３２０からの監視有効範囲情報の復帰要求を受けると、退避用レジスタに格納されている監視有効範囲情報を、管理用レジスタに復帰させる。また、監視有効範囲判断部３３３は、監視制御部３２０からの監視有効範囲情報のリセット要求を受けると、ＩＤ制御部３３１に設定されているＩＤに対応する監視有効範囲情報をリセットする。具体的には、監視有効範囲判断部３３３は、管理用レジスタをリセットする。
【００５９】
＜記憶領域情報制御部３３４＞
記憶領域情報制御部３３４は、記憶領域情報に基づいて、記憶部３０４に記憶領域の確保を要求する制御回路である。記憶領域情報制御部３３４は、具体的には、次の動作を行う。
【００６０】
記憶領域情報制御部３３４は、監視制御部３２０からの記憶領域情報を受信する。また、記憶領域情報制御部３３４は、監視制御部３２０から、記憶領域の解放を要求する信号を受信する。記憶領域情報制御部３３４は、監視制御部３２０からの記憶領域情報を受信すると、記憶部３０４の記憶制御部３６１に対して、監視対象ＰＥ用の記憶領域として、記憶領域情報で示される記憶容量分の領域を確保することを要求する。また、記憶領域情報制御部３３４は、監視制御部３２０からの記憶領域の解放要求を受けると、記憶部３０４の記憶制御部３６１に対して監視対象ＰＥ用の記憶領域の解放を要求する。
【００６１】
＜バスアクセス情報制御部３４０＞
バスアクセス情報制御部３４０は、ＰＥ１００、２００からのバスアクセス情報を制御する制御回路である。バスアクセス情報制御部３４０は、具体的には、次の動作を行う。
【００６２】
バスアクセス情報制御部３４０は、監視制御部３２０から、監視対象プロセスによるバスアクセスとしてバスアクセス情報を受信した場合、監視有効範囲判断部３３３に設定された情報を確認する。バスアクセス情報制御部３４０は、受信したバスアクセス情報で示されるアクセス先が、監視有効範囲内であるか否かを判定する。アクセス先が監視有効範囲内である場合、バスアクセス情報制御部３４０は、ＩＤ制御部３３１に設定されているＩＤに対応した記憶領域に、バスアクセス情報を格納するよう記憶部３０４に要求するとともに、バスアクセス情報に従って周辺ＩＰ群４００にアクセスする。アクセス先が監視有効範囲外である場合、バスアクセス情報制御部３４０は、バスアクセス情報の格納を記憶部３０４に要求することなく、周辺ＩＰ群４００にアクセスする。
【００６３】
監視プロセスによるリードアクセスとして、バスアクセス情報を監視制御部３２０から受信した場合、バスアクセス情報制御部３４０は、以下の動作を実施する。バスアクセス情報制御部３４０は、ポインタ制御部３３２に対して、ポインタＰ２のポインタ参照値の更新を要求する。また、バスアクセス情報制御部３４０は、記憶部３０４に対して、ＩＤ制御部３３１に設定されているＩＤとポインタ制御部３３２に設定されているポインタ参照値とに対応するバスアクセス情報（具体的には、リードデータ）の取得を要求する。さらに、バスアクセス情報制御部３４０は、判定制御部３５０に対して、ＩＤ制御部３３１に設定されているＩＤとポインタ制御部３３２に設定されているポインタ参照値とに対応するバスアクセス情報（具体的には、リードアドレス）の比較を要求する。また、バスアクセス情報制御部３４０は、監視処理実行ＰＥからのバスアクセス情報（具体的には、リードアドレス）を、比較器３７１に出力する。バスアクセス情報制御部３４０は、記憶部３０４からリードデータを取得したら、監視制御部３２０を介して監視処理実行ＰＥに対し、リードデータを出力する。なお、リードアドレスとは、読み出し先のアドレスであり、リードデータとは、読み出されたデータである。
【００６４】
また、監視プロセスによるライトアクセスとして、バスアクセス情報を監視制御部３２０から受信した場合、バスアクセス情報制御部３４０は、以下の動作を実施する。バスアクセス情報制御部３４０は、ポインタ制御部３３２に対して、ポインタＰ２のポインタ参照値の更新を要求する。さらに、バスアクセス情報制御部３４０は、判定制御部３５０に対して、ＩＤ制御部３３１に設定されているＩＤとポインタ制御部３３２に設定されているポインタ参照値とに対応するバスアクセス情報（具体的には、ライトアドレス及びライトデータ）の比較を要求する。また、バスアクセス情報制御部３４０は、監視処理実行ＰＥからのバスアクセス情報（具体的には、ライトアドレス及びライトデータ）を、比較器３７１に出力する。なお、ライトアドレスとは、書き込み先のアドレスであり、ライトデータとは、書き込まれるデータである。
【００６５】
＜判定制御部３５０＞
判定制御部３５０は、監視対象プロセスによるアクセスについてのバスアクセス情報と、監視プロセスによるアクセスについてのバスアクセス情報とに基づく、監視対象ＰＥの動作の判定を制御する制御回路である。判定制御部３５０は、具体的には、次の動作を行う。
【００６６】
判定制御部３５０は、バスアクセス情報制御部３４０からバスアクセス情報の比較要求を受けると、記憶部３０４に対して、要求されているＩＤ及びポインタに対応する、監視対象プロセスについてのバスアクセス情報を比較判定部３０５に出力するよう要求する。また、判定制御部３５０は、比較判定部３０５から比較結果を受信する。判定制御部３５０は、比較結果がバスアクセス情報の一致を示す場合、次の比較要求を受信するまで待機し、比較結果がバスアクセス情報の不一致を示す場合、予め定められたエラー処理を実施する。このエラー処理は、例えば、監視対象ＰＥ及び監視処理実行ＰＥに対して所定の割り込み処理を要求するものであってもよいし、監視対象ＰＥ及び監視処理実行ＰＥのリセット処理を要求するものであってもよい。なお、判定制御部３５０は、エラー処理部と称されることがある。このように、エラー処理が実行されることにより、プロセッサエレメントの異常に起因するシステムの被害を低減することができる。
【００６７】
＜記憶部３０４＞
記憶部３０４は、図２に示されるように、記憶制御部３６１及び記憶領域３６２、３６３を有する記憶装置である。以下に各構成の説明を記載する。
【００６８】
＜記憶制御部３６１＞
記憶制御部３６１は、記憶部３０４の動作を制御する制御回路である。記憶制御部３６１は、具体的には、次の動作を行う。
【００６９】
記憶制御部３６１は、ＩＤ制御部３３１及びポインタ制御部３３２からの要求に応じて、記憶領域３６２、３６３のうち監視対象ＰＥ用の記憶領域に対し、ＩＤ及びポインタ参照値を格納するよう要求する。
【００７０】
また、記憶制御部３６１は、記憶領域情報制御部３３４からの記憶領域の確保要求を受信すると、記憶領域３６２、３６３のうち監視対象ＰＥ用の記憶領域において、記憶領域情報で示される記憶容量分の領域を確保するよう制御する。記憶制御部３６１は、記憶領域情報制御部３３４からの記憶領域の解放要求を受信すると、確保されていた記憶領域を解放するよう制御する。
【００７１】
記憶制御部３６１は、バスアクセス情報制御部３４０からの要求に応じて、監視対象プロセスによるバスアクセスについてのバスアクセス情報を、この監視対象プロセスについてのＩＤと対応付けられて確保されている領域に、格納するよう制御する。また、記憶制御部３６１は、バスアクセス情報制御部３４０からの要求に応じて、監視プロセスによるリードアクセスに対する応答としてのリードデータを記憶領域から取得して、バスアクセス情報制御部３４０に出力する。その際、具体的には、記憶制御部３６１は、監視対象ＰＥ用の記憶領域（すなわち、記憶領域３６２又は３６３のいずれか）に対して、ＩＤ及びポインタ参照値により特定される格納先に格納されているリードデータを引き渡すよう要求し、これにより取得したリードデータを、バスアクセス情報制御部３４０に出力する。
【００７２】
また、記憶制御部３６１は、判定制御部３５０からの要求に応じて、監視対象ＰＥ用の記憶領域（すなわち、記憶領域３６２又は３６３のいずれか）に対し、ＩＤ及びポインタ参照値により特定される格納先に格納されている、監視対象プロセスについてのバスアクセス情報を、比較判定部３０５に引き渡すよう要求する。
【００７３】
＜記憶領域３６２、３６３＞
記憶領域３６２、３６３は、例えばメモリであり、記憶領域３６２は、ＰＥ１００用の記憶領域であり、記憶領域３６３は、ＰＥ２００用の記憶領域である。ここで、記憶領域３６２には、ＰＥ１００が監視対象ＰＥである場合に生成されるＩＤ及びポインタ、並びに、ＰＥ１００による監視対象プロセスの実行に伴うバスアクセス情報が、記憶される。同様に、記憶領域３６３には、ＰＥ２００が監視対象ＰＥである場合に生成されるＩＤ及びポインタ、並びに、ＰＥ２００による監視対象プロセスの実行に伴うバスアクセス情報が、記憶される。
【００７４】
すなわち、記憶領域３６２は、記憶制御部３６１からの要求により、監視対象ＰＥとしてのＰＥ１００が実行する監視対象プロセスについてのＩＤを記憶する。同様に、記憶領域３６３は、記憶制御部３６１からの要求により、監視対象ＰＥとしてのＰＥ２００が実行する監視対象プロセスについてのＩＤを記憶する。また、記憶領域３６２は、記憶制御部３６１からの要求により、監視対象ＰＥとしてのＰＥ１００が実行する監視対象プロセスについてのポインタＰ１の参照値を記憶する。同様に、記憶領域３６３は、記憶制御部３６１からの要求により、監視対象ＰＥとしてのＰＥ２００が実行する監視対象プロセスについてのポインタＰ１の参照値を記憶する。また、記憶領域３６２は、記憶制御部３６１からの要求により、ＩＤ及びポインタ参照値により特定される格納先に、ＰＥ１００による監視対象プロセスの実行により発生したバスアクセス情報を記憶する。同様に、記憶領域３６３は、記憶制御部３６１からの要求により、ＩＤ及びポインタ参照値により特定される格納先に、ＰＥ２００による監視対象プロセスの実行により発生したバスアクセス情報を記憶する。また、記憶領域３６２、３６３は、記憶制御部３６１からの要求により、ＩＤ及びポインタ参照値により特定される格納先に格納されているリードデータを記憶制御部３６１に引き渡す。さらに、記憶領域３６２、３６３は、記憶制御部３６１からの要求により、ＩＤ及びポインタ参照値により特定される格納先に格納されているバスアクセス情報を、比較判定部３０５に引き渡す。
【００７５】
＜比較判定部３０５＞
比較判定部３０５は、図２に示されるように、比較器３７１及び比較結果通知部３７２を有する制御回路である。以下に各構成の説明を記載する。
【００７６】
＜比較器３７１＞
比較器３７１は、記憶部３０４から出力された、監視対象プロセスについてのバスアクセス情報と、バスアクセス情報制御部３４０から出力された、監視プロセスについてのバスアクセス情報とを比較し、比較結果を比較結果通知部３７２に出力する。ここで、比較器３７１は、比較されるバスアクセス情報がリードアクセスについてのバスアクセス情報である場合、リードアドレスについて比較を行い、比較されるバスアクセス情報がライトアクセスについてのバスアクセス情報である場合、ライトアドレス及びライトデータについて比較を行う。
【００７７】
＜比較結果通知部３７２＞
比較結果通知部３７２は、比較器３７１から出力された比較結果を判定制御部３５０に通知する制御回路である。
【００７８】
＜マルチプロセッサシステム１０の動作例＞
次に、マルチプロセッサシステム１０の動作例について説明する。まず、割り込みが発生しない場合の動作例について説明する。
【００７９】
＜動作例１＞
図４Ａ、図４Ｂは、実施の形態１にかかるマルチプロセッサシステム１０において割り込みが発生しない場合の動作例を示すフローチャートである。以下、図４Ａ、図４Ｂに示されるフローチャートに沿って、マルチプロセッサシステム１０の動作例について説明する。
【００８０】
ステップ１００（Ｓ１００）において、ＰＥ１００は、通常プロセスを実行しているものとする。同様に、ステップ２００（Ｓ２００）において、ＰＥ２００も通常プロセスを実行しているものとする。このとき、バス機構３００は、通常のバスアクセスを実施している（ステップ３００（Ｓ３００））。すなわち、バス機構３００は、ＰＥ１００又はＰＥ２００からの周辺ＩＰ群４００に対するアクセス要求に対し、周辺ＩＰ群４００に対する書き込み処理又は読み出し処理を行うものの、監視のための処理は行わない。
【００８１】
ここで、ＰＥ１００が監視対象プロセスを実行するものとすると、ステップ１０１（Ｓ１０１）において、ＰＥ１００は、バス機構３００に対し、監視対象プロセス開始通知、監視有効範囲情報、及び記憶領域情報を出力する。
【００８２】
これに対し、ステップ３０１（Ｓ３０１）において、バス機構３００は、監視処理のための初期設定を実施する。具体的には、バス機構３００は、次のような処理を行う。バス機構３００は、監視対象プロセスにより生じるバスアクセス情報を記憶するための領域を、記憶領域情報に基づいて記憶領域３６２に確保する。また、バス機構３００は、監視対象プロセスに対してＩＤを設定し、これを記憶する。さらに、バス機構３００は、このＩＤに対応するポインタを設定し、これを記憶する。また、バス機構３００は、監視有効範囲情報を記憶する。本ステップ以降、バス機構３００は、ＰＥ１００からのアクセスを監視対象プロセスにより生じたアクセスとして取り扱うこととなる。
【００８３】
なお、本実施の形態では、記憶領域情報に基づいて、領域の確保が行われるが、必ずしも記憶領域情報がバス機構３００に入力されなくてもよい。この場合、バス機構３００は、例えば、予め定められた十分な領域を確保すればよい。
【００８４】
ステップ１０２（Ｓ１０２）において、ＰＥ１００は、監視対象プロセスを実行する。例えば、ＰＥ１００は、周辺ＩＰ群４００に対するリードアクセスをバス機構３００に要求し、リードデータに基づいて演算を行い、演算結果を周辺ＩＰ群４００に書き込むためのライトアクセスをバス機構３００に要求する。
【００８５】
バス機構３００では、ＰＥ１００からのアクセス要求を処理する（ステップ３０２（Ｓ３０２））。具体的には、バス機構３００は、ＰＥ１００からのリードアクセス要求に対し、周辺ＩＰ群４００からのリードデータを、ＰＥ１００に出力する。また、バス機構３００は、ＰＥ１００からのライトアクセス要求に対し、ライトデータを周辺ＩＰ群４００に書き込む。
【００８６】
バス機構３００は、ＰＥ１００からのアクセス要求があった場合、すなわちＰＥ１００からのバスアクセス情報を受信した場合、アクセス先が監視有効範囲内であるか否かを判定する（ステップ３０３（Ｓ３０３））。
【００８７】
アクセス先が監視有効範囲内である場合、ステップ３０４（Ｓ３０４）において、バス機構３００は、バスアクセス情報をステップ３０１で確保した領域に記憶する。すなわち、バス機構３００は、リードアクセスに対して、リードアドレス及びリードデータを記憶し、ライトアクセスに対して、ライトアドレス及びライトデータを記憶する。このようにバス機構３００の記憶部３０４は、監視対象として通知されたアクセス範囲に含まれるアクセスについてのバスアクセス情報を記憶する。
【００８８】
ＰＥ１００においては、監視対象プロセスの実行が完了するまで、ステップ１０２が繰り返される（ステップ１０３（Ｓ１０３）でＮｏ）。ＰＥ１００は、監視対象プロセスの実行が完了すると（ステップ１０３でＹｅｓ）、バス機構３００に対し、監視対象プロセス終了通知を出力する（ステップ１０４（Ｓ１０４））。その後、ＰＥ１００は、通常プロセスを実行する（ステップ１０５（Ｓ１０５））。
【００８９】
ステップ３０５（Ｓ３０５）において、バス機構３００は、ＰＥ１００から監視対象プロセス終了通知を受信すると、ＰＥ２００に対し、監視プロセスの実行を要求する。これ対し、ＰＥ２００は、空き時間が生じると、監視プロセスを実行することとなる。なお、バス機構３００は、ＰＥ２００に対し監視プロセスの実行を要求する際、実行すべき監視プロセスを特定するための情報をＰＥ２００に通知してもよい。バス機構３００が、実行すべき監視プロセスを特定するための情報をＰＥ２００に通知しない場合、ＰＥ２００は、例えば所定の監視プロセスを実行する。
【００９０】
ステップ２０１（Ｓ２０１）において、ＰＥ２００は、監視プロセスの実行開始にあたり、バス機構３００に対して、監視プロセス開始通知を出力する。
【００９１】
ステップ３０６（Ｓ３０６）において、ＰＥ２００から監視プロセス開始通知を受信したバス機構３００は、ＰＥ２００による周辺ＩＰ群４００に対するアクセスを禁止する。以降、ＰＥ２００における監視プロセスの実行に伴う周辺ＩＰ群４００に対するアクセス要求に対し、周辺ＩＰ群４００に対する実際のアクセスは行われなくなる。このように、実際のアクセスが禁止されるため、監視プロセスの実行によって周辺ＩＰ群のデータが書き換えられてしまうことを防ぐことができる。
【００９２】
ステップ２０２（Ｓ２０２）において、ＰＥ２００は、監視プロセスを実行する。例えば、ＰＥ２００は、周辺ＩＰ群４００に対するリードアクセスをバス機構３００に要求し、リードデータに基づいて演算を行い、演算結果を周辺ＩＰ群４００に書き込むためのライトアクセスをバス機構３００に要求する。このとき、ＰＥ２００からのライトアクセス要求があっても、周辺ＩＰ群４００への書き込み処理は行われない。また、ＰＥ２００からのリードアクセス要求があっても、周辺ＩＰ群４００からの読み込み処理は行われず、記憶領域３６２に記憶されたリードデータがＰＥ２００に渡されることとなる。これについて、別の言い方をすると、バス機構３００は、ＰＥ２００が監視プロセスを実行している間、ＰＥ２００による周辺ＩＰ群４００へのリードアクセス要求に対し、記憶部３０４に記憶されたＰＥ１００によるリードデータをＰＥ２００に出力し、ＰＥ２００による周辺ＩＰ群４００へのライトアクセス要求に対し、周辺ＩＰ群４００へのライトアクセスを行わない。
【００９３】
ステップ３０７（Ｓ３０７）において、バス機構３００は、バスアクセス情報の比較を行う。具体的には、バス機構３００は、ＰＥ２００からのアクセス要求のバスアクセス情報と、ステップ３０４で記憶されたＰＥ１００からのアクセス要求のバスアクセス情報とを比較する。このとき、アクセス先が監視有効範囲内であるアクセス要求のバスアクセス情報について、比較が行われる。すなわち、バス機構３００の比較器３７１は、監視対象として通知されたアクセス範囲に含まれるアクセスについてのバスアクセス情報について比較する。
【００９４】
バス機構３００の比較器３７１は、リードアクセスについてのバスアクセス情報の比較として、記憶部３０４に記憶されたＰＥ１００リードアドレスと、ＰＥ２００が監視プロセスを実行した際にＰＥ２００から入力されるリードアドレスを比較する。これにより、リードアクセスが適切に実施されているか否かを判定することができる。また、比較器３７１は、ライトアクセスについてのバスアクセス情報の比較として、記憶部３０４に記憶されたＰＥ１００のライトアドレスと、ＰＥ２００が監視プロセスを実行した際にＰＥ２００から入力されるライトアドレスとの比較、及び、記憶部３０４に記憶されたＰＥ１００のライトデータと、ＰＥ２００が監視プロセスを実行した際にＰＥ２００から入力されるライトデータとの比較を行う。これにより、ライトアクセスが適切に実施されているか否かを判定することができる。
【００９５】
両バスアクセス情報が一致しない場合（ステップ３０８（Ｓ３０８）においてＮｏ）、バス機構３００は、予め定められたエラー処理を実施する（ステップ３０９（Ｓ３０９））。例えば、バス機構３００は、ＰＥ１００及びＰＥ２００に対し、割り込み処理などを要求する。
【００９６】
両バスアクセス情報が一致する場合（ステップ３０８においてＹｅｓ）、ＰＥ２００においては、監視プロセスの実行が完了するまで、ステップ２０２が繰り返される（ステップ２０３（Ｓ２０３）でＮｏ）。ＰＥ２００は、監視プロセスの実行が完了すると（ステップ２０３でＹｅｓ）、バス機構３００に対し、監視プロセス終了通知を出力する（ステップ２０４（Ｓ２０４））。その後、ＰＥ２００は、通常プロセスを実行する（ステップ２０５（Ｓ２０５））。
【００９７】
ステップ３１０（Ｓ３１０）において、バス機構３００は、ＰＥ２００から監視プロセス終了通知を受信すると、監視処理についてのリセット処理を行う。具体的には、バス機構３００は、ＩＤ、ポインタ、及び監視有効範囲の削除を行い、ステップ３０１で確保された領域を解放する。その後、バス機構３００は、通常のバスアクセスを実施する（ステップ３１１（Ｓ３１１））。
【００９８】
＜動作例２＞
次に、監視対象プロセスを実行中のＰＥ１００において、監視対象プロセスを含まない割り込み処理が発生した場合の動作例について説明する。図５Ａは、監視対象プロセスを実行中のＰＥ１００において、割り込み処理が発生した場合の動作例を示すフローチャートである。図５Ｂは、監視対象プロセスを実行中のＰＥ１００において、監視対象プロセスを含まない割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。監視対象プロセスを実行中のＰＥ１００において、割り込み処理が発生すると、図５Ａに示すように、割り込み関連処理（ステップ１０（Ｓ１０））がＰＥ１００及びバス機構３００において発生する。なお、図５Ａに示したフローチャートは、割り込み関連処理（ステップ１０）が追加されている点を除き、図４Ａに示したフローチャートと同じである。したがって、図５Ａに示されるフローチャートの各ステップの説明については割愛する。ステップ１０の割り込み関連処理の具体的な動作については、図５Ｂに示している。以下、図５Ｂに示されるフローチャートに沿って、マルチプロセッサシステム１０において発生する割り込み関連処理の動作例について説明する。
【００９９】
割り込み関連処理においては、ステップ１２０（Ｓ１２０）として、ＰＥ１００は、割り込み処理の実行開始にあたり、バス機構３００に割り込み発生通知を出力する。そして、ステップ１２１（Ｓ１２１）として、ＰＥ１００は、監視対象プロセスを含まない割り込み処理を実行する。
【０１００】
バス機構３００は、割り込み発生通知を受信すると、監視処理を中断する（ステップ３２０（Ｓ３２０））。なお、バス機構３００は、監視処理の中断にあたり、ＩＤ、ポインタ及び監視有効範囲情報を退避させる。
【０１０１】
ＰＥ１００においては、割り込み処理が完了するまで、ステップ１２１が繰り返される（ステップ１２２（Ｓ１２２）でＮｏ）。ＰＥ１００は、割り込み処理が完了すると（ステップ１２２でＹｅｓ）、バス機構３００に対し、割り込み終了通知を出力する（ステップ１１２（Ｓ１２３））。
【０１０２】
バス機構３００は、割り込み終了通知を受信すると、監視処理を再開する（ステップ３２１（Ｓ３２１））。なお、バス機構３００は、監視処理の再開にあたり、退避していたＩＤ、ポインタ及び監視有効範囲情報を復帰させる。その後、図４Ａのステップ１０３以降の動作が行われる。
【０１０３】
＜動作例３＞
次に、監視対象プロセスを実行中のＰＥ１００において、監視対象プロセスを含む割り込み処理が発生した場合の動作例について説明する。この場合も、図５Ａに示したフローチャートが、動作例となる。ただし、ステップ１０の割り込み関連処理については、図５Ｂではなく図６Ａ、６Ｂに示すフローチャートが動作例となる。図６Ａ及び図６Ｂは、監視対象プロセスを実行中のＰＥ１００において、監視対象プロセスを含む割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。以下、図６Ａ及び図６Ｂに示されるフローチャートに沿って、監視対象プロセスを含む割り込み処理がＰＥ１００において発生した場合の動作例について説明する。
【０１０４】
本動作例の割り込み関連処理においては、ステップ１３０（Ｓ１３０）として、ＰＥ１００は、割り込み処理の実行開始にあたり、バス機構３００に、割り込み発生通知、監視対象プロセス開始通知、監視有効範囲情報、及び記憶領域情報を出力する。
【０１０５】
ステップ３３０（Ｓ３３０）において、バス機構３００は、割り込み発生通知を受信すると、それまで監視対象としていた監視対象プロセス（以下、第１の監視対象プロセスと呼ぶこととする）の監視処理を中断する。なお、バス機構３００は、第１の監視対象プロセスの監視処理の中断にあたり、第１の監視対象プロセスについてのＩＤ、ポインタ及び監視有効範囲情報を退避させる。
【０１０６】
ステップ３３１（Ｓ３３１）において、バス機構３００は、割り込み処理における新たな監視対象プロセス（以下、第２の監視対象プロセスと呼ぶこととする）の監視処理のための初期設定を実施する。具体的には、バス機構３００は、次のような処理を行う。バス機構３００は、第２の監視対象プロセスにより生じるバスアクセス情報を記憶するための領域を、記憶領域情報に基づいて記憶領域３６２に確保する。また、バス機構３００は、第２の監視対象プロセスに対してＩＤを設定し、これを記憶する。さらに、バス機構３００は、このＩＤに対応するポインタを設定し、これを記憶する。また、バス機構３００は、第２の監視対象プロセスについての監視有効範囲情報を記憶する。本ステップ以降、バス機構３００は、ＰＥ１００からのアクセスを監視対象プロセスにより生じたアクセスとして取り扱うこととなる。
【０１０７】
以降、図４ＡにおけるＳ１０２以降の動作と同様の動作が行われる。よって、ステップ３３１以降の動作については、簡単に説明する。
【０１０８】
ステップ１３１（Ｓ１３１）において、図４ＡのＳ１０２と同様、ＰＥ１００は、割り込み処理、すなわち、第２の監視対象プロセスを実行する。
【０１０９】
バス機構３００では、図４ＡのＳ３０２と同様、ＰＥ１００からのアクセス要求を処理する（ステップ３３２（Ｓ３３２））。
図４ＡのＳ３０３と同様、バス機構３００は、ＰＥ１００からのアクセス要求があった場合、アクセス先が監視有効範囲内であるか否かを判定する（ステップ３３３（Ｓ３３３））。
アクセス先が監視有効範囲内である場合、図４ＡのＳ３０４と同様、ステップ３３４（Ｓ３３４）において、バス機構３００は、バスアクセス情報をステップ３３１で確保した領域に記憶する。すなわち、記憶部３０４は、監視対象プロセス毎に設けられた領域に、監視対象プロセスを実行した際に発生する周辺ＩＰ群４００に対するアクセスについてのバスアクセス情報を記憶する。よって、バス機構３００は、ＰＥ１００による監視対象プロセスの実行中にＰＥ１００に新たに別の監視対象プロセスについての割り込み処理が発生した場合、割り込み処理の発生前の監視対象プロセスに対応する領域とは異なる領域に、割り込み処理についていのバスアクセス情報を格納することとなる。このように、監視対象プロセス毎に、バスアクセス情報を管理しているため、割り込み処理が発生した場合であっても、適切に、各監視対象プロセスについての監視処理を実行することができる。
【０１１０】
ＰＥ１００においては、第２の監視対象プロセスの実行が完了するまで、ステップ１３１が繰り返される（ステップ１３２（Ｓ１３２）でＮｏ）。ＰＥ１００は、第２の監視対象プロセスの実行が完了すると（ステップ１３２でＹｅｓ）、バス機構３００に対し、監視対象プロセス終了通知、及び割り込み終了通知を出力する（ステップ１３３（Ｓ１３３））。
【０１１１】
ステップ３３５（Ｓ３３５）において、図４ＡのＳ３０５と同様、バス機構３００は、ＰＥ１００から第２の監視対象プロセスについての監視対象プロセス終了通知を受信すると、ＰＥ２００に対し、第２の監視対象プロセスについての監視プロセス（以下、第２の監視プロセスと呼ぶこととする）の実行を要求する。これ対し、ＰＥ２００は、空き時間が生じると、第２監視プロセスを実行することとなる。
【０１１２】
ステップ２３０（Ｓ２３０）において、図４ＢのＳ２０１と同様、ＰＥ２００は、第２の監視プロセスの実行開始にあたり、バス機構３００に対して、監視プロセス開始通知を出力する。
【０１１３】
ステップ３３６（Ｓ３３６）において、図４ＢのＳ３０６と同様、ＰＥ２００から監視プロセス開始通知を受信したバス機構３００は、ＰＥ２００による周辺ＩＰ群４００に対するアクセスを禁止する。
【０１１４】
ステップ２３１（Ｓ２３１）において、図４ＢのＳ２０２と同様、ＰＥ２００は、第２の監視プロセスを実行する。
【０１１５】
ステップ３３７（Ｓ３３７）において、図４ＢのＳ３０７と同様、バス機構３００は、バスアクセス情報の比較を行う。両バスアクセス情報が一致しない場合（ステップ３３８（Ｓ３３８）においてＮｏ）、バス機構３００は、図４ＢのＳ３０９と同様、予め定められたエラー処理を実施する（ステップ３３９（Ｓ３３９））。
【０１１６】
両バスアクセス情報が一致する場合（ステップ３３８においてＹｅｓ）、ＰＥ２００においては、第２の監視プロセスの実行が完了するまで、ステップ２３１が繰り返される（ステップ２３２（Ｓ２３２）でＮｏ）。ＰＥ２００は、第２の監視プロセスの実行が完了すると（ステップ２３２でＹｅｓ）、バス機構３００に対し、第２の監視プロセスについての監視プロセス終了通知を出力する（ステップ２３３（Ｓ２３３））。
【０１１７】
ステップ３４０（Ｓ３４０）において、図４ＢのＳ３１０と同様、バス機構３００は、ＰＥ２００から監視プロセス終了通知を受信すると、第２の監視対象プロセスの監視処理についてのリセット処理を行う。また、ステップ３４１（Ｓ３４１）において、バス機構３００は、第１の監視対象プロセスについての監視処理を再開する。すなわち、バス機構３００は、監視処理の再開にあたり、退避していたＩＤ、ポインタ及び監視有効範囲情報を復帰させる。その後、ＰＥ１００は、第１の監視対象プロセスの実行を再開し、図４Ａのステップ１０３以降の動作が行われる。
【０１１８】
＜動作例４＞
次に、監視プロセスを実行中のＰＥ２００において、割り込み処理が発生した場合の動作例について説明する。この場合、図４Ｂに示したフローチャートが、図７Ａに示すフローチャートに置き換わる。つまり、図４Ａに示すフローチャートに続いて、図７Ａに示すフローチャートが実施される。図７Ａは、監視プロセスを実行中のＰＥ２００において、割り込み処理が発生した場合の動作例を示すフローチャートである。図７Ｂは、監視プロセスを実行中のＰＥ２００において、割り込み処理が発生した場合の割り込み関連処理の動作例を示すフローチャートである。
【０１１９】
監視プロセスを実行中のＰＥ２００において、割り込み処理が発生すると、図７Ａに示すように、割り込み関連処理（ステップ２０（Ｓ２０））がＰＥ２００及びバス機構３００において発生する。なお、図７Ａに示したフローチャートは、割り込み関連処理（ステップ２０）が追加されている点を除き、図４Ｂに示したフローチャートと同じである。したがって、図７Ａに示されるフローチャートの各ステップの説明については割愛する。ステップ２０の割り込み関連処理の具体的な動作については、図７Ｂに示している。以下、図７Ｂに示されるフローチャートに沿って、マルチプロセッサシステム１０において発生する割り込み関連処理の動作例について説明する。
【０１２０】
本動作例における割り込み関連処理においては、ステップ２５０（Ｓ２５０）として、ＰＥ２００は、割り込み処理の実行開始にあたり、バス機構３００に割り込み発生通知を出力する。
【０１２１】
ステップ３５０（Ｓ３５０）において、バス機構３００は、ＰＥ２００から割り込み発生通知を受信すると、ＰＥ２００による周辺ＩＰ群４００に対するアクセスの禁止を解除し、通常のバスアクセスを実施する。これにより、ＰＥ２００は、周辺ＩＰ群４００へのアクセスを伴う割り込み処理を実行することができる（ステップ２５１（Ｓ２５１））。
【０１２２】
ＰＥ２００においては、割り込み処理が完了するまで、ステップ２５１が繰り返される（ステップ２５２（Ｓ２５２）でＮｏ）。ＰＥ２００は、割り込み処理が完了すると（ステップ２５２でＹｅｓ）、バス機構３００に対し、割り込み終了通知を出力する（ステップ２５３（Ｓ２５３））。
【０１２３】
ステップ３５１（Ｓ３５１）において、バス機構３００は、割り込み終了通知を受信すると、再び、ＰＥ２００による周辺ＩＰ群４００に対するアクセスを禁止する。その後、ＰＥ２００は、監視プロセスの実行を再開し、図４Ｂのステップ２０３以降の動作が行われる。
【０１２４】
以上、実施の形態１について説明した。本実施の形態にかかるマルチプロセッサシステム１０によれば、上述の通り、バス機構３００は、監視対象ＰＥによる監視対象プロセスの実行の完了後に、監視処理実行ＰＥに対し、監視プロセスの実行を要求する。そして、監視処理実行ＰＥは、自身の空き時間に監視プロセスを実行する。このため、監視処理実行ＰＥは、監視対象ＰＥの監視専用のプロセッサエレメントでなくてよい。よって、マルチプロセッサシステム１０によれば、コストを抑制しつつ、プロセッサエレメントの監視を実現することができる。
【０１２５】
また、ＰＥ１００、２００が、周期的に所定の処理を実現するために周期的に監視対象プロセスを含む所定のプロセスを実行する場合、次のような利点がある。各サイクルにおいて、監視処理実行ＰＥは、例えば、所定のプロセスの実行を時間ｔ１で完了し、周期Ｔのうち空き時間ｔ２（＝Ｔ−ｔ１）を利用して、監視対象ＰＥを監視するための監視プロセスを実行することができる。このため、バス機構３００は、サイクル毎に、監視処理を完了することができる。すなわち、監視対象ＰＥの異常を、次のサイクルの開始までに検出することが可能となる。さらに、ＰＥ１００、２００が、周期的に所定の処理を実現するために周期的に監視対象プロセスを含む所定のプロセスを実行する場合、ＰＥ１００、２００は、自身の空き時間を利用して、それぞれが監視プロセスを実行することが可能であるため、バス機構３００は、各サイクルにおいて、ＰＥ１００、２００の監視を行うことができる。
【０１２６】
他の技術では、任意の２つの独立した処理の異常を検知するために、例えばＤＬＳではＰＥが４個必要であったが、本実施の形態によれば、２個のＰＥが独立して相互に監視することができる。このため、コストを抑制することができる。ところで、本実施の形態による異常検出方法ではなく、ソフトウェア処理によりＰＥの異常を検出する方法の場合には、２つの方法が考えられる。
【０１２７】
１つ目の方法は、２つのＰＥがそれぞれ周辺ＩＰ群からリードデータを取得し、別々の記憶領域にデータを格納し、演算、比較、及び判定を行う方法である。２つ目の方法は、１つのＰＥが取得したリードデータを、もう１つのＰＥが流用して演算、比較、及び判定する方法である。１つ目の方法では、周辺ＩＰ群からデータを取得するタイミングの違いなどにより、各ＰＥが取得するデータが違う可能性がある点で問題である。すなわち、リードデータの同一性が保障されない点が問題である。また、２つ目の方法では、取得したリードデータを記憶領域に格納する処理をＰＥが行う必要があり、これがオーバーヘッドとなり、ＰＥのパフォーマンスを低下させる。また、ＰＥに異常が発生している場合には、リードデータを正しく記憶領域に格納できない恐れがあり、そのようなリードデータを他のＰＥが流用した場合には正しく異常を検知できない。このように、ソフトウェア処理による方法では問題があるところ、本実施の形態ではこのような問題の発生を回避できる。
【０１２８】
＜実施の形態２＞
次に、実施の形態２について説明する。実施の形態２は、実施の形態１にかかるマルチプロセッサシステム１０を用いた車両制御システムについての実施形態である。図８は、実施の形態２にかかる車両制御システム２０の構成の一例を示すブロック図である。図８に示されるように車両制御システム２０は、モータ５００、６００が追加されている点で、実施の形態１にかかるマルチプロセッサシステム１０と異なる。車両制御システム２０は、図示しない車両に搭載される。すなわち、以下、実施の形態１と異なる点についてのみ説明し、重複する説明を省略する。
【０１２９】
モータ５００、６００は、それぞれ、車両に搭載されるモータであり、例えば、車両を駆動するための駆動源である。ＰＥ１００、２００は、所定時間内に各モータを制御するため、矩形波などの制御信号の生成処理を所定時間内に実施する。ここで、ＰＥ１００は、モータ５００を制御するための制御信号を生成する。また、ＰＥ２００は、モータ６００を制御するための制御信号を生成する。
【０１３０】
ＰＥ１００、２００は、制御信号の生成にあたり、バス機構３００を介して、周辺ＩＰ群４００にアクセスする。制御信号の生成は、所定の周期で、周期的に行われる。より詳細には、ＰＥ１００、２００は、周期的に、制御信号の生成のための信号生成プロセス及び監視プロセスを実行する。この信号生成プロセスは、監視対象プロセスである。つまり、ＰＥ１００は、周期Ｔの間に、信号生成プロセスを実施し、かつ、ＰＥ２００における信号生成プロセスの実施を監視するための監視対象プロセスを実施する。同様に、ＰＥ２００は、周期Ｔの間に、信号生成プロセスを実施し、かつ、ＰＥ１００における信号生成プロセスの実施を監視するための監視対象プロセスを実施する。ＰＥ１００、２００は、信号生成プロセス及び監視プロセスの実行周期Ｔのうち、信号生成プロセスが実行されない時間帯に、監視プロセスを実行する。
【０１３１】
２つのＰＥがそれぞれモータを制御する場合に、機能安全を実現させる方法としては、１つのＰＥに対して、１つ、または２つの監視専用のＰＥを用意する方法がある。しかしながら、この方法だと、最低でも４つのＰＥが必要になる。これに対し、本実施の形態では、２つのＰＥで機能安全を実現することができる。すなわち、監視専用のＰＥを用意する必要がない。このように、本実施の形態によれば、車両の制御にあたり、コストを抑制しつつ機能安全を実現することができる。
【０１３２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１３３】
１、１０    マルチプロセッサシステム
２    第１のプロセッサエレメント
３    第２のプロセッサエレメント
４、３００    バス機構
５    アクセス対象部
６、３０４    記憶部
７    要求部
８    比較部
２０    車両制御システム
３０１、３０２    バス
３０３    制御部
３０５    比較判定部
３１０    割り込み制御部
３２０    監視制御部
３３０    監視関連情報制御部
３３１    ＩＤ制御部
３３２    ポインタ制御部
３３３    監視有効範囲判断部
３３４    記憶領域情報制御部
３４０    バスアクセス情報制御部
３５０    判定制御部
３６１    記憶制御部
３６２、３６３    記憶領域
３７１    比較器
３７２    比較結果通知部
４００    周辺ＩＰ群
５００、６００    モータ
【図１】
2018041311.tif 000003
【図２】
2018041311.tif 000004
【図３】
2018041311.tif 000005
【図４Ａ】
2018041311.tif 000006
【図４Ｂ】
2018041311.tif 000007
【図５Ａ】
2018041311.tif 000008
【図５Ｂ】
2018041311.tif 000009
【図６Ａ】
2018041311.tif 000010
【図６Ｂ】
2018041311.tif 000011
【図７Ａ】
2018041311.tif 000012
【図７Ｂ】
2018041311.tif 000013
【図８】
2018041311.tif 000014