2017-03-25 1 views
0

특정 운영 체제에서 주파수 또는 전압 스케일링을 수행하는 방법에 대해 많은 질문이 있지만 그 점에 관심이 없습니다. 필자는 컴파일러 배경에서 왔고 컴파일되는 응용 프로그램에 대한 정보가 있으면 컴파일러가 주파수 스케일링을 수행 할 수있는 방법을 알고 싶습니다.소프트웨어에서 동적 전압 및 주파수 스케일링을 어떻게 제어 할 수 있습니까?

특히, 특정 어셈블리 명령어가 CPU에서 사용되는 주파수 또는 전압을 수정하는 데 사용되는지 또는 다른지를 알고 싶습니다.

+0

아니요, 구체적인 조립 지침이 없습니다. 일반적으로 이러한 동적 변경은 CPU 자체 및/또는 칩셋의 하드웨어로 관리됩니다. –

+0

[이 Intel AMT tech 링크] (https://en.wikipedia.org/wiki/Intel_Active_Management_Technology)는 몇 가지 힌트를 제공합니다. – zx485

+2

'어떤 의미에서'wrmsr'. 그러나 세부 정보는 모델에 따라 다르며 사용자 모드에서는 사용할 수 없습니다. – harold

답변

3

전압 및 주파수 스케일링은 일반적으로 하드웨어와 소프트웨어의 조합으로 제어됩니다.

그 이상의 세부 사항은 하드웨어에 따라 다르기 때문에 완전히 일반적인 답변을 제공 할 수 없으므로 아래 대부분이 Intel x86 하드웨어에 적용됩니다. 다른 "큰"CPU도 유사 할 수 있지만 마이크로 컨트롤러와 같은 것은 상당히 다를 것입니다.

위의 "소프트웨어"부분은 응용 프로그램에서 제어 할 수있는 희망을 줄지 만 소프트웨어 측면에서는 일반적으로 커널 또는 경우에 따라 루트로 실행되는 프로세스로 제한됩니다. 특히 최신 인텔의 주파수 제어는 MSR 레지스터를 사용하여 조정할 수 있으며 msr 커널 모듈과 rdmsrwrmsr 명령을 사용하여 사용자 영역에서 액세스 할 수 있습니다.

이것은 당신이 일이 엉망이 갈 수 있도록 커널은 또한, 설정되어는 MSR을 변경하기 때문에, 변경 사항이 임의 취소 할 수 있습니다, 일을 권장되는 방법이 아니다, 등

최근 추세 x86은 더 많은 "주파수 제어"루프를 하드웨어에 밀어 넣어보다 신속하게 대응할 수 있으며 응용 프로그램이하지 않는 응용 프로그램 동작에 대한 세분화 된 메트릭에 액세스 할 수 있습니다. Intel에서 이것은 HWP (hardware p-states)라고 불리는데, Linux 용 intel_pstate 드라이브 (최신 Intel의 기본값) 및 Windows와 비슷한 것들로 구현됩니다. 여기서 소프트웨어는 하드웨어에 대한 일반적인 힌트를 제공하는 것으로 추측되지만 일반적으로 빈도를 직접 제어하지는 않습니다.

마지막으로, 전압에 관해서는 : 이것은 일반적으로 x86에서 일반적인 방법으로 직접 제어 할 수 없습니다. MSR을 통해 할 수있는 것을 설정하고 전압은 하드웨어에 의해 적절한 수준으로 설정됩니다. 특정 마더 보드 또는 "열광적 인"CPU는 런타임시 전압을 직접 설정할 수있는 드라이버를 제공 할 수 있지만 이는 범용 적이 아닙니다.

관련 문제