(57)【要約】【課題】複数のＣＰＵがそれぞれ別々に割込を管理する場合に生じる問題を回避する【解決手段】割込コントローラ１８が、ＣＰＵ１１とＣＰＵ１２の少なくとも一方に対して割込を要求する第１割込要求信号が入力すると第１割込信号をＣＰＵ１１へ出力し、ＣＰＵ１１からＣＰＵ１２に対して割込を要求する第２割込要求信号が入力すると第２割込信号をＣＰＵ１２へ出力する。ＣＰＵ１１では、入力した第１割込信号に対応する第１割込要求信号が周辺回路からのものであり、第１割込信号に対応する処理をＣＰＵ１１が実行すると判断した場合には、第１割込信号に対応して予め設定された処理を実行する。またＣＰＵ１１では、第１割込信号に対応する処理をＣＰＵ１２が実行すると判断した場合に第２割込要求信号を割込コントローラ１８へ出力する。そしてＣＰＵ１２では、第２割込信号が入力すると、第２割込信号に対応して予め設定された処理を実行する。【選択図】図２
2014219846.tif 000002
【特許請求の範囲】
【請求項１】
第１ＣＰＵ（１１）と、
第２ＣＰＵ（１２）と、
前記第１ＣＰＵおよび前記第２ＣＰＵの少なくとも一方に対して割込を要求する割込要求信号である第１割込要求信号を入力すると、前記第１割込要求信号に対応する割込信号である第１割込信号を前記第１ＣＰＵへ出力するとともに、前記第１ＣＰＵから前記第２ＣＰＵに対して割込を要求する割込要求信号である第２割込要求信号を前記第１ＣＰＵから入力すると、前記第２割込要求信号に対応する割込信号である第２割込信号を前記第２ＣＰＵへ出力する割込コントローラ（１８）とを備え、
前記第１ＣＰＵは、
前記割込コントローラから前記第１割込信号が入力すると、前記第１割込信号に対応する前記第１割込要求信号が周辺回路（１５，１６，１７））からのものであるか否かを判断する第１出力元判断手段（Ｓ３０）と、
前記第１割込要求信号が前記周辺回路からのものであると前記第１出力元判断手段が判断した場合に、前記第１割込信号に対応する処理を前記第１ＣＰＵが実行するか否かを判断する第１実行判断手段（Ｓ９０）と、
前記第１割込信号に対応する処理を前記第１ＣＰＵが実行すると前記第１実行判断手段が判断した場合には、前記第１割込信号に対応して予め設定された処理を実行する第１実行手段（Ｓ１１０）と、
前記第１割込要求信号が前記周辺回路からのものであると前記第１出力元判断手段が判断した場合に、前記第１割込信号に対応する処理を前記第２ＣＰＵが実行するか否かを判断する第２実行判断手段（Ｓ４０）と、
前記第１割込信号に対応する処理を前記第２ＣＰＵが実行すると前記第２実行判断手段が判断した場合に、前記第２割込要求信号を前記割込コントローラへ出力する第１信号出力手段（Ｓ６０）とを備え、
前記第２ＣＰＵは、
前記第２割込信号が入力すると、前記第２割込信号に対応して予め設定された処理を実行する第２実行手段（Ｓ２３０）を備える
ことを特徴とする電子制御装置（１）。
【請求項２】
前記第２ＣＰＵは、
前記第２実行手段による処理の実行が終了すると、前記第１ＣＰＵに対して割込を要求する割込要求信号を前記第１割込要求信号として出力する第２信号出力手段（Ｓ２４０）を備える
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記第１ＣＰＵは、
前記第２ＣＰＵが実行すると前記第２実行判断手段が判断した処理のうち、該処理に対応する前記第２割込要求信号が前記割込コントローラへ出力されていないものを示す処理要求情報を格納する格納手段（Ｓ８０）と、
前記割込コントローラから前記第１割込信号が入力すると、前記第１割込信号に対応する前記第１割込要求信号が前記第２ＣＰＵからのものであるか否かを判断する第２出力元判断手段（Ｓ３０）と、
前記第１割込要求信号が前記第２ＣＰＵからのものであると前記第２出力元判断手段が判断した場合に、前記格納手段により格納された前記処理要求情報を取り出して、取り出した前記処理要求情報に対応する処理の実行を要求する前記第２割込要求信号を前記割込コントローラへ出力する第３信号出力手段（Ｓ１５０，Ｓ１６０）とを備える
ことを特徴とする請求項２に記載の電子制御装置。
【請求項４】
当該電子制御装置は、車両に搭載され、
前記第１ＣＰＵは、前記車両に搭載された機器を制御するための制御信号の出力に関する演算を実行し、
前記第２ＣＰＵは、前記制御信号を補正する演算を実行する
ことを特徴とする請求項１〜請求項３の何れか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えた電子制御装置に関する。
【背景技術】
【０００２】
従来、複数のＣＰＵを協働させて所定の制御対象を制御するように構成された電子制御装置において、複数のＣＰＵのそれぞれで実行される割込処理を一括して管理する割込コントローラを備えたものが知られている（例えば、特許文献１を参照）。
【０００３】
そして、このように複数のＣＰＵと割込コントローラを備えた電子制御装置において、複数のＣＰＵのそれぞれにオペレーティングシステム（以下、ＯＳともいう）が搭載されているものが知られている。
【０００４】
また、このような電子制御装置として、例えば図６に示すように、ＣＰＵ１１１、ＣＰＵ１１２、タイマ１１３、ＣＡＮコントローラ１１４、ＡＤ変換器１１５および割込コントローラ１１６を備え、メインＣＰＵ１１１およびサブＣＰＵ１１２にそれぞれＯＳ１２１およびＯＳ１２２が搭載されたものがある。
【０００５】
このように構成された電子制御装置において、例えばタイマ１１３からの割込要求に応じたアプリケーション処理をＣＰＵ１１１とＣＰＵ１１２の両方で実行する場合の動作は以下の通りである。
【０００６】
まず、タイマ１１３からの割込要求を割込コントローラ１１６が受け付けると（矢印ＡＬ１を参照）、割込コントローラ１１６は、ＣＰＵ１１１へ割込信号を出力する（矢印ＡＬ２を参照）とともに、ＣＰＵ１１２へ割込信号を出力する（矢印ＡＬ３を参照）。
【０００７】
割込コントローラ１１６からの割込信号をＣＰＵ１１１が受け付けると、ＣＰＵ１１１に搭載されたＯＳ１２１は、ＣＰＵ１１１で実行する処理を、タイマ１１３からの割込要求に応じたアプリケーション処理へ切り替えるとともに、タイマ１１３からの割込要求をクリアする（矢印ＡＬ４を参照）。一方、割込コントローラ１１６からの割込信号をＣＰＵ１１２が受け付けると、ＣＰＵ１１１と同様にして、ＣＰＵ１１２に搭載されたＯＳ１２２は、ＣＰＵ１１２で実行する処理を、タイマ１１３からの割込要求に応じたアプリケーション処理へ切り替えるとともに、タイマ１１３からの割込要求をクリアする（矢印ＡＬ５を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−３４９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、ＣＰＵ１１１およびＣＰＵ１１２はそれぞれ異なるオペレーティングシステムで割込処理およびタスク処理を管理しているため、以下の問題の発生が懸念される。
まず、ＣＰＵ１１１およびＣＰＵ１１２のうちの一方のＣＰＵがタイマ１１３からの割込要求（以下、タイマ割込要求という）を受け付ける前に、他方のＣＰＵがタイマ割込要求をクリアしてしまうことにより、上記一方のＣＰＵはタイマ割込要求を受け付けることができず、上記一方のＣＰＵはタイマ割込要求に応じたアプリケーション処理を実行できなくなるという問題が発生するおそれがある。
【００１０】
また、ＣＰＵ１１１およびＣＰＵ１１２の両方のＣＰＵがタイマ割込要求（以下、第１タイマ割込要求という）を受け付けた場合において、一方のＣＰＵがこの第１タイマ割込要求をクリアすることにより、その直後に次のタイマ割込要求（以下、第２タイマ割込要求という）が出力されることがある。この後に、他方のＣＰＵが、第１タイマ割込要求をクリアするつもりで第２タイマ割込要求をクリアしてしまうと、上記両方のＣＰＵは共に第２タイマ割込要求を受け付けることができず、上記両方のＣＰＵは共に第２タイマ割込要求に応じたアプリケーション処理を実行できなくなるという問題が発生するおそれがある。
【００１１】
本発明は、こうした問題に鑑みてなされたものであり、複数のＣＰＵがそれぞれ別々に割込を管理する場合に生じる問題を回避することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するためになされた本発明の電子制御装置は、第１ＣＰＵと第２ＣＰＵと割込コントローラを備える。
そして本発明の電子制御装置では、割込コントローラが、第１ＣＰＵおよび第２ＣＰＵの少なくとも一方に対して割込を要求する割込要求信号である第１割込要求信号を入力すると、第１割込要求信号に対応する割込信号である第１割込信号を第１ＣＰＵへ出力するとともに、第１ＣＰＵから第２ＣＰＵに対して割込を要求する割込要求信号である第２割込要求信号を第１ＣＰＵから入力すると、第２割込要求信号に対応する割込信号である第２割込信号を第２ＣＰＵへ出力する。
【００１３】
また第１ＣＰＵでは、第１出力元判断手段が、割込コントローラから第１割込信号が入力すると、第１割込信号に対応する第１割込要求信号が周辺回路からのものであるか否かを判断する。また第１実行判断手段が、第１割込要求信号が周辺回路からのものであると第１出力元判断手段が判断した場合に、第１割込信号に対応する処理を第１ＣＰＵが実行するか否かを判断する。そして第１実行手段が、第１割込信号に対応する処理を第１ＣＰＵが実行すると第１実行判断手段が判断した場合には、第１割込信号に対応して予め設定された処理を実行する。
【００１４】
さらに第２実行判断手段が、第１割込要求信号が周辺回路からのものであると第１出力元判断手段が判断した場合に、第１割込信号に対応する処理を第２ＣＰＵが実行するか否かを判断する。そして第１信号出力手段が、第１割込信号に対応する処理を第２ＣＰＵが実行すると第２実行判断手段が判断した場合に、第２割込要求信号を割込コントローラへ出力する。
【００１５】
そして第２ＣＰＵでは、第２実行手段が、第２割込信号が入力すると、第２割込信号に対応して予め設定された処理を実行する。
このように構成された電子制御装置では、第２ＣＰＵに対して割込を要求する割込要求信号が周辺回路から割込コントローラに入力した場合に、この割込要求信号に対応する割込信号が上記第１割込信号として第１ＣＰＵに入力する。そして第１ＣＰＵは、入力した第１割込信号に対応する処理を第２ＣＰＵが実行すると判断した場合に、第２ＣＰＵに対して割込を要求する第２割込要求信号を出力する。これにより第２ＣＰＵは、周辺回路から第２ＣＰＵに対して要求された処理を実行する。
【００１６】
すなわち本発明の電子制御装置では、周辺回路から第１ＣＰＵに対する割込要求と、周辺回路から第２ＣＰＵに対する割込要求の両方を第１ＣＰＵが管理することができる。これにより、第１ＣＰＵに対する割込要求を第１ＣＰＵが管理するとともに、第２ＣＰＵに対する割込要求を第２ＣＰＵが管理する場合に生じる問題を回避することができる。
【図面の簡単な説明】
【００１７】
【図１】電子制御装置１の構成を示すブロック図である。
【図２】電子制御装置１内における信号の入出力を示すブロック図である。
【図３】メイン側割込時処理を示すフローチャートである。
【図４】サブ側割込時処理を示すフローチャートである。
【図５】メインＣＰＵ１１とサブＣＰＵ１２の動作を示すタイミングチャートである。
【図６】従来の電子制御装置内における信号の入出力を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下に本発明の実施形態を図面とともに説明する。
本実施形態の電子制御装置（Electronic Control Unit）１（以下、ＥＣＵ１という）は、車両に搭載され、図１に示すように、車両のエンジン５０（本実施形態ではディーゼルエンジン）の制御を行う。
【００１９】
エンジン５０には、エンジン５０の気筒＃１，＃２，＃３，＃４毎に、対応する気筒に燃料を噴射するインジェクタ５１が設けられている。
各インジェクタ５１には、燃料の蓄圧容器であるコモンレール５２から伸びた燃料供給用配管５３が接続されている。またコモンレール５２には、車両の燃料タンク５４に貯留された燃料が、燃料ポンプ５５によって圧送される。これにより、コモンレール５２に蓄えられた高圧の燃料は、燃料供給用配管５３を介して各インジェクタ５１に供給される。そしてＥＣＵ１は、各インジェクタ５１を駆動して、エンジン５０への燃料噴射を制御する。
【００２０】
ＥＣＵ１は、エンジン５０を制御するための様々な処理を行うマイクロコンピュータ（以下、マイコンという）２と、当該ＥＣＵ１の外部とマイコン２との間で信号の入出力を行わせるための外部入出力回路３とを備えている。
【００２１】
外部入出力回路３には、クランク角センサ６１、アクセル開度センサ６２および燃圧センサ６３が接続されている。
クランク角センサ６１は、エンジン５０のクランク軸の回転に応じて所定角度毎（例えば３０°ＣＡ毎）にエッジが生じるクランク角信号を出力する。マイコン２は、このクランク角信号に基づいて、エンジン５０の回転速度およびクランク角度を算出する。
【００２２】
アクセル開度センサ６２は、運転者のアクセルペダルの踏込量に応じたアクセル開度を検出する。
燃圧センサ６３は、コモンレール５２に取り付けられ、コモンレール５２に蓄圧された燃料圧力（レール圧）を検出する。
【００２３】
そして、クランク角センサ６１からのクランク信号など、ハイレベルとローレベルとに変化する信号については、外部入出力回路３により波形整形されてマイコン２に入力され、アクセル開度センサ６２および燃圧センサ６３からの信号など、アナログ信号については、外部入出力回路３に備えられた分圧回路（図示省略）によりマイコン２の入力電圧の範囲に変換されてマイコン２に入力され、さらにＡＤ変換器１６にてデジタル信号に変換される。
【００２４】
また外部入出力回路３には、各インジェクタ５１が接続されている。そして各インジェクタ５１には、マイコン２からの駆動信号に従い外部入出力回路３を介して駆動電流が供給される。
【００２５】
またマイコン２は、メインＣＰＵ１１、サブＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、タイマ１５、ＡＤ変換器１６、ＣＡＮコントローラ１７、割込コントローラ１８および入出力ポート１９と、これらを相互に接続するバス２０とを備える。
【００２６】
メインＣＰＵ１１は、エンジン５０を制御するための各種信号を入出力ポート１９を介して入力する。そしてメインＣＰＵ１１は、ＲＯＭ１３に記憶されたプログラムに基づいて各種処理を実行する。またメインＣＰＵ１１は、入出力ポート１９を介して入力される各種信号に基づいて制御演算を行い、その演算結果に基づき、インジェクタ５１等の電気負荷へ入出力ポート１９を介して駆動信号を出力することにより、エンジン５０の制御に関係する電気負荷を制御する。
【００２７】
またメインＣＰＵ１１は、インジェクタ５１の燃料噴射圧力を制御する噴射圧制御と、インジェクタ５１の燃料噴射量および噴射時期を制御する燃料噴射制御を実行する。
噴射圧制御では、コモンレール５２に蓄圧される燃料圧力を制御する。具体的には、まず、アクセル開度および回転速度等からエンジン５０の運転状態を検出して、その運転状態に適した目標レール圧を設定する。そして、燃圧センサ６３によって検出されるレール圧が目標レール圧と一致するように、燃料ポンプ５５の吐出量をフィードバック制御する。
【００２８】
燃料噴射制御では、エンジン回転速度、アクセル開度およびレール圧等に基づいて、エンジン５０の運転状態に応じた最適な噴射量および噴射時期を演算し、この演算結果にしたがってインジェクタ５１の燃料噴射を制御する。
【００２９】
サブＣＰＵ１２は、メインＣＰＵ１１が演算した噴射量を補正する処理を実行する。
ＲＯＭ１３は、電源を切ってもデータが消えない不揮発性メモリであり、メインＣＰＵ１１およびサブＣＰＵ１２が実行するプログラムと、プログラムの実行時に参照されるデータを記憶する。
【００３０】
ＲＡＭ１４は、揮発性メモリであり、メインＣＰＵ１１およびサブＣＰＵ１２の演算結果等を一時的に記憶する。
タイマ１５は、図１では１つのみ示しているが、インジェクタ５１の噴射開始タイミングを計測するタイマ、およびインジェクタ５１の噴射終了タイミングを計測するタイマなど複数設けられている。
【００３１】
ＡＤ変換器１６は、入力したアナログ信号の電圧値をデジタル値に変換する。
ＣＡＮ（Controller Area Network）コントローラ１７は、ＣＡＮ通信プロトコルを用いた車内ＬＡＮ（不図示）を介して、車両に搭載された他のＥＣＵ（不図示）との間でデータ通信を行う。
【００３２】
割込コントローラ１８は、様々な割込要因の発生を示す割込要求信号を入力し、入力した割込要求信号に対応する割込要因毎に予め設定された優先度に基づいて、優先度が最も高い割込要因に対応した割込信号をメインＣＰＵ１１またはサブＣＰＵ１２に出力する機能を有する。
【００３３】
図２に示すように、メインＣＰＵ１１は、オペレーティングシステム（以下、ＯＳという）３１を搭載している。またメインＣＰＵ１１は、サブＣＰＵ状態フラグ３２と処理要求バッファ３３を備えている。
【００３４】
サブＣＰＵ状態フラグ３２は、サブＣＰＵ１２に対して要求された処理をサブＣＰＵ１２が実行しているか否かを示す。
処理要求バッファ３３には、サブＣＰＵ１２に対する処理要求のうちサブＣＰＵ１２により実行されていないものを示す情報が、メインＣＰＵ１１に入力した順に格納される。
【００３５】
またメインＣＰＵ１１は、信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号を出力することができる。信号線ＩＲＳ１は、互いに異なる複数の割込要因のそれぞれに対応して複数設けられている。
【００３６】
サブＣＰＵ１２は、ＯＳを搭載しておらず、上記のように噴射量を補正する処理を実行する。またサブＣＰＵ１２は、信号線ＩＲＳ２を介して割込コントローラ１８へ割込要求信号を出力することができる。なお信号線ＩＲＳ２は、１本の信号線で構成されている。
【００３７】
タイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７はそれぞれ、割込コントローラ１８へ割込要求信号を出力することができる（矢印ＩＲＳ３，ＩＲＳ４，ＩＲＳ５を参照）。なおメインＣＰＵ１１は、タイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７のそれぞれに対して、割込要求のクリアを指示する割込要求クリア信号を出力することができる（矢印ＩＣＳ３，ＩＣＳ４，ＩＣＳ５を参照）。タイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７は、割込要求クリア信号が入力すると割込要求信号の出力を終了する。
【００３８】
割込コントローラ１８は、割込処理ＣＰＵテーブル４１を備える。割込処理ＣＰＵテーブル４１は、複数の割込要因のそれぞれについて、割込要因と、割込要因に対応した処理を実行するＣＰＵを示す情報（以下、実行ＣＰＵ情報ともいう）とを対応付けて記憶する。具体的に割込処理ＣＰＵテーブル４１では、割込要因のそれぞれについて、「メインＣＰＵ１１が処理を実行する」、「サブＣＰＵ１２が処理を実行する」および「メインＣＰＵ１１およびサブＣＰＵ１２の両方が処理を実行する」の何れか１つが設定される。
【００３９】
また割込コントローラ１８は、信号線ＩＳ１および信号線ＩＳ２を介してそれぞれメインＣＰＵ１１およびサブＣＰＵ１２へ割込信号を出力することができる。信号線ＩＳ１および信号線ＩＳ２は、１本の信号線で構成されている。
【００４０】
なお、メインＣＰＵ１１およびサブＣＰＵ１２はそれぞれ、信号線ＩＣＳ１および信号線ＩＣＳ２を介して割込コントローラ１８へ割込クリア信号を出力することができる。信号線ＩＣＳ１は、１本の信号線で構成されている。信号線ＩＣＳ２は、互いに異なる複数の割込要因のそれぞれに対応して複数設けられている。
【００４１】
また割込コントローラ１８は、メインＣＰＵ１１およびサブＣＰＵ１２からの割込クリア信号を入力すると割込信号の出力を終了する。
このように構成されたＥＣＵ１において、メインＣＰＵ１１は、メイン側割込時処理（後述）を実行するとともに、サブＣＰＵ１２は、サブ側割込時処理（後述）を実行する。
【００４２】
まず、メインＣＰＵ１１が実行するメイン側割込時処理の手順を図３を用いて説明する。メイン側割込時処理は、割込コントローラ１８からメインＣＰＵ１１へ割込信号が入力したときにメインＣＰＵ１１のＯＳ３１が実行する処理である。
【００４３】
メイン側割込時処理が実行されると、メインＣＰＵ１１のＯＳ３１は、まずＳ１０にて、入力した割込信号に対応した割込要因を特定する。具体的には、割込コントローラ１８の内部レジスタから、割込要因を示す割込ベクタを読み出し、読み出した割込ベクタを参照することにより割込要因を特定する。
【００４４】
さらにＳ１０では、特定した割込要因に対応した処理を実行するＣＰＵを特定する。具体的には、割込コントローラ１８の割込処理ＣＰＵテーブル４１から、特定した割込要因に対応した上記実行ＣＰＵ情報を読み出し、読み出した実行ＣＰＵ情報を参照することによりＣＰＵを特定する。
【００４５】
その後Ｓ２０にて、特定した割込要因に対応した割込要求信号の出力元（すなわち、サブＣＰＵ１２、タイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７の何れか１つ）へ割込要求クリア信号を出力する。具体的には、出力元がタイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７である場合には、それぞれ出力元がタイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７へ割込要求クリア信号を出力する（図２の矢印ＩＣＳ３，ＩＣＳ４，ＩＣＳ５を参照）。また、出力元がサブＣＰＵ１２である場合には、割込コントローラ１８へ割込要求クリア信号を出力する（図２の矢印ＩＣＳ１を参照）。これにより、割込コントローラ１８による割込信号の出力が終了する。
【００４６】
次にＳ３０にて、特定した割込要因に基づいて、この割込要因が、周辺回路（すなわち、タイマ１５、ＡＤ変換器１６およびＣＡＮコントローラ１７の何れか１つ）からの割込要求信号に起因した割込要因であるか否かを判断する。
【００４７】
ここで、周辺回路からの割込要因である場合には（Ｓ３０：ＹＥＳ）、Ｓ４０にて、Ｓ１０での特定結果に基づいて、割込要因に応じた処理をサブＣＰＵ１２が実行するか否かを判断する。ここで、サブＣＰＵ１２が実行しないと判断した場合には（Ｓ４０：ＮＯ）、Ｓ９０に移行する。
【００４８】
一方、サブＣＰＵ１２が実行すると判断した場合には（Ｓ４０：ＹＥＳ）、Ｓ５０にて、サブＣＰＵ１２の状態が「要求待ち」であるか否かを判断する。なお、サブＣＰＵ状態フラグ３２がクリアされている場合に、サブＣＰＵ１２の状態が「要求待ち」であると判断され、サブＣＰＵ状態フラグ３２がセットされている場合に、サブＣＰＵ１２の状態が「実行中」であると判断される。
【００４９】
ここで、サブＣＰＵ１２の状態が「要求待ち」である場合には（Ｓ５０：ＹＥＳ）、Ｓ６０にて、Ｓ１０で特定した割込要因に対応する信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号を出力する。さらにＳ７０にて、サブＣＰＵ状態フラグ３２をセットすることにより、サブＣＰＵ１２の状態を「実行中」に設定し、Ｓ９０に移行する。
【００５０】
一方Ｓ５０にて、サブＣＰＵ１２の状態が「要求待ち」でない場合には（Ｓ５０：ＮＯ）、Ｓ８０にて、Ｓ１０で特定した割込要因を示す情報を、サブＣＰＵ１２に対する処理要求として処理要求バッファ３３に格納し、Ｓ９０に移行する。
【００５１】
そしてＳ９０に移行すると、Ｓ１０での特定結果に基づいて、割込要因に応じた処理をメインＣＰＵ１１が実行するか否かを判断する。ここで、メインＣＰＵ１１が実行しないと判断した場合には（Ｓ９０：ＮＯ）、メイン側割込時処理を終了する。
【００５２】
一方、メインＣＰＵ１１が実行すると判断した場合には（Ｓ９０：ＹＥＳ）、Ｓ１００にて、メインＣＰＵ１１で実行中の処理を中断し、さらにＳ１１０にて、割込要因に応じて予め設定されたアプリケーション処理を実行する。そして、Ｓ１１０のアプリケーション処理が終了すると、Ｓ１２０にて、Ｓ１００で中断した処理を再開し、メイン側割込時処理を終了する。
【００５３】
またＳ３０にて、周辺回路からの割込要因でない場合には（Ｓ３０：ＮＯ）、サブＣＰＵ１２からの割込要因であると判断し、Ｓ１３０にて、処理要求バッファ３３に処理要求が格納されているか否かを判断する。ここで、処理要求が格納されていない場合には（Ｓ１３０：ＮＯ）、Ｓ１４０にて、サブＣＰＵ状態フラグ３２をクリアすることにより、サブＣＰＵ１２の状態を「要求待ち」に設定する。
【００５４】
一方、処理要求が格納されている場合には（Ｓ１３０：ＹＥＳ）、Ｓ１５０にて、処理要求バッファ３３に格納されている処理要求の中から、格納されたタイミングが最も早いものを取り出す。そしてＳ１６０にて、取り出した処理要求が示す割込要因に対応する信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号を出力し、メイン側割込時処理を終了する。
【００５５】
次に、サブＣＰＵ１２が実行するサブ側割込時処理の手順を図４を用いて説明する。サブ側割込時処理は、信号線ＩＳ２を介して割込コントローラ１８からサブＣＰＵ１２へ割込信号が入力したときにサブＣＰＵ１２が実行する処理である。
【００５６】
サブ側割込時処理が実行されると、サブＣＰＵ１２は、まずＳ２１０にて、入力した割込信号に対応した割込要因を特定する。次にＳ２２０にて、特定した割込要因に対応した信号線ＩＣＳ２を介して割込コントローラ１８へ割込要求クリア信号を出力する。これにより、割込コントローラ１８による割込信号の出力が終了する。
【００５７】
そしてＳ２３０にて、割込要因に応じて当該サブ側割込時処理に予め設定されたアプリケーション処理を実行する。そして、Ｓ２３０のアプリケーション処理が終了すると、Ｓ２４０にて、信号線ＩＲＳ２を介して割込コントローラ１８へ割込要求信号を出力し、サブ側割込時処理を終了する。
【００５８】
次に、このように構成されたメインＣＰＵ１１およびサブＣＰＵ１２の動作を説明する。
図５に示すように、まず、メインＣＰＵ１１がアプリケーション処理を実行するように設定されている割込要因に対応した割込要求信号ＲＰ１を周辺回路が出力する（時刻ｔ０１を参照）。これにより、メインＣＰＵ１１に搭載されたＯＳ３１が、割込要因を特定し、割込要因に応じたアプリケーション処理をメインＣＰＵ１１が実行すると判断する。そしてメインＣＰＵ１１は、特定した割込要因に対応した割込要求信号の出力元である周辺回路へ割込要求クリア信号を出力する（時刻ｔ０２を参照）。その後メインＣＰＵ１１は、メインＣＰＵ１１で実行中のベース処理を中断し、割込要因に応じたアプリケーション処理を実行する（時刻ｔ０３を参照）。そして、割込要因に応じたアプリケーション処理が終了すると（時刻ｔ０４を参照）、中断していたベース処理を再開する（時刻ｔ０５を参照）。
【００５９】
次に、サブＣＰＵ１２がアプリケーション処理を実行するように設定されている割込要因に対応した割込要求信号ＲＰ２を周辺回路が出力する（時刻ｔ０６を参照）。これにより、メインＣＰＵ１１に搭載されたＯＳ３１が、割込要因を特定し、割込要因に応じたアプリケーション処理をサブＣＰＵ１２が実行すると判断する。そしてメインＣＰＵ１１は、特定した割込要因に対応した割込要求信号の出力元である周辺回路へ割込要求クリア信号を出力する（時刻ｔ０７を参照）。その後メインＣＰＵ１１は、サブＣＰＵ１２の状態が「要求待ち」であるため、特定した割込要因に対応する信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号ＲＭ２を出力するとともに、サブＣＰＵ１２の状態を「実行中」に設定する（時刻ｔ０８を参照）。そしてメインＣＰＵ１１は、ベース処理を再開する（時刻ｔ０９を参照）。
【００６０】
一方サブＣＰＵ１２は、割込信号が信号線ＩＳ２を介して割込コントローラ１８から入力すると、割込要因を特定し、割込要因に対応した信号線ＩＣＳ２を介して割込コントローラ１８へ割込要求クリア信号を出力する（時刻ｔ１０を参照）。そしてサブＣＰＵ１２は、割込要因に応じて予め設定されたアプリケーション処理を実行する（時刻ｔ１１を参照）。その後、割込要因に応じたアプリケーション処理が終了すると（時刻ｔ１２を参照）、信号線ＩＲＳ２を介して割込コントローラ１８へ割込要求信号ＲＳ２を出力する（時刻ｔ１３を参照）。これにより割込コントローラ１８は、信号線ＩＳ１を介してメインＣＰＵ１１へ割込信号を出力する。
【００６１】
そしてメインＣＰＵ１１は、割込コントローラ１８から割込信号を入力すると、割込要因を特定し、サブＣＰＵ１２からの割込であると判断する。そしてメインＣＰＵ１１は、信号線ＩＣＳ１を介して割込コントローラ１８へ割込要求クリア信号を出力する。このとき、処理要求バッファ３３に処理要求が格納されていない（すなわち、空である）ため、サブＣＰＵ１２の状態を「要求待ち」に設定し（時刻ｔ１４を参照）。その後メインＣＰＵ１１は、ベース処理を再開する（時刻ｔ１５を参照）。
【００６２】
次に、メインＣＰＵ１１およびサブＣＰＵ１２の両方がアプリケーション処理を実行するように設定されている割込要因に対応した割込要求信号ＲＰ３を周辺回路が出力する（時刻ｔ１６を参照）。これにより、メインＣＰＵ１１に搭載されたＯＳ３１が、割込要因を特定し、割込要因に応じたアプリケーション処理をメインＣＰＵ１１とサブＣＰＵ１２が実行すると判断する。そしてメインＣＰＵ１１は、特定した割込要因に対応した割込要求信号の出力元である周辺回路へ割込要求クリア信号を出力する（時刻ｔ１７を参照）。その後メインＣＰＵ１１は、サブＣＰＵ１２の状態が「要求待ち」であるため、特定した割込要因に対応する信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号ＲＭ３を出力するとともに、サブＣＰＵ１２の状態を「実行中」に設定する（時刻ｔ１８を参照）。さらにメインＣＰＵ１１は、メインＣＰＵ１１で実行中のベース処理を中断し、割込要因に応じたアプリケーション処理を実行する（時刻ｔ１９を参照）。そして、割込要因に応じたアプリケーション処理が終了すると（時刻ｔ２２を参照）、中断していたベース処理を再開する（時刻ｔ２３を参照）。
【００６３】
一方サブＣＰＵ１２は、割込信号が信号線ＩＳ２を介して割込コントローラ１８から入力すると、割込要因を特定し、割込要因に対応した信号線ＩＣＳ２を介して割込コントローラ１８へ割込要求クリア信号を出力する（時刻ｔ２０を参照）。そしてサブＣＰＵ１２は、割込要因に応じて予め設定されたアプリケーション処理を実行する（時刻ｔ２１を参照）。
【００６４】
次に、サブＣＰＵ１２がアプリケーション処理を実行するように設定されている割込要因に対応した割込要求信号ＲＰ４を周辺回路が出力する（時刻ｔ２４を参照）。これにより、メインＣＰＵ１１に搭載されたＯＳ３１が、割込要因を特定し、割込要因に応じた処理をサブＣＰＵ１２が実行すると判断する。そしてメインＣＰＵ１１は、特定した割込要因に対応した割込要求信号の出力元である周辺回路へ割込要求クリア信号を出力する（時刻ｔ２５を参照）。その後メインＣＰＵ１１は、サブＣＰＵ１２の状態が「実行中」であるため、特定した割込要因を示す情報を処理要求として処理要求バッファ３３に格納する（時刻ｔ２６を参照）。その後メインＣＰＵ１１は、ベース処理を再開する（時刻ｔ２７を参照）。
【００６５】
次にサブＣＰＵ１２は、割込要因に応じたアプリケーション処理が終了すると（時刻ｔ２８を参照）、信号線ＩＲＳ２を介して割込コントローラ１８へ割込要求信号ＲＳ３を出力する（時刻ｔ２９を参照）。これにより割込コントローラ１８は、信号線ＩＳ１を介してメインＣＰＵ１１へ割込信号を出力する。
【００６６】
そしてメインＣＰＵ１１は、割込コントローラ１８から割込信号を入力すると、割込要因を特定し、サブＣＰＵ１２からの割込であると判断する。そしてメインＣＰＵ１１は、信号線ＩＣＳ１を介して割込コントローラ１８へ割込要求クリア信号を出力する。このとき、割込要求信号ＲＰ４の割込要因に応じた処理要求が処理要求バッファ３３に格納されているため、この処理要求を処理要求バッファ３３から取り出す（時刻ｔ３０を参照）。
【００６７】
さらにメインＣＰＵ１１は、取り出した処理要求により特定される割込要因に対応する信号線ＩＲＳ１を介して割込コントローラ１８へ割込要求信号ＲＭ４を出力する（時刻ｔ３１を参照）。その後メインＣＰＵ１１は、ベース処理を再開する（時刻ｔ３２を参照）。
【００６８】
一方サブＣＰＵ１２は、割込信号が信号線ＩＳ２を介して割込コントローラ１８から入力すると、割込要因を特定し、割込要因に対応した信号線ＩＣＳ２を介して割込コントローラ１８へ割込要求クリア信号を出力する（時刻ｔ３３を参照）。そしてサブＣＰＵ１２は、割込要因に応じて予め設定されたアプリケーション処理を実行する（時刻ｔ３４を参照）。その後、割込要因に応じたアプリケーション処理が終了すると（時刻ｔ３５を参照）、信号線ＩＲＳ２を介して割込コントローラ１８へ割込要求信号ＲＳ４を出力する（時刻ｔ３６を参照）。これにより割込コントローラ１８は、信号線ＩＳ１を介してメインＣＰＵ１１へ割込信号を出力する。
【００６９】
そしてメインＣＰＵ１１は、割込コントローラ１８から割込信号が入力すると、割込要因を特定し、サブＣＰＵ１２からの割込であると判断する。そしてメインＣＰＵ１１は、信号線ＩＣＳ１を介して割込コントローラ１８へ割込要求クリア信号を出力する。このとき、処理要求バッファ３３に処理要求が格納されていない（すなわち、空である）ため、サブＣＰＵ１２の状態を「要求待ち」に設定し（時刻ｔ３７を参照）。その後メインＣＰＵ１１は、ベース処理を再開する（時刻ｔ３８を参照）。
【００７０】
次に、燃料噴射制御のためにメインＣＰＵ１１およびサブＣＰＵ１２が行う動作を説明する。
タイマ１５は、少なくとも、インジェクタ５１の噴射開始タイミングで割込要求信号を出力する噴射開始タイマ１５ａと、インジェクタ５１の噴射終了タイミングで割込要求信号を出力する噴射終了タイマ１５ｂとから構成されている。
【００７１】
割込コントローラ１８の割込処理ＣＰＵテーブル４１には、噴射開始タイマ１５ａと噴射終了タイマ１５ｂに起因する割込要因のそれぞれについて、「メインＣＰＵ１１およびサブＣＰＵ１２の両方が処理を実行する」が設定される。
【００７２】
まず噴射開始タイマ１５ａは、噴射開始タイミングになると、割込コントローラ１８へ割込要求信号を出力する。
割込コントローラ１８は、噴射開始タイマ１５ａからの割込要求信号が入力すると、メインＣＰＵ１１へ割込信号を出力する。
【００７３】
メインＣＰＵ１１は、割込コントローラ１８からの割込信号が入力すると、割込要因が噴射開始タイミングであることを特定し、メインＣＰＵ１１およびサブＣＰＵ１２の両方でアプリケーション処理を実行すべきであると判断するとともに、タイマ１５ａへ割込要求クリア信号を出力する。さらにメインＣＰＵ１１は、サブＣＰＵ１２の状態が「要求待ち」である場合には、タイマ１５ａからの割込要求に対応するメインＣＰＵ１１からの割込要求信号を割込コントローラ１８へ出力する。そしてメインＣＰＵ１１は、サブＣＰＵ１２の状態を「実行中」に設定する。
【００７４】
次にメインＣＰＵ１１は、メインＣＰＵ１１で実行中の処理を中断して、タイマ１５ａからの割込要求に対応したアプリケーション処理を実行する。このアプリケーション処理は、サブＣＰＵ１２で算出された補正値を使用して、インジェクタ５１による燃料噴射を指示する噴射信号のパルス出力の確定終了時刻を算出し、確定終了時刻を噴射終了タイマ１５ｂに設定する処理である。そしてメインＣＰＵ１１は、アプリケーション処理が終了すると、このアプリケーション処理の実行のために中断していた処理を再開する。
【００７５】
割込コントローラ１８は、タイマ１５ａからの割込要求に対応するメインＣＰＵ１１からの割込要求信号が入力すると、タイマ１５ａからの割込要求に対応する割込信号をサブＣＰＵ１２へ出力する。
【００７６】
サブＣＰＵ１２は、割込信号が割込コントローラ１８から入力すると、割込要因が噴射開始タイミングであることを特定し、割込要求クリア信号を割込コントローラ１８へ出力する。さらにサブＣＰＵ１２は、タイマ１５ａからの割込要求に対応したアプリケーション処理を実行する。このアプリケーション処理は、インジェクタ５１の劣化に起因して要求噴射量と実噴射量との間で生じる誤差を補正する補正値を算出する処理である。そしてサブＣＰＵ１２は、アプリケーション処理が終了すると、割込要求信号を割込コントローラ１８へ出力する。
【００７７】
割込コントローラ１８は、サブＣＰＵ１２からの割込要求信号が入力すると、サブＣＰＵ１２からの割込要求に対応する割込信号をメインＣＰＵ１１へ出力する。
メインＣＰＵ１１は、割込コントローラ１８からの割込信号が入力すると、サブＣＰＵ１２からの割込要因であると判断し、割込コントローラ１８へ割込要求クリア信号を出力する。ここで、処理要求バッファ３３に処理要求が格納されていない場合には、メインＣＰＵ１１は、サブＣＰＵ１２の状態を「要求待ち」に設定する。
【００７８】
そして噴射終了タイマ１５ｂは、噴射終了タイミングになると、割込コントローラ１８へ割込要求信号を出力する。
次に割込コントローラ１８は、噴射終了タイマ１５ｂからの割込要求信号が入力すると、メインＣＰＵ１１へ割込信号を出力する。
【００７９】
メインＣＰＵ１１は、割込コントローラ１８からの割込信号が入力すると、割込要因が噴射終了タイミングであることを特定し、メインＣＰＵ１１およびサブＣＰＵ１２の両方でアプリケーション処理を実行すべきであると判断するとともに、タイマ１５ｂへ割込要求クリア信号を出力する。さらにメインＣＰＵ１１は、サブＣＰＵ１２の状態が「要求待ち」である場合には、タイマ１５ｂからの割込要求に対応するメインＣＰＵ１１からの割込要求信号を割込コントローラ１８へ出力する。そしてメインＣＰＵ１１は、サブＣＰＵ１２の状態を「実行中」に設定する。
【００８０】
次にメインＣＰＵ１１は、メインＣＰＵ１１で実行中の処理を中断して、タイマ１５ｂからの割込要求に対応したアプリケーション処理を実行する。このアプリケーション処理は、サブＣＰＵ１２で算出された補正値を使用して、次の噴射信号のパルス出力の開始時刻と仮の終了時刻を算出し、開始時刻を噴射開始タイマ１５ａに設定するとともに、仮の終了時刻を噴射終了タイマ１５ｂに設定する処理である。そしてメインＣＰＵ１１は、アプリケーション処理が終了すると、このアプリケーション処理の実行のために中断していた処理を再開する。
【００８１】
割込コントローラ１８は、タイマ１５ｂからの割込要求に対応するメインＣＰＵ１１からの割込要求信号が入力すると、タイマ１５ｂからの割込要求に対応する割込信号をサブＣＰＵ１２へ出力する。
【００８２】
サブＣＰＵ１２は、割込信号が割込コントローラ１８から入力すると、割込要因が噴射終了タイミングであることを特定し、割込要求クリア信号を割込コントローラ１８へ出力する。さらにサブＣＰＵ１２は、タイマ１５ｂからの割込要求に対応したアプリケーション処理を実行する。このアプリケーション処理は、インジェクタ５１の劣化に起因して要求噴射量と実噴射量との間で生じる誤差を補正する補正値を算出する処理である。そしてサブＣＰＵ１２は、アプリケーション処理が終了すると、割込要求信号を割込コントローラ１８へ出力する。
【００８３】
割込コントローラ１８は、サブＣＰＵ１２からの割込要求信号が入力すると、サブＣＰＵ１２からの割込要求に対応する割込信号をメインＣＰＵ１１へ出力する。
メインＣＰＵ１１は、割込コントローラ１８からの割込信号が入力すると、サブＣＰＵ１２からの割込要因であると判断し、割込コントローラ１８へ割込要求クリア信号を出力する。ここで、処理要求バッファ３３に処理要求が格納されていない場合には、メインＣＰＵ１１は、サブＣＰＵ１２の状態を「要求待ち」に設定する。
【００８４】
このように構成されたＥＣＵ１では、割込コントローラ１８が、メインＣＰＵ１１およびサブＣＰＵ１２の少なくとも一方に対して割込を要求する割込要求信号（以下、第１割込要求信号という）が入力すると、第１割込要求信号に対応する割込信号（以下、第１割込信号という）をメインＣＰＵ１１へ出力するとともに、メインＣＰＵ１１からサブＣＰＵ１２に対して割込を要求する割込要求信号（以下、第２割込要求信号という）がメインＣＰＵ１１から入力すると、第２割込要求信号に対応する割込信号（以下、第２割込信号という）をサブＣＰＵ１２へ出力する。
【００８５】
またメインＣＰＵ１１では、割込コントローラ１８から第１割込信号が入力すると、第１割込信号に対応する第１割込要求信号が周辺回路からのものであるか否かを判断する（Ｓ３０）。またメインＣＰＵ１１では、第１割込要求信号が周辺回路からのものであると判断した場合に（Ｓ３０：ＹＥＳ）、第１割込信号に対応する処理をメインＣＰＵ１１が実行するか否かを判断する（Ｓ９０）。そしてメインＣＰＵ１１では、第１割込信号に対応する処理をメインＣＰＵ１１が実行すると判断した場合には（Ｓ９０：ＹＥＳ）、第１割込信号に対応して予め設定された処理を実行する（Ｓ１１０）。
【００８６】
さらにメインＣＰＵ１１では、第１割込要求信号が周辺回路からのものであると判断した場合に（Ｓ３０：ＹＥＳ）、第１割込信号に対応する処理をサブＣＰＵ１２が実行するか否かを判断する（Ｓ４０）。そしてメインＣＰＵ１１では、第１割込信号に対応する処理をサブＣＰＵ１２が実行すると判断した場合に（Ｓ４０：ＹＥＳ）、第２割込要求信号を割込コントローラ１８へ出力する（Ｓ６０）。
【００８７】
そしてサブＣＰＵ１２では、第２割込信号が入力すると、第２割込信号に対応して予め設定された処理を実行する（Ｓ２３０）。
このように構成されたＥＣＵ１では、サブＣＰＵ１２に対して割込を要求する割込要求信号が周辺回路から割込コントローラ１８に入力した場合に、この割込要求信号に対応する割込信号が上記第１割込信号としてメインＣＰＵ１１に入力する。そしてメインＣＰＵ１１は、入力した第１割込信号に対応する処理をサブＣＰＵ１２が実行すると判断した場合に、サブＣＰＵ１２に対して割込を要求する第２割込要求信号を出力する。これによりサブＣＰＵ１２は、周辺回路からサブＣＰＵ１２に対して要求された処理を実行する。
【００８８】
すなわちＥＣＵ１では、周辺回路からメインＣＰＵ１１に対する割込要求と、周辺回路からサブＣＰＵ１２に対する割込要求の両方をメインＣＰＵ１１が管理することができる。これにより、メインＣＰＵ１１に対する割込要求をメインＣＰＵ１１が管理するとともに、サブＣＰＵ１２に対する割込要求をサブＣＰＵ１２が管理する場合に生じる問題を回避することができる。
【００８９】
また、メインＣＰＵ１１に対する割込要求とサブＣＰＵ１２に対する割込要求の両方をメインＣＰＵ１１で管理するため、メインＣＰＵ１１にオペレーティングシステムを搭載する必要がある一方、サブＣＰＵ１２にオペレーティングシステムを搭載する必要がなくなる。これによりサブＣＰＵ１２は、オペレーティングシステムが不要になった分リソースを軽減することができ、より多くの処理を実行することが可能となる。
【００９０】
またサブＣＰＵ１２では、第２割込信号に対応して予め設定された処理の実行が終了すると、メインＣＰＵ１１に対して割込を要求する割込要求信号を出力する（Ｓ２４０）。これにより割込コントローラ１８は、サブＣＰＵ１２からの割込要求信号に対応して割込信号をメインＣＰＵ１１へ出力することができる。したがってメインＣＰＵ１１は、サブＣＰＵ１２からの割込要求信号に対応して割込信号が入力することにより、第２割込信号に対応して予め設定された処理がサブＣＰＵ１２で終了したことを認識することができる。
【００９１】
またメインＣＰＵ１１では、サブＣＰＵ１２が実行すると判断した処理のうち、この処理に対応する第２割込要求信号が割込コントローラ１８へ出力されていないものを示す処理要求情報を処理要求バッファ３３に格納する（Ｓ８０）。そしてメインＣＰＵ１１では、割込コントローラ１８から第１割込信号が入力すると、第１割込信号に対応する第１割込要求信号がサブＣＰＵ１２からのものであるか否かを判断する（Ｓ３０）。ここで、第１割込要求信号がサブＣＰＵ１２からのものであると判断した場合に（Ｓ３０：ＮＯ）、メインＣＰＵ１１では、処理要求バッファ３３に格納された処理要求情報を取り出して、取り出した処理要求情報に対応する処理の実行を要求する割込要求信号を割込コントローラ１８へ出力する（Ｓ１５０，Ｓ１６０）。
【００９２】
これにより、サブＣＰＵ１２で処理を実行している最中に、周辺回路からサブＣＰＵ１２に対する処理を要求する割込信号がメインＣＰＵ１１に入力した場合であっても、この割込信号の割込要求を待機させておき、実行中の処理が終了した後に、待機させていた割込要求に対応する処理を順次サブＣＰＵ１２に実行させることができる。
【００９３】
また、ＥＣＵ１は車両に搭載され、メインＣＰＵ１１は、車両に搭載されたインジェクタ５１の噴射量を制御するための制御信号の出力に関する演算を実行し、サブＣＰＵ１２は、この制御信号を補正する演算を実行する。このようにメインＣＰＵ１１で行う処理とサブＣＰＵ１２で行う処理を分担することによる利点は以下の通りである。
【００９４】
まず、車両制御は各制御間で複雑に入り組んでおり、噴射制御をメインＣＰＵ１１からサブＣＰＵ１２へ移行する場合に、メインＣＰＵ１１内の別の制御のパラメータが必要となり、そのパラメータをメインＣＰＵ１１とサブＣＰＵ１２とで共有しなくてはならない。しかし、インジェクタ５１の噴射量とその補正量と間では依存関係が低いため、メインＣＰＵ１１とサブＣＰＵ１２との間で共有すべきパラメータ数を抑制することができる。
【００９５】
また、上述のように、インジェクタ５１の噴射量とその補正量と間では依存関係が低いため、１つのＣＰＵのみを搭載するマイコンから複数のＣＰＵを搭載するマイコンへ移行する際に、車両制御への影響を抑制することが可能である。
【００９６】
また、噴射量を制御するための制御信号の出力に関する演算は高頻度で実行されるため、この制御信号を補正する演算も高頻度で実行される。すなわち、噴射量の制御信号を補正する演算の負荷は高く、このような負荷の高い処理を、サブＣＰＵ１２側で分担することができる。このため、メインＣＰＵ１１とサブＣＰＵ１２とで処理を分担することによるメインＣＰＵ１１側での演算負荷低減の効果を高めることができる。
【００９７】
以上説明した実施形態において、メインＣＰＵ１１は本発明における第１ＣＰＵ、サブＣＰＵ１２は本発明における第２ＣＰＵ、Ｓ３０の処理は本発明における第１出力元判断手段、Ｓ９０の処理は本発明における第１実行判断手段、Ｓ１１０の処理は本発明における第１実行手段、Ｓ４０の処理は本発明における第２実行判断手段、Ｓ６０の処理は本発明における第１信号出力手段、Ｓ２３０の処理は本発明における第２実行手段、Ｓ２４０の処理は本発明における第２信号出力手段、Ｓ８０の処理は本発明における格納手段、Ｓ３０の処理は本発明における第２出力元判断手段、Ｓ１５０、Ｓ１６０の処理は本発明における第３信号出力手段である。
【００９８】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、メインＣＰＵ１１とサブＣＰＵ１２メインの割込をメインＣＰＵ１１が管理するものを示したが、メインＣＰＵ１１が２以上のサブＣＰＵの割込を管理するようにしてもよい。
【００９９】
また上記実施形態では、インジェクタ５１の噴射量を制御する処理をメインＣＰＵ１１とサブＣＰＵ１２とで分担するものを示したが、車両に搭載された機器を制御する処理であればよく、例えば点火装置を制御する処理を分担するようにしてもよい。
【符号の説明】
【０１００】
１…ＥＣＵ、１１…メインＣＰＵ、１２…サブＣＰＵ、１５…タイマ、１６…ＡＤ変換器、１７…ＣＡＮコントローラ、１８…割込コントローラ
【図１】
2014219846.tif 000003
【図２】
2014219846.tif 000004
【図３】
2014219846.tif 000005
【図４】
2014219846.tif 000006
【図５】
2014219846.tif 000007
【図６】
2014219846.tif 000008