ConfigurePMCs
4 つのハードウェア パフォーマンス モニター カウンター (PMC) を構成して、タイトルのコードから直接、カウンターを読み取れるようにします。
構文
HRESULT ConfigurePMCs(
unsigned int eventIndex0,
unsigned int eventIndex1,
unsigned int eventIndex2,
unsigned int eventIndex3
)
パラメーター
eventIndex0
型: unsigned int
カウントするイベントのインデックス。
eventIndex1
型: unsigned int
カウントするイベントのインデックス。
eventIndex2
型: unsigned int
カウントするイベントのインデックス。
eventIndex3
型: unsigned int
カウントするイベントのインデックス。
戻り値
型: HRESULT
成功またはエラーのコード。
コード | 説明 |
---|---|
S_OK | 成功です。 |
E_INVALIDARG | 1 つ以上のインデックスが範囲外です。 |
E_ACCESS_DENIED | ドライバーへのアクセスが拒否されています。 |
解説
イベントをカウントするために直接、構成できる 4 つのハードウェア カウンターがあります。 イベントの一覧を次の表に示します。 イベントのインデックスは、このメソッドでイベントを指定する目的と、GetPMCValue を使用してカウントを取得する目的の両方に使用されます。
インデックス | イベント | 説明 |
---|---|---|
0 | 予約済み | 予約済みです。 |
1 | RetiredSseAvx | リタイアした SSE/AVX 演算の数。 |
2 | DCacheAccesses | ロード参照とストア参照用の L1 データ キャッシュへのアクセス数。 |
3 | DCacheMisses | データ キャッシュ ミスとなる L1 データ キャッシュ参照の数。 |
4 | DCacheRefills | キャッチ不能メモリの L2 キャッシュ (および/またはノースブリッジ) から満たされた L1 データ キャッシュ リフィルの数。 |
5 | L1DTLBMissL2DTLBHit | L1 DTLB でミスとなり L2 DTLB でヒットした L1 データ キャッシュ アクセスの数。 |
6 | DtlbMiss | L1 DTLB と L2 DTLB の両方でミスになった L1 データ キャッシュ アクセスの数。 |
7 | L1DtlbHit | L1 DTLB でヒットした L1 データ キャッシュ アクセスの数。 |
8 | L1ITLBMissL2ITLBHit | L1 ITLB でミスしたが L2 ITLB でヒットした命令フェッチの数。 |
9 | ItlbMiss | 4K ITLB と 2M ITLB でミスした命令フェッチの数。 |
10 | ItlbInstructionFetchHits | 4K ITLB と 2M ITLB でヒットした命令フェッチの数。 |
11 | MisalignedAccess | アライメントされていない L1 データ キャッシュ アクセスの数。 アライメントされていないアクセスでは、少なくとも、読み取り時に追加のキャッシュ アクセスと追加の遅延サイクルが発生します。 |
12 | IneffectiveSWPrefetches | 実際の L1 データ キャッシュ リフィルが発生しなかったソフトウェア プリフェッチの数。 |
13 | CpuClkNotHalted | CPU が停止状態でないクロックの数。 |
14 | RetiredInstructions | リタイアした (実行が完了してアーキテクチャ状態が更新された) 命令の数。 このカウントには例外と割り込みが含まれます。 |
15 | BranchInstructions | リタイアした分岐命令の数。 これには、例外や割り込みなど、あらゆる種類のアーキテクチャ制御フロー変更が含まれます。 |
16 | MispredictedBranch | ターゲットまたは方向が正しく予測されなかった、あらゆる種類のリタイアした分岐命令の数。 これには、予測が試みられない命令 (遠い制御移行、例外、および割り込み) が含まれ、再同期は含まれません。 |
17 | RetiredTakenBranch | 使用された分岐のうちリタイアしたものの数。 これには、例外や割り込みなど、あらゆる種類のアーキテクチャ制御フロー変更が含まれ、再同期は含まれません。 |
18 | RetiredFarSyscall | 遠い syscall のうちリタイアしたものの数。 |
19 | RetiredNearReturns | 近いリターン命令のうちリタイアしたものの数。 |
20 | RetiredReturnsMispredicted | ターゲットまたは方向の予測に誤りがあった近接的なリターン命令がリタイアしました。 |
21 | MispredictedTakenBranch | (方向ではなく) ターゲット アドレスの予測に誤りがあった使用済みの分岐命令がリタイアしました。 |
22 | MmxFPInstructions | 浮動小数点 (x87、MMX、または SSE) 命令がリタイアしました。 |
23 | RetiredFPInstructions | リタイアした SSE/AVX 演算の数。 |
24 | RetiredMmxInstructions | リタイアした MMX 演算の数。 |
25 | RetiredSseInstructions | リタイアした SSE 演算の数。 |
26 | InstructionFetchStalls | 命令フェッチ エンジンがストールしたサイクル数。 |
27 | DataCachePrefetches | L1 データ キャッシュ プリフェッチ。 |
28 | DataCacheReadSize | L1 データ キャッシュ読み取りの数。 |
29 | DataCacheWriteSize | L1 データ キャッシュ書き込みの数。 |
30 | ITLBReloadStalls | ITLB リロードのためにフェッチ エンジンがストールしたサイクル数。 |
要件
ヘッダー: pix3.h
ライブラリ: pixevt.lib
サポートされているプラットフォーム: Xbox One ファミリー本体、Xbox Series 本体
関連項目
ConfigureL2IPMCs
ConfigureNBPMCs
GetPMCValue
PIX (NDA トピック)認可が必須です
Xbox 上の PIX3