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

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

▶ 株式会社デンソーの特許一覧

<>
  • 特許-電子制御装置 図1
  • 特許-電子制御装置 図2
  • 特許-電子制御装置 図3
  • 特許-電子制御装置 図4
  • 特許-電子制御装置 図5
  • 特許-電子制御装置 図6
  • 特許-電子制御装置 図7
  • 特許-電子制御装置 図8
  • 特許-電子制御装置 図9
  • 特許-電子制御装置 図10
  • 特許-電子制御装置 図11
  • 特許-電子制御装置 図12
  • 特許-電子制御装置 図13
  • 特許-電子制御装置 図14
  • 特許-電子制御装置 図15
  • 特許-電子制御装置 図16
  • 特許-電子制御装置 図17
  • 特許-電子制御装置 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240903BHJP
【FI】
G06F9/50 150Z
【請求項の数】 7
(21)【出願番号】P 2021067735
(22)【出願日】2021-04-13
(65)【公開番号】P2022162753
(43)【公開日】2022-10-25
【審査請求日】2023-06-14
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】中川 結翔
(72)【発明者】
【氏名】太田 智泰
【審査官】坂東 博司
(56)【参考文献】
【文献】特開平06-318154(JP,A)
【文献】特開2019-200181(JP,A)
【文献】特開2021-026753(JP,A)
【文献】特開平06-093925(JP,A)
【文献】特開2016-095796(JP,A)
【文献】特開昭55-097884(JP,A)
【文献】特表平10-509291(JP,A)
【文献】米国特許出願公開第2021/0054799(US,A1)
【文献】特開2018-181144(JP,A)
【文献】特開2004-225668(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
複数の演算器(25)により並列処理が可能な並列演算処理器(13)を搭載したマイクロコンピュータ(11)を備えた電子制御装置であって、
制御用のマップ情報が記憶される共有メモリ(26)と、
制御情報に基づいて制御対象を制御する制御部(12a~12c)と、を備え、
前記制御部は、前記並列演算処理器にてマップに基づいて計算する必要が生じた場合には前記共有メモリのマップ情報を前記並列演算処理器に設けられる内部メモリ(23)の所定アドレスにロードし、前記制御情報を求めるための計算に必要となる変数を引数として前記並列演算処理器に与えると共に、前記並列演算処理器から与えられた計算結果に基づいて前記制御情報を求め、
前記並列演算処理器は、前記所定アドレスに記憶されたマップ情報、及び、前記制御部から与えられた引数に基づいて事前計算して記憶し、前記制御部から実際の計算時に与えられた引数に対応して事前計算によるマップ補間値の計算結果が記憶されていた場合は当該計算結果を前記制御部に与え、前記制御部から与えられた引数が前記事前計算した範囲外である場合には前記制御部に範囲外であることを通知し、前記マップの次元数や規模に応じて予め決められた前記制御部と前記並列演算処理器のいずれかでマップ補間値を計算する電子制御装置。
【請求項2】
前記並列演算処理器は、事前計算として引数及び当該引数周辺の演算を行う請求項1に記載された電子制御装置。
【請求項3】
記変数は、前記マップの軸として設定され、
前記並列演算処理器による引数周辺の範囲は、前記軸の特性に応じて設定されている請求項2に記載の電子制御装置。
【請求項4】
前記制御部は、前記事前計算後に計算結果を受け取りたいタイミングで引数を送信することで事前計算による計算結果を受け取る請求項1から3のいずれか一項に記載の電子制御装置。
【請求項5】
前記並列演算処理器は、事前計算による計算結果の受け渡し先に応じて当該計算結果を記憶する記憶領域を変更する請求項4に記載の電子制御装置。
【請求項6】
前記並列演算処理器は、実際の計算時に事前計算で与えられた引数に対応する計算結果を記憶していない場合は、今回与えられた引数に基づいて計算し、その計算結果を前記制御部に送信する請求項1から5のいずれか一項に記載の電子制御装置。
【請求項7】
前記並列演算処理器は、実際の計算時に事前計算で与えられた引数に対応する計算結果を記憶していない場合に今回与えられた引数に基づいて計算したときは、当該引数及び引数周辺を計算して記憶していた計算結果を更新する請求項6に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関する。
【背景技術】
【0002】
近年、例えば自動車の電子制御装置では、制御の複雑化によりマイクロコンピュータの処理能力の向上が図られている。その一例として、複数のコアと並列演算処理器とを備えたマイクロコンピュータを搭載し、コアから並列演算処理器に演算命令の集合体である演算命令群を処理要求し、並列演算処理器により演算命令を並列処理することで演算処理の高速化を図るようにしている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2016-95796号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
並列演算処理器は、コアから要求された演算命令群から演算命令を抽出し、ハードウェアの機能により複数の演算器に対して最適なリソース配分を自動的に行うことで高速な並列演算を可能としている。これにより、高速処理が必要なタスクを並列演算処理器に処理させることで、コアの処理時間を削減することが可能となる。
【0005】
しかしながら、並列演算処理器の処理に使用する情報は、制御周期毎に共有メモリから並列演算処理器の内部メモリにロードする必要があり、その際に発生するオーバーヘッドによって処理時間が増大し、並列演算処理器を利用した効果が低下してしまう虞がある。
【0006】
本発明は上記事情に鑑みてなされたもので、その目的は、制御部が並列演算処理器で演算命令群を処理する場合に処理時間を短縮することが可能となる電子制御装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1の発明によれば、制御部(12a~12c)は、制御情報に基づいて制御対象を制御する場合は、並列演算処理器にてマップに基づいて計算する必要が生じた場合には共有メモリのマップ情報を並列演算処理器に設けられる内部メモリ(23)の所定アドレスにロードし、当該制御情報を求めるのに必要となる変数を引数として並列演算処理器(13)に与える。並列演算処理器は、所定アドレスに記憶されたマップ情報、及び、制御部から与えられた引数に基づいて事前計算して記憶し、実際の計算時に与えられた引数に対応して事前計算によるマップ補間値の計算結果が記憶されていた場合は当該計算結果を制御部に与える。制御部は、並列演算処理器から与えられた計算結果に基づいて制御情報を求め、その制御情報により制御対象を制御する。制御部から与えられた引数が事前計算した範囲外である場合には前記制御部に範囲外であることを通知し、マップの次元数や規模に応じて予め決められた制御部と並列演算処理器のいずれかでマップ補間値を計算する。
【図面の簡単な説明】
【0008】
図1】第1実施形態に係るマイクロコンピュータの構成を示す機能ブロック図
図2】エンジンECUと各ECUとの接続を示すブロック図
図3】並列演算処理器の構成を概略的に示すブロック図
図4】演算命令群の構造を示す図
図5】事前計算に関連する動作を示す図
図6】1次元マップを示す図
図7】探索方法を示す図
図8】算出ポイントを示す図
図9】引数周辺の範囲を示す図
図10】コアと並列演算処理器との間の送受信を示す図
図11】第2実施形態に係るコアと並列演算処理器との間の送受信を示す図
図12】第3実施形態に係るコアと並列演算処理器との間の送受信を示す図
図13】第4実施形態に係る2次元マップを示す図
図14】算出ポイントを示す図
図15】X軸方向の線形補間を示す図(その1)
図16】X軸方向の線形補間を示す図(その2)
図17】Y軸方向の線形補間を示す図
図18】引数周辺の範囲を示す図
【発明を実施するための形態】
【0009】
以下、複数の実施形態について図面を参照して説明する。複数の実施形態において、機能的または構造的に対応する部分には同一の参照符号を付与する場合がある。
【0010】
(第1実施形態)
第1実施形態について図1から図10を参照して説明する。
図2に示すように、車両にはエンジンECU(Electronic Control Unit)1が搭載されている。エンジンECU1は電子制御装置に相当する。このエンジンECU1は、車載LAN2を介して自動変速ECU3、メータECU4、空調ECU5などの他のECUに通信可能に接続されている。車載LAN2のプロトコルは、例えばCAN(Controller Area Network)である。CANは登録商標である。
【0011】
エンジンECU1は、マイクロコンピュータ11を主体として構成されている。図1に示すようにマイクロコンピュータ11は、複数のコア12a~12cからなるコア群12や並列演算処理器13を備えて構成されており、それらのコア12a~12cや並列演算処理器13が複数の演算処理を並列処理することで高速処理を実現している。
【0012】
コア12a~12c及び並列演算処理器13は内部バス14を介して互いに接続されていると共に、ROM15、RAM16などのメモリやCANインターフェースなどのI/O17とも接続されている。マイクロコンピュータ11は他のマイクロコンピュータ18やAD変換器などの周辺回路19とも接続されている。
【0013】
コア12a~12cは、入力回路20を介してエンジンの運転状態を検出するための各種センサからの検出信号を入力し、その検出信号が示す検出値を処理することで出力回路21を介してエンジンを制御するためのアクチュエータを制御したり、通信回路22を介して他のECUと通信信号を送受信したりする。コア12a~12cは、エンジンを制御する上で所定の演算処理が必要となった場合は並列演算処理器13に処理要求する。
【0014】
図3に示すように並列演算処理器13は、メモリ23、制御回路24、複数の演算器25から構成されている。メモリ23には複数のコア12a~12cから与えられた演算命令群を処理するための情報が順に記憶される。
【0015】
制御回路24は、メモリ23に記憶された演算命令群を演算器25と連携して演算処理する。つまり、制御回路24はスケジューラ機能を有しており、メモリ23に記憶された演算命令群を構成する演算命令を対応する演算器25に自動的に割り振る。
【0016】
演算器25は、制御回路24により割り振られた演算命令を順に演算処理する。複数の演算器25は同一種類や異なる種類であり、同一種類や異なる種類の演算命令を演算器25に割り振ることで並列処理可能である。演算器25は、演算処理結果をメモリ23に記憶する。
【0017】
複数のコア12a~12cは、演算命令群を処理することを並列演算処理器13に要求した場合はメモリ23を介して演算結果を取得し、その演算結果に基づいて以後の処理を実行する。
【0018】
コア12a~12cが処理要求する演算命令群は、演算命令の処理順序が規定されている。例えば図4に示す演算命令群では、演算命令Aの演算処理が完了してから次の演算命令B~Dをそれぞれ演算処理し、演算命令B~Dの全ての演算処理が完了してから次の演算命令Eを演算処理することを規定している。
【0019】
さて、コア12a~12cの処理時間を削減するために高速処理が必要なタスクを並列演算処理器13に処理をさせることが考えられるが、並列演算処理器13の処理に使用する情報は、制御周期毎に電子制御装置の共有メモリから並列演算処理器13の内部メモリ23にロードする必要がある。このため、その際に発生するオーバーヘッドによって処理時間が増大し、並列演算処理器13を用いた効果が低下してしまう虞がある。
【0020】
このような事情から、本実施形態では、並列演算処理器13で事前計算可能な処理がある場合は並列演算処理器13に予め処理依頼する。この処理依頼の際、事前計算に必要となる情報を並列演算処理器13に渡す。並列演算処理器13は、処理依頼を受けて情報に基づいて事前計算し、計算結果を記憶しておく。事前計算の範囲は情報の特性に応じて決定する。例えば時定数で示されるパラメータを決め、情報の変動範囲が制御周期毎に変化しやすい場合はパラメータを大きく設定することで事前計算の範囲を大きく設定する。
【0021】
以下、並列演算処理器13で事前計算できる処理としてマップ計算を例示するが、マップ計算に限定されることなく事前計算が可能であればどのような処理であってもよい。
図5に示すように電子制御装置の共有メモリ26には制御用のマップ情報が記憶されており、並列演算処理器13でマップに基づいて計算する必要が生じた場合は、並列演算処理器の内部メモリ23の所定アドレスにマップ情報をロードする。
【0022】
内部メモリ23には要求元のコア12a~12cに対応してマップ情報をロードするアドレスが設定されており、並列演算処理器13にマップ情報をロードする場合は対応するアドレスにロードする。並列演算処理器13は、コア12a~12cから変数が与えられた場合は対応するアドレスに記憶されたマップ情報に基づいてマップ計算し、計算結果をコア12a~12cに返信する。
【0023】
以下、上記動作について具体的に説明する。
コア12a~12cは、図6に模式的に示す1次元マップを予め記憶している。この1次元マップは、マップ点Xと対応値点Yとの対応関係を示している。マップ点X1に対応して対応値Y1、マップ値X2に対応して対応値Y2、……マップ値X9に対応して対応値Y9が設定されている。
【0024】
このような1次元マップを用いて変数に対応するマップ補間値を決定する場合、変数が1次元マップのX軸に規定されているマップ点(X1,X2、……)の場合は対応値(Y1、Y2、……)を直接的に決定することができるが、変数がX軸に規定されていない場合は変数XAからマップ補間値YAを直接的に決定することはできない。
【0025】
このような場合、マップ点AをX軸及びY軸のマップ点に基づいて補間処理することはできるが、コア12a~12cが1次元マップに基づいて補間処理したのではコア12a~12cの処理時間が長くなり計算に間に合わなくなる虞がある。そこで、高速処理が必要な補間処理を並列演算処理器13に処理させることでコア12a~12cの処理時間の削減を図るようにした。
【0026】
コア12a~12cは、次の周期タスクで変数に対応したマップ補間値を求める場合、現在の変数または現在の変数から次の周期タスクで使用すると予測した変数を引数XAとして並列演算処理器13に与える。
以下、並列演算処理器13にて引数XAに対応するマップ補間値YAを補間処理により計算する方法について説明する。但し、X1≦XA≦X2として説明する。
【0027】
並列演算処理器13は、まず軸探索を行う。軸探索では、図7に示すように算出ポイントがマップ点X1~X9のいずれのマップ点間にあるのかをマップ点X9から順に大小判定を実施し、該当する算出ポイントを探索する。軸探索をマップ点X1から開始してもよいし、中間のマップ点から開始してもよい。X9から探索する場合に算出ポイントがX1~X2となった場合は、以後も探索回数が多くなる状態が継続することが予測される。従って、前回の軸探索による算出ポイントに基づいて探索開始ポイントを制御周期毎に変更することで、探索の効率化を図るのが望ましい。
【0028】
大小判定による軸探索の結果、図8に示すようにX1≦XA≦X2であることを探索した場合は、1次元マップの補間処理を実行する。この補間処理では、マップ点(X1,Y1)、(X2,Y2)から下記の1次式の線形補間式を用いて引数XAに対応したマップ補間値YAを算出する。
YA=((Y2-Y1)/(X2-X1))*(XA-X1)+Y1
以上のようにして引数の軸探索と補間処理とを実行することによりマップ計算し、図6に示すように引数XAに対応したマップ補間値YAを求めることができる。
【0029】
次に、X1≦XA≦X2であることから、図9に斜線で示す範囲を引数周辺の範囲と定め、各格子点に対し補間処理をする。X軸における引数周辺は引数の点からX軸方向に±pLSBで表される。LSBはXAを示すRAM値が1変化したときの物理値の変化量、つまり変数の最小変化量である。pは軸の特性を時定数で示すパラメータである。引数周辺の範囲は、制御周期毎の変動を予測して設定する。
【0030】
次に、コア12a~12cからの処理依頼に応じて並列演算処理器13でマップ計算する動作について説明する。本実施形態では、並列演算処理器13でマップ補間値を事前計算して保持し、次の周期タスクでコア12a~12cから送信された引数に対応付けたマップ補間値に基づいて処理し、演算結果をコア12a~12cに渡すことを特徴とする。
【0031】
図10に示すようにコア12a~12cと並列演算処理器13との間で以下のように情報を送受信する。
[事前計算]
(1)コア12a~12cは、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(2)並列演算処理器13は、引数周辺の軸探索と補間処理とを実行することによりマップ計算し、引数とマップ補間値とを対応付けて保持する。
(3)並列演算処理器13は、マップ補間値を保持している内部メモリ23のアドレスを送信する。
【0032】
[周期タスクでの処理]
(4)コア12a~12cは、次の制御周期となると、処理を依頼する。
(5)並列演算処理器13は、コア12a~12cからの引数に対応付けられた計算値を求める処理を行う。このとき、使用するマップは(2)で保存したマップ計算を用いる。
(6)並列演算処理器13は、使用する引数が(2)で保持した値の範囲内の場合は、(5)の計算結果を返信する。一方、使用する引数が範囲外の場合は、コア12a~12cに範囲外であることを通知する。
【0033】
(7)コア12a~12cは、範囲外であることを受信した場合は、軸探索と補間処理とを実行することによりマップ計算する。マップの次元数や規模によっては並列演算処理器13で計算した方が早いことから、並列演算処理器13で計算する。マップの次元数や規模に応じてコア12a~12cと並列演算処理器13とのいずれで計算すべきかを予め決めておく。
【0034】
(8)コア12a~12cは、並列演算処理器13で計算させた方が早い場合はマップ補間値及びマップ情報を送信する。
(9)並列演算処理器13は、受信した情報に基づいてマップ計算する。
(10)並列演算処理器13は、計算結果を返信する。これにより、コア12a~12cは、計算結果に基づいて以後の処理を実行する。
【0035】
[次の周期タスクの事前計算]
(11)コア12a~12cは、再計算したマップについて、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(12)並列演算処理器13は、(2)と同じ処理をし、保持していた結果を更新する。
(13)並列演算処理器13は、マップ補間値を保持しているアドレスを送信する。
【0036】
このような実施形態によれば、次のような効果を奏することができる。
並列演算処理器13は、コア12a~12cから与えられた引数に基づいて保持しているマップから引数及び引数周辺に対応したマップ補間値を事前計算して保持し、次の周期タスクで与えられた引数に対応する事前計算の計算結果が保持されていた場合は当該計算結果をコア12a~12cに与え、コア12a~12cは、並列演算処理器13から与えられた計算結果に基づいて求めたマップ補間値により以後の処理を実行する。これにより、オーバーヘッドを抑制することができるので、並列演算処理器13を利用した処理時間の短縮を図ることができる。
【0037】
並列演算処理器13による引数周辺の範囲をマップの軸の特性に応じて設定するようにしたので、引数周辺の範囲を適切に設定することができる。
コア12a~12cは、事前計算後に計算結果を受け取りたいタイミングで引数を送信することで計算結果を受け取ることができるので、以後の処理を迅速に実行することができる。
【0038】
並列演算処理器13は、計算結果の受け渡し先に応じて計算結果を記憶する記憶領域を変更するので、コア12a~12cは、任意のタイミングで計算結果を受信することができる。
【0039】
(第2実施形態)
第2実施形態について図11を参照して説明する。第2実施形態は、並列演算処理器13でマップ補間値を事前計算して保持し、次の周期タスクでコア12a~12cから送信された引数に対応付けたマップ補間値をコア12a~12cに渡し、マップ補間値に基づく計算をコア12a~12cで実行することを特徴とする。
【0040】
図11に示すようにコア12a~12cと並列演算処理器13との間で以下のように情報を送受信する。
[事前計算]
(1)コア12a~12cは、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(2)並列演算処理器13は、引数周辺の軸探索と補間処理とを実行することによりマップ計算し、引数とマップ補間値とを対応付けて保持する。
(3)並列演算処理器13は、マップ補間値を保持している内部メモリ23のアドレスを送信する。
【0041】
[周期タスクでの処理]
(4)コア12a~12cは、次の制御周期となると、マップの引数を送信する。
(5)並列演算処理器13は、使用する引数が(2)で保持した情報の範囲内であれば、引数に対応付けられたマップ補間値を返信する。一方、使用する引数が(2)で保持した情報の範囲外であれば、範囲外であることを通知する。
【0042】
(6)コア12a~12cは、受信したマップ補間値に基づいて処理する。一方、範囲外であることを受信した場合、軸探索と補間処理とを実行することによりマップ計算する。マップの次元数や規模によって、並列演算処理器13で計算させたほうが良い場合は並列演算処理器13にマップ情報を送信し、並列演算処理器13で計算する。この場合、マップの次元数や規模に応じていずれで計算すべきかを予め決めておく。
【0043】
(7)並列演算処理器13は、マップ計算を並列演算処理器13にさせる場合はマップ情報を送信する。
(8)並列演算処理器13は、マップ計算する。
(9)並列演算処理器13は、マップ補間値を送信する。
(10)コア12a~12cは、受信したマップ補間値を利用して処理する。
【0044】
[次の周期タスクの事前計算]
(11)コア12a~12cは、再計算したマップについて、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(12)並列演算処理器13は、(2)と同じ処理をし、保持していた結果を更新する。
(13)並列演算処理器13は、マップ補間値を保持しているアドレスを送信する。
【0045】
このような実施形態によれば、並列演算処理器13でマップ補間値を事前計算して保持し、次の周期タスクでコア12a~12cから送信された引数に対応付けたマップ補間値をコア12a~12cに渡し、マップ補間値に基づく計算をコア12a~12cで実行するので、並列演算処理器13の処理能力が低下した場合であっても全体の処理時間の短縮を図ることができる。
【0046】
(第3実施形態)
第3実施形態について図12を参照して説明する。第3実施形態では、並列演算処理器13でマップ補間値を事前計算し、それに関連した情報をコア12a~12cが保持し、次の周期タスクで引数に対応付けたマップ補間値に基づいて処理することを特徴とする。
【0047】
[事前計算]
(1)コア12a~12cは、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(2)並列演算処理器13は、引数周辺の軸探索と補間処理とを実行することによりマップ計算し、引数とマップ補間値を対応付ける。
(3)並列演算処理器13は、(2)の情報を送信する。
(4)コア12a~12cは、受信した情報を保持する。
【0048】
[周期タスクでの処理]
(5)コア12a~12cは、保持した情報を利用して処理する。引数に対応する結果を保持していなかった場合は、マップ計算してから処理する。
【0049】
[次の周期タスクの事前計算]
(6)コア12a~12cは、再計算したマップについて、次の周期タスクで使用するマップの引数と、引数周辺のマップ情報を送信する。
(7)並列演算処理器13は、(2)と同じ処理をする。
(8)並列演算処理器13は、処理した情報を送信する。
(9)コア12a~12cは、(4)の情報を更新する。
【0050】
このような実施形態によれば、並列演算処理器13に引数及びマップ情報を事前に送信することでマップ計算し、それに関連した情報をコア12a~12cが保持し、次の周期タスクで引数に対応付けたマップ補間値に基づいて処理するので、並列演算処理器13の処理能力が極端に低下した場合であっても全体の処理時間の短縮を図ることができる。
【0051】
(第4実施形態)
第4実施形態について図13から図16を参照して説明する。第4実施形態は、対象マップとして2次元マップを用いることを特徴とする。
【0052】
図13に示すように2次元マップには、マップ点(X1(X1≦XA≦X2),Y1(Y1≦YA≦Y2))に対応して対応値Z11、マップ点(X2,Y2)に対応して対応値Z12、……マップ点(X9,Y9)に対応して対応値Z99が設定されている。
図14に示すように2次元マップにおける任意の点(XA,YA)の補間値ZAの算出方法は、X軸方向とY軸方向の1次式による線形補間の組み合わせで算出される。
【0053】
即ち、任意の点(XA、YA)のマップ点の算出ポイントを探索すると、図14に示すように算出ポイントを決定することができる。算出ポイントは、4点(X1,Y1,Z11),(X2,Y1,Z12),(X1,Y2,Z21),(X2,Y2,Z22)の間にあることから、下記の補間処理1~3の1次式による線形補間の組み合わせでマップ点(XA,YA)の補間値ZAを算出する。
【0054】
まず、点(XA,Y1)に対応するZiを補間処理1により求める。
補間処理1は、図15に示すように点(XA(X1≦XA≦X2),Y1)の探索結果より、補間値Ziをマップ点(X1,Y1,Z11),(X2,Y1,Z12)から算出する。
X軸方向の線形補間式は、Zi=((Z12-Z11)/(X2-X1))*(XA-X1)+Z11となる。
【0055】
次に、点(XA,Y2)に対応するZiiを補間処理1により求める。
補間処理2は、図16に示すように点(XA(X1≦XA≦X2),Y2)の探索結果より、補間値Ziiをマップ点(X1,Y2,Z21),(X2,Y2,Z22)から算出する。
X軸方向の線形補間式は、Zii=((Z22-Z21)/(X2-X1))*(XA-X1)+Z21となる。
【0056】
最後に、点YAに対応するZAを補間処理3により求める。
補間処理3は、図17に示すように上記補間処理1,2で算出した補間値の2点(XA,Y1,Zi)、(XA,Y2,Zii)から、点YA(Y1≦YA≦Y2)に対する補間値ZAを算出する。
Y軸方向の線形補間式は、ZA=((Zii-Zi)/(Y2-Y1))*(YA-Y1)+Ziとなる。
X軸方向を補間してからY軸方向を補間するのに代えて、Y軸方向を補間してからX軸方向を補間するようにしてもよい。
【0057】
図18に示すように例えば引数が点(X(X1≦X≦X2),Y(Y1≦Y≦Y2))であれば、引数周辺を斜線範囲と定め、各格子点に対し補間処理をする。つまり、軸は引数の点からX軸方向に±pLSB、Y軸方向に±qLSBのように計算する。LSBはRAM値が1変化したときの物理値の変化量である。この場合、マップの次元数や規模に応じてどちらで計算すべきかを予め決めておく。例えばX軸が水温、Y軸がエンジン回転数であれば、基本的にはエンジン回転数のほうが変化しやすいパラメータであるため、Y軸のほうが広くなるように設定する。
【0058】
このような実施形態によれば、対象マップが2次元マップの場合であっても、X軸方向とY軸方向とを順に補間することでマップ計算を適切に行うことができる。
【0059】
(その他の実施形態)
並列演算処理器13は、今回の周期タスクで事前に与えられた引数に対応する計算結果を記憶していない場合は今回与えられた引数に基づいて計算し、その計算結果をコア12a~12cに送信するようにしてもよい。この場合、引数周辺が補間処理されていない場合であっても補間処理を行うことができる。
【0060】
並列演算処理器13は、次の周期タスクを実行するまでに今回与えられた引数及び引数周辺の演算を行い、記憶していた計算結果を更新するようにしてもよい。この場合、並列演算処理器13が引数に対応する計算結果を記憶していない場合であっても、並列演算処理器13を用いた効果が低下してしまうことを抑制することができる。
【0061】
並列演算処理器13の処理能力に合わせて第1~第3実施形態を組み合わせるようにしてもよい。つまり、並列演算処理器13の処理能力が高い場合は第1実施形態のように動作し、処理能力の低下に応じて第2実施形態、第3実施形態のように動作させるようにしてもよい。
【0062】
対象マップとして3次元以上のものを用いるようにしてもよい。
電子制御装置としては、エンジンECUに限定されることなく、制御対象を制御する装置であれば適用可能である。
【0063】
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【0064】
図面中、1はエンジンECU(電子制御装置)、11はマイクロコンピュータ、12a~12cはコア(制御部)、13は並列演算処理器、25は演算器である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18