ノース ブリッジの内部に 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 トピック)認可が必須です