ConfigurePMCs
타이틀 코드에 대해 타이틀이 직접 카운터를 읽을 수 있도록 4개의 하드웨어 PMC(성능 모니터 카운터)를 구성합니다.
구문
HRESULT ConfigurePMCs(
unsigned int eventIndex0,
unsigned int eventIndex1,
unsigned int eventIndex2,
unsigned int eventIndex3
)
매개 변수
eventIndex0
형식: unsigned int
개수를 계산할 이벤트의 인덱스입니다.
eventIndex1
형식: unsigned int
개수를 계산할 이벤트의 인덱스입니다.
eventIndex2
형식: unsigned int
개수를 계산할 이벤트의 인덱스입니다.
eventIndex3
형식: unsigned int
개수를 계산할 이벤트의 인덱스입니다.
반환 값
형식: HRESULT
성공 또는 오류 코드입니다.
코드 | 설명 |
---|---|
S_OK | 성공. |
E_INVALIDARG | 하나 이상의 인덱스가 범위를 벗어 났습니다. |
E_ACCESS_DENIED | 드라이버 액세스가 거부되었습니다. |
비고
이벤트를 계산하도록 직접 구성될 수 있는 4개의 하드웨어 카운터가 있습니다. 이러한 이벤트는 아래 표에 나열되어 있습니다. 이벤트의 인덱스는 이 메서드에 대해 이벤트를 지정하고 GetPMCValue를 사용하여 개수를 검색하기 위해 사용됩니다.
인덱스 | 이벤트 | 설명 |
---|---|---|
0 | Reserved | 예약됨. |
1 | RetiredSseAvx | 사용 중지된 SSE/AVX 작업 수입니다. |
2 | DCacheAccesses | 로드 및 저장 참조를 위한 L1 데이터 캐시의 액세스 수입니다. |
3 | DCacheMisses | 데이터 캐시가 누락된 L1 데이터 캐시 참조 수입니다. |
4 | DCacheRefills | 캐치할 수 없는 메모리에서 L2 캐시(및/또는 northbridge)에서 충족된 L1 데이터 캐시 리필 수입니다. |
5 | L1DTLBMissL2DTLBHit | L1 DTLB에서 누락되고 L2 DTLB에서 적중되는 L1 데이터 캐시 액세스 수입니다. |
6 | DtlbMiss | L1 및 L2 DTLB 모두에서 누락되는 L1 데이터 캐시 액세스 수입니다. |
7 | L1DtlbHit | L1 DTLB에서 적중되는 L1 데이터 캐시 액세스 수입니다. |
8 | L1ITLBMissL2ITLBHit | L1 ITLB에서 누락되지만 L2 ITLB에서 적중되는 명령 페치 수입니다. |
9 | ItlbMiss | 4K ITLB 및 2M ITLB에서 누락되는 명령 페치 수입니다. |
10 | ItlbInstructionFetchHits | 4K ITLB 및 2M ITLB에서 적중되는 명령 페치 수입니다. |
11 | MisalignedAccess | 잘못 정렬된 L1 데이터 캐시 액세스 수입니다. 잘못 정렬된 액세스는 최소한 추가적인 캐시 액세스 및 읽기에 대한 추가적인 지연 주기를 일으킵니다. |
12 | IneffectiveSWPrefetches | 실제 L1 데이터 캐시 리필을 일으키지 않는 소프트웨어 프리페치 수입니다. |
13 | CpuClkNotHalted | CPU가 중지 상태가 아닌 클록 수입니다. |
14 | RetiredInstructions | 사용 중지된(실행이 완료되었고 아키텍처 상태가 업데이트된) 명령 수입니다. 이 개수에는 예외 및 중단이 포함됩니다. |
15 | BranchInstructions | 사용 중지된 분기 명령 수입니다. 여기에는 예외 및 중단을 포함하여 모든 유형의 아키텍처 제어 흐름 변경이 포함됩니다. |
16 | MispredictedBranch | 대상 또는 방향이 올바르게 예측되지 않은 모든 유형의 사용 중지된 분기 명령 수입니다. 여기에는 예측이 시도되지 않은 항목(먼 제어 전송, 예외 및 중단)이 포함되고, 재동기화는 제외됩니다. |
17 | RetiredTakenBranch | 사용 중지된 가져온 분기 수입니다. 여기에는 예외 및 중단을 포함하여 모든 유형의 아키텍처 제어 흐름 변경이 포함되며, 재동기화는 제외됩니다. |
18 | RetiredFarSyscall | 사용 중지된 먼 syscall 수입니다. |
19 | RetiredNearReturns | 사용 중지된 가까운 반환 명령 수입니다. |
20 | RetiredReturnsMispredicted | 대상 및 방향에서 잘못 예측된 가까운 반환 명령이 사용 중지되었습니다. |
21 | MispredictedTakenBranch | 대상 주소(방향 제외)에서 잘못 예측된 가져온 분기 명령이 사용 중지되었습니다. |
22 | MmxFPInstructions | 부동 소수점(x87, MMX 또는 SSE) 명령이 사용 중지되었습니다. |
23 | RetiredFPInstructions | 사용 중지된 SSE/AVX 작업 수입니다. |
24 | RetiredMmxInstructions | 사용 중지된 MMX 작업 수입니다. |
25 | RetiredSseInstructions | 사용 중지된 SSE 작업 수입니다. |
26 | InstructionFetchStalls | 명령 페치 엔진이 중단된 횟수입니다. |
27 | DataCachePrefetches | L1 데이터 캐시 프리페치입니다. |
28 | DataCacheReadSize | L1 데이터 캐시 읽기 수입니다. |
29 | DataCacheWriteSize | L1 데이터 캐시 쓰기 수입니다. |
30 | ITLBReloadStalls | 페치 엔진이 ITLB 재로드 동안 중지된 횟수입니다. |
요건
헤더: pix3.h
라이브러리: pixevt.lib
지원되는 플랫폼: Xbox One 패밀리 콘솔 및 Xbox Series 콘솔
참고 항목
ConfigureL2IPMCs
ConfigureNBPMCs
GetPMCValue
PIX(NDA 항목)권한 부여 필요
Xbox의 PIX3