ハードウェアカウンタデータ

関連項目

ハードウェアカウンタデータの収集目的

ハードウェアカウンタデータからは、選択したプロセッサのイベントの頻度がわかります。 このデータは、データフローや命令遅延の問題の診断などに使用できます。

コレクタによるハードウェアカウンタデータの収集

ハードウェアカウンタは、各軽量プロセス (LWP: Lightweight Process) イベントの数を記録します。 ある LWP のカウンタがオーバーフローを起こすと、シグナルが送信されてカウンタはリセットされます。 その後、再びカウントを再開します。コレクタがこのシグナルを検出すると、その LWP の ID、スレッド ID、およびプロセッサ ID と共に、発信元のカウンタ ID、オーバーフロー値、時刻、および呼び出しスタックが記録されます。 この処理をハードウェアオーバーフロープロファイルといいます。 パフォーマンスアナライザは、そのオーバーフローの記録後、次に実行される命令をオーバーフローの原因として記録します。 したがって収集されたデータの性格は統計的なものとなります。

カウント対象となるハードウェアイベント

カウント対象となるイベントは特定の CPU プロセッサまたはオペレーティング環境によって異なります。 一般的なイベントの一覧を次に示します。

使用できるカウンタを表示するには、次の方法のいずれかを実行してください。

一覧の最初に表示されるカウンタのうち、一般に使用されるいくつかのカウンタには別名がついています。 一覧の表示形式についてはハードウェアカウンタ一覧を参照してください。 次の表に、別名を持つ UltraSPARC[tm] III ハードウェアカウンタとそのメトリック名、およびカウントの対象とするレジスタを示します。

カウンタ名 別名 メトリック レジスタ
Cycle_cnt cycles CPU サイクル 0 または 1
Instr_cnt insts 命令の実行 0 または 1
IC_miss icm I$ 失敗 1
DC_rd_miss dcrm D$ 読み込み失敗 1
DC_wr_miss dcwm D$ 書き込み失敗 1
DC_rd dcr D$ 読み込み参照 0
DC_wr dcw D$ 書き込み参照 (Write Refs) 0
EC_ref ecref E$ 参照 0
ITLB_miss itlbm ITLB 失敗 1
DTLB_miss dtlbm DTLB 失敗 1
EC_misses ecm E$ 失敗 1
EC_rd_miss ecrm E$ 読み込み失敗 0
EC_ic_miss ecim E$ Instr. Misses 1
Dispatch0_IC_miss icstall I$ 引き延ばしサイクル 0
Re_DC_miss dcstall D$ と E$ の引き延ばしサイクル 1
Re_EC_miss ecstall E$ 引き延ばしサイクル 1
Rstall_storeQ sqstall StoreQ 引き延ばしサイクル 0
FA_pipe_completion fpadd FP Adds 0
FM_pipe_completion fpmul FP Muls 1

パフォーマンスアナライザに表示されるハードウェアカウンタのメトリック (計測データ)

ハードウェアカウンタのオーバーフロープロファイルデータは、オーバーフロー値を合計してカウントメトリックに変換されます。 周期的にカウントするカウンタでは、カウントメトリックがプログラムが実行されていたマシン上の CPU 全体の平均クロック周波数を使用した時間に変換されます。 メトリック名は cputrack(1) で使用されるカウンタ名です。 カウンタの別名は、メトリック名と対応しています。 UltraSPARC III ハードウェアのメトリック名は前述の表に記述されています。

ハードウェアカウンタのデータ収集に関する制限事項

詳細についてはマニュアル『プログラムのパフォーマンス解析』を参照してください。

関連項目
パフォーマンスデータの収集
動作中プロセスのパフォーマンスデータの収集
ハードウェアカウンタを使用するプログラム

著作権と商標について