휴대기기의 소비전력 요구에 부응하는
에너지 절약 기법: 배터리 수명 최적화
휴대용 제품 및 배터리로 작동하는 기타 제품의 제조업체들은 기본 성능의 향상은 더 이상 최대의 과제가 아니며 이제는 "에너지 절약형 고성능"이 최대의 과제라고 말한다. 에너지 절약 기법은 일회성 솔루션이 아니다. 예측 가능한 미래를 위해 모바일 기기에 탑재된 새 소프트웨어 프로그램의 에너지 요구는 작고 가벼운 형태로 그러한 수요를 충족시킬 수 있는 배터리 기술의 능력을 초과할 수 있다.
글│앤드류 바스(Andrew Barth), 프리스케일 세미컨덕터
배터리 기술의 더딘 발전은 최신 휴대용 전자 기기의 소비전력 요구에 부응하지 못하고 있다. 멀티미디어 휴대 단말기는 까다로운 애플리케이션 프로그램과 그 어느 때보다도 많은 전력을 소비하는 기기를 탑재하고 있기 때문이다. 하드웨어 설계자들은 집적 회로(IC)와 시스템의 소비전력을 최소화하기 위해 고급 절전 기법을 사용하고 있다. 하지만 이러한 기법도 지능적인 에너지 절약 소프트웨어를 사용하여 그 기법을 효율적으로 활용하지 않으면 배터리 수명을 유지하거나 연장하지 못한다. 이러한 모바일 장치의 증가하는 소비전력 요구를 해결하는 기법을 알아보자.
에너지 절약형 고성능
휴대용 제품 및 배터리로 작동하는 기타 제품의 제조업체들은 기본 성능의 향상은 더 이상 최대의 과제가 아니며 이제는 "에너지 절약형 고성능"이 최대의 과제라고 말한다. 무선 모바일 제품이 소비전력이 높은 애플리케이션을 더욱 광범위하게 제공함에 따라 네트워크 운영자들은 이러한 제품을 "적시에" 사용할 수 있는지 여부가 제품 사용자의 행동 즉, 매출에 직접 영향을 끼친다는 사실을 인식하고 있다.
IC 공급업체들은 제품 플랫폼의 소비전력을 줄이라는 압력을 그 어느 때보다도 많이 받고 있다. 이 과제는 반도체 공정 기술, 회로 설계 기법, 시스템 아키텍처, 플랫폼 구성, 설계 방법론과 도구에서 시스템 소프트웨어 및 연결 지능에 이르는 광범위한 계층에서 해결되어야 한다.
소비전력 발생의 근본 원인
CMOS IC의 소비전력은 크게 작동 중(예: 스위칭 중)에는 회로의 동적 전력으로, 회로의 전원이 켜져 있을 때에는 정적 전력으로 분류된다. 정적 전력은 동적 전력보다 적지만 CMOS의 크기가 계속 작아지고 있기 때문에 총 전력에서 차지하는 비율이 점점 높아지고 있다. 그러므로 절전 기법은 기기의 적시 가용성, 대기 시간 및 기타 전력 지표를 개선하기 위해 두 형태의 소비전력을 모두 해결해야 한다. 소비전력을 높이는 또 다른 주요 원인은 점점 더 해상도가 높아지는 LCD와 이러한 제품에 사용되는 백라이트 기법이다.
절전 기술
다양한 온칩 및 오프칩 절전 기술로 전력 낭비의 원인을 해결한다. 많은 기술이 전적으로 하드웨어에서 구현되지만 활용을 위해서는 소프트웨어가 필요한 기술도 있다. 절전 기법의 예로 동적 전압 및 주파수 조절(DVFS), 동적 프로세스 및 온도 보정(DPTC) 및 저전력 대기 모드(가면, 수면 등)를 제어하기 위한 대기 시간 예측이 있다.
전력 낭비를 최소화하면서도 성능 요구를 충족하기 위해 하드웨어 모듈의 전력 상태를 실시간으로 설정하는 시스템을 동적 전원 관리(DPM)라고 부르기도 한다. 하드웨어는 소프트웨어 제어를 통해 소비전력 감소를 위해 성능을 다소 희생하거나 최적화할 수 있는 프로세서나 주변기기와 같은 부품을 사용해야 한다. 일반적으로 이러한 부품을 전원 관리 부품(PMC)이라 한다.
MXC(Mobile eXtreme Conver-gence) 베이스밴드 프로세서와 i.MX31 멀티미디어 애플리케이션 프로세서를 포함한 프리스케일 반도체의 무선 칩셋은 그러한 PMC를 많이 포함하고 있다. 여기에는 다단계 저전력 대기 모드, 동적 전압 및 주파수 조절, 동적 프로세스 및 온도 보정 등의 기법이 사용되었다.
동적 주파수 조절
IC의 동적 소비전력은 작동 주파수와 대체로 비례한다. 그러므로 프로세서의 클록 주파수를 필요한 처리 성능을 충족하는 범위 내에서 최소로 낮추는 것은 의미가 있다. 이 말은 소프트웨어가 좀더 느리게 실행되더라도 허용되는 범위 내에서 실시간 작동이 가능하다는 것을 의미한다. 그러나 에너지란 시간의 경과에 따른 누적 평균을 의미하는 전력이다.
그러므로 클록 주파수를 절반으로 낮춰서 프로세서를 실행하더라도 같은 코드를 실행하는 데 소요되는 시간이 두 배라면 에너지 절약 효과가 거의 없다. 실제로 시스템 메모리에는 스위칭 횟수를 줄여서 에너지 사용량을 줄이는 몇 가지 보조 효과가 있을 수 있다. 그러나 주파수 조절만으로 전체 에너지 절약에 기여하는 이점은 크지 않다.
동적 전압 및 주파수 조절
작동 전압을 조절하면 더 나은 절전 효과를 얻을 수 있다. 전력은 전압의 제곱에 비례하여 변하므로 전압을 조절하면 제곱 법칙에 의한 절전 효과를 얻을 수도 있다. 전압 조절과 주파수 조절을 함께 사용하면 동적 전압과 주파수 조절의 결합을 통해 대체로 작동 전압의 세제곱에 비례하는 절전 효과를 얻을 수 있다. 실제로 이러한 이론적 제곱 법칙과 세제곱 법칙 절전은 전압 제어 회로의 구성 및 효율성뿐 아니라 전압/주파수 설정을 지정하는 데 사용되는 성능 예상 소프트웨어의 품질에 따라서 달라진다.
지정된 IC 설계에서 작동 전압에 따라 사용 가능한 최대 작동 주파수가 결정된다. 전압(및 주파수)은 전력 소모를 최소화하면서 필요한 성능을 얻도록 조절된다. 전압을 높이거나 낮출 때(결과적으로 소비전력을 증가시키거나 감소시킬 때)는 설계의 작동 허용오차를 유지하도록 작동 주파수 및 기기가 제공할 수 있는 성능을 조절해야 한다(그림 1).
동적 프로세스 및 온도 보정
DVFS에서 특정 작동 주파수를 얻기 위해 선택한 작동 전압 설정은 대개 최악의 경우 값이다. 이는 프로세스와 온도 변화에 대한 전압 여유를 포함하고 있다. 일반적으로 IC는 실제 주위 온도에 필요한 것보다 조금 더 높은 전압에서 작동하고 칩의 제조 여유도 있기 때문에 이러한 여유는 전력 낭비를 의미한다. 온칩 프로세스 및 온도의 영향을 받는 구조를 사용하여 IC를 모니터링하면 프로세스 한계에 매우 가까워서 전력 낭비를 최소화하는 더 낮은 작동 전압을 계산할 수 있다.
대표적인 DVFS 알고리즘
프로세서에 대한 단기적인 소프트웨어 작업부하 결정에 따라 프로세서의 작동 주파수(및 전압)를 설정하는 DVFS 기반 프로세서와 함께 사용하기 위한 많은 알고리즘이 있다. 이러한 부류의 알고리즘은 OS에서 실행되는 각 작업의 최근 소프트웨어 작업부하를 추적한다. 이 기법에서는 대부분의 멀티미디어 프로그램의 경우처럼 최근의 작업부하와 가까운 미래의 작업부하 사이에 합리적인 상관관계가 있는 것으로 가정한다. 이 작업 상태 정보는 OS 커널에서 제공해야 한다.
이 알고리즘은 총 작업부하(모든 작업에 대한)를 예측하기 위해 작업부하 예상치와 비사용 대기 시간을 유지한다. 이 일반화된 MCU 처리 레벨은 관련 소프트웨어를 통해, 사용된 특정 DVFS 메커니즘에 필요한 적절한 주파수와 전압 설정으로 변환된다. 이 알고리즘은 변화하는 소프트웨어 작업부하에 응답하여 새로운 예측치를 지속적으로 재계산하여 공급한다.
이상적인 경우라면 이 알고리즘은 각 OS 작업의 개별적인 한계 범위 내에서 필요한 프로세서 성능을 정확하게 예측한다. 이 알고리즘은 작업부하의 변화가 그다지 급격하지 않은 OS 작업에 적합하다. 따라서, 사용자 중심 이벤트 등의 다른 상황들을 처리하려면 다른 알고리즘이 필요할 수 있다.
기본적인 에너지 절약 시스템
에너지 절약 시스템(ECS)은 배터리 또는 기타 제한된 전원에서 낭비를 최소화하려고 한다. 그래서 에너지 사용을 최소화하는 기법을 사용한다. 그림 2는 세 부분으로 구성된 기본적인 ECS 솔루션을 나타낸다.
① 여러 PMC가 포함된 플랫폼 하드웨어
② DVFS와 다른 알고리즘을 사용하는 성능 예측 기능(Performance Estimator)
③ 예측치를 특정 플랫폼의 "작동 지점(OP)" 즉, PMC 설정 결합에 적용하는 성능 설정 기능(Perfor-mance Setter)
그런데 모든 PMC에 대한 최적의 설정 즉, 최적의 "작동 지점"을 어떻게 알아낼 수 있을까? 이는 소프트웨어가 프로세서와 주변기기에 부여한 작업부하의 변화에 따라 달라진다. 애플리케이션에 따라 달라지므로 아마 여러 애플리케이션 프로그램을 동시에 실행하게 될 것이다.
사용자는 오프라인 상태에서 각 애플리케이션에 대한 작업부하를 확인한 다음 알려진 모든 결합을 합산하면 된다. 이것은 어려운 작업이며 이상적인 접근방식이 아니다. 효율적인 솔루션이라면 예측 및 다른 기법을 사용하여 필요한 성능을 "작업 중에" 알아낼 것이다.
고급 에너지 절약 솔루션
그러므로 ECS는 동적으로 플랫폼 하드웨어의 성능-전력 설정을 실시간 한계 내에서 소프트웨어 작업부하를 처리할 수 있는 충분한 성능을 내면서 최대 성능-전력 설정보다 훨씬 더 낮은 전력을 소모하는 수준으로 조정한다. 또한 소프트웨어 최적화도 가능하다.
성능 예측 기능은 추가적인 성능 예측 지표와 시스템 이벤트 모니터를 사용하여 성능 예측을 개선할 수 있다. 또는 필요한 성능 수준을 동적으로 지정할 수 있는 "전력 절감형" 애플리케이션 프로그램과 미들웨어 소프트웨어에 대한 인터페이스를 둘 수 있다.
성능 예측 기능은 실제 및 예상 작업부하를 수시로 확인한다. 그런데 성능 설정 기능이 각각의 새로운 예측에 대해 하드웨어 설정을 무조건 변경해야 할까? 아마 아닐 것이다. 작동 지점을 변경하려면 "비용"(시간과 전력)이 들기 때문이다. 고급 ECS는 비용 이점 분석을 실시간으로 수행하여 OP의 변화가 에너지 절약에 유리한지 여부를 결정해야 한다.
예를 들어, 각각의 프로세서 저전력 대기 모드(휴면, 가면 등)는 "손익분기점" 시간을 가진다. 단, 저전력 모드에서 그 이상의 시간을 소모하는 경우는 예외이다. 왜냐하면 그럴 경우 에너지 절약 관점에서는 실행 모드를 유지하는 것이 오히려 유리할 것이기 때문이다. 대기할 수 있는 시간을 결정하는 신뢰할 수 있는 이벤트 기반 정보가 있다면 ECS는 기회가 올 때 사용할 수 있는 저전력 모드(있는 경우)를 현명하게 선택할 수 있다.
고급 ECS 시스템은 실행 중인 칩셋에 최적화된 런타임을 선택할 수 있도록 하드웨어 설계 데이터를 체계적으로 인코딩한다. 프리스케일은 이것을 플랫폼 비용 규칙이라고 부른다(그림 3).
자가 최적화 시스템을 위한
소프트웨어
하드웨어와 소프트웨어의 최적화 역시 가능할까? 잘 조정된 경주용 자동차와 마찬가지로 정확하게 "조정된" 상태를 유지하려면 지속적인 주의가 필요할까? 해결책은 실행 시스템에 대한 지식에서 나온다. ECS 알고리즘은 변화하는 상황에 맞춰 미묘한 조정을 하기 위해 관련 실시간 이벤트와 함께 공급되어야 한다. 예를 들어, 사용자 정책을 통해 제품 사용자 입력에 따라 최적의 플랫폼 설정을 수정하는 작업이 필요하다.
"사용자 중심의" 고급 ECS는 시스템 통합업체가 ECS에서 광범위한 소프트웨어 사용 사례에 최적에 가까운 설정을 지정한 다음 ECS 본래의 적응 능력에 따라 실시간 변화를 처리할 수 있도록 해야 한다. 이는 단순한 소프트웨어 최적화가 아니라 자가 최적화 시스템을 위한 소프트웨어 최적화이다.
프리스케일은 여기서 설명한 기법을 사용하여 ECS 솔루션을 개발했다. XEC (eXtreme Energy Conservation)라는 솔루션이 그것이며 모바일 제품 제조업체들이 사용하는 주요 개방형 운영 체제에 이식되고 있다. 고급 전원 관리는 프리스케일이 고급 온칩 기능을 활용하기 위해 소프트웨어 최적화의 핵심 요소로 보고 있는 멀티미디어와 플랫폼 보안을 포함한 여러 영역 중 하나이다. 앞으로 자가 최적화 시스템을 위한 지능형 소프트웨어는 제조업체들이 고급 제품 개발의 복잡성을 관리하는 또 다른 도구가 될 것이다.
에너지절약의 미래
에너지 절약 기법은 일회성 솔루션이 아니다. 예측 가능한 미래를 위해 모바일 기기에 탑재된 새 소프트웨어 프로그램의 에너지 요구는 작고 가벼운 형태로 그러한 수요를 충족시킬 수 있는 배터리 기술의 능력을 초과할 수 있다. 배터리 충전 주기에 대한 사용자의 기대에 부응하려면 시스템 설계자들은 전력 낭비를 줄이면서도 순간적인 성능 요구를 충족하는 혁신적인 방법을 찾기 위해 지속적으로 노력해야 한다.
<자료제공: 월간 반도체네트워크 2006년 09월호>