(57)【要約】【課題】同じ処理結果が得られる状況では命令の実行により処理結果を得る場合よりもＣＰＵの処理負荷を低減できる情報処理装置を提供すること。【解決手段】プログラム１４を記憶するプログラム記憶手段２４と、前記プログラムの入力値を取得する入力値取得手段１２、２５と、前記プログラムを実行して前記入力値から出力値を生成する演算手段２３と、過去の前記入力値と前記出力値を対応づけて記憶する値記憶手段１６と、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値を比較する比較手段１３と、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値が一致する場合、前記プログラムを前記演算手段に実行させずに前記値記憶手段の前記出力値を前記プログラムの前記出力値として採用する実行制御手段１１と、を有する情報処理装置１００を提供する。【選択図】図１
2013161362.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶するプログラム記憶手段と、
前記プログラムの入力値を取得する入力値取得手段と、
前記入力値を用いた処理を行う前記プログラムを実行して出力値を生成する演算手段と、
過去の前記入力値と前記出力値を対応づけて記憶する値記憶手段と、
前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値を比較する比較手段と、
前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値が一致する場合、前記プログラムを前記演算手段に実行させずに前記値記憶手段の前記出力値を前記プログラムの前記出力値として採用する実行制御手段と、
を有する情報処理装置。
【請求項２】
前記プログラムを前記演算手段に実行させなかった頻度が登録された実行省略頻度テーブルを有し、
前記比較手段は、前記実行省略頻度テーブルに登録された前記頻度が閾値未満の場合、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値を比較する処理を省略する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プログラム記憶手段に記憶された複数の前記プログラム間における処理依存関係又はデータ依存関係が登録された依存関係テーブルを有し、
前記比較手段は、前記依存関係テーブルに依存関係があると登録された全ての前記プログラム毎に、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値を比較し、
前記依存関係テーブルに依存関係があると登録された全ての前記プログラムについて前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値が一致する場合、
前記実行制御手段は、前記プログラムを前記演算手段に実行させずに前記値記憶手段の前記出力値を前記プログラムの前記出力値として採用する、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記プログラムが関数型言語で記述された関数である場合、
前記入力値は関数の引数であり、前記出力値は関数の戻り値である、ことを特徴とする請求項１〜３いずれか１項記載の情報処理装置。
【請求項５】
プログラムを記憶するプログラム記憶手段と、
前記プログラムの入力値を取得する入力値取得手段と、
前記プログラムを実行して前記入力値から出力値を生成する演算手段と、を有する情報処理装置のプログラム実行方法であって、
比較手段が、前記入力値取得手段が取得した前記入力値と、過去の前記入力値と前記出力値を対応づけて記憶する値記憶手段に記憶された前記入力値を比較するステップと、
前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値が一致する場合、実行制御手段が、前記プログラムを前記演算手段に実行させずに前記値記憶手段の前記出力値を前記プログラムの前記出力値として採用するステップと、
を有するプログラム実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行する情報処理装置に関し、特に入力値を使用して出力値を生成する情報処理装置に関する。
【背景技術】
【０００２】
エンジンやモータなどの車載装置の電子制御化が進んでいるが、一台の車両に搭載される電子制御装置（ＥＣＵ：Electronic  Control  Unit）の数が増大する傾向が生じている。このため、一つの電子制御装置に、複数の機能を搭載するいわゆる機能統合が進められている。しかしながら、複数の機能を一台の電子制御装置で提供しようとすると、処理能力が不足する場合がある。
【０００３】
処理能力の不足に対応するための方策の一つとして電子制御装置の処理能力を補強することが考えられる。例えば、電子制御装置に搭載されるＣＰＵの動作クロックを大きくすることで処理能力を補強することができる。しかしながら、ＣＰＵの消費電力は動作クロックに比例して大きくなるため、消費電力の増大とそれに伴う発熱量の増大という不都合をもたらす。また、例えば、マルチコアのＣＰＵを電子制御装置に搭載することで処理能力を補強することができる。しかし、マルチコアのＣＰＵは単価が高いため電子制御装置のコスト増をもたらすという不都合がある。
【０００４】
そこで、ＣＰＵの処理負荷を低減することが考えられる（例えば、特許文献１参照。）。特許文献１には、繰り返しレジスタに設定された回数、同じ命令を繰り返し実行するプログラム制御装置が開示されている。このプログラム制御装置によれば、一度、命令が読み出されれば、同じ命令を実行している間は命令を読み出したり、繰り返し回数を設定したりするオーバーヘッドを低減することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−２８６９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されたプログラム制御装置は、同じ命令を繰り返し実行しているためＣＰＵの処理負荷を大きく低減することができないという問題がある。すなわち、同じ命令が同じ入力データを用いて実行される場合、処理結果が同じなるが、特許文献１では入力データの同一性を考慮せずに命令を実行するため、処理負荷を低減できる状況でも処理負荷を低減できていない。
【０００７】
本発明は、上記課題に鑑み、同じ処理結果が得られる状況では命令の実行により処理結果を得る場合よりもＣＰＵの処理負荷を低減できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プログラムを記憶するプログラム記憶手段と、前記プログラムの入力値を取得する入力値取得手段と、前記入力値を用いた処理を行う前記プログラムを実行して出力値を生成する演算手段と、過去の前記入力値と前記出力値を対応づけて記憶する値記憶手段と、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値を比較する比較手段と、前記入力値取得手段が取得した前記入力値と、前記値記憶手段が記憶する前記入力値が一致する場合、前記プログラムを前記演算手段に実行させずに前記値記憶手段の前記出力値を前記プログラムの前記出力値として採用する実行制御手段と、を有する情報処理装置を提供する。
【発明の効果】
【０００９】
同じ処理結果が得られる状況では命令の実行により処理結果を得る場合よりもＣＰＵの処理負荷を低減できる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態のマイコンの概略的な特徴を説明する図の一例である。
【図２】ＥＣＵのハードウェア構成図の一例である。
【図３】マイコンの機能ブロック図の一例である。
【図４】機能Iの実行手順、機能IIの実行手順を示す図の一例である。
【図５】前回値テーブルの一例を模式的に説明する図の一例である。
【図６】依存関係データを模式的に説明する図の一例である。
【図７】マイコンが機能Ｉを実行する動作手順を示すフローチャート図の一例である。
【図８】マイコンの機能ブロック図の一例である。
【図９】定常状態判定結果テーブルの一例である。
【図１０】定常状態判定部の処理を説明するフローチャート図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００１２】
図１は、本実施形態のマイコン１００の概略的な特徴を説明する図の一例である。マイコン１００には機能統合により複数の機能Ｉ、機能IIが搭載されている。機能Ｉ、機能IIは入力値に処理を施して出力値を出力する機能ブロックである。機能ブロックとしては、プログラム、プログラム内の関数、タスク又はスレッドなどが挙げられる。
【００１３】
本実施形態のマイコン１００は機能Ｉ，機能IIそれぞれの前回入力値と前回出力値を記憶しておく。そして、今回入力値が与えられ機能Ｉが実行される場合、マイコン１００は今回入力値と前回入力値を比較し、一致した場合は機能Iを実行することなく記憶している前回出力値を出力する。
【００１４】
例えば、機能Iの入力値が入力値ａの場合、マイコンは今回入力値ａと前回入力値aを比較して、一致した場合は記憶している前回出力値ｚを機能Iの出力値に採用する。今回入力値と前回入力値が一致した場合、マイコン１００は対応する機能Ｉ又は機能IIを実行する必要がないのでＣＰＵの処理負荷を低減できる。
【００１５】
ところで、機能I、機能IIのそれぞれからみて車両が安定した状態になると、機能Ｉ、IIの入力値が一定になる傾向がある。車両が安定した状態としては、例えば、車両が停車した状態、車両が一定車速で直線を走行する状態、一定の加速度で加速する状態等が想定されるが、どのような状態が安定した状態かは機能毎に異なる。
【００１６】
本実施形態では機能I、機能IIのそれぞれからみて車両が安定した状態を「定常状態」と称す。したがって、定常状態は前回入力値と今回入力値が一致する状態と定義することができる。なお、定常状態でない状態を高負荷状態と称す。
【００１７】
ここで、機能Ｉ、機能IIは、機能統合により一つのマイコン１００に搭載されているので機能の独立性が高い。このため、機能Ｉが定常状態でも機能IIが定常状態になるとは限らず、マイコン１００としては定常状態の機能と、高負荷状態の機能が混在した状態になることが期待できる。
【００１８】
本実施形態のマイコン１００は定常状態の処理負荷を低減できるので、独立した機能が混在した状況ではマイコン１００のピーク時の処理負荷を抑制することが可能になる。したがって、マイコン１００のスペックダウン、省電力化、及び、発熱の抑制が可能となる。
【００１９】
なお、本実施形態では機能統合により統合された複数の機能I、機能IIをマイコン１００が有することを前提に説明するが、機能統合の有無に関係なく入力値を使用する機能が１つさえあれば、各マイコンに適用可能である。ただし、本実施例の処理負荷の低減方法は、複数の機能が独立に定常状態となることが期待できる機能統合されたマイコン１００に対しより好適に適用できる。
【００２０】
〔構成例〕
図２は、ＥＣＵ２００のハードウェア構成図の一例を示す。ＥＣＵ２００は、入力Ｉ／Ｆ１１、電源回路１４、マイコン１００、及び、出力Ｉ／Ｆ１３を有する。この他、ＣＡＮコントローラのような他の電子制御装置と通信するための通信装置等を有しているが、図示を省略した。
【００２１】
車載されるＥＣＵ２００には種々のものがある。例えば、ＨＶ−ＥＣＵ（Electronic  Control  Unit）、エンジンＥＣＵ、ブレーキＥＣＵ、ボディＥＣＵ、パワステＥＣＵ、ナビゲーションＥＣＵ（ＡＶ・情報処理ＥＣＵ）、ゲートウェイＥＣＵ等が知られている。本実施例のＥＣＵは、機能統合によりこれら複数の機能を有する場合がある。また、どのような機能を搭載するかに関わらず、処理負荷を低減することが可能である。
【００２２】
電源回路１４はＩＧ−ＳＷ１５のＯＮ／ＯＦＦを検出する。ＩＧ−ＳＷ１５のＯＮを検出した場合、電源回路１４はバッテリ１６から供給される電力を必要に応じて降圧して、入力Ｉ／Ｆ１１、マイコン１００及び出力Ｉ／Ｆ１３に供給する。また、ＩＧ−ＳＷ１５のＯＦＦを検出した場合、電源回路１４は各回路への電力の供給を停止するが、例えば、ＲＡＭ２５にだけ電力を供給してパラメータを保持するとしてもよい。このようなＩＧ−ＯＦＦ時の省電力制御により、ＥＣＵ２００は、ＩＧ−ＯＮ時に演算した（学習した）パラメータを、次回のＩＧ−ＯＮ後に使用でき、操作性などを向上させることができる。
【００２３】
入力Ｉ／Ｆ１１には、各種のセンサが接続されている。入力Ｉ／Ｆ１１はマルチプレクサとして機能し、各センサの検出信号を時分割又は優先度に基づき読み出し、センサの識別情報と共にマイコン１００のＡ／Ｄ２１又はＩ／Ｏ２２に送信する。また、入力Ｉ／Ｆ１１は、ＣＰＵ２３からの指示によりセンサから検出信号を取得する場合と、指示がなくてもセンサから検出信号を取得する場合がある。
【００２４】
マイコン１００は、バスを介してＣＰＵ２３と接続されたＡ／Ｄ２１、Ｉ／Ｏ２２、フラッシュＲＯＭ２４、ＲＡＭ２５、Ｉ／Ｏ２６及びＷＤＴ２７を有する。Ｉ／Ｏ２２は、入力Ｉ／Ｆ１１から入力された検出信号を検出信号の種別と共に、割込みなどの仕組みを利用してＣＰＵ２３に通知する。また、Ａ／Ｄ２１はアナログの検出信号をデジタルの検出信号に変換する回路であり、変換後の検出信号を検出信号の種別と共に、割込みなどの仕組みを利用してＣＰＵ２３に通知する。
【００２５】
ＷＤＴ２７は、動作クロックをコントロールレジスタなどに設定されている分周比で分周して、時間の経過をカウントアップする回路である。そして、計測した時間が予め定められたリセット時間に達すると（オーバーフローすると）、マイコン１００をリセットするなどのフェールセーフ処理を行う。ＣＰＵ２３は、ＷＤＴ２７がオーバーフローする前に定期的に計測されている時間をクリアする。したがって、ＷＤＴ２７がマイコン１００をリセットしない間は、ＣＰＵ２３が各機能を想定される時間内に実行していることが推定できる。なお、ＷＤＴ２７は、マイコン内でなくマイコン外の電子制御装置上に配置されていてもよい。
【００２６】
ＣＰＵ２３は、フラッシュＲＯＭ２４に記憶されているプログラムを実行して、検出信号の読み取り、演算、マップ引き、ＲＡＭ２５への書き込み又はＩ／Ｏ２６への出力を行う。このプログラムに複数の機能I,機能IIが含まれる。これらの具体的な処理内容はＥＣＵ２００の種類や、機能によって異なる。
【００２７】
後段のＩ／Ｏ２６は、ＣＰＵ２３からの指示により、制御対象の識別情報やチップ選択線のアサートと共に演算結果を出力Ｉ／Ｆ１３に出力する。出力Ｉ／Ｆ１３は、各種のアクチュエータと接続されている。出力Ｉ／Ｆ１３は、例えばＤ／Ａ変換した電圧値等をアクチュエータに出力することでアクチュエータを制御する。また、出力Ｉ／Ｆ１３は例えば、スイッチ素子であり、ソレノイドに通電しリレーなどの開閉を制御する。また、出力Ｉ／Ｆ１３は例えばドライバ回路であり、直流電圧を交流電圧に変換してモータの回転数を制御する。
【００２８】
図３は、マイコン１００の機能ブロック図の一例を示す。マイコン１００は機能Ｉと機能IIを有している。機能Iと機能IIはそれぞれ別々のＥＣＵに搭載されていた機能である。マイコン１００のＣＰＵ２３は機能Ｉと機能IIを独立に実行する。
【００２９】
図４（ａ）は機能Iの実行手順を、図４（ｂ）は機能IIの実行手順をそれぞれ示す。ＣＰＵ２３がシングルコアの場合、マイコン１００はＣＰＵ２３を含むリソースを時分割して機能Ｉ、機能IIをそれぞれ実行する。例えば、ＣＰＵ２３がアドレス順にプログラムを読み出すことで機能Ｉと機能IIの実行を機械的に繰り返してもよいし、機能I、機能IIが実行終了時にタイマを設定し、タイマ割込みにより実行開始されてもよい。また、ＯＳ（Operating  System）の例えばスケジューラが、機能Ｉと機能IIをＣＰＵ２３などのリソースに割り当てることで、繰り返し実行してもよい。この場合、機能Ｉと機能IIの全体を実行させるのでなく、所定のスライスタイム毎にコンテキストを切り替えて実行してもよい。
【００３０】
図３に戻り、機能Ｉは全体制御部１１、ラッチ処理部１２、定常状態判定部１３、及び、サブ機能１４（以下、区別する場合、サブ機能Ａ〜Ｆという）を有する。機能IIも全体制御部１１、ラッチ処理部１２、定常状態判定部１３、及び、サブ機能Ｇ、Ｈを有するが、本実施形態の特徴部における機能Ｉ，機能IIの内容は同等なので機能IIの説明は省略する。なお、３つ以上の機能が統合されていてもよい。
【００３１】
〔入力値  出力値〕
全体制御部１１は、例えばMain関数であり、各機能ブロックが記述された順番又はタイミングやフラグなどの条件の判定結果にしたがい各機能ブロックを実行する。
【００３２】
機能ブロックのうち、サブ機能Ａ〜Ｆが機能統合前から機能Ｉに含まれている機能である。サブ機能Ａ〜Ｆは例えば１つ以上の関数又はサブルーチンである。関数の場合、呼び出し元から引数が与えられると関数に特有の処理を行い、戻り値を呼び出し元に返す。呼び出し元は例えば全体制御部１１又は別の関数である。サブルーチンも同様であるが、戻り値がない場合がある。関数又はサブルーチンが直接、アクチュエータ等を制御する場合もあるが、この場合も制御結果は呼び出し元に返される。したがって、サブ機能Ａ〜Ｆにおいて、入力値は例えば引数、出力値は例えば戻り値又は関数やサブルーチンの演算結果である。
【００３３】
入力値には、静的変数、レジスタ値、又は、関数そのものなどがあるが、何が入力値となるかはサブ機Ａ〜Ｆ能毎に予め決まっている。また、出力値には、変数、レジスタ値、真偽変数などがあり、何が出力値となるかはサブ機能Ａ〜Ｆ毎に予め決まっている。サブ機能Ａ〜Ｆは、入力値に基づきマップを参照して入力値に対応する出力値を読み出す処理、入力値に四則演算やシフト演算を行い出力値を生成する処理、入力値と閾値を比較して判定結果を出力値とする処理などを行う。
【００３４】
〔依存関係  定常状態の判定〕
全体制御部１１は、まずラッチ処理部１２を呼び出して、サブ機能Ａ〜Ｆの入力値をラッチさせる。ラッチされた入力値が今回入力値である。ラッチとは、収集や取得という意味である。ラッチ処理部１２には、予めサブ機能Ａ〜Ｆの入力値を全てがリストアップされている。ラッチ処理部１２は、サブ機能Ａ〜Ｆの入力値をＲＡＭから読み出したり、レジスタから読み出したりしてラッチする。これらは、不図示のセンサが検出したデータ、ＣＡＮ通信により受信したデータ、又は、ＤＣＭ（Data  Communication  Module）などが携帯電話網で受信したデータ等である。
【００３５】
サブ機能Ａ〜Ｆが例えば別のサブ機能の処理結果（出力値）を入力値とする場合があるが、その場合は、サブ機能Ａ〜Ｆが処理したタイミングで入力値を取得する。本実施形態では説明を簡単にするため、サブ機能Ａ〜Ｆが例えば別のサブ機能の処理結果を入力値とすることはないものとする。
【００３６】
ラッチ処理部１２は、リストアップされた全ての今回入力値をラッチすると全体制御部１１に返す。全体制御部１１は定常状態判定部１３を呼び出すと共に、全ての今回入力値を定常状態判定部１３に引数として渡す。
【００３７】
定常状態判定部１３は、前回値テーブル１６に登録されている前回入力値と今回入力値を比較することで、機能Ｉが定常状態か否かを判定する。定常状態か否かの判定の際、定常状態判定部１３は依存関係データ１５を参照し、依存関係のあるサブ機能グループ毎に定常状態か否かを判定する。
【００３８】
図５は前回値テーブル１６の一例を模式的に説明する図の一例である。前回値テーブル１６には、サブ機能毎に前回入力値と前回出力値が記録されている。定常状態判定部１３は、サブ機能毎に、今回入力値と前回入力値が一致するか否かを判定する。例えば、サブ機能Ａの入力値はａ１，ａ２の２つなので、定常状態判定部１３は今回入力値ａ１，ａ２と前回入力値ａ１，ａ２の両方が一致すると、入力値が一致すると判定する。
【００３９】
入力値は有効桁の全てで一致する必要はない。開発者等が、例えば、３桁の入力値のうち最小桁の値が出力値に大きな影響を与えないことが分かっている場合は入力値の上位２桁のみを比較すればよい。また、小数点以下の桁が出力値に大きな影響を与えないことが分かっている場合、整数桁のみを比較すればよい。このように、一致するか否かの判定基準を緩和することで、定常状態と判定されやすくなりマイコン１００の処理負荷を低減しやすくなる。
【００４０】
図６は、依存関係データ１５を模式的に説明する図の一例である。図６では各サブ機能がツリー状に接続されている。依存関係データ１５には、サブ機能間の依存関係が登録されている。依存関係には、処理の順番に制約がある処理依存や、他のサブ機能のデータを必要とするデータ依存がある。依存関係は固定なので、開発者等が予め依存関係を抽出し依存関係データ１５に登録しておくことができる。図６によれば、サブ機能Ｃはサブ機能Ｂと依存関係にあり、サブ機能Ｂはサブ機能Ａと依存関係にあり、サブ機能Ｄはサブ機能Ａと依存関係にある。
【００４１】
このような依存関係がある場合、仮にサブ機能Ｃの前回入力値と今回入力値が一致しても、サブ機能Ａ又はサブ機能Ｂの前回入力値と今回入力値が一致していない場合、サブ機能Ｃの処理結果に影響が生じるおそれがある。また、仮にサブ機能Ａの前回入力値と今回入力値が一致しても、サブ機能Ｂ又はサブ機能Ｃの前回入力値と今回入力値が一致していない場合、サブ機能Ａへの戻り値に影響が生じるおそれがある。そこで、本実施形態では、依存関係のある全てのサブ機能の前回入力値と今回入力値が一致した場合に、サブ機能グループが定常状態であると判定する。すなわち、サブ機能グループ毎に定常状態か否かを判定する。
【００４２】
図６の例では、１つのサブ機能グループはサブ機能Ａ〜Ｄ、もう１つのサブ機能グループはサブ機能Ｅ，Ｆである。依存関係が全くないサブ機能は１つだけで１つのサブ機能グループである。したがって、定常状態判定部１３は、サブ機能Ａ〜Ｄの前回入力値と今回入力値が全て一致するか否かを判定し、サブ機能Ｅ，Ｆの前回入力値と今回入力値が全て一致するか否かを判定する。
【００４３】
なお、図６のような機能ツリーが抽出された場合でも、例えば、上位のサブ機能Ａがサブ機能Ｂ〜Ｄの処理結果に影響を受けないことが確定していることがある。このような知見は開発者にとっては既知である。したがって、開発者等が、機能ツリーのうち一部の上位のサブ機能を特定しておくことで、定常状態判定部１３は、下位のサブ機能と切り離して前回入力値と今回入力値が一致するか否か（定常状態か否か）を判定することができる。この場合、一部の上位のサブ機能がサブ機能グループとなる。
【００４４】
なお、定常状態判定部１３は、前回入力値との比較に使用した今回入力値を、新たな前回入力値として前回値テーブル１６に登録する。これにより、前回値テーブル１６の前回入力値は最新の入力値に更新される。
【００４５】
定常状態判定部１３は、サブ機能グループ毎（又はサブ機能毎でもよい）に定常状態か否かの判定結果を全体制御部１１に通知する。全体制御部１１はサブ機能Ａ〜Ｆのうち、定常状態のサブ機能は実行しない。これにより、マイコン１００のＣＰＵ２３の処理負荷を低減できる。
【００４６】
そして、全体制御部１１は、定常状態と判定されたサブ機能の前回出力値を前回値テーブル１６から読み出す。また、全体制御部１１は、定常状態と判定されなかったサブ機能に今回入力値を渡すと共に実行し、各サブ機能の今回出力値を各サブ機能から取得する。そして、前回値テーブル１６の前回出力値をサブ機能が出力した今回出力値にて更新する。こうすることで、前回値テーブル１６の前回出力値も、最新の出力値を維持することができる。
【００４７】
〔動作手順〕
図７は、マイコン１００が機能Ｉを実行する動作手順を示すフローチャート図の一例である。図７の手順は例えば定期的に繰り返し実行される。機能Ｉではまず全体制御部１１が実行される。全体制御部１１はラッチ処理部１２を呼び出す。これによりラッチ処理部１２は機能Ｉに必要な全ての入力値をラッチする（Ｓ１０）。ラッチ処理部１２はラッチした全ての今回入力値を全体制御部１１に返す。
【００４８】
全体制御部１１は今回入力値を引数に定常状態判定部１３を呼び出す。これにより、定常状態判定部１３は依存関係データ１５を参照して、サブ機能グループ単位で定常状態か否かを判定する（Ｓ２０）。ここでは、例えば、サブ機能Ｅ，Ｆのサブ機能グループが定常状態であり、サブ機能Ａ〜Ｄのサブ機能グループは定常状態でなかったとする。
【００４９】
そして、全体制御部１１は、定常状態でないと判定されたサブ機能グループのサブ機能Ａ〜Ｄを順次、実行する。すなわち、サブ機能Ａの今回入力値を引数にサブ機能Ａを呼び出し、サブ機能Ａを実行する（Ｓ３０）。サブ機能Ａは今回出力値を全体制御部１１に返す。
【００５０】
次に、サブ機能Ｂの今回入力値を引数にサブ機能Ｂを呼び出し、サブ機能Ｂを実行する（Ｓ４０）。サブ機能Ｂは今回出力値を全体制御部１１に返す。
【００５１】
次に、サブ機能Ｃの今回入力値を引数にサブ機能Ｃを呼び出し、サブ機能Ｃを実行する（Ｓ５０）。サブ機能Ｃは今回出力値を全体制御部１１に返す。
【００５２】
次に、サブ機能Ｄの今回入力値を引数にサブ機能Ｄを呼び出し、サブ機能Ｄを実行する（Ｓ６０）。サブ機能Ｄは今回出力値を全体制御部１１に返す。
【００５３】
そして、全体制御部１１は、本来はサブ機能Ｅ，Ｆを実行するタイミングでも、サブ機能Ｅ，Ｆの実行を省略する（Ｓ７０，Ｓ８０）。全体制御部１１は定常状態判定部１３の判定結果に基づき、前回値テーブル１６からサブ機能Ｅ，Ｆの前回出力値を読み出し、サブ機能Ｅ，Ｆの出力値として採用する。具体的には、サブ機能Ｅ，Ｆの出力値で制御するアクチュエータ等があれば制御し、サブ機能Ｅ，Ｆが出力値で直接、アクチュエータ等を制御するのであれば、サブ機能Ｅ，Ｆに出力値を渡す（この場合もサブ機能Ｅ，Ｆが演算を実行することはない）。また、別のサブ機能にサブ機能Ｅ，Ｆの前回出力値を渡してもよい。これにより、マイコン１００のＣＰＵ２３の負荷を低減できる。
【００５４】
以上説明したように、本実施例のマイコン１００は、定常状態の機能を実行するＣＰＵ２３の処理負荷を低減できるのでマイコン１００やＣＰＵ２３の仕様のダウンを可能にできる。また、ＣＰＵ２３の消費電力も低下するので、燃費向上・発熱抑制が図られ、ＥＣＵ２００の放熱性能の仕様をダウンすることが可能になる。
【実施例２】
【００５５】
実施例１では、定常状態のサブ機能を実行しないことで処理負荷を低減したが、定常状態か否かを判定する処理が必要になった。このため、定常状態でないと判定されたサブ機能については、定常状態か否かの判定処理の分だけ従来よりも処理量が多くなってしまっている。そこで、本実施例では、サブ機能の定常状態頻度を学習し、定常状態になりにくいサブ機能は定常状態か否かを判定対象から除外するマイコン１００について説明する。
【００５６】
図８は、本実施例のマイコン１００の機能ブロック図の一例を示す。図８において図３と同一部には同一の符号を付しその説明は省略する。本実施例の機能Ｉは、新たに定常状態判定結果テーブル１７を有している。定常状態判定結果テーブル１７は、過去に定常状態であると判定された回数が登録されたテーブルである。
【００５７】
図９（ａ）は定常状態判定結果テーブル１７の一例を示す。定常状態判定結果テーブル１７にはサブ機能毎に判定機会、定常判定回数、及び、非定常判定回数が登録されている。判定機会は、サブ機能Ａ〜Ｆが定常状態か否かが判定された機会の回数である。図では判定機会は等しく100回となっている。
【００５８】
実施例１では図７のフローチャート図に示したように、機能Ｉが実行されるとサブ機能Ａ〜Ｆが全て実行されるので、サブ機能Ａ〜Ｆは全て定常状態か否かが判定されていた。本実施例では、以下の場合に定常状態か否かを判定する。
（i）判定機会が十分に大きな数になるまでは、マイコン１００の処理負荷が所定以下の場合に限り、サブ機能グループが定常状態か否かを判定する
（ii）判定機会が十分に大きな数になった後、省略実施確率が閾値以上のサブ機能グループのみ定常状態か否かを判定する。省略実施確率が閾値未満のサブ機能グループは定常状態か否かの判定対象から除外する。
（iii）判定機会が十分に大きな数になった後、マイコン１００の処理負荷が所定以下の場合に限り、省略実施確率が閾値未満のサブ機能グループが定常状態か否かを判定する
なお、マイコン１００の処理負荷は、例えばＣＰＵ負荷率としマイコン１００のＯＳ等から提供される。ＣＰＵ負荷率は例えば、単位時間からアイドルタスクの実行時間を減じた値を単位時間で除することで求められる。
【００５９】
定常判定回数は、定常状態であると判定された回数であり、非定常判定回数は、定常状態でないと判定された回数である。したがって、判定機会＝定常判定回数＋非定常判定回数という関係がある。なお、定常状態か否かはサブ機能グループ毎に判定されるので、同じサブ機能グループのサブ機能は定常判定回数が同じになる。
【００６０】
定常状態判定部１３は、定常状態か否かを判定する毎に判定機会を１つ増やし、定常状態であると判定すれば定常判定回数を１つ増やし、定常状態でないと判定すれば非定常判定回数を１つ増やす。
【００６１】
また、定常状態判定部１３は、判定機会が十分に大きな数になると、マイコン１００の処理負荷が大きくない時に、省略実施確率を算出する。
省略実施確率＝１００×定常判定回数／判定機会
図の例ではサブ機能Ａ〜Ｄの省略実施確率は７０％であり、サブ機能Ｅ，Ｆの省略実施確率は３０％である。そして、定常状態判定部１３は、省略実施確率を閾値と比較して、比較結果に応じた定常状態判定省略フラグを保持しておく。図９（ｂ）は定常状態判定省略フラグを示す図の一例である。定常状態判定省略フラグ“１”は定常状態の判定を省略することを、定常状態判定省略フラグ“０”は定常状態の判定を行うことを示す。
【００６２】
例えば、省略実施確率が５０％未満のサブ機能は、２回に１回は実行されることになるので、定常状態か否かの判定が処理負荷を増大させるおそれがある。開発者等は、定常判定がどのくらいの負荷となるかということと、実行省略時の負荷低減とを考量し、閾値を決定する。
【００６３】
定常状態判定部１３は、省略実施確率が閾値未満の場合、そのサブ機能の定常状態判定省略フラグを“１”にして保持しておく。そして、定常状態判定省略フラグが“１”のサブ機能については、定常状態の判定を省略する。この結果、全体制御部１１は、定常状態判定省略フラグが“１”のサブ機能は必ず実行する。
【００６４】
なお、上記(iii)に記載したように、定常状態判定省略フラグが“１”となった後も、定常状態判定部１３はマイコン１００の処理負荷が低い時に、定常状態か否かを判定することで、定常判定回数及び非定常判定回数を更新する。これにより、定常判定回数が大きくなったサブ機能の定常状態判定省略フラグは“０”となり、定常判定の対象とすることができる。
【００６５】
図１０は、本実施例の定常状態判定部１３の処理を説明するフローチャート図の一例である。全体的な動作手順は図７と同様であり、図１０は図７のステップＳ２０の処理手順を示す。図１０の処理は、全体制御部１１が今回入力値を引数に定常状態判定部１３を呼び出すことでスタートする。
【００６６】
まず、定常状態判定部１３は判定機会が十分に大きいか否かを判定する（Ｓ２０１）。判定機会が十分に大きい場合（Ｓ２０１のＹｅｓ）、処理はステップＳ２０６に進む。    
判定機会が十分に大きくない場合（Ｓ２０１のＮｏ）、定常状態判定部１３はマイコンの処理負荷が低いか否かを判定する（Ｓ２０２）。マイコンの処理負荷が低くない場合（Ｓ２０２のＮｏ）、定常状態か否かを判定すると処理負荷がさらに高くなってしまうので、定常状態判定部１３は全てのサブ機能が定常状態でないと判定する（Ｓ２０３）。判定結果を全体制御部１１に返す。この場合、全体制御部１１は全てのサブ機能を実行する。
【００６７】
マイコンの処理負荷が低い場合（Ｓ２０２のＹｅｓ）、定常状態判定部１３は各サブ機能が定常状態か否かを判定する（Ｓ２０４）。これにより判定機会を増大させることができる。
【００６８】
定常状態判定部１３は定常状態判定結果テーブル１７を更新して、全体制御部に判定結果を返す（Ｓ２０５）。この場合、全体制御部１１は定常状態でないと判定されたサブ機能のみを実行する。
【００６９】
判定機会が十分に大きい場合（Ｓ２０１のＹｅｓ）、定常状態判定部１３は定常状態判定省略フラグを読み出す（Ｓ２０６）。
【００７０】
そして、サブ機能グループに定常状態判定省略フラグが“１”のサブ機能があるか否かを判定する（Ｓ２０７）。サブ機能グループ毎に判定するのは、定常状態か否かはサブ機能グループ単位で判定されるためである。つまり、１つのサブ機能について定常状態か否かを判定しない場合、そのサブ機能グループが定常状態と判定されることがないためである。なお、同じサブ機能グループのサブ機能の定常状態判定省略フラグは同じ状態になると考えられる。
【００７１】
サブ機能グループに定常状態判定省略フラグが“１”のサブ機能がある場合（Ｓ２０７のＹｅｓ）、定常状態判定部１３は、定常状態判定省略フラグが“１”のサブ機能を含むサブ機能グループについて定常状態か否か判定しない（Ｓ２０８）。これにより、例えばサブ機能Ｅ，Ｆの定常判定を省略できる。また、全体制御部１１はサブ機能Ｅ，Ｆを必ず実行する。
【００７２】
サブ機能グループに定常状態判定省略フラグが“１”のサブ機能がない場合（Ｓ２０７のＮｏ）、定常状態判定部１３は、サブ機能グループの各サブ機能について定常状態か否か判定する（Ｓ２０９）。これにより、全体制御部１１は定常状態か否かの判定結果に基づきサブ機能の実行を省略できる。ステップＳ２０８の前にマイコンの処理負荷が低いか否かを判定し、処理負荷が低い場合にのみ定常状態か否かを判定してもよい。
【００７３】
次に、定常状態判定部１３は、マイコン１００の処理負荷が閾値より低いか否かを判定する（Ｓ２１０）。
【００７４】
そして、マイコン１００の処理負荷が低い場合にのみ（Ｓ２１０のＹｅｓ）、定常状態判定部１３は、定常状態か否か判定しなかったサブ機能について定常状態か否かを判定する（Ｓ２１１）。こうすることで、マイコン１００の処理負荷を増大させることなく、サブ機能の判定機会を増やすことができる。
【００７５】
マイコン１００の処理負荷が低くない場合（Ｓ２１０のＮｏ）、定常状態判定部１３は定常状態判定結果テーブルを更新する（Ｓ２１２）。すなわち、定常状態判定結果テーブル１７の判定機会、定常判定回数及び非定常判定回数を更新し、省略実施確率を算出して閾値と比較することで定常状態判定省略フラグを更新する。こうすることで、次回、定常状態判定部１３が呼び出された場合、最新の定常状態判定省略フラグに基づき定常判定を行うか否かを判定できる。
【００７６】
以上説明したように、本実施例のマイコン１００は、実施例１と同様の効果に加え、定常状態の機能を実行するＣＰＵの処理負荷を低減できる。また、定常状態になりにくい機能については定常状態化否かの判定を省略するので、さらに処理負荷を低減できる。
【符号の説明】
【００７７】
１１    全体制御部
１２    ラッチ処理部
１３    定常状態判定部
１４    サブ機能
１５    依存関係データ
１６    前回値テーブル
１００  マイコン
２００  ＥＣＵ
【図１】
2013161362.tif 000003
【図２】
2013161362.tif 000004
【図３】
2013161362.tif 000005
【図４】
2013161362.tif 000006
【図５】
2013161362.tif 000007
【図６】
2013161362.tif 000008
【図７】
2013161362.tif 000009
【図８】
2013161362.tif 000010
【図９】
2013161362.tif 000011
【図１０】
2013161362.tif 000012