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

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

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

<>
  • 特許-電子制御装置 図1
  • 特許-電子制御装置 図2
  • 特許-電子制御装置 図3
  • 特許-電子制御装置 図4
  • 特許-電子制御装置 図5
  • 特許-電子制御装置 図6
  • 特許-電子制御装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240806BHJP
【FI】
G06F9/48 300G
【請求項の数】 7
(21)【出願番号】P 2020122841
(22)【出願日】2020-07-17
(65)【公開番号】P2022019168
(43)【公開日】2022-01-27
【審査請求日】2022-09-13
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】中井 将貴
(72)【発明者】
【氏名】野口 拓也
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2016-001469(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
制御部(12a~12d)と、当該制御部が要求した演算命令群を処理する3以上の演算器を有した並列演算処理器(13)とを有したマイクロコンピュータ(11)を備え、前記並列演算処理器は演算命令群を構成する演算命令を対応する演算器に割振ることで処理する電子制御装置であって、
前記並列演算処理器は、前記演算器の1つに割振られた第1演算命令の処理時間が所定値以上となった場合は、前記第1演算命令により影響を受ける第2演算命令が割振られた他の1つである当初の演算器を、更に他の1つの処理中でない演算器に切替え
前記当初の演算器は、前記第1演算命令の処理終了後に前記第2演算命令を処理するように割振られた演算器である電子制御装置。
【請求項2】
前記並列演算処理器は、前記当初の演算器を前記更に他の1つの演算器に切替える場合に当該更に他の1つの演算器が処理中のときは,前記第1演算命令を前記当初の演算器で待機し空いたところで処理する請求項1記載の電子制御装置。
【請求項3】
前記並列演算処理器は、前記当初の演算器を前記更に他の1つの演算器が処理中であるため切替えることができなかった場合は、前記第2演算命令の処理に遅れが発生していることを前記制御部に通知する請求項1または2に記載の電子制御装置。
【請求項4】
前記並列演算処理器は、前記当初の演算器を前記更に他の1つの演算器に切替えたか否かにかかわらず演算命令群の処理時間が所定値以上となった場合は、演算命令群の処理に遅れが発生していることを前記制御部に通知する請求項1または2に記載の電子制御装置。
【請求項5】
前記並列演算処理器は、第1演算命令の処理時間が所定値以上となった場合に次回以降に同一の演算命令群を処理するときは、前記当初の演算器を前記更に他の1つの演算器に予め切替える請求項1からのいずれか一項に記載の電子制御装置。
【請求項6】
前記制御部は、前記並列演算処理器から遅れの通知が有った場合に前記並列演算処理器による演算命令群の処理時間が所定値以上となったときは、当該演算命令群を処理する請求項からのいずれか一項に記載の電子制御装置。
【請求項7】
前記制御部は、前記並列演算処理器からの遅れの通知が無かった場合に前記並列演算処理器による演算命令群の処理時間が所定値以上となったときは、前記第2演算命令の処理の遅れ以外の原因で遅れが発生していることをダイアグ通知する請求項からのいずれか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関する。
【背景技術】
【0002】
近年、例えば自動車の制御は複雑化しており、マイクロコンピュータの処理能力の向上が望まれている。マイクロコンピュータの処理能力の向上技術の一つとして、複数の演算器を有した並列演算処理器を搭載することが考えられている。この並列演算処理器は、演算命令群を構成する各演算命令を処理する演算器は予め設定されており、スケジューラ機能により演算命令を対応する演算器に割振ることにより演算命令群が処理される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-87004号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、演算命令群として、演算命令Bは演算命令Aの処理が終了していることを条件として処理を開始するという依存関係となる場合がある。このような場合、演算命令Aが終了するまで演算命令Bは待機する必要がある。
しかしながら、演算命令Aの処理が長引いた場合には演算命令Bの処理終了時間が想定時間よりも遅れることになり、演算命令群の処理に要する時間が長くなることがある。このような場合、マイクロコンピュータが演算命令群の演算結果に基づいて次の処理を行うまでに時間を要することになり、自動車の制御に支障を生じることが予測される。
【0005】
本発明は上記事情に鑑みてなされたもので、その目的は、演算命令群を構成する演算命令の処理順番が規定されている場合であっても、演算命令の処理が遅れてしまうことを抑制できる電子制御装置を提供することにある。
【課題を解決するための手段】
【0006】
請求項1の発明によれば、並列演算処理器(13)は、演算器の1つに割振られた第1演算命令の処理時間が所定値以上となった場合は、演算命令により影響を受ける第2演算命令が割振られた他の1つである当初の演算器を更に他の1つ処理中でない演算器に切替える。これにより、第1演算命令により影響を受ける第2演算命令の処理が遅れてしまうことを抑制できる。この場合、当初の演算器は、第1演算命令の処理終了後に第2演算命令を処理するように割振られた演算器である。
【図面の簡単な説明】
【0007】
図1】一実施形態に係るマイクロコンピュータの構成を示す機能ブロック図
図2】エンジンECUと各ECUとの接続を示すブロック図
図3】並列演算処理器の構成を概略的に示すブロック図
図4】グラフ構造を示す図
図5】スレッドの処理順序を示す図
図6】コアの動作を示すフローチャート
図7】並列演算処理器の動作を示すフローチャート
【発明を実施するための形態】
【0008】
以下、一実施形態について図面を参照して説明する。
図1に示すようにマイクロコンピュータ11は、複数のコア12a~12dからなるコア群12や並列演算処理器13を備えて構成されている。これらのコア12a~12dや並列演算処理器13が複数の演算処理を並列処理することで高速処理を実現している。
【0009】
コア12a~12d及び並列演算処理器13は内部バス14を介して互いに接続されていると共に、ROM及びRAMなどのメモリ15やAD変換器及びCAN(Controller Area Network)インターフェースなどの周辺回路16とも接続されている。CANは登録商標である。
【0010】
コア12a~12dは、エンジンを制御するためのアクチュエータの動作やエンジンの運転状態を検出するための各種センサからの検出信号をAD変換器によりデジタル変換したデジタル値を入力し、そのデジタル値を処理して所定の物理値を求める演算処理が必要となった場合は並列演算処理器13に対して処理要求する。
【0011】
図2に示すように、車両にはエンジンECU(Electronic Control Unit)1が搭載されている。エンジンECU1は、上述したマイクロコンピュータ11を主体として構成されている。エンジンECU1が電子制御装置に相当する。このエンジンECU1は、車載LAN2を介して自動変速ECU3、メータECU4、空調ECU5などの他のECUに通信可能に接続されている。車載LAN2のプロトコルは、例えばCANである。
【0012】
図3に示すように並列演算処理器13は、メモリ17と、演算制御部18と、並列演算部19とから構成されている。メモリ17には各コア12a~12dから処理要求された演算命令群が順に記憶される。コア12a~12dが制御部に相当する。
【0013】
演算制御部18は、メモリ17に記憶された演算命令群を並列演算部19と連携して演算処理する。つまり、演算制御部18はスケジューラ機能を有しており、メモリ17に記憶された演算命令を並列演算部19に自動的に割り振る。
【0014】
並列演算部19はFIFO(First-In First-Out)型であり、演算制御部18により並列演算部19に割り振られた演算命令を順に演算処理する。並列演算部19は同一種類や異なる種類の演算器の集合であり、同一種類や異なる種類の演算命令を並列処理可能である。並列演算部19は、演算結果をメモリ17に記憶する。
【0015】
図1に示す複数のコア12a~12dは、演算命令群を処理することを並列演算処理器13に要求した場合はメモリ17を介して演算結果を取得し、その演算結果に基づいて以後を処理する。以下、演算命令群をグラフ、演算命令をスレッドと称する。
【0016】
コア12a~12dが処理要求するグラフは、スレッドの処理順序が規定されている。例えば図4に示すグラフでは、スレッドAの処理が完了してから次のスレッドB、Cをそれぞれ処理し、スレッドB、Cの全ての処理が完了してから次のスレッドDを処理し、スレッドBが終了してから次のスレッドEを処理することを規定している。
【0017】
ところで、図4に示すようなグラフ構造の場合、図5に示すように演算器YではスレッドBの処理が終了してからスレッドEの処理を開始するという依存関係となることから、スレッドBの処理が終了するまでスレッドEは待機しなければならずスレッドEの処理終了時間が想定時間よりも遅れてしまうことがある。このため、並列演算処理器13からのグラフの演算結果出力が遅れてしまう場合があり、不具合を生じることが想定される。尚、図5の各スレッドの処理タイミングはスレッドの処理順番を理解し易いように示したものであり、実際のタイミングとは異なる。
【0018】
不具合の一例としては、スレッドBとスレッドEとを同一の演算器Yで処理するにしてもグラフの終了時間に影響は発生しないと判断した場合であっても、異なる車種のエンジンECUに上記構成のマイクロコンピュータ11を採用した場合は、グラフの演算結果を出力するまでに想定以上の遅れが出てしまう可能性がある。例えばエンジンの気筒数が4気筒から8気筒へ変更することによって、クランク欠け歯判定においてスレッドBの処理が長引いてしまい、実際のグラフの処理終了時間が想定したグラフの処理終了時間よりも遅れてしまう可能性がある。
【0019】
このような事情から、本実施形態では、依存関係となる複数のスレッドが同一の演算器を使用するような場合であっても、以下に説明するようにグラフの処理が遅れてしまうことを抑制するようにした。
【0020】
基本的な動作として、コア12a~12dは、並列演算処理器13に対してグラフを処理することを要求する。並列演算処理器13は、コア12a~12dからグラフの処理が要求された場合は、グラフを構成するスレッドを並列演算部19の対応する演算器に割振る。演算器は割振られたスレッドを順に処理する。そして、演算制御部18は、グラフの演算結果をコア12a~12dに送信する。これにより、コア12a~12dは、並列演算処理器13により処理されたグラフの演算結果に基づいて各種制御を実行可能となる。
【0021】
さて、図6に示すようにコア12a~12dは、並列演算処理器13に対して処理を要求した場合は、グラフ処理時間T1を計測開始し(S101)、計測終了したかを判断する(S102)。
ここで、グラフ構造は図4に示したようにスレッドAを処理してからスレッドB、Cを並列に処理し、それらの処理終了後にスレッドDを処理し、スレッドBの演算終了後にスレッドEを処理するものとする。また、図5に示すように演算器XによりスレッドAとスレッドDを処理し、演算器YによりスレッドBとスレッドEを処理し、演算器ZによりスレッドCを処理するものとする。スレッドA、Dは同一の演算命令、スレッドB、C、Eは同一の演算命令とする。スレッドBが第1演算命令に相当し、スレッドEが第2演算命令に相当する。この場合、スレッドBの処理が終了してからスレッドEの処理を開始するという依存関係となる。演算器Yが当初の演算器に相当し、演算器Zが他の演算器に相当する。
【0022】
図7に示すように並列演算処理器13は、スレッド処理終了後のスレッド処理時間T2を計測開始し(S201)、スレッド処理時間T2が第2所定値以上となったかを判断する(S202)。第2所定値とは、スレッドの処理時間が期待値よりも長いと判断するのに十分な時間である。正常時であればスレッド処理時間T2は所定値未満であるので(S202:NO)、そのまま終了する。
【0023】
図6に示すようにコア12a~12dは、並列演算処理器13による演算結果を受取った場合は計測終了と判断し(S102:YES)、グラフ処理時間T1が第1所定値以上となったかを判断する(S103)。第1所定値とは、グラフの処理時間が期待値よりも長いと判断するのに十分な時間である。スレッド処理時間T2が第2所定値未満の場合は、グラフ処理時間T1は第1所定値未満となる関係にある。正常時であればグラフ処理時間T1は所定値未満であるので(S103:NO)、そのまま終了する。
【0024】
一方、並列演算処理器13は、スレッド処理時間T2が第2所定値以上となった場合は(S202:YES)、グラフにおいて次に実施するスレッド名を取得してから(S203)、他の演算器で空きが有るかを判断する(S204)。図5に示す例では、演算器Zに空きが有るので(S204:YES)、他の演算器である演算器ZにスレッドEを移動する(S205)。これにより、スレッドEを処理する演算器は当初の演算器Yから他の演算器Zに切替えられるので、スレッドEは演算器Zで処理されるようになる。
以上のような動作により、スレッドEの処理を早めることができる。
【0025】
また、並列演算処理器13は、他の演算器で空きがない場合は(S204:NO)、当初の演算器で待機し空いたところで遅れている遅れスレッドを優先的に処理する(S206:YES)。このとき、遅れスレッドの処理が遅れることは明らかであることから、遅れスレッドのスレッド名を通知する(S207)。これにより、コア12a~12dに対してスレッド遅れが通知される。
【0026】
コア12a~12dは、グラフ処理時間T1が第1所定値以上となった場合に(S103:YES)、並列演算処理器13からスレッド遅れ通知が有ったときは(S104:YES)、遅れスレッドを持つグラフを処理する(S105)。これにより、並列演算処理器13が処理するよりも早くグラフ処理することが可能となる。尚、図6のフローチャートには示していないが、グラフ処理が終了するまでに並列演算処理器13によるグラフ処理が終了して演算結果を受けた場合は、その演算結果を採用する。
【0027】
コア12a~12dは、グラフ処理時間T1が第1所定値以上となった場合に(S103:YES)、スレッド遅れ通知が無かったときは(S104:NO)、スレッド以外の要因で遅れが発生していることをダイアグ通知する(S106)。
【0028】
このような実施形態によれば、次のような効果を奏することができる。
並列演算処理器13は、演算器に割振られたスレッドの処理時間が第2所定値以上となった場合は、当該スレッドの処理終了後に次の演算命令を処理するように割振られた当初の演算器を他の演算器に切替えるので、スレッドにより影響を受けるスレッドの処理が遅れてしまうことを抑制できる。
【0029】
並列演算処理器13は、当初の演算器を他の演算器に切替える場合に当該他の演算器が処理中のときは,スレッドを当初の演算器で待機し空いたところで処理するので、スレッドを確実に処理することができる。
【0030】
並列演算処理器13は、当初の演算器を他の演算器に切替えることができなかった場合は、スレッドの処理後のスレッドの処理に遅れが発生していることをコア12a~12dに通知するので、コア12a~12dはグラフの処理が遅れることを認識することができる。
【0031】
コア12a~12dは、並列演算処理器13からスレッド遅れ通知が有った場合に並列演算処理器13によるグラフ処理時間T1が第1所定値以上となったときは、当該グラフを処理するので、グラフの処理が行われないという事態を防止できる。
【0032】
コア12a~12dは、並列演算処理器13から遅れの通知が無かった場合に並列演算処理器13によるグラフ処理時間T1が第1所定値以上となったときは、スレッドの処理の遅れ以外の原因で遅れが発生していることをダイアグ通知するので、スレッドの遅れ以外の原因で遅れが発生したことを報知することができる。
【0033】
(その他の実施形態)
並列演算処理器13は、当初の演算器を他の演算器に切替えたか否かにかかわらずグラフの処理時間が第2所定値以上となった場合は、グラフの処理に遅れが発生していることをコア12a~12dに通知するようにしてもよい。この場合、並列演算処理器13は当初の演算器を他の演算器に切替えた場合にグラフの処理が遅れたときは、コア12a~12dにグラフの処理遅れを確実に通知することができる。
【0034】
並列演算処理器13は、スレッドの処理時間が第2所定値以上となった場合に次回以降に同一のグラフを処理するときは、当初の演算器を他の演算器に予め切替えるようにしてもよい。具体的には、スレッドを移動して演算した演算器を記憶しておき、次回以降の同一のグラフ処理では遅れスレッドを記憶した演算器で処理する。これにより、次のグラフ処理では、当初から遅れスレッドを処理する演算器を他の演算器で処理することができるので、並列演算処理器13の動作を簡略化することができる。
【0035】
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【0036】
図面中、1はエンジンECU(電子制御装置)、11はマイクロコンピュータ、12a~12dはコア(制御部)、13は並列演算処理器である。
図1
図2
図3
図4
図5
図6
図7