답변

2

성능 모니터 카운터 (PMC)는 초기화 할 필요가 없으므로 소프트웨어에서 기능을 사용하려고 할 때 프로그래밍 (또는 설정)해야합니다.

CPU는 재설정 후에도 최소한 구조적으로 볼 수있는 (즉, 프로그래머에게 표시되는) 것은 아닙니다.

부트 로더는 이러한 일을 처리하지 않습니다.

그것은에만 특권 명령 (같은 rdmsr, wrmsr)에 액세스 할 수 있습니다 그들이 모델 특정 레지스터 (는 MSR)이 있기 때문에 이정환를 handlea 커널 모듈 (그들은 커널 공간에서 실행하는 코드가 필요 예) . 그런 다음 커널 모듈은 OS 인터페이스를 통해 또는 명령 rdpmc이 권한이 부여되지 않은 코드에 의해 실행되도록 허용하여 사용자 공간 프로그램에 기능을 표시 할 수 있습니다 (이미 사전 설정된 카운터를 읽을 수 있음).


PMC에 대한 자세한 내용은 Intel Manual 3B, Chapter 18을 참조하십시오.

+0

IIRC를 사용하면 커널이 perf 카운터에 대한 직접적인 사용자 공간 액세스를 가능하게 할 수 있습니다. (즉, 사용자 공간에서 [RDPMC instruction] (http://www.felixcloutier.com/x86/RDPMC.html)이 작동하도록 설정하십시오. –

+0

@PeterCordes 사용자 공간 프로그램이 잘못 될 수 없다면 읽기 위해'rdpmc '을 사용하십시오. 그러나 언급할만한 가치가 있습니다. 감사합니다! –

+0

RDPMC를 수동으로 사용하지는 않았지만 실제로는 실제 카운터를 읽는 것만으로 생각합니다. 셀 수를 선택하려면 WRMSR이 필요하다고 생각합니다. 그래도 RDTSC보다 낮은 매우 낮은 오버 헤드 측정에는 충분합니다. (벽 시계 기준주기가 아닌 코어 클럭주기를 계산할 수 있습니다.) –