이 글에서는 전원 관리에 대한 기본적인 내용을 말씀 드리고자 합니다. 전원 관리 (즉, 에너지 효율) 는  PC 에코시스템에서  중요한 문제로, PC 실행시의 에너지효율은 가장 에너지효율이 낮은 구성요소에 의해 제약을 받습니다. Windows 7 설계 시에는 실행 시스템의 에너지 사용 패턴을 중시하는 것이 명확하게 하여 앞으로도 지속적으로 하드웨어나 소프트웨어 제조사와 협력하여 노력할 것입니다. 모든 영역의 요구에 대한 균형을 유지하려고 할  때, 에너지 소비가 가장 눈에 띄어 알기 쉬울 것이라고 생각됩니다. 시스템을 시험적으로 실행할 경우에는 시스템을 전원에 접속함으로, 그에 따른 테스트 실행시의 수적인 변화를 분명히 알 수 있습니다 (영화 아폴로 13 에서  매핑이라는 전원을 유효하게 사용하기 위한 격투 모습 (미션 크리티컬한 문제이지만) 을 보신 분도 계시겠지만, ).이 글은 커널(Kernel) 팀을 통괄하는 프로그램관리 팀의 Dean DeWhitt 에 쓴 글입니다. 
--Steven

에너지효율은 현대 컴퓨팅에서 자주 언급되는 주제의 하나입니다. 그 증거로, 프로세서나 칩 세트의 공급업체는 제품에 대해, 단순한 프로세서의 클록 주파수나 벤치마크 성능 대신, 와트 당 성능" 을 팔고 있습니다.  "그린 컴퓨팅" (컴퓨팅 전력 소비와 환경에 미치는 영향 절감)에 관심을 가진 분들은 아실지 모르겠지만, 최종적으로 배터리 수명은 항상 모바일 PC 의 구매와 사용성에 영향을 주는 주요한 요인입니다. 이러한, PC 업계의 에너지효율에 관한 대처는 Windows 전원 관리 방법에 대한 지속적인 관심을 불러일으킵니다.

Windows 7 설계시 우리의 목표는 이전 출시 버전보다 전력 소비를 줄여서, 사용자가 Windows PC 에 원하는 성능과  기능을 제공하는 것이었습니다. Windows에서는 이미 풍부한 에너지 절약 기능이 제공됩니다. 예를 들어, 사용자가 컴퓨터를 사용하지 않을 때에는 디스플레이 전원을 끊고, 시스템을 자동적으로 절전 상태로 할 수 있습니다. Windows 7에서는 이러한 영역에 투자를 거듭하여 기존 기능을 확장하여, 시스템이 유휴 상태 일 때의 전력 소비를 줄이는 것을 중시했습니다. Windows에서는 프로세서, 하드 드라이브나 디스플레이 등이 다양한 장치의 전원 상태를 관리해야 하지만, 컴퓨터에서 실행되는 그 이외의 장치나 소프트웨어도 전력 소비와 배터리 수명에 대해 (그 이상이라고는 아닐지라도) 동일한 정도의 영향을 미칩니다.

우리는 에너지효율과 전력 소비에 대해 이야기를 할 경우에 과제가 되는 영역을 다음 세가지로 분류하고 있습니다.

  • 기본 하드웨어 플랫폼 : 프로세서, 칩 세트 및 메모리. 모바일 플랫폼의 경우에는 배터리 용량도 포함됩니다. 기본 하드웨어 플랫폼은 플랫폼의 전력 소비에 큰 영향을 미칠 가능성이 있습니다. 최대 프로세서 속도, 코어 수 (프로세서가 모바일 장치용으로 설계된 경우), RAM 용량 등은 모두, 전력 소비에 영향을 미치는 요인이 됩니다.
  • Windows : PC 운영 체제에서는 시스템의 다양한 장치를 관리하여,  이용 상황에 근거한 성능과 전력 소비 절충을 고려하여, 최종 사용자가 전원 계획과 설정을 통해서 전원 관리 방침을 세울 수 있도록 해야 합니다. 이 영역에서의 과제는 장치 전원을 적절히 관리하고, Windows 의 새로운 기능에 대하여 시스템 리소스 (CPU, 메모리와 디스크)가 가능한 효율적으로 사용하는 것입니다.
  • 확장기능 : 확장기능은 다른 장치, 드라이버, 서비스와 응용 프로그램 등을 포함한 일반적인 카테고리입니다. 장치, 드라이버 및 그 외의 소프트웨어는 전력 소비에 중요한 영향을 미칠 가능성이 있고, 응용 프로그램 하나에 의해서 배터리 수명이 20% 이상 차이가 나기도 합니다.

Windows PC에서 에너지효율을 크게 향상하기 위해서는 이러한 각 영역에서의 대처가 필요합니다. 어느 쪽이든 한가지 영역의 한가지 구성요소에 관한 문제가 전력 소비에 큰 영향을 미칠 가능성도 있습니다. 따라서 플랫폼 관점에서 에너지효율의 문제에 입각해, 플랫폼의 각 구성요소에 대한 특별한 주위를 기울여야 합니다.

기본 하드웨어 플랫폼

기본 하드웨어 플랫폼은 실제로는 시스템 제조사에 따라서 다릅니다. 고객은 시스템을 구입할 때, 궁극의 선택을 하게 됩니다. 즉, 매우 효율적인 하드웨어 구성요소를 갖춘 시스템을 구입하는 것도, 전력 소비보다 성능이 우선된 구성요소를 갖춘 시스템을 구입할 수도 있습니다. 데스크톱 PC 나 모바일 PC 에는 다양한 폼 요소(form factor), 능력이나 전력 소비 수준이 다른 것이 있습니다. 모바일 PC 에는 표준적인 3 셀 또는 6 셀 배터리를 갖추고 있는 것도, 확장 9 셀 배터리 또는 컴퓨터에 추가 가능한 다른 외부 배터리를 가지는 것도 있습니다. Windows 의 과제는 Windows 에코시스템이 광범위하게 포함하는 하드웨어 에너지효율을 얼마나 향상시키는가 입니다. 최신의 랩톱 전원은 다음과 같은 경향이 있습니다.

 

Laptop power consumption.

데스크톱은 와트 수가 높지만, 전원의 배분은 비슷해 집니다. 데스크톱 PC 를 사용하는 경우에도, 디스플레이에서는 대량의 에너지가 소비됩니다.

운영 시스템

Windows 운영 체제는 플랫폼상의 다른 구성요소와 같은 정도 크기의 영향을 줄 가능성이 있습니다. Windows 7 설계의 목표는운영 체제서 전원 정책의 설정을 비롯, 뛰어난 기반 및 전력 절약을 구현할 수 있는 기회를 Windows 에서 제공할 수 있도록 하는 것입니다.

Windows  전원 관리에서 대부분의 사용자가 가장 먼저 사용하는 것은 [컨트롤 패널] 의 [전원 옵션] 또는 모바일 PC 의 배터리 미터입니다. Windows 에는 전원 설정이나 전원 계획이라고 하는 전원 관리 기능이 있습니다. 전원 계획에서는 필요에 따라서, 전원 설정 집합에서 다른 집합을 간단하게 변경할 수 있습니다.

 

Power Options control panel.

전원 계획에서는 다양한 Windows 전력 절약 기능을 변경할 수 있습니다. 예를 들어, 비활성화 타이머를 사용하면, 디스플레이를 오프 하는 것도, 시스템을 자동적으로 절전 상태로 하거나 시스템을 원하는 데로 설정하기 위한 새로운 사용자 지정 전원 계획을 새롭게 생성할 수도 있습니다. 디스플레이의 전원 오프 기능과 절전 기능이나 유휴 기능은 전력 절약을 구현하여, 배터리 수명을 늘리기 위해서 매우 중요합니다. 위에 나타낸 것처럼, 디스플레이는 일반적인 모바일 PC 의 경우에는 할당된 전원의 40% 를 소비하고, 데스크톱 PC 의 경우에는 30 ~ 100 초의 와트 수를 소비할 가능성이 있습니다.

PC 의 OEM (특히 랩톱 제조사)는 특정 모델에서 사용 가능한 차별화된 하드웨어나 고유의 소프트웨어를 활용하기 위한 사용자 지정 전원 기능집합을 개발하는 경우가 자주 있습니다. PC 의 OEM 의 이름이 붙은 전원 기능을 보는 일도 자주 있겠지요. 이것들은 에너지효율의 향상에 임하는 OEM 에 의해서 개발된 것입니다.

간단한 힌트 : 데스크톱 PC 전력을 절약하는 가장 간단한 방법은 디스플레이의 유휴 타임아웃을 과감히 짧게 하는 (예를 들어, 2 분 또는 5 분으로 한다) 것입니다. 화면 보호기가 유효하게 되어 있는 경우는 무효로 하고, 디스플레이를 오프로 할 수 있도록 해 주세요. 모바일 PC에서  배터리 수명을 늘리는 가장 간단한 방법은 디스플레이의 밝기를 줄이는 것입니다. 또, 새로운 올인원 컴퓨터의 상당수는 랩톱 구성요소를 사용하고 있어, 전원 관리의 관점에서는 랩톱과 같이라고 보여지는 것에 주의해 주세요.

Windows에서는 필요에 따라서 성능을 향상시켜, 현재의 작업 부담량에 근거하여 전력을 절약하기 위해서, 프로세서의 성능을 관리하고, 현재의 이용 상황에 근거하여 동적으로 변경합니다. 예를 들어, 제가 이 블로그에 글을 쓸 때 등, 시스템이 거의 유휴 상태 때에는 최대의 동작 모드로 프로세서를 동작시킬 필요가 없기 때문에 프로세서의 전압과 주파수의 값을 낮게 하여 전력을 절약할 수 있습니다. 같이 하드 디스크드라이브나 그 외의 다양한 장치에서는 사용하지 않을 때에는 저출력 모드로 하거나 완전히 전원을 끊고, 전력을 절약할 수 있습니다.

Windows 7에서는 전원 관리를 위한 사용자 경험이 향상되어, 유휴 상태로의 전력 소비의 삭감과 새로운 장치 전원 모드의 지원이 중시 됩니다.

시스템이 유휴 상태 때의 전력 소비를 최적화 하는 데는 두 가지 이유가 있습니다. 첫 번째 이유는 PC 는 하루에도 다양한 때에 유휴 상태가 되기 때문에, 시스템이 유휴 상태가 되어 있는 시간이 증가하는 만큼 소비하는 전력이 줄어 들기 때문입니다. 두 번째 이유는 유휴 상태 때의 전력 소비가 "기본" 이 되어, 다른 모든 작업 부담량의 전력 소비가 추가되기 때문입니다. 예를 들어, 유휴 상태에서 15 W 소비하는 시스템에서는 다른 작업의 부담량을 처리하고 있을 때의 전력 소비가 추가됩니다. 유휴 상태 때의 플랫폼에서의 전력 소비를 줄이면, 다른 대부분의 시나리오로의 향상도 도모할 수 있습니다.

유휴 상태 때의 전력 소비를 줄이기 위한 제일 중요한 것은  프로세서, 메모리 및 디스크 사용을 최적화하는 것입니다. 프로세서는 광범위하게 전력을 소비하기 때문에, 프로세서의 사용을 줄이는 것은 가장 중요합니다. 완전한 유휴 상태 때에는 프로세서가 소비하는 전력은 100 ~ 300 mW 로 낮음입니다. 그러나, 완전히 가동할 때의 프로세서는 최고 35 W를 소비하는경우도 있습니다. 이와 같이 소비하는 전력에 상당한 폭이 있는 것은 프로세서가 비록 단시간만 동작해도 전력 소비와 배터리 수명에 큰 영향을 미칠 가능성이 있다는 것을 의미합니다. Windows 7에서는 프로세서의 사용을 줄이기 위해서 도움이 되는 몇가지 영역에 투자하여, 프로세서가 최소 절전 모드가 되는 시간이 보다 길어집니다. 이러한 투자 중 하나는 플랫폼상에서 실행되는 서비스 영역으로 이런 서비스가 필요한 때에게만 실행하도록 하는 "트리거 실행" 이라 불리는 것입니다. 이런 서비스는 효율적이고 서비스 자체가 미치는 영향은 최소한으로 억제되지만, 효과가 있는 몇가지 서비스를 추가할 수도 있습니다. 우리는 Windows 에서 이것들 양쪽 모두의 서비스를 관리하면서도 이 영역에 대한 투자를 인프라를 활용하기 위한 서비스를 생성하는 사람들을 위해서 확장하기 위한 방법을 찾고 있습니다 (이것들은 부팅 시간의 향상에 공헌하는 기능이기도 합니다).

유휴 상태 때의 전력 소비를 한층 더 줄이기 위해 우리는 코어 프로세서의 전원 관리 향상을 중시하고 있습니다. Windows에서는 현재의 이용 상황에 근거하여 프로세서의 성능이 조정되어 반드시 필요한 때에게만 프로세서 성능을 향상시키도록 하여, 전력 소비가 큰폭으로 줄어듭니다.

우리는 USB 장치 클래스의 확장 등, 장치의 전원 관리 영역에 투자하여, 오디오, 바이오 메트릭스, 스캐너, 스마트 카드 등이 광범위하게 건너는 장치로의 선택적인 중단 (selective suspend)을 가능하게 했습니다. 이러한 Windows 7에서 사용 가능한 기능에 의해서, 보다 에너지효율이 뛰어난 PC 설계가 가능하게 되었습니다. 또, 우리는 유/무선의 네트워크 장치의 전원 관리의 향상을 도모하기 위한 투자도 실시했습니다.

코어 인프라에 많은 투자를 하여, 몇가지 시나리오에서 에너지효율이 향상됐지만, Windows 7에서는 몇가지 주요한 고객 시나리오에서, 리소스 사용률 개선을 도모할 수 있는 영역을 특정하고, 모바일 플랫폼에서의 배터리 수명을 늘릴 수 있도록 하는 것을 중시했습니다. 그래서 특정된 시나리오가 미디어 재생이었습니다. DVD 재생을 최적화하려면, 프로세서와 그래픽 사용률 감소, 오디오 향상, 옵티컬 디스크드라이브 확장이 필요합니다. 이러한 향상을 도모하는 것에 대하여는 이미 성과를 올려 WinHEC 컨퍼런스에서 설명했던 대로, 광범위한 모바일 플랫폼에서의 배터리 수명을 큰폭으로 늘릴 수 있었습니다.

확장기능

그래픽 장치, USB 장치, 장치 드라이버, 백그라운드 서비스 및 설치 된 응용 프로그램은 모두 Windows 의 확장기능입니다. 전력 소비와 에너지효율의 대폭적인 향상을 도모하는 것은 플랫폼 확장기능의 효율을 향상시키는 것에 의해서 구현할 수 있습니다.

예를 들어, 하나의 USB 장치가 선택 중지를 지원하지 않는 경우를 생각해 보세요. 그 USB 장치 자체는 매우 적은 전력 밖에 소비하지 않을지도 모르지만, (지문 리더 등) 그 장치가 중지 상태가 될 때까지, 프로세서와 칩 세트는 매우 빈번히 장치를 폴링하고, 새로운 데이터가 있는지 확인할 필요가 있습니다. 그러한 폴링에 의해, 프로세서가 최소 절전의 유휴 상태가 되는 것이 방해할 수 있고, 일반적인 비즈니스 클래스의 노트북의 경우는 배터리 수명이 20 ~ 25% 짧아집니다.

에너지효율의 대폭적인 향상이 요청되는 영역은 장치 이외로도 있습니다. 응용 프로그램과 서비스 소프트웨어도, 전력 소비에 큰 영향을 미칠 가능성이 있습니다. 예를 들어, timeBeginPeriod API 를 사용하여 플랫폼 타이머의 정밀도를 향상시키는 응용 프로그램에 대해 생각해 봅시다. 그 경우, 플랫폼의 타이머 틱(timer tick) 정밀도가 향상되어, 프로세서가 최소 절전의 유휴 모드를 효율적으로 사용할 수 없어집니다.  하나의 응용 프로그램에서 타이머 정밀도가 1ms 까지 향상된 상태가 유지되면, 일반적인 노트북 PC 의 경우는 배터리 수명에 최대 10% 의 영향이 미치는 것이 관찰되었습니다.

우리는 파트너와 밀접하게 제휴하고, Windows 플랫폼의 확장기능의 에너지효율의 향상에 노력하고 있습니다. 우리가 채용하는 방법은 하드웨어와 소프트웨어의 에너지효율 문제를 특정하기 위한 풍부한 도구를 제공하는 것입니다. Windows 7에서는 에너지효율의 문제에 관한 HTML 형식의 리포트를 제공하는 새로운 인 박스(in-box) 유틸리티 (전원 문제에 관한 "톱 10" 체크리스트)를 추가했습니다. Windows 7에서 시험해 보고 싶은 경우는 관리자 특권으로 명령 프롬프트에서 powercfg /energy 를 실행해 주세요. Powercfg 를 실행할 경우에는 열려 있는 응용 프로그램과 문서를 모두 닫아야 합니다. 이 유틸리티는 시스템이 유휴 상태 때의 에너지효율 문제를 검색하도록 설계되었습니다. energy 매개 변수를 지정해 powercfg 를 실행하면, 중단없이 USB 장치와 플랫폼 타이머의 정밀도가 향상한 응용 프로그램을 검색 할 수 있습니다.

보다 심층 분석을 실시하기 위해서, Windows Performance Toolkit 도 제공됩니다. 소프트웨어 개발자는 Performance Toolkit (http://www.microsoft.com/japan/whdc/system/sysperf/perftools.mspx)을 사용하면, 응용 프로그램의 리소스 사용률 관찰, 성능 병목 상태 해결 및 에너지효율에 영향을 주는 문제의 특정을 매우 간단하게 실시할 수 있습니다.

PC를 끌 때 경우 전력 절약

지금까지는 PC 가 켜져 있을 때의 전력 절약에 대해 설명해 왔습니다. 그러나, PC 가 사용되지 않을 때에 최소 절전 모드가 되도록 하면 전력을 절약할 수 있습니다. 많은 사용자는 컴퓨터를 사용하지 않을 때에 종료하지만,  모바일 PC 가 절전 상태 (경우에 따라서는 최대 절전 모드 상태)가 되도록 하는 사용자도 있습니다. 사용자가 시스템을 사용하는데 적절한 모드를 선택할 수 있도록 하기 위해, Windows 에는 두가지 전력 절약 모드가 있습니다.

  • 절전 상태 : 열려 있는 프로그램, 문서 및 파일이 시스템의 RAM 에 저장되어 시스템 그 이외 부분의 전원이 끊어집니다. 절전 상태에서는 메모리에만 전원이 공급되므로, 전력 소비가 매우 적어집니다 (일반적으로 모바일 PC에서는 1 W 미만, 데스크톱 PC에서는 3 W미만).절전 상태의 주요 이점은 매우 단시간에 시스템을 재개할 수 있는 것입니다. 대부분의 시스템에서는 2 초 미만으로 절전 상태에서 재개할 수 있습니다.
  • 최대 절전 모드 상태 : 열려 있는 프로그램, 문서와 파일이 모두, 시스템의 RAM에서 하드 드라이브에 복사됩니다. 생성된 파일은 절전 모드 설정 파일로 불립니다. RAM 가 절전 모드 설정 파일에 복사된 다음에 모든 PC 의 전원이 끊어집니다. 최대 절전 모드 상태는 모바일 PC 에서 자주 사용됩니다. 왜냐하면, 대부분의 랩톱에서는 소비 전력이 0 W 에 가까워, 배터리를 다 쓴 후에도 열려 있는 모든 프로그램과 문서가 절전 모드 설정 파일에 복사되기 때문입니다. RAM 사이즈가 계속 증가해도, PC 에 따라서는 저장소에 한계가 있기 때문에 최대 절전 모드 상태는 일반 사용자에서 최적인 옵션이라고 말할 수 있습니다 (간단한 힌트로서는 디스크 클린업 마법사 또는 powercfg –hibernate off 에 의해서, 최대 절전 모드 상태를 위해서 미리 할당된 디스크 영역을 삭제할 수 있습니다).
  • 종료 : 일반적인 Windows  종료입니다. 메모리나 디스크에는 아무것도 저장 되지 않습니다. 다음 시스템 전원이 켜질 때 시스템은 다시 부팅됩니다.

우리는 샘플 데스크톱 PC 를 사용하여, 절전 상태, 최대 절전 모드 상태, 종료 상태 및 기본적인 온 상태 (데스크톱만이 표시되어 아무것도 프로그램이 열리지 않은 상태)의 전력 소비를 측정했습니다. 또, 재시동의 지연 (시스템이 온상태에 돌아오기까지 걸리는 시간)에 대해도 측정했습니다.

 

Comparing Sleep, Hibernate, and Boot Power v. Time to On

이 그림에서도 절전 상태에서의 안정성과 성능을 중시하여, 대부분의 사람들에게 컴퓨터를 사용하지 않을 때에는 절전 상태로 하는 것을 권장하는 이유가 명백해집니다. 절전 상태에서는 종료 상태와 거의 같은 전력이 소비되지만, 시스템이 부팅 프로세스 없이 2 초 미만으로 재개됩니다. 부팅 때에는 대량의 전력이 소비되므로, 컴퓨터 전원을 꺼서 전력을 절약하거나 컴퓨터를 저전력 상태로 할지를 검토할 때는 컴퓨터를 사용하지 않는 시간이 어느 정도 있는지를 생각해야 합니다.  그렇지만, 이전의 블로그에서 설명한 것과 같이 부팅 ( 및 종료)이 Windows 7 을 설계하는데, 성능을 향상시키는데 매우 중요한 요인이 되는 것은 분명합니다.

다음 단계

우리는 Windows PC 의 에너지효율을 지속적으로 향상시키기 위해  노력하고 있습니다. 또, 전원이 어디서 소비되고 있는지를 식별하기 위한 도구와 Windows 7 의 코어 플랫폼 전원 관리의 대폭적인 향상을 도모했습니다. 앞으로 해야 할 일들이 아직 많이 있지만, 베타 버전 출시를 기대하며, CEIP에서 에너지효율과 전원 관리에 관한 피드백을 기다리고 있습니다. 물론, 지속적으로 에코시스템 외 멤버와 밀접하게 제휴하여, 전원이 하나가 되고, PC, 소프트웨어 및 주변기기의 제조, 사용 및 수명 주기의 종료에 이르기까지의 에너지 효율 향상에 크게 공헌하기 위해 노력할 것입니다.

--Dean

Published Sunday, February 01, 2009 12:16 AM by e7blog

Filed under: Perf