ConfigureNBPMCs
ノース ブリッジの内部に 4 つのハードウェア パフォーマンス モニター カウンター (PMC) を構成して、タイトルのコードから直接、カウンターを読み取れるようにします。
構文
HRESULT ConfigureNBPMCs(
unsigned int eventIndex6,
unsigned int eventIndex7,
unsigned int eventIndex8,
unsigned int eventIndex9
)
パラメーター
eventIndex6
型: unsigned int
カウントするイベントのインデックス。
eventIndex7
型: unsigned int
カウントするイベントのインデックス。
eventIndex8
型: unsigned int
カウントするイベントのインデックス。
eventIndex9
型: unsigned int
カウントするイベントのインデックス。
戻り値
型: HRESULT
成功またはエラーのコード。
コード | 説明 |
---|---|
S_OK | 成功です。 |
E_INVALIDARG | 1 つ以上のインデックスが範囲外です。 |
E_ACCESS_DENIED | ドライバーへのアクセスが拒否されています。 |
解説
ノース ブリッジには、イベントをカウントできるパフォーマンス カウンターが 4 つあります。 任意のコアから NB PMC の値を読み取ることができます。 ノース ブリッジのメモリ トランザクションは、64 バイトです。
* が付いているイベントは、DRAM コントローラー (DCT) から記録されます。 各 DRAM コントローラーには同じイベントを設定する必要があるので、これらのイベントを構成するときにのみ eventIndex6 を設定します。Xbox One には 4 個の DRAM コントローラーと 4 個のカウンターがあるので、合計の結果を取得するには PMC6 から PMC9 を合計します。
例: NBAllReadWrites のメモリ トラフィックの合計 = (PCM6 + PMC7 + PCM8 + PMC9) * 64
Xbox One X には 12 個の DRAM コントローラーと 4 個のカウンターがあるので、3 番目ごとの DCT だけでトラフィックをカウントします。 ほとんどの場合メモリ トラフィックは対称なので、イベントの合計数は PMC6 から PMC9 の合計の 3 倍と想定しても問題ありません。
例: NBAllReadWrites のメモリ トラフィックの合計 = (PCM6 + PMC7 + PCM8 + PMC9) * 3 * 64
インデックス | イベント | 説明 |
---|---|---|
0 | 予約済み | |
1 | NBGarlicReads* | Garlic バスの読み取り回数 |
2 | NBGarlicWrites* | Garlic バスの書き込み回数 |
3 | NBGarlicReadsWrites* | Garlic バスの読み取りと書き込みの回数 |
4 | NBOnionReads* | Onion バスの読み取り回数 |
5 | NBOnionWrites* | Onion バスの書き込み回数 |
6 | NBOnionReadsWrites* | Onion バスの読み取りと書き込みの回数 |
7 | NBAllReadWrites* | すべての NB の読み取りと書き込みの回数 |
8 | NBCPUToMemory | メモリに対する CPU トランザクションの数 |
9 | NBIOToMemory | メモリに対する IO トランザクションの数 |
要件
ヘッダー: pix3.h
ライブラリ: pixevt.lib
サポートされているプラットフォーム: Xbox One ファミリー本体、Xbox Series 本体
関連項目
GetPMCValue
ConfigurePMCs
ConfigureL2IPMCs
Xbox 上の PIX3
PIX (NDA トピック)認可が必須です