• 検索結果がありません。

第 9 章 Itanium ® 2 プロセッサ向けの最適化

11.14 パフォーマンス監視イベント・リスト

この節では、Itanium 2プロセッサのパフォーマンス監視イベントを列挙する。

注: 特に断りのない限り、命令アドレス範囲で制限できるイベントは、IBRP0でしか制限できな

い。

ALAT_CAPACITY_MISS

• タイトル: 置き換えられたALATエントリ

• カテゴリ: 命令実行  IAR/DAR/OPC: Y/Y/Y

• イベント・コード: 0x58、最大Inc/Cyc: 2

• 定義: アドバンスト・ロード(ld.a、ld.as、ldfp.a、またはldfp.as)、または使用されな

くなったld.c.ncが、同じレジスタidを持たないALAT内の有効なエントリを強制的に追い 出した回数、あるいは最後の1〜2つの無効なエントリを置き換えた回数について情報を提供 する。

BACK_END_BUBBLE

• タイトル: メイン・パイプ内のフル・パイプ・バブル

• カテゴリ: ストール・イベント  IAR/DAR/OPC: N/N/N

• イベント・コード: 0x00、最大Inc/Cyc: 1

• 定義: 5つのイベント(FPU/L1D、RSE、EXE、分岐/例外、またはフロントエンド)のいずれか が原因でストールしたメイン・パイプ内のフル・パイプ・バブルの数をカウントする。このイ ベントは、1つのイベント・ユニット・マスクによりさらに制限される。また、4つのカウンタ を使用してすべての情報を容易に収集するために、いくつかの詳細情報が提供される。

表 11-37. ALAT_CAPACITY_MISSのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

--- bxx00 (* 何もカウントされない *)

INT bxx01 整数命令のみ

FP bxx10 浮動小数点命令のみ

ALL bxx11 整数命令と浮動小数点命令の両方

表 11-38. BACK_END_BUBBLEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL bxx00 例外/分岐の予測ミスが原因である、フロントエンド、

RSE、EXE、FPU/L1Dストール、またはパイプライン・フ ラッシュ

FE bxx01 フロントエンド

L1D_FPU_RSE bxx10

--- bxx11 (* 何もカウントされない *)

BE_BR_MISPRED_DETAIL

• タイトル: バックエンド分岐予測ミスの詳細

• カテゴリ: 分岐イベント  IAR/DAR/OPC: Y/N/Y

• イベント・コード: 0x61、最大Inc/Cyc: 1

• 定義: 予測結果、stg、rot、またはpfsのバックエンド予測ミスに基づいて、リタイアした分岐

の数をカウントする。これらの予測は、分岐当たりではなく、バンドル当たりのものである。

• 注: これらのイベントがカウントされるのは、分岐に関連するパス予測ミスがない場合に限ら

れる。パス予測ミスは、stg/rot/pfsの予測ミスを保証するからである。

BE_EXE_BUBBLE

• タイトル: 実行ユニット・ストールが原因のメイン・パイプ内のフル・パイプ・バブル

• カテゴリ: ストール・イベント  IAR/DAR/OPC: N/N/N

• イベント・コード: 0x02、最大Inc/Cyc: 1

• 定義: 実行ユニットにより引き起こされたストールが原因である、メイン・パイプ内のフル・

パイプ・バブルの数をカウントする。

• 注: このイベントの別の原因には優先順位が付けられない。なぜなら、その必要がないからで ある(原因は独立しており、そのいくつかは同時に発生する。原因はすべてカウントする)。 表 11-39. BE_BR_MISPREDICT_DETAILのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ANY bxx00 任意のバックエンド予測ミス

STG bxx01 バックエンド・ステージ予測ミスのみ

ROT bxx10 バックエンド・ローテート予測ミスのみ

PFS bxx11 実行された分岐のバックエンドpfs予測ミスのみ

表 11-40. BE_EXE_BUBBLEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL b0000 exeによってストールされた。

GRALL b0001 GR/GRまたはGR/ロードの依存関係が原因で、バックエ

ンドがexeによってストールされた。

FRALL b0010 FR/FRまたはFR/ロードの依存関係が原因で、バックエン

ドがexeによってストールされた。

PR b0011 PRの依存関係が原因で、バックエンドがexeによってス

トールされた。

ARCR b0100 ARまたはCRの依存関係が原因で、バックエンドがexe

によってストールされた。

GRGR b0101 GR/GRの依存関係が原因で、バックエンドがexeによっ

てストールされた。

CANCEL b0110 キャンセルされたロードが原因で、バックエンドがexe

よってストールされた。

BANK_SWITCH b0111 バンク切り替えが原因で、バックエンドがexeによってス

トールされた。

BE_FLUSH_BUBBLE

• タイトル: フラッシュが原因のメイン・パイプ内のフル・パイプ・バブル

• カテゴリ: ストール・イベント  IAR/DAR/OPC: N/N/N

• イベント・コード: 0x04、最大Inc/Cyc: 1

• 定義: フラッシュが原因であるメイン・パイプ内のフル・パイプ・バブルの数をカウントする。

• 注: XPNは、BRUよりも優先順位が高い。

BE_L1D_FPU_BUBBLE

• タイトル: FPまたはL1Dキャッシュが原因のメイン・パイプ内のフル・パイプ・バブル

• カテゴリ: ストール・イベント/L1Dキャッシュ・セット2  IAR/DAR/OPC: N/N/N

• イベント・コード: 0xca、最大Inc/Cyc: 1

• 定義: 浮動小数点ユニットまたはL1Dキャッシュにより引き起こされたストールが原因であ

る、メイン・パイプ内のフル・パイプ・バブルの数をカウントする。

• 注: 制限付きのセット2 L1Dキャッシュ・イベントである。このイベントを計測するには、こ

のセット内のイベントの1つをPMD5で計測しなければならない。このイベントの別の原因に は優先順位が付けられない。なぜなら、その必要がないからである(原因は独立しており、その いくつかは同時に発生する。原因はすべてカウントする)。

ARCR_PR_CANCEL_BANK b1000 ARCR、PR、CANCEL、またはBANK_SWITCH

--- b1001-b1111 (* 何もカウントされない *)

表 11-40. BE_EXE_BUBBLEのユニット・マスク (続き)

拡張子 PMC.umask

[19:16] 説明

表 11-41. BE_FLUSH_BUBBLEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL bxx00 例外/割り込みまたは分岐予測ミス・フラッシュが原因で、

バックエンドがストールされた。

BRU bxx01 分岐予測ミス・フラッシュが原因で、バックエンドがス

トールされた。

XPN bxx10 例外/割り込みフラッシュが原因で、バックエンドがス

トールされた。

--- bxx11 (* 何もカウントされない *)

表 11-42. BE_L1D_FPU_BUBBLEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL b0000 L1DまたはFPUによって、バックエンドがストールされ

た。

FPU b0001 FPUによって、バックエンドがストールされた。

L1D b0010 L1Dによって、バックエンドがストールされた。これには、

L1パイプラインによって引き起こされたストールがすべて 含まれる(これは、メイン・パイプのDETステージに相当 する、L1パイプラインのL1Dステージで生成される)。

BE_LOST_BW_DUE_TO_FE

• タイトル: BEがその他の理由でストールされていない場合の無効なバンドル

• カテゴリ: ストール・イベント  IAR/DAR/OPC: N/N/N

• イベント・コード: 0x72、最大Inc/Cyc: 2

• 定義: バックエンドがその他の理由でストールしていない場合に限って、命令バッファからの

無効なバンドルの数を出口でカウントする。

• 注: このイベントで、帯域幅が失われた原因には、次の順序で優先順位が付けられる: FEFLUSH、TLBMISS、IMISS、PLP、BR_ILOCK、BRQ、BI、FILL_RECIRC、BUBBLE、

IBFULL、UNREACHED。この優先順位付けでは、いくつかのストール条件が同時に存在する場 合、最も優先順位の高いものだけがカウントされる。バンドルが「到達不可」と見なされる場 合は2つある。実行された分岐がバンドル0に含まれる場合、またはバンドル0は無効である がIP[4]に1が設定されている場合、バンドル1は到達されない。

L1D_FULLSTBUF b0011 ストア・バッファがいっぱいであるために、バックエンド

L1Dによってストールされた。

L1D_DCURECIR b0100 DCU再循環が原因で、バックエンドがL1Dによってス

トールされた。

L1D_HPW b0101 ハードウェア・ページ・ウォーカが原因で、バックエンド

L1Dによってストールされた。

--- b0110 (* カウントは未定義 *)

L1D_FILLCONF b0111 リターン・フィルと競合するストアが原因で、バックエン

ドがL1Dによってストールされた。

L1D_DCS b1000 ストールを要求しているdcsが原因で、バックエンドが

L1Dによってストールされた。

L1D_L2BPRESS b1001 L2バック・プレッシャが原因で、バックエンドがL1D

よってストールされた。

L1D_TLB b1010 L2DTLBからL1DTLBへの転送が原因で、バックエンドが

L1Dによってストールされた。

L1D_LDCONF b1011 アーキテクチャ上の並べ替えの競合が原因で、バックエン

ドがL1Dによってストールされた。

L1D_LDCHK b1100 ロード・チェックの並べ替えの競合が原因で、バックエン

ドがL1Dによってストールされた。

L1D_NAT b1101 再循環NaT生成が必要なL1Dデータ・リターンが原因で、

バックエンドがL1Dによってストールされた。

L1D_STBUFRECIR b1110 再循環が必要なストア・バッファ・キャンセルが原因で、

バックエンドがL1Dによってストールされた。

L1D_NATCONF b1111 unatに書き込まれていないst8.spillld8.fillの競合が原因 で、バックエンドがL1Dによってストールされた。

表 11-42. BE_L1D_FPU_BUBBLEのユニット・マスク (続き)

拡張子 PMC.umask

[19:16] 説明

表 11-43. BE_LOST_BW_DUE_TO_FEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL b0000 原因に関わらずカウントする。

FEFLUSH b0001 フロントエンド・フラッシュが発生原因である場合のみ

--- b0010 (* カウントは未定義 *)

--- b0011 (* 不正な選択 *)

BE_RSE_BUBBLE

• タイトル: RSEストールが原因であるメイン・パイプ内のフル・パイプ・バブル

• カテゴリ: ストール・イベント  IAR/DAR/OPC: N/N/N

• イベント・コード: 0x01、最大Inc/Cyc: 1

• 定義: レジスタ・スタック・エンジンにより引き起こされたストールが原因である、メイン・

パイプ内のフル・パイプ・バブルの数をカウントする。

• 注: AR_DEPの優先順位は、OVERFLOW、UNDERFLOW、LOADRSよりも高い。ただし、こ

れは、実装された唯一の優先順位付けである。OVERFLOW、UNDERFLOW、またはLOADRS をカウントするには、AR_DEPを偽にする必要がある。

UNREACHED b0100 到達不可バンドルが発生原因である場合のみ

IBFULL b0101 (* このイベントでは無効 *)

IMISS b0110 命令キャッシュ・ミスのストールが発生原因である場合の

TLBMISS b0111 TLBストールが発生原因である場合のみ

FILL_RECIRC b1000 キャッシュ・ライン・フィル操作の再循環が発生原因であ

る場合のみ

BI b1001 分岐初期設定のストールが発生原因である場合のみ

BRQ b1010 分岐リタイアメント・キューのストールが発生原因である

場合のみ

PLP b1011 完全なループ予測のストールが発生原因である場合のみ

BR_ILOCK b1100 分岐インターロックのストールが発生原因である場合のみ

BUBBLE b1101 分岐リステア・バブルのストールが発生原因である場合の

--- b1110-b1111 (* 不正な選択 *)

表 11-43. BE_LOST_BW_DUE_TO_FEのユニット・マスク (続き)

拡張子 PMC.umask

[19:16] 説明

表 11-44. BE_RSE_BUBBLEのユニット・マスク

拡張子 PMC.umask

[19:16] 説明

ALL bx000 RSEによって、バックエンドがストールされた。

BANK_SWITCH bx001 バンク切り替えが原因で、バックエンドがRSEによって

ストールされた。

AR_DEP bx010 ARの依存関係が原因で、バックエンドがRSEによってス

トールされた。

OVERFLOW bx011 スピルが必要であるため、バックエンドがRSEによって

ストールされた。

UNDERFLOW bx100 フィルが必要であるため、バックエンドがRSEによって

ストールされた。

LOADRS bx101 loadrs計算が原因で、バックエンドがRSEによってス

トールされた。

--- bx110-bx111 (* 何もカウントされない *)