次の方法で共有


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 トピック)認可が必須です