더 스마트해진 Windows 전원 관리

이번 글에서는 OS 개발의 전반적 측면에서 전력 소모량을 줄이는 방안을 중점적으로 다루겠습니다. OS의 전원 관리는 두 가지 관점에서 어느 때보다도 그 중요성이 부각되고 있습니다. 먼저, Windows 8이 출시되는 시기에는 모든 PC의 2/3가 대부분 배터리로 구동되는 휴대용 장치가 될 것으로 전망합니다. 다음으로, 에너지 절약이 중요한 화두로 떠오르면서 업무 현장에서도 탄소 배출량을 줄일 수 있는 데스크톱 시스템의 수요가 늘어나고 있습니다. 어떤 경우든 단순히 대기 모드나 최대 절전 모드, 재시작 성능을 뛰어넘는 절전 기능이 요구됨에 따라 이번 글에서는 OS의 전체 전력 소모량을 줄이는 동시에 OS에서 최신 하드웨어의 절전 기능을 지원하는 방안을 다루고 있습니다. 이 글은 커널 팀 프로그램 관리자인 Pat Stemen이 작성했습니다.
- Steven

배터리 수명과 전력 소모량은 컴퓨팅 업계에서 지속적으로 가장 중요한 주제로 논의되고 있습니다. 여기에서는 Windows 8 전원 관리의 특징을 살펴보고 일일 단위로 전력 소모량을 측정하는 방법을 알아보겠습니다. 모든 칩 아키텍처와 PC 하드웨어 형태에서 전원 관리는 OS의 핵심 기능으로 간주됩니다.

개발 목표

우리는 Windows 8의 전원 관리를 개발하면서 다음과 같이 3가지 목표를 세웠습니다.

  • 하드웨어의 절전 기능 지원. SoC 기반의 Windows 태블릿 PC나 SLI를 장착한 게임 PC 등 어떤 시스템에서도 하드웨어 플랫폼의 전력 효율성이 극대화되도록 Windows 8을 설계했습니다. 모든 플랫폼에서 일관된 표준 방식으로 전원 관리 인터페이스를 설계했기 때문에 하드웨어 파트너와 응용 프로그램 개발자는 각기 다른 플랫폼 하드웨어와 전원 관리 방식으로 인해 불편을 겪는 일 없이 독창적인 혁신 기능과 경험을 누릴 수 있습니다.
  • 배터리 수명을 지속적으로 대폭 개선. Windows 7은 전력 소모량을 대폭 줄이고 에너지 효율을 높였으며 특히 모바일 PC의 배터리 수명이 크게 향상되었습니다. e7 블로그에서 이러한 개선을 위해 실제로 어떤 노력을 기울였는지 확인할 수 있습니다. Windows 8의 효율성 측면에서는 기존 PC와 동일한 수준을 유지하고, 그 외의 다른 부분은 Windows를 새롭게 상상하여 개선하고자 합니다.
  • 스마트폰의 전원 모델 사용. CES//BUILD/ 컨퍼런스에서도 언급했듯이 SoC(System-on-Chip) 플랫폼의 가장 훌륭한 기능은 초절전 유휴 상태로 빠르게 전환하는 것입니다. 항시 연결 상태를 유지하고 있다가 작동 상태로 즉시 전환하는 스마트폰의 전원 모델을 고성능 Windows 8 PC에서 실현하기 위해 초절전 유휴 기능을 활용하려고 합니다.

전원 관리의 중요성

전원 관리에 있어 가장 중요한 것은 바로 모바일 장치의 배터리 수명일 것입니다. 모바일 컴퓨팅 장치는 배터리로 사용하는 시간이 훨씬 많기 때문에 모든 부분이 배터리 작동 시간을 연장하는 방향에 맞춰져 있습니다. 지속적으로 배터리가 오래 가도록 제공하려면 기본 하드웨어, OS, 응용 프로그램 소프트웨어 간에 많은 부분을 정밀하게 조정해야 합니다. 또한 배터리 용량과 시간 흐름에 따른 품질 변화도 작동 시간에 큰 영향을 미칩니다.

모바일 배터리 수명을 늘리는 것뿐만 아니라, 훌륭한 PC 전원 관리를 통해 에너지 비용을 절감하고 환경에 미치는 영향을 줄이는 또 다른 실질적 효과도 얻을 수 있습니다. 엔터프라이즈 데스크톱 PC와 데이터센터 서버의 전원을 효과적으로 관리하면 이러한 시스템에 전력을 공급하고 냉각하는 데 필요한 비용이 줄어들고, 이러한 제품에 쓰이는 에너지를 생산하는 과정에서 발생하는 온실 가스가 감소하는 이점을 누릴 수 있습니다. 이러한 효과를 과소평가하기는 어렵습니다. Windows에서 아주 사소한 변화일지라도 올바르게 개선된다면 그 규모를 고려했을 때 환경적인 측면에서 크나큰 긍정적 효과를 가져올 수 있기 때문입니다. 전 세계의 많은 시장에서 전기 소비량이 증가함에 따라 근무 환경의 모든 부분에서 전력 소모를 줄여야 하는 실정에 처해 있습니다. PC는 잠재적으로 막대한 절전 효과를 얻을 수 있는 분야입니다.

전원 관리는 시스템 성능과 반응 속도 사이에 적절한 균형을 유지해야 하는 작업이기도 합니다. 예를 들어, 간단히 프로세서 성능을 줄이기만 하면 전기를 절약할 수 있지만 그렇게 되면 주어진 작업을 처리하는 시간이 길어집니다. 전력과 성능 사이에서 적절한 균형을 유지하는 일은 Windows 사용자 경험 전반에서 핵심적으로 요구되는 사항입니다.

최신 프로세서와 하드웨어 플랫폼을 평가하는 수많은 전문 기술 블로그를 보더라도 GHz와 벤치마킹 성능뿐 아니라 작업 실행에 소모되는 전력도 중요한 요소로 고려되고 있습니다. 이러한 평가에서는 전력과 성능을 접목하여 에너지 효율성을 측정하는데, 일정 작업을 처리하는 데 필요한 전력을 나타내는 것으로, '와트당 성능'도 같은 개념입니다.

그러나 가장 흥미로운 부분은 PC 플랫폼 설계의 모든 측면에 있어 전원 관리는 가장 기본적인 요소라는 점입니다. 전원 관리는 두께, 무게, 소음(팬 및 팬의 속도), 표면 온도, 비용, 화면 크기, 해상도, RAM 용량 등에 직접적 영향을 미칩니다. 얇고 가벼우며 항상 연결 상태를 유지하면서도 하루 종일 배터리를 사용할 수 있는 하드웨어라면 더 없이 좋을 것입니다. Windows 에코시스템에서 이러한 개선이 현실화되는 데 일조하고자 노력하고 있습니다.

일종의 리소스로 간주되는 전원

Windows 개발 팀은 전원을 CPU 사용률이나 하드 디스크 작동, 메모리 사용량 등과 같이 중요한 시스템 리소스의 하나로 여깁니다. 전원은 핵심 리소스이기 때문에 Windows 8을 개발하는 과정에서 일상적으로 Windows가 이 리소스를 얼마나 소모하는지 추적하고 있습니다. 이를 통해 전력 소모량의 변화가 있으면 신속하게 포착하고 개발 팀과 면밀히 협력하여 문제의 근본 원인을 파악한 후 다시 개발하고 필요한 부분을 변경하여 테스트할 수 있습니다. 전력 소모량이 감소함에 따라 향후 개발 과정에 적용하게 될 평가 기준이 새롭게 마련됩니다.

해당 Windows PC에서 소모된 밀리와트(mW) 등의 원시 전력 소모량은 CPU 및 칩셋, RAM 종류와 용량, 저장 드라이브의 속도, 유형 및 용량, 화면 크기 등 다양한 플랫폼 요인들이 결합되어 나온 결과입니다.

일관된 기준을 수립하기 위해 Windows 8 개발의 전 과정에서는 일련의 참조 플랫폼을 결정하고 이 플랫폼의 전력을 측정하고 있습니다. 저희가 사용하는 참조 플랫폼은 고객들이 일반적으로 사용하는 시스템 유형을 대표하며, 주요 실리콘 칩 파트너의 플랫폼들이 포함됩니다. Windows 7과 Windows 7 SP1의 전력 소모량을 기준으로 삼아 개발 과정에서 Windows 8 빌드에서 측정한 전력 소모량을 비교하고 있습니다.

그래프를 보면 Windows 8의 여러 빌드(8074부터 8144까지)에 대한 유휴 상태 전력이 9000 ~ 10,000mW 범위이지만 빌드 8114에서는 10,500mW를 훨씬 웃돌고 있습니다.
참조 플랫폼 중 하나에 대해 측정한 총 시스템 유휴 상태의 전력입니다.
1.25W 이하의 전력 증가가 유발되었으며 다음 빌드에서 이 부분을 해결했습니다.
각 실험과 빌드 사이에 약간의 편차가 있다는 점을 감안하시기 바랍니다.

연구실에서는 각 참조 시스템에서 많은 소프트웨어 작업 부하에 따른 전력 소모량을 측정합니다. 개발 팀이 측정하는 작업 부하는 일상적으로 시스템에서 수행하는 주요 시나리오를 대변하도록 고안되었다는 점에서 타사 배터리 벤치마킹과 유사합니다. 핵심 작업 부하에는 유휴 상태, 웹 브라우징, 비디오 재생, 오디오 재생, 대기 모드가 포함됩니다.

시스템을 부팅하고 나서 시작 페이지에서 아무 작업도 하지 않는 사람은 거의 없기 때문에 유휴 상태의 작업 부하를 측정하는 것은 의미가 없다고 여길 수도 있습니다. 하지만 유휴 상태의 작업 부하는 시스템 전력 소모량의 바닥, 즉 작동 상태에서 시스템이 수행하는 최소한의 작업량으로 취급됩니다. 유휴 상태에서 전력 소모량을 줄이면 비디오와 오디오 재생을 포함한 기타 대부분의 작업 부하에 소모되는 기본 전력 소모량도 줄어듭니다. 뿐만 아니라, 내용을 입력할 때 키 입력 사이의 짧은 시간부터 프레젠테이션할 때 슬라이드를 바꾸는 사이에 흐르는 몇 분의 시간까지 많은 작업 부하에는 상당한 유휴 시간이 포함되어 있습니다.

모바일 Windows PC의 전력 소모를 측정하는 일반적인 방법은 배터리를 100% 충전한 후 작업 부하를 반복적으로 적용하여 배터리가 하나도 남지 않을 때까지 완전히 소모하는 배터리 소진 테스트입니다. 이 방법은 효과적이기는 하지만 여러 번 충전과 방전을 거듭하면서 배터리 용량이 자연적으로 줄어들기 때문에 오류가 발생하기 쉽습니다. 소진 테스트를 할 때마다 충전과 방전 주기가 추가되고 테스트를 매일 수행하기 때문에 배터리 용량 감소로 인해 시간에 따라 측정 결과의 오차도 발생할 수 있습니다.

성능 연구실에는 전력 측정 설비가 갖춰져 있으므로 참조 플랫폼에 직류 DC 전력을 공급하여 소모량을 측정할 수 있습니다. 브라우저 전력 소모량에 관한 IE 블로그 게시물에서 연구실과 전반적 설비에 대해 언급했지만 매일매일 전력 소모량을 측정하기 위해 실제 참조 랩톱을 여러 대 보유하고 있다는 말은 하지 않았습니다. 테스트 소프트웨어를 이용하여 전원 공급기와 계측 기능이 자동으로 수행되기 때문에 Windows 8의 새 빌드가 나올 때마다 Windows를 연속적으로 설치하고 전체 시나리오에 걸쳐 전력을 측정한 후 결과를 분석할 수 있습니다.

랙에 가득 찬 DC 전력 사용량 모니터링 시스템
측정 기능이 내장된 DC 전원 공급기

Windows 8을 실행하는 랩톱을 전력 소모량을 측정하는 기기에 연결
참조 플랫폼을 DC 전원 공급기와 측정 시스템에 연결한 모습

소프트웨어가 전력 소모량에 미치는 영향

소프트웨어는 CPU, 디스크, 메모리 등의 리소스를 소모하는데 이 리소스는 각각 해당하는 용량의 전력을 사용하므로 전력 소모량에 영향을 미칠 수 있습니다. 이와 함께 소프트웨어는 하드웨어의 전원 상태를 관리하는 OS와 드라이버 소프트웨어를 통해서도 전력 소모량에 영향을 미칩니다.

Windows 8에서는 소프트웨어가 전력 소모량에 영향을 미치는 방식과 관련하여 3가지 측면에서 혁신적 개선을 이루었는데, 바로 메트로 스타일 앱 모델, 절전 예방 조치 및 새로운 런타임 장치 전원 관리 프레임워크입니다. 이번 글에서 이러한 혁신 기능이 전력 소모량 개선에 어떤 효과가 있는지 간략하게 설명하겠습니다.

메트로 스타일 앱 모델

대부분의 사람들은 전력 소모량에 미치는 소프트웨어의 영향을 직접적으로 경험하고 있습니다. 배터리가 빨리 닳는 스마트폰 앱을 사용해 보았거나, 랩톱을 사용하여 게임을 즐기거나 스프레드시트를 계산할 때 팬이 돌아가는 소리를 들어본 적이 있을 것입니다. 이런 예가 모두 CPU, GPU, 네트워크 시간, 디스크나 메모리를 직접적으로 소비하는 경우입니다.

Windows 8에서 새롭게 혁신된 전원 관리 기능 중 메트로 스타일 앱 모델은 사실 전원 관리 인프라 기능은 아닙니다. 메트로 스타일 앱 모델은 처음부터 전력 사용을 줄일 수 있도록 디자인되었습니다. 이 모델의 전원 관리가 제공하는 이점은, 개발자가 해당 앱이 꼭 필요할 때만 실행되도록 할 수 있다는 것입니다. 즉, 현재 사용하지 않으면서 백그라운드에 있는 앱은 리소스와 전력을 소모하지 않도록 작동이 일시 중지됩니다.

물론, 앱이 항상 연결된 상태를 유지하고 빠르게 응답하기 위해서는 백그라운드 활동이 중요한 요소라는 사실을 잘 알고 있습니다. 메트로 스타일 앱 모델과 기초가 되는 WinRT는 백그라운드 작업 이라는 새로운 기능 집합을 통해 백그라운드 활동을 지원합니다. 자세한 내용은 백그라운드 작업 소개를 참조하십시오. 백그라운드 작업을 통해 백그라운드 활동을 간편하게 절전 방식으로 수행할 수 있습니다. 또한 개발자는 백그라운드 작업을 통해 앱을 계속해서 '최신 상태'로 빠르게 제공할 수 있습니다. 그러나 메트로 스타일 앱에는 신속하고 유동적인 인터페이스와 기타 주요 속성이 필요하기 때문에 그 방식은 기존의 Win32 모델과는 다릅니다. 훌륭한 메트로 스타일 앱의 8가지 특징을 참조하십시오.

앱의 응답 속도를 한 차원 높이 끌어올리는 동시에 전력과 메모리 사용량 등의 전체 시스템 특성도 함께 고려하여 백그라운드 작업과 전반적인 메트로 스타일 앱 모델을 개발했습니다.

프로세스 탭(자세히 보기)에 일시 중지 상태에 있는 몇 개의 메트로 스타일 앱이 있으며 모두 CPU 사용률이 0%이고 17 ~ 85.1MB 범위의 메모리를 사용하고 있습니다.
일시 중지된 메트로 스타일 앱을 보여 주는 작업 관리자

절전 예방 조치

소프트웨어는 간헐적인 유휴 상태 활동을 통해 많은 리소스를 소비하지는 않지만 전력 소모량에 큰 영향을 미칠 수 있습니다. 유휴 상태 활동의 개선을 절전 예방 조치라고 부릅니다.

대부분의 PC 플랫폼에는 프로세서와 칩셋의 유휴 상태를 관리하는 기능이 있어 실리콘 부품이 사용되지 않을 때 하드웨어 플랫폼이 이러한 부품의 클록을 중단하거나 전원을 완전히 차단할 수 있습니다. 이러한 유휴 상태는 배터리 수명을 연장하는 데 결정적 영향을 미치지만 최소 유지 시간이 필요합니다. 다시 말해서, 전력 소모 측면에서 유휴 상태로 전환하고 복귀하는 과정이 의미가 있으려면 유휴 상태가 어느 정도 긴 시간 동안 유지되어야 합니다. 그 이유는 유휴 상태로 전환하고 복귀할 때 전력이 일부 소모되기 때문입니다. 소프트웨어는 가급적 유휴 상태에서 머무는 시간이 가장 길고, 유휴 상태에서 빠져 나오는 횟수가 가장 적을 때 유휴 상태를 가장 효과적으로 사용하게 됩니다.

기본 기능인 ETW 추적, Windows 성능 분석기의 일부 추가 기능과 기본 히스토그램을 사용하여 Windows 8의 유휴 상태 효율성을 추적하고 있습니다. 아래는 Windows 7과 Windows 8에서 유휴 상태 지속 시간의 차이를 나타낸 것입니다. 화면이 켜져 있을 때 Windows 7에서 최대 유휴 상태 지속 시간이 15.6ms이었던 반면 Windows 8에서는 100ms 이상의 지속 시간이 35%에 이를 정도로 대폭 개선되었습니다! 화면이 꺼져 있고 '연결된 대기 모드'일 때 유휴 상태 지속 시간은 더 길어져 현재 수십 초에 이릅니다.

화면이 켜졌을 때 Win7과 Win8의 유휴 상태 지속 시간을 비교한 차트. Win7에서는 약 95%가 10ms - 16ms이지만 Windows 8에서는 약 35%입니다.

런타임 장치의 전원 관리

PC는 프로세서, 저장 장치 및 주변 기기를 포함한 모든 장치가 절전 모드로 전환될 때 배터리 수명이 가장 오래 갑니다. 최신 PC를 구성하는 거의 대부분의 장치는 일정 형태의 전원 관리 기술을 포함하고 있으며 런타임 장치 전원 관리는 사용자 경험을 방해하지 않으면서 이러한 기술을 완벽하게 활용하는 방식을 결정합니다. 런타임 장치 전원 관리의 좋은 예로는, Windows 7에서 정해진 시간이 지나면 디스플레이가 자동으로 어두워지는 것을 들 수 있습니다.

장치 전원 관리가 얼마나 중요한지 보여 주는 한 가지 예를 들면, 많은 시스템에서 장치 하나만 전원 관리 기능을 해제해도 총 배터리 수명이 최대 25%까지 줄어드는 것으로 나타났습니다. 대부분의 장치는 최대 전력 모드에서 펌웨어에 의해 초기화되고 보다 표준적인 전력 소모를 위해 장치 드라이버가 필요하기 때문에 마찬가지로 장치 관리자에서 장치 사용을 해제하는 것도 좋지 않습니다. Windows 7에 포함된 powercfg.exe 유틸리티에서 /ENERGY 매개 변수를 사용하여 일부 장치의 전원 관리 문제를 진단할 수 있습니다. /ENERGY의 출력은 HTML 파일로 표시되며, 전원 소모 상태에서 실행될 수 있는 장치와 소프트웨어를 확인할 수 있습니다. 물론, PC 장치의 전원 관리를 최적화하는 가장 좋은 방법은 OEM 및 공급업체 드라이버가 로드된 상태로 제공된 PC의 출고시 이미지를 사용하는 것입니다.

장치의 효율적 전원 관리는 장치 드라이버가 Windows 커널 전원 관리자 및 플랫폼 펌웨어와 연계하여 수행합니다. 전원 관리자는 장치 드라이버가 전원 관리 작업을 수행하고 플랫폼의 다른 장치와 전원 상태 전환을 조정하는 과정을 지원합니다.

Windows 8에서는 장치 전원 프레임워크를 새롭게 개발했으며 이 기반 위에서 모든 장치는 자신의 전원 관리 기능을 알리고 SoC 시스템에 적합하게 설계된 전원 엔진 플러그 인 또는 PEP라는 특수 드라이버와 통합할 수 있습니다. PEP는 실리콘 제조업체에서 제공하며 SoC에 관한 모든 전원 관리 요구 사항을 인식합니다. 이를 통해 USB 호스트 컨트롤러나 키보드 드라이버 등의 장치 드라이버를 한 번 개발하면 SoC 기반 PC부터 데이터센터 서버에 이르기까지 모든 플랫폼에서 최적의 전원 관리 기능을 제공할 수 있습니다.

Windows 8 PC에서 전력 소모를 줄이고 배터리 수명을 연장하는 기술을 제공하기 위해 개발 팀은 에코시스템의 모든 파트너와 긴밀하게 협력하고 있습니다.

- Pat Stemen