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 | 하나 이상의 인덱스가 범위를 벗어 났습니다. |
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 | Reserved | |
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 항목)권한 부여 필요