(57)【要約】      （修正有）【課題】優先度の低い機能が追加された場合でも、高優先の機能の書き込みのタイミングを確保可能な電子制御装置を提供する。【解決手段】予め優先度が定められた複数のプログラムが記憶されたプログラム記憶手段と、プログラムを実行する演算手段と、演算手段に実行された複数のプログラムが共通にアクセスする記憶手段と、を有する電子制御装置であって、優先度が所定値以上のプログラムが、書き込み時間の期待値と同等の時間又は書き込み間隔の期待値と同等の間隔で、記憶装置へ書き込みできるように書き込み制御を行う書き込み制御手段を有し、書き込み制御手段は、所定値以上の優先度の第１のプログラムよりも優先度が低い第２のプログラムの書き込みにより、前記第１のプログラムの前記記憶装置への書き込み時間又は書き込み間隔が、期待値に対してずれた場合、第２のプログラムの書き込み制限を行う。【選択図】図２
2013161242.tif 000002
【特許請求の範囲】
【請求項１】
予め優先度が定められた複数のプログラムが記憶されたプログラム記憶手段と、
前記プログラムを実行する演算手段と、
前記演算手段により実行された複数の前記プログラムが共通にアクセスする記憶手段と、を有する電子制御装置であって、
前記プログラムから書き込み要求を受け付けた場合、優先度が所定値以上の前記プログラムが、書き込み時間の期待値と同等の時間又は書き込み間隔の期待値と同等の間隔で、前記記憶装置へ書き込みできるように書き込み制御を行う書き込み制御手段、を有し、
前記書き込み制御手段は、書き込み制御を行った後に、前記所定値以上の優先度の第１のプログラムよりも優先度が低い第２のプログラムの書き込みにより、前記第１のプログラムの前記記憶装置への書き込み時間又は書き込み間隔が、前記期待値に対してずれた場合、前記第２のプログラムの書き込み制限を行う、
ことを特徴とする電子制御装置。
【請求項２】
前記書き込み制御手段は、前記第２のプログラムが書き込み要求した時に、前記第１のプログラムの書き込み要求がなくても、前記第２のプログラムの書き込み要求を待機させ、
前記第１のプログラムの書き込み要求に対するデータの書き込みが完了した後に、待機させていた前記第２のプログラムの書き込み要求に基づきデータの書き込みを開始する
ことを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記書き込み制御手段は、前記第２のプログラムの優先度を予め定められている優先度よりも小さくすることで、前記第２のプログラムの書き込み制限を行う、
ことを特徴とする請求項１記載の電子制御装置。
【請求項４】
前記第１のプログラムの前記記憶手段への書き込み時間又は書き込み間隔の前記期待値が予め登録されている期待値テーブルを有する、
ことを特徴とする請求項１〜３いずれか１項記載の電子制御装置。
【請求項５】
前記プログラムの前記書き込み制御手段への書き込み要求から、前記書き込み制御手段が書き込み完了するまでの書き込み時間、及び、前回の前記プログラムの前記書き込み制御手段への書き込み要求と今回の前記プログラムの前記書き込み制御手段への書き込み要求との書き込み間隔を学習して、プログラム毎に書き込み時間及び書き込み間隔を期待値テーブルに登録する学習手段、
を有することを特徴とする請求項１〜３いずれか１項記載の電子制御装置。
【請求項６】
前記書き込み制御手段は、前記第２のプログラムの書き込み制限を行った後に、前記第２のプログラムの書き込みにより、前記第１のプログラムの書き込み時間又は書き込み間隔が、前記期待値に対してずれた場合、前記第２のプログラムの優先度を予め定められている優先度よりも小さくすることで前記第２のプログラムの書き込み制限を行う、
ことを特徴とする請求項２記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムが共通の記憶装置にデータを書き込む電子制御装置に関する。
【背景技術】
【０００２】
情報処理装置では、独立したタスクやシステムが１つの記憶装置にメモリアクセスすることが少なくない。このような情報処理装置には、タスクやシステムに優先度を設定し、低優先のタスクやシステムが高優先のタスクやシステムのメモリアクセスを阻害しないような調停機構が設けられる場合がある（例えば、特許文献１参照。）。特許文献１には、優先度の高いタスクやシステムのメモリアクセス要求の間隔に、優先度の低いタスクやシステムのメモリアクセス要求を実行可能か否か判定し、可能でない場合には高優先度のメモリアクセスを要求するメモリ制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−３４２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されたメモリ制御装置では、新たに低優先度のタスクやシステムが追加された場合について考慮されていないという問題がある。
【０００５】
情報処理装置では、例えばユーザやメーカがタスクやシステムを新たに追加することで利便性を向上させたいというニーズがある。しかし、新たに追加されるタスクやシステムの数が多くなったり、記憶装置へのアクセスが多いタスクやシステムが追加されると、高優先度のタスクやシステムのメモリアクセスを阻害するおそれがある。
【０００６】
図１は、低優先度のアプリによる高優先度のアプリの書き込みタイミングの遅れを説明する図の一例である。なお、図のドライバとは、記憶装置がメモリカードであればメモリカードＩ／Ｆのデバイスドライバ、記憶装置がフラッシュメモリやＲＡＭであればＯＳ（Operating  System）のファイルシステムなどである。
【０００７】
ＡＳＩＬ−Ａのアプリ１の優先度は、ＡＳＩＬ−ＱＭのアプリ２、３の優先度よりも高くなっている。従来技術によれば、予め搭載されているアプリ２がアプリ１のアクセスを阻害しない範囲でアプリ２のメモリアクセスが許可される。
【０００８】
しかし、ＡＳＩＬ−ＱＭのアプリ３が新たに追加された場合、ＡＳＩＬ−Ａのアプリ１の書き込み要求と、ＡＳＩＬ−ＱＭのアプリ３の書き込み要求が調停されない場合が生じうる。
【０００９】
Ａ．図示するように、ＡＳＩＬ−ＱＭのアプリ３が、ＡＳＩＬ−Ａのアプリ１が書き込み要求する直前に書き込み要求した場合、ＡＳＩＬ−ＱＭのアプリ３は書き込みを開始してしまう。
【００１０】
Ｂ．ＡＳＩＬ−ＱＭのアプリ３の書き込みが完了するまで、ＡＳＩＬ−Ａのアプリ１の書き込みが待たされてしまう。ＡＳＩＬ−Ａのアプリ１の書き込みが完了する前に、システム異常や電源電圧の低下等が生じると、結果的に、ＡＳＩＬ−Ａのアプリ１は書き込みできない。ＡＳＩＬ−Ａのアプリ１が重要なデータをバックアップするような場合、その重要なデータが消失されてしまう。
【００１１】
Ｃ．ＡＳＩＬ−ＱＭのアプリ３の書き込みが完了すると、ＡＳＩＬ−Ａのアプリ１が書き込むことができる。
【００１２】
したがって、低優先度のタスクやシステムが追加されることを考慮すると、低優先度のタスクやシステムが追加された場合でも、高優先度のタスクやシステムのメモリアクセスタイミングが保証されることが好ましい。
【００１３】
本発明は、上記課題に鑑み、優先度の低い機能が追加された場合でも、高優先の機能の書き込みのタイミングを確保可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、予め優先度が定められた複数のプログラムが記憶されたプログラム記憶手段と、前記プログラムを実行する演算手段と、前記演算手段に実行された複数の前記プログラムが共通にアクセスする記憶手段と、を有する電子制御装置であって、前記プログラムから書き込み要求を受け付けた場合、優先度が所定値以上の前記プログラムが、書き込み時間の期待値と同等の時間又は書き込み間隔の期待値と同等の間隔で、前記記憶装置へ書き込みできるように書き込み制御を行う書き込み制御手段、を有し、前記書き込み制御手段（例えば、書き込み制御部３４，アプリ動作制御部３１）は、前記所定値以上の優先度の第１のプログラムよりも優先度が低い第２のプログラムの書き込みにより、前記第１のプログラムの前記記憶装置への書き込み時間又は書き込み間隔が、前記期待値に対してずれた場合、前記第２のプログラムの書き込み制限を行う、ことを特徴とする。
【発明の効果】
【００１５】
優先度の低い機能が追加された場合でも、高優先の機能の書き込みのタイミングを確保可能な電子制御装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】低優先度のアプリによる高優先度のアプリの書き込みタイミングの遅れを説明する図の一例である。
【図２】電子制御装置によるデータ書き込み制御の概略を説明する図の一例である。
【図３】電子制御装置のハードウェア構成図の一例である。
【図４】電子制御装置の機能ブロック図の一例である。
【図５】書き込み時間と書き込み間隔を説明する図の一例である。
【図６】アプリ１の書き込み時間ＴＡのずれを説明する図の一例である。
【図７】アプリ３の書き込み頻度の増加等を説明する図の一例である。
【図８】電子制御装置が、電子制御装置に搭載された複数のアプリの記憶装置への書き込みを制御する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を参照しながら説明する。
図２は、本実施形態の電子制御装置によるデータ書き込み制御の概略を説明する図の一例である。
（Ｓ１０）電子制御装置は、各アプリが記憶装置にデータを書き込む書き込み時間及び書き込み間隔を監視している。電子制御装置は、全アプリについて、新たにアプリが追加される（インストールされる）前の書き込み時間及び書き込み間隔それぞれの正常値（特許請求の範囲の期待値）を学習するか、又は、予め記憶している。
（Ｓ２０）電子制御装置は、低優先のアプリが高優先のアプリの書き込みを待機させないように低優先のアプリの書き込みタイミングを最適化する。
（Ｓ３０）電子制御装置は、高優先のアプリの書き込み時間や書き込み間隔が正常値に対してずれたか否かを判定する。ＣＰＵやバスが高負荷になると、高優先のアプリの書き込み時間や書き込み間隔の上昇が生じやすくなる。
（Ｓ４０）高優先のアプリの書き込み時間や書き込み間隔が正常値に対しずれた場合、電子制御装置は、書き込み時間や書き込み間隔の上昇の原因が低優先のアプリの書き込みによるか否かを判定する。これは書き込み要求したアプリを監視することで検出される。
（Ｓ５０）原因が低優先のアプリの場合、電子制御装置は、低優先のアプリの書き込み制限を行う。
【００１８】
高優先のアプリの書き込みは本来、低優先のアプリよりも優先されるので、高優先のアプリの書き込み時間や書き込み間隔が正常値に対してずれることは少ない。高優先のアプリの書き込み時間や書き込み間隔が正常値に対してずれた場合、例えば低優先のアプリが追加されたことが一因となりうる。そこで、本実施形態の電子制御装置は、原因が低優先のアプリの書き込みである場合、ステップＳ５０に示すように、低優先のアプリの書き込み制限を行う。これにより、低優先のアプリが追加された場合でも、高優先のアプリの書き込み時間や書き込み間隔が大きくなることを抑制することができる。
【００１９】
〔構成例〕
図３は、電子制御装置１００のハードウェア構成図の一例を示す。図では電子制御装置１００のうち主にマイコン部分を示している。電子制御装置１００は、図示する以外に電源回路、センサ・アクチュエータ等とのインタフェースを有している。
【００２０】
マイコンは、互いにバス１８で接続された、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、グラフィック回路１４、フラッシュメモリ１５、メモリカードＩ／Ｆ１６、及び、通信装置１７を有する。
【００２１】
ＣＰＵ１１は、ＲＯＭ１３に記憶されたプログラム３６を実行してマイコンの全体の動作を制御する。ＲＯＭ１３には、複数のプログラム３６、ＯＳ（Operating  System）、デバイスドライバ、ミドルウェアなどが記憶されている。プログラム３６は、いくつかの独立したアプリが含まれている。独立しているため、各アプリはタイマによりそれぞれが定期的に実行されたり、各種の割込みにより実行される。ＲＡＭ１２は、ＣＰＵ１１がプログラムを実行する際のワークエリアとして使用される。
【００２２】
グラフィック回路１４はディスプレイ２１の描画を制御する。ＣＰＵ１１がプログラムを実行してＲＡＭ（ビデオＲＡＭ）１２に書き込んだ描画コマンドを解釈してディスプレイ２１に画面データ（メニュー、カーソル、文字又は画像などの各種情報）を表示する。ディスプレイ２１には一体にタッチパネルが配置されており、これと周囲のハードキーによりユーザ操作を受け付ける。
【００２３】
フラッシュメモリ１５は不揮発メモリであり、道路地図データ、画像データや音楽データなどのユーザデータを記憶することができる。また、フラッシュメモリ１５には、新たに追加されるプログラムが記憶される。フラッシュメモリ１５は不揮発メモリであればよく、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などでもよい。
【００２４】
メモリカードＩ／Ｆ１６は、ＳＤメモリカード、ＵＳＢメモリカードなどのメモリカード２２を装着するためのインタフェースである。メモリカードＩ／Ｆ１６は、ＣＰＵ１１が指示したＲＡＭ等のデータをメモリカード２２に記憶し、また、メモリカード２２に記憶されたデータを読み出してＲＡＭ等に転送する。
【００２５】
通信装置１７は車載ネットワークに接続して他の電子制御装置と通信する。車載ネットワークは例えばＣＡＮプロトコルを利用したものである。車載ネットワークにはＤＣＭ（Ｄａｔａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｍｏｄｕｌｅ）２３が接続されている。ＤＣＭは携帯電話網、無線ＬＡＮのアクセスポイント、又は、ＷｉＭＡＸ網などにアクセスして外部のサーバなどと通信する。
【００２６】
このマイコンは車両に搭載され、例えば車両のナビゲーションシステム用の電子制御装置や車両制御用の電子制御装置に用いられることができる。ナビゲーションシステム用の電子制御装置の場合、ＧＮＳＳ（Global  Navigation  Satellite  Systems）、車速センサ、及び、ヨーレートセンサ等と通信し自車位置を特定するなどの処理を行う。また、車両制御用の電子制御装置の場合、例えば障害物とのＴＴＣ（Ｔｉｍｅ  Ｔｏ  Ｃｏｌｌｉｔｉｏｎ）に応じて警告・制動などを行ったり、モータによりステアリング操作を支援したり、エンジンやブレーキを制御したりする。
【００２７】
フラッシュメモリ１５に記憶される追加されたプログラムは、例えばメモリカード２２に記憶された状態で配布される。また、不図示のサーバに記憶されておりＤＣＭ２３がダウンロードすることで配布される。プログラムの追加は、ユーザがディスプレイ２１のタッチパネルなどを操作した場合、サーバ側が車両のプログラムを更新する場合などに行われる。
【００２８】
〔アプリのデータ書き込み要求〕
図４は、電子制御装置１００の機能ブロック図の一例を示す。電子制御装置１００は、少なくとも優先度の異なる２つのアプリを実行している。本実施形態ではＡＳＩＬ−Ａのアプリ１、及び、ＡＳＩＬ−ＱＭのアプリ２，３とが実行される。アプリ１，２は車両の出荷時に電子制御装置１００に搭載されていたアプリであり、アプリ３は車両の出荷後に電子制御装置１００に追加されたアプリである。
【００２９】
例えば、ＡＳＩＬ−Ａのアプリ１は、車両の位置情報、車速、加速度、操舵角などの車両情報を定期的にＲＡＭ１２、フラッシュメモリ１５又はメモリカード２２（以下、単に記憶装置３５という場合がある）に記憶する。また、ＡＳＩＬ−ＱＭのアプリ２はドアロック解除、信号待ち、急制動などのイベントの発生した時刻を記憶装置３５に記憶する。ＡＳＩＬ−ＱＭのアプリ３は、例えば動作記録などを記憶装置３５に記憶する。アプリ２、３の書き込みは定期的でも定期的でなくてもよい。情報の重要性はどのアプリが記憶するかにより変わりうるものである。
【００３０】
ＡＳＩＬ−ＱＭのアプリ３が記憶装置３５に書き込んでいる間に、ＡＳＩＬ−Ａのアプリ１が書き込み要求すると書き込みタイミングが重複してしまい、ＡＳＩＬ−Ａのアプリ１が書き込みを待たされる状況が生じうる。
【００３１】
〔書込制御〕
電子制御装置１００は、アプリ動作制御部３１、監視部３２、学習部３３、及び、書き込み制御部３４を有する。
（１）学習部、監視部
本実施形態では、学習部３３が書込み時間・書き込み間隔を予め有している場合とそうでない場合がある。
【００３２】
図５（ａ）は書き込み時間と書き込み間隔を説明する図の一例である。記憶装置３５に定期的にデータを書き込むアプリ１がある。また、定期的に書き込むか否かの影響をあまり受けずに同じアプリが記憶装置３５にデータを書き込むために必要な時間はほぼ一定であることが多い。図示するように、アプリ１、２が書き込み開始した時刻から書き込みを終了した時刻までが書き込み時間Ｔ１、アプリ１、２が書き込み開始した時刻から、次に書き込みを開始するまでの時間が書き込み間隔ＴＢである。アプリ３については、追加された後に書き込みするので図では省略している。
【００３３】
車両の出荷時から電子制御装置１００に搭載されているアプリ１，２の場合、書き込み時間ＴＡ・書き込み間隔ＴＢは既知であることが多いので、学習部３３の時間・間隔テーブル３７には書き込み時間ＴＡ・書き込み間隔ＴＢが登録されている。また、出荷時から電子制御装置１００に搭載されているが書き込み時間ＴＡ・書き込み間隔ＴＢが登録されていないアプリについて、学習部３３は書き込み時間ＴＡ・書き込み間隔ＴＢを学習する。なお、出荷後に電子制御装置１００に追加されるアプリ３についても、書き込み時間ＴＡ・書き込み間隔ＴＢがアプリ本体と共に与えられることは可能である。
【００３４】
学習部３３が、書き込み時間ＴＡ・書き込み間隔ＴＢを学習する方法にはＯＳなどのシステムを利用する。アプリ１，２は記憶装置３５にアクセスする場合（書き込み、読み出し）、書き込み制御部３４にファイル名やアドレス、サイズを指定して書き込み・読み出しを要求する。書き込み制御部３４は、書き込み要求又は読み出し要求を受け付け、呼び出されたアプリを識別して、アプリ１〜３のデータ領域にアクセスする。アプリ１〜３のデータ領域は、書き込み制御部３４がアプリ１〜３の起動時に確保している。必ずしも連続した領域である必要はない。
【００３５】
書き込み制御部３４は、各アプリの識別情報と共に、アプリの書き込み要求と、その書き込み要求に基づく書き込みが完了したことを学習部３３に通知する。学習部３３は、書き込み要求の通知を書き込み開始時刻、書き込み完了の通知を書き込み終了時刻として、書き込み時間ＴＡ・書き込み間隔ＴＢを記録する（収集する）。
【００３６】
学習部３３は、例えば、書き込み時間ＴＡ・書き込み間隔ＴＢをそれぞれ１０〜１００回程度記録すると、例えば標準偏差を求め、書き込み時間ＴＡ・書き込み間隔ＴＢが大きくばらついていない場合に（例えば、書き込み時間Ｔ１・書き込み間隔ＴＢのそれぞれ平均に対し１０％未満）、書き込み時間ＴＡ・書き込み間隔ＴＢを学習したものとする。また、学習部３３は、各アプリに標準偏差を対応づけて記憶する。書き込み時間ＴＡ・書き込み間隔ＴＢが大きくばらついた場合、学習を繰り返す。
【００３７】
図５（ｂ）は時間・間隔テーブル３７に登録された、書き込み時間ＴＡと書き込み間隔ＴＢを説明する図の一例である。アプリ毎に書き込み時間ＴＡ、書き込み時間ＴＡの標準偏差σＡ、書き込み間隔ＴＢ、及び、書き込み時間ＴＢの標準偏差σＢが登録されている。以下、時間・間隔テーブル３７に登録されている書き込み時間ＴＡと書き込み間隔ＴＢを正常値という。正常値は、電子制御装置１００にアプリが追加される前に求められている。
【００３８】
出荷後に電子制御装置１００に追加されるアプリ３についても、学習部３３が書き込み時間ＴＡ・書き込み間隔ＴＢを学習する。アプリ３についても、同様の手順で学習部３３は書き込み時間ＴＡ・書き込み間隔ＴＢを学習できる。ＯＳなどのシステム側の機能を利用することで、出荷後に追加されたアプリ３の、書き込み時間ＴＡ・書き込み間隔ＴＢを学習することが容易になる（アプリ側に書き込み時間ＴＡ・書き込み間隔ＴＢを学習する機能が不要になる）。
【００３９】
図４に戻り、監視部３２は、ＣＰＵ１１、バス１８の負荷を監視する。負荷の監視方法は、種々あるが、本実施形態では、時間・間隔テーブル３７の正常値に対し、アプリ１の書き込み時間ＴＡと書き込み間隔ＴＢを比較することで監視する。ＣＰＵ１１、バス１８の負荷が増大すると、実際の書き込み時間ＴＡ・書き込み間隔ＴＢが正常値からずれることが多い。このずれには、書き込み時間ＴＡが長くなること、短くなること、又は、書き込み間隔ＴＢが長くなること、短くなることがあり得るが、多くの場合、書き込み時間ＴＡ・書き込み間隔ＴＢが正常値よりも長くなる。
【００４０】
また、高優先のアプリ１の書き込み時間ＴＡ・書き込み間隔ＴＢが正常値からずれる原因の一つは、別のアプリ２，３が記憶装置３５に書き込むことが多くなったためである。すでに搭載されているアプリ２の書き込み頻度が急に大きくなることは少なく、新たに追加されたアプリ３の書き込みが原因である場合が多い。このため、監視部３２はアプリ１の書き込み時間ＴＡ・書き込み間隔ＴＢが正常値からずれた場合に、アプリ３が追加されたと推定する。
【００４１】
図６（ａ）はアプリ１の書き込み時間ＴＡのずれを説明する図の一例である。アプリ１の書き込み開始の時、すでにアプリ３が記憶装置３５に書き込みを開始している。このため、アプリ１は、アプリ３が書き込みを完了するまで待機し、書き込み時間ＴＡが正常値よりも長くなる。監視部３２は、このようにアプリ１の正常値と書き込み時間ＴＡを比較して、アプリ１の書き込み時間ＴＡがずれたことを検出する。書き込み間隔ＴＢについても同様である。
【００４２】
監視部３２は書き込み時間ＴＡ・書き込み間隔ＴＢのばらつきを考慮して例えば、以下の少なくとも一方が成立する場合に、ＣＰＵ１１、バス１８の負荷が増大したと判定する。書き込み時間ＴＡ又は書き込み間隔ＴＢのいずれか一方のみに着目してもよいし、書き込み時間ＴＡと書き込み間隔ＴＢの両方がずれることを条件としてもよい。
書き込み時間ＴＡ＞正常値＋２σＡ
書き込み間隔ＴＢ＞正常値＋２σＢ
標準偏差σを２倍するのは、書き込み時間ＴＡ・書き込み間隔ＴＢが最大にばらついた場合を考慮するためである。「書き込み時間ＴＡ＞正常値＋σＡ」又は「書き込み時間ＴＡ＞正常値」を用いてもよい。
【００４３】
また、書き込み時間ＴＡ・書き込み間隔ＴＢが小さくなる方向にずれた場合は、以下を判定する。
書き込み時間ＴＡ＜正常値−２σＡ
書き込み間隔ＴＢ＜正常値−２σＢ
（２）書き込み制御部
まず、書き込み制御部３４は、予め搭載されているアプリ１とアプリ２については、アプリ２の方が先に書き込み要求しても、アプリ１の書き込みを阻害することがないよう、アプリ２の書き込みを制限している。具体的には、アプリ２の書き込み時間ＴＡ、アプリ１の書き込み間隔ＴＢは時間・間隔テーブル３７に登録されている。書き込み制御部３４はアプリ２が書き込み開始してから完了するまでに、アプリ１が書き込み開始するか否かを判定し、アプリ１が書き込み開始する場合はアプリ２の書き込みを待機させ、アプリ１の書き込みを優先する。
【００４４】
したがって、監視部３２が、ＣＰＵ１１、バス１８の負荷が増大したと判定した場合（実際の書き込み時間ＴＡ・書き込み間隔ＴＢが正常値からずれた場合）、追加された低優先のアプリ３の書き込みに起因する可能性が高い。一方、ＣＰＵ１１、バス１８の負荷が増大することは、アプリ３の書き込み以外にも原因がある場合があるので、書き込み制御部３４は低優先のアプリ２又はアプリ３の書き込みがアプリ１の書き込みを阻害したことを検出する。アプリ２が含まれるのは、アプリ３の追加によりアプリ２がアプリ１の書き込みを阻害する場合も想定されるためである。
【００４５】
また、実際に書き込み時間ＴＡが正常値に対してずれたことを検出する前に、ＣＰＵ１１、バス１８の負荷が増大したことを検出することもできる。アプリ３が書き込み制御部３４に書き込み要求した場合、書き込み制御部３４はアプリ３の書き込み中にアプリ１が書き込み要求するか否かを判定する。アプリ１の書き込み開始は、前回のアプリ１の書き込み開始から書き込み間隔ＴＢが経過した時である。
【００４６】
学習部３３の学習によりアプリ３の書き込み時間ＴＡは時間・間隔テーブル３７に登録されているので、書き込み制御部３４はアプリ３が書き込み開始してから完了するまでに、アプリ１が書き込み開始するか否かを判定できる。すなわち、
アプリ３の書き込み開始時刻＋書き込み時間ＴＡの正常値＞アプリ１の前回の書き込み開始時刻＋書き込み間隔ＴＢの正常値
が成立する場合、書き込み制御部３４はアプリ３の書き込み制御を行うと判定する。
【００４７】
図６（ｂ）は書き込み制御部３４によるアプリ３の書き込み制御を説明する図の一例である。書き込み制御部３４は、アプリ３の書き込み開始をアプリ１の書き込みが完了するまでずらす。アプリ３の書き込み時間ＴＡ、アプリ１の書き込み間隔ＴＢは時間・間隔テーブル３７に登録されている。書き込み制御部３４はアプリ３が書き込み開始してから完了するまでに、アプリ１が書き込み開始するか否かを判定し、アプリ１が書き込み開始する場合はアプリ３の書き込みを待機させ、アプリ１の書き込みを優先する。したがって、優先度の高いアプリ１は、優先度の低いアプリ３により待たされることなく記憶装置３５に書き込むことが可能になる。
【００４８】
このように、書き込み制御部３４は優先度が高いアプリ１が優先的に書き込みできるように、追加された優先度が低いアプリ３の書き込みタイミングを最適化する。
【００４９】
（３）アプリ動作制御部
書き込み制御部３４が優先度の高いアプリ１の書き込みを優先しても、優先度の低いアプリ３の書き込み頻度が増大すると、優先度の高いアプリ１の書き込みを優先することが困難になる場合がある。このような状況は、最適化した後に優先度の低いアプリ３の書き込み頻度が増大すること、又は、優先度の低い複数のアプリ３が新たに追加されること等により生じる。
【００５０】
例えば、優先度の低いアプリ３の書き込み時間ＴＡ・書き込み間隔ＴＢの学習が不十分なため、アプリ３に書き込みを許可したが、書き込み中にアプリ１が書き込み要求するような場合がある。また、例えば、書き込み制御部３４がアプリ３に対し書き込みを待機させたまま、書き込みを開始した別のアプリ３がアプリ１を待機させてしまう場合も生じうる。
【００５１】
図７（ａ）は低優先のアプリの書き込み頻度の増加を説明する図の一例である。図７（ａ）の上段では、書き込み制御部３４によりアプリ１とアプリ２の書き込みが重複しないようにアプリ１の書き込みが優先されている。アプリ１の図示する書き込み時間ＴＡ・書き込み間隔ＴＢは、時間・間隔テーブル３７に登録されている正常値と同等である。
【００５２】
これに対し、図７（ａ）の下段では、アプリ３が追加されるなどの理由によりアプリ３の書き込み頻度が増大したため、アプリ１の書き込み間隔ＴＢが正常値よりも後方にずれている。監視部３２はこれを検出する。
【００５３】
アプリ動作制御部３１は、ＣＰＵ１１、バス１８負荷が増大した場合（優先度のアプリ３の書き込みによりアプリ１の書き込み間隔ＴＢがずれた）、優先度が低いアプリ３の動作を制限する。アプリ３の動作の制限には、例えば、アプリ３の優先度をさらに下げること、アプリ３の実行を禁止すること、などがある。
【００５４】
図７（ｂ）は優先度制御によるアプリ３の動作制限を説明する図の一例である。アプリ１〜３はそれぞれの起床要因により起床され、例えばＯＳの機能であるスケジューラにより実行キューに登録される。
【００５５】
アプリ１がＡＳＩＬ−Ａ、アプリ２，３がＡＳＩＬ−ＱＭの優先度であるとする。優先度は二種類しかないが、スケジューラはより多段階の優先度を管理して、アプリの実行を制御することができる。例えば、スケジューラが管理可能な優先度が１〜ｎであるとした場合、アプリ１は優先度１，アプリ２、３は優先度２となる。したがって、スケジューラはアプリ１を優先度１の実行キューに、アプリ２、３は起床順に優先度２の実行キューに登録する。
【００５６】
本実施形態のアプリ動作制御部３１は、アプリ３を動作制限するため、例えば、実行順を定めるための優先度制御において、アプリ３の優先度をアプリ１，２よりも小さくする。すなわち、アプリ３の優先度をそれまでの優先度２よりも低くする。具体的には、最も低い優先度ｎにする。よって、アプリ動作制御部３１は、アプリ３が起床された場合、アプリ３を優先度ｎの実行キューに登録することで、アプリ３が実行されにくくなる。
【００５７】
なお、図はアプリそのものの優先度であるが、アプリ動作制御部３１が書き込み制御部３４に対し書き込みの優先度だけを下げるように設定してもよい。
【００５８】
ここで、優先度ｎとは、優先度１〜n-1のアプリが実行キューに登録されていない場合に実行されるだけでなく、あるサイクル時間毎に実行が許可される優先度である。例えば、前回、優先度ｎのアプリ３が実行されてからサイクル時間が経過するまでに、ＣＰＵ１１が空いてもアプリ３のタスクは実行されない。前回、優先度ｎのアプリ３が実行されてからサイクル時間が経過しても、ＣＰＵ１１が空いていなければアプリ３は実行されない。
【００５９】
このような低優先度の実行キューにアプリ３を登録することで、アプリ３の書き込み頻度が増大しても、アプリ１の書き込みが待機させられることを抑制できる。
【００６０】
図７（ｃ）は実行キューへの登録禁止によるアプリ３の動作制限を説明する図の一例である。アプリ１〜３はＴＣＢ（タスクコントロールブロック）に、実行可能状態であることが登録されることで、実行キューに登録される。よって、アプリ動作制御部３１は例えばＴＣＢのアプリ３を削除する、又は、実行可能状態に遷移することを禁止しておく、ことなどによりアプリ３の実行を禁止できる。
【００６１】
アプリ３の実行が禁止されても、サイクル時間が経過すれば再度、起床されるので、アプリ３の機能が永遠に提供されないと言うことはない。
【００６２】
図７（ｄ）はアプリ３の動作制限による効果を説明する図の一例である。図７（ａ）と比較して、アプリ３の書き込み頻度が低下している。アプリ３の書き込み頻度が低下することで、アプリ１は、書き込み制御部３４が最適化したタイミングで書き込むことができるようになる。
【００６３】
〔動作手順〕
図８は電子制御装置１００が、電子制御装置１００に搭載された複数のアプリの記憶装置３５への書き込みを制御する手順を示すフローチャート図の一例である。
【００６４】
（１）図８（ａ）は全アプリの書き込み時間ＴＡ・書き込み間隔ＴＢの学習手順を示すフローチャート図の一例である。
【００６５】
学習部３３は書き込み時間ＴＡ・書き込み間隔ＴＢが予め時間・間隔テーブル３７に登録されている場合、それを正常値とする（Ｓ１−１）。
【００６６】
時間・間隔テーブル３７に登録されていないアプリ１，２が書き込み制御部３４に書き込み要求する場合、学習部３３はそのアプリ１，２の書き込み時間ＴＡ・書き込み間隔ＴＢを収集する（Ｓ１−２）。
【００６７】
次に、学習部３３は、収集した書き込み時間ＴＡ・書き込み間隔ＴＢから、平均、標準偏差を算出してアプリ１，２の書き込み時間ＴＡ・書き込み間隔ＴＢの正常値として、時間・間隔テーブル３７に登録する（Ｓ１−３）。これにより全てのアプリ１，２の正常値が得られる。
【００６８】
（２）図８（ｂ）は書き込み時間ＴＡ・書き込み間隔ＴＢの監視、書き込み制御の手順を示すフローチャート図の一例である。図８（ｂ）の手順は図８（ａ）に続いて実行される。
【００６９】
監視部３２は、アプリ１の書き込み開始から書き込み完了までの書き込み時間ＴＡを監視する（Ｓ２−１）。書き込み間隔ＴＢを共に監視してもよい。
【００７０】
監視部３２は、アプリ１の実際の書き込み時間ＴＡが、時間・間隔テーブル３７に登録されている正常値に対しずれたか否かを判定する（Ｓ２−２）。書き込み時間ＴＡを監視するのは、最適化の必要性を判定しやすいためである。書き込み間隔ＴＢを正常値と比較してもよい。また、単に正常値に対しずれただけでは、アプリ１の起床タイミングや演算時間などが原因の場合も含まれてしまうため、監視部３２は、正常値に対するずれがアプリ２の書き込みと重複したためか否かを判定する。アプリ２が書き込み要求したことは、書き込み制御部３４に問い合わせることで検出できる。
【００７１】
アプリ１の実際の書き込み時間ＴＡが、時間・間隔テーブル３７に登録されている正常値に対しずれていない場合（Ｓ２−２のＮｏ）、図８（ｂ）の処理は終了する。
【００７２】
アプリ１の実際の書き込み時間ＴＡが、時間・間隔テーブル３７に登録されている正常値に対しずれた場合（Ｓ２−２のＹｅｓ）、書き込み制御部３４はアプリ２の書き込みタイミングをアプリ１と重ならないようにずらす（Ｓ２−３）。
【００７３】
上記の（２）の処理を繰り返すことで、アプリ１の書き込み時間ＴＡ・書き込み間隔ＴＢを正常値と同等に保ったまま、アプリ２の書き込みを確保できる。
【００７４】
そして、アプリ３が電子制御装置１００に追加された場合においても、書き込み制御部３４は図８（ｂ）の処理を行いアプリ３の書き込みタイミングをアプリ１と重ならないようにずらす。このように、アプリ３の動作制限を行う前に、最適化することでアプリ３の書き込み頻度を確保しやすくなる。
【００７５】
（３）図８（ｃ）は書き込み時間ＴＡ・書き込み間隔ＴＢの監視、アプリ動作制御の手順を示すフローチャート図の一例である。図８（ｃ）の手順は図８（ｂ）に続いて実行される。
【００７６】
監視部３２は、アプリ１の書き込み開始から書き込み完了までの書き込み間隔ＴＢを監視する（Ｓ３−１）。書き込み間隔ＴＢを監視するのは、アプリの書き込み頻度の増加を検出しやすいためである。書き込み時間ＴＡを共に監視してもよい。
【００７７】
監視部３２は、アプリ１の実際の書き込み間隔ＴＢが、時間・間隔テーブル３７に登録されている正常値に対しずれたか否かを判定する（Ｓ３−２）。書き込み間隔ＴＢを正常値と比較してもよい。なお、単に正常値に対しずれただけでは、アプリ１の起床の遅れなどによる場合も含まれてしまうため、監視部３２は、正常値に対するずれがアプリ２，３の書き込みと重複したためか否かを判定する。アプリ２，３が書き込み要求したことは、書き込み制御部３４に問い合わせることで検出できる。
【００７８】
アプリ１の実際の書き込み間隔ＴＢが、時間・間隔テーブル３７に登録されている正常値に対しずれていない場合（Ｓ３−２のＮｏ）、図８（ｃ）の処理は終了する。
【００７９】
アプリ１の実際の書き込み間隔ＴＢが、時間・間隔テーブル３７に登録されている正常値に対しずれた場合（Ｓ３−２のＹｅｓ）、アプリ動作制御部３１はアプリ３の動作を制限する（Ｓ３―３）。アプリ３の動作のみを制限してもよいし、アプリ２の動作も共に制限してもよい。
【００８０】
そして、監視部３２は、ステップＳ３−２で判定された、アプリ１の書き込み間隔ＴＢの正常値に対するずれが解消したか否かを判定する（Ｓ３−４）。
【００８１】
解消していない場合（Ｓ３−４のＮｏ）、アプリ動作制御部３１は別のアプリ３の動作を制限する（Ｓ３―２）。このステップＳ３−２〜Ｓ３−４の処理を繰り返すことで、徐々に動作が制限されるアプリ３が増えるので、全てのアプリ３の動作を制限する必要がない。
【００８２】
ずれが解消した場合（Ｓ３−４のＹｅｓ）、図８（ｃ）の処理は終了する。これにより、いくつかのアプリ３は動作制限された状態となる。アプリ３は動作制限されたままでもよいし、所定時間が経過した際にアプリ動作制御部３１がアプリ３の動作制限を徐々に解除し図８（ｃ）の手順を行ってもよい。こうすることで、復帰が可能なアプリ３については復帰させることができる。
【００８３】
以上説明したように、本実施形態の電子制御装置１００は、低優先のアプリが追加されたため高優先のアプリの書き込み時間や書き込み間隔が正常値に対しずれた場合、追加された低優先のアプリの書き込み制限を行う。これにより、低優先のアプリが追加された場合でも、高優先のアプリの書き込み時間や書き込み間隔が大きくなることを抑制することができる。
【符号の説明】
【００８４】
３１    アプリ動作制御部
３２    監視部
３３    学習部
３４    書き込み制御部
３５    記憶装置
３６    プログラム
３７    時間・間隔テーブル
１００  電子制御装置
【図１】
2013161242.tif 000003
【図２】
2013161242.tif 000004
【図３】
2013161242.tif 000005
【図４】
2013161242.tif 000006
【図５】
2013161242.tif 000007
【図６】
2013161242.tif 000008
【図７】
2013161242.tif 000009
【図８】
2013161242.tif 000010