언더클럭

 

1. 개요
2. 지나친 언더클럭의 부작용 (언더클럭과 안정성은 비례한다?)
3. 언더볼팅
4. 터보 버튼
5. 기타


1. 개요


언더클럭(다운클럭)은 오버클럭의 반대로, CPU클럭을 정규 클럭보다 낮추는 것을 말한다.
말 그대로 성능을 낮추는 것인데, 멀쩡한 제품을 더욱 성능 낮게 세팅하여 사용한다는 것이 말이 되지 않을수도 있지만 필요한 전력량을 줄여 발열을 잡아 하드웨어 수명을 늘리거나, 저소음 시스템을 구성하거나, 모바일 기기의 경우는 디스플레이에 이어 두 번째로 배터리를 많이 소모하는 AP의 클럭을 조절하여 배터리 수명을 늘리려는 노력 등 효율성을 위하여 시도하는 경우가 적지 않다.
CPU의 클럭이 낮아지면 발열과 전력 소모가 줄어들기 때문에 배터리 수명이 중요한 모바일 기기뿐만 아니라 데스크탑 CPU에도 자동으로 클럭을 조절하는 기능이 달려 나온다. 전문용어로는 DFS(동적 주파수 전환: dynamic frequency switching)라고 한다. 전압까지 내려주면 DVFS(동적 전압 및 주파수 전환: dynamic voltage and frequency switching)이다.
의외로 언더클럭 관련 기술이 나온 것은 '''요즘이 아니다!''' x86 기준 무려 '''1978년(!)'''에 발표된 인텔 8086 CPU부터 동작을 일시 정지시키는 HLT 명령[1]이 내장되어 있었다[2]. 2000년에 출시된 코퍼마인 모바일 펜티엄 3부터 클럭 조정 기술인 SpeedStep이 내장되었다. 같은 해에 AMD는 PowerNow!를 내장한 모바일용 K6-2+를 출시했다. 데스크톱 쪽은 AMD가 2003년에 출시한 애슬론 64부터 Cool'n'Quiet를 탑재했고, 인텔은 2005년에 출시된 펜티엄 4 프레스캇-2M부터 Enhanced SpeedStep을 탑재했다. 이전의 데스크톱 펜티엄 4에도 ODCM이라는 것이 들어가 있었으나, 제대로 된 클럭 조정이 아닌 CPU를 부분적으로 일시 정지시키는 방식이었기 때문에 절전 효과는 크지 않았다.
인텔은 코어2에서 C1E[3], C3E(Deep Sleep)와 C4E(Deeper Sleep) 같은 추가적인 절전 기능을 도입하여, 성능이 필요한 다양한 조건에서도 최적의 절전을 꾀하고 있다.
인텔 하스웰에서 FIVR를 도입하여 더욱 효율적이고 강력한 절전을 추구했으나...
  • FIVR의 이점으로, 멀티코어에서 각 코어의 클럭과 전압을 완전히 독립적으로 조절할 수 있으며, 전압을 바꾸는 속도가 MHz 단위가 되어 기존보다 수십~수천 배 빨라졌다.(원래 클럭을 바꾸는 속도보다 전압을 바꾸는 속도가 훨씬 느리며 - ASUS X79 메인보드 기준으로 기본 350KHz, 최대 500KHz에 불과하다! - 이 때문에 클럭/전압을 낮출 때는 클럭을 먼저 내리고 전압을 낮춰야 되며, 올릴 때는 전압을 먼저 올리고나서 전압이 다 올라간 후에 클럭을 올려야 된다. 이 때문에 렉이 있으며, 타이밍이 꼬이면 전압부족으로 다운된다.[4]) 다만 FIVR 자체의 전자파 간섭과 발열을 감당하지 못했는지 바로 다음 세대에서 도로 빼버렸다(...)
대신 절전 기능의 반응속도 문제는 스카이레이크에서 다른 기술로 어떻게든 개선한 모양이다.
AMD 라이젠도 SenseMI에서 HW적으로 컨트롤하여 비슷한 수준으로 보인다. 대신 윈도우의 기본 전원 프로파일이 라이젠의 기능을 완전히 지원하지 못하는 관계로 절전 기능을 포기하고 고성능 프로파일로 쓰거나, 전용 프로파일을 설치해야 했다. 현재는 AMD Chipset Drivers에 내장되어 있어 자동으로 같이 설치된다. #(댓글 참고) 또한 레드스톤 3부터는 관련 문제가 다 패치되어서 그냥 균형 프로파일을 쓰는 게 맞다고 한다. # (AMD 기술 마케팅 부서 직원(AMD_Robert)이 댓글 부분 참고)
다만, 프로그램(특히 게임)의 멀티코어 활용률이 낮아서 CPU 점유율 %가 낮은 걸 아이들로 착각하고 절전 모드가 작동해서 성능 까먹는 문제는 여전하다.(라이젠 전용 프로파일은 해당 문제가 거의 없지만 CPU 최소 클럭을 90%로 올려놔서 전력 낭비가 있는 편이다.) 때문에, 게임 등 고성능 프로그램 실행 중에만 절전 기능을 해제하는 최적화가 여럿 나왔다. 윈도우 10 레드스톤 5에서는 윈도우 순정 기능(게임모드)에서도 해당 기능이 추가되었다. 성능과 절전을 모두 챙기는 최적화 - 게임할 때만 CPU 클럭을 올리자
ARM의 경우 저런 기술로도 부족하다고, 애초에 저성능 저전력으로 설계한 코어와 고성능 고전력으로 설계한 코어를 모두 사용하는 기술도 쓰고 있다. 자세한 건 ARM big.LITTLE 솔루션 참고.

2. 지나친 언더클럭의 부작용 (언더클럭과 안정성은 비례한다?)


정규 클럭에서 클럭이 다운되면 부품의 수명이 늘어나는 효과도 있다. 실제로 같은 세대 칩들이라도 서버등 전문적인 분야를 목적으로 나온 제품들은 동급의 PC/게이밍 제품군에 비해 클럭이 낮은 편이다. 애초에 인텔/AMD의 데스크톱 CPU/GPU 제품군은 고성능이 안정성보다 중요하기 때문에 정규 클럭을 더 높여서 출시하고 있으므로 이런 제품군에서는 언더클럭이 안정성을 향상시키는 효과가 있다.
하지만 언더클럭을 많이 한다고 비례해서 안정성이 계속 올라가지는 않으며, 오히려 지나친 언더클럭은 안정성을 떨어뜨린다. 애초에 안정성을 염두에 두고 설계한 서버용 Xeon등 고신뢰성 제품군들은 단순히 클럭만 낮춘 게 전부가 아니라, PC/게이밍 제품군을 언더클럭 해봤자 고신뢰성 제품군을 사용하는 것에 비할 바가 아니므로 안정성 향상 목적의 공격적인 언더클럭은 거의 무의미하다.
지나친 언더클럭은 오히려 장치에 전기적인 충격을 가해 부품을 망가뜨리며, 너무 낮은 클럭에서는 CPU가 작동하지 않는다. 예를 들어 3GHz가 정규 클럭인 인텔 i시리즈 CPU를 100MHz미만의 저클럭으로 세팅해 돌리는 것은 불가능하다.[5] 칩이 작동하지도 않을 뿐더러, 심할 경우 누전으로 인해 CPU가 손상된다.

3. 언더볼팅


일명 전압 다이어트. 클럭과 전압을 동시에 낮춰서 최대한 저소음 및 배터리 시간을 극한으로 늘리는 방법을 추구하는 것이 언더클럭이라면, 언더볼팅은 클럭은 유지시키되 최대한 전압을 낮춰 성능효율성을 늘리는 방향이다. 노트북의 경우는 노트북 쿨러의 한계로 인해 발열량 조절이 잘 되지 않는 경우가 있어서 발열량 감소 목적의 언더볼팅이 유명하다. 물론 언더볼팅은 오버클럭의 반대의 개념이지만 한정된 전압에서 최대의 클럭을 뽑아내는 것은 동일하므로 오버클럭만큼 부품에 부하를 줄 가능성이 적지 않으므로 이 점은 꼭 참고하도록 하자.
언더볼팅 역시 기기의 전력 소모를 낮추는 효과가 있다. 하지만 전압을 낮추는 언더볼팅은 디지털 신호의 0과 1을 구분하는 문턱값(Threshold voltage)에 더 가까이 접근하기 때문에 전기적 노이즈에 취약해진다. 일반적으로 5V TTL 소자는 문턱값이 2.5V ~ 2.7V이기 때문에 3V 이하에서는 정상 작동을 보장하지 않는다. 따라서 본인이 사용하는 CPU와 GPU가 허용하는 최소 전압을 확인하고 그 전압 위에서 조절해야 할 것이다. 인터넷상에는 -0.1V까지는 문제가 없다는 주장도 있으나 바로 아래인 -0.11V에서 CPU가 견디질 못하여 시스템 강제 재부팅이 일어났다고 확인된 경우도 있으므로 언더볼팅은 오버클럭만큼 조심스러워야 할 것이다. 현재 6세대 이상 노트북에 들어가는 고성능 CPU(H, HQ, HK)들은 대부분 -0.1V 이상 들어간다.[6][7]
일례로 라데온 390 시리즈 의 경우는 오버클럭을 전제로 하여 기본 전압셋팅이 높게 잡혀 있어 일부러 언더볼팅를 통해 전력절감을 60W 정도 할수 있다.[8]
현재 그래픽카드에서 가장 안전한 언더볼팅은 파워리미트(전력 소모 제한)를 내리는 것이다. 제품 자체에 순정으로 내장된 조절 메커니즘을 이용한 것이므로 문제가 생길 가능성이 극히 낮다.(대부분 순정 기준 올릴 때는 +6~+20% 정도로 제한하지만 내릴 때는 -50% 정도의 충분한 조절을 지원한다 일단 파워리미트를 낮추는 것만으로 문제가 생길 가능성은 '없다'고 봐도 된다.[9]) 이 상태에서 클럭을 올리는 식으로 잘 조절하면 (제품에 따라 다르지만) 전력/발열을 낮추면서도 성능을 올리는 것도 가능하다.# (9번째~11번째 댓글 참고)
CPU의 경우 윈도우 전원 프로파일의 고급 설정에서 최대 프로세서 상태 %값을 내리는 것으로 조절 가능하다. 물론 실제 절전효과를 제대로 보려면 CPU 하드웨어 자체가 아이들시 클럭과 전압을 내리는 DVFS 기능을 지원해야 된다.(인텔 (인핸스드) 스피드 스텝, AMD 파워나우나 Cool'n'Quiet 등). 다만 그래픽카드와 달리 언더클럭만 가능하고 언더볼팅+오버클럭은 불가능한 방법이라는 점에 유의할 것.[10] 단, RS 5부터는 게임 모드인 프로그램을 선택한 상태에서는 해당 설정을 무시하고 풀클럭이 들어간다. 개선된 게임 모드 특성인 듯.
인텔 8세대 노트북용 시피유와 라데온 RX500 계열과 베가 시리즈는 워낙 전력소모가 심하기에 언더볼팅이 준필수로 취급받는다, 언더볼팅시 성능이 5~10퍼정도 증가하는건 당연하고, 발열도 7~8도가량 줄어든다. 인텔 9세대에서 발열이 더욱 높아짐에 따라, 바이오스에 언더볼팅 기능을 탑재한 게이밍 노트북이 나오기도 했다. 게이밍 노트북일 경우는 아무래도 데스크탑보다 쿨링성능이 떨어지다보니 시피유 뿐만 아니라 노트북용 엔비디아 그래픽카드까지 언더볼팅을 해주기도 한다. 다만 엔비디아는 라데온과 달리 언더볼팅을 하기도 어려울 뿐더러 하는 사람도 적어 남이 공유해주는값을 찾기도 힘들고, 해도 발열은 감소시킬수 있지만 성능이 딱히 증가하진 않는다.
라이젠 CPU의 경우 2세대 + X470보드부터 지원하는 PBO를 사용할 경우에 한해서 약간의 언더볼팅을 권장하는 경향이 있다. 이는 PBO가 기존 기술보단 개선되었지만 자동 오버클럭이라는 특성상 전압을 과하게 잡는 경향이 있기 때문이다.
인텔 CPU용 언더볼팅 유틸로는 ThrottleStop과 Intel XTU(Intel Extreme Tuning Utility)가 있다. 둘 다 윈도우 전용이기때문에 OS X리눅스를 사용한다면 다른 프로그램을 이용해야 한다. 일반적으로는 ThrottleStop 사용을 추천하는데, XTU는 모바일 CPU 언더볼팅을 막아버렸고 구버전을 사용하더라도 버그가 많아 언더볼팅 값이 초기화되는 경우가 많아서 그렇다.
라이젠 모바일 CPU를 언더볼팅하려면 ZenStates-Linux라는 유틸을 사용해야 한다. 이름에서 알 수 있듯이 리눅스 전용이고 어째서인지 윈도우용 언더볼팅 유틸은 존재하지 않는다.
제조사 유틸에서 자동 언더볼팅을 제공하거나#[11]# 최근 게이밍 노트북들은 이미 언더볼팅이 되어있는 상태로 나오는 제품들도 많다. 에이서의 헬리오스 300나 Razer Blade가 대표적인 예시.
최근 SGX에 관한 MS의 업데이트로 인하여 막혔다... 자세한 것은 https://plundervolt.com/

4. 터보 버튼


[image]
80386, 80486, 일부 초기 펜티엄 시절까지 본체에 달려있던 '''터보 버튼은 사실 언더클럭(을 해제하는) 버튼이다.''' 터보를 켜놓은 게 원래 그 CPU의 속도이며 터보를 끄면 오히려 원래 속도보다 느리게 동작한다는 것. 이 때문에 80386~초기 펜티엄 컴퓨터들은 터보가 켜져 있는 것이 기본값이었다. 그럼 왜 이런 버튼이 달려있었던 것인가 하면.

예시 영상은 PC는 아니고 게임보이 컬러. 더 이상의 자세한 설명은 생략한다.
원래 IBM PC XT는 4.77MHz 클럭을 사용했었고, 이시절만 해도 한 PC가 여러 속도를 가지는 것이 드물어서 상당수 게임들이 이 속도에 맞춰서 제작되었다. 그런데 오리지널 IBM이 아닌 호환기종들은 더 높은 클럭의 CPU를 장착(주로 10MHz)하여 차별화를 했는데 문제는 이 높은 속도에 게임들도 속도가 빨라져 정상적인 플레이가 불가능했던 것. 그래서 PC제조사들은 두 가지 속도를 선택할 수 있는 버튼을 만들었고 여기에 오리지널 IBM PC보다 더 빠르다는 마케팅적 요소까지 더해서 이 버튼을 TURBO 버튼이라고 했다.[12] 사실, 원래 진행이 느린 게임을 터보 기능을 통해 스킵 할 수도 있었을 것을 생각하면 터보 라는 표현이 딱히 틀리지만은 않다고 볼 수 있다. 실제로 게임용 에뮬레이터들이 이런 식으로 프레임 스킵이 가능하기 때문이다.
이 버튼은 IBM PC AT (80286)까지도 의미가 있었다. AT 또한 오리지널과 호환기의 속도가 달랐으니. 그러나 386 이상부터는 IBM이 컴팩 등 호환기에 주도권을 내 줬고 PC가 여러 속도를 가지는 것이 일반화되어 소프트웨어 또한 이를 감안하고 만들기 때문에 저런 버튼이 전혀 필요 없었으나 소수의 XT시절 구형 소프트웨어에 대한 호환 및 케이스 제조사들의 귀차니즘 등 여러 가지 이유로 386, 486 시절까지 지속되었었다.

5. 기타


극소수지만 극한으로 언더클럭한 뒤 고사양에서나 돌릴 법한 프로그램을 돌리는 이들도 있다. 독일의 한 용자Windows XP를 7'''MHz'''(...)에서 구동하는 실험을 했다.[13] # 하지만 언더클럭 역시 설정에 따라 오버클럭과 마찬가지로 하드웨어에 부담을 줄 수도 있으므로 주의를 요구한다.


[1] 외부 하드웨어 인터럽트(ex. 키보드, 타이머 등)가 발생할 때까지 CPU를 정지시킨다. 인터럽트 플래그를 클리어시키고 이 명령을 쓰는 순간 망했어요... NMI라고 해서 이런 경우에도 무조건 걸리는 인터럽트가 정의되어 있긴 하지만, 일반 목적으로 사용되지는 않는다. 자세한 내용은 Wikipedia의 Non-maskable interrupt 항목 참고.[2] 8086이 x86이라는 브랜드의 시초인 제품이기 떄문에, 이 명령은 모든 x86 프로세서가 지원하는 셈이 된다.[3] #, #[4] 불량품이 아닌 이상 순정 세팅에서 이런 경우는 없으나, 오버클럭으로 클럭 및 전압 설정이 달라지거나 하면 문제가 생길 수 있다.[5] 인텔 스피드스텝 기능이 최대로 작동하여 절전 모드 직전의 유휴 상태인 인텔 CPU의 클럭 속도는 800MHz정도이다.[6] i7-8750H 기준으로 -0.175V까지 실사가능하며, 그 이상 떨어지기도 하지만 실사가 힘들다고 한다. U 시리즈는 이미 전력을 최대한 적게 먹도록 설계되어있고 수율도 좋지 않은 탓에 대부분은 -0.1V까지가 한계다.[7] 이는 제품 자체에 기본으로 내장된 절전 기능 때문일 가능성이 높다. 이미 대부분의 CPU/GPU는 아무것도 안 하는 아이들시 클럭과 전압을 절반 이하(하이엔드급 이상 GPU에서는 클럭은 최대 클럭의 1/10이하로 확 낮추는 경우도 많다)로 낮추어 놓는데, 거기서 다시 -0.11V해버리면 문턱값 아래로 내려가 버리는 것. 애초에 순정 절전 기능 최저값 기준으로 클럭은 1/3~1/15 정도까지 많이 낮추는 경우도 많지만, 전압은 2/3나 절반 약간 넘는 정도로만 낮추는 식으로 보수적인데, 문턱값 문제 때문이다. 그렇다고 절전기능을 꺼버리면 애초의 목적 - 전력 소모 낮추기 - 에 모순되는 행동이고...[8] 이는 400시리즈와 베가 시리즈에서도 이어졌다. 베가 시리즈에서는 거의 필수 수준.[9] 애초에 GTX1080Ti 특정 제품 기준으로 풀로드 게임시에 1V 이상 올라가는 반면 아이들시에는 0.65V로 작동하는데 전압부족으로 문제가 생기지 않는다. 설계단계에서부터 의도한 동작이기 때문[10] 특이하게 100%를 제외한 최대 프로세서 상태 설정은 오버클럭 상태에서도 무조건 순정클럭으로 동작한다. 일례로 인텔 K버전 CPU를 37배수(3.7GHz) → 47배수(4.7GHz)로 오버한 상황에서 최대 프로세서 상태를 99%로 설정하면 정확히 3.7GHz를 최대 클럭으로 동작한다. 또한 %수치에 정확히 비례하기보다는 근사값으로 들어가는 경향이 있다(CPU 배수 자체가 소수점이 없거나 있어도 0.5배 정도로 조절에 제한이 있기 때문). 앞의 예시에서 90%는 3.3GHz, 50%는 1.7GHz가 된다.(정확한 정비례는 각각 3.33GHz, 1.85GHz이다.)[11] 단, 해당 제품의 경우 자동 언더볼팅은 거의 작동하지 않는 수준의 결과를 보인다, 자동 오버클럭을 응용해서 언더볼팅을 하기도 한다.[12] 그래서 저 시절 PC조립 할 때에는 지금보다 케이스 전면 버튼 및 LED 커넥터 연결이 지금보다 더 빡쎘다. 지금은 전원, 리셋 버튼과 전원, HDD LED만 연결하면 되었는데 저 때에는 터보 버튼, 터보 LED에 심지어 속도 표시 7-seg LED까지 맞춰줘야 했다. (게다가 커넥터 위치도 표준화되어있지 않았고 보드에 표기도 안되어 있어 사용설명서가 없으면 연결도 힘들었다. 인터넷도 거의 없던 시절이라서 설명서를 온라인으로 구할수도 없었고. 그시절에 비해 지금은 PC조립 엄청나게 쉬워진거다.)[13] PCI 그래픽카드가 제대로 부팅이 안돼서 ISA그래픽카드를 사용했기 때문에 256색으로 변경되었다.