(57)【要約】【課題】マイクロコンピュータが実行するタスクの実行態様を表す指標時間を計測する計測装置において、より簡単な構成で複数の指標時間を計測できるようにする。【解決手段】複数のタスクのうち、何れかのタスクを計測対象のタスク（対象タスク）として選択すると共に、対象タスクを、所定時間毎に切り換える。所定時間の間において、対象タスクが起床してから実際に実行されるまでの指標時間（待ち時間）と、対象タスクが実際に実行されてから終了するまでの指標時間（経過時間）と、対象タスクの実行が終了してから次に起床されるまでの指標時間（余裕時間）とを計測するタイマＡと、経過時間のうち、ＣＰＵの仕事が実際に対象タスクの実行に割り当てられた指標時間（実行時間）を計測するタイマＢとを設けることで、その４つの指標時間について計測する。これにより、複数のタスクについて、複数の指標時間を計測できる。【選択図】図１４
2008305238.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータが実行する複数のタスクのそれぞれについて、そのタスクの状況毎に、そのタスクがその状況下にある期間（以下、指標時間と言う）を計測する計測装置であって、
一定時間毎にカウント動作するカウンタを備え、
前記複数のタスクのうち、何れかのタスクを、予め定められた切り換え条件に達する毎に、計測対象のタスク（以下、対象タスクと言う）として順次選択すると共に、その対象タスクの状況が変化したときの前記カウンタのカウント値に基づき、その対象タスクの状況が変化する直前の状況についての前記指標時間を算出するようになっていることを特徴とする計測装置。
【請求項２】
請求項１に記載の計測装置において、
前記カウンタを少なくとも２つ備え、
前記対象タスクの実行が開始されてから終了するまでの期間と、その開始から終了までの期間のうち、その対象タスクの実行のために前記マイクロコンピュータのＣＰＵの仕事が割り当てられた期間とを計測することを特徴とする計測装置。
【請求項３】
請求項１又は請求項２に記載の計測装置において、
前記対象タスクが起床されてから、その対象タスクの実行が開始されるまでの期間を計測することを特徴とする計測装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の計測装置において、
前記対象タスクの実行が終了してから、その対象タスクが次に起床されるまでの期間を計測することを特徴とする計測装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の計測装置において、
前記複数のタスクのそれぞれは、起床のタイミングが予め定められており、
前記対象タスクの起床タイミングで、その対象タスクが実行されない現象の回数を計測する検出手段を備えていることを特徴とする計測装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、その計測できた指標時間の情報は、いつ計測できた情報かが識別可能に記憶されるように構成されていることを特徴とする計測装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、その計測できた指標時間の長さのうち、最大値を、タスクの状況の種別毎に算出するようになっていることを特徴とする計測装置。
【請求項８】
請求項１ないし請求項７の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、その計測できた指標時間の長さのうち、最小値を、タスクの状況の種別毎に算出するようになっていることを特徴とする計測装置。
【請求項９】
請求項１ないし請求項８の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、その計測できた指標時間の長さの平均値を、タスクの状況の種別毎に算出するようになっていることを特徴とする計測装置。
【請求項１０】
請求項１ないし請求項９の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、その計測できた指標時間の長さと、その長さ毎の発生頻度とを表す度数分布情報を、解析用情報として出力するようになっていることを特徴とする計測装置。
【請求項１１】
請求項１ないし請求項１０の何れか１項に記載の計測装置において、
前記複数のタスクのうち、何れかのタスクについて、同じ状況についての前記指標時間を複数回分計測すると共に、前記マイクロコンピュータが備えるＣＰＵの負荷は変化するようになっており、そのＣＰＵの負荷の度合い毎の、指標時間の長さとその長さ毎の発生頻度とを表す度数分布情報を、解析用情報として出力するようになっていることを特徴とする計測装置。
【請求項１２】
請求項１０又は請求項１１に記載の計測装置において、
前記解析用情報は、グラフであると共に、そのグラフのプロット点が、前記タスクの種類毎に色分けされていることを特徴とする計測装置。
【請求項１３】
請求項１０ないし請求項１２の何れか１項に記載の計測装置において、
前記解析用情報は、グラフであると共に、そのグラフのプロット点が、前記タスクの状況の種別毎に色分けされていることを特徴とする計測装置。
【請求項１４】
請求項１ないし請求項１３の何れか１項に記載の計測装置において、
前記切り換え条件は、所定の時間が経過することであることを特徴とする計測装置。
【請求項１５】
請求項１ないし請求項１３の何れか１項に記載の計測装置において、
前記切り換え条件は、前記指標時間の算出回数が所定の回数になることであることを特徴とする計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスクの実行態様を表す指標を計測する計測装置に関する。
【背景技術】
【０００２】
従来より、例えば車両用電子制御装置に搭載されるマイクロコンピュータでは、ＯＳ（オペレーティングシステム）によるマルチタスクの機能を利用して、制御対象を制御するための複数のタスクを実行するようにしている。そして、この種のマイクロコンピュータでは、制御仕様の複雑化に伴い実行すべきタスクは増加しており、このためタスクの処理負荷は増大傾向にある。
【０００３】
そこで、タスクの実行態様を解析して、タスクがより効率よく実行されるようにするためのプログラム設計やデバッグが行われている。
タスクの実行態様の解析に際しては、タスクの実行態様を表す以下の（１）〜（５）のような指標が用いられる。
（１）待ち時間：タスクが起床されてから、そのタスクが実際に開始されるまで（マイクロコンピュータのＣＰＵの仕事がそのタスクに割り当てられるまで）の時間。
（２）経過時間：タスクが実際に開始されてから（ＣＰＵの仕事がタスクに割り当てられてから）、そのタスクが終了するまでの時間。例えば他の高優先度タスクが割り込みで実行されたような場合には、その割り込みの実行中の時間も含む。
（３）実行時間：経過時間のうち、対象とするタスクの実行にのみ要した総時間。例えば、割り込みによる他の高優先度タスクの実行時間は含まない。
（４）余裕時間：タスクが終了してから、次にそのタスクが再び起床されるまでの時間。
（５）抜け回数：タスクの起床の際、予めタスク毎に登録しておいた多重起床許可回数を超えてしまったため、その起床に係る新たなタスクが実行されなくなる現象の回数。
【０００４】
例えば特許文献１には、上述（３）の実行時間を計測する実行時間計測装置が記載されている。この実行時間計測装置では、１つのカウンタで、複数のタスクのそれぞれについて、実行時間を計測できるようになっている。
【０００５】
具体的に、以下のように動作して、例えばタスクＡ及びタスクＢの実行時間を計測する。尚、タスクＡが最初に開始されたとする。
１．タスクＡの実行が開始されると、カウンタがカウント動作を開始する。
２．実行対象がタスクＡからタスクＢに切り換わる際、その時のカウンタのカウント値（タスクＡについてのカウント値）をタスクＡ用のメモリ領域に記憶しておくと共に、タスクＢの開始に伴い、カウンタが例えば０からカウント動作を開始する。
３．その後、実行対象がタスクＢからタスクＡに切り換わる際、その時のカウンタのカウント値（タスクＢについてのカウント値）をタスクＢ用のメモリ領域に記憶しておくと共に、タスクＡ用のメモリ領域に記憶させたカウント値をカウンタにセットし、カウンタは、タスクＡの開始に伴い、そのセットされたカウント値からカウント動作を継続する。
４．タスクＡが終了したときのカウンタのカウント値を、タスクＡの実行時間とする。尚、タスクＢについても同様である。
【０００６】
以上のようにして、タスクＡ及びタスクＢのそれぞれについて、タスクの実行が断続的であった場合でも、１個のカウンタで、実行時間を計測することができる。
尚、例えば特許文献２には、上記（１）の待ち時間を計測する装置が記載され、例えば特許文献３には、上記（４）の余裕時間を計測する装置が記載されている。
【特許文献１】特開平５−１６５６５５号公報
【特許文献２】特開２０００−２４２５２２号公報
【特許文献３】特開２００６−９０３５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の実行時間計測装置では、実行対象のタスクが切り換わる毎に、実行が中断される方のタスクの実行時間をカウンタから取得してメモリに記憶しておくと共に、実行が再開される方のタスクのそれまでの総実行時間をメモリから読み出してカウンタにセットする、というように、多くの処理が必要となる。このため、実行時間計測装置の処理負荷が増大する。
【０００８】
また、タスクのそれぞれについて、実行時間を記憶しておくためのメモリ領域を設ける必要があるため、測定対象のタスクの数が増加すると、より多くのメモリ資源が必要となってしまう。
【０００９】
さらに、上記特許文献１の実行時間計測装置では、実行時間以外の指標を計測する場合、計測したい指標毎に、カウンタ及びメモリ領域を設ける必要がある。例えば、上記特許文献１において、上記特許文献２の装置或いは特許文献３の装置のように、待ち時間或いは余裕時間を測定しようとすると、待ち時間測定用或いは余裕時間測定用のカウンタ及びメモリ領域がさらに必要となる。
【００１０】
本発明は、こうした問題に鑑みなされたもので、マイクロコンピュータが実行するタスクの実行態様を表す指標を計測する計測装置において、より簡単な構成で複数の指標を計測できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するためになされた請求項１に記載の計測装置は、マイクロコンピュータが実行する複数のタスクのそれぞれについて、そのタスクの状況毎に、そのタスクがその状況下にある期間（以下、指標時間と言う）を計測するものである。
【００１２】
具体的に、一定時間毎にカウント動作するカウンタを備え、複数のタスクのうち、何れかのタスクを、予め定められた時間が経過する毎に、計測対象のタスク（以下、対象タスクと言う）として順次選択すると共に、その対象タスクの状況が変化したときのカウンタのカウント値に基づき、その対象タスクの状況が変化する直前の状況についての指標時間を算出するようになっている。
【００１３】
この請求項１の計測装置では、計測対象のタスク（対象タスク）を順次選択するため、複数のタスクのそれぞれについて、順番に、ある状況についての指標時間を計測することができる。尚、状況の種別は１つの場合も考えられるし、複数の場合も考えられる。
【００１４】
例えば、請求項１の計測装置では、予め定められた切り換え条件に達するまでの間において対象タスクの指標時間を計測するため、その予め定められた切り換え条件に達するまでの間であれば、対象タスクについて複数の指標時間を計測することができる。つまり、その予め定められた切り換え条件に達するまでの間において、ある状況が現れると共にその状況が完結したならば、その状況についての指標時間を計測することができると共に、その出現〜完結した状況が複数あれば、その複数の状況について指標時間を計測できる。
【００１５】
よって、請求項１の計測装置では、複数のタスクのそれぞれについて、複数の指標時間を計測することが可能になる。しかも、カウンタを用いた簡単な構成で指標時間を算出することができるため有利である。具体的に、計測装置が大きくなってしまうことやコストが増大してしまうことを防止することができるし、例えばカウント値を読み出すという簡単な処理で指標時間を算出できるようになって、計測装置の負荷を抑えることができる。
【００１６】
ここで、請求項１の計測装置においては、具体的に、請求項２のように構成すると良い。
請求項２の計測装置では、請求項１の計測装置において、カウンタを少なくとも２つ備えている。そして、対象タスクの実行が開始されてから終了するまでという状況の期間（以下、経過時間と記載する）と、その開始から終了までという状況の期間のうち、その対象タスクの実行のためにマイクロコンピュータのＣＰＵの仕事が割り当てられているという状況の期間（以下、実行時間と記載する）とを計測する。
【００１７】
より詳しく、経過時間とは、対象タスクが実際に開始されてから（ＣＰＵの仕事がタスクに割り当てられてから）、その対象タスクが終了するまでの時間のことであり、例えば他の高優先度タスクが割り込みで実行されたような場合には、その割り込みの実行中の時間も含む趣旨である。そして、実行時間とは、経過時間のうち、対象タスクの実行にのみ要した総時間のことであり、例えば割り込みによる他の高優先度タスクの実行時間は含まない趣旨である。
【００１８】
このような経過時間と実行時間とは、期間が重複するため、１つのカウンタで同時に計測することはできない。
一方、請求項２の計測装置では、カウンタを少なくとも２つ備えているため、経過時間計測用及び実行時間計測用に、別々のカウンタを割り当てることができ、このため、経過時間と実行時間とを並行に（同時に）計測することができるようになる。例えば複雑な構成や処理が不要であり、簡単な構成で、経過時間と実行時間とを計測することができる。
【００１９】
次に、請求項３の計測装置は、請求項１，２の計測装置において、対象タスクが起床されてから、その対象タスクの実行が開始されるまでという状況の期間（以下、待ち時間と記載する）を計測することを特徴としている。
【００２０】
請求項３の計測装置では、待ち時間を計測することができ、これによれば、タスクの実行態様の解析に資することができる。
次に、請求項４の計測装置では、請求項１〜３の計測装置において、対象タスクの実行が終了してから、その対象タスクが次に起床されるまでという状況の期間（以下、余裕時間と記載する）を計測することを特徴としている。
【００２１】
請求項４の計測装置では、余裕時間を計測することができ、これによれば、タスクの実行態様の解析に資することができる。
尚、経過時間と待ち時間と余裕時間とは、期間が重複しないため、１つのカウンタで計測することができる。
【００２２】
次に、請求項５の計測装置は、請求項１〜４の計測装置において、複数のタスクのそれぞれは、起床のタイミングが予め定められており、対象タスクの起床タイミングで、その対象タスクが実行されない現象の回数を計測する検出手段を備えていることを特徴としている。
【００２３】
例えば、対象タスクの起床タイミングにおいて、予めその対象タスクについて登録しておいた多重起床許可回数を超えてしまっていると、その対象タスクが実行されなくなる（いわゆる「抜け」が生じる）。
【００２４】
請求項５の計測装置では、対象タスクの起床タイミングで、その対象タスクが実行されない現象、つまり抜けが生じるという現象の回数を計測することができ、これによれば、タスクの実行態様の解析に資することができる。
【００２５】
次に、請求項６の計測装置では、請求項１〜５の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、その計測できた指標時間の情報は、いつ計測できた情報かが識別可能に記憶されるように構成されている。
【００２６】
これによれば、例えば指標時間の長さの変化等が時系列で分かるようになる。このため、統計的な検証が可能となり、タスクの実行態様の解析に有利である。例えば、指標時間のデータを加工したりすると共に、その加工後のデータを時系列で整理したりすることで、より精密な検証が可能となる。
【００２７】
次に、請求項７の計測装置では、請求項１〜６の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、その計測できた指標時間の長さのうち、最大値を、タスクの状況の種別毎に算出するようになっている。
【００２８】
指標時間の最大値が分かれば、その最大値が許容できるか否かの判断ができるようになると共に、その最大値が許容範囲内に収まるようにタスク毎の優先度を調整したり、タスクを分割したりするといったような対処がとり得るようになる。
【００２９】
次に、請求項８の計測装置は、請求項１〜７の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、その計測できた指標時間の長さのうち、最小値を、タスクの状況の種別毎に算出するようになっている。
【００３０】
指標時間の最小値が分かれば、請求項７と同様に、その最小値が許容できるか否かの判断ができるようになると共に、その最小値が許容範囲内に収まるようにタスク毎の優先度を調整したり、タスクを分割したりするといったような対処がとり得るようになる。
【００３１】
次に、請求項９の計測装置では、請求項１〜８の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、その計測できた指標時間の長さの平均値を、タスクの状況の種別毎に算出するようになっている。
【００３２】
マイクロコンピュータの負荷等は刻一刻と変化し、指標時間の長さのばらつきは大きくなる。このため、個々の指標時間のみでは、有効な解析を行うことは難しい。
この点、請求項９の計測装置では、指標時間の平均値を算出するため、タスクの実行態様をより有効に解析できるようになる。そして、例えば、平均値が許容できるか否かの判断ができるようになると共に、その平均値が許容範囲内に収まるようにタスク毎の優先度を調整したり、タスクを分割したりするといったような対処がとり得るようになる。
【００３３】
例えば、複数のタスクのそれぞれについて、上述の実行時間についての平均値を算出すれば、そのタスクのそれぞれについてマイクロコンピュータが備えるＣＰＵの占有率を算出することもできるようになり、これによりＣＰＵの負荷の度合いを推測することができる。さらに、ＣＰＵの負荷の度合いが適切なものとなるように、上述のように、タスク毎の優先度を調整したり、タスクを分割したりするといったような対処がとり得るようになる。
【００３４】
次に、請求項１０の計測装置は、請求項１〜９の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、その計測できた指標時間の長さと、その長さ毎の発生頻度とを表す度数分布情報を、解析用情報として出力するようになっている。
【００３５】
これによれば、指標時間の長さの度数分布が簡単に分かるようになって、タスクの実行態様の解析がよりし易くなる。
次に、請求項１１の計測装置は、請求項１〜１０の計測装置において、複数のタスクのうち、何れかのタスクについて、同じ状況についての指標時間を複数回分計測すると共に、マイクロコンピュータが備えるＣＰＵの負荷は変化するようになっており、そのＣＰＵの負荷の度合い毎の、指標時間の長さとその長さ毎の発生頻度とを表す度数分布情報を、解析用情報として出力するようになっている。
【００３６】
これによれば、ＣＰＵの負荷の度合い毎の、指標時間の長さの度数分布も分かるようになり、タスクの実行態様の解析がよりし易くなる。
次に、請求項１２の計測装置は、請求項１０，１１の計測装置において、解析用情報は、グラフであると共に、そのグラフのプロット点が、タスクの種類毎に色分けされていることを特徴としている。
【００３７】
これによれば、指標時間の度数分布が視覚的に認識しやすいものとなる。また、タスク毎の情報を認識し易くなる。
次に、請求項１３の計測装置は、請求項１０〜１２の計測装置において、解析用情報は、グラフであると共に、そのグラフのプロット点が、タスクの状況の種別毎に色分けされていることを特徴としている。
【００３８】
これによれば、請求項１２のように、指標時間の度数分布が視覚的に認識しやすいものとなる。また、タスクの状況の種別毎の情報を認識し易くなる。
次に、請求項１４の計測装置は、請求項１〜１３の計測装置において、切り換え条件は、所定の時間が経過することであることを特徴としている。
【００３９】
尚、所定の時間は、どのような長さでも良い趣旨である。例えば、タスク毎に同じ時間であっても良いし、タスク毎に異なる時間であっても良い。さらに、例えば、予めメモリに時間の長さを記憶しておいても良いし、あるルールや計算式を定めておき、時間の長さがそのルールや計算式に従ってその都度算出される構成にしても良い。
【００４０】
所定の時間が経過することを切り換え条件とすれば、切り換え条件の設定を簡単にできると共に、その切り換え条件に達したか否かの判断が容易となって、計測装置の構成を簡素化できる。
【００４１】
次に、請求項１５の計測装置は、請求項１〜１３の計測装置において、切り換え条件は、指標時間の算出回数が所定の回数になることであることを特徴としている。
尚、算出回数について、１回とは、複数種類の指標時間のそれぞれを一度ずつひととおり算出した時点で１回とカウントする趣旨である。これによれば、指標時間の長さにかかわらず、複数種類の指標時間が確実に計測されるようになる。尚、勿論、複数種類の指標時間の何れかを算出するたびに、算出回数を１回とカウントするようにしても良い。
【発明を実施するための最良の形態】
【００４２】
以下に、本発明の実施形態を図面に基づき説明する。
図１において、マイコン１０及びデバッグ装置３は、本発明の計測装置に相当している。特に、マイコン１０の後述するソフト処理部１２、ハードカウンタ部１４、タスクＩＤ記憶部１６、タスクＩＤ書換部１８、及び計測結果格納部２０の機能が計測装置に相当している。
【００４３】
そして、そのマイコン１０の図示しないＣＰＵが実行するタスクについて、指標時間として、待ち時間、経過時間、実行時間、余裕時間を計測する。これらの指標時間の内容については、従来技術の説明の欄で記載した通りであり、ここでは説明を省略する。
【００４４】
マイコン１０は、車両を制御する電子制御装置（以下、ＥＣＵと記載する）２に搭載されている。また、デバッグ装置３は、ＥＣＵ２の外部に設けられ、そのＥＣＵ２と通信可能に接続されている。
【００４５】
次に、マイコン１０の構成について説明する。
マイコン１０は、前述のように、ソフト処理部１２と、ハードカウンタ部１４と、タスクＩＤ記憶部１６と、タスクＩＤ書換部１８と、計測結果格納部２０とを備えている。
【００４６】
ソフト処理部１２は、オペレーティングシステム（以下、ＯＳと記載する）の管理の下、タスクを実行する。尚、マイコン１０に搭載されるＯＳは、同時に複数のタスクを並行して行うマルチタスクＯＳである。
【００４７】
ハードカウンタ部１４は、２つのハードカウンタ１４Ａ，１４Ｂから構成される。ハードカウンタ１４Ａ，１４Ｂは、その名の通りハードにより構成される。
図２に、そのハードカウンタ１４Ａ，１４Ｂの詳細を示す。
【００４８】
ハードカウンタ１４Ａ，１４Ｂは、図２に示すように、一定時間毎にカウントアップするタイマと、タスク計測タイマレジスタと、タスク計測タイマコントロールレジスとからなる。
【００４９】
タスク計測タイマレジスタは、本例では、３２ビットの読み出し専用レジスタであり、図２にも示すように、上位２４ビットにタイマのカウント値が格納される。尚、下位８ビットは使用されておらず、本例ではその下位８ビットにダミーデータとして０が格納されている。
【００５０】
タスク計測タイマコントロールレジスタは、タイマの動作を制御するための情報が書き込まれるレジスタであり、タイマの動作に応じて４つの領域を有している。
例えば、タイマの動作としては、停止、開始、再開始、リセットの４つがある。停止は、カウント値はそのままにして（維持して）カウント動作を停止することであり、開始は、現在のカウント値からカウントアップを継続することであり、再開始は、カウント値を０に戻し、その０からカウントアップを開始することであり、リセットは、カウント値を０に戻すと共に、カウントアップを停止することである。
【００５１】
タスク計測タイマコントロールレジスタは、停止、開始、再開始、リセットの項目がそれぞれ割り当てられた４つの領域を有している。そして、例えば、停止の項目が割り当てられた領域に０が書き込まれることで、タイマが停止するようになっている。以下、同様に、開始の項目が割り当てられた領域に０が書き込まれることでタイマが開始し、再開始の項目が割り当てられた領域に０が書き込まれることでタイマが再開始し、リセットの項目が割り当てられた領域に０が書き込まれることでタイマがリセットされる。
【００５２】
そして、本実施形態では、ハードカウンタ１４Ａにより、待ち時間、経過時間、及び余裕時間が計測される。そして、ハードカウンタ１４Ｂにより、実行時間が計測される。尚、以下、ハードカウンタ１４Ａが備えるタイマをタイマＡと記載し、ハードカウンタ１４Ｂが備えるタイマをタイマＢと記載する。
【００５３】
タスクＩＤ記憶部１６は、上記の指標時間を計測する計測対象としてのタスクを特定するためのタスクＩＤを記憶しておく機能を有する。ここで、本実施形態では、マイコン１０のＣＰＵが実行するタスク毎に、そのタスクに固有のタスクＩＤが割り当てられている。具体的に、タスク毎に、通し番号がタスクＩＤとして付与される。例えば、タスクの個数が１０個であれば、そのタスクのそれぞれに、０〜９の番号が付与される。タスクＩＤ記憶部１６は、具体的に、ＲＡＭから構成される。
【００５４】
図３は、タスクＩＤ記憶部１６の構成図である。図３に示すように、タスクＩＤ記憶部１６は、計測対象のタスクＩＤを記憶する領域を有している。
タスクＩＤ書換部１８は、タスクＩＤ記憶部１６に記憶されるタスクＩＤを書き換える機能を有する。
【００５５】
計測結果格納部２０は、計測結果、つまり計測した指標時間の情報を記憶しておく機能を有する。具体的に、ＲＡＭから構成される。
図４は、計測結果格納部２０の構成図である。
【００５６】
計測結果格納部２０は、図４に示すように、待ち時間、経過時間、実行時間、余裕時間のそれぞれについて、計測結果を記憶するための領域をそれぞれ有している。この領域は、タスクの種類毎に存在する。言い換えると、計測結果格納部２０には、指標時間が、何れのタスクについてのものかが識別可能に記憶されるようになっている。尚、各領域には、最新の計測結果が記憶されるようになっている。具体的に、計測結果格納部２０には、計測結果が順次上書きされるようになっている。また、デバッグ装置３は、計測結果格納部２０に記憶された計測結果を定期的に取得し、いつ計測できたものかを識別可能に記憶するようになっている。
【００５７】
次に、図５は、タスクＩＤ書換部１８が実行するタスクＩＤ書換処理を表すフローチャートである。タスクＩＤ書換部１８は、図５の処理を定期的に実行することで、予め定められた切換時間間隔毎に、タスクＩＤ記憶部１６のタスクＩＤを書き換える。切換時間の長さは、予め定められている。尚、その切換時間の長さは、マイコン１０が備える図示しないＲＯＭに予め記憶しておいても良いし、ＲＡＭに記憶しておくようにしても良い。
【００５８】
図５の処理では、まず、Ｓ１１０で、時間計測用の図示しないカウンタにより計測される時間（以下、カウンタ計測時間と記載する）の長さが、切換時間の長さよりも大きいか否かを判定する。
【００５９】
Ｓ１１０で、カウンタ計測時間が切換時間以下であると判定すると（Ｓ１１０：ＮＯ）、そのまま当該処理を終了する。
一方、Ｓ１１０で、カウンタ計測時間が切換時間より大きいと判定すると（Ｓ１１０：ＹＥＳ）、Ｓ１２０に移行する。
【００６０】
Ｓ１２０では、時間計測用の図示しないカウンタの値を０にする。つまり、カウンタ計測時間を０にリセットする。
次に、Ｓ１３０に進み、割り込みを禁止する。これは、次のＳ１４０の処理が確実に実行されるようにするためである。
【００６１】
続くＳ１４０では、タスクＩＤ記憶部１６に記憶されたタスクＩＤをインクリメントする。つまり、タスクＩＤ記憶部１６に記憶されたタスクＩＤとしての番号をインクリメントする。
【００６２】
次に、Ｓ１５０に進み、タスクＩＤ記憶部１６に記憶されたタスクＩＤとしての番号が、タスクの個数の上限値より小さいか否かを判定する。言い換えると、複数のタスクのそれぞれが全て、計測対象として指定されたか否かを判定する。
【００６３】
Ｓ１５０で、タスクＩＤがタスク個数の上限値以上と判定すると（Ｓ１５０：：ＮＯ）、複数のタスクのそれぞれが全て、計測対象として指定されたと判断して、Ｓ１６０に移行し、タスクＩＤ記憶部１６に０を書き込む。そして次に、Ｓ１７０に進み、割り込みを許可する。そしてその後、当該処理を終了する。
【００６４】
一方、Ｓ１５０で、タスクＩＤ記憶部１６に記憶されたタスクＩＤとしての番号がタスク個数の上限値より小さいと判定すると（Ｓ１５０：：ＹＥＳ）、Ｓ１７０に移行すると共に、その後、当該処理を終了する。
【００６５】
次に、図６は、ソフト処理部１２が実行する起床時処理のフローチャートである。この起床時処理は、タスクの起床時に開始される。
この処理では、まず、Ｓ２１０で、起床に係るタスクＩＤが、タスクＩＤ記憶部１６に記憶されたタスクＩＤと同じか否かを判定する。つまり、起床に係るタスクが、計測対象のタスクか否かを判定する。
【００６６】
Ｓ２１０で、起床に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じでないと判定すると（Ｓ２１０：ＮＯ）、今回起床したタスクは計測対象でないと判断して、当該処理を終了する。
【００６７】
一方、Ｓ２１０で、起床に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じであると判定すると（Ｓ２１０：ＹＥＳ）、Ｓ２２０に移行する。
Ｓ２２０では、タスクの起床が成功したか否かを判定し、成功したと判定すると（Ｓ２２０：：ＹＥＳ）、Ｓ２３０に移行する。
【００６８】
Ｓ２３０では、タイマＡのカウント値を、余裕時間の生値として計測結果格納部２０に記憶させる。タイマＡは、後述するように、タスクの実行が終了したときに０からカウントアップを開始するようになっており（再開始）、このため、タスクの起床時のタイマＡのカウント値は、余裕時間を表す。
【００６９】
次に、Ｓ２４０に進み、タイマＡを再開始させる。さらに、Ｓ２５０に進み、タイマＢをリセットする。そしてその後、当該処理を終了する。尚、Ｓ２３０〜Ｓ２５０の処理は、同時に実行される趣旨である。
【００７０】
一方、Ｓ２２０でタスクの起床が成功しなかった、つまり、タスクの起床が失敗したと判定すると（Ｓ２２０：ＮＯ）、Ｓ２６０に移行する。
Ｓ２６０では、タスクの起床の失敗が、所定回数を超えてタスクを起床しようとしたためか否かを判定する。マルチタスクＯＳでは、例えば同時に起床可能なタスクの数が予め設定される。そして、この同時に起床可能なタスクの数を超えてタスクを起床することはできないようになっている。
【００７１】
Ｓ２６０で、所定回数を超えてタスクを起床しようとしたためでないと判定すると（Ｓ２６０：ＮＯ）、何らかの異常が生じているためと判断して、そのまま当該処理を終了する。
【００７２】
一方、Ｓ２６０で、所定回数を超えてタスクを起床しようとしたためと判定すると（Ｓ２６０：ＹＥＳ）、「抜け」が生じたと判断して、Ｓ２７０に進む。本実施形態で、「抜け」とは、起床可能な回数を超えてタスクを起床しようとしたために、その起床しようとしたタスクが起床できなかった現象のことを言う。
【００７３】
Ｓ２７０では、抜け回数をカウントする図示しないカウンタをインクリメントする。そしてその後、当該処理を終了する。
次に、図７は、ソフト処理部１２が実行する開始時処理のフローチャートである。この開始時処理は、タスクが実際に実行開始される際に開始される。
【００７４】
この処理では、まず、Ｓ３１０で、開始に係るタスクＩＤが、タスクＩＤ記憶部１６に記憶されたタスクＩＤと同じか否かを判定する。つまり、今回実行開始されるタスクが、計測対象のタスクか否かを判定する。
【００７５】
Ｓ３１０で、実行開始されるタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じでないと判定すると（Ｓ３１０：ＮＯ）、今回実行開始されるタスクは計測対象でないと判断して、当該処理を終了する。
【００７６】
一方、Ｓ３１０で、実行開始されるタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じであると判定すると（Ｓ３１０：ＹＥＳ）、Ｓ３２０に移行する。
Ｓ３２０では、タイマＡのカウント値を、待ち時間の生値として、計測結果格納部２０に記憶させる。前述のＳ２４０で、タスク起床時にタイマＡが再開始するため、タスクの実行が開始されるときのタイマＡのカウント値は、待ち時間を表す。
【００７７】
次に、Ｓ３３０に進み、タイマＡを再開始させる。さらに、Ｓ３４０に進み、タイマＢを再開始させる。そしてその後、当該処理を終了する。尚、Ｓ３２０〜Ｓ３４０の処理は、同時に実行される趣旨である。
【００７８】
次に、図８は、ソフト処理部１２が実行するレディ時処理のフローチャートである。このレディ時処理は、計測対象のタスクの状態がレディ（Ｒｅａｄｙ）になったとき、具体的に、計測対象のタスク以外のタスクの処理にＣＰＵの仕事が割り当てられ、計測対象のタスクの実行が保留されたときに開始される処理のフローチャートである。
【００７９】
この処理では、まず、Ｓ４１０で、実行の保留に係るタスクＩＤが、タスクＩＤ記憶部１６に記憶されたタスクＩＤと同じか否かを判定する。つまり、今回実行が保留されるタスクが、計測対象のタスクか否かを判定する。
【００８０】
Ｓ４１０で、実行の保留に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じでないと判定すると（Ｓ４１０：ＮＯ）、今回実行が保留されるタスクは計測対象でないと判断して、当該処理を終了する。
【００８１】
一方、Ｓ４１０で、実行の保留に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じであると判定すると（Ｓ４１０：ＹＥＳ）、Ｓ４２０に移行する。
Ｓ４２０では、タイマＢを停止させる。そしてその後、当該処理を終了する。
【００８２】
次に、図９は、ソフト処理部１２が実行する再開時処理のフローチャートである。この再開時処理は、実行が保留されたタスクの処理が再開されたときに開始される。
この処理では、まず、Ｓ５１０で、再開に係るタスクＩＤが、タスクＩＤ記憶部１６に記憶されたタスクＩＤと同じか否かを判定する。つまり、今回処理が再開されるタスクが、計測対象のタスクか否かを判定する。
【００８３】
Ｓ３１０で、再開に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じでないと判定すると（Ｓ３１０：ＮＯ）、今回処理が再開されるタスクは計測対象でないと判断して、当該処理を終了する。
【００８４】
一方、Ｓ５１０で、再開に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じであると判定すると（Ｓ５１０：ＹＥＳ）、Ｓ５２０に移行する。
Ｓ５２０では、タイマＢを開始させる。前述のように、計測対象のタスク以外のタスクの処理にＣＰＵの仕事が割り当てられたときタイマＢは停止し（Ｓ４２０）、そして、計測対象のタスクの処理が再開するとタイマＢが開始する（Ｓ５２０）。このようにして、計測対象のタスクの実行時間が計測される。
【００８５】
次に、図１０は、ソフト処理部１２が実行する終了時処理のフローチャートである。この終了時処理は、タスクの実行終了時に開始される。
この処理では、まず、Ｓ６１０で、終了に係るタスクＩＤが、タスクＩＤ記憶部１６に記憶されたタスクＩＤと同じか否かを判定する。つまり、今回終了するタスクが、計測対象のタスクか否かを判定する。
【００８６】
Ｓ６１０で、終了に係るタスクＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じでないと判定すると（Ｓ３１０：ＮＯ）、今回終了するタスクは計測対象のタスクでないと判断して、当該処理を終了する。
【００８７】
一方、Ｓ６１０で、終了に係るタスクのＩＤがタスクＩＤ記憶部１６に記憶されたタスクＩＤと同じであると判定すると（Ｓ６１０：ＹＥＳ）、Ｓ６２０に移行する。
Ｓ６２０では、タイマＡのカウント値を、経過時間の生値として計測結果格納部２０に記憶させる。前述のように、計測対象のタスクの実行が実際に開始された際、タイマＡが再開始する（Ｓ３３０）。このため、その計測対象のタスクの実行が終了した際のタイマＡのカウント値は、経過時間を表す。
【００８８】
次に、Ｓ６３０に進み、タイマＢのカウント値を、実行時間の生値として計測結果格納部２０に記憶させる。前述のように、タイマＢは、計測対象のタスクの実行中のみカウントアップし（Ｓ３４０、Ｓ５２０）、計測対象のタスク以外のタスクの実行中は、停止する（Ｓ４２０）。このため、タイマＢのカウント値は、実行時間を表す。
【００８９】
次に、Ｓ６４０に進み、タイマＡを再開始する。
次に、Ｓ６５０に進み、タイマＢをリセットする。そしてその後、当該処理を終了する。尚、Ｓ６２０〜Ｓ６５０の処理は、同時に実行される趣旨である。
【００９０】
次に、図１１〜図１３は、デバッグ装置３において実行される処理のフローチャートである。
図１１は、待ち時間、経過時間、実行時間、或いは余裕時間（以下、４つを合わせて指標時間とも記載する）の最大値を算出する最大値算出処理のフローチャートであり、図１２は、指標時間の最小値を算出する最小値算出処理のフローチャートであり、図１３は、指標時間の積算値を算出する積算値算出処理のフローチャートである。デバッグ装置３では、指標時間の最大値、最小値、及び積算値が記憶されるようになっている。尚、積算値算出処理は、積算値及び積算回数から平均値を算出するために実行される。つまり、積算値算出処理は、言い換えると、平均値を算出するための処理である。
【００９１】
図１１の最大値算出処理では、まず、Ｓ７１０において、指標時間の生値の今回値（最新値）が、記憶されている指標時間の最大値よりも大きいか否かを判定する。尚、今回値は、計測結果格納部２０から取得する。今回値が、記憶されている最大値より大きいと判定すると（Ｓ７１０：ＹＥＳ）、Ｓ７２０に移行し、その今回値を、その指標時間の最大値として新たに記憶する。そしてその後、当該処理を終了する。
【００９２】
一方、Ｓ７１０で、今回値が記憶されている最大値以下であると判定すると（Ｓ７１０：ＮＯ）、そのまま当該処理を終了する。
次に、図１２の最小値算出処理では、まず、Ｓ８１０において、指標時間の生値の今回値が、記憶されている指標時間の最小値よりも小さいか否かを判定する。今回値が、記憶されている最小値よりも小さいと判定すると（Ｓ８１０：ＹＥＳ）、Ｓ８２０に移行し、その今回値を、その指標時間の最小値として新たに記憶する。そしてその後、当該処理を終了する。
【００９３】
一方、Ｓ８１０で、今回値が、記憶されている最小値以上であると判定すると（Ｓ８１０：ＮＯ）、そのまま当該処理を終了する。
次に、図１３の積算値算出処理では、まず、Ｓ９１０で、積算回数をカウントするための図示しないカウンタをインクリメントする。
【００９４】
次に、Ｓ９２０に進み、前回までの指標時間の積算値（指標時間積算途中値）に、指標時間の生値の今回値を加えたものを、新たな指標時間積算途中値とする。
次に、Ｓ９３０に進み、積算回数をカウントするカウンタの値が、予め定められた積算回数以上か否かを判定する。つまり、規定の積算回数だけ積算したか否かを判定する。
【００９５】
積算回数をカウントするためのカウンタの値が規定の積算回数以上であると判定すると（Ｓ９３０：ＹＥＳ）、Ｓ９４０に移行し、９２０で算出した指標時間積算途中値を、指標時間積算値とする。
【００９６】
次に、Ｓ９５０に進み、積算回数をカウントするためのカウンタの値を０にリセットする。
次に、Ｓ９６０に進み、指標時間積算途中値を０にリセットする。そしてその後、当該処理を終了する。
【００９７】
尚、この場合、指標時間積算値を、規定の積算回数で除算することで、指標時間の平均値を算出することができる。
一方、Ｓ９３０で、指標時間積算カウンタの値が、規定の積算回数より小さいと判定すると（Ｓ９３０：ＮＯ）、そのまま当該処理を終了する。尚、この場合、指標時間積算途中値をカウンタのカウント値で除算することで、指標時間の平均値を算出することができる。
【００９８】
次に、図１４は、本実施形態の作用を表すタイムチャートであり、指標時間と、ＯＳにおいて発生するイベントと、タスクの状態と、ソフト処理部１２にて実行される処理との関係を表している。尚、ここでは、タスクが計測対象のタスク（以下、対象タスクと記載する）であるものとして説明する。また、タスクの状態について、「Ｒｅａｄｙ」とは、起床からディスパッチ（タスクの実行に実際にＣＰＵの仕事が割り当てられること）までの状態、或いは他のタスクにＣＰＵの負荷の仕事が割り当てられて実行が保留されている状態のことであり、「Ｒｕｎｎｉｎｇ」とは、タスクが実際に実行されている状態のことであり、「Ｓｕｓｐｅｎｄｅｄ」とは、タスクの実行が終了してから次に起床されるまでの状態のことである。
【００９９】
まず、対象タスクの起床に伴い、対象タスクの状態は「Ｒｅａｄｙ」となり、起床時処理（図６）が実行され、タイマＡが０からカウントを開始する（Ｓ２１０：ＹＥＳ→Ｓ２２０：ＹＥＳ→（Ｓ２３０）→Ｓ２４０）。
【０１００】
対象タスクがディスパッチされると、対象タスクの状態は「Ｒｕｎｎｉｎｇ」となり、開始時処理（図７）が実行されると共に、その時のタイマＡの値を待ち時間の生値として計測結果格納部２０に記憶させる（Ｓ３１０：ＹＥＳ→Ｓ３２０）。
【０１０１】
また、タイマＡ及びタイマＢを再開始させる（Ｓ３３０、Ｓ３４０）。
対象タスクの状態が「Ｒｕｎｎｉｎｇ」において、プリエンプト（対象タスクとは別のタスクの実行にＣＰＵの仕事が割り当てられること）が発生すると、対象タスクの状態は「Ｒｅａｄｙ」となり、レディ時処理（図８）が実行され、タイマＢが停止する（Ｓ４１０：ＹＥＳ→Ｓ４２０）。尚、このとき、タイマＡはカウントアップを継続する。
【０１０２】
その後、再び対象タスクがディスパッチされると、対象タスクの状態は「Ｒｕｎｎｉｎｇ」となり、再開時処理（図９）が実行され、タイマＢが開始する（Ｓ５１０：ＹＥＳ→Ｓ５２０）。
【０１０３】
そして、対象タスクの実行が終了すると、対象タスクの状態は「Ｓｕｓｐｅｎｄｅｄ」となり、終了時処理（図１０）が実行され、タイマＡのカウント値が経過時間の生値として計測結果格納部２０に格納されると共に（Ｓ６２０）、タイマＢのカウント値が実行時間の生値として計測結果格納部２０に格納される（Ｓ６３０）。また、タイマＡが０からカウントアップを開始すると共に（Ｓ６４０）、タイマＢのカウント値が０に戻る（Ｓ６５０）。
【０１０４】
その後、対象タスクが再び起床されると、対象タスクの状態は「Ｒｅａｄｙ」となり、起床時処理（図７）が実行され、タイマＡのカウント値が余裕時間の生値として計測結果格納部２０に記憶される（Ｓ２１０：ＹＥＳ→Ｓ２２０：ＹＥＳ→Ｓ２３０）。以後は、前述した通りである。
【０１０５】
このようにして、対象タスクについて、待ち時間、経過時間、実行時間、及び余裕時間が計測される。また、抜け回数も計測される（Ｓ２７０）。さらに、タスクＩＤ書換部１０により、対象タスクが所定の切換時間毎に切り換えられるため、本実施形態では、２つのタイマ（ハードカウンタ１４Ａ，１４Ｂ）により、複数のタスクについて、複数の指標時間を計測することができるようになっている。
【０１０６】
次に、本実施形態では、デバッグ装置３において、指標時間の長さとその発生頻度との関係を表す度数分布グラフが表示されるようになっている。図１５、図１６は、グラフの一例である。
【０１０７】
図１５は、度数分布の２次元グラフである。図１５の二次元グラフでは、タスクＳ、タスクＴ、タスクＵの３種類のタスクのそれぞれについて、待ち時間についての度数分布を表している。Ｘ軸は、待ち時間（μｓ）であり、Ｙ軸は、１ｓｅｃあたりの発生回数（回／１ｓ）である。
【０１０８】
図１５では、プロット点が、タスクの種類毎に色分けされている。また、プロット点の形状をタスク毎に異ならせるようにしている。具体的に、タスクＳのプロット点の形状は□で表し、タスクＴのプロット点の形状は○で表し、タスクＵのプロット点の形状は△で表している。
【０１０９】
これにより、視覚的に視認しやすいものとなっている。
次に、図１６は、度数分布の３次元グラフである。図１６では、タスクＳの待ち時間について、度数分布を表す。Ｘ軸は、待ち時間（μｓ）であり、Ｚ軸は、１ｓｅｃあたりの発生回数（回／１ｓ）であり、Ｙ軸は、時刻である。本例では、時刻１〜時刻１５までの所定の時刻において、待ち時間と発生回数との関係を表している。またここで、ＣＰＵの負荷は、刻一刻と変化するようになっており、時刻１〜時刻１５においてはそれぞれ、ＣＰＵの負荷が異なっている。具体的に、時刻１は最もＣＰＵの負荷が小さくなっており、時刻１５に向かって順次ＣＰＵの負荷は大きくなっており、時刻１５におけるＣＰＵの負荷が最も大きい。つまり、図１６の３次元グラフは、ＣＰＵの負荷の度合い毎の、待ち時間の長さとその長さ毎の発生頻度との関係を表している。
【０１１０】
以上説明したように、本実施形態においては、計測対象のタスク（対象タスク）を順次切り換えることで、複数のタスクのそれぞれについて、順番に、指標時間（具体的に、待ち時間、経過時間、実行時間、及び余裕時間）を計測する。このため、複数のタスクのそれぞれについて、複数の指標時間を計測することができる。特に、指標時間を計測するためのタイマを２つ備えており、経過時間と実行時間とを、同時に計測できるようになっている。また、タイマをハードで構成し、そのタイマの値を読み込むという簡単な処理で指標時間を計測することができ、複雑な構成や処理が不要となって有利である。
【０１１１】
また、上記実施形態では、所定回数を超えてタスクを起床しようとしたために起床に失敗した回数もカウントして計測できるようになっている。このような計測装置によれば、タスクの実行態様の解析に資することができる。
【０１１２】
また、上記実施形態において、指標時間は、デバッグ装置３において、いつ計測できた指標時間かが識別可能に記憶されるようになっている。さらに、指標時間の最大値、最小値、積算値（平均値）が算出されるようになっている。これによれば、計測装置の使用者は、指標時間の統計的な検証が可能となり、タスクの実行態様をより詳細に解析できるようになる。このため、より最適なプログラム設計ができるようになる。例えば、タスク毎の優先度を調整したり、タスクを分割したりするといったような対処がとりやすくなる。
【０１１３】
また、上記実施形態において、指標時間の長さについての度数分布グラフが表示されるようになっているため、計測装置の使用者は、タスクの実行態様を視覚的に認識し易くなる。
【０１１４】
尚、上記実施形態において、Ｓ２７０の処理が検出手段に相当している。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術範囲内において種々の形態をとることができる。
【０１１５】
例えば、上記実施形態において、図１５，図１６では、待ち時間についての度数分布を示したが、他の指標時間についての度数分布を示しても良い。複数の指標時間の度数分布を１つのグラフ上に示す場合、指標時間毎に、プロット点が色分けされるようにすると良い。そうすれば、視覚的により認識しやすいものとなる。
【０１１６】
また、上記実施形態では、タスクの起床時にタイマＢがリセットされるようになっているが（Ｓ２５０）、タスクの起床から、実際にそのタスクの実行が開始されるまでの間であれば、タイマＢのリセットタイミングはいつでも良い。また、タスクの実行開始のタイミングで、タイマＢがリセットされると共にカウントアップが開始されるようにしても良い。
【０１１７】
また、上記実施形態では、タスクの実行が終了したタイミングでタイマＢがリセットされるようになっているが（Ｓ６５０）、タスクの実行終了から、実際にそのタスクの実行が開始されるまでの間であれば、タイマＢのリセットタイミングはいつでも良い。また、タスクの実行開始のタイミングで、タイマＢがリセットされると共にカウントアップが開始されるようにしても良い。
【０１１８】
また、上記実施形態において、最大値算出処理（図１１）、最小値算出処理（図１２）、積算値算出処理（図１３）は、それぞれ、ソフト処理部１２が実行するように構成しても良い。
【０１１９】
また、上記実施形態において、計測結果格納部２０には、指標時間の最新の計測値のみが記憶されるが、例えば、複数回分の計測値が記憶されるようにしても良い。この場合、古いデータから順に、新しいデータと置き換えられるようにすれば良い。
【０１２０】
また、上記実施形態において、タスクＩＤは、通し番号に限らず、どのような形式のデータでも良い。
また、上記実施形態において、Ｓ１３０及びＳ１７０の処理が実行されない構成でも良い。
【０１２１】
また、上記実施形態において、起床に係るタスクよりも優先度の高いタスクが実行中であり、その起床に係るタスクの次の起床タイミングが到来するまでに、その優先度の高いタスクが終了せず、前回の起床分についての実行がキャンセルされてしまう現象の回数をカウントするようにしても良い。
【０１２２】
また、上記実施形態において、ハードカウンタ部１４の機能をソフトで構成しても良い。
また、上記実施形態において、図１１の最大値算出処理では、少なくとも待ち時間、経過時間、及び実行時間の最大値が算出できれば良く、余裕時間の最大値は算出されなくても構わない。システム上、余裕時間が大きくなってしまっても特に不都合は生じないためである。むしろ余裕時間が大きいほうが好ましいと言える。
【０１２３】
また、上記実施形態において、図１２の最小値算出処理では、少なくとも経過時間、実行時間、及び余裕時間の最小値が算出できれば良く、待ち時間の最小値は算出されなくても構わない。システム上、待ち時間の最小値が小さくなってしまっても特に不都合は生じないためである。むしろ待ち時間が小さいほうが好ましいと言える。
【０１２４】
また、上記実施形態では、所定の切換時間毎に対象タスクが切り換えられるようになっているが、対象タスクについて、指標時間の算出回数が所定の算出回数に達する前に、対象タスクを切り換えるようにしても良い。具体的に、待ち時間、経過時間、実行時間、余裕時間、及び抜け回数を一通り計測した時点で算出回数を１回とカウントし、その算出回数が所定回数に達すると、対象タスクを切り換えるようにしても良い。尚、待ち時間、経過時間、実行時間、余裕時間、及び抜け回数の少なくとも何れかを計測した時点で算出回数を１回とカウントしても良いことは勿論である。
【図面の簡単な説明】
【０１２５】
【図１】本実施形態の計測装置の構成を表す図である。
【図２】ハードカウンタ部１４のハードカウンタの説明図である。
【図３】タスクＩＤ記憶部１６の説明図である。
【図４】計測結果格納部２０の説明図である。
【図５】タスクＩＤ書換部１８が実行するタスクＩＤ書換処理のフローチャートである。
【図６】ソフト処理部１２が実行する起床時処理のフローチャートである。
【図７】ソフト処理部１２が実行する開始時処理のフローチャートである。
【図８】ソフト処理部１２が実行するレディ時処理のフローチャートである。
【図９】ソフト処理部１２が実行する再開時処理のフローチャートである。
【図１０】ソフト処理部１２が実行する終了時処理のフローチャートである。
【図１１】デバッグ装置３において実行される最大値算出処理のフローチャートである。
【図１２】デバッグ装置３において実行される最小値算出処理のフローチャートである。
【図１３】デバッグ装置３において実行される積算値算出処理のフローチャートである。
【図１４】本実施形態の作用を表すタイムチャートである。
【図１５】デバッグ装置３において表示される２次元グラフである。
【図１６】デバッグ装置３において表示される３次元グラフである。
【符号の説明】
【０１２６】
２…ＥＣＵ、３…デバッグ装置、１０…マイコン、１２…ソフト処理部、１４…ハードカウンタ部、１４Ａ，１４Ｂ…ハードカウンタ、１６…タスクＩＤ記憶部、１８…タスクＩＤ書換部、２０…計測結果格納部。
【図１】
2008305238.tif 000003
【図２】
2008305238.tif 000004
【図３】
2008305238.tif 000005
【図４】
2008305238.tif 000006
【図５】
2008305238.tif 000007
【図６】
2008305238.tif 000008
【図７】
2008305238.tif 000009
【図８】
2008305238.tif 000010
【図９】
2008305238.tif 000011
【図１０】
2008305238.tif 000012
【図１１】
2008305238.tif 000013
【図１２】
2008305238.tif 000014
【図１３】
2008305238.tif 000015
【図１４】
2008305238.tif 000016
【図１５】
2008305238.tif 000017
【図１６】
2008305238.tif 000018