(57)【要約】【課題】ソフトウェアの任意の開始アドレスと終了アドレスとで決定される区間の処理時間を外部の装置を介さずに測定することが可能なソフトウェア評価装置を得ること。【解決手段】比較器１は実行中のＰＣのカウント値と開始アドレスの値との一致を検出すると、時間測定装置４に起動指令を発行する。比較器２は実行中のＰＣのカウント値と終了アドレスの値との一致を検出すると時間測定装置４に停止指令を発行する。時間測定装置４は比較器２から停止指令を受けると直ちに時間測定動作を停止し、測定結果をレジスタ４１に格納する。比較器３はレジスタ４１の保持値が最大値保持レジスタ３１の保持値よりも大きいときはレジスタ４１の保持値を最大値保持レジスタ３１に転記して最大値を更新する。プログラムが終了するまで上記の処理を繰り返す。その結果、プログラムの２点間で繰り返し実行される処理時間の最大値が最大値保持レジスタ３１に保持される。【選択図】        図１
2006293427.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが実行する評価対象プログラムにおける処理時間測定の開始アドレス及び終了アドレスを任意に設定できるレジスタと、
実行中のプログラムカウンタのカウント値と前記開始アドレスの値との一致不一致を比較してアドレス一致を検出することを前記プログラムが終了するまで繰り返す第１の比較手段と、
実行中の前記プログラムカウンタのカウント値と前記終了アドレスの値との一致不一致を比較してアドレス一致を検出することを前記プログラムが終了するまで繰り返す第２の比較手段と、
前記第１の比較手段がアドレス一致を検出したタイミングから前記第２の比較手段がアドレス一致を検出したタイミングまでの処理時間を測定することを前記プログラムが終了するまで繰り返す時間測定手段と、
処理時間の最大値を保持するための最大値保持レジスタと、
前記時間測定手段が測定した処理時間と前記最大値保持レジスタの保持値との大小関係を比較し、測定した前記処理時間が前記保持値よりも大きいときは当該測定した処理時間を新たな保持値として前記最大値保持レジスタに格納することを前記プログラムが終了するまで繰り返す最大値収集手段と、
を備えることを特徴とするソフトウェア評価装置。
【請求項２】
前記評価対象プログラムが複数の処理ブロックで構成される場合に、前記処理ブロック毎に、前記開始アドレス及び終了アドレスを任意に設定できるレジスタ、前記第１の比較手段、前記第２の比較手段、前記時間測定手段、前記最大値レジスタ及び前記最大値収集手段の組が配置されていることを特徴とする請求項１に記載のソフトウェア評価装置。
【請求項３】
プロセッサが実行する評価対象プログラムが複数の処理ブロックで構成される場合に、
前記複数の処理ブロックそれぞれにおける処理時間測定の開始アドレスを任意に設定できる複数のレジスタからなる開始アドレス保持レジスタ群と、
前記複数の処理ブロックそれぞれにおける処理時間測定の終了アドレスを任意に設定できる複数のレジスタからなる終了アドレス保持レジスタ群と、
前記複数の処理ブロックそれぞれにおける処理時間の最大値を保持するための複数のレジスタからなる最大値保持レジスタ群と、
現在の最大処理時間を保持するためのカレント最大値保持レジスタと、
現在の終了アドレスを保持するためのカレント終了アドレス保持レジスタと、
前記開始アドレス保持レジスタ群の各レジスタ値の中で実行中のプログラムカウンタのカウント値と一致するレジスタ値を検出すると、その検出した開始アドレスに対応する終了アドレス及び最大値を前記終了アドレス保持レジスタ群及び前記最大値保持レジスタ群から読み出して前記カレント終了アドレス保持レジスタ及び前記カレント最大値保持レジスタにそれぞれ転記し、同時に起動指令を発行することを前記プログラムが終了するまで繰り返す制御手段と、
前記起動指令を受けるたびに、実行中のプログラムカウンタのカウント値と前記カレント終了アドレス保持レジスタの保持値とを比較してアドレス一致を検出する比較手段と、
前記起動指令を受けた時から前記検出器がアドレス一致を検出した時までの処理時間を測定する時間測定手段と、
前記起動指令を受けるたびに、前記時間測定手段が測定した処理時間と前記カレント最大値保持レジスタの保持値との大小関係を比較し、測定した前記処理時間が前記保持値よりも大きいときは当該測定した処理時間を新たな保持値として前記カレント最大値保持レジスタに格納するとともに、前記最大値保持レジスタ群の対応するレジスタに転記する最大値収集手段と、
を備えることを特徴とするソフトウェア評価装置。
【請求項４】
メモリ上に搭載した評価対象プログラムを実行するメインルーチンにおいて、プログラムカウンタが処理量測定終了アドレスを示したときに、プログラムカウンタが処理量測定開始アドレスを示したときから処理量測定終了アドレスを示すときまでに要したマシンサイクル数のカウント値をサイクル数格納レジスタに保持する手順と、
プログラムカウンタが処理量測定終了アドレスを示したときに割り込みを発生して割り込みルーチンに移行する手順と、
前記割り込みルーチンにおいて、前記サイクル数格納レジスタに保持したカウント結果と最大サイクル数格納レジスタの値との大小関係を判断し、カウント結果が最大サイクル数格納レジスタの値よりも大きい場合は当該カウント結果を当該最大サイクル数格納レジスタに格納して前記メインルーチンに戻り、一方、前記カウント結果が前記最大サイクル数格納レジスタの値よりも大きくない場合は当該最大サイクル数格納レジスタの値を更新せずに前記メインルーチンに戻る手順と、
前記３つの手順を前記評価対象プログラムが終了するまで繰り返す手順と、
を実行するプロセッサで構成されることを特徴とするソフトウェア評価装置。
【請求項５】
請求項１〜請求項４のいずれか一つに記載のソフトウェア評価装置に測定した最大処理時間を外部に伝送する手段を設け、
前記ソフトウェア評価装置が伝送する最大処理時間を表示手段に外部から視認可能に表示する外部評価装置、
を備えることを特徴とするソフトウェア評価装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア評価装置及びシステムに関し、特に開発等を行ったソフトウェアの処理時間を計測して評価する評価装置及びシステムに関するものである。
【背景技術】
【０００２】
プロセッサのメモリ上に搭載するソフトウェアの開発時においては、その処理に要する時間を測定することが一般的に行われている。特に、オーディオシステムや画像処理システムなど一定時間長のフレーム単位で処理を行うシステムでは、フレーム期間の中で必要な処理を完了させなければならないので、ソフトウェアの開発時においては、その処理時間、特に最大処理時間を測定し、処理時間が一定時間に収まることを保証することが要求されている。
【０００３】
すなわち、フレーム単位で処理を行うシステムでは、ソフトウェアの処理時間が想定された時間よりも大きくなり、一定時間長のフレーム期間内に処理が収まらなかった場合には、オーディオシステムであれば音切れが発生し、画像処理システムであれば画像の不連続が発生するからである。
【０００４】
ところが、一定時間内に完了しなければならない処理には、データ処理の他に、例えばメモリキャッシュやバスの状態など処理単位で変化するプロセッサやシステムの状態が含まれる。これらは、プロセッサ内外の様々な要因に依存して変化する。したがって、ソフトウェアの処理時間の測定は、シミュレーションによる方法には適さない。
【０００５】
そのため、例えば、テキサスインスツメント社が提供するオーディオシステムや画像処理システム（Ｃ５４ｘなどの）に搭載されるデジタルシグナルプロセッサは、ソフトウェアの開発時・デバッグ時に使用可能なタイマ機能を実装している。
【０００６】
また、特許文献１では、予め設定された処理時間の最大値と測定された処理時間とを比較し、プロセッサの有効・無効を設定するマイクロプロセッサの動作試験装置が提案されている。このマイクロプロセッサの動作試験装置では、処理時間を複数回測定した結果をメモリに格納し、メモリから外部制御装置（パーソナルコンピュータ）に転送し、その外部制御装置内で算出した最大値を使用している。
【０００７】
また、特許文献２では、任意の異なる２つのアドレスで決定される区間の処理時間を測定し、処理時間の最大値を比較器によって自動的に測定することが可能なプロセッサが開示されている。
【０００８】
【特許文献１】特開２００２−３５１６９２号公報
【特許文献２】特開平３−９２９４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ソフトウェアの処理時間をタイマ機能によって測定する方法では、ソフトウェアの処理時間は一定でないので、処理時間の最大値の測定では、繰り返し測定し最大値を取得しなければならず、煩雑である。
【００１０】
また、特許文献１に開示される処理時間の最大値取得方法では、最大処理時間を測定するためには、外部制御装置を介さなければならないので、プロセッサで実行中のソフトウェアに対してリアルタイムにその処理時間の最大値を測定することができない。したがって、ソフトウェアの評価時間や開発時間が増大し、開発コストが増大する。
【００１１】
また、特許文献２に記載されたプロセッサが有するコントローラは、開始アドレスと終了アドレスが異なる（開始アドレス＜終了アドレス）場合には、ステップ数カウンタに対して開始信号、終了信号を送信し、実行ステップ数の最大値を測定することは可能であるが、開始アドレスと終了アドレスが一致した場合は、実行ステップ数の最大値を測定することができない。すなわち、繰り返し実行される処理において、一つのアドレス（開始アドレス）を指定することにより、繰り返し実行される処理のステップ数の最大値を設定することは不可能である。
【００１２】
加えて、オーディオシステムや画像システムのようなフレーム単位で処理が実行されるシステムにおいては、一定時間長のフレーム期間内に必要な処理が完了するか否かの検査時に、フレーム処理の開始アドレスに、処理量測定の開始と終了のアドレスを設定することが考えられる。この場合、フレーム処理完了時の処理アドレスを決定する必要がない。また、フレーム処理が分岐している場合など、終了アドレスが一点に設定できないような処理も多分に想定される。このような場合に、特許文献２に記載されたプロセッサでは、測定できない。
【００１３】
この発明は、上記に鑑みてなされたものであり、プロセッサのメモリ上に搭載されるソフトウェアの任意の開始アドレスと終了アドレスとで決定される区間の処理時間を外部の装置を介さずに測定することが可能なソフトウェア評価装置及びシステムを得ることを目的とする。
【課題を解決するための手段】
【００１４】
上述した目的を達成するために、この発明にかかるソフトウェア評価装置は、プロセッサが実行する評価対象プログラムにおける処理時間測定の開始アドレス及び終了アドレスを任意に設定できるレジスタと、実行中のプログラムカウンタのカウント値と前記開始アドレスの値との一致不一致を比較してアドレス一致を検出することを前記プログラムが終了するまで繰り返す第１の比較手段と、実行中の前記プログラムカウンタのカウント値と前記終了アドレスの値との一致不一致を比較してアドレス一致を検出することを前記プログラムが終了するまで繰り返す第２の比較手段と、前記第１の比較手段がアドレス一致を検出したタイミングから前記第２の比較手段がアドレス一致を検出したタイミングまでの処理時間を測定することを前記プログラムが終了するまで繰り返す時間測定手段と、処理時間の最大値を保持するための最大値保持レジスタと、前記時間測定手段が測定した処理時間と前記最大値保持レジスタの保持値との大小関係を比較し、測定した前記処理時間が前記保持値よりも大きいときは当該測定した処理時間を新たな保持値として前記最大値保持レジスタに格納することを前記プログラムが終了するまで繰り返す最大値収集手段とを備えることを特徴とする。
【００１５】
この発明によれば、評価対象プログラムにおいて繰り返し実行される２点間における処理時間の最大値を自動的に計測することができる。
【発明の効果】
【００１６】
この発明によれば、プロセッサのメモリ上に搭載されるソフトウェアの任意の開始アドレスと終了アドレスとで決定される区間の処理時間を外部の装置を介さずに測定することが可能なソフトウェア評価装置が得られるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に図面を参照して、この発明にかかるソフトウェア評価装置及びシステムの好適な実施の形態を詳細に説明する。
【００１８】
実施の形態１．
図１は、この発明の実施の形態１によるソフトウェア評価装置の構成を示すブロック図である。図１において、ＰＣは、プログラムカウンタである。１１は、ソフトウェアの処理時間の測定を開始するアドレスを保持するための開始アドレス保持レジスタである。２１は、ソフトウェアの処理時間の測定を終了するアドレスを保持するための終了アドレス保持レジスタである。ｓｉｇ＿ｅｎは、処理時間測定イネーブル信号であり、イネーブル時は“１”レベル、デイネーブル時は“０”レベルとなる２値のレベル信号である。
【００１９】
１は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレスとを比較するための比較器である。２は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレスとを比較するための比較器である。３は、ソフトウェアの処理時間測定結果と処理時間の最大値との比較を行うための比較器である。４は、ソフトウェアの処理時間の測定を行うための時間測定装置である。３１は、ソフトウェアの処理時間の最大値を保持するための最大値保持レジスタである。４１は、ソフトウェアの処理時間測定結果を保持するための測定値保持レジスタである。
【００２０】
次に、以上のように構成されるソフトウェア評価装置の動作について説明する。「手順Ｔ１」まず、最大値保持レジスタ３１の値をゼロにする。また、時間測定装置４をリセットする。「手順Ｔ２」次に、開始アドレス保持レジスタ１１に処理時間の測定を開始するアドレスを設定し、また、終了アドレス保持レジスタ２１に処理時間の測定を終了するアドレスを設定する。「手順Ｔ３」そして、処理時間測定イネーブル信号ｓｉｇ＿ｅｎをイネーブルにする（ｓｉｇ＿ｅｎ＝“１”）。これによって、比較器１，２，３が比較動作を開始する。
【００２１】
「手順Ｔ４」すなわち、ｓｉｇ＿ｅｎ＝“１”になると、比較器１は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレス保持レジスタ１１の保持値との一致不一致の比較動作を開始し、比較器２は、実行中のＰＣのカウント値（ＰＣ値）と終了アドレス保持レジスタ２１の保持値との一致不一致の比較動作を開始し、比較器３は、最大値保持レジスタ３１の保持値と測定値保持レジスタ４１の保持値との大小関係の比較動作を開始する。
【００２２】
「手順Ｔ５」比較器１は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレス保持レジスタ１１の保持値との一致を検出すると、時間測定装置４に起動指令を発行する。時間測定装置４は、比較器１から起動指令を受けると、直ちに時間測定を開始する。
【００２３】
「手順６」比較器２は、実行中のＰＣのカウント値（ＰＣ値）と終了アドレス保持レジスタ２１の保持値との一致を検出すると、時間測定装置４に停止指令を発行する。時間測定装置４は、比較器２から停止指令を受けると、直ちに時間測定動作を停止し、測定結果（カウント値）を測定値保持レジスタ４１に格納する。格納を終了すると、時間測定装置４はリセットされる。
【００２４】
「手順Ｔ７」比較器３では、最大値保持レジスタ３１の保持値と測定値保持レジスタ４１の保持値との大小関係を比較し、測定値保持レジスタ４１の保持値が最大値保持レジスタ３１の保持値よりも大きいときは、測定値保持レジスタ４１の保持値を最大値保持レジスタ３１に転記して最大値を更新する一方、測定値保持レジスタ４１の保持値が最大値保持レジスタ３１の保持値よりも小さいとき、あるいは同じであるときは、最大値保持レジスタ３１の保持値をそのままにしておく。
【００２５】
「手順Ｔ８」比較器３での上記した動作が終了した時点でプログラムが終了していない場合はプログラムが終了するまでの間、または、ｓｉｇ＿ｅｎ＝“１”である場合はｓｉｇ＿ｅｎ＝“０”になるまでの間、「手順Ｔ５」〜「手順Ｔ７」の処理を繰り返す。その結果、開始アドレス＝終了アドレスの場合も含めてプログラムの２点間で繰り返し実行される処理時間の最大値が最大値保持レジスタ３１に保持される。
【００２６】
このように、実施の形態１によれば、繰り返し実行されるプログラムでの２点間の最大処理時間を、外部装置を介することなく自動的に測定することができるので、ソフトウェアの評価が容易に行えるようになる。
【００２７】
実施の形態２．
図２は、この発明の実施の形態２によるソフトウェア評価装置の構成を示すブロック図である。図２において、ＰＣは、プログラムカウンタである。１１−１〜１１−Ｎは、ソフトウェアの処理時間の測定を開始するアドレスを保持するための開始アドレス保持レジスタである。２１−１〜２１−Ｎは、ソフトウェアの処理時間の測定を終了するアドレスを保持するための終了アドレス保持レジスタである。ｓｉｇ＿ｅｎは、処理時間測定イネーブル信号であり、イネーブル時は“１”レベル、デイネーブル時は“０”レベルとなる２値のレベル信号である。
【００２８】
１−１〜１−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と開始アドレスとを比較するための比較器である。２−１〜２−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と開始アドレスとを比較するための比較器である。３−１〜３−Ｎは、ソフトウェアの処理時間測定結果と処理時間の最大値との比較を行うための比較器である。４−１〜４−Ｎは、ソフトウェアの処理時間の測定を行うための時間測定装置である。３１−１〜３１−Ｎは、ソフトウェアの処理時間の最大値を保持するための最大値保持レジスタである。４１−１〜４１−Ｎは、ソフトウェアの処理時間測定結果を保持するための測定値保持レジスタである。
【００２９】
次に、以上のように構成されるソフトウェア評価装置の動作について説明する。「手順Ｔ１１」まず、最大値保持レジスタ３１−１〜３１−Ｎの値をゼロにする。また、時間測定装置４−１〜４−Ｎをリセットする。「手順Ｔ１２」次に、開始アドレス保持レジスタ１１−１〜１１−Ｎに処理時間の測定を開始するアドレスを設定し、また、終了アドレス保持レジスタ２１−１〜２１−Ｎに処理時間の測定を終了するアドレスを設定する。「手順Ｔ１３」そして、処理時間測定イネーブル信号ｓｉｇ＿ｅｎをイネーブルにする（ｓｉｇ＿ｅｎ＝“１”）。これによって、比較器１−１〜１−Ｎ，比較器２−１〜２−Ｎ，比較器３−１〜３−Ｎがそれぞれ比較動作を開始する。
【００３０】
「手順Ｔ１４」すなわち、ｓｉｇ＿ｅｎ＝“１”になると、比較器１−１〜１−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と開始アドレス保持レジスタ１１−１〜１１−Ｎの保持値との一致不一致の比較動作を開始し、比較器２−１〜２−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と終了アドレス保持レジスタ２１−１〜２１−Ｎの保持値との一致不一致の比較動作を開始し、比較器３−１〜３−Ｎは、最大値保持レジスタ３１−１〜３１−Ｎの保持値と測定値保持レジスタ４１−１〜４１−Ｎの保持値との大小関係の比較動作を開始する。
【００３１】
「手順Ｔ１５」比較器１−１〜１−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と開始アドレス保持レジスタ１１−１〜１１−Ｎの保持値との一致を検出すると、時間測定装置４−１〜４−Ｎに起動指令を発行する。時間測定装置４−１〜４−Ｎは、比較器１−１〜１−Ｎから起動指令を受けると、直ちに時間測定を開始する。
【００３２】
「手順Ｔ１６」比較器２−１〜２−Ｎは、実行中のＰＣのカウント値（ＰＣ値）と終了アドレス保持レジスタ２１−１〜２１−Ｎの保持値との一致を検出すると、時間測定装置４−１〜４−Ｎに停止指令を発行する。時間測定装置４−１〜４−Ｎは、比較器２−１〜２−Ｎから停止指令を受けると、直ちに時間測定動作を停止し、測定結果（カウント値）を測定値保持レジスタ４１−１〜４１−Ｎに格納する。格納を終了すると、時間測定装置４−１〜４−Ｎはリセットされる。
【００３３】
「手順Ｔ１７」比較器３−１〜３−Ｎでは、最大値保持レジスタ３１−１〜３１−Ｎの保持値と測定値保持レジスタ４１−１〜４１−Ｎの保持値との大小関係を比較し、測定値保持レジスタ４１−１〜４１−Ｎの保持値が最大値保持レジスタ３１−１〜３１−Ｎの保持値よりも大きいときは、測定値保持レジスタ４１−１〜４１−Ｎの保持値を最大値保持レジスタ３１に転記して最大値を更新する一方、測定値保持レジスタ４１−１〜４１−Ｎの保持値が最大値保持レジスタ３１−１〜３１−Ｎの保持値よりも小さいとき、あるいは同じであるときは、最大値保持レジスタ３１−１〜３１−Ｎの保持値をそのままにしておく。
【００３４】
「手順Ｔ１８」比較器３−１〜３−Ｎでの上記した動作が終了した時点でプログラムが終了していない場合はプログラムが終了するまでの間、または、ｓｉｇ＿ｅｎ＝“１”である場合はｓｉｇ＿ｅｎ＝“０”になるまでの間、「手順Ｔ１５」〜「手順Ｔ１７」の処理を繰り返す。その結果、繰り返し実行される各処理ブロックでの開始アドレス＝終了アドレスの場合も含めた２点間の最大処理時間が最大値保持レジスタ３１−１〜３１−Ｎに保持される。
【００３５】
このように、実施の形態２によれば、繰り返し実行される複数の処理ブロックがある場合に、各処理ブロックでの２点間の最大処理時間を、外部装置を介することなく自動的に測定することができるので、ソフトウェアの評価が容易に行えるようになる。
【００３６】
実施の形態３．
図３は、この発明の実施の形態３によるソフトウェア評価装置の構成を示すブロック図である。図３において、２は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレスとを比較するための比較器である。３は、ソフトウェアの処理時間測定結果と処理時間の最大値との比較を行うための比較器である。４は、ソフトウェアの処理時間の測定を行うための時間測定装置である。５は、アドレス／最大値ロード回路である。３２は、現在の最大処理時間を保持するためのカレント最大値保持レジスタである。４０は、処理時間測定結果を保持するための測定値保持レジスタである。５０は、現在の処理時間測定終了アドレスを保持するためのカレント終了アドレス保持レジスタである。１００は、処理時間測定を開始するＮ個のアドレスをそれぞれ保持するＮ個のレジスタからなる開始アドレス保持レジスタ群である。２００は、処理時間測定を終了するＮ個のアドレスをそれぞれ保持するＮ個のレジスタからなる終了アドレス保持レジスタ群である。３００は、Ｎ個の処理時間の最大値をそれぞれ保持するＮ個のレジスタからなる最大値保持レジスタ群である。ｓｉｇ＿ｅｎ１，ｓｉｇ＿ｅｎ２は、処理時間測定イネーブル信号であり、イネーブル時は“１”レベル、デイネーブル時は“０”レベルとなる２値のレベル信号である。
【００３７】
次に、以上のように構成されるソフトウェア評価装置の動作について説明する。「手順Ｔ３１」まず、最大値保持レジスタ群３００の各レジスタ値をゼロにする。また、時間測定装置４をリセットする。「手順Ｔ３２」次に、開始アドレス保持レジスタ群１００の各レジスタに処理時間の測定を開始するアドレスを設定し、また、終了アドレス保持レジスタ群２００の各レジスタに処理時間の測定を終了するアドレスを設定する。「手順Ｔ３３」そして、処理時間測定イネーブル信号ｓｉｇ＿ｅｎ１をイネーブルにする（ｓｉｇ＿ｅｎ１＝“１”）。これによって、アドレス／最大値ロード回路５が動作を開始する。
【００３８】
「手順Ｔ３４」すなわち、ｓｉｇ＿ｅｎ１＝“１”になると、アドレス／最大値ロード回路５は、実行中のＰＣのカウント値（ＰＣ値）と開始アドレス保持レジスタ群１００の各レジスタ値との一致不一致の比較動作を開始する。一致を検出すると、終了アドレス保持レジスタ群２００と最大値保持レジスタ群３００とから、検出した開始アドレス（ＰＣ値）に対応する終了アドレス及び最大値を読み出し、その読み出した終了アドレスをカレント終了アドレス保持レジスタ５０に転記し、また読み出した最大値をカレント最大値保持レジスタ３２に転記する。この転記処理を終了すると、アドレス／最大値ロード回路５は、処理時間測定イネーブル信号ｓｉｇ＿ｅｎ２をイネーブルにする（ｓｉｇ＿ｅｎ２＝“１”）。これによって、比較器２，比較器３がそれぞれ比較動作を開始する。同時に、時間測定装置４がリセットされ、時間測定を開始する。
【００３９】
「手順Ｔ３５」すなわち、ｓｉｇ＿ｅｎ２＝“１”になると、比較器２は、実行中のＰＣのカウント値（ＰＣ値）とカレント終了アドレス保持レジスタ５０の保持値との一致不一致の比較動作を開始する。比較器２は、実行中のＰＣのカウント値（ＰＣ値）とカレント終了アドレス保持レジスタ５０の保持値との一致を検出すると、時間測定装置４に停止指令を発行する。時間測定装置４は、比較器２から停止指令を受けると、直ちに時間測定動作を停止し、測定結果（カウント値）を測定値保持レジスタ４０に格納する。格納を終了すると、時間測定装置４はリセットされる。
【００４０】
「手順Ｔ３６」また、比較器３は、ｓｉｇ＿ｅｎ２＝“１”になると、カレント最大値保持レジスタ３２の保持値と測定値保持レジスタ４０の保持値との大小関係の比較動作を開始する。比較器３は、測定値保持レジスタ４０の保持値がカレント最大値保持レジスタ３２の保持値よりも大きいときは、測定値保持レジスタ４０の保持値をカレント最大値保持レジスタ３２に転記して最大値を更新する一方、測定値保持レジスタ４０の保持値がカレント最大値保持レジスタ３２の保持値よりも小さいとき、あるいは同じであるときはカレント最大値保持レジスタ３２の保持値をそのままにしておく。このとき、比較器３は、カレント最大値保持レジスタ３２の保持値を更新するときは、その更新した最大値をロード元である最大値保持レジスタ群の対応するレジスタに転記して同様に更新する。
【００４１】
「手順Ｔ３７」アドレス／最大値ロード回路５及び比較器２，３での上記した動作が終了した時点でプログラムが終了していない場合はプログラムが終了するまでの間、またはｓｉｇ＿ｅｎ２＝“１”である場合はｓｉｇ＿ｅｎ２＝“０”になるまでの間、「手順Ｔ３４」〜「手順Ｔ３６」の処理を繰り返す。その結果、繰り返し実行される各処理ブロックでの開始アドレス＝終了アドレスの場合も含めた２点間の最大処理時間が最大値保持レジスタ群３００の各レジスタに保持される。
【００４２】
このように、実施の形態３によれば、繰り返し実行される複数の処理ブロックがある場合に、実施の形態２のように多数の比較器及び時間測定装置を用いなくとも、各処理ブロックでの２点間の最大処理時間を、外部装置を介することなく自動的に測定することができる。したがって、ハードウェアのコストを増大させることなく、ソフトウェアの評価が容易に行えるようになる。
【００４３】
実施の形態４．
図４は、この発明の実施の形態４によるソフトウェア評価装置であるプロセッサの動作を説明するフローチャートである。図４において、プロセッサが実行する評価処理用プログラムは、メモリ上に搭載した評価対象プログラムを実行するメインルーチンにおいてプログラムカウンタが処理量測定終了アドレスを示したときに、プログラムカウンタが処理量測定開始アドレスを示したときから処理量測定終了アドレスを示すときまでに要したマシンサイクル数のカウント値をサイクル数格納レジスタに保持する手順と、プログラムカウンタが処理量測定終了アドレスを示したときに割り込みを発生して割り込みルーチンに移行する手順と、前記割り込みルーチンにおいて後述する処理を実行する手順と、前記割り込みルーチンでの処理を終了すると前記メインルーチンに戻って上記の処理を繰り返す手順とで構成されている。なお、サイクル数格納レジスタや最大サイクル数格納レジスタは、メモリに設けたレジスタとしての特定記憶領域、または、専用に設けたレジスタである。
【００４４】
上記の割り込みルーチンでは、図４に示すように、プロセッサは、サイクル数格納レジスタに保持したカウント結果と最大サイクル数格納レジスタの値との大小関係を判断する（ステップＳＴ４１）。その結果、カウント結果が最大サイクル数格納レジスタの値よりも大きい場合（ステップＳＴ４１：Ｙｅｓ）は、カウント結果を最大サイクル数格納レジスタに格納し（ステップＳＴ４２）、割り込みからの復帰命令を発行して（ステップＳＴ４３）メインルーチンに移行する。一方、ステップＳＴ４１の判断結果、カウント結果が最大サイクル数格納レジスタの値よりも小さい場合（ステップＳＴ４１：Ｎｏ）は、直ちに割り込みからの復帰命令を発行して（ステップＳＴ４３）メインルーチンに移行する。
【００４５】
この割り込みルーチンは、評価対象プログラムが終了するまで繰り返し実行される。その結果、最大サイクル数格納レジスタには、処理時間であるマシンサイクル数の最大値が格納される。
【００４６】
このように、実施の形態４によれば、比較器などのハードウェアを追加することなく、プロセッサの割り込み機能を用いてソフトウェアの処理時間の最大値を測定することができる。
【００４７】
実施の形態５．
図５は、この発明の実施の形態５によるソフトウェア評価システムの構成を示すブロック図である。図５に示すように、実施の形態５によるソフトウェア評価システムは、ＬＳＩ５００と外部評価装置６００とで構成される。ＬＳＩ５００は、実施の形態１にて説明したソフトウェア評価装置であり、制御部であるプロセッサコア部５０１と、このプロセッサコア部５０１の制御下に動作する時間測定装置５０２、測定値保持レジスタ５０３、比較器５０４及び最大値保持レジスタ５０５を備え、実施の形態１にて説明した手順で自動測定した処理時間の最大値が最大値保持レジスタ５０５に保持される。
【００４８】
ＬＳＩ５００は、外部評価装置６００と通信する機能を備え、最大値保持レジスタ５０５に保持されている最大値を外部評価装置６００に伝送できるようになっている。外部評価装置６００は、ＬＳＩ５００から受け取った最大値を表示器に表示し、処理時間の推移等を観測することを可能にする。
【００４９】
このように、実施の形態５によれば、自動測定した処理時間の最大値を外部で観測することができる。なお、図５では、ソフトウェア評価装置（ＬＳＩ５００）として、実施の形態１に示した構成を示したが、実施の形態２〜４に示した構成も同様に適用できることは言うまでもない。
【産業上の利用可能性】
【００５０】
以上のように、この発明にかかるソフトウェア評価装置及びシステムは、ソフトウェアの任意の開始アドレスと終了アドレスとで決定される区間の処理時間を外部の装置を介さずに測定するのに有用であり、特に開発等を行ったソフトウェアの処理時間を計測して評価するのに好適である。
【図面の簡単な説明】
【００５１】
【図１】この発明の実施の形態１によるソフトウェア評価装置の構成を示すブロック図である。
【図２】この発明の実施の形態２によるソフトウェア評価装置の構成を示すブロック図である。
【図３】この発明の実施の形態３によるソフトウェア評価装置の構成を示すブロック図である。
【図４】この発明の実施の形態４によるソフトウェア評価装置であるプロセッサの動作を説明するフローチャートである。
【図５】この発明の実施の形態５によるソフトウェア評価システムの構成を示すブロック図である。
【符号の説明】
【００５２】
ＰＣ  プログラムカウンタ
１，２，３  比較器
１−１〜１−Ｎ，２−１〜２−Ｎ，３−１〜３−Ｎ  比較器
４  時間測定装置
４−１〜４−Ｎ  時間測定装置
５  アドレス／最大値ロード回路
１１  開始アドレス保持レジスタ
１１−１〜１１−Ｎ  開始アドレス保持レジスタ
２１  終了アドレス保持レジスタ
２１−１〜２１−Ｎ  終了アドレス保持レジスタ
３１  最大値保持レジスタ
３１−１〜３１−Ｎ  最大値保持レジスタ
３２  カレント最大値保持レジスタ
４０  測定値保持レジスタ
４１  測定値保持レジスタ
４１−１〜４１−Ｎ  測定値保持レジスタ
５０  カレント終了アドレス保持レジスタ
１００  開始アドレス保持レジスタ群
２００  終了アドレス保持レジスタ群
３００  最大値保持レジスタ群
５００  ＬＳＩ（ソフトウェア評価装置）
５０１  プロセッサコア部（制御部）
５０２  時間測定装置
５０３  測定値保持レジスタ
５０４  比較器
５０５  最大値保持レジスタ
６００  外部評価装置
【図１】
2006293427.tif 000003
【図２】
2006293427.tif 000004
【図３】
2006293427.tif 000005
【図４】
2006293427.tif 000006
【図５】
2006293427.tif 000007