IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立オートモティブシステムズ株式会社の特許一覧

特開2024-66750電子制御装置、及びタスク実行制御方法
<>
  • 特開-電子制御装置、及びタスク実行制御方法 図1
  • 特開-電子制御装置、及びタスク実行制御方法 図2
  • 特開-電子制御装置、及びタスク実行制御方法 図3
  • 特開-電子制御装置、及びタスク実行制御方法 図4
  • 特開-電子制御装置、及びタスク実行制御方法 図5
  • 特開-電子制御装置、及びタスク実行制御方法 図6
  • 特開-電子制御装置、及びタスク実行制御方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024066750
(43)【公開日】2024-05-16
(54)【発明の名称】電子制御装置、及びタスク実行制御方法
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240509BHJP
【FI】
G06F9/48 300F
G06F9/48 300H
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022176408
(22)【出願日】2022-11-02
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】山本 敏之
(57)【要約】
【課題】動作中にタスク処理時間をリアルタイムに監視し、他の処理に影響を与えることなく、実行予定のタスクを演算周期内に完了する技術を提供する。
【解決手段】車両に搭載される電子制御装置であって、所定の演算周期に従ってタスクを実行するプロセッサと、前記プロセッサがアクセス可能な記憶装置を備え、前記プロセッサで実行される複数のタスクの各々の実行時間を合計する実行時間演算部と、前記実行時間の合計に基づいて、実行予定のタスクが演算周期内に完了するかを判断する完了可否判断部と、完了可否判断部によって、実行予定のタスクが演算周期内に完了しないと判断された場合、実行予定のタスク内の各関数の重要度に基づいて、タスク内の各関数の実行の要否を判断する実行要否判断部とを有する。
【選択図】図2
【特許請求の範囲】
【請求項1】
車両に搭載される電子制御装置であって、
所定の演算周期に従ってタスクを実行するプロセッサと、前記プロセッサがアクセス可能な記憶装置を備え、
前記プロセッサで実行される複数のタスクの各々の実行時間を合計する実行時間演算部と、
前記実行時間の合計に基づいて、実行予定のタスクが演算周期内に完了するかを判断する完了可否判断部と、
完了可否判断部によって、実行予定のタスクが演算周期内に完了しないと判断された場合、実行予定のタスク内の各関数の重要度に基づいて、タスク内の各関数の実行の要否を判断する実行要否判断部とを有することを特徴とする電子制御装置。
【請求項2】
請求項1に記載の電子制御装置であって、
前記実行要否判断部による関数の実行の要否の判断結果に基づいて、前記プロセッサにおける前記関数の実行を管理するタスク処理管理部を有することを特徴とする電子制御装置。
【請求項3】
請求項1に記載の電子制御装置であって、
前記所定の演算周期を3等分したうちの2番目の期間内に前記実行時間演算部を実行することを特徴とする電子制御装置。
【請求項4】
請求項1に記載の電子制御装置であって、
前記実行時間演算部は、前記タスクに含まれる関数に予め設定された実行予測時間の情報を用いて、前記タスクの実行時間を合計することを特徴とする電子制御装置。
【請求項5】
請求項1に記載の電子制御装置であって、
前記関数の重要度は、「高」と「低」の2段階に設定可能であって、
前記実行要否判断部は、重要度が「高」の関数を実行要と判断し、重要度が「低」の関数を実行否と判断することを特徴とする電子制御装置。
【請求項6】
請求項1に記載の電子制御装置であって、
前記実行時間演算部は、前記タスクに含まれる割り込みタスク用に予め設定された実行予測時間を用いて、前記タスクの実行時間を合計することを特徴とする電子制御装置。
【請求項7】
車両に搭載される電子制御装置におけるタスク実行制御方法であって、
前記電子制御装置は、所定の演算周期に従ってタスクを実行するプロセッサと、前記プロセッサがアクセス可能な記憶装置を有し、
前記タスク実行制御方法は、
前記プロセッサで実行される複数のタスクの各々の実行時間を合計する実行時間演算手順と、
前記実行時間の合計に基づいて、実行予定のタスクが演算周期内に完了するかを判断する完了可否判断手順と、
実行予定のタスクが演算周期内に完了しないと、完了可否判断手順において判断された場合、実行予定のタスク内の各関数の重要度に基づいて、タスク内の各関数の実行の要否を判断する実行要否判断手順とを有するタスク実行制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両用制御装置に関し、特に、車両用制御装置に搭載されるマイコンにおけるタスクの実行を制御する技術に関する。
【背景技術】
【0002】
近年の車両システムは、電子化された車両制御機器を操作する電子制御装置(ECU:Electronic Control Unit)と、複数のECU間の通信を可能にする車載LAN(Local Area Network)から構成される。
【0003】
車両システムは、演算量の増加に伴い、複数のCPUを搭載するマルチコアマイクロコントローラ(マルチコアマイコン)を搭載したECUを採用するが、CPUが実行する特定のタスクに処理が集中した場合、実行予定のタスクが演算周期内に完了せず、未完了の処理の重要度が高い場合、車両が意図通りに動作しない可能性がある。
【0004】
多くの場合、タスク処理の未完了を回避するために、タスク処理時間の計測結果に基づいて、タスク内で処理時間が長い関数の処理を削減したり、一部の関数を他のCPUや他のタスクに移動している。
【0005】
しかしながら、タスク処理時間は、全ての処理の実装の完了後に計測されるため、タスクが完了しない場合、前述の回避策の検討及び実施に工数が必要となり、開発スケジュールを遅延させる可能性が高い。また、タスク処理時間の計測結果から想定不可能な、長時間の他のCPUの処理待ちや、他のタスクからの割込み処理が発生する場合もあり、別の回避策が必要とされる。
【0006】
本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2019-125093号公報)には、複数の演算処理装置を含み、入力信号に基づいて処理を実行し出力信号を出力する制御部と、制御部が実行する処理におけるタスクごとに、該タスクを特徴付ける特徴量を抽出するとともに、特徴量に対応する実際のタスク処理時間を学習するタスク処理時間予測部と、を備える。タスク処理時間予測部は、タスクを実行する際に、実行すべきタスクに紐づく特徴量に基づいて、特徴量に対応して学習されたタスク処理時間を予測し、予測されたタスク処理時間に応じて、演算処理装置におけるタスクが実行可能な空き領域に処理を追加する電子制御装置が記載されている。
【0007】
特許文献2(特開2021-89662号公報)には、複数のコアが実装されたマルチコアマイコンを備え、処理が割り当てられている前記複数のコアの内、少なくとも1つのコアのタスクの処理時間を監視する電子制御装置が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2019-125093号公報
【特許文献2】特開2021-89662号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
前述した特許文献1は、タスクを実行する際に、学習されたタスク処理時間に基づいて、実行可能かを判断し、不可能な場合には処理時間に余裕がある他のタスクに処理を移動する技術を開示する。特許文献1に記載された技術によると、タスク処理時間を学習させるため、類似したタスクであってもタスクの処理時間をより高精度で予測できる。また、処理時間に余裕がある他のタスクに効率よく処理を割り当てるため、処理待ち時間を抑制でき、マイコンのスループットを向上できる。
【0010】
しかしながら、各タスクの処理は、他の処理との間で処理の順番が定められており、タスク間で処理を移動すると他の処理の結果に影響を与える可能性がある。そのため、他のタスクへの処理の移動は困難である。また、処理時間に余裕があるタスクが無い場合には、処理を移動できず、実行予定のタスクを演算周期内に完了できない。
【0011】
また、前述した特許文献2は、所定の時間内に処理が完了しない想定の際には、データを算出せず、前回値を参照することで、CPU間のデータの同時性を保証する技術を開示する。特許文献2に記載された技術によると、マルチコアマイコンを搭載する車両用制御装置において、処理負荷の状態にかかわらず、実行予定のタスクを演算周期内に完了できる。また、CPU間の処理データの同時性を保証できるため、高い信頼性の車両システムを構築できる。
【0012】
しかしながら、前回値を参照し処理を継続する場合、他の処理結果と比較する診断処理等の結果に影響する可能性もあり、多くの処理データへの適用は困難である。
【0013】
本発明は、前述の課題を解決するための技術であり、動作中にタスク処理時間をリアルタイムに監視し、他の処理に影響を与えることなく、実行予定のタスクを演算周期内に完了する技術の提供を目的とする。
【課題を解決するための手段】
【0014】
前述の課題を解決するために、本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、車両に搭載される電子制御装置であって、所定の演算周期に従ってタスクを実行するプロセッサと、前記プロセッサがアクセス可能な記憶装置を備え、前記プロセッサで実行される複数のタスクの各々の実行時間を合計する実行時間演算部と、前記実行時間の合計に基づいて、実行予定のタスクが演算周期内に完了するかを判断する完了可否判断部と、完了可否判断部によって、実行予定のタスクが演算周期内に完了しないと判断された場合、実行予定のタスク内の各関数の重要度に基づいて、タスク内の各関数の実行の要否を判断する実行要否判断部とを有することを特徴とする。
【発明の効果】
【0015】
本発明の一態様によれば、実行予定のタスクを演算周期内に完了できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0016】
図1】本発明の実施形態における車両用制御装置のシステム構成を示すブロック図である。
図2】本発明の実施形態におけるマイコンの構成を示すブロック図である。
図3】本発明の実施形態において実行時間演算部が実行する処理のフローチャートである。
図4】本発明の実施形態において完了可否判断部が実行する処理のフローチャートである。
図5】本発明の実施形態における実行要否判断部が実行する処理のフローチャートである。
図6】本発明の実施形態におけるタスク処理管理部が実行する処理のフローチャートである。
図7】本発明の実施形態における処理全体を示すタイミングチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について図を参照して説明する。
【0018】
図1は、本発明の実施形態における車両用制御装置2のシステム構成を示すブロック図である。
【0019】
車両用制御装置2は、エンジン、トランスミッション、インバータなどを制御するために使用される電子制御装置であり、入力回路3、マイコン4、及びドライバIC5を有する。
【0020】
車両用制御装置2には、車載センサ1が取得した、スイッチ入力、エンジン回転数、吸入空気量などのセンサ情報が入力される。
【0021】
入力回路3は、入力バッファ及びADコンバータを有し、デジタル入力信号やアナログ入力信号を、マイコン4に入力可能な信号レベルのデジタル値に変換する。
【0022】
マイコン4は、所定のプログラムを実行することによって、入力回路3からの各種の入力信号やメモリに格納されたパラメータ値を用いて制御量を演算し、ドライバIC5への出力信号を生成する。
【0023】
ドライバIC5は、マイコン4の出力信号に従って、アクチュエータ6を駆動するための信号を生成する。例えば、マイコン4の出力信号を変換し、電圧増幅し、ON/OFF信号、パルス信号、PWM信号などを出力する。
【0024】
アクチュエータ6は、ソレノイドバルブ、モータ、リレーなどの部品であり、制御対象がエンジンであれば、アクチュエータ6によって燃料噴射装置や点火装置などが動作する。
【0025】
図2は、本発明の実施形態におけるマイコン4の構成を示すブロック図である。
【0026】
マイコン4は、メモリ7、及びプロセッサ17を有する。プロセッサ17は、所定の演算周期に従ってタスク(プログラム)を実行して、実行時間演算部8、完了可否判断部9、実行要否判断部10、及びタスク処理管理部11を実現する。
【0027】
メモリ7は、プロセッサ17がプログラムの実行に使用するデータである、関数実行時間7a、割り込み実行時間7b、及び関数重要度7cを格納する記憶装置である。
【0028】
関数実行時間7aは、予め計測されたタスク内で実行される各関数の実行予測時間を記録しており、実行時間演算部8によって参照される。予めタスク内で実行される各関数の実行予測時間を記録しておくことで、都度、各関数の実行予測時間を推定する必要が無く、演算負荷を低減できる。なお、関数実行時間7aにはワースト値を記録するとよい。
【0029】
割り込み実行時間7bは、予め計測された割り込みタスクの実行予測時間を記録しており、実行時間演算部8によって参照される。割り込みタスクが、他のマイコン(又は他のCPU)からの割り込みタスクである場合、その全ての実行予測時間の記憶は困難である。そこで、割り込みタスクの種類毎ではなく、複数の割り込みタスク全体に対して適用される実行予測時間を記録しておき、記録された実行予測時間を用いることで、タスクに割り込みタスクが含まれている場合でも、簡便に実行時間の合計を算出できる。なお、割り込みタスクの実行予測時間は、複数の割り込みタスクのワースト値を用いるとよい。
【0030】
関数重要度7cは、タスク内で実行される各関数の重要度を記録しており、実行要否判断部10によって参照される。タスク内の各関数は、重要度にかかわらず、呼び出された順に実行されるため、複数段階(例えば、重要度「高」、「低」の2段階)の重要度に基づいて実行可否を判断することで、重要度が高い関数を確実に実行できる。例えば、他の処理結果と比較をする診断処理等に影響する値を算出する関数の場合、前回値を使用できないため、その演算周期で必ず実行する必要があり、重要度を「高」とするとよい。また、例えば、温度や電流値等、短時間の変動が少ない値を算出する関数は、前回値を使用しても影響が軽微のため、重要度を「低」とするとよい。
【0031】
実行時間演算部8は、タスク処理管理部11によって、演算周期の約半分のタイミング(例えば、演算周期を3等分したうちの2番目の期間内)に実行され、タスク処理管理部11が保有する残関数情報12、関数実行時間7a、及び割り込み実行時間7bを参照し、残関数処理時間13を算出する。
【0032】
完了可否判断部9は、タスク処理管理部11によって、実行時間演算部8の実行完了後に実行され、タスク処理管理部11が保有する許容残時間14、及び、実行時間演算部8が算出した残関数処理時間13を参照し、完了可否フラグ15を算出して、出力する。
【0033】
実行要否判断部10は、タスク処理管理部11によって、完了可否判断部9の実行完了後に実行され、完了可否判断部9が出力した完了可否フラグ15、及び、各関数の関数重要度7cを参照し、各関数の実行要否フラグ16を算出して、出力する。
【0034】
タスク処理管理部11は、演算周期の約半分のタイミング(例えば、演算周期を3等分したうちの2番目の期間内)に、実行時間演算部8、完了可否判断部9、及び実行要否判断部10を順番に実行し、各関数の実行要否フラグ16を参照し、タスク内の未実行の関数の内、「要」の関数を実行する。
【0035】
図3は、本発明の実施形態において実行時間演算部8が実行する処理のフローチャートである。
【0036】
ステップS301:実行時間演算部8は、タスク処理管理部11から残関数情報12を取得する。
【0037】
ステップS302:実行時間演算部8は、メモリ7からタスク内の未実行の各関数についての関数実行時間7a、及び、割り込み実行時間7bを取得する。
【0038】
ステップS303:実行時間演算部8は、ステップS302で取得した時間を合計し、残関数処理時間13を算出する。
【0039】
図4は、本発明の実施形態において完了可否判断部9が実行する処理のフローチャートである。
【0040】
ステップS401:完了可否判断部9は、タスク処理管理部11から許容残時間14を取得する。
【0041】
ステップS402:完了可否判断部9は、実行時間演算部8から残関数処理時間13を取得する。
【0042】
ステップS403:完了可否判断部9は、ステップS401で取得した許容残時間14と、ステップS402で取得した残関数処理時間13とを比較し、タスクを演算周期内に完了させるための残りの許容時間内に、残りの関数処理が完了するかを判断する。例えば、許容残時間14が残関数処理時間13より大きければ、残りの関数処理が許容時間内に完了すると判断できる。
【0043】
ステップS404:ステップS403がYesの場合、完了可否判断部9は、完了可否フラグに「可」を設定する。
【0044】
ステップS405:ステップS403がNoの場合、完了可否判断部9は、完了可否フラグに「否」を設定する。
【0045】
図5は、本発明の実施形態における実行要否判断部10が実行する処理のフローチャートである。
【0046】
ステップS501:実行要否判断部10は、完了可否判断部9から完了可否フラグ15を取得する。
【0047】
ステップS502:実行要否判断部10は、ステップS501で取得した完了可否フラグ15が「可」であるかを判断する。
【0048】
ステップS503:ステップS502がNoの場合、実行要否判断部10は、メモリ7から関数重要度7cを取得する。
【0049】
ステップS504:実行要否判断部10は、関数重要度7cが「高」であるかを判断する。予期せぬ演算時間の増大又は割り込みタスクによって、タスク内の全関数の実行が演算周期内に完了しない場合、一部の関数は未完了のままとなるが、この未完了の関数の重要度が高い場合、車両が意図通りに動作せず、車両の利便性が低下する可能性がある。一方、タスク内の一部の関数の実行の演算周期内の完了が見込めない場合、重要度に基づいて各関数の実行要否を判断し、重要度が高い関数を確実に実行し、車両が意図通りに動作し、車両の利便性の向上を図ることができる。
【0050】
ステップS505:実行要否判断部10は、ステップS502がYesの場合、全ての残関数の実行要否フラグ16に「要」を設定する。また、ステップS504がYesの場合、重要度が高い関数の実行要否フラグ16に「要」を設定する。
【0051】
ステップS506:実行要否判断部10は、ステップS504がNoの場合、実行要否フラグ16に「否」を設定トする。
【0052】
図6は、本発明の実施形態におけるタスク処理管理部11が実行する処理のフローチャートである。
【0053】
ステップS601:タスク処理管理部11は、演算周期の前方の(例えば、演算周期を3分割(望ましくは3等分)したうちの1番目の期間まで)タスク処理を実行する。
【0054】
ステップS602:タスク処理管理部11は、演算周期の約半分のタイミング(例えば、演算周期を3分割(望ましくは3等分)したうちの2番目の期間内)に実行時間演算部8を実行する。実行時間演算部8は、残関数処理時間13を算出し、算出した残関数処理時間13を完了可否判断部9に送る。演算周期を3分割(望ましくは3等分)したうちの最も早い1番目の期間内に実行時間演算部8を実行した場合、残りの処理が多いため、実行時間の正確な推定が困難になる。また、3番目の期間内に実行時間演算部8を実行した場合、残り時間が短いので、重要度が低い関数を実行しなくても、残り時間内に重要な関数を完了できない可能性がある。一方、2番目の期間内に実行時間演算部8を実行すると、前述したメリット及びデメリットのバランスをとることができる。
【0055】
ステップS603:タスク処理管理部11は、完了可否判断部9を実行する。完了可否判断部9は、完了可否フラグ15を算出し、算出した完了可否フラグ15を実行要否判断部10に送る。
【0056】
ステップS604:タスク処理管理部11は、実行要否判断部10を実行する。実行要否判断部10は、実行要否フラグ16を算出し、算出した実行要否フラグ16をタスク処理管理部11に送る。
【0057】
ステップS605:タスク処理管理部11は、ステップS604にて取得した実行要否フラグ16(関数1)が「要」であるかを判断する。
【0058】
ステップS606:ステップS605がYesの場合、タスク処理管理部11は、関数1を実行する。
【0059】
ステップS607:ステップS605がNoの場合、タスク処理管理部11は、実行されない関数1の出力値に代えて、前回値を使用することを決定する。
【0060】
ステップS608:タスク処理管理部11は、ステップS604にて取得した実行要否フラグ16(関数2)が「要」であるかを判断する。
【0061】
ステップS609:ステップS608がYesの場合、タスク処理管理部11は、関数2を実行する。
【0062】
ステップS610:ステップS608がNoの場合、タスク処理管理部11は、実行されない関数2の出力値に代えて、前回値を使用することを決定する。
【0063】
図7は、本発明の実施形態における処理全体を示すタイミングチャートである。
【0064】
タスク処理管理部11は、タスクの演算周期を3分割(望ましくは3等分)したうちの2番目の期間2内に実行時間演算部8を実行し、残関数処理時間13を算出する。完了可否判断部9を実行し、許容残時間14との比較の結果、残関数処理時間13の方が大きいため、完了可否フラグ15に「否」を設定する。
【0065】
その後、タスク処理管理部11は、実行要否判断部10を実行し、関数重要度が「低」であるため、この関数の実行要否フラグ16に「否」を設定し、関数を実行せずに前回値を使用する。
【0066】
本実施例の車両用制御装置によれば、動作中にタスク処理時間をリアルタイムに監視するので、タスク処理時間の計測結果から想定困難な処理時間がかかる場合にも、実行予定のタスクを演算周期内に完了できる。
【0067】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0068】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0069】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0070】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0071】
1…車載センサ
2…車両用制御装置
3…入力回路
4…マイコン
5…ドライバIC
6…アクチュエータ
7…メモリ
7a…関数実行時間
7b…割り込み実行時間
7c…関数重要度
8…実行時間演算部
9…完了可否判断部
10…実行要否判断部
11…タスク処理管理部
12…残関数情報
13…残関数処理時間
14…許容残時間
15…完了可否フラグ
16…実行要否フラグ
17…プロセッサ
図1
図2
図3
図4
図5
図6
図7