【解決手段】実施形態に係る制御装置は、記憶部と、制御部とを備える。記憶部は、動力装置の制御処理に関する制御データを記憶する。制御部は、記憶部に対するアクセスに制限が無いセキュアモードおよび制限があるノンセキュアモードを切り替えながら制御処理を行う。また、制御部は、ノンセキュアモードにあるときに、動力装置の動作状況に同期して処理が発生する制御処理である動作同期処理および、動作装置に関する処理で所定の時間に同期して処理が発生する制御処理である時間同期処理を実行し、セキュアモードにあるときに、動力装置とは異なる装置である他装置の制御処理である第1他処理を実行する。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本願の開示する制御装置および制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
【0010】
まず、
図1を用いて、実施形態に係る制御方法の概要について説明する。
図1は、実施形態に係る制御方法の概要を示す図である。なお、
図1では、実施形態に係る制御方法を実行する制御装置1の構成をブロック図で示している。
【0011】
図1に示すように、実施形態に係る制御装置1は、制御部2と、記憶部3とを備える。実施形態に係る制御装置1は、車両に搭載される制御装置であり、例えば、内燃機関(動力装置の一例)の制御処理を実行する。具体的には、内燃機関の制御処理として、回転同期処理(動作同期処理)および時間同期処理がある。
【0012】
回転同期処理は、内燃機関の動作状況である回転に同期して実行される制御処理である。回転同期処理には、燃料噴射量やバルブタイミング等といった内燃機関の燃焼工程に関連する制御処理がある。
【0013】
時間同期処理は、所定の時間周期で実行される制御処理である。時間同期処理は、スロットル開度等といった内燃機関の空気制御に関連する制御処理がある。換言すれば、時間同期処理は、内燃機関の制御処理のうち、回転に同期しない制御処理である。
【0014】
なお、制御装置1の制御対象は、内燃機関に限らず、モータ等の他の動力装置であってもよい。かかる場合、制御装置1は、モータの動作である回転に同期する制御処理である動作同期処理および時間同期処理を実行する。
【0015】
また、実施形態に係る制御装置1は、動力装置の制御処理以外にも、動力装置とは異なる装置である他装置の制御処理である第1他処理を実行する。他装置は、例えば、ナビゲーション装置等といった動力装置以外の車載装置である。
【0016】
ここで、制御装置1は、たとえば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを有するコンピュータや各種の回路を含む。
【0017】
コンピュータのCPUは、たとえば、ROMやRAMに記憶されたデータや、各種プログラムを読み出して実行することによって、制御部2として機能する。
【0018】
なお、制御部2の機能のうち、一部または全部をASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成することもできる。
【0019】
また、記憶部3は、たとえば、ROMやRAMに対応する。ROMやRAMは、制御部2が実行する回転同期処理用データや時間同期処理用データ、他処理用データ、図示しない各種プログラムの情報等を記憶することができる。
【0020】
回転同期処理用データ、時間同期処理用データおよび他処理用データには、それぞれの制御処理を実行するためのコードや、それぞれの制御処理により生成されたデータ等が含まれる。なお、回転同期処理用データおよび時間同期処理用データは、動力装置の制御処理に関する制御データの一例である。
【0021】
ここで、制御部2には、仮想化支援機能が実装されている。仮想化支援機能とは、1つのCPU(もしくはコア)をハードウェア的な仮想化技術によって論理的に二つ以上に分割することで、ユーザからは、あたかも二つのCPU(コア)が動作しているように見える機能である。これにより、1つのCPUで構成される制御部2は、動作モードが異なる複数のモードを切り替えながら動力装置や他装置の制御処理を実行することができる。
【0022】
図1に示す例では、制御部2は、動作モードとして、記憶部3へのアクセス制限の内容が異なるセキュアモード(第1モードに相当)と、ノンセキュアモードとを切り替えて処理を行う。セキュアモードは、記憶部3に対するアクセスの制限が無いモードである。ノンセキュアモードは、記憶部3に対するアクセスの制限があるモードである。
【0023】
図1に示すように、制御部2は、セキュアモードによって、回転同期処理および時間同期処理を実行し、ノンセキュアモードによって他処理A,B,Cを実行する。なお、
図1では、3つの他処理A,B,Cを実行する場合について示したが、他処理の数は、2つ以下でも、4つ以上でもよい。
【0024】
また、制御部2は、セキュアモードでは、パワートレイン用のOS(Operating System)によって、回転同期処理および時間同期処理を実行する。また、制御部2は、ノンセキュアモードでは、他処理A,B,Cそれぞれで異なる他処理OSによって、他処理A,B,Cを実行する。
【0025】
なお、他処理A用OS、他処理B用OSおよび他処理C用OSそれぞれは、ハイパーバイザによって実行されるが、かかる点については後述する。
【0026】
そして、制御部2は、ノンセキュアモードにおいて、回転同期処理用データおよび時間同期処理用データへのアクセスを制限する。具体的には、制御部2は、ノンセキュアモードにおいて、回転同期処理用データおよび時間同期処理用データへのアクセスを禁止する。
【0027】
従って、実施形態に係る制御方法によれば、ノンセキュアモードの他処理を実行中に制御データである回転同期処理用データおよび時間同期処理用データへの不正アクセスを防止できる。
【0028】
すなわち、実施形態に係る制御部2は、ノンセキュアモードにおいて、記憶部3における第1モード用の記憶領域に記憶された制御データへのアクセスを禁止することで、他処理からの制御データへの不正アクセスを確実に防止することができる。
【0029】
なお、制御部2は、回転同期処理および時間同期処理を別々のコアで実行する。かかる点について、
図2を用いて説明する。
【0030】
図2は、制御部2の処理を説明するための図である。
図2に示すように、制御部2は、3つのコアを有する。第1のコア(コア1)は、回転同期処理を実行する。第2のコア(コア2)は、時間同期処理および他処理Aを実行する。第3のコア(コア3)は、他処理Bおよび他処理Cを実行する。
【0031】
つまり、制御部2は、回転同期処理および時間同期処理を別々のコアで実行する。これにより、回転同期処理および時間同期処理の処理タイミングが重なった場合でも、処理遅れが生じることを防止できる。
【0032】
また、回転同期処理は、時間同期処理よりも処理周期が短い、すなわち、処理負荷が大きいため、専用のコアを割り当てる。これにより、回転同期処理の処理遅れが生じることを防止できる。
【0033】
また、時間同期処理は、処理の破綻が生じない他処理Aとコアを併用する。具体的には、制御部2は、セキュアモードによって、時間同期処理を実行し、ノンセキュアモードによって他処理Aを実行する。これにより、制御部2のコア数が嵩むことを防止できるため、コスト削減を実現できる。
【0034】
また、第3のコアは、第2のコアに割り当てられた他処理Aとは異なる他処理B,Cを実行する。すなわち、第3のコアは、他処理B,C専用のコアとして動作する。これにより、制御部2は、時間同期処理の処理タイミングとは無関係に他処理を実行できるため、他処理を割り当てるコアとしての汎用性を高めることができる。
【0035】
また、制御部2は、第2のコアに割り当てられた他処理Aおよび第3のコアに割り当てられた他処理B,Cをハイパーバイザによって実行する。具体的には、制御部2は、ハイパーバイザのプログラムであるハイパーバイザソフトによって、他処理A用OS、他処理B用OSおよび他処理C用OSを動作し、他処理A、他処理Bおよび他処理Cを実行する。
【0036】
すなわち、ハイパーバイザソフトは、他処理A用OS、他処理B用OSおよび他処理C用OSを動作する仮想化OSである。
【0037】
このように、制御部2は、仮想化OSであるハイパーバイザを用いることで、OSの異なる複数の他処理を1つのCPU(またはコア)で実行することができるため、コスト削減を実現できる。
【0038】
次に、
図3を用いて、実施形態に係る制御装置1が実行する処理の処理手順について説明する。
図3は、実施形態に係る制御装置1が実行する処理の処理手順を示すフローチャートである。
【0039】
図3に示すように、まず、制御装置1の制御部2は、実行する制御処理が動力装置の制御処理であるか否かを判定する(S101)。
【0040】
つづいて、制御部2は、動力装置の制御処理である場合(S101:Yes)、セキュアモードに切り替える(S102)。
【0041】
つづいて、制御部2は、回転同期処理を実行する(S103)。
【0042】
また、制御部2は、時間同期処理を実行し(S104)、処理を終了する。なお、
図3では、回転同期処理および時間同期処理双方が実行される場合を示しているが、回転同期処理および時間同期処理の周期タイミングによっては、いずれか一方の制御処理のみが実行される場合がある。
【0043】
なお、ステップS101において、制御部2は、動力装置の制御処理でない場合、すなわち、他装置の制御処理である他処理である場合(S101:No)、ノンセキュアモードに切り替える(S105)。
【0044】
つづいて、制御部2は、他処理を実行し(S106)、処理を終了する。
【0045】
上述してきたように、実施形態に係る制御装置1は、記憶部3と、制御部2とを備える。記憶部3は、動力装置の制御処理に関する制御データを記憶する。制御部2は、記憶部3に対するアクセスに制限が無いセキュアモード(第1モード)および制限があるノンセキュアモード(第2モード)を切り替えながら制御処理を行う。また、制御部2は、ノンセキュアモードによって、動力装置の動作に同期する制御処理である動作同期処理および所定の時間に同期する制御処理である時間同期処理を実行し、ノンセキュアモードによって、他装置の制御処理である他処理を実行する。これにより、複数の処理を行いながら、処理間のアクセス制限を行う。
【0046】
なお、
図2で示した複数のコアへの各制御処理の割り当ては、一例であって、任意のコア数および割り当て方法を採用可能である。かかる点について、
図4および
図5を用いて説明する。
【0047】
図4および
図5は、変形例に係る制御部2を説明するための図である。
【0048】
図4に示す変形例では、制御部2は、2つのコアを有する。第1のコア(コア1)は、回転同期処理および時間同期処理を実行する。第2のコア(コア2)は、他処理A,B,Cを実行する。
【0049】
すなわち、
図4に示す変形例では、1つのコアで、回転同期処理および時間同期処理を実行し、もう一つのコアで、すべての他処理A,B,Cを実行する。これは、各コアが高性能(処理速度が所定速度以上)である場合や、回転同期処理および時間同期処理が処理破綻しない場合に好適である。
【0050】
これにより、制御部2のコア数が嵩むことを防止できるため、コスト削減を実現できる。
【0051】
なお、
図4では、2つのコアに各制御処理を割り当てる場合を示したが、1つのコアによりすべての制御処理を実行してもよい。すなわち、制御部2の1つのコアは、セキュアモードによって、回転同期処理および時間同期処理を実行し、ノンセキュアモードによって、他処理A,B,Cを実行してもよい。
【0052】
あるいは、
図5に示すように、1つのコアに1つの制御処理を割り当ててもよい。具体的には、
図5に示すように、制御部2は、5つのコアを有する。
【0053】
第1のコア(コア1)は、回転同期処理を実行し、第2のコア(コア2)は、時間同期処理を実行し、第3のコア(コア3)は、他処理Aを実行し、第4のコア(コア4)は、他処理Bを実行し、第5のコア(コア5)は、他処理Cを実行する。
【0054】
これにより、各制御処理が競合することで、処理遅れが生じることを防止できる。
【0055】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。