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

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

11.8 メモリ階層

11.8.3 L2 ユニファイド・キャッシュ・イベント

表11-16は、Itanium 2プロセッサのL2キャッシュ監視用に提供されているイベントをまとめたも

のである。

L2キャッシュ・イベントは、6つのセットに分割されている。同時に計測できるのは、同じセッ ト内のイベント(またはL2以外のイベント)のみである。各セットは、PMC4に設定されたイベ ント・コードによって選択される(すなわち、このセット内のイベントを計測したい場合、そのう ちの1つはPMD4で計測しなければならない)。セット内には、PMD4でしか計測できないイベン トもある。また、特定の同類のL2イベントのumaskを1次イベント(PMD4を使用するL2イベン ト)が指示するようなumaskについては、いくつかの制限が存在する場合がある。これらの制限 は、セットごとに示される。各セットに属するモニタについては、次の節で詳しく説明する。

表 11-15. L1Dキャッシュ・セット4のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

MISALIGNED_STORES_RETIRED 0xd2 Y Y Y 2 リタイアしたアライメントの合ってい ないストア命令

STORES_RETIRED 0xd1 Y Y Y 2 リタイアしたストア

UC_STORES_RETIRED 0xd0 Y Y Y 2 リタイアしたキャッシュ不可ストア

表 11-16. L2ユニファイド・キャッシュ・イベントのパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_BAD_LINES_SELECTED 0xb9 Y Y Y 4 無効なラインが使用可能なときに置き

換えられた有効なライン

L2_BYPASS 0xb8 Y Y Y 1 バイパスをカウントする。

L2_DATA_REFERENCES 0xb2 Y Y Y 4 L2へのデータ読み出し/書き込みア

クセス

L2_FILLB_FULL 0xbf N N N 1 L2Dフィル・バッファがいっぱい

L2_FORCE_RECIRC 0xb4 Y Y Y 4 強制された再循環

L2_GOT_RECIRC_IFETCH 0xba Y Y Y 1 L2Dが受け取った命令フェッチ再循環

L2_GOT_RECIRC_OZQ_ACC 0xb6 Y Y Y 1 L1Dに再循環されたOZQアクセスの 数をカウントする。

L2_IFET_CANCELS 0xa1、

0xa5、

0xa9、

0xad

Y Y Y 1 L2による命令フェッチのキャンセル

L2_ISSUED_RECIRC_IFETCH 0xb9 Y Y Y 1 L2Dが発行した命令フェッチ再循環

L2_ISSUED_RECIRC_OZQ_ACC 0xb5 Y Y Y 1 再循環発行を試行したが、先読みされ

なかった回数をカウントする。

L2_L3ACCESS_CANCEL 0xb0 Y Y Y 1 キャンセルされたL3アクセス

L2_MISSES 0xcb Y Y Y 1 L2ミス

L2_OPS_ISSUED 0xb8 Y Y Y 4 L2Dが発行した別の演算

L2_OZDB_FULL 0xbd N N N 1 L2D OZデータ・バッファがいっぱい

L2_MISS_RATIOは、重要な評価基準である。セマフォはL2_REFERENCESで一度カウントされ るが、スヌープされバスから再要求されているキャッシュ・ラインが原因で、L2_MISSESが複数 発生するときがある。そのため、セマフォにより、この評価基準が100%より大きくなる場合があ ることに注意する。これは、順方向の進行が再開するまで、何度も繰り返される可能性がある。

L2_MISSESとL2_REFERENCESは5サイクル・バイパスのみで遅れずに整列するため、この評価 基準では、ある程度のエラーが発生することになる(この問題を回避するには、mf.a命令に続け てsync.i命令、srlz.i命令を使用し、その後でカウンタを読み取ればよい)。

L2_OZQ_ACQUIRE 0xa2、

0xa6、

0xaa、

0xae

N N N 1 L2 OZQ内に存在する獲得順序属性に

関するクロック

L2_OZQ_CANCELS0 0xa0 Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_CANCELS1 0xac Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_CANCELS2 0xa8 Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_FULL 0xbc N N N 1 L2D OZQがいっぱい

L2_OZQ_RELEASE 0xa3、

0xa7、

0xab、

0xaf

N N N 1 L2 OZQ内に存在する解放順序属性に

関するクロック

L2_REFERENCES 0xb1 Y Y Y 4 L2から発行された要求

L2_STORE_HIT_SHARED 0xba Y Y Y 2 ストアが共用ラインをヒットした。

L2_SYNTH_PROBE 0xb7 Y Y Y 1 合成されたプローブ

L2_VICTIMB_FULL 0xbe N N N 1 L2Dビクティム・バッファがいっぱい

表 11-16. L2ユニファイド・キャッシュ・イベントのパフォーマンス・モニタ (続き)

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

表 11-17. L2ユニファイド・キャッシュ・イベントの派生モニタ

シンボル名 説明

L2_DATA_RATIO L2に発行されたデータ要求率 L2_DATA_REFERENCES.L2_ALL / L2_REFERENCES

L2_DATA_READS L2データ読み出し要求 L2_DATA_REFERENCES.L2_DATA_

READS

L2_DATA_WRITES L2データ書き込み要求 L2_DATA_REFERENCES.L2_DATA_

WRITES

L2_INST_REFERENCES L2に発行された命令要求 L2_INST_DEMAND_READS - L1I_FETCH_ISB_HIT + L2_INST_PREFETCHES

L2_INST_FETCHES デマンド命令フェッチが原因で

L2に発行された要求

L2_INST_DEMAND_READS + L2_INST_PREFETCHES

L2_MISS_RATIO L2ミスのパーセント L2_MISSES/L2_REFERENCES

L2_RECIRC_ATTEMPTS L2発行ロジックが再循環の発行 を試行した回数

L2_ISSUED_RECIRC_OZQ_ACC + L2_OZQ_CANCELS2.DIDNT_RECIRC

11.8.3.1 L2キャッシュ・イベント(セット0)

L2_OZQ_CANCELS*イベント、またはL2_IFET_CANCELSは、PMD4で計測しなければならな い。これらのイベントは、同じumaskを使用する。一度に計測できるのは、3つある

L2_OZQ_CANCELS*イベントの1つだけである。

11.8.3.2 L2キャッシュ・イベント(セット1)

L2_L3ACCESS_CANCELは、PMD4で計測しなければならない。

11.8.3.3 L2キャッシュ・イベント(セット2)

L2_FORCE_RECIRCは、PMD4で計測しなければならない。

表 11-18. L2キャッシュ・セット0のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_IFET_CANCELS 0xa1、

0xa5、

0xa9、

0xad

Y Y Y 1 L2による命令フェッチのキャンセル

L2_OZQ_ACQUIRE 0xa2、

0xa6、

0xaa、

0xae

N N N 1 L2 OZQ内に存在する獲得順序属性に

関するクロック

L2_OZQ_CANCELS0 0xa0 Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_CANCELS1 0xac Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_CANCELS2 0xa8 Y Y Y 4 L2 OZQのキャンセル

L2_OZQ_RELEASE 0xa3、

0xa7、

0xab、

0xaf

N N N 1 L2 OZQ内に存在する解放順序属性に

関するクロック

表 11-19. L2キャッシュ・セット1のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_DATA_REFERENCES 0xb2 Y Y Y 4 L2へのデータ読み出し/書き込みア

クセス

L2_L3ACCESS_CANCEL 0xb0 Y Y Y 1 キャンセルされたL3アクセス

L2_REFERENCES 0xb1 Y Y Y 4 L2から発行された要求

表 11-20. L2キャッシュ・セット2のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_FORCE_RECIRC 0xb4 Y Y Y 4 強制された再循環

L2_ISSUED_RECIRC_OZQ_ACC 0xb5 Y Y Y 1 再循環発行を試行したが、先読みされ

なかった回数をカウントする。

11.8.3.4 L2キャッシュ・イベント(セット3)

L2_BAD_LINES_SELECTED、L2_BYPASS、L2_STORE_HIT_SHAREDは、同じumaskを共用す る。

11.8.3.5 L2キャッシュ・イベント(セット4)

L2_OPS_ISSUED、L2_ISSUED_RECIRC_IFETCH、またはL2_GOT_RECIRC_IFETCHは、PMD4で 計測しなければならない。これらの3つのイベントは、同じumaskを共用する。

11.8.3.6 L2キャッシュ・イベント(セット5)

L2_OZQ_FULL、L2_OZDB_FULL、L2_VICTIMB_FULL、またはL2_FILLB_FULLは、PMD4で計 測しなければならない。これらの4つのイベントは、同じumaskを共用する。

L2_GOT_RECIRC_OZQ_ACC 0xb6 Y Y Y 1 L1Dに再循環されたOZQアクセスの 数をカウントする。

L2_SYNTH_PROBE 0xb7 Y Y Y 1 合成されたプローブ

表 11-20. L2キャッシュ・セット2のパフォーマンス・モニタ (続き)

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

表 11-21. L2キャッシュ・セット3のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_BAD_LINES_SELECTED 0xb9 Y Y Y 4 無効なラインが使用可能なときに置き

換えられた有効なライン

L2_BYPASS 0xb8 Y Y Y 1 バイパスをカウントする。

L2_STORE_HIT_SHARED 0xba Y Y Y 2 ストアが共用ラインをヒットした。

表 11-22. L2キャッシュ・セット4のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_GOT_RECIRC_IFETCH 0xba Y Y Y 1 L2Dが受け取った命令フェッチ再循環

L2_ISSUED_RECIRC_IFETCH 0xb9 Y Y Y 1 L2Dが発行した命令フェッチ再循環

L2_OPS_ISSUED 0xb8 Y Y Y 4 L2Dが発行した別の演算

表 11-23. L2キャッシュ・セット5のパフォーマンス・モニタ

シンボル名 イベント・

コード I A R

D A R

O P C

最大 インクリ

メント/ サイクル

説明

L2_OZQ_FULL 0xbc N N N 1 L2D OZQがいっぱい

L2_OZDB_FULL 0xbd N N N 1 L2D OZデータ・バッファがいっぱい

L2_VICTIMB_FULL 0xbe N N N 1 L2Dビクティム・バッファがいっぱい

L2_FILLB_FULL 0xbf N N N 1 L2Dフィル・バッファがいっぱい