(57)【要約】【課題】従来の、機器に組み込むプロセッサシステムに対する性能解析には、特別なハードウエアが必要であったり、解析可能な項目が関数の呼び出し回数と実行時間程度に限定されるという問題があり、詳細な情報が得ることが困難だった。【解決手段】本発明の性能解析システムは、対象プロセッサシステム、記憶装置、ホスト通信手段、ホスト計算機、プロセッサ状態観測ドライバ、観測管理プログラム、性能解析コード埋め込み手法を備え、特別なハードウエアなしに、予め性能解析コード埋め込み手段が処理対象プログラムに対して性能解析手法を埋め込み、プロセッサ状態観測ドライバがプロセッサのバスの状態を観測してプログラム動作との関連づけを行い、その結果を解析対象のプログラムが動作に利用する記憶装置に保存し、処理終了後にホスト計算機に転送して性能解析を行う。【選択図】      図１
2007304946.tif 000002
【特許請求の範囲】
【請求項１】
処理対象システムと、ホスト計算機と、記憶装置と、処理対象プロセッサシステムと、観測管理手段と、解析対象プログラムと、ホスト通信手段と、プロセッサ状態観測ドライバと、リモート通信手段と、性能解析コード埋め込み手段と、解析対象ソースコードと、解析コードデータベースと、性能解析結果表示手段と、を備えたことを特徴とする性能評価システム。
【請求項２】
前記プロセッサ状態観測ドライバは、バス観測プローブとプローブ解析手段を含むことを特徴とする請求項１の性能評価システム。
【請求項３】
前記記憶装置は、解析対象プログラム領域と解析結果格納領域を含むことを特徴とする請求項１、あるいは請求項２の性能評価システム。
【請求項４】
解析対象システム起動し、性能解析デバイスドライバロードし、解析ドライバコード埋め込みし、機械語コード転送し、機械語受け取りし、解析監視手段起動し、制御行動監視し、解析対象プログラム実行し、性能解析実行し、記憶装置監視し、解析結果出力し、途中結果処理し、出力表示処理することを特徴とする性能評価方法。
【請求項５】
さらに、性能解析において、プロセッサ観測ドライバと解析対象プログラムを解析結果照合を特徴とする請求項４の性能評価方法。
【請求項６】
解析対象システム起動し、性能解析デバイスドライバロードし、解析ドライバコード埋め込みし、機械語コード転送し、機械語受け取りし、解析監視手段起動し、制御行動監視し、解析対象プログラム実行し、性能解析実行し、記憶装置監視し、解析結果出力し、途中結果処理し、出力表示処理することを特徴とする性能評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は性能評価システム、性能評価方法に関し、特にプロセッサを組み込んだシステムに用いる性能評価システム、性能評価方法、性能評価プログラムに関する。
【背景技術】
【０００２】
従来の性能評価システムの一例が特許文献１に記載されている。この従来の性能評価システムは、性能を観測するＣＰＵとサービスプロセッサと外部記憶装置から構成されている。
【０００３】
このような構成を有する従来の性能評価システムはつぎのように動作する。
【０００４】
すなわち、ＣＰＵの性能評価のために、サービスプロセッサが動作測定を行い、そのサービスプロセッサに接続されている外部記憶装置に測定された性能情報を格納し、編集後、表示させている。
【０００５】
また、特許文献２も、従来の性能評価システムの一例である。この従来の性能評価システムは、性能を観測するプロセッサと、解析プロセッサと、出力装置から構成され、性能を観測するプロセッサにトレースデータ収集部とトレースデータ格納記憶装置を備えている。
【０００６】
このような構成を有する従来の性能評価システムはつぎのように動作する。
【０００７】
すなわち、プロセッサのトレースデータ収集部で解析された性能情報には通信のためのオーバーヘッドが入っているため、そのオーバーヘッドを解析プロセッサで解析してから性能情報を表示させている。
【０００８】
また、非特許文献１も、従来の性能評価システムの一例である。一般的にプロファイルと呼ばれるこの性能評価システムでは、プログラムで実行される関数の呼び出し回数と、呼び出し時間をプログラム実行中に記憶装置領域に書き込み、プログラム終了後に標準出力に出力する。
【０００９】
【特許文献１】特開平９−３１９６２３号公報  （第１頁、図１）
【特許文献２】特開平６−０５９９４４号公報  （第１頁、図１）
【非特許文献１】ＵＮＩＸ（登録商標）プログラミングの道具箱―プロフェッショナルが明かす研ぎ澄まされたツール群の使いこなし、技術評論社（第６章）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
第１の問題点は、従来の性能評価システムには性能解析を専用に行うためのハードウエアが必要であるということである。その理由は、性能を解析データの収集のために、収集や収集結果を格納するための手法が必要なためである。
【００１１】
第２の問題点は、従来の性能評価システムでは、上記のような特別なハードウエアを利用しない場合、プログラム中で実行される関数の呼び出し回数と呼び出し時間程度の性能しか解析できないことである
上記の理由により、組み込みシステムに代表されるような、性能解析用のハードウエアを付属させることができない場合の、プロセッサとその動作ソフトウエアのバスの状況やキャッシュの状況など詳細な性能評価は困難であった。
【００１２】
本発明の目的は、性能解析用の専用ハードウエアを必要とせず、かつ、バスサイクル数やキャッシュのヒット率など詳細な情報を解析できる、プロセッサシステムの性能解析システム、性能評価方法、性能評価プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の性能解析システムは、対象プロセッサシステムと、記憶装置と、ホスト通信手段と、ホスト計算機、プロセッサ状態観測ドライバ、観測管理プログラム、性能解析コード埋め込み手法を備え、解析対象システムの動作に、性能解析コード埋め込み手段が性能解析手法を埋め込み、プロセッサ状態観測ドライバがプロセッサの動作状態を解析し、解析対象のプログラムが動作に利用する記憶装置に保存され、処理終了後に記憶装置中の解析結果内容をホスト計算機に転送して、本発明の目的を達成することができる。
【発明の効果】
【００１４】
第一の効果は、性能測定用の追加ハードウエアなしに性能測定の環境が構築できることにある。その理由は、性能解析のための演算は解析対象のプロセッサでプロセッサ状態解析ドライバで処理し、解析対象のシステムが利用する記憶装置の一部分を利用して解析結果を保存するためである。
【００１５】
第二の効果は、実行サイクル数やキャッシュヒット率といった詳細性能解析結果が得られることにある。その理由は、プロセッサ状態管理ドライバがプロセッサの実行状態を監視しているためである。
【００１６】
第三の効果は、性能解析結果の転送や、ホスト計算機からの制御を行う通信がファイル転送方式と比較して簡単だということである。その理由ホスト通信手段が、ホスト計算機からの要求を受けたら、要求された情報をホスト計算機に垂れ流し、ホスト計算機はそれを観測して情報を得るからである。
【発明を実施するための最良の形態】
【００１７】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１８】
図１を参照すると、本発明の一実施の形態は、性能解析の対象となる処理対象システム１０１と、ホスト計算機１０２から構成されている。性能解析の対象となる処理対象システム１０１中は、性能解析の対象となる処理が実行される処理対象プロセッサシステム１０４と、記憶装置１０３、ホスト通信手段１０４、プロセッサ状態観測ドライバ手段１０８、観測管理手段１０５からなり、ホスト計算機は、性能解析制御手段１１４と、性能解析コード埋め込み手段１１０と、リモートシステム通信手段１０９、性能解析結果表示手段１１３、解析コードデータベースからなる。
【００１９】
これら手段は概略つぎのように動作する。
【００２０】
記憶装置１０３は、性能解析の対象となるシステム中にあって、性能解析の対象となるシステム動作の関する各記憶の読み書きや、性能検証のための性能結果の読み書きが行われるように動作する。
【００２１】
ホスト通信手段１０７は、性能解析の対象となるシステム中にあって、システムの状態や性能解析結果のホスト計算機への転送や、ホスト計算機からの制御を伝えるように動作する。
【００２２】
処理状態観測ドライバ手段１０８は、性能解析の対象となるシステム中にあって、システム起動時にオペレーティングシステムやモニタ上に読み込まれ、プロセッサのバスや外部接続状況など処理動作にない取得可能な情報を観測するように動作する。
【００２３】
観測管理手段１０５は、性能解析の対象となるシステム中にあって、性能解析対象プログラムや、性能解析用プログラムや、処理状態観測ドライバなどを実行制御し、あるプログラムの動作中は別のプログラムの停止などを制御するように動作する。
【００２４】
性能解析制御手段１１４は、性能解析の対象となるシステム中にあって、プロセッサ状態観測ドライバからの情報と観測管理手段からの情報を組み合わせて、ある性能解析対象プログラム動作中のプロセッサの稼働状況などの性能情報を取得、生成するように動作する。
【００２５】
性能解析コード埋め込み手段１１０は、ホスト計算機中にあり、性能解析プログラムにプロセッサ状態観測ドライバなどの観測情報を行う関数や命令を埋め込むように動作する。
【００２６】
リモートシステム通信手段１０９は、ホスト計算機中にあり、性能解析の対象となるシステムへの制御情報の通信や、性能解析結果の受け取りなどを制御するように動作する。
【００２７】
性能解析結果制御表示手段１１３は、ホスト計算機中にあり、性能解析の対象となるシステムへのステップ動作や停止をいった制御と、性能解析対象システムから受け取った性能解析情報を表示するように動作する。
【００２８】
次に、図１及び図２のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００２９】
まず、図２の性能解析の対象となるシステムが起動され（図２のステップＡ１）、起動時に性能解析用の処理状態を監視・観測するドライバプログラムがロードされる（図２のステップＡ２）。
【００３０】
次に処理は図１のホスト計算機（図１の１０２）で行われる。性能解析の対象となるプログラムのソースコード（Ｂ１）は、性能解析の対象となる処理対象システム（図１の１０１）で動作可能な機械語に翻訳されるが、この機械語に翻訳中に、図１のプロセッサ状態観測ドライバで収集可能な性能解析のためのドライバ制御プログラムが、性能解析ドライバコードデータベース（Ｂ２）に格納されている情報を使って、組み込まれる（図２のステップＡ３）。次に、性能解析の対象となるプログラムに性能解析情報が組み込まれた性能解析機械語（Ｂ３）のコードは、ホスト計算機から、性能解析の対象となるシステムに転送される（図２のステップＡ４）。次に図１の性能解析の対象となるシステム上では、コードを受け取る（図２のステップＡ５）。
【００３１】
ホスト計算機から実行開始の命令である解析処理開始（Ｂ４）命令が来ると、性能解析の対象となるシステム（図１の１０１）では、処理状態を監視・観測するプロセッサ状態観測ドライバ（図１の１０８）をアクセスしたり、ホストＰＣからの制御と解析対象のプログラムの実行を切り替えたりする観測管理のプログラムが起動される（ステップＡ６）。このプログラムは、解析対象プログラム（ステップＡ８）を実行させながら、停止や１命令実行などのホストＰＣとの観測動作制御命令（Ｂ５）の監視し、そのような命令があった場合は制御応答をホスト計算機に返す（ステップＡ７）。解析対象のプログラムの実行（ステップＡ８）では、解析対象の処理プログラムの実行時に性能解析のためのドライバを呼び出して、解析結果と解析対象プログラムとの関連づけを行うことによって性能解析を実行する（ステップＡ９）。
【００３２】
性能解析実行中（Ａ９）においては、処理プログラムが利用する記憶装置領域を回避しながら、記憶装置（図１の１０３）に性能解析結果を書きこむ（ステップＡ１０）。
【００３３】
もしも記憶装置が足りなくなったら（ステップＡ１０）、途中結果として記憶装置上にある解析中間結果（Ｂ８）をホスト計算機に書き込む（ステップＡ１２）。最後に性能解析プログラムの処理が終了、あるいは観測・動作制御命令（Ｂ５）による強制終了が発生したらしたら、途中記憶しておいた性能解析結果をホスト計算機に出力する（ステップＡ１１）。この処理はファイル転送ではなく、生のデータを直接ホスト計算機にダイレクトで返送し（ステップＡ１２）、ホストＰＣ側で解析結果を整形し、表示させる（ステップＡ１３）。
【００３４】
次に、本実施の形態の効果について説明する。
【００３５】
本実施の形態では、性能解析をあらかじめロードされるドライバが行い、そのドライバによる性能解析情報を取得する実行時には観測管理のプログラムが、性能解析対象のプログラムの実行に関する解析情報をドライバに問い合わせながら実行するため、追加のハードウエアなしに詳細性能解析状態を取得できる。
【００３６】
また、本実施の形態では、観測管理のプログラムが、制御と性能解析対象プログラムの実行と性能観測のためのドライバへの問い合わせを切り分けるため、性能解析情報取得のための処理時間を含まない正確な性能解析結果を得ることができる。
【００３７】
また、本実施の形態では、性能解析結果保持用の記憶装置を持つことなく、通常動作の記憶装置の一部を利用するため、性能解析用の記憶装置が不要である。
（実施例）
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
【００３８】
図１に示すように、処理対象システム１０１とホスト計算機１０２が準備され、処理対象システム１０１にて性能解析のためのソフトウエアが動作し、ホスト計算機１０２側で、処理対象システムへの制御や、プログラム、解析結果の表示を行う。処理対象システム１０１とホスト計算機１０２は、ＵＳＢやイーサネット（登録商標）、パラレルなどのなんらかの双方向通信手段にて接続されている。
【００３９】
まず、準備として図２に示すように処理対象システム１０１側でシステムを起動し、その際に性能解析を行うためのプロセッサ状態観測ドライバ１０８をロードしておく。
【００４０】
このプロセッサ状態観測ドライバは、処理対象システムごとにカスタマイズされたドライバであり、図３にあるように、プロセッサのバスを観測することによって、性能解析のための情報を入手するドライバである。得られる性能解析状態に対す
るライブラリを解析コードデータベースに登録しておく。
【００４１】
ホスト計算機１０２側の準備としては、処理対象のプログラムに対して、プロセッサ状態観測ドライバ１０８により性能取得手段を組み込んだ形で機械語に変換する必要がある。
【００４２】
この性能解析コード埋め込み手段１１０では、解析ドライバコードデータベース１１２にアクセスを行って、プログラム実行時の性能解析を行うためのドライバの呼び出しを実行コードに埋め込んだ形で機械語への翻訳を行う。得られた性能解析が含まれたコードは、リモート転送手段１０９からホスト通信手段１０７を経由して処理対象システムの記憶装置１０３に転送される。
【００４３】
処理対象システム１０１では、性能解析用コードが入ったコードが実行され、図４に示すように、性能解析用コードに関しては、プロセッサ状態観測ドライバ経由でプロセッサで処理が実行され、そうでない解析対象のコードは直接プロセッサで処理が実行される。
【００４４】
この解析結果は、図６のように記憶装置１０３の中に解析対象プログラム利用領域６０１とオーバラップしない領域として、解析結果格納領域６０２が確保し、そこに書き込まれる。
【００４５】
この解析結果格納領域への書き込みは、観測管理手段１０５が監視しており、図７のようにオーバーフローしそうな場合には、領域を拡大できるかどうか検討し、領域を拡大できる場合には、領域を拡大し、領域が拡大できない場合には、途中結果をホスト計算機１０２側にホスト通信手段１０７、リモート通信手段１０９を経由して、出力する。また、同様にホスト計算機１０２のリモート通信手段から、停止やステップ実行などの制御が合った場合にも途中結果を同様にホスト計算機に出力する。ホスト計算機に出力された途中結果は、性能解析表示手段１１３が、その結果を計算機に表示する。
【００４６】
解析対象プログラムの処理がすべて終了した場合には、途中結果をホスト計算機１０２側にホスト通信手段１０７、リモート通信手段１０９を経由して、出力し、性能解析表示手段１１３が、その結果を計算機に表示する。
【産業上の利用可能性】
【００４７】
本発明によれば、プロセッサを組み込んだ各種装置・システムにおける、装置・システムの動作プログラムの、対象装置・システム上での性能解析といった用途に適用可能である。また、プロセッサ入りのシステムＬＳＩにおける動作プログラムの性能解析といった用途にも適用できる。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施の形態の構成を示すブロック図である。
【図２】本発明の一実施の形態の動作を示す流れ図である。
【図３】本発明の一実施の形態における処理対象プロセッサシステムの構成を示すブロック図である。
【図４】本発明の一実施の形態におけるプロセッサ状態観測ドライバの構成を示すブロック図である。
【図５】本発明の一実施の形態における性能解析実行部の構成を示すブロック図である。
【図６】本発明の一実施の形態における記憶装置の構成を示すブロック図である。
【図７】本発明の一実施の形態における観測管理手段の動作を示す流れ図である。
【符号の説明】
【００４９】
１０１    処理対象システム
１０２    ホスト計算機
１０３    記憶装置
１０４    処理対象プロセッサシステム
１０５    観測管理手段
１０６    解析対象プログラム
１０７    ホスト通信手段
１０８    プロセッサ状態観測ドライバ
１０９    リモート通信手段
１１０    性能解析コード埋め込み手段
１１１    解析対象ソースコード
１１２    解析コードデータベース
１１３    性能解析結果制御表示手段
Ａ１    解析対象システム起動
Ａ２    性能解析デバイスドライバロード
Ａ３    解析ドライバコード埋め込み
Ａ４    機械語コード転送
Ａ５    機械語受け取り
Ａ６    解析監視手段起動
Ａ７    制御行動監視
Ａ８    解析対象プログラム実行
Ａ９    性能解析実行
Ａ１０    記憶装置監視
Ａ１１    解析結果出力
Ａ１２    途中結果処理
Ａ１３    出力表示処理
Ｂ１    解析対象ソースコード
Ｂ２    性能解析ドライバコードデータベース
Ｂ３    性能解析機械語
Ｂ４    解析処理開始
Ｂ５    観測・動作制御命令
Ｂ６    制御応答
Ｂ７    性能解析機械語
Ｂ８    解析中間結果
Ｂ９    解析最終結果
３０１    プロセッサ
３０２    バス
３０３    周辺機器
３０４    レジスタ
３０５    バス観測プローブ
３０６    プローブ解析手段
５０１    性能解析実施項目
５０２    性能解析対象項目
５０３    解析結果照合
６０１    解析対象プログラム利用領域
６０２    解析結果格納領域
Ｃ１    解析結果格納可能チェック
Ｃ２    処理継続
Ｃ３    領域拡大可能チェック
Ｃ４    領域拡大
Ｃ５    解析結果途中出力
Ｃ６    解析結果格納領域初期化
Ｃ７    解析結果途中出力命令
【図１】
2007304946.tif 000003
【図２】
2007304946.tif 000004
【図３】
2007304946.tif 000005
【図４】
2007304946.tif 000006
【図５】
2007304946.tif 000007
【図６】
2007304946.tif 000008
【図７】
2007304946.tif 000009