다음을 통해 공유


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 항목)권한 부여 필요