(57)【要約】【課題】複数のタスクの一部について優先的にプロセッサの負荷を計測可能にする。【解決手段】プロセッサが所定規則に応じて複数のタスクを順次実行する電子制御装置は、複数のタスクのそれぞれについて、アイドルタスクとしてプロセッサの処理負荷を計測する「負荷」、又は、アイドルタスク以外の通常のタスクとしてプロセッサの処理負荷を計測する「アイドル」かを任意に設定するコンフィグレーション４８０を有している。そして、プロセッサは、通常のタスクに設定されたタスクを実行するとき、そのタスクの実行に要した時間を処理負荷として計測する。また、プロセッサは、アイドルタスクに設定されたタスクを実行するとき、所定時間間隔におけるタスクの実行に要した時間の積算値を処理負荷として計測する。【選択図】図６
2019053612.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが所定規則に応じて複数のタスクを順次実行する電子制御装置であって、
前記複数のタスクのそれぞれについて、アイドルタスクとして前記プロセッサの処理負荷を計測するか、又は、前記アイドルタスク以外の通常のタスクとして前記プロセッサの処理負荷を計測するかを設定する第１の設定機構を有し、
前記プロセッサは、前記第１の設定機構により前記通常のタスクに設定されたタスクを実行するとき、当該タスクの実行に要した時間を処理負荷として計測し、前記第１の設定機構により前記アイドルタスクに設定されたタスクを実行するとき、所定時間間隔における当該タスクの実行に要した時間の積算値を処理負荷として計測するように構成された、
電子制御装置。
【請求項２】
前記プロセッサは、前記通常のタスクに設定されたタスクの処理負荷を計測しているとき、当該タスクより優先度の高い他のタスクを実行すれば、前記他のタスクの実行中、前記通常のタスクに設定されたタスクの実行に要した時間の計測を中断するように構成された、
請求項１に記載の電子制御装置。
【請求項３】
前記第１の設定機構は、前記複数のタスクを規定するコンフィグレーション、又は、前記複数のタスクのそれぞれに関連付けられたフラグである、
請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記プロセッサの処理負荷を計測するか否かを設定する第２の設定機構を備え、
前記プロセッサは、前記第２の設定機構により処理負荷を計測すると設定されたとき、前記タスクの実行に要する時間を計測するように構成された、
請求項１〜請求項３のいずれか１つに記載の電子制御装置。
【請求項５】
前記処理負荷を計測する機能は、オペレーティングシステムに組み込まれた、
請求項１〜請求項４のいずれか１つに記載の電子制御装置。
【請求項６】
前記所定時間間隔は、所定の定時タスクを実行する時間間隔で規定された、
請求項１〜請求項５のいずれか１つに記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載される電子制御装置に関する。
【背景技術】
【０００２】
自動車などの車両に搭載される電子制御装置は、所定規則に応じて複数のタスクを順次実行することで、アクチュエータなどの制御対象機器を電子制御する。電子制御装置の設計開発段階では、ＣＰＵ（Central Processing Unit）などのプロセッサの処理負荷を計測し、例えば、制御対象機器が適切に電子制御可能かどうかを検証する必要がある。プロセッサの処理負荷を計測するために、特開２００３−１５８８８号公報（特許文献１）に記載されるように、特定のタスクの実行終了時間から実行開始時間を減算したタスク実行時間が閾値を超えているか否かを判断する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５８８８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、電子制御装置の設計開発段階では、例えば、特定の機能を提供するタスクによる処理負荷を検証するなど、制御対象機器を電子制御するための複数のタスクの一部について処理負荷を計測したい場合がある。しかしながら、特許文献１に記載された技術では、特定のタスクによる処理負荷のみしか計測できず、電子制御装置の検証に関して柔軟性がなかった。
【０００５】
そこで、本発明は、複数のタスクの一部について優先的にプロセッサの処理負荷を計測可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、プロセッサが所定規則に応じて複数のタスクを順次実行する電子制御装置は、複数のタスクのそれぞれについて、アイドルタスクとしてプロセッサの処理負荷を計測するか、又は、アイドルタスク以外の通常のタスクとしてプロセッサの処理負荷を計測するかを設定する第１の設定機構を有している。そして、プロセッサは、第１の設定機構により通常のタスクに設定されたタスクを実行するとき、そのタスクの実行に要した時間を処理負荷として計測する。また、プロセッサは、第１の設定機構によりアイドルタスクに設定されたタスクを実行するとき、所定時間間隔におけるタスクの実行に要した時間の積算値を処理負荷として計測する。
【発明の効果】
【０００７】
本発明によれば、電子制御装置において、複数のタスクの一部について優先的にプロセッサの負荷を計測することができる。
【図面の簡単な説明】
【０００８】
【図１】電子制御装置の一例を示す概要図である。
【図２】不揮発性メモリに格納されるデータの一例を示す説明図である。
【図３】オペレーティングシステムに組み込まれた機能の一例を示すブロック図である。
【図４】電子制御装置で実行されるタスクの一例を示す説明図である。
【図５】タスクを規定するコンフィグレーションの一例を示す説明図である。
【図６】タスクを規定するコンフィグレーションの他の例を示す説明図である。
【図７】タスクの処理負荷を計測する方法の説明図である。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、自動車などの車両に搭載される電子制御装置１００の一例を示す。
【００１０】
電子制御装置１００は、ＣＰＵ１２０Ａ、ＲＯＭ（Read Only Memory）１２０Ｂ、ＲＡＭ（Random Access Memory）１２０Ｃ、タイマ１２０Ｄ、入出力回路１２０Ｅ、通信回路１２０Ｆ及びバス１２０Ｇを有するマイクロコンピュータ１２０を備えている。ここで、ＣＰＵ１２０Ａが、プロセッサの一例として挙げられる。
【００１１】
ＣＰＵ１２０Ａは、アプリケーションプログラムを構成する複数のタスクを所定規則に応じて順次実行し、例えば、各種センサからの出力に応じてアクチュエータの操作量を決定して出力する。ＲＯＭ１２０Ｂは、電源が遮断されてもデータを保持可能な不揮発性メモリの一例であって、例えば、フラッシュＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）などからなる。ＲＡＭ１２０Ｃは、電源遮断によりデータが消失する揮発性メモリの一例であって、例えば、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ（Static RAM）などからなる。タイマ１２０Ｄは、所定時間ごとにパルスを出力したり、基準点からの経過時間を出力したりするなどの計時機能を提供する。入出力回路１２０Ｅは、アナログ信号又はデジタル信号の入出力機能を提供する。通信回路１２０Ｆは、例えば、ＣＡＮ（Controller Area Network）などを介して、他の電子制御装置と通信可能に接続する機能、電子制御装置１００の機能を検証するための外部装置２００と通信可能に接続する機能を提供する。バス１２０Ｇは、ＣＰＵ１２０Ａ、ＲＯＭ１２０Ｂ、ＲＡＭ１２０Ｃ、タイマ１２０Ｄ、入出力回路１２０Ｅ及び通信回路１２０Ｆを相互通信可能に接続する。
【００１２】
外部装置２００は、ＣＰＵ、ＲＯＭ、ＲＡＭ、タイマ、ストレージ、入出力回路及び通信回路を有するパーソナルコンピュータからなり、例えば、ＣＡＮケーブル３００を介して、電子制御装置１００の通信回路１２０Ｆと着脱可能に接続される。また、外部装置２００のストレージには、電子制御装置１００の機能を検証するためのユーザプログラム４００が格納されている。なお、ユーザプログラムは、本実施形態の要部ではないため、その説明は省略することとする。
【００１３】
マイクロコンピュータ１２０のＲＯＭ１２０Ｂには、図２に示すように、オペレーティングシステム（ＯＳ）４２０、アプリケーションプログラム４４０、制御データ４６０及びコンフィグレーション４８０が格納されている。
【００１４】
オペレーティングシステム４２０は、アプリケーションプログラム４４０とハードウエアとの中間に位置し、アプリケーションプログラム４４０に対して標準的なインターフェースを提供すると共に、ハードウエアなどの各種リソースを効率的に管理する。アプリケーションプログラム４４０は、アクチュエータなどの制御対象機器を電子制御するためのプログラムであって、ユーザによって作成される。制御データ４６０は、アプリケーションプログラム４４０によって使用される定数などのデータであって、ユーザによって作成される。コンフィグレーション４８０は、その詳細を後述するように、アプリケーションプログラム４４０を構成する複数のタスクについて、アイドルタスクとしてＣＰＵ１２０Ａの処理負荷を計測するか、又は、アイドルタスク以外の通常のタスクとしてＣＰＵ１２０Ａの処理負荷を計測するかを、任意かつ個別に設定するためのデータである。
【００１５】
なお、コンフィグレーション４８０は、電子制御装置１００に接続された外部装置２００によって書き換えることができる。また、コンフィグレーション４８０は、ＲＯＭ１２０Ｂに限らず、外部装置２００から送信されてＲＡＭ１２０Ｃに展開されてもよい。ここで、コンフィグレーション４８０が、第１の設定機構の一例として挙げられる。
【００１６】
また、アイドルタスクは、最下位の優先度を有するタスクであって、これより優先度が高いタスクが実行されていないときに実行される。従って、ＣＰＵ１２０Ａの処理負荷が高いときには、アイドルタスクが実行されない場合もある。
【００１７】
オペレーティングシステム４２０には、図３に示すように、一般的なディスパッチャ４２２に加え、タスク計測サービス部４２４が組み込まれている。ここで、タスク計測サービス部４２４が、処理負荷を計測する機能の一例として挙げられる。
【００１８】
ディスパッチャ４２２は、アプリケーションプログラム４４０を構成する複数のタスク５００を、その内容や用途に応じて振り分ける。また、ディスパッチャ４２２には、タスク５００の実行を制御及び管理するタスク管理部４２２Ａが含まれている。タスク管理部４２２Ａは、タスク５００の内容や用途などを解析し、ＣＰＵ１２０Ａの処理負荷を計測する基準となる計測時間（所定時間間隔）を規定する計測周期開始信号、各タスク５００について処理負荷の計測を開始するタスク計測開始信号、各タスク５００について処理負荷の計測を終了するタスク計測終了信号をタスク計測サービス部４２４に送信する。なお、タスク計測開始信号及びタスク計測終了信号には、計測対象となるタスク５００を特定可能とする識別子（タスクＩＤ）が付されている。
【００１９】
タスク計測サービス部４２４には、上位タスク状態管理部４２４Ａ、複数の下位タスク状態管理部４２４Ｂ及びアイドルタスク計測部４２４Ｃが含まれている。ここで、タスク５００には、最下位の優先度を有し、これよりも優先度が高いタスクが実行されていないときに実行されるアイドルタスクも含まれている。
【００２０】
上位タスク状態管理部４２４Ａは、タスク計測開始信号を受信すると、タスクＩＤにより特定されるタスク５００に関連付けられた下位タスク状態管理部４２４Ｂに処理負荷の計測を開始する計測開始信号を送信すると共に、アイドルタスクに関連付けられた下位タスク状態管理部４２４Ｂに計測中断信号を送信する。また、上位タスク状態管理部４２４Ａは、タスク計測終了信号を受信すると、タスクＩＤにより特定されるタスク５００に関連付けられた下位タスク状態管理部４２４Ｂに計測終了信号を送信すると共に、アイドルタスクに関連付けられた下位タスク状態管理部４２４Ｂに計測再開信号を出力する。
【００２１】
アイドルタスク以外のタスクに関連付けられた下位タスク状態管理部４２４Ｂは、計測開始信号を受信すると、マイクロコンピュータ１２０のタイマ１２０Ｄを使用して、タスクＩＤにより特定されるタスク５００の実行開始時間を記憶する。また、この下位タスク状態管理部４２４Ｂは、計測終了信号を受信すると、マイクロコンピュータ１２０のタイマ１２０Ｄを使用して、タスクＩＤにより特定されるタスク５００の実行終了時間を記憶する。そして、下位タスク状態管理部４２４Ｂは、タスク５００の実行終了時間から実行開始時間を減算することによって、タスク５００の実行時間を算出する。このとき、下位タスク状態管理部４２４Ｂは、詳細を後述するように、タスクＩＤにより特定されるタスク５００より優先度が高いタスク５００が実行されることによって、タスク５００の実行が一時的に中断された場合には、上記のように算出された実行時間から中断時間を減算することで実際の実行時間を算出する。
【００２２】
アイドルタスクに関連付けられた下位タスク状態管理部４２４Ｂは、計測再開信号を受信すると、アイドルタスク計測部４２４Ｃにアイドル時間積算開始信号を送信する。また、この下位タスク状態管理部４２４Ｂは、計測中断信号を受信すると、アイドルタスク計測部４２４Ｃにアイドル時間積算終了信号を送信する。
【００２３】
アイドルタスク計測部４２４Ｃは、マイクロコンピュータ１２０のタイマ１２０Ｄを使用して、アイドルタスクの実行開始時間及び実行終了時間を計時し、その実行終了時間から実行開始時間を減算することによって、アイドルタスクの実行時間を算出する。また、アイドルタスク計測部４２４Ｃは、アイドル時間積算開始信号を受信してからアイドル時間積算終了信号を受信するまでの間、上記のように算出したアイドルタスクの実行時間を順次積算した積算値を算出する。さらに、アイドルタスク計測部４２４Ｃは、計測周期開始信号を受信すると、上記積算値をクリア（リセット）する。
【００２４】
ここで、アプリケーションプログラム４４０を構成する複数のタスク５００の一例について説明する。なお、以下に説明するタスク５００は、単なる例示であるため、実際のタスクがこのような構成をなしていると理解すべきではない。
【００２５】
タスク５００は、図４に示すように、定時タスクとして、１ｍｓごとに実行される１ｍｓタスクと、２ｍｓごとに実行される２ｍｓ＿０タスク及び２ｍｓ＿１タスクと、５ｍｓごとに実行される５ｍｓ＿０タスク〜５ｍｓ＿４タスクと、１０ｍｓごとに実行される１０ｍｓ＿０〜１０ｍｓ＿９タスクと、を含んでいる。また、タスク５００は、アイドルタスクに加え、イベントにより不定期に割り込みが発生する、割り込みタスクｘｘｘＴａｓｋ、ｙｙｙＴａｓｋ及びｚｚｚＴａｓｋを含んでいる。そして、タスク５００の実行タイミングを表す、１ｍｓ間隔のオフセット０〜９になったときに、そのオフセットに関連付けられた複数のタスクが適宜実行される。
【００２６】
ＲＯＭ１２０Ｂに格納されるコンフィグレーション４８０は、図５に示すように、タスクごとに、アイドルタスクとして処理負荷を計測することを示す「アイドル」と、アイドルタスク以外の通常のタスクとして処理負荷を計測することを示す「負荷」と、を任意に設定できるように構成されている。コンフィグレーション４８０は、図５の構成に限らず、例えば、各タスクに関連付けられたフラグによって、「アイドル」又は「負荷」であることを設定するようにしてもよい。ここで、フラグが、第１の設定機構の一例として挙げられる。
【００２７】
図５のコンフィグレーション４８０では、１ｍｓ、２ｍｓ、５ｍｓ及び１０ｍｓごとに実行される定時タスク及び割り込みタスクが「負荷」に設定され、アイドルタスクが「アイドル」に設定されている様子を示している。このようにすれば、定時タスク及び割り込みタスクが優先的に処理負荷を計測する対象となり、すべてのタスクを計測対象とすることと比較して、ＣＰＵ１２０Ａの処理負荷を低減することができる。
【００２８】
また、複数のタスクの一部、例えば、ＳＰＩ（Serial Peripheral Interface）通信に関するタスクなどの処理負荷のみを計測したい場合には、図６に示すように、一部のタスクのみを「負荷」に設定し、他のタスクを「アイドル」に設定すればよい。図６のコンフィグレーション４８０では、定時タスクである５ｍｓ＿０タスク及び割り込みタスクであるｘｘｘＴａｓｋが優先的に処理負荷を計測する対象となり、ＣＰＵ１２０Ａの処理負荷を低減することに加え、余分な計測結果がないことから、設計開発の作業工数を低減することもできる。なお、コンフィグレーション４８０は、図５及び図６に示すものに限らず、負荷を計測する場合には、アプリケーションプログラム４４０を構成する複数のタスクの少なくとも一部を「負荷」に設定すればよい。
【００２９】
次に、図７を参照し、アプリケーションプログラム４４０を構成する複数のタスクの処理負荷を計測する具体的な方法について説明する。
【００３０】
以下の説明の前提として、ＲＯＭ１２０Ｂに格納されたコンフィグレーション４８０では、タスクＩＤ＿０、タスクＩＤ＿１、タスクＩＤ＿２及びタスクＩＤ＿３が「負荷」に設定され、タスクＩＤ＿４が「アイドル」に設定されているものとする。また、各タスクの優先度は、図７に示すように、タスクＩＤ＿４、タスクＩＤ＿０、タスクＩＤ＿１、タスクＩＤ＿２及びタスクＩＤ＿３の順番で順次高くなるものとする。さらに、電子制御装置１００は、以下の順番で、各タスクを実行するものとする。なお、説明の便宜上、「アイドル」に設定された「タスクＩＤ＿４」を「アイドルタスクＩＤ＿４」と呼ぶこととする。
【００３１】
１．タスクＩＤ＿０の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿０の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を中断すると共に、アイドルタスクＩＤ＿４の実行時間を算出して積算する（ｘｘｘ）。また、タスク計測サービス部４２４は、タスクＩＤ＿０の実行開始時間ｔ１を記憶する。
【００３２】
２．タスクＩＤ＿０の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿０の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿０の実行終了時間ｔ２から実行開始時間ｔ１を減算し、これをタスクＩＤ＿０の実行時間（ｔ２−ｔ１）とする。このとき、タスクＩＤ＿０の実行中に、これより優先度が高いタスクが実行されていないので、タスク計測サービス部４２４は、タスクＩＤ＿０の実行時間（ｔ２−ｔ１）を処理負荷とする。また、タスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を再開する。
【００３３】
３．タスクＩＤ＿３の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿３の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を中断すると共に、タスクＩＤ＿３の実行開始時間ｔ３を記憶する。また、タスク計測サービス部４２４は、タスクＩＤ＿３の実行開始時間ｔ３からタスクＩＤ＿０の実行終了時間ｔ２を減算してアイドルタスクＩＤ＿４の実行時間（ｔ３−ｔ２）を求め、アイドルタスクＩＤ＿４の実行積算時間に積算する（ｘｘｘ＋（ｔ３−ｔ２））。さらに、タスク計測サービス部４２４は、タスクの処理負荷を計測する基準となる計測時間を規定する、所定の定時タスクの一例であるタスクＩＤ＿３を実行したため、アイドルタスクＩＤ＿４の実行積算時間をクリア（リセット）する。
【００３４】
４．タスクＩＤ＿３の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿３の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿３の実行終了時間ｔ４から実行開始時間ｔ３を減算し、これをタスクＩＤ＿３の実行時間（ｔ４−ｔ３）とする。このとき、タスクＩＤ＿３は優先度が最も高いタスクであるため、タスク計測サービス部４２４は、タスクＩＤ＿３の実行時間（ｔ４−ｔ３）を処理負荷とする。また、タスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を再開する。
【００３５】
５．タスクＩＤ＿０の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿０の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を中断すると共に、タスクＩＤ＿０の実行開始時間ｔ５を記憶する。また、タスク計測サービス部４２４は、タスクＩＤ＿０の実行開始時間ｔ５からタスクＩＤ＿３の実行終了時間ｔ４を減算してアイドルタスクＩＤ＿４の実行時間（ｔ５−ｔ４）を求め、アイドルタスクＩＤ＿４の実行積算時間に積算する（０＋（ｔ５−ｔ４））。
【００３６】
６．タスクＩＤ＿１の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿１の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、実行中のタスクＩＤ＿０より優先度が高いタスクＩＤ＿１を実行するため、タスクＩＤ＿０の処理負荷計測を中断すると共に、タスクＩＤ＿１の実行開始時間ｔ６を記憶する。
【００３７】
７．タスクＩＤ＿２の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿２の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、実行中のタスクＩＤ＿１より優先度が高いタスクＩＤ＿２を実行するため、タスクＩＤ＿１の処理負荷計測を中断すると共に、タスクＩＤ＿２の実行開始時間ｔ７を記憶する。
【００３８】
８．タスクＩＤ＿２の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿２の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿２の実行終了時間ｔ８から実行開始時間ｔ７を減算し、これをタスクＩＤ＿２の実行時間（ｔ８−ｔ７）とする。このとき、タスクＩＤ＿２より優先度が高いタスクが実行されなかったため、タスク計測サービス部４２４は、タスクＩＤ＿２の実行時間（ｔ８−ｔ７）を処理負荷とする。また、タスク計測サービス部４２４は、中断していたタスクＩＤ＿１の処理負荷計測を再開する。
【００３９】
９．タスクＩＤ＿１の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿１の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿１の実行終了時間ｔ９から実行開始時間ｔ６を減算し、これをタスクＩＤ＿１の実行時間（ｔ９−ｔ６）とする。このとき、タスクＩＤ＿１の実行中に優先度が高いタスクＩＤ＿２が実行され、タスクＩＤ＿１の実行が一時的に中断されたので、タスク計測サービス部４２４は、タスクＩＤ＿１の実行時間（ｔ９−ｔ６）からタスクＩＤ＿２の実行時間（ｔ８−ｔ７）を減算し、これをタスクＩＤ＿１の処理負荷（（ｔ９−ｔ６）−（ｔ８−ｔ７））とする。また、タスク計測サービス部４２４は、中断していたタスクＩＤ＿０の処理負荷計測を再開する。
【００４０】
１０．タスクＩＤ＿０の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿０の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿０の実行終了時間ｔ１０から実行開始時間ｔ５を減算し、これをタスクＩＤ＿０の実行時間（ｔ１０−ｔ５）とする。このとき、タスクＩＤ＿０の実行中に優先度が高いタスクＩＤ＿１及びタスクＩＤ＿２が実行され、タスクＩＤ＿０の実行が一時的に中断されたので、タスク計測サービス部４２４は、タスクＩＤ＿０の実行時間（ｔ１０−ｔ５）からタスクＩＤ＿１及びタスクＩＤ＿２の実行時間（ｔ９−ｔ６）を減算し、これをタスクＩＤ＿０の処理負荷（（ｔ１０−ｔ５）−（ｔ９−ｔ６））とする。また、タスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を再開する。
【００４１】
１１．タスクＩＤ＿３の負荷計測開始
タスク管理部４２２Ａは、タスクＩＤ＿３の負荷計測を開始することを示すタスク計測開始信号をタスク計測サービス部４２４に送信する。タスク計測開始信号を受信したタスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を中断すると共に、タスクＩＤ＿３の実行開始時間ｔ１１を記憶する。また、タスク計測サービス部４２４は、タスクＩＤ＿３の実行開始時間ｔ１１からタスクＩＤ＿０の実行終了時間ｔ１０を減算してアイドルタスクＩＤ＿４の実行時間（ｔ１１−ｔ１０）を求め、アイドルタスクＩＤ＿４の実行積算時間に積算する（（ｔ５−ｔ４）＋（ｔ１１−１０））。さらに、タスク計測サービス部４２４は、タスクの処理負荷を計測する基準となる計測時間を規定する、所定の定時タスクの一例であるＩＤ＿３を実行したため、アイドルタスクＩＤ＿４の実行積算時間をクリアする。
【００４２】
１２．タスクＩＤ＿３の負荷計測終了
タスク管理部４２２Ａは、タスクＩＤ＿３の負荷計測を終了することを示すタスク計測終了信号をタスク計測サービス部４２４に送信する。タスク計測終了信号を受信したタスク計測サービス部４２４は、タスクＩＤ＿３の実行終了時間ｔ１２から実行開始時間ｔ１１を減算し、これをタスクＩＤ＿３の実行時間（ｔ１２−ｔ１１）とする。このとき、タスクＩＤ＿３は優先度が最も高いタスクであるため、タスク計測サービス部４２４は、タスクＩＤ＿３の実行時間（ｔ１２−ｔ１１）を処理負荷とする。また、タスク計測サービス部４２４は、アイドルタスクＩＤ＿４の処理負荷計測を再開する。
【００４３】
従って、コンフィグレーション４８０において「負荷」と設定されたタスクについて、優先的にＣＰＵ１２０Ａの処理負荷が計測されるため、制御対象機器を電子制御するための複数のタスクの一部について負荷を計測することができる。このため、電子制御装置１００の検証に関して柔軟性を付与することができる。
【００４４】
また、あるタスクの処理負荷を計測しているとき、これより優先度が高い少なくとも１つのタスクが実行されても、あるタスクの実行時間からその処理が中断されていた時間が減算されるため、タスクの処理負荷の測定精度を向上させることができる。要するに、ＣＰＵ１２０Ａは、「負荷」に設定されたタスクの処理負荷を計測しているとき、そのタスクより優先度が高い他のタスクを実行すれば、他のタスクの実行中、「負荷」に設定されたタスクの実行に要した時間の計測を中断する。
【００４５】
さらに、「アイドル」に設定されたタスクの処理負荷計測については、優先度が最も高い定時タスクの実行間隔を計測時間として、実際にタスクが実行された時間のみを積算した積算値が処理負荷となるため、そのタスクの処理負荷の測定精度も向上させることができる。
【００４６】
このような機能を提供するタスク計測サービス部４２４は、オペレーティングシステム４２０に組み込まれているため、これを利用するユーザは、タスク計測サービス部４２４に対するインターフェースのみを作成すれば足りる。このため、電子制御装置１００は、その製造工場などに限らず、これが搭載された車両が市場に出荷された後にも、アプリケーションプログラム４４０を構成する複数のタスクの処理負荷を計測することが容易である。
【００４７】
さらに、電子制御装置１００においては、例えば、コンフィグレーション４８０によって、ＣＰＵ１２０Ａの処理負荷を計測するか否かを一括して設定できるようにしてもよい。そして、電子制御装置１００は、ＣＰＵ１２０Ａの処理負荷を計測すると設定されているとき、タスクの実行に要する時間を計測すればよい。このようにすれば、電子制御装置１００が搭載された車両が市場に出荷された後には、ＣＰＵ１２０Ａの処理負荷が計測されないため、本来の制御対象機器の電子制御に支障が及ぶことを回避することができる。ここで、ＣＰＵ１２０Ａの処理負荷を計測するか否かを一括して設定するコンフィグレーション４８０が、プロセッサの処理負荷を計測するか否かを設定する第２の設定機構の一例として挙げられる。
【００４８】
その他、「アイドル」に設定されたタスクの処理負荷を計測する場合、そのタスクの実行時間を積算する代わりに、そのタスクの実行が中断されている中断時間を積算し、計測時間から中断時間を減算するようにしてもよい。
【００４９】
上記実施形態について、その技術的思想の一部を任意に組み合わせ、又は、その一部を任意に組み替えることで、新たな実施形態を生み出すことができる。従って、本発明は、上記実施形態に記載された内容に限らず、当業者であればこれらから容易に想起し得る技術的思想を含んだものであることを理解すべきである。
【符号の説明】
【００５０】
１００  電子制御装置
１２０Ａ  ＣＰＵ（プロセッサ）
４２０  オペレーティングシステム
４２４  タスク計測サービス部（処理負荷を計測する機能）
４８０  コンフィグレーション（第１の設定機構）
５００  タスク
【図１】
2019053612.tif 000003
【図２】
2019053612.tif 000004
【図３】
2019053612.tif 000005
【図４】
2019053612.tif 000006
【図５】
2019053612.tif 000007
【図６】
2019053612.tif 000008
【図７】
2019053612.tif 000009