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
  • 特許-エンジン制御装置 図20
  • 特許-エンジン制御装置 図21
  • 特許-エンジン制御装置 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】エンジン制御装置
(51)【国際特許分類】
   F02D 45/00 20060101AFI20240709BHJP
【FI】
F02D45/00 374
F02D45/00 362
【請求項の数】 3
(21)【出願番号】P 2021016686
(22)【出願日】2021-02-04
(65)【公開番号】P2022119506
(43)【公開日】2022-08-17
【審査請求日】2023-06-14
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】松下 悠亮
【審査官】戸田 耕太郎
(56)【参考文献】
【文献】特開2005-215891(JP,A)
【文献】国際公開第2014/184959(WO,A1)
【文献】特開2013-101563(JP,A)
【文献】特開2018-049385(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
F02D 45/00
(57)【特許請求の範囲】
【請求項1】
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
前記角度に応じた角度信号を取得する取得部(31)と、
前記処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
前記角度信号に同期して前記処理を実行する少なくとも一つの演算部(11,12)と、前記演算部が前記記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
前記演算部が実行予定の前記処理に用いる前記データである使用データを、前記実行予定の前記処理で必要となるタイミングよりも前に、予め前記記憶装置から前記記憶部に転送する転送部(4,5)と、を備え
前記転送部は、
前記角度信号が入力される予測周期を予測する予測部(412)と、
前記予測周期に基づいて、前記使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
前記タイミング取得部は、前記記憶装置から前記記憶部への前記使用データの転送時間に相当する予め決められた転送規定時間を、前記予測周期から減算することで、前記転送タイミングを取得するエンジン制御装置。
【請求項2】
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
前記角度に応じた角度信号を取得する取得部(31)と、
前記処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
前記角度信号に同期して前記処理を実行する少なくとも一つの演算部(11,12)と、前記演算部が前記記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
前記演算部が実行予定の前記処理に用いる前記データである使用データを、前記実行予定の前記処理で必要となるタイミングよりも前に、予め前記記憶装置から前記記憶部に転送する転送部(4,5)と、を備え
前記転送部は、
前記角度信号が入力される予測周期を予測する予測部(412)と、
前記予測周期に基づいて、前記使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
前記タイミング取得部は、予め決められた前記データの基本転送時間と、前記実行予定の前記処理の数との乗算を行うことで、前記記憶装置から前記記憶部へ前記使用データを転送するのに要する合計転送時間を算出し、前記合計転送時間を前記予測周期から減算することで、前記転送タイミングを取得するエンジン制御装置。
【請求項3】
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
前記角度に応じた角度信号を取得する取得部(31)と、
前記処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
前記角度信号に同期して前記処理を実行する少なくとも一つの演算部(11,12)と、前記演算部が前記記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
前記演算部が実行予定の前記処理に用いる前記データである使用データを、前記実行予定の前記処理で必要となるタイミングよりも前に、予め前記記憶装置から前記記憶部に転送する転送部(4,5)と、を備え
前記転送部は、
前記角度信号が入力される予測周期を予測する予測部(412)と、
前記予測周期に基づいて、前記使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
前記タイミング取得部は、予め決められた前記データの基本転送時間と、実行予定の前記処理で用いられる前記使用データに固有の転送時間情報の乗算を行うことで、前記記憶装置から前記記憶部へ前記使用データを転送するのに要する合計転送時間を算出し、前記合計転送時間を前記予測周期から減算することで、前記転送タイミングを取得するエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、エンジン制御装置に関する。
【背景技術】
【0002】
エンジン制御装置の一例として、特許文献1に開示された内燃機関の制御装置がある。この制御装置は、各気筒における所定CA(Crank Angle)の所要時間の平均値に基づいてクランク軸回転速度の変動を予測する。そして、制御装置は、予測したクランク軸の回転速度の変動に基づいて次サイクルの所要時間を予測することで燃料噴射時期を制御する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2005-133669号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、上記のような制御装置では、センサからマイコンに入力されるアナログ信号がADC(Analog Digital Converter)を介してデジタルデータに変換される。そして、制御装置は、このデータがDMAC(Direct Memory Access Controller)によってADCからRAMに転送されてRAMに格納される。また、制御装置は、角度割込みに同期してCPUのコアが演算を開始し、RAMに格納されたデータを読み込む。
【0005】
しかしながら、エンジン制御装置では、エンジン制御の高度化に起因して、センサ数の増加や高サンプリングレート化によるデータ処理の複雑化およびデータ量の増大化の傾向がある。よって、エンジン制御装置では、コアがRAMに格納されたデータの読み込みに要するレイテンシが増大する。このため、エンジン制御装置は、角度割込みまでに、前回の角度割込みに同期した処理が終わらない可能性がある。
【0006】
開示される一つの目的は、次の処理タイミングまでに処理を終了しやすくできるエンジン制御装置を提供することである。
【課題を解決するための手段】
【0007】
ここに開示されたエンジン制御装置は、
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
角度に応じた角度信号を取得する取得部(31)と、
処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
角度信号に同期して処理を実行する少なくとも一つの演算部(11,12)と、演算部が記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
演算部が実行予定の処理に用いるデータである使用データを、実行予定の処理で必要となるタイミングよりも前に、予め記憶装置から記憶部に転送する転送部(4,5)と、を備え
転送部は、
角度信号が入力される予測周期を予測する予測部(412)と、
予測周期に基づいて、使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
タイミング取得部は、記憶装置から記憶部への使用データの転送時間に相当する予め決められた転送規定時間を、予測周期から減算することで、転送タイミングを取得する
【0008】
これにより、演算部は、角度に同期して処理を行う際に、記憶部から使用データを読み込む。このため、演算部は、記憶装置から使用データを読み込む場合よりも、短時間で使用データを読み込むことができる。よって、エンジン制御装置は、角度に同期した次の処理タイミングまでに演算部による処理を終了しやすくできる。
さらに、ここに開示されたエンジン制御装置は、
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
角度に応じた角度信号を取得する取得部(31)と、
処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
角度信号に同期して処理を実行する少なくとも一つの演算部(11,12)と、演算部が記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
演算部が実行予定の処理に用いるデータである使用データを、実行予定の処理で必要となるタイミングよりも前に、予め記憶装置から記憶部に転送する転送部(4,5)と、を備え、
転送部は、
角度信号が入力される予測周期を予測する予測部(412)と、
予測周期に基づいて、使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
タイミング取得部は、予め決められたデータの基本転送時間と、実行予定の処理の数との乗算を行うことで、記憶装置から記憶部へ使用データを転送するのに要する合計転送時間を算出し、合計転送時間を予測周期から減算することで、転送タイミングを取得する
さらに、ここに開示されたエンジン制御装置は、
エンジンのクランク軸の角度に同期して処理を行うエンジン制御装置であって、
角度に応じた角度信号を取得する取得部(31)と、
処理に用いる少なくとも一つのデータを記憶している記憶装置(3)と、
角度信号に同期して処理を実行する少なくとも一つの演算部(11,12)と、演算部が記憶装置にアクセスする場合よりも短時間でアクセス可能な少なくとも一つの記憶部(13,13a,13b)とを有する演算処理装置(1)と、
演算部が実行予定の処理に用いるデータである使用データを、実行予定の処理で必要となるタイミングよりも前に、予め記憶装置から記憶部に転送する転送部(4,5)と、を備え、
転送部は、
角度信号が入力される予測周期を予測する予測部(412)と、
予測周期に基づいて、使用データの転送を開始する転送タイミングを取得するタイミング取得部(42a)と、を備え、
タイミング取得部は、予め決められたデータの基本転送時間と、実行予定の処理で用いられる使用データに固有の転送時間情報の乗算を行うことで、記憶装置から記憶部へ使用データを転送するのに要する合計転送時間を算出し、合計転送時間を予測周期から減算することで、転送タイミングを取得する。
【0009】
この明細書において開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。請求の範囲およびこの項に記載した括弧内の符号は、後述する実施形態の部分との対応関係を例示的に示すものであって、技術的範囲を限定することを意図するものではない。この明細書に開示される目的、特徴、および効果は、後続の詳細な説明、および添付の図面を参照することによってより明確になる。
【図面の簡単な説明】
【0010】
図1】第1実施形態におけるECUの概略構成を示すブロック図である。
図2】第1実施形態におけるタイマモジュールの概略構成を示すブロック図である。
図3】第1実施形態におけるタイミング計算部の概略構成を示すブロック図である。
図4】第1実施形態における転送開始指示部の概略構成を示すブロック図である。
図5】第1実施形態におけるタイミング計算処理を示すフローチャートである。
図6】第1実施形態におけるタイミング計算処理時の処理動作を示すタイムチャートである。
図7】第1実施形態における転送開始処理を示すフローチャートである。
図8】第1実施形態における転送開始処理時の処理動作を示すタイムチャートである。
図9】第2実施形態におけるタイミング計算部の概略構成を示すブロック図である。
図10】第2実施形態におけるタイミング計算処理を示すフローチャートである。
図11】第2実施形態におけるタイミング計算処理時の処理動作を示すタイムチャートである。
図12】第3実施形態におけるタイミング計算部の概略構成を示すブロック図である。
図13】第3実施形態におけるタイミング計算処理を示すフローチャートである。
図14】第3実施形態におけるタイミング計算処理時の処理動作を示すタイムチャートである。
図15】第4実施形態におけるタイミング計算部の概略構成を示すブロック図である。
図16】第4実施形態における転送開始指示部の概略構成を示すブロック図である。
図17】第4実施形態におけるタイミング計算処理を示すフローチャートである。
図18】第4実施形態における転送開始処理を示すフローチャートである。
図19】第5実施形態における転送開始指示部の概略構成を示すブロック図である。
図20】第5実施形態における転送開始処理を示すフローチャートである。
図21】第5実施形態における転送開始処理時の処理動作を示すタイムチャートである。
図22】第6実施形態におけるECUの概略構成を示すブロック図である。
【発明を実施するための形態】
【0011】
以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
【0012】
(第1実施形態)
図1図8を用いて、ECU(Electronic Control Unit)100に関して説明する。本実施形態では、エンジン制御装置をECU100に適用した例を採用する。このため、ECU100は、エンジンが設けられた車両に搭載可能に構成されている。
【0013】
<構成>
図1図4を用いて、ECU100の構成に関して説明する。図1に示すように、ECU100は、バッテリ200が電気的に接続されている。ECU100は、バッテリ200から動作電力が供給される。ECU100は、制御対象として、エンジン内に設けられた例えばイグナイタ210およびインジェクタ220が電気的に接続されている。ECU100は、イグナイタ210に点火信号を出力して、イグナイタ210を駆動する。また、ECU100は、インジェクタ220に燃料噴射信号を出力して、インジェクタ220を駆動する。
【0014】
さらに、ECU100は、センサとして、例えばカムセンサ230、クランクセンサ240が電気的に接続されている。カムセンサ230は、カムロータ232に対向配置されている。カムロータ232は、カムシャフト231に固定されている。カムロータ232は、カムシャフト231の回転に伴って回転する。カムセンサ230は、カムロータ232の回転に対応したパルス状のカム信号を出力する。カム信号は、720CA周期で出力される信号である。カム信号は、クランク信号と組み合わせて、クランク角度の基準角度を検出するために使用される。
【0015】
クランクセンサ240は、クランクロータ242に対向配置されている。クランクロータ242は、クランクシャフト241に固定されている。クランクロータ242は、クランクシャフト241の回転に伴って回転する。クランクセンサ240は、クランクロータ242の回転に対応したパルス状のクランク信号を出力する。つまり、クランクセンサ240は、クランクシャフト241の角度に応じたクランク信号を出力するともいえる。
【0016】
なお、クランクシャフト241は、クランク軸に相当する。クランク信号は、角度信号に相当する。なお、クランク信号は、クランク角度信号ともいえる。
【0017】
ECU100は、マイコン10、電源回路20、入力回路31、出力回路32などを備えている。まず、電源回路20は、バッテリ200と電気的に接続されている。電源回路20は、バッテリ200の電圧を電圧変換して、マイコン10、入力回路31、出力回路32に供給する。
【0018】
入力回路31は、カムセンサ230、クランクセンサ240が電気的に接続されている。入力回路31は、カム信号やクランク信号が入力される。また、入力回路31は、その他のセンサやスイッチなどが電気的に接続されていてもよい。この場合、入力回路31は、その他のセンサからのセンサ信号やスイッチからのスイッチ信号が入力される。このように、入力回路31は、クランク信号などが入力されることで、クランク信号などを取得するといえる。入力回路31は、取得部に相当する。入力回路31は、入力された各種信号をマイコン10へ出力する。
【0019】
出力回路32は、イグナイタ210、インジェクタ220が電気的に接続されている。出力回路32は、イグナイタ210に点火信号を出力する。また、出力回路32は、インジェクタ220に燃料噴射信号を出力する。なお、出力回路32は、他ECUと接続されていてもよい。この場合、出力回路32は、他ECUに対して出力信号を出力する。出力回路32は、マイコン10からの指示に応じて信号を出力する。
【0020】
マイコン10は、CPU1、ROM2、RAM3、タイマモジュール4、DMAC5、ADC6、I/O7などを備えている。これらは、内部バスを介して電気的に接続されている。マイコン10は、電源回路20、入力回路31、出力回路32と電気的に接続されている。
【0021】
マイコン10は、推定されたクランク角度に同期して、点火時期制御、ノック制御、燃料噴射制御などのエンジン制御処理を開始する。マイコン10は、エンジン制御処理の結果として、燃料噴射信号や点火信号を出力する。ECU100は、出力回路32を介して点火信号を出力することで、イグナイタ210を駆動する。同様に、ECU100は、出力回路32を介して燃料噴射信号を出力することで、インジェクタ220を駆動する。
【0022】
CPU1は、第1コア11、第2コア12、ローカルRAM13などを備えている。CPU1は、演算処理装置に相当する。
【0023】
コア11,12は、ROM2などに記憶されているプログラムに従って処理を実行する。また、コア11,12は、クランク信号に同期して処理を実行する。言い換えると、コア11,12は、クランクシャフト241の角度に同期したタイミングで処理を行う。また、コア11,12は、クランクシャフト241の角度に同期した角度割込みが発生するたびに処理を実行するともいえる。
【0024】
なお、コア11,12が実行する処理は、エンジン制御処理の一部の処理である。また、コア11,12が実行する処理は、エンジン制御を行うための処理ともいえる。コア11,12は、エンジン制御を行うために複数の処理を実行する。さらに、コア11,12は、イグナイタ210、インジェクタ220を制御するための処理(制御処理)を実行するともいえる。
【0025】
コア11,12は、処理を実行する際に、少なくとも一つのデータを用いる。コア11,12は、処理を実行する際に、ローカルRAM13に記憶されているデータを読み込む。そして、コア11,12は、読み込んだデータを用いて処理を実行する。ローカルRAM13に記憶されているデータは、RAM3から転送されたものである。この点に関しては、後ほど詳しく説明する。
【0026】
以下においては、一例として、第1コア11が処理を実行する状況を採用する。第1コア11が実行予定の処理で用いるデータは、使用データともいえる。なお、後ほど説明するタイマモジュール4やDMAC5は、第2コア12が処理を実行する場合でも同様に処理動作する。
【0027】
コア11,12は、演算部に相当する。ローカルRAM13は、記憶部に相当する。ローカルRAM13は、コア11,12とともにCPU1内に設けられている。よって、ローカルRAM13は、コア11,12がRAM3にアクセスする場合よりも短時間でアクセス可能に構成されている。
【0028】
なお、本実施形態では、一例として、二つのコア11,12と、一つのローカルRAM13を備えた例を採用している。しかしながら、本開示は、これに限定されず、少なくとも一つのコアと、少なくとも一つのローカルRAMを備えていればよい。
【0029】
ROM2は、CPU1が実行可能なプログラムが記憶されている。RAM3は、コア11,12のいずれか一方が処理を実行する際に用いる少なくとも一つのデータが一時的に記憶されている。RAM3は、記憶装置に相当する。
【0030】
なお、RAM3は、ローカルRAM13と区別するために、CPU1の外部に設けられた外部記憶装置ともいえる。一方、ローカルRAM13は、CPU1の内部に設けられた内部記憶装置ともいえる。
【0031】
タイマモジュール4は、DMAC5に対して、使用データの転送リクエストを示すリクエスト信号を出力する。タイマモジュール4に関しては、後ほど詳しく説明する。DMAC5は、リクエスト信号に応じて、RAM3に記憶されているデータを、ローカルRAM13に転送する。以下において、単に転送と記載している箇所は、RAM3からローカルRAM13へのデータの転送を示しているものとする。
【0032】
タイマモジュール4とDMAC5は、第1コア11が処理を実行する際に使用データが必要となるタイミングよりも前に、予めRAM3からローカルRAM13に転送する。詳述すると、第1コア11は、処理を実行する際に使用データが必要になる。そこで、タイマモジュール4とDMAC5は、使用データが必要となるタイミングまでに、予めRAM3からローカルRAM13に使用データを転送して、使用データをローカルRAM13に格納する。タイマモジュール4とDMAC5は、転送部に相当する。
【0033】
ADC6は、アナログ信号をデジタル信号に変換するAD変換器である。ADC6は、例えば、I/O7に入力された信号をコア11,12が処理に用いるデータに変換する。I/O7は、例えば、入力回路31に入力された信号を内部バスに出力し、内部バスに出力された信号を出力回路32に出力する。ここでの信号は、点火信号、燃料噴射信号、クランク信号、カム信号だけでなく、コア11,12が処理に用いるデータを示す信号なども含んでいる。
【0034】
ここで、図2図3図4を用いて、タイマモジュール4に関して説明する。タイマモジュール4は、第1タイマ41、タイミング計算部42a、第2タイマ43などを備えている。タイマモジュール4は、クランク信号が入力回路31およびI/O7を介して入力される。
【0035】
第1タイマ41は、周期計測部411と周期予測部412とを備えている。周期計測部411は、クランク信号のエッジを検出して、クランク信号のパルス数をカウントする。パルス数は、カウント値PCやエッジ数などといえる。また、周期計測部411は、クランク信号のエッジを検出して、クランク信号周期Tamを計測する。このクランク信号周期Tamは、クランク信号におけるエッジ間の時間である。以下では、クランク信号周期Tamを単に周期Tamとも称する。さらに、第1タイマ41は、クランク信号のカウント値PCと周期Tamをもとに、クランク角度を推定する。
【0036】
周期計測部411は、例えば、クランク信号の立上りエッジを検出するエッジ検出回路と、検出されたエッジをカウントするカウンタなどを有している。エッジ検出回路は、立下りエッジを検出するものであってもよい。
【0037】
周期予測部412は、カウント値PCをもとに、例えば10CAや6CAごとの大まかなクランク角度θを検出する。ここでのCAは、上記に限定されない。周期予測部412は、検出したクランク角度と、周期計測部411で計測された周期Tamをもとに、次回以降のクランク信号周期を予測する。以下では、予測したクランク信号周期を予測周期Tpdとも称する。周期予測部412は、予測部に相当し、クランク信号が入力される予測周期Tpdを予測する。なお、予測周期Tpdの予測方法は、特開2013-108478号公報を参照されたい。
【0038】
また、周期予測部412は、コア11,12の動作クロックとして、逓倍角度クロックを生成してもよい。周期予測部412は、予測周期Tpdをもとに、大まかなクランク角度θよりも詳細(例えば1CA単位)なクランク信号周期の所定倍数の周波数を持つ逓倍角度クロックを生成する。コア11,12は、逓倍角度クロックに同期して処理を行うことで、クランクシャフト241の角度に同期して処理を行ってもよい。ECU100は、逓倍角度クロックをもとに処理を行うことで、分解能の高い高精度なエンジン制御が可能である。
【0039】
図2図3に示すように、タイミング計算部42aは、第1タイマ41と電気的に接続されている。タイミング計算部42aは、第1タイマ41内のハードウェア処理、もしくはソフトウェア実装によって実現できる。タイミング計算部42aは、例えば、CPUなどの演算処理装置と、ROMなどの記憶装置などを備えている。
【0040】
タイミング計算部42aは、演算処理装置の機能ブロックとして、転送処理計算部421aと転送合計時間計算部422aを有している。また、タイミング計算部42aは、演算処理装置における算術論理演算器として、タイミング出力部424aを有している。詳述すると、タイミング出力部424aは、減算器である。さらに、タイミング計算部42aは、記憶装置に処理テーブル423aが記憶されている。
【0041】
タイミング計算部42aは、予測周期Tpdに基づいて、使用データの転送を開始する転送タイミングTstを取得する。タイミング計算部42aは、タイミング取得部に相当する。
【0042】
転送処理計算部421aは、RAM3からローカルRAM13に転送する転送処理数Nを算出する。つまり、転送処理計算部421aは、次回の角度割込みで使用データを転送する際に、使用データの転送が必要な処理の数を算出する。使用データの転送が必要な処理の数は、転送処理数Nと称する。転送処理計算部421aは、取得したカウント値PCと、処理テーブル423aを用いて転送処理数Nを算出する。
【0043】
転送合計時間計算部422aは、使用データをRAM3からローカルRAM13に転送するのに要する合計転送時間Ttrを算出する。ここでの使用データは、転送処理計算部421aで転送処理数Nを算出する際に対象とした処理で用いられる使用データである。転送合計時間計算部422aは、予め決められた基本転送時間Tbaと、転送処理数Nとから合計転送時間Ttrを算出する。転送処理数Nは、実行予定の処理の数に相当する。
【0044】
基本転送時間Tbaは、データをRAM3からローカルRAM13に転送するのに要する時間のベースとなる時間である。つまり、基本転送時間Tbaは、予め決められた容量(例えばバイト数)のデータを転送するのに要する時間である。基本転送時間Tbaは、静的に決められた値である。基本転送時間Tbaは、設計値やレイテンシなどから得られる。また、基本転送時間Tbaは、タイミング計算部42aの記憶装置に記憶されている。
【0045】
処理テーブル423aは、静的に決められた処理の番号を示す処理番号と、処理番号の紐づけられた各処理がどの角度での角度割込みに同期して実行されるかを示す処理別実行角度配列を含んでいる。また、処理テーブル423aは、カウント値ごとの転送処理項目ARを含んでいる。そして、転送処理項目ARは、カウント値と紐づけられている。なお、各処理で用いられる使用データは、予め決められている。
【0046】
転送処理項目ARは、角度割込み(カウント値)ごとに設けられている。転送処理項目ARは、使用データの転送が必要な処理を示すものである。また、転送処理項目ARは、どの処理で用いるデータを転送し、どの処理で用いるデータを転送しないかを示す情報ともいえる。よって、処理テーブル423aは、各角度割込みで、使用データの転送が必要となる処理がどの処理であるかを示す転送処理項目ARを含んでいるといえる。なお、処理項目は、処理の項目であり、単に処理と言い換えることもできる。
【0047】
転送処理項目ARは、考え得る処理項目の数が8個の場合、8ビットで表される。この場合、転送処理項目ARは、8個の処理項目で用いられる使用データの転送有無を示す情報が含まれている。
【0048】
図6の例では、転送処理項目ARとして、00101001bなどを採用している。転送処理項目ARは、処理番号に対応するビットが、処理番号が小さい順に左から並んだ構成をなしている。また、転送処理項目ARは、転送を要求することを1で示し、転送を要求しないことを0で示している。よって、この転送処理項目ARは、3番目、5番目、8番目の処理番号の処理を実行することを示している。言い換えると、転送処理項目ARは、3番目、5番目、8番目の処理番号の処理で用いる使用データの転送を要求することを示している。
【0049】
このように、転送処理項目ARは、使用データの転送を要求する処理番号に該当するビットを立てることで形成されている。なお、考え得る処理項目の数が32個の場合、転送処理項目ARは、32ビットで表される。
【0050】
タイミング出力部424aは、予測周期Tpdと合計転送時間Ttrが入力される。タイミング出力部424aは、予測周期Tpdと合計転送時間Ttrから転送タイミングTstを算出する。
【0051】
転送タイミングTstは、使用データの転送を開始するタイミングである。つまり、転送タイミングTstは、RAM3からローカルRAM13への使用データの転送開始を示すタイミングである。また、転送タイミングTstは、次々回の角度割込みで第1コア11が使用データを用いて処理を実行するために、必要な転送タイミングといえる。よって、転送タイミングTstは、転送タイミングや開始タイミングともいえる。
【0052】
図2図4に示すように、第2タイマ43は、転送開始指示部43aを備えている。転送開始指示部43aは、タイミング計算部42aと電気的に接続されている。転送開始指示部43aは、CPUなどの演算処理装置と、カウンタと、レジスタなどの記憶装置などを備えている。
【0053】
転送開始指示部43aは、記憶装置として、転送処理項目レジスタ431aと転送タイミングレジスタ432aとを有している。転送処理項目レジスタ431aは、転送処理計算部421aから取得した転送処理項目ARが一時的に記憶されている。転送処理項目レジスタ431aは、転送処理項目ARが入力されるたびに、記憶している転送処理項目ARが更新される。転送タイミングレジスタ432aは、タイミング出力部424aから取得した転送タイミングTstが一時的に記憶されている。転送タイミングレジスタ432aは、転送タイミングTstが入力されるたびに、記憶している転送タイミングTstが更新される。
【0054】
転送開始指示部43aは、カウンタとして、転送タイミングカウンタ433aを有している。転送タイミングカウンタ433aは、クランク信号とクロックとカウンタ停止信号が入力される。転送タイミングカウンタ433aは、クランク信号のエッジを検出すると、クロックのカウントを開始する。また、転送タイミングカウンタ433aは、カウンタ停止信号が入力されると、クロックのカウントを停止する。
【0055】
転送開始指示部43aは、演算処理装置における算術論理演算器として、タイミング比較部434aとリクエスト出力部435aとを有している。タイミング比較部434aは、転送タイミングカウンタ433aのカウント値と、転送タイミングTstとが入力される。タイミング比較部434aは、転送タイミングカウンタ433aのカウント値が転送タイミングTstと一致すると、転送開始信号とカウンタ停止信号を出力する。
【0056】
リクエスト出力部435aは、転送処理項目ARと転送開始信号とが入力される。リクエスト出力部435aは、転送処理項目ARと転送開始信号とに基づいて、リクエスト信号を出力する。
【0057】
<処理動作>
図5図8を用いて、ECU100の処理動作に関して説明する。
【0058】
まず、図5図6を用いて、タイミング計算部42aの処理動作に関して説明する。タイミング計算部42aは、クランク信号が入力されるたびに図5のフローチャートを開始する。なお、図6では、カウント値が003hの場合を対象として説明する。また、図6では、カウント値が003hの場合に、関連する箇所にハッチングを施している。
【0059】
ステップS10では、カウント値PCを読み込む。転送処理計算部421aは、第1タイマ41でカウントされたカウント値PCを読み込む。
【0060】
ステップS11では、加算カウント値NPCを算出する。転送処理計算部421aは、ステップS10で読み込んだカウント値PCに2インクリメントした加算カウント値NPCを算出する。つまり、加算カウント値NPC=カウント値PC+2である。
【0061】
現在のカウント値PCは、今回の角度割込みに対応している。よって、加算カウント値NPCは、次々回の角度割込みに対応している。つまり、転送処理計算部421aは、次々回の角度割込みで実行される処理を認識するために、加算カウント値NPCを算出する。
【0062】
ステップS12では、処理テーブル423aを読み込む。転送処理計算部421aは、処理テーブル423aを参照する。
【0063】
ステップS13では、処理テーブル423aと加算カウント値NPCをもとに、転送処理項目ARおよび転送処理数Nを取得する。転送処理計算部421aは、処理テーブル423aから加算カウント値NPCに紐づけられた転送処理項目ARを取得する。
【0064】
転送処理計算部421aは、取得した転送処理項目ARから、転送処理数Nを算出する。上記例の転送処理項目ARでは、次回の角度割込みで使用データの転送が必要な処理が三つである。このため、転送処理計算部421aは、転送処理数Nとして3を算出する。転送処理計算部421aは、このように転送処理数Nを算出することで、転送処理数Nを取得する。転送処理計算部421aは、取得した転送処理数Nと転送処理項目ARを出力する。
【0065】
ステップS14では、基本転送時間Tbaを読み込む。転送合計時間計算部422aは、基本転送時間Tbaを読み込む。これは、合計転送時間Ttrを算出するためである。
【0066】
ステップS15では、合計転送時間Ttrを算出する。転送合計時間計算部422aは、ステップS13で算出した転送処理数NとステップS14で読み込んだ基本転送時間Tbaを用いて、合計転送時間Ttrを算出する。転送合計時間計算部422aは、基本転送時間Tbaに転送処理数Nを乗算して合計転送時間Ttrを算出する。合計転送時間Ttr=Tba×Nである。
【0067】
例えば、図6の例では、処理テーブル423aを読み込み、カウント値PC003hにおける転送処理数Nが003hである。基本転送時間Tbaは、010h(=016d)とする。合計転送時間Ttrは、基本転送時間Tba×転送処理数Nで表されるため、030h(=048d)となる。
【0068】
ステップS16では、予測周期Tpdを読み込む。タイミング出力部424aは、周期予測部412で予測された予測周期Tpdを読み込む。
【0069】
ステップS17では、転送タイミングTstを算出する。タイミング出力部424aは、予測周期Tpdから合計転送時間Ttrを減算することで、転送タイミングTstを算出する。転送タイミングTst=Tpd-Ttrである。タイミング出力部424aは、算出した転送タイミングTstを出力する。図6の例では、転送タイミングTstは、予測周期Tpd0105h(=261d)から合計転送時間Ttr030h(=048d)を引いた0D5h(=213d=00111101b)として出力される。
【0070】
なお、転送処理項目ARの値など具体的な数値で示している箇所は、全て一例である。本開示は、これに限定されない。
【0071】
次に、図7図8を用いて、転送開始指示部43aの処理動作に関して説明する。転送開始指示部43aは、クランク信号が入力されるたびに図7のフローチャートを開始する。なお、図8では、本実施形態で対象としている箇所にハッチングを施している。
【0072】
ステップS20では、クランク信号の立上りを読み込む。転送開始指示部43aは、入力されたクランク信号の立上りエッジを読み込む。言い換えると、転送開始指示部43aは、入力されたクランク信号の立上りエッジを検出する。なお、転送開始指示部43aは、クランク信号の立下りエッジを読み込むものであってもよい。
【0073】
ステップS21では、転送タイミングを読み込み、転送タイミングレジスタを更新する。転送開始指示部43aは、転送タイミングレジスタ432aに格納されている転送タイミングTstを、今回入力された転送タイミングTstに更新する。図8の例では、転送タイミングレジスタ432aには、00111101bが格納される。なお、転送処理項目レジスタ431aには、00101001bが格納される。
【0074】
ステップS22では、転送タイミングカウンタを0に初期化してカウントを開始する。転送タイミングカウンタ433aは、自身のカウント値を0に初期化する。そして、転送タイミングカウンタ433aは、クロックのカウントを開始する。これは、転送タイミングカウンタ433aのカウント値と転送タイミングTstとを比較して、転送タイミングTstになったか否かを判断するためである。
【0075】
ステップS23では、タイミングカウント値とレジスタ値が一致するか否かを判定する。タイミング比較部434aは、転送タイミングカウンタ433aのカウント値と、転送タイミングレジスタ432aのレジスタ値が一致するか否かを判定する。レジスタ値とは、ステップS21で転送タイミングレジスタ432aに格納された転送タイミングTstである。
【0076】
タイミング比較部434aは、カウント値とレジスタ値とが一致すると判定した場合、ステップS24へ進む。また、タイミング比較部434aは、カウント値とレジスタ値とが一致すると判定しなかった場合、ステップS23へ戻る。
【0077】
ステップS24では、リクエスト信号を送信する。図8に示すように、タイミング比較部434aは、カウント値とレジスタ値とが一致すると判定した場合、転送開始信号を出力する。転送開始信号は、カウンタの値とレジスタ値が一致し、転送タイミングTstに達したことを示す信号である。
【0078】
また、リクエスト出力部435aは、転送開始信号が入力されると、DMAC5に対してリクエスト信号を送信する。リクエスト出力部435aは、リクエスト信号を送信することで、DMAC5に対して使用データの転送を要求する。リクエスト出力部435aは、転送処理項目ARに対応する使用データの転送を、DMAC5へ要求するといえる。つまり、リクエスト出力部435aは、転送処理項目ARでビットが立っている処理番号の処理に用いられるデータを使用データとして転送することを要求する。この場合、リクエスト出力部435aは、転送処理項目ARを含むリクエスト信号を送信してもよい。このように、リクエスト出力部435aは、リクエスト信号を出すか出さないかを選択するセレクターともいえる。
【0079】
なお、タイミング比較部434aは、リクエスト信号とともにカウンタ停止信号を出力する。これは、転送タイミングカウンタ433aによるカウントを停止するためである。カウンタ停止信号は、転送開始信号をリネーミングした信号などを採用できる。
【0080】
図8の例では、転送タイミングレジスタ432aには、レジスタ値として00111101bが格納されている。一方、転送処理項目レジスタ431aには、転送処理項目ARとして00101001bが格納されている。このため、タイミング比較部434aは、転送タイミングカウンタ433aのカウント値が00111101bになると、転送開始信号を出力する。そして、リクエスト出力部435aは、転送処理項目ARの00101001bに基づいて、3番目、5番目、8番目のデータの転送を要求する。
【0081】
<効果>
上記のように、タイマモジュール4とDMAC5は、コア11,12が実行予定の処理に用いる使用データを、処理で必要となるタイミングよりも前に、予めRAM3からローカルRAM13に転送する。コア11,12は、クランク信号に同期して処理を実行する際に、ローカルRAM13に記憶されているデータを読み込む。このローカルRAM13は、コア11,12がRAM3にアクセスする場合よりも短時間でアクセス可能に構成されている。
【0082】
このため、コア11,12は、RAM3から使用データを読み込む場合よりも、短時間で使用データを読み込むことができる。よって、ECU100は、コア11,12が角度に同期した次の処理タイミングまでに処理を終了しやすくできる。
【0083】
さらに、コア11,12は、使用データの読み込みに要する時間を低減できる。このため、コア11,12は、その分処理を行う時間に割くことができる。よって、コア11,12は、複雑な演算を伴う処理や、多くの使用データを用いる処理を実行できる。
【0084】
ECU100は、予測周期Tpdを用いて転送タイミングTstを取得する。このため、ECU100は、予測周期Tpdを用いることなく転送タイミングTstを取得する構成よりも、転送タイミングTstを精度よく取得できる。
【0085】
ECU100は、転送処理数Nを用いて合計転送時間Ttrを算出して、転送タイミングTstを取得する。このため、ECU100は、転送処理数Nを用いることなく転送タイミングTstを取得する構成よりも、転送タイミングTstを精度よく取得できる。
【0086】
(変形例)
タイミング計算部42aは、転送処理数Nを用いることなく転送タイミングを取得してもよい。タイミング計算部42aは、例えば、転送規定時間を、予測周期Tpdから減算することで転送タイミングを取得する。転送規定時間は、RAM3からローカルRAM13への使用データの転送時間に相当する予め決められた時間である。転送規定時間は、例えば、タイミング計算部42aの記憶部に予め記憶させておく。
【0087】
これによって、タイミング計算部42aは、合計転送時間を算出する必要がない。よって、変形例では、タイミング計算部42aの処理負荷を軽減できる。
【0088】
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本開示のその他の形態として、第2~第6実施形態に関して説明する。上記実施形態および第2~第6実施形態は、それぞれ単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本開示は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
【0089】
(第2実施形態)
図9図10図11を用いて第2実施形態のECUに関して説明する。本実施形態では、上記実施形態と異なる点に関して説明する。第2実施形態のECUは、タイミング計算部42bの構成および処理動作が上記実施形態と異なる。
【0090】
<構成>
図9に示すように、タイマモジュール4は、タイミング計算部42aのかわりに、タイミング計算部42bを備えている。タイミング計算部42bは、転送処理計算部421b、転送合計時間計算部422b、処理テーブル423b、タイミング出力部424bを備えている。タイミング計算部42bは、タイミング取得部に相当する。
【0091】
タイミング計算部42bは、基本転送時間Tbaと、各処理で用いる使用データに固有の転送時間係数α[x]との乗算を行いRAM3からローカルRAM13への使用データの合計転送時間Ttrを算出する。タイミング計算部42bは、この合計転送時間Ttrを予測周期Tpdから減算することで、転送タイミングTstを取得する。
【0092】
コア11,12は、処理ごとに使用データの数が異なる。また、各使用データは、データ容量が異なる。このため、使用データの転送に要する時間は、各処理によって異なる。転送時間係数αは、各処理に用いられる使用データの転送に要する時間に相関する係数である。転送時間係数αは、処理番号ごとに紐づけられている。
【0093】
例えば、基本転送時間Tbaを規定するためのデータ容量を10、基本転送時間Tbaを10とした場合を一例に説明する。処理Aでは、データ容量が20の使用データを用いるとする。この場合、処理Aに紐づけられた転送時間係数αは2となる。同様に、処理Bでは、データ容量が5の使用データを用いるとする。この場合、処理Bに紐づけられた転送時間係数αは0.5となる。
【0094】
転送処理計算部421bは、転送処理計算部421aと同様、処理テーブル423bから転送処理項目ARを取得する。そして、転送処理計算部421bは、取得した転送処理項目ARを転送合計時間計算部422bに出力する。
【0095】
転送合計時間計算部422bは、転送合計時間計算部422aと同様、合計転送時間Ttrを算出する。しかしながら、転送合計時間計算部422bは、合計転送時間Ttrの算出方法が転送合計時間計算部422aと異なる。
【0096】
転送合計時間計算部422bは、基本転送時間Tbaと転送時間係数αとを用いて合計転送時間Ttrを算出する。転送合計時間計算部422bは、入力された転送処理項目ARと処理テーブル423bから転送時間係数αを取得する。つまり、転送合計時間計算部422bは、転送処理項目ARから次回の角度割込みで使用データの転送が必要な処理の処理番号を取得する。そして、転送合計時間計算部422bは、処理テーブル423bから、取得した処理番号に紐づけられた転送時間係数αを取得する。
【0097】
転送合計時間計算部422bは、基本転送時間Tbaに、転送時間係数αの総和をかけることで合計転送時間Ttrを算出する。合計転送時間Ttrは、転送処理数Nが同じであっても、転送時間係数αの値によって異なることがある。転送時間係数αの総和は、合計転送時間係数Σαと称する。
【0098】
なお、転送処理計算部421bは、転送処理項目ARとともに、次回の角度割込みで使用データの転送が必要な処理の処理番号を処理テーブル423bから取得してもよい。この場合、転送処理計算部421bは、取得した処理番号を転送合計時間計算部422bに出力してもよい。
【0099】
処理テーブル423bは、処理番号と処理別実行角度配列に加えて、各処理番号に紐づけられた転送時間係数α含んでいる。転送時間係数αは、転送時間情報に相当する。なお、処理テーブル423bは、処理テーブル423aと同様、転送処理項目ARを含んでいる。タイミング出力部424bは、タイミング出力部424aと同様である。
【0100】
<処理動作>
図10図11を用いて、タイミング計算部42bの処理動作に関して説明する。タイミング計算部42bは、クランク信号が入力されるたびに図10のフローチャートを開始する。図10では、図5と同じ処理に同じステップ番号を付与している。なお、図11では、カウント値が003hの場合を対象として説明する。また、図11では、カウント値が003hの場合に、関連する箇所にハッチングを施している。
【0101】
ステップS13aでは、転送処理項目ARを取得する。転送処理計算部421bは、転送処理計算部421aと同様、処理テーブル423bから転送処理項目ARを取得する。そして、転送処理計算部421bは、取得した転送処理項目ARを転送合計時間計算部422bに出力する。
【0102】
ステップS13bでは、転送時間係数αの合計転送時間係数Σαを計算する。転送合計時間計算部422bは、ステップS13aで取得した転送処理項目ARから使用データの転送が必要な処理の処理番号を取得する。また、転送合計時間計算部422bは、取得した処理番号に紐づけられた転送時間係数αを処理テーブル423bから取得する。そして、転送合計時間計算部422bは、取得した全転送時間係数αを合計して、転送時間係数αの総和である合計転送時間係数Σαを計算する。
【0103】
ステップS15aでは、合計転送時間Ttrを算出する。転送合計時間計算部422bは、ステップS13で算出した合計転送時間係数ΣαとステップS14で読み込んだ基本転送時間Tbaを用いて、合計転送時間Ttrを算出する。転送合計時間計算部422bは、基本転送時間Tbaに合計転送時間係数Σαを乗算して合計転送時間Ttrを算出する。合計転送時間Ttr=Tba×Σα(x)である。
【0104】
図11の例の場合、カウント値003hにおける最終的な合計転送時間係数Σαが11b(=03d)である。また、基本転送時間を010h=(016h)とする。この場合、合計転送時間Ttrは、010h(16d)×11b(=03d)=030h(=048d)と計算される。
【0105】
転送タイミングTstは、予測周期Tpdから合計転送時間Ttrを引いた値である。このため、予測周期Tpd0105h(=261d)から合計転送時間Ttr030h(=048d)を引いた0D5h(=213d)が転送タイミングTstとして出力される。また、転送処理項目ARは、処理テーブル423bのカウント値003hにおける転送処理項目ARが読み込まれ、01010001bが出力される。
【0106】
<効果>
第2実施形態のECUは、ECU100と同様の効果を奏することができる。さらに、第2実施形態のECUは、上記構成とすることで、各使用データの転送にかかる時間を一律ではなくそれぞれ個別に求めることができる。このため、第2実施形態のECUは、転送にかかる時間をECU100よりも高精度の算出できる。
【0107】
(第3実施形態)
図12図13図14を用いて第3実施形態のECUに関して説明する。本実施形態では、第2実施形態と異なる点に関して説明する。第3実施形態のECUは、タイミング計算部42cの構成および処理動作が第2実施形態と異なる。
【0108】
<構成>
図12に示すように、タイマモジュール4は、タイミング計算部42bのかわりに、タイミング計算部42cを備えている。タイミング計算部42cは、転送合計時間計算部422c、処理テーブル423c、タイミング出力部424cを備えている。
【0109】
転送合計時間計算部422cは、カウント値PCと処理番号が入力される。ここでの処理番号は、次回の角度割込みで転送が必要となる処理を示すものである。このため、転送合計時間計算部422cは、一つの処理番号または複数の処理番号が入力される。本実施形態では、一例として、処理番号03、04の二つの処理番号が入力される例を採用する。
【0110】
転送合計時間計算部422cは、処理テーブル423cから、入力された処理番号に紐づけられた転送時間係数αを取得する。そして、転送合計時間計算部422cは、転送合計時間計算部422bと同様に、合計転送時間係数Σαを計算する。転送合計時間計算部422cは、基本転送時間Tbaに、合計転送時間係数Σαをかけることで合計転送時間Ttrを算出する。
【0111】
処理テーブル423cは、処理テーブル423bと異なり、処理別実行角度配列を有していない。また、処理テーブル423cは、次回の角度割込みで転送を要求する処理番号が入力される。タイミング出力部424cは、タイミング出力部424bと同様である。
【0112】
<処理動作>
図13図14を用いて、タイミング計算部42cの処理動作に関して説明する。タイミング計算部42cは、クランク信号が入力されるたびに図13のフローチャートを開始する。図13では、図10と同じ処理に同じステップ番号を付与している。なお、図14では、カウント値が003hの場合を対象として説明する。また、図11では、カウント値が003hの場合に、関連する箇所にハッチングを施している。
【0113】
ステップS11aでは、予測周期Tpdを読み込む。転送合計時間計算部422cは、周期予測部412で予測された予測周期Tpdを読み込む。ステップS12aでは、転送タイミングTst=Tpdとする。転送合計時間計算部422cは、転送タイミングTstをステップS11aで読み込んだ予測周期Tpdとする。
【0114】
転送合計時間計算部422cは、全ての処理番号の読み込みが終了するまで、ステップS13c~ステップS18を繰り返し実行する。つまり、転送合計時間計算部422cは、処理番号の入力が停止するまで、ステップS13c~ステップS18を繰り返し実行する。
【0115】
ステップS13cでは、処理番号を読み込む。転送合計時間計算部422cは、入力された処理番号を読み込む。
【0116】
ステップS13dでは、処理テーブルにおける処理番号の転送時間係数αを読み込む。転送合計時間計算部422cは、処理テーブル423cから、ステップS13cで読み込んだ処理番号に紐づけられた転送時間係数αを読み込む。
【0117】
ステップS13eでは、合計転送時間係数Σαを計算する。転送合計時間計算部422cは、ステップS13dで読み込んだ転送時間係数αの総和を計算する。つまり、転送合計時間計算部422cは、転送時間係数αを読み込むたびに、転送時間係数αどうしを加算する。このため、タイミング計算部42cは、処理番号が入力されるたびに、ステップS17で転送タイミングTstを更新することになる。
【0118】
ステップS18では、全処理番号の読み込みが終了したか否かを判定する。転送合計時間計算部422cは、全ての処理番号の読み込みが終了したと判定した場合は図13のフローチャートを終了する。また、転送合計時間計算部422cは、全ての処理番号の読み込みが終了したと判定しなかった場合はステップS13cに戻る。
【0119】
図14の例では、タイミング計算部42cは、カウント値が003hに更新された場合に上記処理動作を行う。タイミング計算部42cは、カウント値003hで処理番号03、04が入力される。そして、基本転送時間Tbaを010h(=16d)、処理番号03の転送時間係数を011b(=03d)、処理番号04の転送時間係数を10b(=02d)とする。また、予測周期は、0105h(=261d)とする。
【0120】
転送合計時間計算部422cは、処理番号が入ってくる毎にその処理番号に紐づいた転送時間係数αを処理テーブル423cから取得する。そして、転送合計時間計算部422cは、その転送時間係数を合計転送時間Ttrに加算していく。合計転送時間Ttrは、処理番号03の処理が入ってきた段階では030h(=048d)、処理番号04の処理が入ってきた段階で050h(=080d)と計算される。
【0121】
また、転送タイミングTstは、予測周期Tpdから合計転送時間Ttrを引いた値である。このため、最終的な転送タイミングTstは、0105h(=261d)から合計転送時間Ttr050h(=080d)を引いた0B5h(=181d)として出力される。さらに、転送処理項目ARは、処理テーブルが読み込まれ、01010000hが出力される。
【0122】
<効果>
第3実施形態のECUは、第2実施形態と同様の効果を奏することができる。さらに、第3実施形態のECUは、各処理がどの角度割込みに同期して実施されるか決まっていなくても、所定の角度での角度割込みタイミングの前に処理番号を入力することで、動的に使用データの事前転送をするかしないかを決定できる。よって、第3実施形態のECUは、設計の自由度が向上するほか、処理テーブルを読み込む処理を軽減することができる。
【0123】
(第4実施形態)
図15図16図17図1を用いて第4実施形態のECUに関して説明する。本実施形態では、第1実施形態と異なる点に関して説明する。第4実施形態のECUは、タイミング計算部42dと転送開始指示部43dの構成および処理動作が第1実施形態と異なる。また、第4実施形態のECUは、第1実施形態と異なり、転送タイミングTstを計算しない。つまり、第4実施形態のECUは、タイミング計算部42dが転送タイミングTstを算出することなく、処理で必要となるタイミングよりも前に使用データを転送する。
【0124】
<構成>
図15図16に示すように、タイマモジュール4は、タイミング計算部42aのかわりに、タイミング計算部42dを備えている。また、タイマモジュール4は、転送開始指示部43aのかわりに、転送開始指示部43dを備えている。
【0125】
図15に示すように、タイミング計算部42dは、転送処理計算部421dと処理テーブル423dとを備えている。転送処理計算部421dは、カウント値PCが入力される。転送処理計算部421dは、処理テーブル423dから、カウント値PCに紐づけられた転送処理項目ARを取得する。そして、転送処理計算部421dは、取得した転送処理項目ARを出力する。処理テーブル423dは、カウント値ごとの転送処理項目ARを含んでいる。そして、転送処理項目ARは、カウント値と紐づけられている。
【0126】
このように、転送処理計算部421dは、転送タイミングTstを算出することなく、カウント値に対応した転送処理項目ARを出力する。
【0127】
図16に示すように、転送開始指示部43dは、転送処理項目レジスタ431dとリクエスト出力部435dとを備えている。転送処理項目レジスタ431dは、転送処理項目レジスタ431aと同様である。転送開始指示部43dは、終了信号が入力される。終了信号は、リクエスト出力部435dに入力される。また、リクエスト出力部435dは、転送開始信号のかわりに、終了信号が入力されるともいえる。
【0128】
終了信号は、角度割込みの発生に伴ってコア11,12が実行した処理が終了したことを示す信号である。CPU1は、上記のように、角度割込みの発生に伴って、第1コア11が処理を実行する。そして、CPU1は、コア11、12による処理の実行が終了すると、終了信号を出力(送信)する。
【0129】
<処理動作>
図17を用いて、タイミング計算部42dの処理動作に関して説明する。タイミング計算部42dは、クランク信号が入力されるたびに図17のフローチャートを開始する。
【0130】
ステップS30は、ステップS10と同様である。ステップS31は、ステップS11と同様である。ステップS32は、ステップS12と同様である。
【0131】
ステップS33では、転送処理項目ARを取得する。転送処理計算部421dは、処理テーブル423dから、加算カウント値NPCに紐づけられた転送処理項目ARを取得する。
【0132】
なお、転送処理計算部421dは、転送処理項目ARを作成してもよい。この場合、処理テーブル423dは、カウント値PCと、カウント値の角度割込みで実行する処理とが紐づけられている。そして、転送処理計算部421dは、処理テーブル423dから、加算カウント値NPCとなるタイミングで実行される処理を取得する。転送処理計算部421dは、取得した処理に対応するビットを立てて、転送処理項目ARを作成する。
【0133】
図18を用いて、転送開始指示部43dの処理動作に関して説明する。転送開始指示部43dは、クランク信号が入力されるたびに図18のフローチャートを開始する。ステップS40は、ステップS20と同様である。ステップS44は、ステップS24と同様である。
【0134】
ステップS41では、転送処理項目を読み込む。転送開始指示部43dは、転送処理項目レジスタ431dから転送処理項目ARを読み込む。
【0135】
ステップS42では、終了信号を読み込む。転送開始指示部43dは、CPU1から出力された終了信号を読み込む。
【0136】
ステップS43では、出力完了か否かを判定する。転送開始指示部43dは、CPU1による終了信号の出力が完了したか否かを判定する。転送開始指示部43dは、CPU1による終了信号の出力信が完了したと判定した場合はステップS44へ進み、完了したと判定しない場合はステップS42に戻る。そして、ステップS44では、ステップS24と同様にリクエスト信号を送信する。
【0137】
つまり、リクエスト出力部435dは、転送処理項目ARと終了信号が入力されると、リクエスト信号を送信する。このとき、リクエスト出力部435dは、転送処理項目ARが入力され、かつ、例えば終了信号の立上りを検出するとリクエスト信号を送信する。
【0138】
このように、タイマモジュール4は、終了信号が出力されると、次の角度信号に同期して実行される処理に用いる使用データをRAM3からローカルRAM13に転送する。これによって、タイマモジュール4は、次の角度信号に同期して実行される処理で必要となるタイミングよりも前に使用データを転送する。
【0139】
<効果>
第4実施形態のECUは、ECU100と同様の効果を奏することができる。さらに、第4実施形態のECUは、転送タイミングTstを計算しないため、転送タイミングTstを計算する構成よりも、タイマモジュール4の処理負荷を軽減できる。
【0140】
(第5実施形態)
図19図20図21を用いて第5実施形態のECUに関して説明する。本実施形態では、第1実施形態と異なる点に関して説明する。第5実施形態のECUは、転送開始指示部43eの構成および処理動作が第1実施形態と異なる。つまり、転送開始指示部43eは、一つ一つのデータ転送に対応したリクエスト信号をDMAC5に送信する点が転送開始指示部43aと異なる。
【0141】
<構成>
図19に示すように、転送開始指示部43eは、転送開始指示部43aに加えて、リクエスト更新部436eを備えている。また、転送開始指示部43eは、リクエスト出力部435aのかわりにリクエスト出力部435eを備えている。なお、転送処理項目レジスタ431eは、転送処理項目レジスタ431aと同様である。転送タイミングレジスタ432eは、転送タイミングレジスタ432aと同様である。転送タイミングカウンタ433eは、転送タイミングカウンタ433aと同様である。タイミング比較部434eは、タイミング比較部434aと同様である。
【0142】
リクエスト出力部435eは、処理番号とチャネル番号とが入力される。リクエスト出力部435eは、リクエスト信号を送信する複数のチャネルch1~chnを備えている。リクエスト出力部435eは、入力されたチャネル番号に基づき、リクエスト信号を送信するのに使用するチャネルをチャネルch1~chnから選択する。リクエスト出力部435eは、選択したチャネルから、処理番号に対応するリクエスト信号を送信する。
【0143】
つまり、リクエスト出力部435eは、入力された処理番号が示す処理で用いるデータのリクエスト信号を対応するチャネルch1~chから送信する。なお、リクエスト出力部435eは、例えば、リクエスト信号として、処理番号を送信する。しかしながら、本開示は、これに限定されない。
【0144】
リクエスト更新部436eは、リクエスト信号を送信するチャネルを更新する部位である。リクエスト更新部436eは、次処理番号レジスタ4361eと、処理チャネルテーブル4362eとを備えている。リクエスト更新部436eは、転送開始指示が入力される。リクエスト更新部436eは、処理番号と、リクエスト信号の送信に使用するチャネルを示すチャネル番号とを出力する。また、リクエスト更新部436eは、転送処理項目レジスタ431eに格納されている転送処理項目ARを参照可能に構成されている。
【0145】
次処理番号レジスタ4361eは、次に転送する処理番号が格納されている。処理チャネルテーブル4362eは、静的に決められた複数の処理番号と、複数のチャネル番号とが個別に紐づけられている。チャネル番号は、複数のチャネルch1~chnのうちどのチャネルを用いてリクエスト信号を送信するかを示すものである。
【0146】
例えば、処理番号01は、チャネルch1を示すチャネル番号1hが紐づけられている。この場合、リクエスト出力部435eは、処理番号01の処理で用いる使用データのリクエスト信号をチャネルch1から送信する。
【0147】
次処理番号レジスタ4361eは、クランク信号の立上りに同期して、転送処理項目ARに基づいて、次に転送する処理番号が格納される。そして、次処理番号レジスタ4361eは、現在格納されている処理番号に対応したチャネル番号が出力され、リクエスト信号が送信されるたびに、次に転送する処理番号が更新される。
【0148】
リクエスト更新部436eは、リクエスト信号を送信すると、転送処理項目レジスタ431eを参照して、転送処理項目ARの各ビットを順番に確認する。リクエスト更新部436eは、リクエスト信号が未送信である処理番号を次処理番号レジスタ4361eに格納することで、次に転送する処理番号を更新する。このようにすることで、リクエスト更新部436eは、転送処理項目ARにおける使用データの転送が必要となっている処理番号ごとに、リクエスト信号を送信する。なお、次処理番号レジスタ4361eは、現在格納されている処理番号に対応したチャネル番号が出力されるたびに、次に転送する処理番号が更新されてもよい。
【0149】
リクエスト更新部436eは、転送開始信号が入力されると、処理チャネルテーブル4362eから、次処理番号レジスタ4361eに格納されている処理番号に対応したチャネル番号を取得する。そして、リクエスト更新部436eは、この処理番号とチャネル番号とをリクエスト出力部435eに送信する。
【0150】
<処理動作>
図20を用いて、転送開始指示部43eの処理動作に関して説明する。転送開始指示部43eは、クランク信号が入力されるたびに図20のフローチャートを開始する。なお、ステップS50は、ステップS20と同様である。ステップS52は、ステップS21と同様である。ステップS53は、ステップS22と同様である。ステップS54は、ステップS23と同様である。ステップS58は、ステップS24と同様である。よって、タイミング比較部434eは、タイミング比較部434aと同様、カウント値とレジスタ値とが一致すると判定した場合、転送開始信号を出力する。
【0151】
ステップS51では、転送処理項目ARを読み込み、次処理番号レジスタを更新する。リクエスト更新部436eは、クランク信号の立上りに同期して、転送処理項目レジスタ431eを参照して、転送処理項目ARを読み込む。リクエスト更新部436eは、転送処理項目ARから、次に転送する処理番号を次処理番号レジスタ4361eに格納する。
【0152】
リクエスト更新部436eは、転送開始指示が入力されると、ステップS55を実行する。ステップS55では、次処理番号レジスタを読み込む。リクエスト更新部436eは、次処理番号レジスタ4361eを読み込み、次処理番号レジスタ4361eに格納されている処理番号を取得する。
【0153】
ステップS56では、処理チャネルテーブルを読み込む。リクエスト更新部436eは、処理チャネルテーブル4362eを読み込み、ステップS55で取得した処理番号に対応するチャネル番号を取得する。ステップS55、S56は、今回、リクエスト信号を送信するチャネルを選択するためである。
【0154】
ステップS57では、処理番号とチャネル番号を出力する。リクエスト更新部436eは、ステップS55で取得した処理番号と、ステップS56で取得したチャネル番号とを出力する。
【0155】
ステップS58では、リクエスト信号を送信する。リクエスト出力部435eは、入力されたチャネル番号に基づいて選択したチャネルから、処理番号に対応するリクエスト信号を送信する。
【0156】
ステップS59では、全リクエスト信号の送信が完了したか否かを判定する。リクエスト更新部436eは、リクエスト信号の送信がすべて完了したか否かを判定する。つまり、すべてのリクエスト信号とは、今回の角度割込みで転送することになっている全使用データ(処理番号)のそれぞれに対応するリクエスト信号である。リクエスト更新部436eは、転送処理項目ARと、送信したリクエスト信号に対応した処理番号とから、全リクエスト信号の送信が完了したか否かを判定することができる。
【0157】
そして、リクエスト更新部436eは、全リクエスト信号の送信が完了したと判定した場合、図20のフローチャートを終了する。また、リクエスト更新部436eは、全リクエスト信号の送信が完了したと判定しなかった場合、ステップS60へ進む。
【0158】
ステップS60は、次処理番号レジスタを更新する。リクエスト更新部436eは、リクエスト信号を送信すると、次処理番号レジスタを更新する。リクエスト更新部436eは、転送処理項目レジスタ431eを参照して、次処理番号レジスタ4361eにおける次に転送する処理番号を更新する。
【0159】
図21の例では、タイミング計算部42aから出力された転送タイミングTstの値を00111101(=61d)とする。転送タイミングレジスタ432eには、クランク信号の立ち上がりに同期して、00111101(=61d)が格納される。また、転送タイミングカウンタ433eは、クランク信号の立ち上がりに同期して、カウントを開始する。
【0160】
また、リクエスト更新部436eは、タイミング計算部42aから出力された転送処理項目ARに基づき、次処理番号レジスタ4361eを更新する。この時、転送処理項目ARが8ビットで01010101bとすると、先頭から見て2ビット目の処理で使用する使用データの転送を実施することになっている。よって、次処理番号レジスタ4361eには、2が格納される。
【0161】
また、処理チャネルテーブル4362eでは、処理番号02とチャネルch2を示すチャネル番号2hとが紐づけられており、処理番号04とチャネルch4を示すチャネル番号4hとが紐づけられているとする。よって、リクエスト更新部436eは、次処理番号レジスタ4361eに2が格納されている場合、チャネル番号2hを取得する。
【0162】
そして、リクエスト更新部436eは、上記のように、転送開始指示が入力されて、ステップS54~S58を実行する。このため、リクエスト出力部435eは、処理番号02に対応する第1リクエスト信号を、チャネルch2から送信する。
【0163】
その後、リクエスト更新部436eは、ステップS59を実行する。リクエスト更新部436eは、次処理番号レジスタ4361eの値を4に更新する。また、リクエスト更新部436eは、次処理番号レジスタ4361eに4が格納されている場合、チャネル番号4hを取得する。そして、リクエスト出力部435eは、処理番号04に対応する第2リクエスト信号を、チャネルch4から送信する。
【0164】
リクエスト更新部436eは、全リクエスト信号の送信が完了するまで、次処理番号レジスタ4361eの更新、チャネル番号の取得、処理番号とチャネル番号の出力、リクエスト信号の送信を繰り返し行う。リクエスト更新部436eは、全リクエスト信号の送信が完了すると、転送タイミングカウンタ433eによるカウント、次処理番号レジスタ4361eの更新を停止する。
【0165】
<効果>
第5実施形態のECUは、ECU100と同様の効果を奏することができる。さらに、第5実施形態のECUは、複数の送信元から複数の送信先にデータの転送を実施したい場合であっても、データ転送を実施することができる。
【0166】
(第6実施形態)
図22を用いて第6実施形態のECU110に関して説明する。本実施形態では、第1実施形態と異なる点に関して説明する。ECU110は、主にCPU1の構成がECU100と異なる。
【0167】
CPU1は、二つのコア11,12と、二つのローカルRAM13a,13bを備えている。また、CPU1は、アクセスに要する時間が最短となるコアとローカルRAMとの対を有している。
【0168】
第1コア11は、二つのローカルRAM13a,13bのうち、第1ローカルRAM13aへのアクセスに要する時間が最短となっている。第2コア12は、二つのローカルRAM13a,13bのうち、第2ローカルRAM13bへのアクセスに要する時間が最短となっている。よって、第1コア11は、第1ローカルRAM13aと対をなしているといえる。また、第2コア12は、第2ローカルRAM13bと対をなしているといえる。
【0169】
なお、CPU1は、三つ以上のコアを備えていてもよい。また、CPU1は、三つ以上のローカルRAMを備えていてもよい。
【0170】
タイマモジュール4とDMAC5は、使用データを用いるコアと対をなすローカルRAMに、使用データを転送する。つまり、タイマモジュール4とDMAC5は、第1コア11が処理に用いる使用データを、第1ローカルRAM13aに転送する。また、タイマモジュール4とDMAC5は、第2コア12が処理に用いる使用データを、第2ローカルRAM13bに転送する。
【0171】
第6実施形態のECUは、ECU100と同様の効果を奏することができる。第6実施形態のECUは、対をなしていないローカルRAMに転送する場合より、各コア11,12が使用データの読み込みに要する時間を低減できる。このため、コア11,12は、第1実施形態と同様、複雑な演算を伴う処理や、多くの使用データを用いる処理を実行できる。
【0172】
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態が本開示に示されているが、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。
【符号の説明】
【0173】
10…マイコン、1…CPU、11…第1コア、12…第2コア、13…ローカルRAM、2…ROM、3…RAM、4…タイマモジュール、41…第1タイマ、411…周期計測部、412…周期予測、42a…タイミング計算部、43…第2タイマ、43a…転送開始指示部、5…DMAC、6…ADC、7…I/O、20…電源回路、31…入力回路、32…出力回路、100,110…ECU、200…バッテリ、210…イグナイタ、220…インジェクタ、230…カムセンサ、231…カムシャフト、232…カムロータ、240…クランクセンサ、241…クランクシャフト、242…クランクロータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22