第 9 章 Itanium ® 2 プロセッサ向けの最適化
10.2 パフォーマンス・モニタのプログラミング・モデル
10.3.8 データ EAR (PMC11、PMD2,3,17)
表10-18に示すように、L1 ITLBミスになった命令キャッシュ・ライン・フェッチのアドレスは、
PMD0に格納される。ステータス・ビット[1]は、収集されたTLBミスが、VHPT内でヒットした か、それともソフトウェアによる処理を必要としたかを示す。監視対象となるイベントが1つも 収集されなかった場合は、PMD0の有効ビットは0になる。TLBモードでは、PMD1のレイテン シ・フィールドは未定義である。
10.3.8.1 データ・キャッシュ・ロード・ミスの監視(PMC11.mode=00)
データEARがデータ・キャッシュ・ロード・ミスを監視するように設定されている場合、umask
は、表10-20に示すようなロード・レイテンシのスレッショルドとして使用される。
表10-22に示すように、収集されたデータ・キャッシュ・ロード・ミスの命令/データ・アドレス
とロード・レイテンシは、PMD2,3,17の3つのレジスタに格納され、ソフトウェアに渡される。監 視対象となるイベントが1つも収集されなかった場合は、PMD3の有効ビットは0になる。
HPWアクセスは監視されない。また、setf、ccvからの読み出し値は監視されない。L1Dキャッ シュ・ミスは、収集されたミスの後の7クロック以内に存在しない場合は、収集されない。セマ フォ命令はカウントされる。
表 10-19. データ・イベント・アドレス設定レジスタのフィールド(PMC11)
フィールド ビット 説明
plm 3:0 表10-5「パフォーマンス・モニタ設定(PMC)レジスタの制御フィールド
(PMC4,5,6,7,10,11,12)」を参照。
pm 6 表10-5「パフォーマンス・モニタ設定(PMC)レジスタの制御フィールド
(PMC4,5,6,7,10,11,12)」を参照。
モード 8:7 データEARモード・セレクタ:
`00:L1データ・キャッシュ・ロード・ミス
`01:L1データTLBミス
`1x:ALATミス
umask 19:16 データEARユニット・マスク
モード00:データ・キャッシュのユニット・マスク(定義は、表10-20「データ・
キャッシュ・モード(PMC11.mode=00)のデータEAR (PMC11)のUmaskフィール ド」を参照)
モード01:データTLBのユニット・マスク(定義は、表10-22「TLBモード (PMC10.ct=01)のデータEAR (PMC11)のUmaskフィールド」を参照)
ism 25:24 表10-5「パフォーマンス・モニタ設定(PMC)レジスタの制御フィールド
(PMC4,5,6,7,10,11,12)」を参照。
図 10-21. データ・イベント・アドレス・レジスタのフォーマット(PMD2,3,17)
63 4 3 2 1 0
命令アドレス(PMD17) vl bnスロット
60 1 1 2
63 62 61 15 14 13 12 0
予約済み(PMD3) ステータスov レイテンシ
2 50 12
63 0
データ・アドレス(PMD2) 64
表 10-20. データ・キャッシュ・モード(PMC11.mode=00)のデータEAR (PMC11)のUmaskフィールド umask
ビット19:16
レイテンシのスレッショルド [CPUサイクル]
umask ビット19:16
レイテンシのスレッショルド [CPUサイクル]
0000 >= 4 (任意のレイテンシ) 0110 >= 256
0001 >= 8 0111 >= 512
0010 >= 16 1000 >= 1024
0011 >= 32 1001 >= 2048
0100 >= 64 1010 >= 4096
0101 >= 128 1011.. 1111 イベントは収集されていない。
データ・キャッシュ・ロード・ミスを検出するためには、ロード命令の発行からキャッシュ・ミ スの発生までの複数のクロック・サイクルの間、ロード命令を監視しなければならない。任意の 時点で複数のロードが未処理になる可能性があるが、Itanium 2プロセッサのデータ・キャッシュ・
ミス・イベント・アドレス・レジスタは一度に1つのロードしか監視できないため、一部のデー タ・キャッシュ・ロード・ミスが収集されない可能性がある。プロセッサ・ハードウェアは、
ロード(監視対象ロードと呼ばれる)のアドレスを検出すると、その監視対象ロードがL1デー タ・キャッシュ・ミスかどうか判明するまで、同時に重複する他のすべてのロードを無視する。
監視対象ロードがキャッシュ・ミスと判明した場合は、そのパラメータがPMD2,3,17内に保持され る。プロセッサは、どのロード命令を監視するかを無作為に選択することによって、(通常の重複 するデータ・キャッシュ・ロード・ミスのシーケンスの中から)常に同じデータ・キャッシュ・
ロード・ミスが収集されるのを防ぐ。この機構は、特定の重複するロード・シーケンス内のすべ てのデータ・キャッシュ・ロード・ミスを常に検出するとは限らないが、統計的サンプリングま たはコードのインストルメンテーションには十分な精度を持っている。
10.3.8.2 データTLBミスの監視(PMC11.mode=`01)
データEARがデータTLBミスを監視するように設定されている場合、データEARで収集される データTLBミスは、表10-23に示すumaskによって決まる。TLBの監視のために、マスク・ビッ トのすべての組み合わせがサポートされている。
表10-23に示すように、収集されたDTLBミスの命令アドレスとデータ・アドレスは、PMD2,17に
格納され、ソフトウェアに渡される。監視対象となるイベントが1つも収集されなかった場合は、
PMD17の有効ビットは0になる。データTLB監視モードでは、PMD3のレイテンシ・フィールド の内容は未定義である。
ロードTLBミスおよびストアTLBミスは、両方収集される。到達されない命令も一部収集され る。例えば、あるロードが、L1DTLBでミスしたが、L2 DTLBでヒットし、分岐処理後の命令グ 表 10-21. データ・キャッシュ・ロード・ミス・モード(PMC11.mode=00)のPMD2,3,17のフィールド
レジスタ フィールド ビット範囲 説明
PMD2 データ・アドレス 63:0 ミスの原因となったデータ・アイテムの64ビット・アド レス
PMD3 レイテンシ 12:0 レイテンシ(CPUクロック単位)
オーバーフロー 13 オーバーフロー−1の場合、レイテンシ・カウンタは、
データが戻される前に、1回または複数回オーバーフ ローしている。
ステータス 15:14 ステータス・ビット
00: PMD3の残り、およびPMD2,17には、有効な情報は ない。
01: PMD2,3内に有効な情報があり、PMD17内にも有効 な情報がある可能性がある。
注: これらのビットは、EARを再利用する前にクリアす る必要がある。
PMD17 スロット 1:0 スロット・ビット。"vl"が1の場合は、メモリ命令の命令 バンドル・スロット
bn 2 バンドル・ビット。"vl"が1の場合、これは、収集された ミスに関連のある実行済みのバンドルを示す。
vl 3 有効ビット
0: 無効なアドレス(EARは監視対象となるイベントを収 集しなかった)。
1: EARは有効なイベント・データを格納している。
注: このビットは、EARを再利用する前にクリアする必 要がある。
命令アドレス 63:4 ミス時に実行されていた2バンドル配布ウィンドウ内の 先頭のバンドルのアドレス。".bn"が1の場合、2番目の バンドルにはメモリ命令が含まれ、アドレスに16が追加 される。
ループに入っている場合、そのロードは収集される。ストア操作および浮動小数点操作は、
L1DTLBでミスすることはない。ただし、L2 DTLBをミスするか、フォルトになりソフトウェア
で処理される場合がある。
注: このモードでは、PMC12は0でなければならない。そうでない場合は、予測ミスされた分岐の直 後に、ミスが原因の誤ったIPが提供される。
10.3.8.3 ALATミスの監視(PMC11.mode=`1x)
表10-24に示すように、ALATミスを引き起こしている命令(失敗しているchk.aおよびld.c)
のアドレスは、PMD17に格納され、ソフトウェアに渡される。監視対象となるイベントが1つも 収集されなかった場合は、PMD17の有効ビットは0になる。ALAT監視モードでは、PMD3のレイ テンシ・フィールド、PMD2の内容は未定義である。
注: このモードでは、PMC12は0でなければならない。そうでない場合は、予測ミスされた分岐の直 後に、ミスが原因の誤ったIPが提供される。
表 10-22. TLBモード(PMC10.ct=01)のデータEAR (PMC11)のUmaskフィールド
L1 DTLBミスのタイプ PMC.umask[19:16] 説明
--- 000x ディセーブル。何もカウントされない。
L2DTLB xx1x L2 DTLBをヒットしたL1 DTLBミス
VHPT x1xx VHPTをヒットしたL1 DTLBミス
FAULT 1xxx データTLBミスがフォルトを生成した。
ALL 111x L1 DTLBミスをすべて選択する。
注: すべての組み合わせがサポートされる。
表 10-23. TLBミス・モード(PMC11.mode=‘01)のPMD2,3,17のフィールド
レジスタ フィールド ビット範囲 説明
PMD2 データ・アドレス 63:0 ミスの原因となったデータ・アイテムの64ビット・アド レス
PMD3 レイテンシ 12:0 TLBミス・モードでは未定義である。
ov 13 TLBミス・モードでは未定義である。
ステータス 15:14 ステータス
00: PMD3の残りおよびPMD2,17の情報は無効である。
01: L2データTLBヒット 10: VHPTヒット
11: データTLBミスがフォルトを生成した。
注: これらのビットは、EARを再利用する前にクリアす る必要がある。
PMD17 スロット 1:0 スロット・ビット。"vl"が1の場合は、メモリ命令の命 令バンドル・スロット。
bn 2 バンドル・ビット。"vl"が1の場合、これは、収集され たミスに関連のある実行済みのバンドルを示す。
vl 3 有効ビット
0: 無効なアドレス(EARは監視対象となるイベントを収 集しなかった)。
1: EARは有効なイベント・データを格納している。
注: このビットは、EARを再利用する前にクリアする必 要がある。
命令アドレス 63:4 ミス時に実行されていた2バンドル配布ウィンドウ内の 先頭のバンドルのアドレス。".bn"が1の場合、2番目の バンドルにはメモリ命令が含まれ、アドレスに16が追加 される。