(57)【要約】【課題】コストや重量の増大を抑制すると共に情報処理のリアルタイム性を確保しつつ、プロセッサの異常を適切に判定することが可能なマルチプロセッサ装置を提供すること。【解決手段】複数の通常タスク処理用プロセッサと、前記複数の通常タスク処理用プロセッサのうち所定順序で選択されたプロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行う、一以上の並行同一処理用プロセッサと、前記順に選択された通常タスク処理用プロセッサによる処理結果と前記並行同一処理用プロセッサによる処理結果とを比較する比較手段と、前記比較手段による比較結果の履歴に基づいて、前記複数の通常タスク処理用プロセッサのうちいずれか又は前記並行同一処理用プロセッサが異常状態にあるか否かを判定する判定手段と、を備えるマルチプロセッサ装置。【選択図】図３
2011145900.tif 000002
【特許請求の範囲】
【請求項１】
複数の通常タスク処理用プロセッサと、
前記複数の通常タスク処理用プロセッサのうち所定順序で選択されたプロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行う、一以上の並行同一処理用プロセッサと、
前記順に選択された通常タスク処理用プロセッサによる処理結果と前記並行同一処理用プロセッサによる処理結果とを比較する比較手段と、
前記比較手段による比較結果の履歴に基づいて、前記複数の通常タスク処理用プロセッサのうちいずれか又は前記並行同一処理用プロセッサが異常状態にあるか否かを判定する判定手段と、
を備えるマルチプロセッサ装置。
【請求項２】
請求項１に記載のマルチプロセッサ装置であって、
前記比較手段による比較結果は、前記複数の通常タスク処理用プロセッサ毎に、所定の記憶手段に繰り返し上書き保存される、
マルチプロセッサ装置。
【請求項３】
請求項２に記載のマルチプロセッサ装置であって、
前記判定手段は、前記所定の記憶手段に上書き保存された比較結果と、予め格納された判定用データとの比較に基づいて、前記複数の通常タスク処理用プロセッサのうちいずれか又は前記並行同一処理用プロセッサが異常状態にあるか否かを判定する手段である、
マルチプロセッサ装置。
【請求項４】
請求項１ないし３のいずれか１項に記載のマルチプロセッサ装置であって、
前記判定手段により、前記複数の通常処理用プロセッサのうちいずれかが異常状態にあると判定された場合には、該異常状態にあると判定された通常処理用プロセッサが実行していた処理を、前記故障判定用プロセッサが代替して実行することを特徴とする、
マルチプロセッサ装置。
【請求項５】
請求項１ないし４のいずれか１項に記載のマルチプロセッサ装置であって、
前記複数の通常タスク処理用プロセッサのうち一のプロセッサと、前記並行同一処理用プロセッサを選択的に接続させるセレクタ手段と、
前記複数の通常タスク処理用プロセッサのうち所定順序で選択したプロセッサを前記並行同一処理用プロセッサに接続させるように、前記セレクタ手段を制御する制御手段と、
を備え、
前記並行同一処理用プロセッサは、前記複数の通常タスク処理用プロセッサのうち前記制御手段により所定順序で選択された通常タスク処理用プロセッサから前記セレクタ手段を介して入力される情報に基づいて、該選択された通常タスク処理用プロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行うことを特徴とする、
マルチプロセッサ装置。
【請求項６】
車両に搭載される請求項１ないし５のいずれか１項に記載のマルチプロセッサ装置であって、
前記複数の通常タスク処理用プロセッサは、車載機器制御のための周期的処理を行い、
前記一以上の並行同一処理用プロセッサは、前記複数の通常タスク処理用プロセッサのうち周期的に選択されたプロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行うことを特徴とする、
マルチプロセッサ装置。
【請求項７】
請求項６に記載のマルチプロセッサ装置であって、
前記複数の通常タスク処理用プロセッサは、エンジンの各気筒における点火タイミング制御のための演算処理を実行するプロセッサである、
マルチプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサが並行・独立して処理を行うことが可能なマルチプロセッサ装置に関する。
【背景技術】
【０００２】
従来、複数のプロセッサによって並行・独立して複数の処理を実行するマルチプロセッサ装置が実用化されている。複数のプロセッサが実行する処理は、同じタスクを分散処理させるものである場合や、独立した処理を並行して行うものである場合があり、その用途は多様である。こうしたマルチプロセッサ装置は、車両に搭載された車載制御装置等に好適に適用される。車載制御装置の分野では、ある車載機器を制御する制御装置と他の車載機器を制御する制御装置（例えば変速機の制御装置とエンジンの制御装置等）を統合して、コンピュータ・ハードウエアを縮小し、コストや重量の低減を図る動きが見られ、マルチプロセッサ装置の適用範囲が広がっている。
【０００３】
ところで、マルチプロセッサ装置では、プロセッサのいずれかに故障等の異常状態が生じた場合、その異常状態を検知する必要性が存在する。特に、上記の車載制御装置等、移動体用の制御装置に適用された場合、安全面から、プロセッサの異常状態検知は必要性が高いものとなる。
【０００４】
特許文献１には、同一の命令を実行するプロセッシングユニットを３個以上備え、処理結果の多数決によってプロセッサの障害を検知するプロセッシングボードについて記載されている。
【０００５】
また、特許文献２には、演算結果の期待値が予め格納されているＲＯＭを備え、機能ブロックにテストデータ（入力パターン）を入力し、そのテスト結果をＲＯＭに格納された期待値と比較して機能ブロックの正常、異常を検出する半導体自己試験装置について記載されている。図１は、特許文献２に記載された装置の機能を模式化した図である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−１０５０３７号公報
【特許文献２】特開平６−２４２１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数のプロセッサが並行、独立して処理を行うマルチプロセッサ装置に特許文献１に記載の技術を適用すると、プロセッサ数をｎ個とした場合、最小でｎ×３個のプロセッサを必要とすることになる。図２は、複数のプロセッサが並行、独立して処理を行うマルチプロセッサ装置に特許文献１に記載の技術を適用した場合の構成例である。図中、ＣＰＵ＃１〜＃３が、本来実行すべきタスクを実行するためのＣＰＵ（プロセッサ）であり、ＣＰＵ＃１〜＃３のそれぞれについて多数決用のＣＰＵが２つ設けられることになる。このような構成は、過度に冗長なものであり、装置のコストや重量を増大させてしまう。従って、特許文献１に記載のプロセッシングボードは、車両等の移動体に搭載させるのに適したものではない。
【０００８】
また、特許文献２に記載の技術では、テストデータを処理している間、プロセッサが本来の処理を一時的に停止しなければならないことになる。この結果、情報処理のリアルタイム性が損なわれることになる。更に、テストデータや期待値を記憶させるため、ＲＯＭの記憶領域を消費することになる。
【０００９】
本発明はこのような課題を解決するためのものであり、コストや重量の増大を抑制すると共に情報処理のリアルタイム性を確保しつつ、プロセッサの異常を適切に判定することが可能なマルチプロセッサ装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明の一態様は、
複数の通常タスク処理用プロセッサと、
前記複数の通常タスク処理用プロセッサのうち所定順序で選択されたプロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行う、一以上の並行同一処理用プロセッサと、
前記順に選択された通常タスク処理用プロセッサによる処理結果と前記並行同一処理用プロセッサによる処理結果とを比較する比較手段と、
前記比較手段による比較結果の履歴に基づいて、前記複数の通常タスク処理用プロセッサのうちいずれか又は前記並行同一処理用プロセッサが異常状態にあるか否かを判定する判定手段と、
を備えるマルチプロセッサ装置である。
【００１１】
この本発明の一態様によれば、通常タスクを実行するための通常タスク処理用プロセッサに加えて、少なくとも一つの並行同一処理用プロセッサがあれば異常判定を行うことができるため、コストや重量の増大を抑制しつつ、プロセッサの異常を適切に判定することができる。
【００１２】
更に、通常タスク処理用プロセッサは、本来実行すべきタスクを中断せずに、継続的に実行することができるため、処理のリアルタイム性を損なうことがない。
【００１３】
本発明の一態様において、
前記比較手段による比較結果は、前記複数の通常タスク処理用プロセッサ毎に、所定の記憶手段に繰り返し上書き保存されるものとしてもよい。
【００１４】
この場合、
前記判定手段は、前記所定の記憶手段に上書き保存された比較結果と、予め格納された判定用データとの比較に基づいて、前記複数の通常タスク処理用プロセッサのうちいずれか又は前記並行同一処理用プロセッサが異常状態にあるか否かを判定する手段であるものとしてもよい。
【００１５】
また、本発明の一態様において、
前記判定手段により、前記複数の通常処理用プロセッサのうちいずれかが異常状態にあると判定された場合には、該異常状態にあると判定された通常処理用プロセッサが実行していた処理を、前記故障判定用プロセッサが代替して実行することを特徴とするものとしてもよい。
【００１６】
また、本発明の一態様において、
前記複数の通常タスク処理用プロセッサのうち一のプロセッサと、前記並行同一処理用プロセッサを選択的に接続させるセレクタ手段と、
前記複数の通常タスク処理用プロセッサのうち所定順序で選択したプロセッサを前記並行同一処理用プロセッサに接続させるように、前記セレクタ手段を制御する制御手段と、
を備え、
前記並行同一処理用プロセッサは、前記複数の通常タスク処理用プロセッサのうち前記制御手段により所定順序で選択された通常タスク処理用プロセッサから前記セレクタ手段を介して入力される情報に基づいて、該選択された通常タスク処理用プロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行うことを特徴とするものとしてもよい。
【００１７】
また、車両に搭載される本発明の一態様において、
前記複数の通常タスク処理用プロセッサは、車載機器制御のための周期的処理を行い、
前記一以上の並行同一処理用プロセッサは、前記複数の通常タスク処理用プロセッサのうち周期的に選択されたプロセッサと同一の処理を、該選択された通常タスク処理用プロセッサと並行して行うことを特徴とするものとしてもよい。
【００１８】
この場合、
前記複数の通常タスク処理用プロセッサは、例えば、エンジンの各気筒における点火タイミング制御のための演算処理を実行するプロセッサである。
【発明の効果】
【００１９】
本発明によれば、コストや重量の増大を抑制すると共に情報処理のリアルタイム性を確保しつつ、プロセッサの異常を適切に判定することが可能なマルチプロセッサ装置を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】特許文献２に記載の装置を模式化した図である。
【図２】複数のプロセッサが並行、独立して処理を行うマルチプロセッサ装置に特許文献１に記載の技術を適用した場合の構成例である。
【図３】本発明の第１実施例に係るマルチプロセッサ装置１のシステム構成例である。
【図４】ＲＡＭ２０の所定領域に格納される処理結果比較データの一例を示す図である。
【図５】セレクト信号生成部４０が、ＣＰＵ＃１→ＣＰＵ＃２→ＣＰＵ＃３の順に被検査ＣＰＵを選択し、その結果として処理結果比較１〜３が得られる様子を模式的に示す図である。
【図６】ＲＯＭ１０に予め格納されているＣＰＵ異常判定用マップの一例である。
【図７】本発明の第２実施例に係るマルチプロセッサ装置２のシステム構成例である。
【図８】エンジン回転の１サイクルにおける各気筒の点火タイミングを示す図である。
【図９】ある気筒（第ｎ気筒）において、イグナイターによる点火が許可される点火許可期間と点火タイミングの関係を示す図である。
【図１０】あるＣＰＵ＃ｎにおける検査期間と点火タイミングの関係を示す図である。
【図１１】第２実施例のマルチプロセッサ装置２における点火タイミング、点火禁止期間と、検査期間の関係を示す図である。
【図１２】本発明の第３実施例に係るマルチプロセッサ装置３のシステム構成例である。
【図１３】本発明の第４実施例に係るマルチプロセッサ装置４のシステム構成例である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２２】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係るマルチプロセッサ装置１について説明する。マルチプロセッサ装置１は、複数のプロセッサが並行・独立して処理を行うことが可能なマルチプロセッサ装置であり、車両等の移動体に搭載されるのに適した装置である。
【００２３】
［基本構成］
図３は、本発明の第１実施例に係るマルチプロセッサ装置１のシステム構成例である。マルチプロセッサ装置１は、主要な構成として、ＣＰＵ（Central  Processing  Unit）＃０、＃１、＃２、＃３と、ＲＯＭ（Read  Only  Memory）１０と、ＲＡＭ（Random  Access  Memory）２０と、セレクタ３０、３２と、セレクト信号生成部４０と、比較器５０と、異常判定部６０と、を備える。
【００２４】
ＣＰＵ＃０、＃１、＃２、＃３は、それぞれバッファメモリ、命令フェッチ回路、命令デコーダ、内部レジスタ、演算装置、スタック用メモリ、キャッシュメモリ、Ｉ／Ｏ等を備えたプロセッサである。
【００２５】
ＲＯＭ１０には、各ＣＰＵが実行する種々のプログラムが格納されている。ＲＯＭ１０と各ＣＰＵは、図示しないＲＯＭバスによって接続されている。なお、各ＣＰＵは、それぞれ専用のＲＯＭを備えるものとしても構わない。
【００２６】
ＣＰＵ＃１、＃２、＃３は、ＲＯＭ１０に格納された通常タスクを行うためのプログラムを実行する。通常タスクとは、マルチプロセッサ装置１に要求される本来の機能を実現するためのタスクである。
【００２７】
例えば、マルチプロセッサ装置１がハイブリッド車両に搭載された走行制御装置であるとすると、通常タスクは、走行用モータの目標トルク演算、エンジンの目標回転数及び目標トルク演算、変速タイミング演算等であり、ＣＰＵ＃１、＃２、＃３は、与えられた役割に応じてこれらの演算を分担する。なお、通常タスクを行うためのプログラムを実行するＣＰＵの数は、３個に限定されず、複数であればよい。
【００２８】
ＣＰＵ＃１、＃２、＃３の処理結果は、ＲＡＭバス２２を介してＲＡＭ２０に送出される。なお、ＲＯＭと同様、各ＣＰＵは、それぞれ専用のＲＡＭを備えるものとしても構わない。また、ＣＰＵ＃１、＃２、＃３の処理結果は、制御対象となる機器に、直接的に送出されても構わない。ＲＡＭ２０には、比較器５０による比較結果の履歴を格納するための所定領域が設定されている。
【００２９】
［異常判定］
一方、ＣＰＵ＃０は、ＣＰＵ＃１、＃２、＃３、及びＣＰＵ＃０自身の異常判定を行うための並行同一処理を実行する。具体的には、ＣＰＵ＃１、＃２、＃３のうち所定順序で選択されたＣＰＵ（以下、被検査ＣＰＵと称する）と同一の処理を、この選択された被検査ＣＰＵと並行して行う。セレクタ３０、３２、及びセレクト信号生成部４０は、こうしたＣＰＵ＃０の処理を実現させている。
【００３０】
セレクト信号生成部４０は、所定のタイミングで、ＣＰＵ＃１、＃２、＃３のうちいずれかと、ＣＰＵ＃０を接続させるようにセレクタ３０を制御する。被検査ＣＰＵは、そのタイミングにおけるレジスタ値、プログラムカウンタ、スタック情報、割り込み処理情報、例外処理情報等を、セレクタ３０を介してＣＰＵ＃０に送出する。
【００３１】
また、セレクト信号生成部４０は、上記セレクタ３０の制御と同じタイミングで、被検査ＣＰＵと比較器５０を接続させるようにセレクタ３２を制御する。
【００３２】
この状態において、被検査ＣＰＵは、自己に与えられた通常タスクを実行して処理結果をＲＡＭ２０に送出すると共に、セレクタ３２を介して比較器５０にも処理結果を送出する。
【００３３】
また、ＣＰＵ＃０は、被検査ＣＰＵから入力された情報を用いて、被検査ＣＰＵと同一の処理を被検査ＣＰＵと並行して（好ましくは、同時に）実行し、比較器５０に処理結果を送出する。
【００３４】
比較器５０は、被検査ＣＰＵとＣＰＵ＃０の処理結果を比較し、それらが一致したか、或いは一致しなかったかを示す情報を、ＲＡＭ２０の所定領域に記憶させる。例えば、被検査ＣＰＵとＣＰＵ＃０の処理結果が一致した場合には値１を、一致しなかった場合には値０をＲＡＭの所定領域に記憶させる。
【００３５】
ここで、被検査ＣＰＵは、ＣＰＵ＃１、＃２、＃３のうちから所定順序で選択される。例えば、被検査ＣＰＵは、ＣＰＵ＃１→＃２→＃３の順に選択される。ＣＰＵ＃３が被検査ＣＰＵに選択された後は、再度ＣＰＵ＃１が選択され、次周の選択ルーチンが開始される。このように、被検査ＣＰＵは、ＣＰＵ＃１、＃２、＃３のうちから所定順序で周期的に繰り返し選択される。
【００３６】
被検査ＣＰＵが選択されるタイミング（以下、選択タイミングと称する）は、所定周期毎（例えば数［ｍｓ］毎）に到来するものとしてもよいし、一つ前の被検査ＣＰＵが１単位のタスクを終了したタイミング、或いはタスクを構成する１単位の機能処理を終了したタイミング等であってもよい。
【００３７】
選択タイミングが所定周期毎に到来する場合、セレクト信号生成部４０は、タイマーやカウンターを内蔵し、所定周期毎にセレクト信号をセレクタ３０及び３２に送出すればよい。
【００３８】
被検査ＣＰＵがタスク等を終了したタイミングに選択タイミングを合わせる場合、被検査ＣＰＵ又はＣＰＵ＃０（或いはこれらの双方）が、タスク等を終了して比較器５０に処理結果を出力したタイミングで、その旨を示す信号（セレクタ制御許可信号）をセレクト信号生成部４０に送出する。セレクト信号生成部４０は、セレクタ制御許可信号が入力されると、セレクタ３０及び３２を制御して、次に被検査ＣＰＵとなるＣＰＵをＣＰＵ＃０及び比較器５０に接続させる。更に、次に被検査ＣＰＵとなるＣＰＵに対し、そのタイミングにおけるレジスタ値等をＣＰＵ＃０に出力するように指示する信号を送出する。
【００３９】
このような機能を有するセレクト信号生成部４０は、組み合わせ回路等によって実現されてもよいが、いずれかのＣＰＵがプログラムを実行することによって、セレクト信号生成部４０として機能するものとしてもよい。後者の場合、セレクト信号生成部４０として機能するＣＰＵは、ＣＰＵ＃０〜＃３のいずれかであってもよいし、これら以外であってもよい。
【００４０】
ＲＡＭ２０の所定領域には、例えば図４に示すようなデータが格納される。図４は、ＲＡＭ２０の所定領域に格納される処理結果比較データの一例を示す図である。図中、処理結果比較１とは、ＣＰＵ＃１とＣＰＵ＃０の処理結果が一致したか否かを示しており、前述のように値１であれば一致したことを、値０であれば一致しなかったことを示している。同様に、処理結果比較２とは、ＣＰＵ＃２とＣＰＵ＃０の処理結果が一致したか否かを示しており、処理結果比較３とは、ＣＰＵ＃３とＣＰＵ＃０の処理結果が一致したか否かを示している。
【００４１】
図５は、セレクト信号生成部４０が、ＣＰＵ＃１→ＣＰＵ＃２→ＣＰＵ＃３の順に被検査ＣＰＵを選択し、その結果として処理結果比較１〜３が得られる様子を模式的に示す図である。
【００４２】
ここで、前述のように被検査ＣＰＵは周期的に選択されるため、各ＣＰＵについての処理結果比較データは、繰り返し上書き保存されることになる。従って、処理結果比較データに含まれる処理結果比較１〜３は、直近にＣＰＵ＃１〜３とＣＰＵ＃０の処理結果が一致したか否かを示している。なお、マルチプロセッサ装置１の起動時における、処理結果比較データに含まれる処理結果比較１〜３の初期値は、値１が設定されるものとする。
【００４３】
異常判定部６０は、ＲＡＭ２０の所定領域に格納された処理結果比較データに対し、例えばＲＯＭ１０に予め格納されているＣＰＵ異常判定用マップを適用して、いずれかのＣＰＵが異常状態であるか否かを判定する。
【００４４】
図６は、ＲＯＭ１０に予め格納されているＣＰＵ異常判定用マップの一例である。図示するように、処理結果比較１〜３の全てが値１であれば、全てのＣＰＵが正常に動作していると判定される。また、処理結果比較１のみが値０であれば、ＣＰＵ＃１が異常状態にあると判定される。同様に、処理結果比較２のみが値０であれば、ＣＰＵ＃２が異常状態にあると判定され、処理結果比較３のみが値０であれば、ＣＰＵ＃０が異常状態にあると判定される。また、処理結果比較１〜３の全てが値０であれば、ＣＰＵ＃０が異常状態にあると判定される。なお、処理結果比較１〜３のうち２つのみが値０であれば、いずれのＣＰＵが異常状態であるか特定できないため、他の種類の異常（例えば、ＲＡＭ２０のデータ破損等）が生じたと判定する。
【００４５】
異常判定部６０は、いずれかのＣＰＵが異常状態にあると判定すると、当該異常状態にあると判定したＣＰＵを停止させたり、当該異常状態にあると判定したＣＰＵが実行していた処理を、ＣＰＵ＃０が代替して実行するように指示信号を送出したりする処理を行なう。
【００４６】
また、異常判定部６０をより簡易な構成とする場合は、単に異常状態にあると判定したＣＰＵ以外のＣＰＵに対し、異常状態にあると判定したＣＰＵの識別子等を送出するものとしてもよい。
【００４７】
異常判定部６０は、セレクト信号生成部４０と同様、組み合わせ回路等によって実現されてもよいが、ＣＰＵ（ＣＰＵ＃０〜＃３、又は専用の監視ＣＰＵ）がプログラムを実行することによって、セレクト信号生成部４０として機能するものとしてもよい。後者の場合、バックアップのために複数個のＣＰＵが協調して、異常判定部６０として機能することが望ましい。判定を行うＣＰＵ自体が異常状態にある可能性があるからである。
【００４８】
なお、異常判定に基づく制御の応用例として、処理結果比較１〜３の全てが値１である状態から、いずれかの処理結果比較が値０に変化した場合、例えば処理結果比較１が値０に変化した場合は、即座に該当するＣＰＵ（ＣＰＵ＃１）が異常状態であると判定して何らかのフェールセーフ制御を開始してもよい。
【００４９】
以上説明した本実施例のマルチプロセッサ装置１によれば、通常タスクを実行するためのＣＰＵに加えて、少なくとも一つの異常判定用ＣＰＵがあれば異常判定を行うことができるため、コストや重量の増大を抑制しつつ、ＣＰＵの異常を適切に判定することができる。
【００５０】
また、ＣＰＵ＃１、＃２、＃３は通常タスクを中断せずに、継続的に実行することができるため、処理のリアルタイム性を損なうことがない。
【００５１】
従って、第２〜第４実施例に示すように、車両等の移動体に搭載させるのに適している。
【００５２】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係るマルチプロセッサ装置２について説明する。マルチプロセッサ装置２は、車両に搭載され、エンジン制御を行う制御装置として機能するものである。
【００５３】
図７は、本発明の第２実施例に係るマルチプロセッサ装置２のシステム構成例である。マルチプロセッサ装置２は、主要な構成として、ＣＰＵ＃０〜＃６と、セレクタ３０、３２と、セレクト信号生成部４０と、比較器５０と、異常判定部６０と、を備える。なお、第２〜第４実施例では、ＲＯＭやＲＡＭ等の構成要素について図示及び説明を省略する。また、第１実施例と機能が共通する構成要素については同一の符号を付している。
【００５４】
ＣＰＵ＃１〜＃６は、通常タスクを行うためのプログラムを実行する。本実施例における通常タスクは、６気筒エンジンの気筒にそれぞれ取り付けられたイグナイターの点火時期制御のための演算処理である。ＣＰＵ＃１〜＃６の処理結果は、各気筒のイグナイターに出力される。
【００５５】
ＣＰＵ＃０は、ＣＰＵ＃１〜＃６、及びＣＰＵ＃０自身の異常判定を行うための処理を実行する。具体的には、ＣＰＵ＃１〜＃６のうち順に選択されたＣＰＵと同一の処理を、この選択されたＣＰＵと並行して行っている。
【００５６】
６気筒エンジンにおける点火順序は、例えば、第１気筒→第５気筒→第３気筒→第６気筒→第２気筒→第４気筒の順で行われる。
【００５７】
従って、セレクト信号生成部４０は、まずＣＰＵ＃１とＣＰＵ＃０及び比較器５０を接続させ、次にＣＰＵ＃５とＣＰＵ＃０及び比較器５０を接続させ、以下、ＣＰＵ＃３、ＣＰＵ＃６、ＣＰＵ＃２、ＣＰＵ＃４の順にＣＰＵ＃０及び比較器５０と接続させる。そして、これらの変更タイミング、すなわち第１実施例で説明した「選択タイミング」は、エンジン回転数に応じた周期的なタイミングとしている。
【００５８】
図８は、エンジン回転の１サイクルにおける各気筒の点火タイミングを示す図である。図示するように、各気筒は、１サイクル（＝７２０°ＣＡすなわち２回転）の間に一度だけイグナイターによる点火が行われる。
【００５９】
また、図９は、ある気筒（第ｎ気筒）において、イグナイターによる点火が許可される点火許可期間と点火タイミングの関係を示す図である。図示するように、イグナイターは、例えばＣＰＵ＃ｎから入力された点火パルス信号の立ち下がりで点火を行うように設定されている。ＣＰＵ＃ｎは、点火許可期間内で点火を行うという制約下で、最適な点火タイミングの演算を行う。最適な点火タイミングの演算については、本発明の中核をなさないため、説明を省略する。
【００６０】
ここで、点火禁止期間でイグナイターによる点火が行われると、気筒に予期せぬトルクが発生し、円滑なエンジン回転を妨げる場合がある。従って、いずれかのＣＰＵが異常状態となった場合、点火禁止期間に突入する前にその異常状態判定を行うことが望ましい。
【００６１】
従って、第２実施例のマルチプロセッサ装置２では、気筒の点火許可期間と、その気筒を担当するＣＰＵの検査期間を略一致させ、気筒の点火許可期間の終了と共に当該ＣＰＵの異常判定が終了するように制御している。ここで、「検査期間」とは、当該ＣＰＵとＣＰＵ＃０が同一の処理を開始してから比較器５０に処理結果を出力するまでの期間を意味する。図１０は、あるＣＰＵ＃ｎにおける検査期間と点火タイミングの関係を示す図である。
【００６２】
そして、図１１は、第２実施例のマルチプロセッサ装置２における点火タイミング、点火禁止期間と、検査期間の関係を示す図である。図示するように、第２実施例のマルチプロセッサ装置２では、気筒の点火許可期間と、その気筒を担当するＣＰＵの検査期間を略一致させ、気筒の点火許可期間の終了と共に当該ＣＰＵの異常判定が終了するように制御されている。
【００６３】
第２実施例に係るセレクト信号生成部４０は、ＣＰＵが担当する気筒の点火許可期間の間、そのＣＰＵとＣＰＵ＃０及び比較器５０を接続させるようにセレクタ３０、３２を制御する。なお、被検査ＣＰＵからＣＰＵ＃０へのレジスタ値等の送出に関しては、第１実施例で説明した処理と同様の処理を実行する。
【００６４】
また、第２実施例における異常判定は、第１実施例と同様、組み合わせ回路又はいずれかのＣＰＵが実行するソフトウエアによって行われる。第２実施例の場合、制御対象がエンジンであることから、異常状態にあるＣＰＵは速やかに停止させ、且つそのＣＰＵの担当する気筒も安全な状態に移行させることが望ましい。従って、ＣＰＵ＃１〜＃６とＣＰＵ＃０の比較結果である「処理結果比較１〜６」の全てが値１である状態から、いずれかの処理結果比較が値０に変化した場合、該当するＣＰＵを即座に停止させると共に、そのＣＰＵが担当する気筒は以降の点火を行わない（空転状態を維持する）ものとしてよい。
【００６５】
また、いずれかのＣＰＵが異常状態となった場合、ＣＰＵ＃０が異常状態となったＣＰＵのタスクを代替して実行し、正常動作を継続した上で、車両のダイアグ用記憶装置に当該異常を記憶させ、スピーカーやブザー、表示装置等によって運転者にその旨を報知することが望ましい。
【００６６】
この場合、ＣＰＵ＃０として機能するＣＰＵを２個以上備え、異常状態となったＣＰＵが２個目となった場合は、全体の動作を即時停止させ、車両のダイアグ用記憶装置への書き込みや運転者への報知を行うものとしてよい。
【００６７】
以上説明した本実施例のマルチプロセッサ装置２によれば、通常タスクを実行するためのＣＰＵに加えて、少なくとも一つの異常判定用ＣＰＵがあれば異常判定を行うことができるため、コストや重量の増大を抑制しつつ、ＣＰＵの異常を適切に判定することができる。コストや重量の問題は、車両等の移動体に搭載する装置においては、特に重要なものである。
【００６８】
また、ＣＰＵ＃１〜＃６は通常タスクを中断せずに、継続的に実行することができるため、処理のリアルタイム性を損なうことがない。
【００６９】
従って、マルチプロセッサ装置２が搭載された車両のエンジンを円滑且つ継続的に制御することができ、車両の安全を確保することができる。
【００７０】
＜第３実施例＞
以下、図面を参照し、本発明の第３実施例に係るマルチプロセッサ装置３について説明する。マルチプロセッサ装置３は、車両に搭載され、各車輪に出力する駆動力及び制動力を演算する制御装置として機能するものである。
【００７１】
図１２は、本発明の第３実施例に係るマルチプロセッサ装置３のシステム構成例である。マルチプロセッサ装置３は、主要な構成として、ＣＰＵ＃０〜＃４と、セレクタ３０、３２と、セレクト信号生成部４０と、比較器５０と、を備える。
【００７２】
ＣＰＵ＃１〜＃４は、通常タスクを行うためのプログラムを実行する。本実施例における通常タスクは、各車輪に出力する駆動力及び制動力を演算するタスクである。すなわち、ＣＰＵ＃１〜＃４は、インホイールモータ（車輪内に取り付けられ、各車輪に独立して駆動力を出力可能なモータ）の目標トルクや、各車輪に取り付けられたブレーキキャリパーの出力すべきブレーキトルクの演算を行い、インバータやブレーキ装置に指示信号を送出する。
【００７３】
ＣＰＵ＃１はＦＬ（フロント−レフト；左前輪）を担当し、ＣＰＵ＃２はＦＲ（フロント−ライト；右前輪）を担当し、ＣＰＵ＃３はＲＬ（リヤ−レフト；左後輪）を担当し、ＣＰＵ＃４はＲＲ（リヤ−ライト；右後輪）を担当する。
【００７４】
なお、本実施例における「選択タイミング」は、如何なるものであってもよい。すなわち、周期的なタイミングであってもよいし、被検査ＣＰＵが、ある単位の処理を実行終了したタイミングであってもよい。ＣＰＵ＃０の実行する処理、その他の事項については、第１実施例で説明した内容を援用し、詳細な説明を省略する。
【００７５】
以上説明した本実施例のマルチプロセッサ装置３によれば、通常タスクを実行するためのＣＰＵに加えて、少なくとも一つの異常判定用ＣＰＵがあれば異常判定を行うことができるため、コストや重量の増大を抑制しつつ、ＣＰＵの異常を適切に判定することができる。
【００７６】
また、ＣＰＵ＃１〜＃４は通常タスクを中断せずに、継続的に実行することができるため、処理のリアルタイム性を損なうことがない。
【００７７】
＜第４実施例＞
以下、図面を参照し、本発明の第４実施例に係るマルチプロセッサ装置４について説明する。マルチプロセッサ装置４は、ハイブリッド車両に搭載され、モータや発電機、補機に対する制御信号を生成する制御装置として機能するものである。
【００７８】
図１３は、本発明の第４実施例に係るマルチプロセッサ装置１のシステム構成例である。マルチプロセッサ装置３は、主要な構成として、ＣＰＵ＃０〜＃４と、セレクタ３０、３２と、セレクト信号生成部４０と、比較器５０と、を備える。
【００７９】
ＣＰＵ＃１〜＃４は、通常タスクを行うためのプログラムを実行する。本実施例における通常タスクは、モータや発電機、補機に対する制御信号を生成するタスクである。
【００８０】
ＣＰＵ＃１は前輪に駆動力を出力するフロントモータを担当し、ＣＰＵ＃２は後輪に駆動力を出力するリヤモータを担当し、ＣＰＵ＃３はエンジン出力によって発電する発電機を担当し、ＣＰＵ＃４は補機を担当する。
【００８１】
この場合、図示しないハイブリッド制御装置によって、前後輪に取り付けられたモータの出力すべきトルク値及びこれに必要な電力と、補機に必要な電力が演算され、これらを合算して発電機が発電すべき電力が演算される。ハイブリッド制御装置は、ＣＰＵ＃１、＃２に対して出力すべきトルク値を出力すると共に、発電機が発電すべき電力をＣＰＵ＃３に出力する。ＣＰＵ＃１、＃２は、入力されたトルク値を実現するように、前後輪のモータに印加する電圧信号（例えばＰＷＭ信号）を生成する。ＣＰＵ＃３は、入力された発電すべき電力と、その時点のエンジン回転数に基づいて、発電機に印加すべき電圧を演算して出力する。
【００８２】
なお、本実施例における「選択タイミング」は、如何なるものであってもよい。すなわち、周期的なタイミングであってもよいし、被検査ＣＰＵが、ある単位の処理を実行終了したタイミングであってもよい。ＣＰＵ＃０の実行する処理、その他の事項については、第１実施例で説明した内容を援用し、詳細な説明を省略する。
【００８３】
以上説明した本実施例のマルチプロセッサ装置４によれば、通常タスクを実行するためのＣＰＵに加えて、少なくとも一つの異常判定用ＣＰＵがあれば異常判定を行うことができるため、コストや重量の増大を抑制しつつ、ＣＰＵの異常を適切に判定することができる。
【００８４】
また、ＣＰＵ＃１〜＃４は通常タスクを中断せずに、継続的に実行することができるため、処理のリアルタイム性を損なうことがない。
【００８５】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００８６】
１、２、３、４  マルチプロセッサ装置
１０  ＲＯＭ
２０  ＲＡＭ
２２  ＲＡＭバス
３０、３２  セレクタ
４０  セレクト信号生成部
５０  比較器
６０  異常判定部
＃０、＃１、＃２、＃３、＃４、＃５、＃６  ＣＰＵ
【図１】
2011145900.tif 000003
【図２】
2011145900.tif 000004
【図３】
2011145900.tif 000005
【図４】
2011145900.tif 000006
【図５】
2011145900.tif 000007
【図６】
2011145900.tif 000008
【図７】
2011145900.tif 000009
【図８】
2011145900.tif 000010
【図９】
2011145900.tif 000011
【図１０】
2011145900.tif 000012
【図１１】
2011145900.tif 000013
【図１２】
2011145900.tif 000014
【図１３】
2011145900.tif 000015