(57)【要約】【課題】マルチプロセッサを搭載した内燃機関の制御装置において、内燃機関の回転数に左右されることなく、各プロセッサに演算処理の負荷を均等に分配でき、しかも、マルチプロセッサ全体での負荷の抑制を図った内燃機関の制御装置を提供する。【解決手段】マルチプロセッサを搭載した内燃機関の制御装置において、各プロセッサがクランク角に同期して割込みルーチンｃａを順番に処理するルーチン処理手段を備えることを特徴とする。【選択図】図３
2010196619.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサを搭載した内燃機関の制御装置において、
各プロセッサがクランク角に同期して割込みルーチンを順番に処理するルーチン処理手段を備えることを特徴とする内燃機関の制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置において、
前記ルーチン処理手段は、
一定のクランク角毎に、割込み信号を発生する割込み信号発生手段と、
各プロセッサが、前記一定のクランク角、前記割り込み信号発生時のクランク角、および割り当てられたプロセッサ識別情報に基づいて、割り込みルーチンを実行すべきか否かを判定する割り込みルーチン実行可否判定手段と、
を有することを特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関する。特に、マルチプロセッサを搭載した内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来より、自動車のエンジンの制御装置は、クランク角センサ、カム・ポジションセンサ等が検出する検出値を用いた演算結果に基づいて燃料噴射制御、点火制御などを行っている。
【０００３】
また、従来より、自動車のエンジンの制御装置として、マルチプロセッサを搭載したものが知られている（例えば特許文献１〜４を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６１−２７７８４９号公報
【特許文献２】特開平１０−２１３００１号公報
【特許文献３】特開２００５−２５９０２３号公報
【特許文献４】特開２００６−１７０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、エンジンの制御装置にマルチプロセッサを搭載したものを採用した場合、各プロセッサに演算処理の負荷を均等に分配することが難しいという問題があった。これは、一定のクランク角（例えばクランク角３０°，６０°，９０°，・・・）に同期して実行すべき演算処理（以下「クランク角同期処理」ともいう。）の負荷がエンジン回転数に応じて変動することが１つの要因となっている。
【０００６】
また、演算処理の順序性も負荷を均等に分配することを難しくする要因となっている。
【０００７】
また、エンジンの制御装置にマルチプロセッサを搭載したものを採用した場合、各プロセッサ間における同期制御や排他制御を少なくして、制御装置全体での負荷を軽減することが望ましい。つまり、各プロセッサに均等に負荷を分配することができたとしても、同期制御や排他制御が頻繁に行われれば、エンジン制御以外の演算処理の負担が増加してしまう。
【０００８】
また、エンジンの制御装置にマルチプロセッサを採用するに当たっては、制御プログラムをマルチプロセッサ対応のものに変更する必要があり、その際に、同期・排他制御の設計、リエントラント設計等に多くの工数を費やさなければならない。このため、なるべく実績のある既存のプログラムを利用して上記工数を減らすことが望まれる。
【０００９】
また、エンジン回転数が１００００ｒｐｍなどの高回転になると、クランク角同期処理を極めて短い時間で処理しなければならず、さもなければ、プロセッサの使用効率が大きく下がってしまう。
【００１０】
一方、プロセッサ間での負荷分散を動的に行うことは、品質保証上、現実的ではない。
【００１１】
上記問題点を解決するために、例えば、マルチプロセッサの中の１つのプロセッサのみに、クランク角同期処理を割り当てることが考えられる。
【００１２】
しかし、この場合は、エンジンの回転変動によって特定のプロセッサの負荷がばらついてしまう。また、エンジンの高回転時にあわせて演算処理の負荷を均等に分配できるようにしても、低回転時に特定のプロセッサが暇になり過ぎてしまう。また、プロセッサの数を増してもクランク角同期処理の負荷は１つのプロセッサが担うこととなり分散できない。
【００１３】
また上記問題点を解決するために、例えば、クランク角同期信号から、あるプロセッサがクランクカウンタを生成した後、オペレーティングシステムのプロセッサ間割込みなどを用いて、他のプロセッサが持っているクランク角同期処理を全て起床させることが考えられる。
【００１４】
しかし、この場合は、プロセッサが増えると同期制御と排他制御のコストが大きくなるという別の問題が増える。また、クランク角同期処理には、順序性や同時性が必要となるため、プロセッサが増えると演算処理の負荷分配が更に困難となる。
【００１５】
本発明は、既述の問題点に鑑みて創案されたものであり、マルチプロセッサを搭載した内燃機関の制御装置において、内燃機関の回転数に左右されることなく、各プロセッサに演算処理の負荷を均等に分配でき、しかも、マルチプロセッサ全体での演算処理の負荷の抑制を図った内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述の課題を解決するための手段として、本発明の内燃機関の制御装置は、以下のように構成されている。
【００１７】
すなわち、本発明の内燃機関の制御装置は、マルチプロセッサを搭載した内燃機関の制御装置において、各プロセッサがクランク角に同期して割込みルーチンを順番に処理するルーチン処理手段を備えることを特徴としている。
【００１８】
かかる構成を備える内燃機関の制御装置によれば、内燃機関の回転数に左右されることなく、各プロセッサに演算処理の負荷を均等に分配できる。しかも、クランク角同期処理の分配については、同期制御、排他制御等を必要としないため、その分、マルチプロセッサ全体での演算処理の負荷の増加を抑えることができる。
【００１９】
また、前記ルーチン処理手段は、例えば、一定のクランク角毎に、割込み信号を発生する割込み信号発生手段と、各プロセッサが、前記一定のクランク角、前記割り込み信号発生時のクランク角、および割り当てられたプロセッサ識別情報に基づいて、割り込みルーチンを実行すべきか否かを判定する割り込みルーチン実行可否判定手段と、を有するものとすることができる。
【発明の効果】
【００２０】
本発明によれば、内燃機関の回転数に左右されることなく、各プロセッサに演算処理の負荷を均等に分配できる。しかも、クランク角同期処理の分配については、同期制御、排他制御等を必要としないため、その分、マルチプロセッサ全体での演算処理の負荷の増加を抑えることもできる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態に係る内燃機関の制御装置におけるマイクロコントローラの構成を示す図である。
【図２】本発明の実施の形態に係る内燃機関の制御装置における処理動作の手順を示すフローチャートである。
【図３】エンジンの低回転時における、クランク角、クランク角同期信号、第１プロセッサの処理内容、第２プロセッサの処理内容を示すタイムチャートである。
【図４】エンジンの高回転時における、クランク角、クランク角同期信号、第１プロセッサの処理内容、第２プロセッサの処理内容を示すタイムチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について図面を参照して説明する。図１は、エンジンの制御装置であるＥＣＵ（電子制御ユニット）に搭載されているマイクロコントローラ１の構成を示す図である。
【００２３】
マイクロコントローラ１は、割り込み信号発生部２、第１プロセッサ３、第２プロセッサ４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６、パルス生成ユニット７等を備えている。割り込み信号発生部２と第１および第２プロセッサ３，４は、システムバス８によって通信可能に接続されており、第１および第２プロセッサ３，４とＲＯＭ５、ＲＡＭ６とはメモリバス９を介して通信可能に接続されている。また、割り込み信号発生部２と各プロセッサ３，４の割り込みコントローラ３ａ，４ａとは割り込み信号線１１にて接続されている。
【００２４】
ＥＣＵは、上記マイクロコントローラ１以外の制御部によって、クランクポジションセンサによって検出される１０°毎のクランク回転信号からクランク角３０°毎にクランク角同期信号を生成し、これを割り込み信号発生部２に入力する。なお、クランク角同期信号は、プロセッサ３，４にも入力される。
【００２５】
割り込み信号発生部２は、入力されるクランク角同期信号に基づいて、クランク角３０°毎に割り込み信号を発生する。発生した割り込み信号は２つのプロセッサ３，４に同時に入力される。
【００２６】
第１および第２プロセッサ３，４は、ＳＭＰ型（対象型）マルチプロセッサからなる。各プロセッサ３，４には、割り込み信号を検出するための割り込みコントローラ３ａ，４ａがそれぞれ搭載されている。２つのプロセッサ３，４は、複数チップからなるものであってもよいし、シングルチップのマルチコアプロセッサであってもよい。なお、通信コストが低い構成とすることが好ましい。
【００２７】
ＲＯＭ５およびＲＡＭ６は、２つのプロセッサ３，４の共有メモリである。つまり、このマイクロコントローラ１には、ＵＭＡ（Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）構成が採用されており、２つのプロセッサ３，４に共通の物理アドレス空間がマッピングされている。但し、２つのプロセッサ３，４が共有するリソースへのアクセスコストが数クロックの誤差内で済むのであれば、ＮＵＭＡ（Ｎｏｎ-Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）構成を採用することも可能である。
【００２８】
パルス生成ユニット７は、プロセッサ３，４の指示に従って、インジェクタの通電信号、イグナイタの通電信号、ＶＶＴ（可変バルブタイミング機構）用アクチュエータの通電信号等を生成し、出力する。
【００２９】
つぎに、マイクロコントローラ１の処理動作について上記図１および図２に示すフローチャートに基づいて説明する。
【００３０】
割り込み信号発生部２において、クランク角同期信号に基づいて、エンジンのクランク角３０°毎に割り込み信号が発生すると、この割り込み信号は第１および第２プロセッサ３，４の割り込みコントローラ３ａ，４ａによって検出される（ＳＴ１）。
【００３１】
つぎに、各プロセッサ３，４は、（ＣＡ／３０）／ＰＥＮＵＭの剰余を算出し、算出した剰余が自身の識別番号（本実施形態では第１プロセッサ３に識別番号は「０」が、第２プロセッサ４に識別番号は「１」が付与されている。）に等しいか否かを判定（割込実行可否判定）する（ＳＴ２）。なお、ＣＡは、割り込み信号検出時のクランク角であり、ＰＥＮＵＭはプロセッサの数量（本実施形態では「２」）である。割り込み信号検出時のクランク角は、クランク角同期信号から取得される。
【００３２】
前記ＳＴ２において肯定判定をした場合は、クランク角同期処理（クランク角３０°毎に演算が必要な処理）、例えば燃料噴射制御、点火制御等に関する演算処理を実行する（ＳＴ３）。
【００３３】
次いで、クランク角同期処理以外の演算処理（以下「クランク角非同期処理」ともいう。）、例えばＶＶＴ制御等の演算処理を実行する（ＳＴ４）。そして、クランク角同期処理およびクランク角非同期処理が終了した後は、アイドル状態（ｉｄｌｅ）に遷移する（ＳＴ５）。
【００３４】
一方、前記ＳＴ２において否定判定をした場合は、ＳＴ３、ＳＴ４の処理を行わずに、処理手順をＳＴ５へ進める。
【００３５】
図３は、エンジン（６気筒エンジン）の低回転時における、クランク角（クランク・アングル）、クランク角同期信号、第１プロセッサ３の処理内容、第２プロセッサ４の処理内容を示すタイムチャートである。割り込み信号発生部２によりクランク角３０°毎に割り込み信号が発生されると、各プロセッサ３，４は、交互に割り込みルーチンを処理する。すなわち、クランク角３０°毎に発生する割り込み信号は、両プロセッサ３，４の割り込みコントローラ３ａ，４ａによって同時に検出されるが、前記ＳＴ２の判定が双方のプロセッサ３，４において実行されることにより、割り込みルーチンの処理は、何れか一方のプロセッサ３又は４によって実行されることとなる。
【００３６】
例えば、クランク角０°のときに発生する割り込み信号が双方のプロセッサ３，４の割り込みコントローラ３ａ，４ａに検出されると、双方のプロセッサ３，４において既述の演算式（０／３０）／２の剰余として０が算出される。そして、算出された値に等しい識別番号０が割り当てられている第１プロセッサ３のみによって、クランク角同期処理ｃａ、クランク角非同期処理ｍｓが順に実行される。なお、図中「ｉｄｌｅ」はプロセッサがアイドル状態であることを示す。
【００３７】
また、クランク角３０°のときに発生する割り込み信号が双方のプロセッサ３，４の割り込みコントローラ３ａ，４ａに検出されると、双方プロセッサ３，４において既述の演算式（３０／３０）／２の剰余として１が算出される。そして、算出された値に等しい識別番号１が割り当てられている第２プロセッサ４のみによって、割り込みルーチンとしてのクランク角同期処理ｃａおよびクランク角非同期処理ｍｓが順に実行される。
【００３８】
その後、クランク角６０°、９０°、・・・において発生する割り込み信号も双方プロセッサ３，４の割り込みコントローラ３ａ，４ａに検出されて、既述の演算式により剰余として、０、１、０、１、・・・が順に算出される。つまり、識別番号０が割り当てられている第１コントローラ３と識別番号１が割り当てられている第２コントローラ４とによって交互に割り込みルーチンが処理されるようになっている。
【００３９】
なお、各プロセッサ３，４によって交互に順次実行される上記クランク角同期処理ｃａの例としては、第１気筒の燃料噴射制御に関する演算処理、第１気筒の点火制御に関する演算処理、第２気筒の燃料噴射制御に関する演算処理、第２気筒の点火制御に関する演算処理、・・・第６気筒の燃料噴射制御に関する演算処理、第６気筒の点火制御に関する演算処理等が挙げられる。
【００４０】
図４はエンジンの高回転時における、クランク角（クランク・アングル）、クランク角同期信号、第１プロセッサ３の処理内容、第２プロセッサ４の処理内容を示すタイムチャートである。この図に示すように、エンジンの回転数が高回転になると、アイドル状態ｉｄｌｅの時間が削減されて、クランク角同期処理ｃａ、クランク角非同期処理ｍｓの処理時間は確保される。
【００４１】
クランク角同期処理ｃａ、クランク角非同期処理ｍｓ以外の割り込み処理は、優先度に応じて、クランク角同期処理ｃａ又はクランク角非同期処理ｍｓからＣＰＵ実行権を奪って処理、又はアイドル状態において処理される。
【００４２】
また、本実施形態のように、エンジン制御の１サイクルで発生するクランク角同期信号数（本実施形態では２４）がプロセッサの数（本実施形態では２）で割り切れる場合は、１番気筒についてのクランク角同期処理ｃａ、クランク角非同期処理ｍｓは同じプロセッサ３によって実行される。
【００４３】
以上の説明から明らかように、本発明のエンジンの制御装置によれば、エンジン回転数に左右されることなく、演算処理の負荷を、複数のプロセッサ３，４に均等に分配することができる。
【００４４】
この結果、マイクロコントローラ１における部品のスペックを抑えることがきる。例えば、低周波数駆動を採用することができ、これにより低速トランジスタを採用できる。さらに、低速トランジスタの採用により、マイクロコントローラ１の部品のコストダウンを図れるとともに、消費電力を抑制できる。
【００４５】
また、クランク角同期処理ｃａ、クランク角非同期処理ｍｓに係るプログラムはシーケンシャルに走るため、プロセッサ３，４間での同期制御および排他制御を減らすことができる。これにより、設計コストの低減も期待できる。
【００４６】
また、クランク角同期処理ｃａ、クランク角非同期処理ｍｓに関するプログラムは各プロセッサ３，４に共通のものであるため、マイクロコントローラ１に新たにプロセッサを追加する場合であっても、ソフトウエアの変更量が少なくて済む。
【産業上の利用可能性】
【００４７】
本発明は、マルチプロセッサを搭載した内燃機関の制御装置に適用可能である。
【符号の説明】
【００４８】
１  マイクロコントローラ
２  割り込み信号発生部
３  第１プロセッサ
３ａ  割り込みコントローラ
４  第２プロセッサ
４ａ  割り込みコントローラ
１１  割り込み信号線
【図１】
2010196619.tif 000003
【図２】
2010196619.tif 000004
【図３】
2010196619.tif 000005
【図４】
2010196619.tif 000006