모바일 시대가 도래되면서 모든 device 들이 모바일화 되어가고 있습니다. 이에 따라서, 기존에도 중요하던 전력관리가 더 중요해지고 있습니다. 서버와 안정성을 유지하기 위하여 항상 동일한 성능을 내어야 하고, 배터리가 필요없습니다. 서버 디바이스에서는 이러한 배터리 문제가 문제가 되지 않지만, 배터리를 사용하는 스마트폰, 노트북, 아이패드 등과 같은 디바이드들에는 전력관리는 매우 중요한 요소입니다. 저전력을 위하여 ARM 계열이 인기를 끌게된 배경도 위와 같습니다. 모든 CPU를 사용하는 디바이스들은 성능이 필요하지 않을 때는 CPU를 조절하여 전력 소모를 최소한으로 하고, 성능이 필요할 때에는 CPU 성능을 급격하게 올려 사용자의 편의성을 올려주어야 합니다.
그렇다면 Intel CPU를 사용하는 디바이스
들은 전력 관리를 어떻게 할까요?? CPU의 전원 상태는 C-state(CPU 사용량이 적은 idle 상태)
, P-state(CPU를 사용하는 active 상태)
의 2가지 상태로 나누어져 있는데, 그 중 C-state 에서는 C1E, P-state에서는 SpeedStep, Speed Shift가 CPU의 클럭을 관리합니다. 나무위키와 티스토리 블로그에 내용이 매우 잘 정리되어 있어 약간의 내용을 추가하면서 내용을 정리하였습니다.
1. P-State(active) 상태의 전원 관리
1.1. 스피트스텝(SpeedStep)
인텔의 CPU에서는 C-states(아이들)
와 P-state(활성시)
가 있는데 스피드 스텝 기술은 P-State를 제어하는 기술
이다. 1999년에 발표된 최초의 스피드 스텝은 AC 어댑터 사용 여부에 따라 고클럭/고전압, 저클럭/저전압을 전환하는 간단한 구조였지만 2001년 펜티엄 3 프로세서에선 EIST(Enhanced Intel SpeedStep Technology)라는 스피드스텝의 개선된 버전이 들어갔다. EIST는 최고와 최저 2종류 외에도 클럭과 전압을 여러 단계로 전환할 수 있게 하였고, AC 어댑터의 유무 외에도 CPU에 걸리는 부하에 따라 상태를 조절할 수 있게 되었다.
노트북이나 넷북, 태블릿 혹은 스마트폰의 딜레마중 하나가 CPU성능에 의한 발열과 전력소모 문제이다. 고성능 CPU 일수록 발열과 전력소모가 심해지는 것은 일반적인 현상이며 이러한 문제를 방지하고자 데스크톱 PC에 비해 낮은 발열과 전력소모를 가지는 모바일 PC용 CPU를 따로 출시중이다. 그러함에도 불구하고 휴대성을 중시하는 기기들에게는 여전히 전력소모 문제가 매우 중요하다. 소비자들은 오랜 시간 사용할 수 있는 디바이스를 사용하기 원한다.
인텔 역시 이러한 문제를 알고 있기에 CPU에 걸린 부하에 따라서 자동으로 클럭을 조절해주는 기술을 개발했으며 그기술의 이름이 스피드 스탭
이다.
작동원리에 대해서 간단한 예를 들자면 오피스 소프트웨어를 이용하여 문서작업등 비교적 부하가 낮게 걸리는 작업에서는 CPU의 속도를 고의로 낮추어 작동하고, HD급 동영상 재생등 부하가 심하게 걸리는 작업에서는 CPU의 속도를 낮추지않는 방식으로 작동한다. 배터리 소모량을 유연하게 조절하여 사용시간을 늘려주는 장점이 있지만 클럭 조정시에 일시적으로 버벅임이 발생하는 문제도 있다. 퀄컴, 애플, 삼성전자, 미디어텍등 에서 제조하는 모바일 기기용 SOC에도 스피드 스텝과 유사한 기능이 들어가 있다.
Dell 의 Bios 에는 하기와 같이 기능이 언급되어 있습니다. 동적으로 프로세서 전압과 core의 frequency를 바꾸어서 성능을 조절합니다.
When on, this feature allows the system to dynamically adjust processor voltage and core frequency, decreasing average power consumption and heat production
SpeedStep의 주요 통제권은 OS가 가지고 있습니다.
1.2. 스피드 쉬프트(Speed Shift)
스카이레이크 마이크로 아키텍쳐를 가진 CPU 이후 부터는 스피드 스텝을 하드웨어 단에 적용한 스피드 시프트 기술
이 적용되었다. 베이스 클럭에서부터 터보 부스트 영역까지 확장된 이 기술은 마이크로프로세서 안의 PCU(Power Control Unit)이라는 하드웨어가 밀리초 단위로 정해진 알고리즘에 따라 계산하면서 최적의 CPU 클럭과 전압으로 관리한다. 하지만 이 기술을 이용하려면 OS에서 지원을 해야되는데 윈도우 10에서 최초로 이 기술을 지원할 예정이다. 스피드 시프트를 지원하지 않는 OS에서는 이전과 마찬가지로 스피드 스텝으로 작동한다.
Speed Shift는 Speedstep과 달리 OS가 CPU 제어권을 대부분 PCU1에 넘겨 CPU의 클럭을 유동적으로 조절한다. Speedstep과 비교하여 하드웨어적인 방식을 사용하기 때문에, CPU 클럭 제어 속도가 빨라졌고, 더욱 정밀한 클럭 계산이 가능해져 더 적은 에너지를 사용하게 되었다. 인텔의 발표(Speedstep이 20~30ms에 걸쳐 최대 클럭을 올릴 때, SpeedShift는 5~7ms만에 최대 클럭까지 도달)에 따르면 이전보다 최대 50% 더 빠른 변속을 보여준다고 하며, 윈도우 10 이상에서만 지원한다.
추가적으로 Speedstep과 Speed Shift는 동시에 적용되지 않는다.
2. C-State(idle) 상태의 전원 관리
2.1. C1E
C1E는 CPU 사용량이 거의 없는 idle 상태에서 전력을 더 줄이기 위하여 사용되는 기술
로 Enhanced Halt State 라고도 불려집니다. 단계에 따라 CPU의 C state를 변경하면서 소모 전력을 낮춥니다. 아래와 같은 표를 가지고 있으며, 아래와 같이 Cn의 n 값이 높아질수록 저전력으로 들어갑니다.
Mode | Name | What it does | CPUs |
---|---|---|---|
C0 | Operating State | CPU fully turned on | All CPUs |
C1 | Halt | Stops CPU main internal clocks via software; bus interface unit and APIC are kept running at full speed | 486DX4 and above |
C1E | Enhanced Halt | Stops CPU main internal clocks via software and reduces CPU voltage; bus interface unit and APIC are kept running at full speed | All socket 775 CPUs |
C1E | — | Stops all CPU internal clocks | Turion 64, 65-nm Athlon X2 and Phenom CPUs |
C2 | Stop Grant | Stops CPU main internal clocks via hardware; bus interface unit and APIC are kept running at full speed | 486DX4 and above |
C2 | Stop Clock | Stops CPU internal and external clocks via hardware | Only 486DX4, Pentium, Pentium MMX, K5, K6, K6-2, K6-III |
C2E | Extended Stop Grant | Stops CPU main internal clocks via hardware and reduces CPU voltage; bus interface unit and APIC are kept running at full speed | Core 2 Duo and above (Intel only) |
C3 | Sleep | Stops all CPU internal clocks | Pentium II, Athlon and above, but not on Core 2 Duo E4000 and E6000 |
C3 | Deep Sleep | Stops all CPU internal and external clocks | Pentium II and above, but not on Core 2 Duo E4000 and E6000; Turion 64 |
C3 | AltVID | Stops all CPU internal clocks and reduces CPU voltage | AMD Turion 64 |
C4 | Deeper Sleep | Reduces CPU voltage | Pentium M and above, but not on Core 2 Duo E4000 and E6000 series; AMD Turion 64 |
C4E/C5 | Enhanced Deeper Sleep | Reduces CPU voltage even more and turns off the memory cache | Core Solo, Core Duo and 45-nm mobile Core 2 Duo only |
C6 | Deep Power Down | Reduces the CPU internal voltage to any value, including 0 Volts | 45-nm mobile Core 2 Duo only |
출처
-
PCU는 마이크로프로세서란, 별도의 칩셋으로, 밀리초 단위를 알고리즘으로 계산하여 최적의 CPU의 클럭과 전압을 조절한다. ↩