(57)【特許請求の範囲】
【請求項１】
各々割り込みにより実行されるとともに各々割り込みの優先度が予め定められた複数の処理をコンピュータ装置に実行させる場合における各処理の処理負荷を表す指標の計測値を前記コンピュータ装置と通信する上位コントローラを用いて監視する監視方法において、
前記コンピュータ装置は、
前記各処理を実行する毎に前記指標を計測し、最新の計測値を優先度毎に記憶するとともに、当該最新の計測値がそれまでに計測された最大値を上回っていた場合には当該最新の計測値で当該最大値を更新する一方、最新の計測値の送信を要求する計測結果送信要求を前記上位コントローラから受信したことを契機としてその時点の最新の計測値と最大値とを前記上位コントローラへ送信し、
前記上位コントローラは、
前記計測結果送信要求を前記コンピュータ装置における前記複数の処理のうち最も実行周期が長いものの実行周期よりも長い周期で前記コンピュータ装置へ送信し、前記コンピュータ装置から送信されてくる最新の計測値および最大値を記憶装置に蓄積する
ことを特徴とする監視方法。
【請求項２】
前記上位コントローラは、
前記複数の処理の各々について当該処理の優先度に応じて定められた前記指標に関する閾値を記憶しており、
前記コンピュータ装置から受信した最新の計測値と該当する閾値とを比較し、その比較結果に応じた警告メッセージを出力装置に出力させる処理を実行する
ことを特徴とする請求項１に記載の監視方法。
【請求項３】
前記コンピュータ装置は、
前記最大値を更新する際にはその時点における動作状態を示す動作状態データを当該新たな最大値と対応付けて記憶するとともに、前記計測結果送信要求の受信を契機としてその時点の最新の計測値および最大値とともに当該最大値に対応付けられた動作状態データを前記上位コントローラへ送信し、
前記上位コントローラは、
前記コンピュータ装置から受信した最新の計測値、最大値および動作状態データを前記記憶装置に記憶させる
ことを特徴とする請求項１に記載の監視方法。
【請求項４】
前記コンピュータ装置は、
前記最大値を更新する際にはその時点における動作状態を示す動作状態データを当該新たな最大値と対応付けて記憶するとともに、前記計測結果送信要求の受信を契機としてその時点の最新の計測値および最大値とともに当該最大値に対応付けられた動作状態データを前記上位コントローラへ送信し、
前記上位コントローラは、
前記コンピュータ装置から受信した最新の計測値、最大値および動作状態データを前記記憶装置に記憶させる
ことを特徴とする請求項２に記載の監視方法。
【請求項５】
前記指標は、前記複数の処理の各々の実行時間またはＣＰＵ占有率であることを特徴とする請求項１に記載の監視方法。
【請求項６】
前記指標は、前記複数の処理の各々の実行時間またはＣＰＵ占有率であることを特徴とする請求項２に記載の監視方法。
【請求項７】
前記指標は、前記複数の処理の各々の実行時間またはＣＰＵ占有率であることを特徴とする請求項３に記載の監視方法。
【請求項８】
前記指標は、前記複数の処理の各々の実行時間またはＣＰＵ占有率であることを特徴とする請求項４に記載の監視方法。
【請求項９】
前記指標は、前記複数の処理の各々の実行時間であり、前記コンピュータ装置は当該指標の計測に要する時間を差し引いて前記計測値を処理毎に算出することを特徴とする請求項５に記載の監視方法。
【請求項１０】
前記指標は、前記複数の処理の各々の実行時間であり、前記コンピュータ装置は当該指標の計測に要する時間を差し引いて前記計測値を処理毎に算出することを特徴とする請求項６に記載の監視方法。
【請求項１１】
前記指標は、前記複数の処理の各々の実行時間であり、前記コンピュータ装置は当該指標の計測に要する時間を差し引いて前記計測値を処理毎に算出することを特徴とする請求項７に記載の監視方法。
【請求項１２】
前記指標は、前記複数の処理の各々の実行時間であり、前記コンピュータ装置は当該指標の計測に要する時間を差し引いて前記計測値を処理毎に算出することを特徴とする請求項８に記載の監視方法。
【請求項１３】
各々割り込みにより実行される複数の処理であって、各々割り込みの優先度が予め定められた複数の処理を実行する制御部と、
上位コントローラと通信するための通信インターフェース部と、
記憶部と、を備え、
前記制御部は、
前記複数の処理の各々を実行する毎に、当該処理の処理負荷を表す指標を計測し、最新の計測値を優先度毎に前記記憶部へ書き込むとともに、当該最新の計測値がそれまでに計測された最大値を上回っていた場合には当該最新の計測値で当該最大値を更新する一方、最新の計測値の送信を要求する計測結果送信要求を前記通信インターフェース部を介して前記上位コントローラから受信したことを契機としてその時点の最新の計測値と最大値とを前記記憶部から読み出して前記上位コントローラへ送信する
ことを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータ装置におけるプログラム実行の処理負荷を監視する技術に関する。
【背景技術】
【０００２】
近年、電気自動車が急速に普及しつつある。電気自動車には三相交流電動機などの電動機が動力源として搭載されているとともに、当該電動機の駆動制御を行うインバータなどの駆動装置と、駆動装置と通信しその制御を行うＶＣＵ（Vehicle Control Unit）などの上位コントローラが搭載されている。上位コントローラは、駆動装置に与えるトルク指令等の各種指令値（例えば、ｘ[Ｎｍ]など出力トルクの物理量を示す値）を運転者の操作に応じて生成する。駆動装置は、電動機に与える交流電力を上位コントローラから与えられた指令値に応じて調整する。これにより、電気自動車の走行制御が実現される。また、上位コントローラは、駆動装置のメモリに格納されている各種データ（例えば、出力トルクや回転速度（単位時間当たりの回転数）などの現在値を表すデータ）を取得し、それらデータに基づいて各種メータ類の表示制御を行う処理も実行する。これにより、車両の状態を運転者に把握させることができる。【０００３】
電動機へ与える電力を上位コントローラから与えられる指令値に応じて調整する処理は、駆動装置に予めインストールされた制御プログラムにしたがってその駆動装置のＣＰＵ（Central Processing Unit：以下、制御部）を作動させることで実現される。制御プログラムの開発工程では、制御プログラムにしたがって実行される各処理の処理負荷が想定の範囲内に収まっているか否かの検証が行われる。処理負荷を表す指標としては、各処理の実行時間の時間長（換言すれば、制御部による制御プログラムの実行時間の時間長、以下では、単に「実行時間」という）や、各処理の実行時間を単位時間当たりの割合に換算したＣＰＵ占有率が挙げられる。処理負荷が高いほど実行時間は長くなり、ＣＰＵ占有率は高くなるからである。例えば、処理負荷を表す指標として各処理の実行時間を用いる場合には、ハードウェアタイマを使用して処理毎に実行時間を計測するといった具合である。制御プログラムにしたがって上記制御部が実行する処理はタイマ割り込み等によって一定の時間間隔で周期的に実行される定周期処理と、不定期に発生する割り込みによって実行される不定期処理とに大別される。優先度の高い他の処理の割り込みが発生する場合、当該他の処理の実行時間をハードウェアタイマによる計測時間から差し引かなければ、割り込まれた処理の正確な実行時間を計測することはできない。そこで、プログラムの実行時間を正確に計測することを可能にする技術が種々提案されており、その一例としては「スタック方式」と呼ばれる計測方法が挙げられる（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８８２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電動機の制御プログラムの開発工程では、上位コントローラの役割を果たす試験装置（例えばパーソナルコンピュータなど）を駆動装置に接続し、駆動装置において上記の要領で計測された実行時間を当該試験装置を用いて監視することで、各処理の処理負荷が想定の範囲内に収まっているか否かの検証が行われる。しかし、従来の処理負荷監視技術では、各処理の処理負荷を表す指標の直近の計測値のみが試験装置に表示されるため、各処理の処理負荷の問題点を試験担当者が容易に把握することができないといった不具合があった。すなわち、処理負荷にばらつきのある処理があったとしても、そのばらつきの大きさを即座に把握することは難しく、また、処理負荷が想定外に高かった場合に、その原因の分析を迅速に行えないといった不具合があった。このような不具合は、駆動装置のメモリを大容量化し、上記計測値の時系列を記憶したり、上記測定値の他に駆動装置の動作状態を表すデータを記憶したりすることで解消可能であるかに見える。しかし、処理負荷の計測を行う必要があるのは制御プログラムの開発或いは保守の局面のみであるため、実運用の観点から見れば不必要に大容量なメモリを駆動装置に搭載することになり、無駄が多く好ましくない。また、駆動装置における制御プログラムの実行過程では、数１０マイクロ秒間隔といった短い周期で割り込みが発生する一方、試験装置は数ミリ秒間隔といったより長い周期で動作するため、問題の現れている計測結果を取り逃す虞がある、といった問題もあった。【０００６】
本発明は以上に説明した課題に鑑みて為されたものであり、割り込みにより各種処理を実行する装置のメモリを大容量化することなく、各処理の処理負荷の問題点を確実かつ容易に把握できるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、各々割り込みにより実行されるとともに各々割り込みの優先度が予め定められた複数の処理をコンピュータ装置に実行させる場合における各処理の処理負荷を表す指標の計測値を前記コンピュータ装置と通信する上位コントローラに監視させる監視方法において、上記コンピュータ装置および上位コントローラの各々に以下の処理を実行させることを特徴とする。コンピュータ装置には、上記複数の処理の各々を実行する毎に前記指標を計測し、最新の計測値を優先度毎に記憶するとともに、当該最新の計測値がそれまでに計測された最大値を上回っていた場合には当該最新の計測値で当該最大値を更新する一方、最新の計測値の送信を要求する計測結果送信要求を前記上位コントローラから受信したことを契機としてその時点の最新の計測値と最大値とを前記上位コントローラへ送信させる。一方、上位コントローラには、前記計測結果送信要求を前記複数の処理のうち最も実行周期が長いものの実行周期よりも長い周期で前記コンピュータ装置へ送信し、前記コンピュータ装置から送信されてくる最新の計測値および最大値を記憶装置に蓄積する処理を実行させる。【０００８】
本発明の監視方法によれば、上記コンピュータ装置における上記複数の処理の各々についての処理負荷を表す指標の計測値および最大値は上位コントローラ（試験装置として機能する装置）に接続される記憶装置に蓄積されるため、上記コンピュータ装置のメモリを大容量化する必要は無い。また、上記記憶装置に記憶されている計測値等に統計分析を施すことで各処理の処理負荷のばらつきの大きさ等を容易に把握することができ、処理負荷の問題点を容易に把握することができる。なお、計測結果送信要求の送信周期は、複数の処理のうち最も実行周期が長いものの実行周期よりも長いのであるが、前回の送信から今回の送信までの間に計測された指標の最大値は上記コンピュータ装置側で記憶されているため、処理負荷の異常の検出漏れが発生することはない。このように本発明によれば、割り込みにより各種処理を実行する装置のメモリを大容量化することなく、各処理の処理負荷の問題点を確実かつ容易に試験担当者に把握させることが可能になる。なお、上記各処理の処理負荷を表す指標としては各処理の実行時間またはＣＰＵ占有率を用いるようにすれば良く、上記実行時間の計測手法としては前述したスタック方式を採用すれば良い。【０００９】
より好ましい態様においては、前記上位コントローラは、前記複数の処理の各々について当該処理の優先度に応じて定められた前記指標に関する閾値を記憶しており、前記コンピュータ装置から受信した最新の計測値と該当する閾値とを比較し、その比較結果に応じた警告メッセージを出力装置に出力させる処理を実行する。このような態様によれば、試験担当者は、記憶装置に蓄積されている計測値および最大値を逐一精査しなくても、処理負荷の異常を容易に把握することができる。【００１０】
より好ましい態様においては、前記コンピュータ装置は、前記最大値を更新する際にはその時点における動作状態を示す動作状態データを当該新たな最大値と対応付けて記憶するとともに、前記計測結果送信要求の受信を契機としてその時点の最新の計測値および最大値とともに当該最大値に対応付けられた動作状態データを前記上位コントローラへ送信し、前記上位コントローラは、前記コンピュータ装置から受信した最新の計測値、最大値および動作状態データを表示装置に表示させることを特徴とする。このような態様によれば、動作状態データに基づいて異常の発生原因を究明することが可能になる。【００１１】
より好ましい態様においては、前記指標は、前記複数の処理の各々の実行時間であり、前記コンピュータ装置は当該指標の計測に要する時間を差し引いて前記計測値を処理毎に算出することを特徴とする。上記コンピュータ装置が電気自動車における駆動装置である場合、数１０マイクロ秒間隔といった短い時間間隔で割り込みが発生する。このような高速割り込みにより動作している装置では、従来のスタック方式によりプログラムの実行時間を計測したとしても、正確に計測することは難しい。従来のスタック方式では計測処理に要する時間が考慮されていない一方、高速割り込みにより動作する装置では割り込みマスクや符号付きの演算を行う関係上、計測処理に要する時間を無視できないからである。しかしながら、本態様によれば、数１０マイクロ秒単位で割り込みが発生するコンピュータ装置における各処理の実行時間（処理負荷）を正確に計測することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の試験装置１０および駆動装置２０を含む試験システム１の構成例を示す図である。
【図２】同試験装置１０の構成例を示す図である。
【図３】同試験装置１０が駆動装置２０から受信する計測データのデータフォーマットの一例を示す図である。
【図４】同試験装置１０の制御部１１０が実行する統計分析処理１５４２ｃを説明するための図である。
【図５】同駆動装置２０の構成例を示す図である。
【図６】同駆動装置２０における実行時間計測を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ本発明の実施形態を説明する。
（Ａ：構成）
（Ａ−１；システム構成）
図１は、本発明のコンピュータ装置の一実施形態である駆動装置２０を含む試験システム１の構成例を示す図である。駆動装置２０は例えばインバータであり、電動機３０とともに電気自動車に搭載される。図１に示す試験システム１は、駆動装置２０の保守点検や開発工程における各種試験を行うためのコンピュータシステムである。
【００１４】
図１に示すように、試験システム１は、試験対象の駆動装置２０および電動機３０の他に試験装置１０を含んでいる。試験装置１０は、例えばパーソナルコンピュータであり、ツイストペアケーブルなどの信号線を介して駆動装置２０に接続されている。試験装置１０は、当該信号線を介して各種指令Ｍを駆動装置２０に与える一方、駆動装置２０から送信される各種データＤを当該信号線を介して受信する。本実施形態では、試験装置１０から駆動装置２０へ与える指令Ｍに応じて電動機３０の動作にどのような変化が生じるのかを観察したり、駆動装置２０から返信されてくるデータＤを試験装置１０を用いて確認したりすることで駆動装置２０の試験が進められる。
【００１５】
駆動装置２０は、車載電池などの直流電源（図１では図示略）から供給される直流電力を交流電力ＰＷに変換して電動機３０に与える。駆動装置２０は、予めインストールされた制御プログラムを実行する制御部（図示略）と、当該制御プログラムを実行する際のワークエリアとして使用されるメモリとを含んでいる。本実施形態では、上記制御プログラムを制御部に実行させることで、上位コントローラ（本実施形態では試験装置１０、駆動装置２０および電動機３０の実運用の際にはＶＣＵ）から与えられる各種指令Ｍに応じて電動機３０に与える交流電力ＰＷを制御する処理が実現される。
【００１６】
駆動装置２０では、上記制御プログラムにしたがって実行される各種処理の実行時間が前述したスタック方式の計測方法により計測される。このようにして計測される実行時間は、制御プログラムにしたがって実行される各種処理の処理負荷を表す指標として利用される。駆動装置２０の試験を行う試験担当者は、試験装置１０を用いて上記計測結果が想定の範囲内に収まっているか否かを監視することができる。加えて、本実施形態では、駆動装置２０および試験装置１０の構成および動作を工夫することで、上記各種処理の実行時間に関する問題点（想定よりも時間がかかり過ぎているなど）を試験担当者が容易に把握できるようになっている。以下、本実施形態の特徴を顕著に示す試験装置１０および駆動装置２０を中心に説明する。
【００１７】
（Ａ−２：試験装置１０の構成）
図２は、試験装置１０の構成例を示す図である。図２に示すように駆動装置１０は、制御部１１０、通信インターフェース（図２では、「Ｉ／Ｆ」と略記、以下、本明細書においても同様）部１２０、ユーザＩ／Ｆ部１３０、フリーランタイマ１４０、記憶部１５０、およびこれら構成要素間のデータ授受を仲介するバス１６０を含んでいる。
【００１８】
制御部１１０は例えばＣＰＵである。制御部１１０は記憶部１５０（より正確には不揮発性記憶部１５４）に記憶されている試験プログラム１５４２を実行することにより試験装置１０の制御中枢として機能する。制御部１１０が試験プログラム１５４２にしたがって実行する処理については後に明らかにする。
【００１９】
通信Ｉ／Ｆ部１２０は例えばＮＩＣ（Network Interface Card）であり、通信線を介して駆動装置２０に接続されている。通信Ｉ／Ｆ部１２０は、制御部１１０から与えられた各種指令Ｍを上記通信線を介して駆動装置２０に与える一方、駆動装置２０から送信されてくる各種データＤを上記通信線を介して受信し、制御部１１０に与える。ユーザＩ／Ｆ部１３０は、表示部と操作部とを含んでいる（図２では図示略）。表示部は、例えば液晶ディスプレイとその駆動回路とを含んでいる。表示部は、制御部１１０による制御の下、駆動装置２０の試験を試験担当者に遂行させるための各種ユーザインタフェース画面を表示する。表示部に表示されるユーザインタフェース画面の一例としては、電動機３０の運転モード（トルク指定モードや速度指定モードなど）を試験担当者に指定させるための画面、電動機３０のトルクや回転速度を試験担当者に指定させるための画面、電動機３０の出力トルクや回転速度の現在値を表示する画面などが挙げられる。操作部は、例えばマウスなどのポインティングデバイスやキーボードを含んでいる。操作部は、ポインティングデバイスやキーボードに対して為された操作に応じたデータを制御部１１０に引き渡す。これにより試験担当者の操作内容が制御部１１０に伝達される。フリーランタイマ１４０は、ハードウェアタイマである。フリーランタイマ１４０は各種計時処理に利用される。
【００２０】
記憶部１５０は揮発性記憶部１５２と不揮発性記憶部１５４とを含んでいる。揮発性記憶部１５２は例えばＲＡＭ（Random Access Memory）である。揮発性記憶部１５２は試験プログラム１５４２を実行する際のワークエリアとして制御部１１０によって利用される。不揮発性記憶部１５４は例えばハードディスクなどのデータの書き換えが可能な不揮発性メモリである。図２に示すように不揮発性記憶部１５４には、試験プログラム１５４２が格納されている。この試験プログラム１５４２は、図２の結果収集処理１５４２ａ、警告処理１５４２ｂおよび統計分析処理１５４２ｃを制御部１１０に実行させるためのプログラムである。
【００２１】
結果収集処理１５４２ａは、駆動装置２０における各処理の処理負荷を表す指標（本実施形態では、各処理の実行時間）の瞬時値、最大値および当該最大値が計測された時点の駆動装置２０の動作状態を表す動作状態データを一定の時間間隔で周期的に取得して不揮発性記憶部１５４に蓄積する処理である。ここで、瞬時値とは上記一定の時間間隔で訪れるデータ取得タイミングの各々における上記指標の最新の計測値のことをいう。また、最大値とはデータ取得タイミングから上記一定時間を遡った時間区間（すなわち、前回のデータ取得タイミングまでの時間区間）における上記指標の最大値のことをいう。そして、動作状態データは、駆動装置２０の動作モード（トルク指定モードであるか、それとも速度指定モードであるか）、トルクおよび回転速度の指令値と現在値等を表すデータのことをいう。
【００２２】
この結果収集処理１５４２ａでは、制御部１１０は、上記瞬時値等の送信を要求する通信メッセージ（以下、計測結果送信要求）を通信Ｉ／Ｆ部１２０を介して一定の時間間隔で周期的に送信する。前述したように、駆動装置２０では数十マイクロ秒単位といった短い時間間隔で定周期処理および不定期処理が割り込みにより実行されるのであるが、試験装置１０は一般的なパーソナルコンピュータであり、より長い周期（数ミリ秒単位の周期）で割り込みが発生する装置である。このため、上記データ取得タイミングの到来間隔も数ミリ秒単位となり、駆動装置２０における各種処理の実行間隔よりも充分に長い時間間隔である。
【００２３】
詳細については後述するが、駆動装置２０は、計測結果送信要求を受信する毎に前回の受信時以降に計測された各処理の実行時間の瞬時値、最大値および動作状態データを含む計測データ（図３参照）を返信する。図３に示すように、この計測データは、各処理の実行時間の瞬時値、最大値および動作状態データを各処理の種類（図３に示す例では、カスタマイズ部およびコア部の２種類）毎および優先度（図３に示す例では、レベルＬ１、Ｌ４〜Ｌ７の５種類）毎に分類したデータである。駆動装置２０において実行される処理の種類および優先度については、駆動装置２０の説明において明らかにする。制御部１１０は、このようにして駆動装置２０から返信されてくる計測データを通信Ｉ／Ｆ部１２０を介して受信し、不揮発性記憶部１５４の所定の記憶領域にその受信順に順次書き込んでゆく。
【００２４】
警告処理１５４２ｂは、結果収集処理１５４２ａにより取得した直近の瞬時値（或いは最大値）が予め定められた閾値を超えた場合に警告メッセージを上記表示部に表示させる処理である。ここで、上記閾値については、駆動装置２０において実行される処理の種類毎および優先度毎に適宜定めるようにすれば良い。具体的には、駆動装置２０において実行される処理の種類毎および優先度毎に実行時間の上限値を予め定めておき、その上限値に対する割合（例えば、百分率）により上記閾値を定めておくといった具合である。また、駆動装置２０において実行される処理の種類毎および優先度毎に定められる閾値の数は１つには限定されず、互いに大きさの異なる複数の閾値を定めておいても良い。
【００２５】
例えば、実行時間の上限値に対する割合により上記閾値を定める場合には、上限値の５０％、７０％および９０％の各値を上記閾値として定めておくといった具合である。そして、結果収集処理１５４２ａにより取得した瞬時値（或いは最大値）が上記上限値の５０％未満である場合には、正常稼働状態であることを示すメッセージを表示部に表示させ、５０％以上かつ７０％未満である場合には、注意喚起を促すメッセージを表示部に表示させ、７０％以上かつ９０％未満である場合には、異常発生を報知するメッセージを表示部に表示させ、９０％以上である場合には、駆動装置２０の停止を指示するメッセージを表示部に表示させるようにすれば良い。
【００２６】
統計分析処理１５４２ｃは、不揮発性記憶部１５４に蓄積された計測データに統計分析を施し、その分析結果を示す画像をユーザＩ／Ｆ部１３０の表示部に表示させる処理である。ここで、統計分析の具体的な内容については種々の態様が考えられる。例えば、駆動装置２０において実行される処理の実行時間の瞬時値の平均値や標準偏差を処理の種類毎および優先度毎に算出すること、予め定めた複数の時間区間における各瞬時値の出現頻度の度数分布を集計し、図４（ａ）に示すヒストグラム形式で表示部に表示させること、或いは、図４（ｂ）に示すように、各データ取得タイミングにおける瞬時値をその取得順（すなわち、時系列順）に並べて表示することなどが考えられる。
【００２７】
ヒストグラムにおいては、平均値を中心とする２σ（σは標準偏差）の範囲に略全てのサンプルが分布していることが一般的であり、この範囲外に位置するサンプルは何らかの異常を表している可能性が高い。図４（ａ）に示すヒストグラム形式の表示を行うことで試験担当者に異常の有無を直観的に把握させることが可能になる。また、図４（ａ）に示すようにヒストグラムの包絡線Ｗを大きく逸脱するサンプルがある場合には、ごくまれに処理負荷が大きく変動する場合があることを試験担当者に直観的に把握させることができる。また、図４（ｂ）に示すように、各データ取得タイミングにおける瞬時値をその取得順に並べた結果、周期的に処理負荷が高くなっている場合には、試験担当者は処理負荷の高くなる周期を手掛かりに何が原因であるのかを推定することができる。また、駆動装置２０における各処理の処理負荷を表す指標としてＣＰＵ占有率を用いる場合には、上記測定結果送信要求の送信間隔に占める各優先度の処理の実行時間の割合を当該処理のＣＰＵ占有率として算出し、図４（ｃ）に示す円グラフ形式で表示させるようにしても良い。ここで、ＣＰＵ占有率の算出については処理の種類毎および優先度毎に行っても良く、また、処理の種類を問わずに優先度毎に行っても良い。図４（ｃ）に示す表示態様によれば、各処理のＣＰＵ占有率が想定の範囲に収まっているか否かを試験担当者に直観的に把握させることができる。なお、図４（ｃ）における「空き時間」とは、計測データの示す各処理の実行時間の瞬時値の総和を上記送信間隔から減算して得られる値であり、何れの処理も実行されていない期間の時間長を表す。
以上が試験装置１０の構成である。
【００２８】
（Ａ−３：駆動装置２０の構成）
次いで、図５を参照しつつ駆動装置２０の構成を説明する。図５は、駆動装置２０の構成例を示す図である。図５に示すように駆動装置２０は、制御部２１０、通信Ｉ／Ｆ部２２０、電力変換部２３０、フリーランタイマ２４０、記憶部２５０、およびこれら構成要素間のデータ授受を仲介するバス２６０を含んでいる。制御部２１０は、試験装置１０における制御部１１０と同様にＣＰＵである。制御部２１０は記憶部２５０（より正確には不揮発性記憶部２５４）に記憶されているプログラムを実行することにより駆動装置２０の制御中枢として機能する。通信Ｉ／Ｆ部２２０は、試験装置１０における通信Ｉ／Ｆ部１２０と同様にＮＩＣである。通信Ｉ／Ｆ部２２０は通信線を介して試験装置１０の通信Ｉ／Ｆ部１２０に接続されている。フリーランタイマ２４０は、試験装置１０におけるフリーランタイマ１４０と同様にハードウェアタイマである。フリーランタイマ２４０は、前述したスタック方式の実行時間計測の際に利用される。
【００２９】
電力変換部２３０は前述した直流電源と電動機３０とに接続されている。電力変換部２３０は、ＩＧＢＴなどのスイッチング素子を含んでいる（図５では図示略）。本実施形態では、これらスイッチング素子のスイッチング（オン／オフの切り替え）により、直流電源から供給される直流電力の交流電力ＰＷへの変換が実現される。電力変換部２３０に含まれるスイッチング素子のオン／オフ制御は制御部２１０によって行われる。
【００３０】
記憶部２５０は揮発性記憶部２５２と不揮発性記憶部２５４とを含んでいる。揮発性記憶部２５２は試験装置１０における揮発性記憶部１５２と同様にＲＡＭである。揮発性記憶部２５２は、各種プログラムを実行する際のワークエリアとして制御部２１０によって利用される。また、揮発性記憶部２５２は上記スタック方式の実行時間計測を行う際のスタックとしても利用され、さらに制御プログラムにしたがって実行される電動機３０の制御のための各種処理の実行時間を表すデータの格納にも利用される。不揮発性記憶部２５４は例えばFLASH  ROM（Flash Read-Only Memory）などデータの書き換えが可能な不揮発性メモリである。図５に示すように不揮発性記憶部２５４には、前述した制御プログラムの役割を果たすソフトウェアライブラリ（通信制御ライブラリ２５４２、電力変換部制御ライブラリ２５４４、および計測支援ライブラリ２５４６）が予め格納されている。
【００３１】
通信制御ライブラリ２５４２は、試験装置１０と通信する処理（すなわち、各種指令Ｍの受信および各種データＤの送信）を制御部２１０に実現させるためのプログラムの集合体である。電力変換部制御ライブラリ２５４４は、試験装置１０から与えられる各種指令Ｍに応じて電力変換部２３０の作動制御を行う処理を制御部２１０に実行させるためのプログラムの集合体である。通信制御ライブラリ２５４２は、駆動装置２０を組み込んで電気自動車を製造するメーカ等によってその電気自動車に搭載される車載ネットワークの仕様に応じて作成される。つまり、通信制御ライブラリ２５４２に含まれる各プログラムは、制御部２１０を、駆動装置２０が搭載される電機自動車の車載ネットワーク毎に適宜カスタマイズされたカスタマイズ部として機能させるプログラムである。これに対して、電力変換部制御ライブラリ２５４４は、駆動装置２０の製造元により作成される。電力変換部制御ライブラリ２５４４に含まれる各プログラムは、制御部２１０を、電力変換部２３０の作動制御を実現するコア部として機能させるプログラムである。
【００３２】
通信制御ライブラリ２５４２或いは電力変換部制御ライブラリ２５４４に含まれるプログラムにしたがって制御部２１０が実行する処理は、前述した定周期処理と不定期処理とに大別される。本実施形態では、これらの処理の実行開始を指示する割り込みは数十マイクロ秒といった短い時間間隔で発生する。これらの処理には予め優先度が設定されており、定周期処理の優先度は最も低く設定されている。制御部２１０は、これら不定期処理および定周期処理の何れかの実行中に、当該実行中の処理よりも優先度の高い処理の実行を指示する割り込みが発生すると、実行中の処理を一旦中断し、当該優先度の高い処理を実行する。そして、当該優先度の高い処理の実行を完了すると制御部２１０は、実行を中断中の処理の実行を再開する。
【００３３】
計測支援ライブラリ２５４６に含まれるプログラムは、通信制御ライブラリ２５４２或いは電力変換部制御ライブラリ２５４４に含まれるプログラムにしたがって実行される処理の実行時間を計測する計測処理、その計測結果を試験装置１０へ通知する計測結果送信処理を制御部２１０に実行させるためのプログラムである。なお、本実施形態では、通信制御ライブラリ２５４２或いは電力変換部制御ライブラリ２５４４に含まれるプログラムにしたがって実行される処理を実行時間の計測対象とするが、前者にしたがって実行される処理のみを実行時間の計測対象としても良い。前述したように、通信制御ライブラリ２５４２は、駆動装置２０および電動機３０の搭載される車両の製造元によって開発されるソフトウェアであり、通信制御ライブラリ２５４２に含まれる各プログラムの実行時間が予め定められた時間（駆動装置２０の正常動作の保証という観点から駆動装置２０の製造元により推奨された時間、或いは要求仕様等に応じて定まる時間）内に収まっているか否か（換言すれば、各処理の処理負荷が想定内に収まっているか否か）を検証しておくことは上記車両の製造元にとって極めて重要だからである。
【００３４】
まず、計測処理を制御部２１０に実現させるプログラムについて説明する。
計測処理を制御部２１０に実行させるプログラムは、通信制御ライブラリ２５４２或いは電力変換部制御ライブラリ２５４４に含まれる各プログラムから所謂ＡＰＩ（Application Programming Interface）として呼び出し可能なように実装されている。例えば、ある処理の実行時間を計測するためには、当該処理を制御部２１０に実行させるプログラムの先頭に実行時間の計測を開始するための計測開始処理の実行を指示するＡＰＩ（以下、計測開始ＡＰＩ）を呼び出すためのコードを埋め込んでおく。一方、当該プログラムの末尾には、実行時間の計測を終了するための計測終了処理の実行を指示するＡＰＩ（以下、計測終了ＡＰＩ）を呼び出すためのコードを埋め込んでおくといった具合である。このようにすると、実行時間の計測対象の処理の実行を開始するための割り込みの発生を契機として、制御部２１０は、まず、計測開始処理を実行し、当該計測対象の処理の実行終了を契機として計測終了処理を実行する。
【００３５】
計測開始処理は、上記のように実行時間の計測対象の処理の実行開始に先立って実行される処理である。この計測開始処理では、制御部２１０は、まず、フリーランタイマ２４０のタイマ値を読み込む。次いで、制御部２１０は、当該計測開始処理に後続する処理（すなわち、実行時間の計測対象の処理）によって実行を中断される他の処理があるか否かを判定し、該当する他の処理がない場合には、読み込んだタイマ値を符号反転して揮発性記憶部２５２内に設けられたスタックへプッシュする。ここで、当該計測開始処理に後続する処理によって実行を中断される他の処理があるか否かについては、スタックにタイマ値が格納されているか否かに基づいて判定すれば良い。具体的には、スタックにタイマ値が格納されていれば、実行を中断される他の処理があると判定するといった具合である。また、読み込んだタイマ値を符号反転してスタックへプッシュするのは、特許文献１に開示の技術と同様の理由によるものである。
【００３６】
実行を中断される他の処理がある場合には、制御部２１０は、フリーランタイマ２４０のタイマ値と上記スタックの最上段に格納されているタイマ値との差から予め定められた第１の補正値を減算した値を当他の処理のそれまでの実行時間を表す値として算出し、上記スタックの最上段の格納内容を当該値で更新した後に、当該読み込んだタイマ値を符号反転して上記スタックへプッシュする。つまり、本実施形態の駆動装置２０では、上記スタックは、優先度の高い処理の割り込みにより実行を中断される処理のそれまでの実行時間を示す値を記憶する記憶装置の役割を兼ねているのである。なお、上記第１の補正値の詳細については後に明らかにする。
【００３７】
計測終了処理は、実行時間の計測対象の処理の実行終了を契機として実行される処理である。この計測終了処理では、制御部２１０は、フリーランタイマ２４０のタイマ値を読み込み、当該タイマ値と上記スタックの最上段に格納されているタイマ値との差から予め定められた第２の補正値を減算し、両タイマ値の示す期間における当該実行を終了する処理の実行時間を算出する。なお、実行時間の計測対象の処理について上記期間以前の実行時間を示す値が揮発性記憶部２５２（詳細については後述するが、本実施形態では上記スタックの最上段）に記憶されていた場合には、制御部２１０は、上記減算結果に当該値を加算して当該実行を終了する処理の実行時間を算出する。上記第２の補正値の詳細については後に明らかにする。
【００３８】
この計測終了処理において制御部２１０は、上記の要領で算出した実行時間を測定終了処理の呼び出し元の処理の種別（例えば、カスタマイズ部の処理であるかのそれともコア部の処理）毎、および呼び出し元の処理の優先度（すなわち、割り込みレベル）毎に計測データ（図３参照）の瞬時値フィールドに書き込む。なお、制御部２１０は、瞬時値フィールドに書き込んだ実行時間と最大値フィールドの格納内容とを比較し、前者の方が大きい場合には当該実行時間で最大値フィールドの格納内容を更新するとともに、その時点の駆動装置２０の動作状態を表す動作状態データ（例えば、トルクや回転速度の指令値および現在値、制御部２１０の内部レジスタの格納内容等）を動作状態データフィールドに書き込む。
【００３９】
上記第１の補正値とは、図６に示すように、実行時間の計測対象の処理の実行開始を指示する割り込みの発生から計測開始処理ＭＳにおけるタイマ値の読み込みまでの第１の所要時間Ｔａ１と、計測終了処理ＭＥにおけるタイマ値の読み込みから割り込み終了までの第２の所要時間Ｔａ２との和に応じた値である。なお、図６に示す例では、計測開始処理ＭＳに先行する符号ＷＨおよび計測終了処理ＭＥに後続する符号ＷＨは割り込みハンドラを表している。一方、第２の補正値とは、計測開始処理におけるタイマ値の読み込みから当該計測開始処理の実行完了までの第３の所要時間Ｔｃ１ｅと、計測終了処理の実行開始から当該計測終了処理におけるタイマ値の読み込みまでの第４の所要時間Ｔｃ２ｓとの和に応じた値である。
【００４０】
上記第１および第２の補正値の具体的な値については制御部２１０の種類や仕様に応じて定めるようにすれば良く、さらに第１の補正値（上記第１の時間Ｔａ１および第２の時間Ｔａ２）については実行時間の計測対象の処理の優先度に応じた値に定めるようにすれば良い。各々優先度の異なる処理の実行時間を正確に計測するためである。本実施形態では、最も優先度に高い処理についてはＴａ１＝３４マイクロ秒、Ｔａ２＝５４マイクロ秒と定められており、その他の処理についてはＴａ１＝６０マイクロ秒、Ｔａ２＝７８マイクロ秒と定められている。また、第２の補正値（上記第３の時間Ｔｃ１ｅおよび第４の時間Ｔｃ２ｓ）については、Ｔｃ１ｅ＝５２マイクロ秒、Ｔｃ２ｓ＝２４マイクロ秒と定められている。本実施形態では、上記第１の補正値は上記優先度と対応付けて計測開始処理のプログラムに予め埋め込まれており、上記第２の補正値は計測終了処理のプログラムに予め埋め込まれている。
以上が計測処理を制御部２１０に実現させるプログラムの詳細である。
【００４１】
次いで計測結果送信処理を制御部２１０に実現させるプログラムについて説明する。
このプログラムは、計測結果送信要求を試験装置１０から受信したことを契機として実行される。このプログラムにしたがって実行される計測結果送信処理では、制御部２１０は、前述した計測データを揮発性記憶部２５２から読み出して試験装置１０へ返信するとともに、計測データを初期化する（計測データの各フィールドにＮＵＬＬ（０ｘ００）をセットする）。
以上が駆動装置２０の構成である。
【００４２】
（Ｂ：動作）
以下、試験装置１０および駆動装置２０が実行する動作のうち、本発明の特徴を顕著に示す動作について説明する。なお、以下に説明する動作例では、通信制御ライブラリ２５４２および電力変換部制御ライブラリ２５４４に含まれる各プログラムにしたがって制御部２１０は、ｎ（ｎは２以上の自然数）種類の処理ＳＬｘ（ｘ＝１〜ｎ）を実行するとともにｘの値が小さいほど高い優先度Ｌｘが設定されているものとする。また、駆動装置２０の計測データは全てＮＵＬＬに初期化されている。以下では、まず、このような状況下で、処理ＳＬ２の実行中に、割り込みにより処理ＳＬ１の実行が開始される場合を例にとって計測開始処理および計測終了処理の処理内容を説明する。なお、以下に説明する動作例では、処理ＳＬ２の開始時点では他の処理は実行されておらず、処理ＳＬｘ（ｘ＝１〜ｎ）の各々を制御部２１０に実行させる各プログラム（通信制御ライブラリ２５４２に含まれるプログラム）には、その先頭に計測開始ＡＰＩを呼び出すためのコードが埋め込まれており、その末尾には計測終了ＡＰＩを呼び出すためのコードが埋め込まれている。また、計測開始ＡＰＩおよび計測終了ＡＰＩの呼び出しの際にはその呼び出し元がコア部のプログラムなのかカスタマイズ部のプログラムなのかを示す識別子や当該プログラムにしたがって実現される処理の優先度を表す値が当該ＡＰＩの引数として用いられる。呼び出し元の処理の優先度に応じて上記第１の補正値の値を異ならせるとともに、実行時間の計測結果を上記プログラムの種別毎および優先度毎に分類して計測データを生成するためである。
【００４３】
処理ＳＬ２の実行開始を指示する割り込みの発生時点では、他に実行中の処理はない。このため、図６に示すように、処理ＳＬ２の実行に先立って実行される計測開始処理ＭＳでは、制御部２１０は、フリーランタイマ２４０のタイマ値Ｔ１を読み込み、当該タイマ値Ｔ１を符号反転してスタックへプッシュする。その後、制御部２１０は、処理ＳＬ２の実行を開始し、処理ＳＬ１の実行開始を指示する割り込みが発生すると、処理ＳＬ２の実行を中断する。制御部２１０は上記割り込みにより実行を指示されたプログラムを不揮発性記憶部２５４から揮発性記憶部２５２に読み出してその実行を開始する。前述したように、当該プログラムの先頭にも計測開始ＡＰＩが含まれているため、制御部２１０は、まず、計測開始処理ＭＳを実行する。
【００４４】
処理ＳＬ１に先立つ計測開始処理ＭＳでは制御部２１０は、まず、フリーランタイマ２４０のタイマ値Ｔ２を読み込む。本動作例では、処理ＳＬ１により実行を中断される処理があるため、制御部２１０は、上記実行を中断される処理についての上記割り込みが発生するまでの実行時間を表す値としてＴα´＝Ｔ２−Ｔ１−Ｔａ２−Ｔａ１を上記タイマ値Ｔ２に、スタックの最上段に格納されている値（−Ｔ１）を加算し、さらに第１の補正値に基づいて算出する。次いで、制御部２１０は、スタックの最上段の格納内容を当該値Ｔα´に更新し、その後、フリーランタイマ２４０から読み込んだタイマ値Ｔ２を符号反転してスタックへプッシュする（図６参照）。なお、スタックへのタイマ値のプッシュを符号反転せずに行う場合には、フリーランタイマ２４０のタイマ値Ｔ２とスタックの最上段に格納されているタイマ値Ｔ１との差を算出し、さらに上記第１の補正値を減算することで上記値Ｔα´を算出する処理を制御部２１０に実行させるようにすれば良い。
【００４５】
ここで注目すべき点は、上記割り込みが発生するまでの処理ＳＬ２の実際の実行時間Ｔα（図６に示すように、Ｔα＝Ｔ２−Ｔ１−Ｔｃ１ｅ−Ｔａ１）は上記の要領で算出される値Ｔα´とは微妙に異なっているという点である。このように、処理ＳＬ２の実際の実行時間Ｔαと計測開始処理ＭＳにて算出される値Ｔα´は微妙に異なるのであるが、両者の誤差は処理ＳＬ２に後続する計測終了処理ＭＥにおいて補正されるため、特段の問題は生じない。この点については後に詳細に説明する。なお、優先度の高い処理の割り込みにより実行を中断される処理のそれまでの実行時間を示す値を記憶する役割をスタックとは異なる他の記憶装置に担わせる場合には、処理ＳＬ１に先立つ計測開始処理ＭＳにおいては、スタックの最上段の値をプルし、当該値とフリーランタイマ２４０のタイマ値とから上記値Ｔα´を算出し、処理ＳＬ２と対応付けて上記記憶装置に記憶させた後に、上記タイマ値を符号反転してスタックへプッシュする処理を制御部２１０に実行させるようにすれば良い。
【００４６】
上記の要領で処理ＳＬ１の実行を開始した制御部２１０は、当該処理ＳＬ１の実行終了を契機として計測終了処理ＭＥを実行する。この計測終了処理ＭＥでは制御部２１０は、スタックの最上段に格納されている値（本実施形態では、−Ｔ２）をプルし、当該値とフリーランタイマ２４０から読み込んだタイマ値との和（本動作例では、スタックの最上段に保持されているタイマ値とフリーランタイマ２４０から読み込んだタイマ値との差）を算出し、さらにその算出結果から第２の補正値を減算する。これにより、本動作例では、処理ＳＬ１の実行時間を表す値Ｔｘ（Ｔｘ＝Ｔ３−Ｔ２−Ｔｃ１ｅ−Ｔｃ２ｓ）が算出される。制御部２１０は、このようにして算出した処理ＳＬ１の実行時間Ｔｘを当該処理ＳＬ１と対応づけて測定結果データ（図３参照）の瞬時値フィールドに書き込む。前述したように、本動作例の開始時点では、測定結果データは初期化されているため、処理ＳＬ１の実行時間の最大値として上記計測値Ｔｘが格納され、その時点の各動作状態定データが測定結果データの動作状態データフィールドに格納される。このようにして計測データの瞬時値フィールドおよび最大値フィールドに格納される計測値Ｔｘは、図６に示すように、処理ＳＬ１の実際の実行時間と一致する。
【００４７】
次いで、制御部２１０は、スタックの最上段の格納内容（本動作例では、Ｔα´）を、フリーランタイマ２４０から読み込んだタイマ値Ｔ３を減算した値（本動作例では、−Ｔ３＋Ｔα´）に更新し、計測終了処理ＭＥを終了する。なお、優先度の高い処理の割り込みにより実行を中断される処理のそれまでの実行時間を示す値を記憶する役割をスタックとは異なる他の記憶装置に担わせる場合には、本計測終了処理ＭＥにおいては、スタックの最上段の値をプルし、当該値とフリーランタイマ２４０のタイマ値とから処理ＳＬ１の実行時間の計測値Ｔｘを算出して計測データの該当フィールドに書き込んだ後に、上記タイマ値を符号反転してスタックへプッシュする処理を制御部２１０に実行させるようにすれば良い。
【００４８】
図６に示すように、処理ＳＬ１についての割り込みが終了すると、制御部２１０は処理ＳＬ２の実行を再開する。しかし、本動作例では、再度、処理ＳＬ１の実行開始を指示する割り込みが発生するため、処理ＳＬ２の実行は再度中断される。図６に示すように、当該再度の割り込みによる計測開始処理ＭＳでは制御部２１０は、フリーランタイマ２４０のタイマ値Ｔ２´を読み込み、当該タイマ値Ｔ２´とスタックの最上段の格納内容（−Ｔ３＋Ｔα´）とに基づいて処理ＳＬ２についての当該割り込みが発生するまでの実行時間を表す値Ｔα´＋Ｔγ´（ただし、Ｔγ´＝Ｔ２´−Ｔ３−Ｔａ２−Ｔａ１）を算出し、当該値で上記スタックの最上段の格納内容を更新する。その後、制御部２１０は、フリーランタイマ２４０から読み込んだタイマ値Ｔ２´を符号反転して上記スタックへプッシュする。なお、上記割り込みが発生するまでの処理ＳＬ２の実際の実行時間Ｔγは、図６に示すように、上記の要領で算出される値Ｔγ´と一致する。
【００４９】
以降、処理ＳＬ１の実行終了を契機として計測終了処理ＭＥが実行される点、この計測終了処理ＭＥでは処理ＳＬ１の実行時間Ｔｙ（Ｔｙ＝Ｔ３´−Ｔ２´−Ｔｃ１ｅ−Ｔｃ２ｓ）を算出して計測データの瞬時値フィールドに格納する点、当該計測値Ｔｙの出力後、スタックの最上段の格納内容が（−Ｔ３´＋Ｔα´＋Ｔγ´）に更新される点、および上記の要領で算出された計測値Ｔｙが処理ＳＬ１の実際の実行時間と一致する点、は前述した１回目の処理ＳＬ１の実行における場合と同様である。なお、この２回目の処理ＳＬ１についての計測終了処理では、計測値Ｔｙが前回の計測値Ｔｘ以上であれば、上記瞬時値欄の更新に加えて最大値欄の格納内容を当該計測値Ｔｙに更新し、更に動作状態データを計測データの該当フィールドに格納する処理が実行され、計測値Ｔｙが前回の計測値Ｔｘ未満であれば上記瞬時値フィールドの更新のみが実行される。
【００５０】
処理ＳＬ１についての割り込みが終了すると、制御部２１０は、再度、処理ＳＬ２の実行を再開し、処理ＳＬ２の実行が終了すると、計測終了処理ＭＥを実行する。この計測終了処理ＭＥでは制御部２１０は、スタックの最上段の格納内容（Ｔα´＋Ｔγ´−Ｔ３´）とフリーランタイマ２４０から読み込んだタイマ値Ｔ４とからそれまでの処理ＳＬ２の実行時間を表す値Ｔα´＋Ｔγ´＋Ｔβ´（ただし、Ｔβ´＝Ｔ４−Ｔ３´−Ｔｃ１ｅ−Ｔｃ２ｓ）を算出する。そして、制御部２１０は、上記の要領で算出した計測値（Ｔα´＋Ｔγ´＋Ｔβ´）を、処理ＳＬ２の実行時間の瞬時値を表すデータとして計測データの該当フィールドに書き込む。また、この時点の計測データにおいては、処理ＳＬ２の実行時間の最大値フィールドには初期値を表すデータが格納されているため、制御部２１０は、当該最大値フィールドに計測値（Ｔα´＋Ｔγ´＋Ｔβ´）を書き込むとともに、その時点の動作状態データを計測データの該当フィールドに書き込む。
【００５１】
図６を参照すれば明らかように、２回目の処理ＳＬ１についての割り込み終了後、処理ＳＬ２の実行が完了するまでの実際の実行時間Ｔβ（図６に示すように、Ｔβ＝Ｔ４−Ｔ３´−Ｔａ２−Ｔｃ２ｓ）と上記の要領で算出される値Ｔβ´とは微妙に異なっている。しかし、ＴβとＴβ´の差（Ｔβ―Ｔβ´）は−Ｔａ２＋Ｔｃ１ｓであり、ＴαとＴα´の差Ｔａ２−Ｔｃ１ｓと相殺する。つまり、Ｔα´＋Ｔγ´＋Ｔβ´＝Ｔα＋Ｔγ＋Ｔβとなり、処理ＳＬ２の実行時間が正確に算出される。なお、優先度の高い処理の割り込みにより実行を中断される処理のそれまでの実行時間を示す値を記憶する役割をスタックとは異なる他の記憶装置が担っている場合には、スタックの最上段には−Ｔ３´のみが格納されているため、当該値とフリーランタイマ２４０から読み込んだタイマ値Ｔ４との和から上記第２の補正値を減算して値Ｔβ´を算出し、上記記憶装置に記憶されているＴα´およびＴγ´を加算して処理ＳＬ２の実行時間を表す値を算出する処理を制御部２１０に実行させるようにすれば良い。
【００５２】
以上説明したように、駆動装置２０の計測データの瞬時値フィールドの格納内容は、処理ＳＬｎ（ｎ＝１または２）の各処理の実行が終了する毎に更新され、上記瞬時値がそれまでの最大値を上回る毎に最大値フィールドおよび動作状態データフィールドの格納内容が更新される。そして、制御部２１０は、試験装置１０から送信されてくる計測結果送信要求を通信Ｉ／Ｆ部２２０を介して受信すると、当該要求を受信した時点の計測データを揮発性記憶部２５２から読み出して試験装置１０に送信し、計測データを初期化する。
【００５３】
一方、試験装置１０の制御部１１０は、駆動装置２０における処理ＳＬｎ（ｎ＝１または２）の実行時間の瞬時値、最大値および最大値が計測された時点の動作状態データを一定の時間間隔で周期的に取得して揮発性記憶部１５２に蓄積する処理を試験プログラム１５４２にしたがって実行する。そして、制御部１１０は、データ取得タイミング毎に、処理ＳＬｎ（ｎ＝１または２）の種類および優先度に応じて予め定められた閾値とそのデータ取得タイミングにおける上記実行時間の瞬時値（或いは最大値）を比較し、例えば後者が前者を上回っていた場合に警告メッセージをユーザＩ／Ｆ部１３０の表示部に表示させる。また、試験担当者は、充分な量の計測データが試験装置１０の揮発性記憶部１５２に蓄積されたことを契機として制御部１１０に統計分析処理１５４２ｃを実行させ、駆動装置２０における各処理の処理負荷に問題があるか否かを多面的に分析することができる。
【００５４】
このように、本実施形態によれば、上記警告処理が実行されるため、試験担当者は、駆動装置２０から取得したデータを逐一精査しなくても、異常の発生を把握することができる。また、本実施形態では、駆動装置２０における処理ＳＬｎ（ｎ＝１または２）の実行時間の瞬時値の他に、前回のデータ取得タイミングから今回のデータ取得タイミングまでの時間間隔における上記実行時間の最大値も取得されるため、瞬時値のみを取得する態様に比較して最大値の取得漏れに起因する異常の見逃しが発生することもない。さらに、本実施形態によれば、最大値が計測された時点の動作状態データも取得されるため、異常の原因究明に役立てることができる。
【００５５】
加えて、本実施形態によれば、各データ取得タイミングにおける処理ＳＬｎ（ｎ＝１または２）の実行時間の瞬時値、最大値および最大値が計測された時点の動作状態データが試験装置１０の揮発性記憶部１５２に蓄積されるため、駆動装置２０の記憶部２５０を大容量化する必要もない。
【００５６】
以上説明したように本実施形態によれば、割り込みにより各種処理を実行する駆動装置２０のメモリを大容量化することなく、各処理の実行時間の問題点を確実かつ容易に把握することが可能になる。
【００５７】
（Ｃ：変形）
以上本発明の実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
（１）上記実施形態では、電動機３０の駆動装置２０における電力変換部２３０の作動制御を行うプログラムにしたがって制御部２１０が実行する各種処理の処理負荷を監視する場合について説明した。しかし、本発明の監視方法による処理負荷の監視対象の処理は、電気自動車の電動機の駆動制御を行う駆動装置において実行される処理に限定されるものではない。例えば家庭用ゲーム機や携帯型ゲーム機において実行される処理の処理負荷を監視対象としても良く、また、スマートフォンやタブレット型コンピュータなどの携帯型コンピュータにおいて実行される処理、或いはルータなどのネットワーク機器において実行される処理の処理負荷を監視対象としても良い。要は、コンピュータ装置において割り込みにより実行される処理であって、処理毎に優先度が予め定められている処理であれば良く、特に、割り込みが数十マイクロ秒といった極めて短い時間間隔で発生する場合に効果的である。
【００５８】
（２）上記実施形態では、第１および第２の補正値として制御部２１０の種類や仕様に応じて定められる値を用い、かつ第１の補正値として実行時間の計測対象の処理の優先度に応じた値を用いたが、制御部２１０の種類または仕様のみに応じて定められた値を用いても良く、また実行時間の計測対象の処理の優先度のみに応じて定められた値を用いても良い。このような態様によれば、上記実施形態に比較して実行時間の計測精度が低下するものの、これら補正値を用いた補正を行う分だけ従来のスタック方式よりも精度良く実行時間を計測することが可能になるからでる。
【００５９】
（３）上記実施形態では、第１の補正値および第２の補正値が計測支援ライブラリ２５４６の各プログラムに埋め込まれていたが、これら補正値を書き込んだテーブルを上記各プログラムとは別個に不揮発性記憶部２５４に記憶させ、各プログラムにしたがって作動する制御部２１０には当該テーブルから各補正値を読み込んで使用する処理を実行させるようにしても良い。このように実行時間計測用のプログラムとは別個に各補正値を記憶させておけば、例えば制御部２１０の換装（より高性能なものへの置き換え）や各処理の割り込みレベルの変更が発生した場合であっても上記テーブルの書き換えによって柔軟に対処することが可能になる。
【００６０】
（４）上記実施形態では、最も優先度の高い処理とその他の処理とで第１の補正値の値を異ならせる場合について説明したが、最も優先度の高い処理に先立って実行される計測開始処理とその他の処理に先立って実行される計測開始処理とで処理内容を異ならせても良い。具体的には、計測開始処理の実行中は他の処理による割り込みを禁止するために、計測開始処理の冒頭で割り込み禁止制御を行い、計測開始処理の末尾で当該禁止を解除する制御を行うことが一般的であるが、最も優先度の高い処理に先行する計測開始処理では、他の処理による割り込みが発生することはないため、上記禁止制御や禁止の解除を省略するのである。計測終了処理についても同様に、最も優先度の高い処理に後続する計測終了処理では、上記禁止制御や禁止の解除を省略し、その他の処理に後続する計測終了処理では上記禁止制御や禁止の解除を実行するようにしても良い。
【００６１】
（５）上記実施形態では、駆動装置２０から送信されてくる計測データを試験装置１０の記憶部１５０に蓄積したが、ＵＳＢ（Universal Serial Bus）インターフェースなどの外部機器インターフェースを介して試験装置１０に接続される記憶装置に計測データを蓄積しても良い。また、上記実施形態では警告メッセージや統計分析処理１５４２ｃの処理結果を表す画面をユーザＩ／Ｆ部１３０の表示部に表示させたが、外部機器インターフェースを介して試験装置１０に接続される表示装置に上記警告メッセージや画面を表示させるようにしても良い。また、上記実施形態では、警告メッセージをユーザＩ／Ｆ部１３０の表示部に表示させる場合について説明したが、音声出力する態様であっても勿論良い。
【００６２】
（６）上記実施形態では、試験装置１０の制御部１１０に、結果収集処理１５４２ａ、警告処理１５４２ｂおよび統計分析処理１５４２ｃの３種類の処理を実行させた。しかし、処理負荷のリアルタイム監視のみを行う場合には統計分析処理１５４２ｃを省略しても良く、逆に、処理負荷のリアルタイム監視を行わない場合には警告処理１５４２ｂを省略しても良い。また、処理負荷のリアルタイム監視を行わない場合において統計分析専用のコンピュータ装置を用いて統計分析処理を行う場合には、統計分析処理１５４２ｃを省略しても良い。また、結果収集処理１５４２ａにおける動作状態データの収集および蓄積は必ずしも必須ではなく省略しても良い。そして、動作状態データの収集および蓄積を省略する場合には、計測終了処理における動作状態データの記憶を省略しても良い。
【符号の説明】
【００６３】
１…試験システム、１０…試験装置、１１０，２１０…制御部、１２０，２２０…通信Ｉ／Ｆ部、１３０…ユーザＩ／Ｆ部、２３０…電力変換部、１４０，２４０…フリーランタイマ、１５０，２５０…記憶部、１５２，２５２…揮発性記憶部、１５４，２５４…不揮発性記憶部、１５４２…試験プログラム、２５４２…通信制御ライブラリ、２５４４…電力変換部制御ライブラリ、２５４６…計測支援ライブラリ、１６０，２６０…バス、３０…電動機。
【図１】
0005962860.tif 000002
【図２】
0005962860.tif 000003
【図３】
0005962860.tif 000004
【図４】
0005962860.tif 000005
【図５】
0005962860.tif 000006
【図６】
0005962860.tif 000007