(57)【要約】【課題】処理負荷の計測によるＣＰＵ負荷の増大を抑制して、効率的にＣＰＵ負荷を低減する情報処理装置を提供すること。【解決手段】複数の入力手段から入力値を受け付ける入力値受け付け手段１１と、前記入力値が時系列に記録された入力値経過を前記入力手段毎に記録する入力値経過記録手段３３と、当該情報処理装置の処理負荷が時系列に記録された処理負荷傾向を記録する処理負荷傾向記録手段４５と、当該情報処理装置の処理負荷傾向を記録する処理負荷傾向記録手段３１と、前記入力値経過と前記処理負荷傾向の相関性を評価する相関性評価手段３８と、前記相関性が高い前記入力手段ほど優先して前記入力値の入力を制限する入力制限手段３９と、を有することを特徴とする。【選択図】図１
2014137695.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力手段から入力値を受け付ける入力値受け付け手段と、
前記入力値が時系列に記録された入力値経過を前記入力手段毎に記録する入力値経過記録手段と、
当該情報処理装置の処理負荷を検出する処理負荷検出手段と、
当該情報処理装置の処理負荷が時系列に記録された処理負荷傾向を記録する処理負荷傾向記録手段と、
前記入力値経過と前記処理負荷傾向の相関性を評価する相関性評価手段と、
前記相関性が高い前記入力手段ほど優先して前記入力値の入力を制限する入力制限手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記相関性評価手段は、前記入力値経過が時間と共に増大すると前記処理負荷傾向も増大する正の相関性と、前記入力値経過が時間と共に減少すると前記処理負荷傾向は増加する負の相関性とを評価し、
前記入力制限手段は、前記正の相関性又は前記負の相関性が高い前記入力手段ほど優先して前記入力値の入力を制限する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記入力値経過及び前記処理負荷傾向をそれぞれ同じ範囲の数値に正規化する正規化手段を有し、
前記相関性評価手段は、同じ時刻の前記入力値と前記処理負荷の差の絶対値を正の相関値として算出し、
同じ時刻の、前記入力値を前記範囲の上限値から減じた値と前記処理負荷の差の絶対値を負の相関値として算出し、
前記入力制限手段は、前記正の相関値及び前記負の相関値の昇順に前記入力手段をソートして、前記正の相関値又は前記負の相関値が高い前記入力手段ほど優先して前記入力値の入力を制限する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
当該情報処理装置の動作状況毎に、前記入力手段に対応づけて係数を記録した係数テーブルと、
前記相関性が高い前記入力手段ほど高い優先度を付与すると共に、当該情報処理装置の動作状況に応じて前記係数テーブルから読み出した前記入力手段の係数で前記入力手段の前記優先度を低下させる優先度付与手段と、を有し、
前記入力制限手段は、前記優先度付与手段により前記優先度が低下された後に、前記優先度でソートされた前記入力手段の前記入力値の入力を、前記優先度が高いほど優先して制限する、
ことを特徴とする請求項１〜３いずれか１項記載の情報処理装置。
【請求項５】
前記入力制限手段は、前記入力手段からの前記入力値を変更するか、又は、前記入力手段からの前記入力値の入力頻度を処理負荷が閾値以上となる前よりも低減する、
ことを特徴とする請求項１〜４いずれか１項記載の情報処理装置。
【請求項６】
前記係数テーブルには、前記入力手段の前記入力値を変更すること又は前記入力値の入力頻度を低減することが禁止された前記入力手段が登録されており、
前記入力制限手段は、制限対象の前記入力手段の前記入力値を変更すること又は前記入力頻度を低減することが禁止されている場合、次に優先度が高い前記入力手段の前記入力値を変更するか又は前記入力頻度を低減する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記入力手段は車載センサであり、
前記係数テーブルには、車両の前記動作状況毎に、前記車載センサに対応づけて係数が記録されており、
前記入力制限手段は、前記優先度付与手段により前記優先度が低下された後に、前記優先度でソートされた前記車載センサの前記入力値の入力を、優先度が高いほど優先して制限する、
ことを特徴とする請求項４記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵの処理負荷を低減可能な情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置のＣＰＵ負荷が増大すると所望のタイミングで所望の処理が実施されないなどの不都合が生じる。このため、従来から処理をいくつかのタスクに分けると共に優先度を付与し、優先度の高いタスクはＣＰＵ負荷が高くなっても所望のタイミングで実行されるように設計された情報処理装置が知られている（例えば、特許文献１参照。）。特許文献１には、ＣＰＵ負荷に応じて優先度の低い処理を抑制し、優先度の高い処理を優先して実行する情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０７９７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、ＣＰＵ負荷が高い場合に画一的に優先度の低い処理を抑制することでＣＰＵ負荷を低下させるので、ＣＰＵ負荷の低減を効率よく行えないという問題がある。すなわち、処理毎のＣＰＵ負荷への影響度を考慮していないため、優先度の低い処理を抑制してもＣＰＵ負荷を低減できない状況が生じうる。この場合、優先度の高い処理のタスク抜けが生じるなどの不都合が発生するため情報処理装置の機能保証が困難になる。
【０００５】
そこで、処理毎にＣＰＵ負荷を計測し、ＣＰＵ負荷の増加が著しい処理の実行の制限を行う手法が考えられる。しかし、近年の情報処理装置は入出力が多様化・複雑化しているため数多くの処理（入出力）についてＣＰＵ負荷を計測する必要が生じる。しかし、このような数多くの処理のＣＰＵ負荷を計測すること自体がＣＰＵ負荷を増大させてしまうため、実用化すると却ってＣＰＵ負荷を増大する可能性があるという不都合がある。
【０００６】
本発明は、上記課題に鑑み、処理負荷の計測によるＣＰＵ負荷の増大を抑制して、効率的にＣＰＵ負荷を低減する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数の入力手段から入力値を受け付ける入力値受け付け手段と、前記入力値が時系列に記録された入力値経過を前記入力手段毎に記録する入力値経過記録手段と、当該情報処理装置の処理負荷を検出する処理負荷検出手段と、当該情報処理装置の処理負荷が時系列に記録された処理負荷傾向を記録する処理負荷傾向記録手段と、前記入力値経過と前記処理負荷傾向の相関性を評価する相関性評価手段と、前記相関性が高い前記入力手段ほど優先して前記入力値の入力を制限する入力制限手段と、を有することを特徴とする。
【発明の効果】
【０００８】
処理負荷の計測によるＣＰＵ負荷の増大を抑制して、効率的にＣＰＵ負荷を低減する情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】マイコンの機能保証の概略を模式的に説明する図の一例である。
【図２】エンジンＥＣＵの概略構成図の一例を示す
【図３】マイコンの機能ブロック図の一例である。
【図４】ＣＰＵの処理負荷の検出を模式的に説明する図の一例である。
【図５】処理負荷傾向の作成について説明する図の一例である。
【図６】入出力経過の作成について説明する図の一例である。
【図７】相関パラメータＣＰ１の作成について説明する図の一例である。
【図８】負の相関について説明する図の一例である。
【図９】入力手段優先度テーブルの一例を示す図である。
【図１０】制限係数テーブルの一例を示す図である。
【図１１】マイコンの動作手順を示すフローチャート図の一例である。
【図１２】ソフトウェアへの入力と、ソフトウェアからの出力を模式的に示す図の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【実施例１】
【００１１】
〔概略的な特徴〕
図１は、本実施例のマイコンの機能保証の概略を模式的に説明する図の一例である。本実施例のマイコンは、入出力経過と処理負荷傾向を比較することで、処理負荷に影響が大きい入出力を特定し、該入出力の入力値に制限をかけることでマイコンの機能保証を実現する。
【００１２】
マイコンはセンサなどの入力手段Ａ〜Ｃ等から入力値を取得する。また、演算結果などの出力値をアクチュエータやスイッチ回路などの出力i〜iii等に出力する。この入力値の入力から出力までの処理が処理負荷に影響しているはずである。
【００１３】
Ｉ．そこで、マイコンは所定時間ａ〜ｂの間、処理負荷傾向と入出力経過を記録する。処理負荷傾向とは、所定時間ａ〜ｂにおける各時刻のＣＰＵの処理負荷を時系列に記録したデータである。また、入出力経過とは、所定時間ａ〜ｂにおける各時刻の入力値又は出力値を時系列に記録したデータである。図１の例では、入力値が大きくなると処理負荷も増大する傾向にあるが、それぞれの増大の仕方は必ずしも一致しない。
【００１４】
II．マイコンは、入出力経過と処理負荷傾向の相関性を評価するために、両者の相関値を算出する。例えば、所定時間ａ〜ｂの範囲で入出力経過と処理負荷傾向を正規化し、正規化後の入出力経過と処理負荷傾向を所定時間ａ〜ｂの範囲で比較する。正規化後の入出力経過と処理負荷傾向の差が小さいほど入力値と処理負荷がよく相関することを意味する。相関性を数値化した相関パラメータＣＰ１を以下のように定義する。
【００１５】
【数１】
2014137695.tif 000003
式（１）においてiはデータの番号であり、ｎは所定時間ａ〜ｂにおけるサンプル数（データ数）である。入力値と処理負荷の差の絶対値をｎ個加算するので、相関パラメータＣＰ１は値が小さいほど着目している入力手段の処理負荷への影響が高いことを示す。
【００１６】
マイコンは、相関パラメータＣＰ１を入力手段Ａ〜Ｃ毎に計算する。相関パラメータＣＰ１が小さい入力手段ほど処理負荷に影響しているので、マイコンは原則的に相関パラメータＣＰ１が小さい入力手段の入力に制限をかける。なお、「原則的に」と記載したのは車両制御上、必要な入力手段の入力は制限しないためである。
【００１７】
出力i〜iii等についても同様に相関パラメータＣＰ１を求めることができる。入力から出力までは一連の処理となる場合が多いので、入力手段からの入力値に着目して処理負荷を測定することで、マイコンの処理形態に応じた相関パラメータＣＰ１が得られる。逆に、出力に着目してもその出力は入力に起因することが多いので、同様の相関パラメータＣＰ１が得られるはずである。このため、本実施形態では「入出力」という場合には入力と出力が含まれるものとし、以下では、主に入力値を例に説明する。
【００１８】
以上のような制御により、処理負荷への影響が大きい入力手段を選択して入力を制限するので、効率的に処理負荷を抑制できる。また、処理負荷は入出力毎に測定する必要はなく、従来から例えばＯＳ（Operating System）により算出されているＣＰＵの処理負荷を用いればよい。したがって、処理負荷の計測によりＣＰＵ負荷を増大させることもない。
【００１９】
〔構成例〕
図２は、本実施例のエンジンＥＣＵの概略構成図の一例を示す。本実施例ではエンジンＥＣＵ２００を例に構成を説明するが、マイコン１００が搭載されるＥＣＵはエンジンＥＣＵ２００に限定されるものではない。
【００２０】
エンジンＥＣＵ（Electronic  Control  Unit）２００は入力回路１１、マイコン１００、出力回路１２、ＣＡＮ通信部１３、及び、電源回路１４を有している。なお、本実施例では特徴部の説明に用いる機能を図示したに過ぎず、エンジンＥＣＵ２００は図示した以外にも多くの機能を有している。マイコン１００はＣＰＵ２１、ＲＯＭ２２及びＲＡＭ２３を有する。マイコン１００も、図示する以外に割込みコントローラ、ＷＤＴ、ＤＭＡＣ、タイマなどを有するが省略されている。ＣＰＵ２１は、ＲＯＭ２２に記憶されたプログラムを実行することでマイコン１００全体を制御する。ＲＡＭ２３にはプログラムやデータが展開され、ＲＡＭ２３はＣＰＵ２１がアクセスする作業メモリになる。ＲＯＭ２２にはプログラムの他、プラットホームが記憶されている。プラットホームは、例えばＯＳやデバイスドライバなどである。ＯＳとしては、ＯＳＥＫ（Open system together with interfaces for automotive electronics）、ＡＵＴＯＳＡＲ（AUTomotive Open System Architecture） ＯＳなどのリアルタイムＯＳがあるが、これらに限定されるものではない。  
ＣＡＮ通信部１３は、ＣＡＮ（Controller Area Network）プロトコルに従い、通信バスに接続されたその他ＥＣＵ２４やその他センサ２５と通信するための通信回路である。ＣＡＮ通信部１３はメッセージを受信するとＣＰＵ２１に通知する。また、ＣＰＵ２１がメッセージを送信する際は、ＣＰＵ２１からの指示によりメッセージを作成して通信バスに送信する。このＣＡＮ通信部１３のメッセージの受信は入力の一形態であり、送信は出力の一形態である。なお、ＣＡＮプロトコルは一例に過ぎず、ＦｒｅｘＬａｙ、ＬＩＮ（Local Interconnect Network）又はイーサネット（登録商標）等の通信プロトコルで通信してもよい。
【００２１】
電源回路１４は、バッテリから供給される電源から所定の電圧を生成したり、イグニッションスイッチのＯＮを検出してマイコン１００に電源を供給したりＩＧ−ＯＦＦで停止するなどの制御を行う。また、＋Ｂ電源であればＩＧ−ＯＦＦにおいても電源を供給するが、マイコン１００がスリープモードに移行した場合に、電源を供給するブロックを制限するなどの制御を行う。
【００２２】
入力回路１１には、エアフローメータ、クランクポジションセンサ、カムポジションセンサ、アクセルペダルストロークセンサ、スロットルポジションセンサ、水温センサ、ノックコントロールセンサ、及び、スターターリレーなどが接続されている。本願では具体的なセンサ名はどのようなものでもよいのでこれらについて簡単に説明する。エアフローメータは例えば熱線を使用してインテークマニホールドへの吸入空気量を検出する。クランクポジションセンサはクランク角度及びエンジン回転数を検出する。カムポジションセンサは気筒判情報別及びカムシャフト角度を検出する。アクセルペダルストロークセンサはアクセルペダル開度を検出する。スロットルポジションセンサはスロットルバルブの開度を検出する。水温センサはエンジン冷却水の温度を検出する。ノックコントロールセンサはエンジンのノッキング状態を検出する。スターターリレーはエンジン始動時のスターター電圧を検出する。
【００２３】
これらの入力手段１５の入力値は、入力手段１５によって様々である。例えば、アナログデータだけでなくデジタルデータの入力値を作成する入力手段１５もあり、入力値の最小値や最大値も必ずしも一定ではない。入力回路１１は、必要であればＡ／Ｄ変換を行ったり値を加工したりして、入力手段１５の識別情報など共にデジタルデータとしてマイコン１００に受け渡す。また、入力手段１５から入力値をマイコン側に通知するものと、マイコン１００からの要求で入力値をマイコン側に受け渡すものとがある。このため、入力回路１１は、入力手段１５から通知された場合にマイコン１００に入力値を受け渡し、マイコン１００から要求された場合は指定された入力手段１５に入力値を作成させ、マイコン１００に入力値を受け渡す。
【００２４】
出力回路１２には、イグニッションリレー、フューエルインジェクタ、インジェクタドライバ、スロットルモータ、及び、O2センサ等が接続されている。イグニッションコイルはイグニッションを点火するコイルである。フューエルインジェクタは、インテークポートに燃料を噴射する。インジェクタドライバは、筒内に燃料を噴射するフューエルインジェクタを駆動する。スロットルモータはスロットル開度を制御する。Ｏ2センサヒータはＯ2センサを加熱するヒータである。出力回路１２は必要であればマイコン１００の演算結果をＤ／Ａ変換して、出力手段１６に出力する。
【００２５】
マイコン１００は、エンジンの状態（温度）やエアフローメータの入力値に基づき燃料噴射量を決定し、また、減速時や高回転時の燃料カットなどを行う。また、マイコン１００は、最適な燃焼状態となるようにエンジン回転数やカムポジションセンサ等に基づき点火時期を制御する。このような制御はエンジン回転数が大きくなると処理負荷が増大することが知られている。
【００２６】
エンジンＥＣＵ２００以外のＥＣＵとしては、例えば、メータＥＣＵ、スキッドコントロールＥＣＵ、メインボデーＥＣＵ、パワーステアリングＥＣＵ、パワーマネージメントＥＣＵ、ハイブリッドＥＣＵ、モータＥＣＵなど多くのＥＣＵがある。メータＥＣＵでは、スピードメータ、タコメータ、ＣＡＮ通信部１３などが入力手段１５となり、各種のＬＥＤを点灯するＬＥＤドライバ、液晶パネル、ヘッドアップディスプレイ、ブザー出力部などが出力手段１６となる。スキッドコントロールＥＣＵでは、マスタシリンダ圧センサ、スピードセンサ（車輪速センサ）、ストップランプスイッチ、ブレーキペダルストロークセンサなどが入力手段１５となり、制動圧を作成するポンプモータ、マスタシリンダカットソレノイドバルブ、保持ソレノイドバルブ、減圧ソレノイドバルブなどが出力手段１６となる。メインボデーＥＣＵでは各種のドアのカーテシセンサ、ドアロックＡＳＳＹ、ＣＡＮ通信部１３などが入力手段１５となり、車室内の各種の照明装置、ストップランプやターンシグナルなどのランプ、ＣＡＮ通信部１３などが出力手段１６となる。ハイブリッドＥＣＵでは、アクセルペダルストロークセンサ、スピードセンサ、シフトポジションセンサ、バッテリ電圧センサ、ＣＡＮ通信部１３などが入力手段１５となり、他のＥＣＵと協調するためＣＡＮ通信部１３が出力手段１６となる。
【００２７】
図３は、マイコン１００の機能ブロック図の一例を示す。エンジンＥＣＵ２００は、処理負荷監視部３１、同期部３２、入力値監視部３３、正規化部３５、３６（以下、正規化部１，２という）、相関パラメータ作成部３８、処理制限部３９、及び、優先度変更部４０を有する。また、ＲＡＭなどの記憶手段には、処理負荷バッファ３４、入力値バッファ３７、入力手段優先度テーブル４１、及び、制限係数テーブル４２を有している。
【００２８】
同期部３２は、処理負荷監視部３１と入力値監視部３３に所定時間ａ〜ｂを指示する。処理負荷監視部３１は、所定時間ａ〜ｂの間、ＯＳ又は自身が検出したＣＰＵ２１の処理負荷を監視して処理負荷傾向を作成する。入力値監視部３３は、入力手段１５及び出力手段１６毎に、所定時間ａ〜ｂの間、入力値又は出力値を監視して入出力経過を作成する。正規化部１は、処理負荷傾向を０〜１（又は０〜１００など）に正規化する。正規化部２は、入出力経過を０〜１（又は０〜１００など）に正規化する。相関パラメータ作成部３８は、入出力毎に相関パラメータＣＰ１、ＣＰ２を作成する。優先度変更部４０は相関パラメータＣＰ１、ＣＰ２に基づき付与された入力手段の優先度を変更する。処理制限部３９は優先度の高い入力手段１５から順に入力を制限する。
【００２９】
〔処理負荷の検出〕
図４は、ＣＰＵ２１の処理負荷の検出を模式的に説明する図の一例である。マイコン１００は複数のタスクを時分割に実行するマルチタスク処理が可能になっている。このタスクには入力手段１５からの入力処理、演算（マップ処理）、出力手段１６への出力を行うものが含まれる。１つのタスクが３つの処理を行ってもよいし、３つの処理が別々のタスクにより実行されてもよい。しかしながら、入力が行われると続いて演算、出力が行われるので、入力と処理負荷には相関が生じると考えられる。
【００３０】
例えば、ハード的又はソフト的なタイマにより周期的に実行されるタスクや、入力手段１５からの割り込みを契機に実行されるタスクがある。タイマやセンサが割込みを発生させると例えばＩＳＲ（Interrupt Service Routine）４７が対応するタスクを起床する。また、タスクが別のタスクを起床させることも可能で、例えば入力のタスクが演算のタスクなどを起床させ、一連の処理を行うことが可能になっている。
【００３１】
ＩＳＲ４７がＯＳ４５を呼び出すことで、ＯＳ４５の機能である例えばスケジューラ４６は、タスクをＴＣＢ（タスクコントロールブロック）４８に登録する。ＴＣＢ４８にはタスクＩＤ、開始アドレス・終了アドレス、優先度等が登録される。また、ＴＣＢ４８にはタスクのコンテキストが紐づけられる。
【００３２】
スケジューラ４６は、起床された各タスクをその優先度に応じて実行キューに登録する。図では各タスクの優先度が三段階に区分されているが、優先度はいくつに区分されていてもよい。
【００３３】
スケジューラ４６は優先度順にタスクをＣＰＵ２１に割り当てる。すなわち、実行キュー"高"のタスクを実行キュー"高"に登録された順にＣＰＵ２１に割り当て、実行キュー"高"のタスクがなくなると実行キュー"中"のタスクを実行キュー"中"に登録された順にＣＰＵ２１に割り当てる。実行キュー"中"のタスクがなくなると、実行キュー"低"のタスクを実行キュー"低"に登録された順にＣＰＵ２１に割り当てる。
【００３４】
実行キューにタスクがなくなると、スケジューラ４６はアイドルタスクをＣＰＵ２１に割り当てる。アイドルタスクとはＮＯＰ（Ｎｏｎ Ｏｐｅｒａｔｉｏｎ）命令など実際には演算やメモリアクセスなどをＣＰＵ２１が行わない命令である。したがって、アイドルタスクが多く実行されるほど、処理負荷に余裕があることになる。
【００３５】
このようなマイコンの処理負荷は、ＯＳを搭載したマイコン１００であればＯＳが監視している場合が多い。ＯＳ４５などの処理負荷を算出する機能は、ＣＰＵ２１の処理負荷の大きさを以下のように数値化する。
処理負荷＝（タスク実行時間／単位時間）×１００
したがって、タスクが間断なく実行されると処理負荷は１００％に近くなり、アイドルタスクが多く実行されると処理負荷はゼロに近くなる。
【００３６】
入力手段１５からの入力によりタスクが実行されると、そのタスクの処理に必要な実行時間や、出力までの一連の処理に必要な別のタスクが実行されることで、処理負荷が増大する。したがって、入出力と処理負荷に相関が生じる場合が多い。
【００３７】
〔処理負荷傾向の作成〕
図５は処理負荷傾向の作成について説明する図の一例である。処理負荷監視部３１は、同期部３２から指示された所定時間ａ〜ｂの処理負荷を時系列に記録する。所定時間は、固定された時間でも動的に変更される可変の時間でもよい。固定されている場合は、例えば数十ミリ秒、数秒、数分などのように固定されている。可変の場合、処理負荷は所定時間である程度変化することで、処理負荷と入力値の得られる相関の精度が増すと期待される（例えば、処理負荷がほぼ一定で入力値もほぼ一定では局所的な相関しか得られないおそれがある）。このため、例えば、処理負荷が数十％以上変化するまでの時間、閾値min（例えば１０％）以下になることと閾値max（例えば８０％）以上になることを両方満たすまでの時間のように、同期部３２が動的に決定する。
【００３８】
固定の場合も可変の場合も、入出力経過が作成される所定時間と処理負荷傾向が作成される時間は共通である。しかし、処理負荷が算出されるまでの遅延を考慮して数％〜数１０％、所定時間ａ〜ｂをずらしてもよい（例えば、処理負荷傾向を遅らせる）。
【００３９】
処理負荷監視部３１は、所定時間の処理負荷を監視して処理負荷傾向を記録する。所定時間ａ〜ｂが経過し処理負荷傾向が作成されると正規化部１が処理負荷傾向を正規化する。例えば、処理負荷の最小値minを"０"、最大値maxを"１"として最小値と最大値の間の処理負荷を０〜１の数値に割り当てる。
正規化された処理負荷β＝（処理負荷−min）／（max−min）
正規化することで各入力手段１５の入力値の幅が異なっていても、入力値と処理負荷を比較することが可能になる。なお、図５のように一様に増加（又は減少）するのでなく、処理負荷が所定時間に極小値や極大値を示しても、不都合なく正規化できる。
【００４０】
〔入出力経過の作成〕
図６は入出力経過の作成について説明する図の一例である。入力値監視部３３は、同期部３２から指示された所定時間ａ〜ｂの入力値を時系列に記録する。図６（ａ）〜（ｃ）はそれぞれ異なる入力手段１５の入力値である。したがって、縦軸の単位は入力手段１５によって異なり、例えばエンジン回転数ならrpm、アクセルペダルストロークセンサやスロットル開度なら％、水温センサなら温度である。
【００４１】
図６（ａ）では所定時間の間、一定比率で入力値が増加し、図６（ｂ）では所定時間の間、徐々に増加率が小さくなりながら入力値が増加し、図６（ｃ）では所定時間の間、徐々に増加率が大きくなりながら入力値が増加している。
【００４２】
所定時間ａ〜ｂが経過し入出力経過が作成されると正規化部２が入出力経過を正規化する。例えば、入力値の最小値minを"０"、最大値maxを"１"として最小値と最大値の間の処理負荷を０〜１の数値に割り当てる。
正規化された入力値α＝（入力値−min）／（max−min）
正規化することで各入力手段１５の入力値の幅が異なっていても、０から１の数値で表すことが可能になり、処理負荷と比較することが可能になる。
【００４３】
なお、所定時間内に入力手段Ａの入力値を記録している間に、入力手段Ｂが入力値を作成しマイコン１００に出力する場合がある。しかし、入力手段Ａに起因するタスクが先に実行されるので、入力手段毎に処理負荷を算出できるとしてよい。または、連続して所定時間を設けるのでなく、同期部は入力手段Ａの入力値を受け付けた時から一定時間を所定時間に決定し、処理負荷監視部３１が処理負荷を記録してもよい。これを繰り返すことで、入力手段Ａの種々の入力値が得られるので、入力手段毎に入出力経過と処理負荷傾向が得られる。
【００４４】
〔相関パラメータＣＰ〕
図７（ａ）は相関パラメータＣＰ１の作成について説明する図の一例である。処理負荷と入力値の相関は、入力値が大きいほど処理負荷も大きくなる傾向になる場合がある。これは、例えばエンジン回転数、アクセル開度などから推測されるように、入力値が大きいことは、車速が早かったり、運転者が加減速したり操舵するなどの操作を行ったために生じることが多いからである。この結果、マイコン１００は短時間に多くの処理を実行する必要が生じ、処理負荷も増大する。図７（ａ）のような相関性を正の相関と称することにする。よって、入力値と処理負荷には正の相関がある場合が多い。しかし、図示するようにどのように相関するかは入力値によって異なる。相関パラメータＣＰ１は相関性を数値化した値である。
【００４５】
相関パラメータ作成部３８は処理負荷βと入力値αの差（図の矢印）の絶対値を所定時間ａ〜ｂの間で加算する。処理負荷βのデータ数と入力値αのデータ数が異なる場合は、図7（ｂ）に示すように、データ数が多い方の隣接するデータ間を線形補間で求めてもよいし、処理負荷βと入力値αの両方で隣接するデータ間を線形補間してもよい。図7（ｂ）では処理負荷βの方がデータ数が多いので、処理負荷βが線形補間されている。線形補間することで、所定時間ａ〜ｂの任意の時刻でデータが求められるので、データ数が異なっていても処理負荷βと入力値αの差を求めることができる。また、データ数が多い方を線型補間するので、データ数が少ない方を線形補間するよりも正確な値を算出できる。
【００４６】
また、図7（ｃ）に示すように、単純に、少ない方のデータ数に合わせ、データ数が少ない方でデータが得られている時刻に最も近い時刻における、データ数が多い方のデータを選択し、処理負荷βと入力値αの差を算出してもよい。図７（ｃ）では入力値αのデータ１が取得された時刻と最も近い時刻に取得された処理負荷βはデータ２である。このように、データ数が多い方のデータを選択することで、線形補間することなく相関パラメータＣＰ１を算出できる。
【００４７】
図７（ａ）の左図では入力値αと処理負荷βの差が中程度であり、図７（ａ）の中央図では入力値αと処理負荷βの差が最も大きく、図７（ａ）の右図では入力値αと処理負荷βの差がほとんどない。したがって、相関パラメータＣＰ１は、入力手段Ｃの入力値α＜入力手段Ａの入力値α＜入力手段Ｂの入力値αの順になる。相関パラメータＣＰ１が小さいほど、入力値と処理負荷の相関性が高いの、処理負荷への影響は入力手段Ｃの入力値α＞入力手段Ａの入力値α＞入力手段Ｂの入力値αの順に大きいことが分かる。
【００４８】
＜負の相関について＞
図７では入力値αと相関値βに正の相関がある場合を示したが、負の相関を示す入力値も存在する。すなわち、入力値が低下すると処理負荷が増加する入力手段１５が存在する。
【００４９】
図８は負の相関について説明する図の一例である。図８（ａ）では所定時間の間に入力手段Ｄの入力値αが低下している。図８（ｂ）に示すように、所定時間の間の入力手段Ｄの入力値αの低下に対し、処理負荷βは増加している。よって、相関パラメータＣＰ１を算出した場合、同じ時刻における入力値αと処理負荷βの差が大きいので、相関パラメータＣＰ１は大きい値を取る。つまり、入力手段Ｄは処理負荷に影響しにくい入力値と判断される。
【００５０】
しかし、入力値と処理負荷の相関性が低い場合は、入力値と処理負荷が無作為に変動しているはずである。図８のような逆相関（入力値が小さいほど処理負荷が大きい）がある場合、入力値が小さいと処理負荷が大きくなるので、マイコン１００の処理負荷が入力値により影響されている点では正の相関と同じである。このため、本実施例ではこのような逆相関のある入力手段に対応して相関性を数値化するため負の相関パラメータＣＰ２を算出する。
【００５１】
まず、図８（ｃ）に示すように相関パラメータ作成部３８は入力値αを反転させる。
入力値α´＝１−入力値α
また、相関パラメータＣＰ２を以下のように算出する。
【００５２】
【数２】
2014137695.tif 000004
このように入力値αを反転させることで入力値α＝０では、入力値α´＝１になり、入力値α＝１では、入力値α´＝０になる。図８（ｄ）に示すように、逆相関がある入力手段１５については、入力値α´が大きくなるほど処理負荷βも大きくなる相関が得られる。この状態で求められた相関パラメータＣＰ２は小さくなるので、入力手段Ｄは処理負荷への影響が大きいと判断することができる。なお、入力値と処理負荷が無作為に変動している場合は、入力値αを反転させても、相関パラメータＣＰ２は大きくなるので、そのような入力手段は処理負荷への影響が小さいと判断できる。
【００５３】
事前に（例えばマイコンが車載される前に）逆相関しているか否かが調査されていない場合、逆相関しているか否かは不明なので、相関パラメータ作成部３８は相関パラメータＣＰ１、ＣＰ２の両方を求める。相関パラメータ作成部３８は相関パラメータＣＰ１、ＣＰ２を入力手段優先度テーブル４１に登録する。
【００５４】
〔処理の制限〕
処理負荷が閾値以上になると、処理制限部３９は相関パラメータＣＰ１、ＣＰ２の大きい入力手段１５から優先して、入力値を増加又は減少させる。具体的には、相関パラメータＣＰ１、ＣＰ２の昇順に入力手段１５をソートして、順番に優先度を付与する。この有線度は入力値を増加又は減少させる優先度である。
【００５５】
図９は、入力手段優先度テーブルの一例を示す図である。１つの入力手段１５について相関パラメータＣＰ１、ＣＰ２が求められる。図７（ａ）や図８（ｄ）から分かるように、入力手段Ｃの相関パラメータＣＰ１、入力手段Ｄの相関パラメータＣＰ２は小さいので、優先度が高くなる。図９のような入力手段優先度テーブルでは、処理制限部３９は、まず、入力手段Ｃの種類がＣＰ１なので、入力手段Ｃの入力値を下げることで処理負荷の増大を抑制する。また、処理負荷が低下しない場合は、次に入力手段Ｄの種類がＣＰ２なので、入力手段Ｄの入力値を大きくすることで処理負荷の増大を抑制する。
【００５６】
減少量や増減量は車両性能を大きく損なわないように例えば「現状値の１０％」のように制限されている。一度に減少又は増加させるのでなく制御サイクル毎に徐々に減少又は増加させる。なお、減少量や増加量は入力手段毎に定められていてもよいし、減少量と増加量で異なっていてもよい。これにより、入力手段が車両性能に及ぼす影響に応じて減少量や増加量を調整できる。
【００５７】
このように、処理負荷に影響しやすい入力手段１５から優先して入力値を減少させることで、入力手段毎の処理負荷を監視することなく効率的に処理負荷を低減できる。また、正の相関パラメータＣＰ１だけでなく負の相関パラメータＣＰ２を算出しソートしているので、処理負荷と逆相関する入力手段１５も正の相関の入力手段１５と同列に扱って相関しやすいものから先に処理を制限できる。
【００５８】
また、処理制限部３９は、入力値を増加又は減少させるのでなく、入力手段からの入力を制限してもよい。入力値を増加又は減少させるよりも短時間に処理負荷を低減できる。入力の制限とは、通常時の入力頻度よりも入力頻度を低減すること、一定時間禁止することなどである。
【００５９】
また、処理制限部３９は、制限対象の入力手段からの入力を必要とする処理の実行を禁止してもよい。このような制限が可能な入力手段は、不図示のテーブルに登録されている。処理制限部３９は制限対象の入力手段が該テーブルに登録されている場合は、入力手段からの入力を必要とする処理の実行を禁止する。
【００６０】
ところで、優先度が高くても処理制限部３９により制限することが妥当でない場合がある。例えば、登坂中にエンジン回転数を下げるとトルクが足りなくなり速度が低下しやすくなるので、車両の状況によってはエンジン回転数を下げることは困難である。そこで、処理負荷に影響が大きいだけでなく、かつ、車両性能に影響を与えにくい入力手段１５の入力値を増加又は減少させることが好ましい。
【００６１】
そこで、本実施例では、予め動作条件に対応づけて各入力手段の制限係数を求めておき、動作条件に応じて優先度を入れ替える。動作条件と制限係数を対応づけたテーブルを制限係数テーブル４２と称する。
【００６２】
図１０は制限係数テーブル４２の一例を示す図である。各動作条件I、II等に、１つ以上の入力手段１５と、入力手段毎の制限係数が登録されている。例えば、動作条件が「Ａ高出力要求時」では、エンジン回転数の制限係数が１０、スロットル開度の制限係数が４になっている。優先度変更部４０は、入力値を増加又は減少させる際、現在の車両の状況が動作条件を満たすか否か、すなわち、車両の状況と一致する動作条件があるか否かを判定する。例えば、車両の状況が、動作条件Ａ（高出力要求時）の場合、図９のようにソートされた各入力手段１５のうちエンジン回転数とスロットル開度の優先度に制限係数を乗じる。なお、高出力要求時であることは、現在のエンジン回転数が閾値以上、車速が閾値以上又はスロットル開度が閾値以上の1つ以上を満たす場合などの条件で検出される。
【００６３】
例えば、ソートした直後のエンジン回転数の優先度が１、ソートした直後のスロットル開度の優先度が３の場合、制限係数を乗じることで、エンジン回転数の優先度は１０、スロットル開度の優先度は１２となる。したがって、エンジン回転数は優先度が9以上の入力手段１５が制限されるまでは制限されず、スロットル開度は優先度が１１以上の入力手段１５が制限されるまでは制限されない。よって、車両の状況によって不適切な入力手段１５の入力値を減少させることを抑制できる。
【００６４】
なお、図９では、数値が小さいものほど優先度が高いとしたので、数値が大きいものほど優先度が高いとする場合は、制限係数は１未満の数値となる。
【００６５】
また、制限係数は数値である必要はなく、例えば「制限禁止」のように制限することを禁止してもよい。この場合、優先度変更部４０は入出力優先度テーブルに入力手段に「制限禁止」を登録する。制限対象の入力手段に「制限禁止」が登録されている場合、処理制限部３９は制限対象の入力手段の入力を制限することなく、優先度が次の入力手段の入力を制限する。または、制限対象の入力手段（相関パラメータＣＰ１、ＣＰ２の両方）を入力手段優先度テーブル４１から消去して、制限対象から除外してもよい。
【００６６】
〔動作手順〕
図１１（ａ）はマイコン１００が処理負荷傾向と入出力経過を取得する手順を示すフローチャート図の一例を示す。マイコン１００は周期的に繰り返し図１１（ａ）の手順を実行する。
【００６７】
処理負荷監視部３１は所定時間の処理負荷を監視して処理負荷傾向を取得する（Ｓ１０）。
【００６８】
また、入力値監視部３３は１つの入力手段１５の所定時間の入力値を監視して入出力経過を取得する（Ｓ２０）。マイコン１００は、入力手段毎に入出力経過を取得する。周期的に繰り返すことで同じ入力手段１５に対し、入力値と処理負荷を蓄積でき、着目している入力手段１５に起因する割合が高い処理負荷との相関が得られる。処理負荷監視部３１は処理負荷傾向を処理負荷バッファ３４に記憶し、入力値監視部３３は入出力傾向を入力値バッファ３７に記憶する。
【００６９】
図１１（ｂ）は、マイコン１００が入力手段１５の入力を制限する手順を示すフローチャート図の一例を示す。マイコン１００は図１１（ｂ）の処理を周期的に繰り返し実行する。
【００７０】
処理制限部３９は現在の処理負荷が閾値以上か否かを判定する（Ｓ１１０）。処理負荷が閾値以上でない場合（Ｓ１１０のＮｏ）、入力手段からの入力を制限する必要がないので処理は終了する。
【００７１】
処理負荷が閾値以上の場合（Ｓ１１０のＹｅｓ）、正規化部１は処理負荷傾向を正規化して処理負荷βを算出する（Ｓ１２０）。
【００７２】
正規化部２は、入出力経過を正規化して入力手段毎に入力値αを算出する（Ｓ１３０）。相関パラメータ作成部３８は各入力手段の相関パラメータＣＰ１を算出する（Ｓ１４０）。
【００７３】
また、相関パラメータ作成部３８は入力値αを反転させ、入力値α´を算出する（Ｓ１５０）。相関パラメータ作成部３８は、各入力手段の相関パラメータＣＰ２を算出する（Ｓ１６０）。
【００７４】
優先度変更部４０は、相関パラメータＣＰ１、ＣＰ２を昇順にソートして優先度を付与する（Ｓ１７０）。
【００７５】
次に、優先度変更部４０は、優先度を入れ替える必要があるか否かを判定するため、特定の車両状況か否かを判定する（Ｓ１８０）。すなわち、現在の車両状況が制限係数テーブルに登録されている動作条件に一致するか否かを判定する。
【００７６】
特定の車両状況の場合（Ｓ１８０のＹｅｓ）、優先度変更部４０は、制限係数テーブルに登録されている入力手段１５の優先度に制限係数を乗じて優先度を入れ替える（Ｓ１９０）。
【００７７】
そして、処理制限部３９は、優先度が高い入力手段１５から順に入力を制限する（Ｓ２００）。この後、再度、処理負荷が閾値を下回ったか否かが判定される（Ｓ２１０）。処理負荷が閾値以上の場合は、ステップＳ２００で優先度が２番目の入力手段１５に対し、入力が制限される。
【００７８】
なお、相関パラメータＣＰ１とＣＰ２はいずれか一方だけを算出して、優先度に応じて入力を制限しても処理負荷を低減できる。また、入力手段１５に応じて相関パラメータＣＰ１とＣＰ２のどちらかの方が小さいかは、マイコン１００が事前に（一度でも図１１を実行すれば）判定可能なので、以降は小さい方の相関パラメータのみを算出してもよい。これにより、相関パラメータを算出するための処理負荷を低減できる。
【実施例２】
【００７９】
実施例１では、入力回路１１を経由したマイコン１００への入力、及び、出力回路１２を経由した出力手段１６への出力を例にして、ＣＰＵ２１の処理負荷の低減について説明した。しかし、実施例１の処理負荷の低減方法は入力を受け付け又は出力を行う機能に対し適用できる。本実施例では、入力を受け付け又は出力を行うソフトウェアに起因するＣＰＵ２１の処理負荷について説明する。
【００８０】
図１２（ａ）はソフトウェア３０への入力と、ソフトウェア３０からの出力を模式的に示す図の一例である。ソフトウェアは、ＯＳ４５、１つのアプリケーション、アプリケーション内のモジュールなどまとまった機能を提供するものである。なお、ソフトウェアは記憶媒体に記憶された状態だけをいうのではなく、ＣＰＵ２１がソフトウェアを実行することで実現される機能を意味している。また、入力手段又は出力手段は複数である。
【００８１】
ソフトウェアは入力手段から入力値を受け付け、入力値を処理して出力手段に出力する。したがって、入力手段毎にＣＰＵ２１の処理負荷の処理負荷傾向と入出力経過を作成すれば、マイコンがソフトウェアに置き換わるだけで、ソフトウェアの処理に起因する処理負荷の増大の抑制が可能になる。すなわち、相関パラメータＣＰ１，ＣＰ２が小さい入力手段の入力を制限すればよい。
【００８２】
図１２（ｂ）ソフトウェア３０への入力と、ソフトウェア３０からの出力を模式的に示す図の別の一例である。アプリ１〜３はソフトウェアの一形態なので、アプリとソフトウェアという呼称の違いは説明のためである。ただし、アプリ１〜３に対しソフトウェアをＯＳ４５とするなど互いにカテゴリーが異なるソフトウェアとしてもよい。アプリ１〜３はＣＰＵ２１がプログラムを実行することで実現される機能である。
【００８３】
図１２（ｂ）のような処理は、例えばアプリ１〜３が関数に引数を設定してソフトウェアを呼び出す処理として広く行われている。ソフトウェアはスタック領域から引数を受け取って関数を実行することで処理を行う。したがって、引数がソフトウェアへの入力である。また、同様に、ソフトウェアは処理の結果を関数の引数に設定して出力側のアプリ１〜３を呼び出す。
【００８４】
アプリ１〜３やソフトウェアはこのような処理を繰り返す。実施例１のマイコン１００がソフトウェアに対応し、アプリ１〜３が入力手段１５や出力手段１６に対応し、ＡＰＩは入力回路１１や出力回路１２に対応する。
【００８５】
アプリ１〜３もＣＰＵ２１が実行するため、ソフトウェアが動作する前にＣＰＵ２１の処理負荷に影響があるが、アプリ１〜３の処理負荷も含めてＣＰＵ２１の処理負荷を監視すればよい。よって、入力値監視部３３が、所定時間、アプリ１〜３毎に入力を監視し、処理負荷監視手段が処理負荷を監視することで、アプリ１〜３毎に相関パラメータＣＰ１、ＣＰ２を算出できる。したがって、ＣＰＵ２１の処理負荷が閾値以上の場合、優先度に応じてアプリ１〜３の入力を制限することで効率的に処理負荷の増大を抑制できる。
【００８６】
このように、本実施形態の処理負荷の増加抑制方法はマイコン１００だけでなく、ソフトウェアに対する入出力と処理負荷の相関性を評価して、入力手段毎に入力を制限することでＣＰＵ２１の処理負荷を効率的に低減することができる。
【符号の説明】
【００８７】
１１    入力回路
１２    出力回路
１５    入力手段
１６    出力手段
２１    ＣＰＵ
１００  マイコン
２００  エンジンＥＣＵ
【図１】
2014137695.tif 000005
【図２】
2014137695.tif 000006
【図３】
2014137695.tif 000007
【図４】
2014137695.tif 000008
【図５】
2014137695.tif 000009
【図６】
2014137695.tif 000010
【図７】
2014137695.tif 000011
【図８】
2014137695.tif 000012
【図９】
2014137695.tif 000013
【図１０】
2014137695.tif 000014
【図１１】
2014137695.tif 000015
【図１２】
2014137695.tif 000016