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

第 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が追加 される。