(57)【特許請求の範囲】
【請求項１】
演算処理を行う演算部（１０，５０）と、
前記演算部の前記演算処理によって得られたデータを記憶するＲＡＭ（３０，４０，６０，７０）と、を有し、
前記演算部は、前記演算処理によって前記ＲＡＭに記憶される前記データが更新されると、前記データの更新値の変化量、および、前記データの更新時刻の変化量の少なくとも一方に基づいて、前記演算処理における前記データの算出の実行と不実行とを切り替え、
前記演算部は、前記更新時刻の変化量が記憶している所定時間未満の場合に前記演算処理における前記データの算出を実行し、前記更新時刻の変化量が前記所定時間以上の場合に前記演算処理における前記データの算出を不実行とする電子制御装置。
【請求項２】
演算処理を行う演算部（１０，５０）と、
前記演算部の前記演算処理によって得られたデータを記憶するＲＡＭ（３０，４０，６０，７０）と、を有し、
前記演算部は、前記演算処理によって前記ＲＡＭに記憶される前記データが更新されると、前記データの更新値の変化量、および、前記データの更新時刻の変化量の少なくとも一方に基づいて、前記演算処理における前記データの算出の実行と不実行とを切り替え、
前記演算部は、前記更新値の変化量に基づいて前記更新値の変化率を算出し、前記更新時刻の変化量が記憶している所定時間未満、および、前記更新値の変化率が記憶している所定値以上の少なくとも一方が成立する場合に前記演算処理における前記データの算出を実行し、前記更新時刻の変化量が前記所定時間以上であり前記更新値の変化率が前記所定値未満の場合に前記演算処理における前記データの算出を不実行とする電子制御装置。
【請求項３】
前記演算処理として周期的に処理する周期処理が複数あり、
複数の前記周期処理それぞれは、前記データを算出する算出処理と、前記データを前記ＲＡＭ（３０）に記憶して前記データを更新する更新処理と、を有し、
前記ＲＡＭは、前記演算部（１０）が複数の前記周期処理によって得られた前記データそれぞれを記憶するための複数のアドレス領域（３１，３２）を、複数の前記周期処理それぞれに対応して有しており、
前記演算部は、複数の前記アドレス領域それぞれに記憶される前記データが更新された際の前記データの前記更新値の変化量、および、前記データの前記更新時刻の変化量の少なくとも一方に基づいて、複数の前記周期処理それぞれの前記算出処理の実行と不実行とを切り替える請求項１または請求項２に記載の電子制御装置。
【請求項４】
前記演算部は、
複数の前記周期処理を所定周期の間で行っており、
前記所定周期の間における前記周期処理を行わない空き時間において、前記更新値の変化量および前記更新時刻の変化量の少なくとも一方に基づいて、前記算出処理の実行と不実行とを切り替える請求項３に記載の電子制御装置。
【請求項５】
前記演算部は、複数の前記周期処理のうち、処理負荷が閾値よりも高い前記周期処理を選択し、選択した前記周期処理の前記算出処理の実行と不実行とを、前記更新値の変化量および前記更新時刻の変化量の少なくとも一方に基づいて切り替える請求項３または請求項４に記載の電子制御装置。
【請求項６】
前記演算部（１０，５０）を複数有し、
前記ＲＡＭとして、複数の前記演算部それぞれに対応する複数のローカルＲＡＭ（４０，６０）と、複数の前記演算部それぞれに共通するグローバルＲＡＭ（７０）と、を有し、
複数の前記演算部それぞれは、自身に対応する前記ローカルＲＡＭに記憶される前記データが更新された際の前記データの前記更新値の変化量、および、前記データの前記更新時刻の変化量の少なくとも一方に基づいて、前記演算処理における前記ローカルＲＡＭの前記データの算出の実行と不実行とを切り替える請求項１または請求項２に記載の電子制御装置。
【請求項７】
複数の前記演算部それぞれは、前記グローバルＲＡＭに記憶される前記データが更新された際の前記データの前記更新値の変化量、および、前記データの前記更新時刻の変化量の少なくとも一方に基づいて、前記演算処理における前記グローバルＲＡＭの前記データの算出の実行と不実行とを切り替える請求項６に記載の電子制御装置。
【請求項８】
前記演算処理として周期的に処理する周期処理が複数あり、
複数の前記周期処理それぞれは、前記データを算出する算出処理と、前記データを前記ローカルＲＡＭおよび前記グローバルＲＡＭに記憶して前記データを更新する更新処理と、を有し、
前記ローカルＲＡＭおよび前記グローバルＲＡＭそれぞれは、前記演算部が複数の前記周期処理によって得られた前記データそれぞれを記憶するための複数のアドレス領域（４１，６１，７１，７２）を、複数の前記周期処理それぞれに対応して有しており、
前記演算部は、複数の前記アドレス領域それぞれに記憶される前記データが更新された際の前記データの前記更新値の変化量、および、前記データの前記更新時刻の変化量の少なくとも一方に基づいて、複数の前記周期処理それぞれの前記算出処理の実行と不実行とを切り替える請求項７に記載の電子制御装置。
【請求項９】
前記演算部は、
複数の前記周期処理を所定周期の間で行っており、
前記所定周期の間における前記周期処理を行わない空き時間において、前記更新値の変化量および前記更新時刻の変化量の少なくとも一方に基づいて、前記算出処理の実行と不実行とを切り替える請求項８に記載の電子制御装置。
【請求項１０】
前記演算部は、複数の前記周期処理のうち、処理負荷が閾値よりも高い前記周期処理を選択し、選択した前記周期処理の前記算出処理の実行と不実行とを、前記更新値の変化量および前記更新時刻の変化量の少なくとも一方に基づいて切り替える請求項８または請求項９に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理を行う演算部と、演算処理によって得られたデータを記憶するＲＡＭと、を有する電子制御装置に関するものである。
【背景技術】
【０００２】
特許文献１に示されるように、ＣＰＵと、制御データを記憶するＲＡＭと、を有する電子制御装置が知られている。ＣＰＵは、ベース処理となる主タスクとしての各種演算を繰り返し実行する。またＣＰＵは、各種センサから周期的な割込み信号が入力されると、ベース処理の代わりに割込み処理を行う。ＣＰＵはこの割り込み処理において特定タスクを行う。ＣＰＵはこの特定タスクの実行周期を自身の負荷率に応じて変化させる。実行周期は、ＣＰＵの負荷率の小さいときに短く設定され、ＣＰＵの負荷率の大きいときに長く設定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−７９７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記したように特許文献１に示される電子制御装置では、ＣＰＵ（演算部）の負荷率（処理負荷）の増大が抑制されるように、特定タスクの実行周期を変化させる。この特定タスクは周期的な割り込み信号の入力時に行われる。割り込み信号の入力周期は、ベース処理の実行周期とは異なる。そのために処理負荷の調整は、リアルタイムの演算部の処理負荷に応じて行われない虞がある。
【０００５】
そこで本発明は上記問題点に鑑み、演算部の処理負荷をリアルタイムで調整することのできる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記した目的を達成するための開示された発明の１つは、演算処理を行う演算部（１０，５０）と、
演算部の演算処理によって得られたデータを記憶するＲＡＭ（３０，４０，６０，７０）と、を有し、
演算部は、演算処理によってＲＡＭに記憶されるデータが更新されると、データの更新値の変化量、および、データの更新時刻の変化量の少なくとも一方に基づいて、演算処理におけるデータの算出の実行と不実行とを切り替え、
演算部は、更新時刻の変化量が記憶している所定時間未満の場合に演算処理におけるデータの算出を実行し、更新時刻の変化量が所定時間以上の場合に演算処理におけるデータの算出を不実行とする。
上記した目的を達成するための開示された発明の１つは、演算処理を行う演算部（１０，５０）と、
演算部の演算処理によって得られたデータを記憶するＲＡＭ（３０，４０，６０，７０）と、を有し、
演算部は、演算処理によってＲＡＭに記憶されるデータが更新されると、データの更新値の変化量、および、データの更新時刻の変化量の少なくとも一方に基づいて、演算処理におけるデータの算出の実行と不実行とを切り替え、
演算部は、更新値の変化量に基づいて更新値の変化率を算出し、更新時刻の変化量が記憶している所定時間未満、および、更新値の変化率が記憶している所定値以上の少なくとも一方が成立する場合に演算処理におけるデータの算出を実行し、更新時刻の変化量が所定時間以上であり更新値の変化率が所定値未満の場合に演算処理におけるデータの算出を不実行とする。
【０００７】
ＲＡＭ（３０，４０，６０，７０）には演算処理にて得られたデータが記憶される。したがってＲＡＭ（３０，４０，６０，７０）に記憶されるデータの更新は、演算処理と同期している。またデータの更新値の変化量と更新時刻の変化量は、演算部（１０，５０）の処理負荷を反映している。そこで本発明では、データの更新時において、更新値と更新時刻の少なくとも一方の変化量に基づいて演算処理の実行と不実行とを切り替える。換言すれば、ＲＡＭ（３０，４０，６０，７０）の更新時において、演算部（１０，５０）の処理負荷を調整する。これによればＲＡＭ（３０，４０，６０，７０）の更新とはかかわらない周期で処理負荷を調整する構成と比べて、演算部（１０，５０）の処理負荷をリアルタイムで調整することができる。
【０００８】
なお、特許請求の範囲に記載の請求項、および、課題を解決するための手段それぞれに記載の要素に括弧付きで符号をつけている。この括弧付きの符号は実施形態に記載の各構成要素との対応関係を簡易的に示すためのものであり、実施形態に記載の要素そのものを必ずしも示しているわけではない。括弧付きの符号の記載は、いたずらに特許請求の範囲を狭めるものではない。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る電子制御装置内のマイクロコンピュータの概略構成を示すブロック図である。
【図２】ＲＡＭの記憶領域を示す模式図である。
【図３】タスク処理、アイドル時間、および、ＲＡＭの更新を示すタイムチャートである。
【図４】ＲＡＭの演算処理を示すフローチャートである。
【図５】切替フラグ決定処理を示すフローチャートである。
【図６】切替フラグ決定処理を示すフローチャートである。
【図７】第２実施形態に係る電子制御装置内のマイクロコンピュータの概略構成を示すブロック図である。
【図８】ローカルＲＡＭとグローバルＲＡＭそれぞれの記憶領域を示す模式図である。
【図９】タスク処理、アイドル時間、および、ＲＡＭの更新を示すタイムチャートである。
【発明を実施するための形態】
【００１０】
本発明は、演算部とＲＡＭを有する電子制御装置である。以下、本発明をエンジンＥＣＵ内のマイクロコンピュータ（以下、マイコンと略す。）に適用した場合の実施形態を図に基づいて説明する。
（第１実施形態）
図１〜図６に基づいて本実施形態に係る電子制御装置を説明する。電子制御装置２００は車両に搭載されている。電子制御装置２００は図示しないバス配線を介して他の電子制御装置と通信可能になっている。本実施形態の電子制御装置２００はエンジンＥＣＵである。上記の他の電子制御装置はバッテリＥＣＵやブレーキＥＣＵなどである。
【００１１】
電子制御装置２００には、図示しない各種センサから車両情報が入力される。これら各種センサは、例えばエアフロセンサ、スロットルポジションセンサ、アクセルポジションセンサ、クランクポジションセンサ、カムポジションセンサ、温度センサなどである。電子制御装置２００は、これら各種センサからの検出信号や他の電子制御装置からの通知に基づいて、インジェクタの燃料噴射量などを算出する。
【００１２】
燃料の噴射タイミングは、エンジンの回転角度に応じて定められる。そしてその噴射頻度は、エンジンの回転数に応じて決定される。電子制御装置２００は、噴射タイミングが来る前に、燃料噴射量などを算出する。電子制御装置２００は複数のタスク処理を周期的に行う。複数のタスク処理それぞれは、上記した燃料噴射量などのデータを算出する算出処理と、そのデータの更新処理と、を有する。タスク処理が周期処理に相当する。
【００１３】
図１に示すように電子制御装置２００はマイコン１００を有する。マイコン１００は、ＣＰＵ１０、ＲＯＭ２０、および、ＲＡＭ３０を有する。ＣＰＵ１０はＲＯＭ２０やＲＡＭ３０と通信可能となっている。ＲＯＭ２０には制御プログラムが記憶されている。ＲＡＭ３０には、ＣＰＵ１０のタスク処理にて生じるデータが記憶される。なお図１では電子制御装置２００の構成要素としてマイコン１００のみを図示している。
【００１４】
ＣＰＵ１０は各種センサからの検出信号や他の電子制御装置からの通知、および、ＲＯＭ２０に記憶された制御プログラムとＲＡＭ３０に記憶されたデータとに基づいてタスク処理する。ＣＰＵ１０はタスク処理によって得られたデータや、そのタスク処理の途中において算出したデータそれぞれをＲＡＭ３０に記憶する。
【００１５】
ＣＰＵ１０はタスク処理を所定周期Ｔで行う。タスク処理としては、その代表として第１タスク処理と第２タスク処理がある。第１タスク処理は第２タスク処理よりもＣＰＵ１０での処理負荷が高くなっている。ＣＰＵ１０は第１タスク処理と第２タスク処理の算出処理の実行と不実行とを判定処理する。ＣＰＵ１０はエンジン回転数が所定回転数よりも低い場合、第１タスク処理と第２タスク処理それぞれの算出処理の実行と不実行とを判定する。しかしながらＣＰＵ１０はエンジン回転数が所定回転数以上となると、第１タスク処理を選択し、その算出処理の実行と不実行とを判定する。ＣＰＵ１０は第２タスク処理の算出処理の実行と不実行とを判定しない。
【００１６】
なお第１タスク処理と同等、若しくは、それよりも処理負荷の高いタスク処理は複数ある。同様にして第２タスク処理と同等、若しくは、それよりも処理負荷の低いタスク処理も複数ある。ＣＰＵ１０はエンジン回転数が所定回転数以上になると、第１タスク処理、および、第１タスク処理と同等若しくはそれ以上に処理負荷の高いタスク処理それぞれを選択し、それらの算出処理の実行と不実行とを判定する。ＣＰＵ１０は第２タスク処理、および、第２タスク処理と同等若しくは処理負荷が第２タスク処理よりも低いタスク処理それぞれの算出処理の実行と不実行とを判定しない。またＣＰＵ１０はエンジン回転数が所定回転数よりも低い場合、全てのタスク処理それぞれの算出処理の実行と不実行とを判定する。第１タスク処理の処理負荷が、閾値に相当する。
【００１７】
ＲＡＭ３０は各タスク処理において得られたデータを記憶する記憶領域を有する。図２に代表として示すようにＲＡＭ３０の記憶領域は、第１タスク処理によって得られた第１データを記憶する第１アドレス領域３１と、第２タスク処理によって得られた第２データを記憶する第２アドレス領域３２と、を有する。また図示しないがＲＡＭ３０の記憶領域は、タスク処理の途中において一時的に算出したデータを記憶するスタック領域も有する。
【００１８】
第１アドレス領域３１には、第１データとしての更新値の他に、第１データの更新時刻も記憶される。同様にして第２アドレス領域３２には、第２データとしての更新値の他に、第２データの更新時刻も記憶される。以下においては煩雑となることを避けるため、第１データの更新値を第１更新値、第１データの更新時刻を第１更新時刻と示す。また第２データの更新値を第２更新値、第２データの更新時刻を第２更新時刻と示す。
【００１９】
なお上記の更新値と更新時刻の履歴もＲＡＭ３０に記憶される。すなわち、複数の第１更新時刻と、これら複数の第１更新時刻に対応する複数の第１更新値とが第１アドレス領域３１に記憶される。同様にして複数の第２更新時刻と、これら複数の第２更新時刻に対応する複数の第２更新値とが第２アドレス領域３２に記憶される。
【００２０】
次に図３に基づいて、ＣＰＵ１０によるタスク処理と、タスク処理の算出処理の実行と不実行とを説明する。ＣＰＵ１０は第１タスク処理を行った後に第２タスク処理を行う。ＣＰＵ１０の１回の各タスク処理に用いることのできる時間は、所定周期Ｔである。ＣＰＵ１０の各タスク処理が所定周期Ｔ以内に終了した場合、ＣＰＵ１０には空き時間が生じる。ＣＰＵ１０はこの空き時間において、タスク処理の算出処理の実行と不実行とを判定する。以下この空き時間をアイドル時間と示す。図３ではアイドル時間の有無を信号の立ち上がり時間によって示している。
【００２１】
ＣＰＵ１０は算出処理の後に更新処理を行う。例えばＣＰＵ１０が第１タスク処理において第１データを算出すると、ＲＡＭ３０の第１アドレス領域３１に記憶されているデータを更新する。すなわちＣＰＵ１０は第１更新値と第１更新時刻とを更新する。同様にしてＣＰＵ１０は第２タスク処理において第２データを算出すると、第２更新値と第２更新時刻とを更新する。換言すれば、ＣＰＵ１０は更新値と更新時刻の履歴を更新する。
【００２２】
ただし、例えば第１タスク処理の算出処理が不実行の場合、ＣＰＵ１０は算出処理を行わずに、更新処理を行う。この場合にＣＰＵ１０は、もともと記憶されていた第１データを再度記憶する。これによって第１アドレス領域に記憶されているデータの値そのもの（第１更新値）自体は変化しないが、第１更新値は更新される。これに対して第１更新時刻は新しい値に更新される。
【００２３】
図３では、ＲＡＭ３０におけるデータの更新タイミングを、ＲＡＭ３０の横線とタスク処理からの矢印との交点によって示している。ＣＰＵ１０は時刻ｔ１，ｔ３，ｔ５，ｔ７それぞれにおいて第１更新値と第１更新時刻とを更新する。またＣＰＵ１０は時刻ｔ２，ｔ４，ｔ６，ｔ８それぞれにおいて第２更新値と第２更新時刻とを更新する。そしてＣＰＵ１０はその後のアイドル時間において、第１更新値の変化率、第１更新時刻間の時間、第２更新値の変化率、および、第２更新時刻間の時間それぞれを算出する。これら更新時刻間の時間が、更新時刻の変化量に相当する。
【００２４】
ＣＰＵ１０は、更新値の変化率が、記憶している所定値よりも大きいか否かを判定する。またＣＰＵ１０は、更新時刻間の時間（以下、更新時間と示す）が、記憶している所定時間よりも短いか否かを判定する。更新値の変化率が所定値よりも大きい場合、タスク処理によって得られるデータの変化量が大きいことを示している。これとは反対に更新値の変化率が所定値よりも小さい場合、タスク処理によって得られるデータの変化量が小さいことを示している。また更新時間が所定時間よりも短い場合、タスク処理によって得られるデータの更新頻度が高いことを示している。これとは反対に更新時間が所定時間よりも長い場合、タスク処理によって得られるデータの更新頻度が低いことを示している。
【００２５】
本実施形態のＣＰＵ１０は、更新値の変化率が所定値よりも小さく、且つ、更新時間が所定時間以上の場合、データの新たな算出が不要であると判断する。そこでＣＰＵ１０は、そのタスク処理の算出処理を不実行とする。これとは異なり、更新値の変化率が所定値以上、および、更新時間が所定時間よりも短い、の少なくとも一方が成立する場合、ＣＰＵ１０はデータの新たな算出が必要であると判断する。そこでＣＰＵ１０は、そのタスク処理の算出処理を実行する。
【００２６】
図３においてＣＰＵ１０は、第１タスク処理の算出処理を一時的に不実行としている。これによりＣＰＵ１０は処理負荷を軽減している。この一時的な算出処理の不実行のため、時刻ｔ５において更新される第１更新値の値そのものは、時刻ｔ３において更新された第１更新値の値そのものと同一になる。
【００２７】
上記したようにＣＰＵ１０は、第１タスク処理を行った後に第２タスク処理を行う。図３においてＣＰＵ１０は第２タスク処理の算出処理を全て実行としている。しかしながらＣＰＵ１０は第１タスク処理の算出処理を実行から不実行、不実行から実行へと変化させている。そのため例えば時刻ｔ２と時刻ｔ４間の第２更新時間は短いにもかかわらず、時刻ｔ４と時刻ｔ６間の第２更新時間が長くなる。
【００２８】
そこでＣＰＵ１０は、処理順序の早いタスク処理の算出処理の実行と不実行とが切り替わった場合、その切り替わりによって生じた変化時間を加味して、処理順序の遅いタスク処理の更新時間を算出する。例えば第１タスク処理の算出処理の実行と不実行とによって第２タスク処理の実行開始時間および実行終了時間が変化時間Ｔｃだけ変化した場合、ＣＰＵ１０はその変化時間Ｔｃに基づいて第２更新時間を補正する。時刻ｔ２と時刻ｔ４との間の第２更新時間を算出する場合、ＣＰＵ１０は、（ｔ４−ｔ２）に変化時間Ｔｃを加算する。こうすることでＣＰＵ１０は第２更新時間を補正する。また時刻ｔ６と時刻ｔ８との第２更新時間を算出する場合、ＣＰＵ１０は、（ｔ８−ｔ６）から変化時間Ｔｃを減算する。こうすることでＣＰＵ１０は第２更新時間を補正する。なお図３では変化時間Ｔｃを明示するため、実行しなかった第１タスク処理の算出処理を破線で示している。
【００２９】
次に図４〜図６に基づいてＣＰＵ１０によるＲＡＭ３０の演算処理を説明する。なおＣＰＵ１０は図４〜図６に示す演算処理を各タスクそれぞれに対して行う。そしてＣＰＵ１０は演算処理を所定周期Ｔで行う。
【００３０】
先ずステップＳ１０においてＣＰＵ１０は、図５および図６に示す切替フラグ決定処理それぞれを行う。この切替フラグ決定処理は、上記のアイドル時間にて行われる。
【００３１】
図５に示す切替フラグ決定処理のステップＳ１１においてＣＰＵ１０は、更新時刻に基づいて更新時間を算出する。その後にＣＰＵ１０はステップＳ１２へと進む。
【００３２】
ステップＳ１２へ進むとＣＰＵ１０は、更新時間が所定時間よりも短いか否かを判定する。更新時間が所定時間よりも短い場合にＣＰＵ１０はステップＳ１３へと進む。これとは異なり更新時間が所定時間以上の場合にＣＰＵ１０はステップＳ１４へと進む。
【００３３】
ステップＳ１３へ進むとＣＰＵ１０は、算出処理の実行と不実行にかかわる切替フラグをオフにする。これとは異なりステップＳ１４へ進むとＣＰＵ１０は、切替フラグをオンにする。この切替フラグの判定結果は、ＲＡＭ３０に記憶される。
【００３４】
また図６に示す切替フラグ決定処理のステップＳ１５においてＣＰＵ１０は、更新値の変化率を算出する。その後にＣＰＵ１０はステップＳ１６へと進む。なお更新前のデータの値をａ、更新時のデータの値をｂとすると、更新値の変化量は（ｂ−ａ）と表される。そして更新値の変化率は、（ｂ−ａ）×１００／ａと表される。データの値が変化していない場合、更新値の変化率はゼロになる。
【００３５】
ステップＳ１６へ進むとＣＰＵ１０は、更新値の変化率が所定値よりも大きいか否かを判定する。更新値の変化率が所定値よりも大きい場合にＣＰＵ１０はステップＳ１７へと進む。これとは異なり更新値の変化率が所定値以下の場合にＣＰＵ１０はステップＳ１８へと進む。
【００３６】
ステップＳ１７へ進むとＣＰＵ１０は、切替フラグをオフにする。これとは異なりステップＳ１８へ進むとＣＰＵ１０は、切替フラグをオンにする。この切替フラグの判定結果も、ＲＡＭ３０に記憶される。
【００３７】
以上に示したようにステップＳ１０においてＣＰＵ１０は、更新時間に基づく切替フラグのオンオフ判定、および、更新値の変化率に基づく切替フラグのオンオフ判定を行う。この後にＣＰＵ１０はステップＳ２０へと進む。
【００３８】
ステップＳ２０へ進むとＣＰＵ１０は、ステップＳ１０において判定した２つの切替フラグの両方がオンか否かを判定する。２つの切替フラグの両方がオンの場合、ＣＰＵ１０はデータの新たな算出が不要であると判断し、ステップＳ４０へと進む。これとは異なり２つの切替フラグの少なくとも一方がオフの場合、ＣＰＵ１０はデータの新たな算出が必要であると判断し、ステップＳ３０へと進む。
【００３９】
ステップＳ３０へ進むとＣＰＵ１０は算出処理を実行する。その後にＣＰＵ１０はステップＳ４０へと進む。そしてステップＳ４０においてＣＰＵ１０は、更新処理を行う。この際にＣＰＵ１０は、ステップＳ３０で算出したデータによって、ＲＡＭ３０を更新する。そしてＲＡＭ３０の演算処理を終了する。この場合、ＣＰＵ１０の処理負荷は変化しない。
【００４０】
これとは異なりステップＳ２０からステップＳ４０へ進むとＣＰＵ１０は、算出処理を実行せずに、以前算出したデータによって、ＲＡＭ３０を更新する。そしてＲＡＭ３０の演算処理を終了する。この場合、ＣＰＵ１０の処理負荷は上記の算出処理の分、軽減される。
【００４１】
次に、本実施形態に係る電子制御装置２００内のマイコン１００の作用効果を説明する。上記したようにＣＰＵ１０は、ＲＡＭ３０の更新値の変化率と更新時間とに基づいて、タスク処理の算出処理の実行と不実行とを判定する。これによってＣＰＵ１０は処理負荷を調整する。これによればＲＡＭの更新とはかかわらない周期で処理負荷を調整する構成と比べて、ＣＰＵ１０の処理負荷をリアルタイムで調整することができる。
【００４２】
ＣＰＵ１０は、アイドル時間において算出処理の実行と不実行とを判定する。これによれば、例えばタスク処理を行っている際に、割り込みによって算出処理の実行と不実行とを切り替えるための処理を行う構成とは異なり、タスク処理の実行が阻害されることが抑制される。
【００４３】
ＣＰＵ１０はエンジン回転数が所定回転数よりも低い場合、第１タスク処理と第２タスク処理の両方の算出処理の実行と不実行とを判定する。しかしながらＣＰＵ１０はエンジン回転数が所定回転数以上になると、処理負荷が第２タスク処理よりも高い第１タスク処理を選択し、その算出処理の実行と不実行とを判定する。これによればエンジン回転数が速いためにＣＰＵ１０の処理負荷が増大している際に、算出処理の実行と不実行の判定処理によって、処理負荷が増大することが抑制される。
【００４４】
ＣＰＵ１０は、更新値の変化率と更新時間とに基づいて算出処理の実行と不実行とを決定する。これによれば更新値の変化率と更新時間の一方に基づいて算出処理の実行と不実行とを決定する構成と比べて、処理負荷をより正確に調整することができる。
【００４５】
上記したように本実施形態のＣＰＵ１０は算出処理の実行と不実行の判定を、更新時間、および、更新値の変化率それぞれに基づいて行った。しかしながらＣＰＵ１０は算出処理の実行と不実行の判定を、更新時間のみに基づいて行ってもよい。この場合、ＣＰＵ１０はＲＡＭ３０の演算処理のステップＳ１０において、図５に示す切替フラグ決定処理のみを行う。そしてステップＳ２０においてＣＰＵ１０は、ステップＳ１０において判定した１つの切替フラグがオンか否かを判定する。これによれば処理負荷を軽減しつつ、更新頻度の高い算出処理を実行することができる。
【００４６】
またＣＰＵ１０は算出処理の実行と不実行の判定を、更新値の変化率のみに基づいて行ってもよい。この場合、ＣＰＵ１０はＲＡＭ３０の演算処理のステップＳ１０において、図６に示す切替フラグ決定処理のみを行う。そしてステップＳ２０においてＣＰＵ１０は、ステップＳ１０において判定した１つの切替フラグがオンか否かを判定する。これによれば処理負荷を軽減しつつ、更新値の変化率の高い算出処理を実行することができる。
【００４７】
なおＣＰＵ１０は、更新値の変化率ではなく、更新値の変化量に基づいて算出処理の実行と不実行の判定を行ってもよい。
【００４８】
本実施形態では、ＣＰＵ１０がエンジン回転数に応じて算出処理の実行と不実行の判定を行うタスク処理を選択する例を示した。しかしながら上記例に限定されず、ＣＰＵ１０は予め定めた優先順位に応じてタスク処理を選択し、その選択したタスク処理の算出処理の実行と不実行の判定を行ってもよい。若しくは、ＣＰＵ１０はエンジン回転数や優先順位に応じずに全てのタスク処理の算出処理の実行と不実行の判定を行ってもよい。
【００４９】
本実施形態では、ＣＰＵ１０がアイドル時間において算出処理の実行と不実行とを判定する例を示した。しかしながら各タスク処理の更新処理終了直後に算出処理の実行と不実行とを判定してもよい。
【００５０】
（第２実施形態）
次に、本発明の第２実施形態を図７〜図９に基づいて説明する。第２実施形態に係る電子制御装置内のマイコンは上記した実施形態によるものと共通点が多い。そのため以下においては共通部分の説明を省略し、異なる部分を重点的に説明する。また以下においては上記した実施形態で示した要素と同一の要素には同一の符号を付与する。
【００５１】
第１実施形態では、電子制御装置２００内のマイコン１００は１つのＣＰＵ１０を有する例を示した。これに対して本実施形態では、マイコン１００が２つのＣＰＵ１０，５０を有する点を特徴とする。またマイコン１００はグローバルＲＡＭ７０を有することも特徴とする。
【００５２】
図７に示すようにマイコン１００は、ＣＰＵ１０，５０，ＲＯＭ２０、ローカルＲＡＭ４０，６０、および、グローバルＲＡＭ７０を有する。第１ローカルＲＡＭ４０には、第１ＣＰＵ１０が算出したデータが記憶される。第２ローカルＲＡＭ６０には、第２ＣＰＵ５０が算出したデータが記憶される。そしてグローバルＲＡＭ７０には、２つのＣＰＵ１０，５０それぞれの算出したデータが記憶される。このようにグローバルＲＡＭ７０は、２つのＣＰＵ１０，５０において共有される。またＲＯＭ２０も、２つのＣＰＵ１０，５０において共有される。
【００５３】
タスク処理としては様々にあるが、以下においては第１ＣＰＵ１０が第１タスク処理と第２タスク処理を行い、第２ＣＰＵ５０が第３タスク処理と第４タスク処理を行う、とする。図９に示すように第１タスク処理と第２タスク処理は所定周期Ｔで行われる。これに対して第３タスク処理と第４タスク処理とは所定周期２Ｔで行われる。そして第３タスク処理と第４タスク処理とは、所定周期Ｔにおいて交互に行われる。なお図８ではグローバルＲＡＭ７０に対応する第１タスク処理と第３タスク処理それぞれを明示するためにハッチングを入れている。これらタスク処理の周期はあくまで一例に過ぎない。
【００５４】
第１ＣＰＵ１０による第１タスク処理にて算出される第１データは、図８に示すグローバルＲＡＭ７０の第１アドレス領域７１に記憶される。また第１ＣＰＵ１０による第２タスク処理にて算出される第２データは、第１ローカルＲＡＭ４０の第２アドレス領域４１に記憶される。同様にして第２ＣＰＵ５０による第３タスク処理にて算出される第３データは、グローバルＲＡＭ７０の第３アドレス領域７２に記憶される。また第２ＣＰＵ５０による第４タスク処理にて算出される第４データは、第２ローカルＲＡＭ６０の第４アドレス領域６１に記憶される。
【００５５】
第１ＣＰＵ１０は第１ローカルＲＡＭ４０に対応する第２タスク処理の算出処理の実行と不実行とを自身のアイドル時間にて判定する。同様にして第２ＣＰＵ５０は第２ローカルＲＡＭ６０に対応する第４タスク処理の算出処理の実行と不実行とを自身のアイドル時間にて判定する。
【００５６】
またＣＰＵ１０，５０は、グローバルＲＡＭ７０に対応する第１タスク処理と第３タスク処理それぞれの算出処理の実行と不実行とをＣＰＵ１０，５０の少なくとも一方のアイドル時間にて判定する。第１ＣＰＵ１０の処理負荷が過多なためにアイドル時間がなく、第２ＣＰＵ５０の処理負荷が少なくてアイドル時間がある場合、第２ＣＰＵ５０が第１タスク処理と第３タスク処理の算出処理の実行と不実行とを判定する。これとは逆に第２ＣＰＵ５０の処理負荷が過多なためにアイドル時間がなく、第１ＣＰＵ１０の処理負荷が少なくてアイドル時間がある場合、第１ＣＰＵ１０が第１タスク処理と第３タスク処理の算出処理の実行と不実行とを判定する。もちろん、ＣＰＵ１０，５０それぞれの処理負荷が少なくてアイドル時間がある場合、第１タスク処理と第３タスク処理それぞれの算出処理の実行と不実行の判定をＣＰＵ１０，５０のいずれが行ってもよい。
【００５７】
図９に、タスク処理、アイドル時間、ＲＡＭの更新を示す。第１タスク処理によって得られる第１データは、時刻ｔ２，ｔ４，ｔ７，ｔ１１にて更新される。第２タスク処理によって得られる第２データは、時刻ｔ３，ｔ５，ｔ８，ｔ１２にて更新される。第３タスク処理によって得られる第３データは、時刻ｔ６，ｔ１０にて更新される。第４タスク処理によって得られる第４データは、時刻ｔ１，ｔ９にて更新される。
【００５８】
図９に示すように、第１ＣＰＵ１０の処理負荷が過多なために第２タスク処理の更新時刻ｔ３が所定周期Ｔの終了タイミングと同時になっている。この場合、第１ＣＰＵ１０にはアイドル時間がない。しかしながら時刻ｔ１から時刻ｔ３までの間に第２ＣＰＵ５０はアイドル時間を有する。第２ＣＰＵ５０はこのアイドル時間において第１タスク処理の算出処理の実行と不実行の判定を行う。この判定の結果第１タスク処理の算出処理が不実行になり、第１ＣＰＵ１０の処理負荷が軽減される。これによって第１ＣＰＵ１０にアイドル時間が生じる。第１ＣＰＵ１０は時刻ｔ５以降のアイドル時間において第２タスク処理の算出処理の実行と不実行とを判定することが可能となる。これによって第１ＣＰＵ１０の処理負荷をさらに軽減することが可能となる。
【００５９】
なお上記したようにＣＰＵ１０，５０それぞれはグローバルＲＡＭ７０を共有している。したがって例えば第１ＣＰＵ１０の処理負荷が過多で、第２ＣＰＵ５０の処理負荷が低い場合、第１ＣＰＵ１０に代わって第２ＣＰＵ５０がグローバルＲＡＭ７０にかかわる第１タスク処理を行ってもよい。この場合、第２ＣＰＵ５０が第１データの更新を行う。これとは逆に、第２ＣＰＵ５０の処理負荷が過多で、第１ＣＰＵ１０の処理負荷が低い場合、第２ＣＰＵ５０に代わって第１ＣＰＵ１０がグローバルＲＡＭ７０にかかわる第３タスク処理を行ってもよい。この場合、第１ＣＰＵ１０が第３データの更新を行う。
【００６０】
以上に示したように、ＣＰＵ１０，５０の一方の処理負荷が過多の際に、他方にてグローバルＲＡＭ７０にかかわるタスク処理の算出処理の実行と不実行とを判断することができる。
【００６１】
なお本実施形態では電子制御装置２００内のマイコン１００が２つのＣＰＵ１０，５０を有する例を示した。しかしながらＣＰＵの数としては上記例に現例されず、３つ以上でもよい。この場合、各ＣＰＵそれぞれにローカルＲＡＭが設けられ、各ＣＰＵそれぞれに共通して１つのグローバルＲＡＭが設けられる。
【００６２】
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００６３】
（その他の変形例）
各実施形態では、電子制御装置２００がエンジンＥＣＵである例を示した。しかしながら電子制御装置２００としては上記例に限定されず、例えばハイブリッドＥＣＵやバッテリＥＣＵでもよい。
【符号の説明】
【００６４】
１０…（第１）ＣＰＵ
２０…ＲＯＭ
３０…ＲＡＭ
４０…第１ローカルＲＡＭ
５０…第２ＣＰＵ
６０…第２ローカルＲＡＭ
７０…グローバルＲＡＭ
１００…マイクロコンピュータ
２００…電子制御装置
【図１】
0006447442.tif 000002
【図２】
0006447442.tif 000003
【図３】
0006447442.tif 000004
【図４】
0006447442.tif 000005
【図５】
0006447442.tif 000006
【図６】
0006447442.tif 000007
【図７】
0006447442.tif 000008
【図８】
0006447442.tif 000009
【図９】
0006447442.tif 000010