(57)【特許請求の範囲】
【請求項１】
プロセッサによるプログラムの実行に伴って発生した２つのイベントのペア（以下、イベントペアと称す）について、それらが発生した時点の前後関係が記録されるイベント前後関係記録部（１２）と、
ユーザが、複数のイベントについて、それらの発生順序を設定する前後関係特徴レジスタ（１３）と、
前記イベント前後関係記録部に記録された前後関係の組み合わせが、前記前後関係特徴レジスタに設定されている発生順序に一致するか否かを比較し、一致すると時系列特定フラグ（１５）をセットする比較判定部（１４）と、
前記時系列特定フラグがセットされた回数をカウントするカウンタ（１６）とを備えることを特徴とするパフォーマンスモニタ装置。
【請求項２】
前記イベント前後関係記録部は、前記イベントペアの一方が他方より前に発生した場合にフラグがセットされる前発生レジスタ（２２（Ｅｎ＞Ｅｍ））と、
前記イベントペアの一方が他方より後に発生した場合にフラグがセットされる後発生レジスタ（２２（Ｅｎ＜Ｅｍ））とを個別に備えていることを特徴とする請求項１記載のパフォーマンスモニタ装置。
【請求項３】
前記イベント前後関係記録部は、前記前発生レジスタ及び前記後発生レジスタより構成されるイベント前後関係記録レジスタ（２２）と、
各イベントが発生した時点でフラグがセットされるイベントレジスタ（１１）における各フラグの状態に応じて、前記イベント前後関係記録レジスタにフラグをセットするレジスタ選択部（２１）とを備えていることを特徴とする請求項２記載のパフォーマンスモニタ装置。
【請求項４】
前記比較判定部は、前記各イベントペアに対応する前発生レジスタ及び後発生レジスタにおける何れか一方のレジスタ値を選択して出力する複数のマルチプレクサ（２３）と、
前記前後関係特徴レジスタに設定されている発生順序に従う前記各イベントペアについての前後関係を比較して、各イベントペアに対応するマルチプレクサの入力選択を切替える比較器（２４）と、
前記前後関係特徴レジスタに設定されているイベントの種類に応じて、前記複数のマルチプレクサの出力を選択するイベントペア選択部（２５）と、
このイベントペア選択部を介して選択されたマルチプレクサの出力値の論理積を演算することで、前記時系列特定フラグをセットするＡＮＤゲート（２６）とを備えることを特徴とする請求項３記載のパフォーマンスモニタ装置。
【請求項５】
前記イベント前後関係記録部における前後関係の記録状態を、外部に出力する記録状態出力部を備えることを特徴とする請求項１から４の何れか一項に記載のパフォーマンスモニタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの性能解析等に使用されるパフォーマンスモニタ装置に関する。
【背景技術】
【０００２】
パフォーマンスモニタ装置は、プロセッサによるプログラムの実行中に、ハードウェアが発生させたイベントの情報を記憶して、プログラムの性能を解析するため等に使用される。例えば特許文献１には、プロセッサが命令を実行する際に行われる一連の処理に伴い発生するイベント群の中から、予め設定した特徴的なイベントを抽出可能としたパフォーマンスモニタ装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１８６０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された構成によれば、複数のイベントの組み合わせによる特徴イベントを抽出できるが、複数のイベントの組み合わせがどのような時系列で発生したのかは特定できない。例えば、発生したイベントについての時系列情報を全てロギングすれば、その情報を解析することで、特定の複数のイベントが特定の時系列で発生した期間を特定可能である。
【０００５】
しかしながら、その場合、イベント数の増加に伴い時系列の特徴抽出パターンが複雑化するため、ハードウェアで処理することは困難になる。一方、ソフトウェアによる処理は、パフォーマンスモニタ装置の動作がシステムの負荷を増大させるため、解析中のプログラムの性能に影響を及ぼして評価が不正確になるおそれがある。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、小規模のハードウェアによって、発生したイベントについての時系列情報を抽出できるパフォーマンスモニタ装置を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載のパフォーマンスモニタ装置によれば、イベント前後関係記録部には、プロセッサによるプログラムの実行に伴って発生した２つのイベントのペア（イベントペア）について、それらが発生した時点の前後関係が記録される。前後関係特徴レジスタには、ユーザにより、時系列を特定する対象となる複数のイベントの発生順序が設定される。比較判定部は、イベント前後関係記録部に記録された前後関係の組み合わせが、前後関係特徴レジスタに設定されている発生順序に一致するか否かを比較し、一致すると時系列特定フラグ１５をセットする。そして、カウンタは、時系列特定フラグ１５がセットされた回数をカウントする。
【０００８】
このように構成すれば、上記カウンタの値を参照することで、ユーザが前後関係特徴レジスタに設定した複数のイベントが、モニタ期間中に設定された発生順序で何回発生したのかを特定できる。そして、イベント前後関係記録部には、２つのイベントのペアについてそれらが発生した時点の前後関係が記録されるので、それらの組み合わせによって複数のイベントの発生順序を特定できる。したがって、比較的小規模のハードウェアにより、発生したイベントについての時系列情報を抽出できる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態であり、パフォーマンスモニタ装置における前後関係特徴判定部の構成を中心に示す図
【図２】イベントレジスタ及びイベント前後関係記録部の動作の一例を説明する図
【図３】各イベントの内容を示す図
【図４】パフォーマンスモニタ装置の構成を示す機能ブロック図
【図５】信号処理装置の構成を示す機能ブロック図
【図６】パフォーマンスモニタ装置の動作を示すフローチャート
【発明を実施するための形態】
【００１０】
以下、一実施形態について説明する。図５に示すように、本実施形態の信号処理装置（プロセッサシステム）は、複数のステージ１（１），１（２），１（３），…が内部バス２を介して相互に接続されている。各ステージ１は、例えば２個のプロセッサコア３（Ａ），３（Ｂ），共用メモリ４，調停装置５及びパフォーマンスモニタ装置６を備えている。調停装置５は、プロセッサコア３（Ａ），３（Ｂ）による内部バス２及び共用メモリ４へのアクセスを調停するもので、その調停に関する情報等はパフォーマンスモニタ装置６に入力されている。
【００１１】
パフォーマンスモニタ装置６は、プロセッサコア３が実行する制御プログラムの性能を評価するための装置である。そして、各ステージ１のパフォーマンスモニタ装置６は、外部バス７を介してホストプロセッサ８に接続されている。図４に示すように、パフォーマンスモニタ装置６には、内部バス２及び調停装置５より例えば８ビットのイベント信号が入力されている。各イベント信号がインアクティブ：「０」からアクティブ：「１」に変化すると、イベントレジスタ１１（イベント前後関係記録部）の対応する第１〜第８ビットが「１」にセットされる。
【００１２】
イベント前後関係記録部１２には、イベントレジスタ１１における各ビットのセット／リセット状態に応じて、当面発生したイベント信号と過去に発生したイベント信号との前後関係が記録される。前後関係特徴レジスタ１３には、各イベントＥ１〜Ｅ８のうち、ユーザが時系列を特定する対象のイベントについて、それらの発生順序（前後関係），すなわち時系列情報が設定される。例えば、発生順序を特定しないイベントには「０」を設定し、発生順序を特定するイベントには発生順序１〜７を設定する。この場合、前後関係特徴レジスタ１３は（３ビット）×８のレジスタとなる。この設定は、ホストプロセッサ８を介してユーザにより行われる。
【００１３】
前後関係特徴判定部１４（比較判定部）は、前後関係特徴レジスタ１３における設定状態と、イベント前後関係記録部１２における記録状態とを比較して、両者が一致すると時系列特定フラグ１５をセットする。時系列特定フラグ１５は、カウンタ１６に入力される。カウンタ１６は、開始／停止信号選択レジスタ１７を介して入力される開始信号，停止信号によってカウント動作を開始，停止する例えば３２ビットのカウンタである。カウンタ１６は、その間のモニタ期間内に時系列特定フラグ１５がセットされた回数をカウントする。開始／停止信号選択レジスタ１７には、例えば各４ビットのモニタ開始信号，モニタ停止信号が入力されており、ユーザによる設定に応じて４ビットの何れかをトリガとして選択し、それぞれ開始／停止信号選択レジスタ１７に入力する開始信号，停止信号とする。
【００１４】
また、イベント前後関係記録部１２における記録状態（後述するように５６ビット）とカウンタ１６のカウンタ値とは、パフォーマンスモニタ装置６の外部に例えばシリアルデータとして出力され（記録状態出力部に相当）、外部バス７及びホストプロセッサ８を介してユーザがリアルタイムでモニタ可能となっている。
【００１５】
図２に示すように、イベント前後関係記録部１２は、レジスタ選択部２１と、イベント前後関係記録レジスタ２２とを備えている。イベント前後関係記録レジスタ２２は、８つのイベントのうち任意の２つの組み合わせであるイベントペア（Ｅｎ，Ｅｍ）について設けられ（ｎ＜ｍ）、初期値は「０」である。そして、各イベントが発生した時点の前後関係に応じて、レジスタ選択部２１によりフラグ「１」がセットされる。各イベントペア（Ｅｎ，Ｅｍ）に前発生レジスタ２２（Ｅｎ＞Ｅｍ）と後発生レジスタ２２（Ｅｎ＜Ｅｍ）とが設けられているので、総計５６ビットのレジスタとなる。
【００１６】
例えば、イベントペア（Ｅ１，Ｅ２）については、前発生レジスタ２２（Ｅ１＞Ｅ２）と後発生レジスタ２２（Ｅ１＜Ｅ２）とがあり、イベントＥ１がイベントＥ２よりも前に発生した場合は前発生レジスタ２２（Ｅ１＞Ｅ２）にフラグ「１」がセットされ、イベントＥ１がイベントＥ２よりも後に発生した場合は後発生レジスタ２２（Ｅ１＜Ｅ２）にフラグ「１」がセットされる。図２に示すように、双方のレジスタ２２（Ｅ１＞Ｅ２）及び２２（Ｅ１＜Ｅ２）に何れもフラグ「１」がセットされていれば、イベントＥ１がイベントＥ２の前後双方の時点で発生したことを示す。
【００１７】
図３に示す各イベントの一例として、イベントＥ１〜Ｅ４は、プロセッサ３が共用メモリ４に対して読み書きアクセスを行った場合及びそれらのアクセスに対するストールの発生に関するものである。また、イベントＥ５及びＥ６は、プロセッサ３が内部バス２に対して書き込みアクセスを行った場合及びそのアクセスに対するストールの発生に関するものである。また、イベントＥ７及びＥ８は、プロセッサ３が内部バス２の図５中左方向又は右方向のステージ１に対してデータ転送を行った場合のストールの発生に関するものである。
【００１８】
例えば図２に示すように、イベントがＥ１，Ｅ３，Ｅ２，Ｅ１，Ｅ７，…の時系列で発生した場合、各レジスタの値は以下のように変化する。
イベント      イベントレジスタ     イベント前後関係記録レジスタ
Ｅ１          Ｅ１「１」
Ｅ３          Ｅ３「１」          （Ｅ１＜Ｅ３）「１」
Ｅ２          Ｅ２「１」          （Ｅ１＜Ｅ２）「１」
（Ｅ２＞Ｅ３）「１」
Ｅ１          Ｅ１「１」          （Ｅ１＞Ｅ２）「１」
（Ｅ１＞Ｅ３）「１」
Ｅ７          Ｅ７「１」          （Ｅ１＜Ｅ７）「１」
（Ｅ２＜Ｅ７）「１」
（Ｅ３＜Ｅ７）「１」
【００１９】
図１に示すように、前後関係特徴判定部１４は、イベントペア数だけ存在するマルチプレクサ２３及び比較ロジック２４（比較器）と、イベントペア選択部２５及びＡＮＤゲート２６とを備えている。各マルチプレクサ２３（Ｅｎ，Ｅｍ）には、対応するイベントペアの後発生レジスタ（Ｅｎ＜Ｅｍ），前発生レジスタ（Ｅｎ＞Ｅｍ）のレジスタ値が入力されており、前者が「１」側で後者が「０」側である。比較ロジック２４（Ｅｎ＜Ｅｍ）は、前後関係特徴レジスタ１３において、発生順序が設定されているイベントペアについてその順序の大小関係を比較し、比較結果を「１，０」で対応するマルチプレクサ２３（Ｅｎ，Ｅｍ）に選択信号として出力する。
【００２０】
各マルチプレクサ２３（Ｅｎ，Ｅｍ）の出力信号は、イベントペア選択部２５を介してＡＮＤゲート２６に入力される。前後関係特徴レジスタ１３は、イベントペア選択部２５に２８ビットの選択信号を与える。前後関係特徴レジスタ１３において、発生順序が設定されていないイベントペア，すなわち少なくとも一方が「０」であるイベントペアについては、対応するマルチプレクサ２３の選択を行う必要が無い。したがって、イベントペア選択部２５が対応するマルチプレクサ２３の出力を直接「１」にして、ＡＮＤゲート２６に入力する。
【００２１】
図１に示す例で説明すると、ユーザが前後関係特徴レジスタ１３に発生順序
Ｅ３＜Ｅ１＜Ｅ７
を設定している。この場合、３つのイベントペア（Ｅ１，Ｅ３），（Ｅ１，Ｅ７），（Ｅ３，Ｅ７）のみが有効となり、他の２５のイベントペアは無効となる。この時、前後関係特徴レジスタ１３からイベントペア選択部２５に対して、例えば有効な３つのイベントペアについては「０」を与えて、対応するマルチプレクサ２３の選択結果を有効とする。その他のイベントペアについては「１」を与えて、対応するマルチプレクサ２３の選択結果に関わらず、上述したようにイベントペア選択部２５がＡＮＤゲート２６に直接「１」を入力する。
【００２２】
また、ユーザが前後関係特徴レジスタ１３に設定した発生順序は、各イベントペア毎に分けると、
Ｅ１（２）＜Ｅ３（１）？  →    ０
Ｅ３（１）＜Ｅ７（３）？  →    １
Ｅ１（２）＜Ｅ７（３）？  →    １
となる。上記の比較結果に従い、マルチプレクサ２３（Ｅ１，Ｅ３）では、「０」側の入力である前発生レジスタ２２（Ｅ１＞Ｅ３）の値「１」が選択される。また、マルチプレクサ２３（Ｅ３，Ｅ７）では、「１」側の入力である後発生レジスタ２２（Ｅ１＜Ｅ７）の値「１」が選択される。マルチプレクサ２３（Ｅ１，Ｅ７）も同様に、「１」側の入力である後発生レジスタ２２（Ｅ３＜Ｅ７）の値「１」が選択される。
【００２３】
したがって、イベント前後関係記録部１２における前後関係の記録状態が、ユーザが前後関係特徴レジスタ１３に設定した発生順序に一致した時点でＡＮＤゲート２６が「１」を出力し、時系列特定フラグ１５がセットされる。ここで、本実施形態のように、前後関係特徴判定部１４が、イベント数８で発生順序１〜７までを設定するために必要なハードウエア資源量は、以下のようになる。
・イベント前後関係記録部１２          ５６ビット
・前後関係特徴レジスタ１３            ３×８＝２４ビット
・マルチプレクサ２３（２：１）        ２８個
・比較ロジック２４                    ２８個
・イベントペア選択部２５（２８ビット）  １個
・ＡＮＤゲート２６（２８入力）          １個
【００２４】
次に、本実施形態の作用について説明する。図６に示すように、先ずユーザが、パフォーマンスモニタ装置６の前後関係特徴レジスタ１３，及び開始／停止信号選択レジスタ１７に設定を行う（Ｓ１，Ｓ２）。それから、イベントレジスタ１１及びイベント前後関係記録部１２が初期化されると（Ｓ３）、プロセッサコア３が制御プログラムの実行を開始する（Ｓ４）。それに伴い、イベント前後関係記録部１２において特徴イベントの抽出（発生順序が設定されたイベントペアについての前後関係の記録）が開始される（Ｓ５）。
【００２５】
ユーザが選択設定したモニタ開始信号が発生すると、パフォーマンスモニタ装置６によるプログラムのモニタが開始され（Ｓ６）、カウンタ１６は、時系列特定フラグ１５がセットされた回数をカウントする（Ｓ７）。その後、ユーザが選択設定したモニタ停止信号が発生すると、パフォーマンスモニタ装置６によるモニタが停止する（Ｓ８）。そして、モニタ結果を外部に出力し（Ｓ９）、プログラムの実行が終了でなければ（Ｓ１０：ＮＯ）ステップＳ５に戻り、プログラムの実行が終了すれば（ＹＥＳ）終了となる。
【００２６】
以上のように本実施形態によれば、パフォーマンスモニタ装置６において、イベント前後関係記録部１２には、プロセッサ３によるプログラムの実行に伴って発生した２つのイベントのペアについて、それらが発生した時点の前後関係が記録され、前後関係特徴レジスタ１３には、ユーザにより複数のイベントの発生順序が設定される。前後関係特徴判定部１４は、イベント前後関係記録部１２に記録された前後関係の組み合わせが、前後関係特徴レジスタ１３に設定されている発生順序に一致するか否かを比較し、一致すると時系列特定フラグ１５をセットする。そして、カウンタ１６は、時系列特定フラグ１５がセットされた回数をカウントする。
【００２７】
このように構成すれば、上記カウンタ１６の値を参照することで、ユーザが前後関係特徴レジスタ１３に設定した複数のイベントが、モニタ期間中に設定された発生順序で何回発生したのかを特定できる。そして、イベント前後関係記録部１２には、２つのイベントのペアについてそれらが発生した時点の前後関係が記録されるので、それらの組み合わせによって複数のイベントの発生順序を特定できる。したがって、比較的小規模のハードウェアにより、発生したイベントについての時系列情報を抽出できる。
【００２８】
また、イベント前後関係記録部１２は、イベントペアの一方が他方より前に発生した場合にフラグがセットされる前発生レジスタ２２（Ｅｎ＞Ｅｍ）と、イベントペアの一方が他方より後に発生した場合にフラグがセットされる後発生レジスタ２２（Ｅｎ＜Ｅｍ）とを個別に備えるので、これらのレジスタにおけるフラグのセット状態により、各イベントの発生順序を特定できる。
【００２９】
また、イベント前後関係記録部１２は、各イベントが発生した時点でフラグがセットされるイベントレジスタ１１における各フラグの状態に応じて、前発生レジスタ２２（Ｅｎ＞Ｅｍ）及び後発生レジスタ２２（Ｅｎ＜Ｅｍ）にフラグをセットするレジスタ選択部２１を備えている。これにより、前発生レジスタ２２（Ｅｎ＞Ｅｍ）及び後発生レジスタ２２（Ｅｎ＜Ｅｍ）に、各イベントが発生したタイミングの前後関係を適切に記録することができる。
【００３０】
更に、イベント前後関係記録部１２は、各イベントペアに対応する前発生レジスタ２２（Ｅｎ＞Ｅｍ）及び後発生レジスタ２２（Ｅｎ＜Ｅｍ）における何れか一方のレジスタ値を選択して出力する複数のマルチプレクサ２３と、前後関係特徴レジスタ１３に設定されている発生順序に従う各イベントペアについての前後関係を比較して、各イベントペアに対応するマルチプレクサの入力選択を切替える比較ロジック２４と、前後関係設定レジスタ１３に設定されているイベントの種類に応じて、マルチプレクサ２３の出力を選択するイベントペア選択部２５と、イベントペア選択部２５を介して選択されたマルチプレクサ２３の出力値の論理積を演算して時系列特定フラグ１５をセットするＡＮＤゲート２６とを備えた。したがって、簡単なロジック構成で時系列特定フラグ１５をセットすることができる。
【００３１】
加えて、イベント前後関係記録部１２における前後関係の記録状態を、外部に出力可能としたので、ユーザは、プロセッサ３によるプログラムの実行中において、各イベントが発生したタイミングの前後関係をリアルタイムでモニタできる。
【００３２】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
各部のビット数の設定等は一例であり、個別の設計に応じて適宜変更すれば良い。
各ステージ１に搭載されるプロセッサコア３の数は、１つでも、３つ以上であっても良い。また、単一のステージのみで構成されるシステムに適用しても良い。
イベント数は８に限らず、「７」以下又は「９」以上であっても良い。
イベント前後関係記録部１２における前後関係の記録状態，及びカウンタ１６のカウント値を外部に出力する構成は、必要に応じて設ければ良い。
【符号の説明】
【００３３】
図面中、６はパフォーマンスモニタ装置、１１はイベントレジスタ、１２はイベント前後関係記録部、１３は前後関係特徴レジスタ、１４は前後関係特徴判定部（比較判定部）、１５は時系列特定フラグ、１６はカウンタ、２２はイベント前後関係記録レジスタを示す。
【図１】
0006447320.tif 000002
【図２】
0006447320.tif 000003
【図３】
0006447320.tif 000004
【図４】
0006447320.tif 000005
【図５】
0006447320.tif 000006
【図６】
0006447320.tif 000007