(57)【特許請求の範囲】
【請求項１】
複数のコアが搭載されたマルチコアプロセッサを有し、内燃機関の動作に関わる複数のタスクを処理する内燃機関の制御装置であって、
前記複数のタスクのうち前記内燃機関の回転角に同期する回転角同期タスクを前記複数のコアに分配して割り当てる第１の割当手段と、
前記複数のタスクのうち前記内燃機関の回転角に同期しない回転角非同期タスクを前記複数のコアに分配して割り当てる第２の割当手段と、
前記第１の割当手段および前記第２の割当手段を制御する分配機能部と、を備え、
前記複数のコアには、前記回転角同期タスクの処理のための所定の演算負荷範囲がそれぞれ設定され、
前記分配機能部は、前記回転角同期タスクによる演算負荷が各コアの前記所定の演算負荷範囲を超えないように前記第１の割当手段を制御し、且つ、前記回転角非同期タスクが各コアにおける前記所定の演算負荷範囲とは異なる演算負荷範囲に割り当てられるように前記第２の割当手段を制御することを特徴とする内燃機関の制御装置。
【請求項２】
前記所定の演算負荷範囲は、各コアに割り当て可能な前記回転角同期タスクによる演算負荷の上限であることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記第２の割当手段は、前記複数のタスクのうち時間に同期する時間同期タスクを前記複数のコアに分配して割り当てる手段を含むことを特徴とする請求項１または２記載の内燃機関の制御装置。
【請求項４】
前記第２の割当手段は、前記複数のタスクのうち不定期に発生するイベントタスクを前記複数のコアに分配して割り当てる手段を含むことを特徴とする請求項１乃至３の何れか１項記載の内燃機関の制御装置。
【請求項５】
前記分配機能部は、前記複数のコアのうちの所定の分配機能コアにその機能が割り当てられており、
前記複数のタスクに優先順位付けを行う手段を更に備え、
前記分配機能部は、優先順位の高いタスクを前記分配機能コアに割り当てることを特徴とする請求項１乃至４の何れか１項記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の制御装置に係り、特に、複数のコアを有するマルチコアプロセッサを用いて演算を行う内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来、例えば特開２０１０−１９６６１９号公報に開示されるように、マルチプロセッサを搭載した内燃機関の制御装置において、各プロセッサがクランク角に同期して割込みルーチンを順番に処理する技術が開示されている。係る構成を備える内燃機関の制御装置によれば、内燃機関の回転数に左右されることなく、各プロセッサに演算処理の負荷を均等に分配することができる。また、クランク角同期処理の分配については、同期制御、排他制御等を必要としないため、その分、マルチプロセッサ全体での演算負荷の増加を抑えることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９６６１９号公報
【特許文献２】特開２０１０−１８２５号公報
【特許文献３】特開２０１０−１２６０１２号公報
【特許文献４】特表２０１０−５１０４６９号公報
【特許文献５】特開２００８−２６９４８７号公報
【特許文献６】特開２０１１−８１５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来の技術によれば、内燃機関の回転角（クランク角）に同期した回転角同期タスクを各コアに均等に分配して処理することができる。しかしながら、上記従来の技術では、回転角同期タスク以外のタスクの割り当てが考慮されていない。すなわち、内燃機関の動作に関わるタスク処理としては、上記回転角同期タスク処理の他に、時間に同期した時間同期タスク処理、およびその他不定期に発生するイベントタスク処理が存在する。このため、これらの回転角非同期タスクの割り当てについて考慮していない上記従来の技術では、特定のコアにタスクの割り当てが集中してしまい、タスク抜け等の不具合が発生するおそれがある。
【０００５】
この発明は、上述のような課題を解決するためになされたもので、複数のコアを有するマルチコアプロセッサを用いて演算処理を行う内燃機関において、種々のタスク処理を複数コアに効率的に分配することのできる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の発明は、上記の目的を達成するため、複数のコアが搭載されたマルチコアプロセッサを有し、内燃機関の動作に関わる複数のタスクを処理する内燃機関の制御装置であって、
前記複数のタスクのうち前記内燃機関の回転角に同期する回転角同期タスクを前記複数のコアに分配して割り当てる第１の割当手段と、
前記複数のタスクのうち前記内燃機関の回転角に同期しない回転角非同期タスクを前記複数のコアに分配して割り当てる第２の割当手段と、
前記第１の割当手段および前記第２の割当手段を制御する分配機能部と、を備え、
前記複数のコアには、前記回転角同期タスクの処理のための所定の演算負荷範囲がそれぞれ設定され、
前記分配機能部は、前記回転角同期タスクによる演算負荷が各コアの前記所定の演算負荷範囲を超えないように前記第１の割当手段を制御し、且つ、前記回転角非同期タスクが各コアにおける前記所定の演算負荷範囲とは異なる演算負荷範囲に割り当てられるように前記第２の割当手段を制御することを特徴としている。
【０００７】
第２の発明は、第１の発明において、
前記所定の演算負荷範囲は、各コアに割り当て可能な前記回転角同期タスクによる演算負荷の上限であることを特徴としている。
【０００８】
第３の発明は、第１または第２の発明において、
前記第２の割当手段は、前記複数のタスクのうち時間に同期する時間同期タスクを前記複数のコアに分配して割り当てる手段を含むことを特徴としている。
【０００９】
第４の発明は、第１乃至第３の何れか１つの発明において、
前記第２の割当手段は、前記複数のタスクのうち不定期に発生するイベントタスクを前記複数のコアに分配して割り当てる手段を含むことを特徴としている。
【００１０】
第５の発明は、第１乃至第４の何れか１つの発明において、
前記分配機能部は、前記複数のコアのうちの所定の分配機能コアにそのタスクが割り当てられており、
前記複数のタスクに優先順位付けを行う手段を更に備え、
前記分配機能部は、優先順位の高いタスクを前記分配機能コアに割り当てることを特徴としている。
【発明の効果】
【００１１】
第１の発明によれば、内燃機関の回転角に同期する回転角同期タスクと内燃機関の回転角に同期しない回転角非同期タスクとを複数のコアに割り当てて処理する内燃機関の制御装置において、各コアにおける回転角同期タスク処理が所定の負荷範囲を超えないように割り当てられる。そして、回転角非同期タスクは、各コアにおける所定の負荷範囲とは異なる負荷範囲にそれぞれ割り当てられる。このため、本発明によれば、機関回転数が大きい場合であっても、回転角同期タスク処理のための演算資源が確保されるので、回転角同期タスクおよび回転角非同期タスクにタスク抜けが発生する事態を有効に回避することができる。
【００１２】
第２の発明によれば、各コアに割り当て可能な回転角同期タスク処理の上限が、所定の負荷範囲として設定されている。このため、本発明によれば、回転角同期タスクによる演算負荷が大きい内燃機関の高回転領域であっても、各コアにおける演算負荷が所定の負荷範囲を超えないように回転角同期タスクを割り当てることが可能となる。
【００１３】
第３の発明によれば、時間に同期する時間同期タスクが回転角非同期タスクとして割り当てられる。時間同期タスクは内燃機関の回転数に依存しないため、回転角同期タスクのように内燃機関の運転状態に応じて大きく変化することはない。このため、本発明によれば、各コアにおける所定の負荷範囲とは異なる負荷範囲に時間同期タスクを安定して割り当てることが可能となる。
【００１４】
第４の発明によれば、不定期に発生するイベントのタスクが回転角非同期タスクとして割り当てられる。不定期イベントタスクは内燃機関の回転数に依存しないため、回転角同期タスクのように内燃機関の運転状態に応じて大きく変化することはない。このため、本発明によれば、各コアにおける所定の負荷範囲とは異なる負荷範囲に不定期イベントタスクを安定して割り当てることが可能となる。
【００１５】
第５の発明によれば、優先順位の高いタスクが分配機能コアに割り当てられる。分配機能コアは演算資源に比較的余裕があり、また、他のコアとのコア間通信を必要とせず自己のコアにて分配および演算を完結させることができるので、他のコアに比してタスク抜け等の不具合が発生し難い。このため、本発明によれば、優先順位の高いタスクがタスク抜けを起こす事態を有効に抑制することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１としての内燃機関の制御システムの概要を示す図である。
【図２】複数のコアへ種々のタスク処理を分配する方法を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、図面に基づいてこの発明の実施の形態について説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。また、以下の実施の形態によりこの発明が限定されるものではない。
【００１８】
実施の形態１．
［実施の形態１の構成］
図１は、本発明の実施の形態１としての内燃機関の制御システムの概要を示す図である。制御システムは、制御対象である内燃機関２と、内燃機関２が備える複数のアクチュエータを操作してその運転を制御する制御装置４を含んでいる。本実施の形態の内燃機関２はディーゼルエンジンであり、アクチュエータはディーゼルスロットル、ＥＧＲバルブ及びターボチャージャの可変ノズルの３種類である。
【００１９】
本実施の形態の制御装置４は、３つのコア６Ａ，６Ｂ，６Ｃが搭載されたマルチコアプロセッサとして構成され、エンジンＥＣＵの機能の一部として実現される。図示は省略するが、各コア６はキャッシュ付きのＣＰＵとローカルメモリを備え、コア６同士はバスで接続されている。ローカルメモリには、ＣＰＵで実行される各種のプログラムとそのプログラムの実行時に使用される各種のデータが記憶されている。また、バスにはコア間で共有される共有メモリも接続されている。尚、本実施の形態の制御装置４では３つのコアが搭載されたマルチコアプロセッサについて説明するが、制御装置４は、更に複数のコアが搭載された所謂メニーコアプロセッサとして構成されていてもよい。
【００２０】
［実施の形態の１動作］
次に、本実施の形態１の動作について説明する。本実施の形態にかかる制御装置４は、いわゆるモデルベース制御によってディーゼルエンジン２を制御するものであり、モデル予測を多用して、上述した複数のアクチュエータの制御目標値を計算する。具体的には、ディーゼルエンジン２から制御装置４には、ＥＧＲ率“ｅｇｒ”、過給圧“ｐｉｍ”、エンジン回転数“Ｎｅ”及び燃料噴射量“Ｑ”を含む各種の情報が所定のクランク角期間毎に取り込まれる。制御装置４は、取り込んだ情報に基づき、ディーゼルスロットルの操作量であるスロットル開度“Ｄｔｈ”、ＥＧＲバルブの操作量であるＥＧＲバルブ開度“ＥＧＲｖ”及び可変ノズルの操作量である可変ノズル開度“ＶＮ”をそれぞれ計算し、ディーゼルエンジン２に出力する。
【００２１】
ここで、制御装置４にて処理されるタスクには、大きく分けて内燃機関２の回転角に同期する回転角同期タスクと回転角に同期しない回転角非同期タスクとが存在する。回転角同期タスクとしては、例えば、燃料噴射量やバルブタイミング等に代表される内燃機関２の燃焼行程に関連する演算のタスクが該当する。
【００２２】
これに対して、回転角非同期タスクとしては、時間に同期する時間同期タスクと、不定期に発生するイベントのタスク（不定期イベントタスク）とが存在する。時間同期タスクは、所定のサンプリング時間毎に演算されるタスクであって、例えば、スロットル開度等に代表される内燃機関２の空気系に関連する演算のタスクが該当する。また、不定期イベントタスクは、エンジン回転数や時間に関係なく不定期に発生する演算のタスクであって、例えば、エアコン等のスイッチが操作された場合等、人為的に何らかのスイッチが操作された場合に発生する演算のタスク等が該当する。
【００２３】
本実施の形態の制御装置４には３つのコア６Ａ，６Ｂ，６Ｃが搭載されており、上述したタスクはこれらの各コアに分配されて処理される。ここで、上述した３種のタスクを比較すると、時間同期タスク処理および不定期イベントタスク処理による演算負荷はエンジン回転数によらず比較的安定した演算負荷となるのに対して、回転数同期タスク処理は、エンジン回転数の変動に応じてその演算負荷が大きく変化してしまう。このため、回転数同期タスク処理の演算負荷変化を考慮せずにタスクの分配を行うと、高回転時において特定コアの演算負荷が所定の上限を超えてしまい、タスク抜け等が発生するおそれがある。
【００２４】
そこで、本実施の形態の制御装置４では、以下の方法によって、回転角同期タスク、時間同期タスク、および不定期イベントタスクによる処理を各コアに分配して割り当てることとする。
【００２５】
図２は、複数のコアへ種々のタスク処理を分配する方法を説明するための図である。尚、図２中の（Ａ）は内燃機関２の高回転時におけるタスクの分配を、（Ｂ）は内燃機関２の低回転時におけるタスクの分配を、それぞれ示している。
【００２６】
この図に示すとおり、コア６Ｃには、分配機能が割り当てられている。分配機能は、回転角同期タスク、時間同期タスク、および不定期イベントタスクを区分した上で各コアへの分配を行う。具体的には、分配機能は、回転角同期タスク処理を分配して各コアの演算資源に割り当てる。この際、分配機能は、各コアの回転角同期タスク処理による演算負荷が所定の演算負荷範囲を超えないように分配動作を行う。尚、所定の演算負荷範囲は、回転角同期タスク処理による演算負荷が最大となる条件（例えば高回転領域）での回転角同期タスク処理を分配した場合の各コアの演算負荷として、予め見積られた値が使用される。
【００２７】
次に、分配機能は、回転角非同期タスクとしての時間同期タスクおよび不定期イベントタスクの処理を各コアへ割り当てる。この際、分配機能は、各コアにおける上記所定の演算負荷範囲とは異なる空き領域にこれらのタスク処理を分配する。このような手順によれば、エンジン回転数に応じて回転角同期タスク処理の演算負荷が変化した場合であっても、係る回転角同期タスク処理が所定の演算負荷を超えることはない。したがって、本実施の形態の制御装置によれば、エンジン回転数が変化した場合であっても、タスク抜けの発生を有効に抑制することが可能となる。
【００２８】
また、本実施の形態の制御装置によれば、複数のコアを用いて並列演算を行うことができるので、クロック数を落とすことができ、これにより、電力消費量を低下させることが可能となる。
【００２９】
ところで、上述した実施の形態１においては、本発明をディーゼル機関（圧縮着火内燃機関）の制御に適用した場合について説明したが、本発明はディーゼル機関に限定されるものではなく、ガソリンやアルコールを燃料とする火花点火内燃機関や、その他の各種の内燃機関の制御に適用することが可能である。
【００３０】
実施の形態２．
［実施の形態２の特徴］
次に、本発明の実施の形態２について説明する。上述した実施の形態１の制御装置では、回転角同期タスク処理を各コアの所定の演算負荷範囲に割り当てた上で、時間同期タスクおよび不定期イベントタスクをそれぞれ演算資源の空き領域に割り当てることとしている。ここで、内燃機関２の動作に関連するタスクには、優先度の高いものからそうでないものまで様々なものが混在している。このため、優先度の高いタスクに関しては、特にタスク抜けが発生しないように制御することが好ましい。
【００３１】
ここで、分配機能を搭載したコア６Ｃに分配されたタスク処理は、他のコア６Ａ，６Ｂのタスク処理に比して安定度が高い。これは、分配機能からの指示をコア間通信を必要とせず直接に受けることができること、および分配機能の演算負荷は大きく変動することがないため、演算資源の空き領域が安定していること等による。
【００３２】
そこで、本実施の形態の制御装置では、タスク抜けが起こってはならない優先度の高いタスクを特定した上で、この優先度の高いタスク処理を分配機能搭載コアに割り当てることとする。これにより、優先度の高いタスクのタスク抜けの発生を有効に回避することが可能となる。
【００３３】
ところで、上述した実施の形態２においては、本発明をディーゼル機関（圧縮着火内燃機関）の制御に適用した場合について説明したが、本発明はディーゼル機関に限定されるものではなく、ガソリンやアルコールを燃料とする火花点火内燃機関や、その他の各種の内燃機関の制御に適用することが可能である。
【００３４】
また、上述した実施の形態２においては、優先度の高いタスク処理を分配機能搭載コアに割り当てることしているが、上述した実施の形態１におけるタスク分配動作と併せて実行することとしてもよい。
【符号の説明】
【００３５】
２  内燃機関（ディーゼルエンジン）
４  制御装置
６Ａ，６Ｂ，６Ｃ，６Ｄ  コア
【図１】
0005817505.tif 000002
【図２】
0005817505.tif 000003