사이트맵 보기

뉴스레터

임베디드 소프트웨어의 소비전력 최적화- white paper

작성일

작성자 관리자

조회수 4391

첨부파일

임베디드 소프트웨어의 소비전력 최적화- white paper
(Optimization of Embedded Software’s Energy Consumption)


소비전력을 줄이는 것이 밧데리를 이용하는 디바이스를 개발하는데 있어서 점점 더 중요해지고 있습니다. 가령 스탠바이 또는 동작 시간과 같은 특성은 휴대폰과 같은 장비의 동작에 중요한 요소입니다. 그러한 이유로 소모전류를 감소시키기 위한 포괄적인 측정이 밧데리로 동작하는 소자들의 디자인에 필수적인 부분입니다.

통상적인 측정방법은
 - Power-saving 기능을 가진 절전소자의 사용
 - CPU 주파수나 공급 전원을 가변
 - 절전기능을 가진 즉 cache와 on-chip 메모리와 같은 power-saving 기능이 우수한 microcontroller을 사용하는 방법이 있습니다.

그러나 소비전력 절감의 최적의 방안은 소프트웨어가 하드웨어의 모든 절전기능을 지속적으로 통제할 수 있다면 가능한 이야기입니다. 소비전력이란 전류, 전압 그리고 시간의 조합이고 이러한 인자들은 관련 소트프웨어를 통해서 지속적으로 영향을 받을 수 있기 때문입니다.
그래서 소프트웨어 개발자들은 어플리케이션 각각의 동작모드에서 이 세가지의 인자들의 최적의 설정 값을 끊임없이 찾아야만 합니다

예를 들면
마이크로프로세서는 정확히 power-saving 모드에 있는지, 프로그램이 얼마나 전류소모에 영향을 주는지 그리고 예상치 못한 power peak는 없는지 등등
이런 종류의 확인에는 전류, 전압 변화뿐만이 아니라 제어 소프트웨어의 프로그램과 데이터 흐름분석/ 측정/ 기록하는 테스트 환경이 확보되어야 하며 추가적으로 모든 기록들은 각각 연관이 되어져야 합니다.

Requirements
각각의 코드에 대해 전력소모를 구체화하기 위해서 아래와 같은 데이터가 수집 되어져야 합니다.
 -  발생 순서대로의 제어 소프트웨어 프로그램의 흐름;
        최근에는 real-time trace가 가능한 디버거가 이런 일을 위해 사용되고 있음
 -  프로그램 수행기간 동안 전류와 전압 변화추이;
        Analog/digital signal측정이 가능한 Logic analyzer가 이러한 목적에 적합합니다

하지만 더 어려운 부분은 측정된 각각의 전류, 전압 정보와 프로그램 흐름 정보를 상호 연관시키는 것입니다. 만약 서로 다른 제조사로부터 완벽하게 통합되지 않는 장비들을 사용한다면, 출력 데이터들의 관련 연관성 확보가 엄청나게 복잡해집니다. 이러한 문제에 대한 솔루션으로 적합하면서 사용하기 쉬운 화면과 분석 방법의 제공이 TRACE32의 핵심 경쟁력입니다.

Solution
TRACE32는 디버거로서 소스코드 및 프로그램 흐름을 볼 수 있고, real-time trace와 logic analyzer를 제공해서 각 소자들의 측정 및 정확한 시간정보 또한 제공 받아서, 모든 정보들이 프로그램의 시작에 동기화된 통합된 전력측정 솔루션을 공급하고 있습니다.
모든 저장정보는 시간정보를 가지게 되며, 측정 디바이스들의 저장 값과의 연관성을 보여주어서 각각의 코드라인 별 소모되는 power consumption을 밝힐 수 있도록 해줍니다

전류와 전압의 변화추이에 대한 데이터를 확보하기 위해서 TRACE32 PowerTraceⅡ 또는 PowerIntegrator 또는 CombiProbe에 TRACE32 Analog Probe를 추가 확장 하도록 설계 되어있습니다.
Analog Probe의 특성은;
 -  최대 4개의 전압과 3개의 전류 채널에 대한 real-time 측정
 -  전압과 전류 전력에 대한 측정 영역과 Limit에 대해 real-time trigger
        (구성 방법은 Appendix 참조)

전류측정을 위해서는 Shunt 저항이 해당 device의 전원 라인에 필요하게 됩니다.
이 저항에서의 전압감소는 저항 값에 따라 달라지며, 전류 또한 비례해집니다. 이 전압 값은 TRACE32 Analog Probe에 의해서 측정 됩니다.

이러한 측정 방법이 보편적으로 사용되는 방법이며 전류, 전압 그리고 shunt 저항 값은 그래픽 유저 인터페이스를 통해 제어할 수 있다. 전력은 수집된 전류, 전압 값에 따라 계산되며 고정된 전압으로 계산되도록 할 수 있다.



전류, 전압 그리고 소비전력은 시간에 연관해서 그래프 또는 테이블로 표시되어 지며 모든 화면(프로그램 흐름, 챠트, 전류, 전압, 전력)은 시간과 동기화 되어 서로 연동(track) 되어 집니다
만약에 어떤 임의의 시점을 선택한다면 다른 윈도우들도 자동으로 해당되는 시점을 기반으로 re-flash되어 표시되어 집니다.
아래는 8개의 LED들이 연속적으로 스위칭 되고 Sign파 전압이 생성 되는 예제입니다.
그래프 ①은 현재시점의 에너지가 계단 형태로 증가됨을 보여주고 있으며 전압의 형태가 Sign파라는 것은 전압-시간 그래프를 통해서 확인할 수 있습니다.
전류 ① 전압 ②그리고 프로그램 차트 ③화면에서 LED3_on 함수가 검정색 수직라인에 정렬되어 있음을 볼 수 있고 TRACE.List 화면 ④에서는 이와 연관된 소스코드가 수평 바에 의해서 동기화 되어 표시되고 있음을 확인 하실 수 있습니다.



통계적인 분석은 각각의 프로그램 정지 후에 자동으로 수행되며 여기에서는 실행된 개별함수에 대해서 소모되는 소비전력의 최소, 최대, 평균 값에 대한 정보를 제공합니다. 전체 소비전력에서의 점유율 또한 각각의 함수에 대해서도 계산되어 가장 많은 전력소모의 원인이 되는 프로그램 파트를 쉽게 파악할 수 있도록 해줍니다이 bar챠트 ⑤는 LED8_on 함수가 가장 높은 전력소모가 되었음을 의미합니다.



이 bar챠트 ⑤는 LED8_on 함수가 가장 높은 전력소모가 되었음을 의미합니다.

전압과 전류에 대해 trigger 시점을 정의할 수 있으며 내부 trigger unit에 의해서 저장의 시작 및 선택적인 저장 또한 가능해집니다. 또한 trigger 신호는 실시간으로 프로그램을 정지 시킬 수 있어서 이는 현재 전류피크의 원인을 매우 빠르게 파악하도록 도와줍니다.

또한 TRACE32는 타 장비와의 연동이 가능한 API를 제공하고 있어서 열 감지 카메라와 같은 장비와 연동하면 앞서 소개한 소모전력이 변동될 때 어떤 프로그램이 실행되고 있으며, 이 경우 어떤 디바이스가 동작을 하고 있는지 또는 문제가 발생이 되는지를 열 감지 영상과 함께 볼수 있도록하여 정상적인 전류 이상으로 발생하는 소자의 문제 또한 검출이 용이하도록 해줍니다 .

Summary
에너지 분석을 위한 통합된 소비전력 측정 솔루션은 개발자들로 하여금 프로그램 코드와 그에 따른 전류/ 전압 소비의 상관관계를 검출하는데 사용하기 쉽고 신뢰할 수 있는 결과를 도출하도록 도와줍니다.
이 새로운 기능은 기존의 TRACE32의 사용자 인터페이스에 통합되어 있으며 기존에 사용되고 있는 분석장비(PowerTrace, Integrator, CombiProbe)에서도 쉽게 적용할 수 있습니다. 핵심 모바일 폰 제조사와의 긴밀한 협력의 결과로 실질적인 적용이 가능해졌으며 TRACE32는 한번 더 이 분야의 개발 툴로서의 혁신적인 기술과 유용성을 증명하게 되었습니다.
새로운 TRACE32 Analog Probe 또한 기존의 모듈구조 컨셉이 그대로 적용되어서 이미 사용 중인 기존고객들에게도 유연한 확장성을 제공, 이러한 솔루션 개발을 통해서 지속적인 고객가치를 제공 하고 있으며 앞으로도 끊임없이 노력하고 있습니다.

관련 문의는 trace32@mdstec.com으로 해주십시오.

Appendix – Hardware Configuration Options

#Option 1



#Option 2



#Option 3



#Option 4

고객문의 기술지원/
데모/
SW요청
031-627-
3116