오버클러킹이 불가능한 인텔 CPU에서 MCHBAR를 이용한 TDP 수정

시리즈

이 글은 이 글 에서 이어집니다. 이쪽도 참고하세요.

면책조항

  • MCHBAR 수정은 CPU (혹은 시스템 보드) 의 보증을 무효화 시킬 수 있습니다. 조심해서 진행하세요. 전 이 글로 인해 발생한 어떠한 피해에 대해 책임을 지지 않습니다.
  • MCHBAR 주소는 시스템마다 다를 수 있습니다. 인텔의 문서를 참고하세요.
  • 인텔 i7-8550U (카비레이크 리프레시) 에서만 테스트 되었습니다.

시작

MSR을 수정하여 TDP 제한을 풀었지만, 여전히 기존 설정값대로 TDP가 계속 내려가서 클럭 제한이 걸리는 경우엔 시스템의 다른 부분에도 제한이 있다는 것을 의심해볼 수 있습니다. 여기에서는 가능성이 높은 선택지인 MCHBAR를 공략해 봅니다.

필요한 도구들

저번 글에서 필요한 내용

MSR_RAPL_POWER_UNIT에 존재하는 전력 단위 값이 이번 글에서 사용됩니다. 제 CPU의 경우엔 다음과 같습니다:

606H MSR_RAPL_POWER_UNIT (RO)
    3:0 = 전력 단위 (W) = 1/2^(10진수)W - 초기값: 0.125W
    12:8 = 에너지 단위 (J) = 1/2^(10진수)J - 초기값: 0.00006103515625J
    19:16 = 시간 단위 (sec) = 1/2^(10진수)sec - 초기값: 0.0009765625sec

본격적인 작업

패키지 전력 제한 1은 FED159A0h, 패키지 전력 제한 2는 FED159A4h에 존재합니다.

$ sudo ./devmem2 0xFED159A0
00DD8078
$ sudo ./devmem2 0xFED159A4
00428198

레지스터 값 뒤의 3자리를 10진수로 변환한 뒤 전력 단위 값을 곱하면 현재 TDP가 됩니다. 이 값이 맞는지 다시 한번 확인하세요.

0x078 * 0.125 = 15
0x198 * 0.125 = 51

값을 알맞게 수정합니다.

0x0C8 * 0.125 = 25
0x198 * 0.125 = 51

수정한 값을 레지스터에 다시 씁니다.

$ sudo ./devmem2 0xFED159A0 w 0x00DD80C8

결과

열 스로틀링의 영향을 받지 않는 환경에서 CPU가 지속적으로 15W 초과의 TDP로 동작하는 것을 확인할 수 있었습니다. XPS 13의 쿨링 설계의 한계로 인해 25W로 지속적으로 동작하지는 못했습니다.

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.