유-무선 시스템의 설계자들은 전력 효율에 주의를 기울여야 한다. 휴대형 기기의 늘어난 배터리 수명과 길어진 통화 및 동작 시간은 분명한 장점이다. 그러나 전력 조건을 낮추려면 소형의 배터리를 사용하거나, 다른 배터리 기술을 선택해야만 한다. 또한 열 문제가 완화될 수도 있다. 유선 시스템의 경우, 설계자는 전원 공급장치 크기, 냉각(cooling) 조건, 팬 잡음을 감소시킬 수 있다. 특히, 설계팀이 1개 이상의 프로세서를 탑재시키기를 원할 때, 전력 효율은 성능을 향상시키는 추가 부품을 위해 공간을 필요로 한다. 그러나 이 사실은 종종 간과되기도 한다.DSP 프로세서가 포함되거나 까다로운 시스템 전력 예산을 충족시킬 수 있는 임베디드 설계는 DSP, 동작 시스템, 지원 소프트웨어에 특정화된 기술을 통해 전력을 보존할 수 있다. 따라서 기존 기법 이상으로 DSP나 듀얼 프로세서 설계에서는 전력 절감의 측면에서 많은 장점을 얻을 수 있다. 이 글에서는 기존 기법과 DSP에 특화된 기법 모두를 다룰 예정이다. 이에 앞서, 논의에 사용될 조건과 원칙을 규정해야 한다.전력소비의 기본원리CMOS(Complementary Metal-Oxide Semiconductor) 회로의 총 전력소비는 동적 및 정적 전력 모두의 합계이다. Ptotal = Pactive + Pstatic동적 전력소비는 게이트가 하나의 로직 상태에서 다른 로직 상태로 변경될 때 발생한다. 스위칭 전류의 결과(내부 노드를 충전하기 위해 필요)이며, 전류(P와 N채널 트랜지스터가 순간적으로 켜질 때의 흐름)를 통한다. 구동 전력은 다음 식에 가깝다.Ptransient ~ Cpd × F × Vcc2 ×Nsw여기서 Cpd는 동적 커패시턴스이며, F는 스위칭 주파수, Vcc는 전원 전압, Nsw는 비트 스위칭 숫자이다. 안정적인 동작을 위해 전압(Vcc)이 최대 스위칭 주파수(F)를 결정짓는다.이를 통해, 두 가지의 중요한 개념이 발생한다.· 구동 전력은 스위칭 주파수와 1차적인 관련이 있으며, 전원 전압과 2차적 관련이 있다.· 최대 안전 스위칭 주파수는 전원 전압에 의해 결정된다.이 글에서는 특정 주파수 및 전압 페어를 ‘세트포인트(setpoint)’로 나타낼 것이다.CPU 클록을 감소시키는 것은 동작 중인 전력소비에서 비례적인 감소값을 가지는 것으로 알려져 있지만, 추가적인 감소는 전압을 낮춤으로써 2차 관계로 형성될 수 있다. 이것은 가능한 한 오랫동안 성능에 영향을 미치지 않으면서 감소된다. 그러나 주어진 작업 세트의 경우, CPU 클록 속도를 감소시키는 것은 동일한 작업 세트의 실행 시간을 비례적으로 확장시킨다. 애플리케이션을 주의 깊게 분석하는 것은 실시간 요건을 만족시키는 위해 필요하다.정적 전력소비는 트랜지스터의 누수로 발생된다. 지금까지의 CMOS의 정적 전력소비는 구동 전력과 비교해 무시해도 될만한 정도였다. 임베디드 애플리케이션은 구동 전력을 제거하기 위해, 비활성 동안 CPU 클록을 정지시킬 것이며, 이는 총 전력소비를 감소시킨다. 그러나 차세대 설계에서는 정적 전력에 더욱 주의를 기울여야 한다. 새로운 고기능 트랜지스터가 누수 전류에서 상당히 증가시키고 있기 때문이다.임베디드 시스템을 위한 기법일반적인 전력 관리 기법들은 다음과 같은 2개의 카테고리로 분류될 수 있다. 업-프론트 하드웨어 설계 시간 결정과 시스템 동작시간에서 구현되는 기법이다.물론 설계 초기에 이루어지는 결정은 성능과 전력을 충족시키기 위해 중요하다. 다음에 나열 할 가장 중요한 조건 10가지는 하드웨어 선택, 설계 전략, 아키텍처 옵션 등과 관련이 있다. 대부분이 임베디드 시스템에 기본적이며, 기타 요소들은 약간 고려해야 할 필요가 있다. 이러한 결정들이 설계 초기 단계에 이루어진다고 하지만, 일부는 설계 과정에서 다시 확인하기 위해 필요하다.· 저전력 부품 선택하기· 전압 및 클록 도메인 구분하기· 전압 및 주파수 스케일링 구현하기· 보유 전압의 게이트 구현하기· 소프트웨어 별로 폴링(polling)을 완화하는 인터럽트 활용하기· 계층적 메모리 모델 사용하기· 출력에서 부하 감소시키기· 전력이 공급되지 않는 비결정적인 리소스로 부팅하기· 활성 PLL의 수 최소화하기· 신속히 대안 주파수를 선택하기 위한 클록 디바이더 사용하기각 항목에 대한 세부 사항은 표 1을 참조하면 된다.시스템 아키텍처가 결정된 이후, 설계팀은 시스템의 동작 환경에 주의를 기울여야 한다. 리스트는 14개 항목만 나열하고 있으며, 대부분은 설계 과정으로써 지속적인 관심이 필요하다.· 필요하지 않을 때 게이트 클록 끄기· 부팅될 때 불필요한 전력 사용처 끄기· 필요할 때만 서브시스템에 게이트 전력 공급· 주변기기의 저전력 모드 활성화시키기· 주변기기의 동작 검출기 활용하기· 자동 리프레시 모드 이용하기· 주파수 및 전압에 필요한 최소량을 찾는 벤치마크 애플리케이션· 총 동작에 기반한 CPU 주파수 및 전압 조정하기· 예측된 작업 부하를 조절하기 위해 CPU 주파수 및 전압을 동적으로 조절하기· 코드의 실행 속도 최적화하기· 저전력 코드 시퀀스 및 데이터 패턴 사용하기· 고속 메모리 요건을 감소시키는 코드 오버레이(overlay) 이용하기· 전력 변경에서 감소된 성능 모드로 전환하기· 전력소비를 위해 정확성 교환하기이러한 요소들은 DSP를 갖춘 하나의 시스템을 포함해 임베디드 시스템에 대한 보드에 적용된다. 적어도 개념적으로 대부분의 숙련된 설계팀에게 익숙해야 한다. 각 항목에 대한 세부 정보는 표 2에 나타나 있다.표 1과 2에서 동작과 전략을 구현하는 것은 실행보다 더 쉽다. 전력소비를 우선하여 설계할 때의 혼돈은 성능을 저하시키거나 시스템을 불안정하게 할 우려가 있다. 표 3은 기본적인 전력 관리 기법 활용과 관련된 기본적인 과제를 리스트로 보여준다.DSP RTOS를 도울 수 있는 방법숙련된 임베디드 설계자는 각각의 설계로 설계팀의 시간과 노력을 낭비하는 대신, 표 2에 제시된 기법들이 동작 시스템에서 문제를 해결해 줄 수 있다는 것을 이미 알고 있다.특히, 가장 중요하면서 널리 알려진 기법들의 서브세트(subset)는 RTOS로 통합될 수 있다. 여기에는 정지활동(idling), 구동 전력 제거, 디바이스 드라이버 공지, 메모리 관리, V/F 스케일링과 관련된 기법들이 포함된다. 그러나 이러한 기법을 RTOS에 구축하려면 문제가 발생한다. 그 이유는 설게 목적이 다르기 때문이다. 개발자들은 서브세트에서 혼합하고 조정해야 할 옵션을 고려해야 한다. 구현의 주된 목적은 효율성 및 유연성이어야 하며, 운영 시스템과 커플링이 자유로워야 한다.특성화, 조항(caveat), 기존 RTOS를 위한 전력 관리 모듈 성능의 우수한 사례로, TI의 DSP/BIOS™ 운영 체제용 PWRM (Power Manager) 구현을 들 수 있다. 아래 기술된 구현이 DSP/BIOS를 위한 것이라고 해도, 이 개념은 다른 운영 시스템에도 쉽게 확대될 수 있으며, 또한 OS 없이 애플리케이션 환경에도 적용될 수 있다.전력 매니저(Power Manager) 요구조건전력 매니저 구현을 위한 핵심은 다음과 같다.· 관리 결정은 애플리케이션을 촉발시켜야 하며, OS를 촉발시키는 것은 아니다· 동작은 대부분의 애플리케이션 코드에서 투과성이 있게 진행되어야 한다.· 매니저는 전압 및 주파수(V/F) 스케일링을 지원해야 하며, 칩 정지상태(idle) 및 대기 모드의 장점을 이용해야 한다.· 전력 관리 사례의 프로세싱은 애플리케이션 코드, 드라이버, OS 내에서 조율되어야 한다. 클라이언트는 특정 사례가 발생할 경우 공지를 받아야 한다.· 특징들은 스레드 컨텍스트(thread context)와, 특정 클라이언트의 여러 사례의 경우(예: 디바이스 드라이브의 사례)에 이용될 수 있어야 한다.· 전력 이벤트의 클라이언트를 공지할 때, 전력 매니저는 이벤트 프로세싱의 지연된 완료를 지원해야 하며, 다른 클라이언트에 공지하면서 지연된 클라이언트로부터 완료 신호를 기다려야 한다.· 매니저는 다른 성능을 가진 다른 플랫폼으로 확장시킬 수 있어야 하며, 휴대할 수 있어야 한다.상기 언급된 핵심적인 조건을 따르기 위해, 전력 매니저는 그림 1에서처럼 DSP/BIOS에 수반되는 모듈로써 추가된다.전력 매니저는 커널 외부에 있으며, 태스크와 반대 위치에 있다. 또한 애플리케이션 제어 스레드 및 디바이스 드라이버 관계에서 실행하는 API 세트이다. 이것은 커널이 수정될 필요가 없다는 것을 의미한다.그러나 CPU 클록과 OS 타이머 클록이 커플되는 플랫폼에서 추가적인 루틴은 DSP/BIOS 클록 모듈(CLK)을 위해 필요하다. 이것은 주파수 스케일링을 위해 중요한데, 그 이유는 루틴이 PWRM의 클라이언트로써 OS 클록을 적용하는 것이 가능하게 하기 때문이다.전력 매니저 인터페이스는 클록 정지상태 구성 레지스터를 쓰고 읽음으로써, CPU 클록 속도 및 전압 레귤레이션 회로를 제어하는 플랫폼 특정 PSL(Power Scaling Library)을 통해, DSP 하드웨어로 즉시 인터페이스 한다. PSL은 주파수 및 전압 제어 하드웨어의 로우-레벨 구현의 세부 항목에서 전력 매니저와 애플리케이션의 나머지를 분리시킨다.전력 매니저는 애플리케이션과 관련된 몇 가지 직무가 있다. 이것은 설계 엔지니어에 따라 통계적으로 설정되며, 동작 시에 역동적으로 요구된다.· 정지상태의 클록 도메인 - 전력 매니저는 활발한 전력소비를 감소시키기 위해 특정 클록 도메인의 정지 상태를 가능하게 하는 인터페이스를 제공한다. 추가적으로, 이것은 OS 아이들 루프(idle loop) 내에서 적절한 포인트에 DSP의 CPU와 캐시를 자동으로 정지하는 메커니즘을 제공한다.· 부팅 시 전력 절감 - 전력 매니저는 전력 절감 기능을 규정할 수 있는 후크(hook) 메커니즘을 포함한다.· 전압 및 주파수(V/F) 스케일링 - 전력 매니저는 애플리케이션이 DSP 코어의 동작 전압과 주파수를 역동적을 변화시킬 수 있는 인터페이스를 제공한다. 애플리케이션은 대응되는 프로세싱 요구조건에 기반한 전력소비를 조절하기 위해 이 기능을 사용할 수 있다. 파워 매니저 API를 통해 애플리케이션은 전압이 주파수와 함께 조절될 수 있는지, 실행이 하강 전압 변환 기간 동안 지속할 수 있는 지에 대해 규정할 수 있다. (이 레이턴시는 부하에 의존적이며, 대규모일 수 있다; 프로세서는 하강 전압 변환 기간 동안 안정적이며, 애플리케이션 실행은 지속될 수 있음) 전력 매니저는 V/F 세트포인트 속성과 레이턴시의 질문을 가능하게 하는 API를 포함하기도 한다.· 대기 모드 - 전력 매니저는 동작하지 않는 동안 전력을 절감시킬 수 있도록 맞춤형 대기 모드를 이끄는 구성 및 동작 인터페이스를 포함한다.· 전력 이벤트 등록 및 공지 - V/F 스케일링, 대기 모드 및 애플리케이션 전반에 걸친 이벤트를 조율하기 위해, 전력 매니저는 등록과 공지 메커니즘을 보유하고 있다. 이 메커니즘을 통해 애플리케이션 코드, 주변기기 드라이버, 패키지 컨텐츠, OS 클록 모듈 등의 실체가 영향을 미치는 특정한 이벤트에 대해 공지를 등록할 수 있다. 이러한 전력 사고의 예에는 ‘V/F 셋포인트 변경에 대하여’, ‘V/F 세트포인트 변경 완료’, 대기 모드로 바뀜’, 대기 모드에서 벗어남’, ‘전력 실패’ 등이 포함된다. 공지 과정은 전력 매니저의 중요한 기능이다. 이 기능은 공지가 더 이상 필요하지 않을 때, 등록 되지 않을 수 있다.전력 매니저 API동작 애플리케이션 프로그래밍 인터페이스는 표 4에 정리되어 있다.전략적인 구현전력 효율에 대한 기반이 확보되었기 때문에, 전력 효과적인 애플리케이션을 개발하고, 이러한 기법을 활용해 OS 내에서 지원할 수 있는 전략을 정의해야 한다. 제시된 전략은 11단계로, 반복적이다. 각 단계는 전력 목적이 충족되지 않았을 때나 추가적인 동작 기법이 애플리케이션 전력 예산을 충족시키기 위해 필요할 때 다시 실행된다.· 시작 지점에서 전력 효율 고려하기· 전력 효율적인 부품 선택하기· 전력 및 하드웨어를 갖춘 실험 장치로 모델 및 측정하기· 전력 관리 및 측정을 위해 수작업으로 하드웨어를 설계하기· 효율을 위한 SW 설계하기· 전력 관리 기능의 편리한 ON/OFF 스위치 구현하기· 전력 관리 없이 처음으로 동작하기· 반복적으로 ON 기능 켜고 페이오프(payoff) 측정하기· 코드 생성 최적화를 작동시키기, 코드 및 데이터 재배치하기, ‘핫 스팟’ 조정하기· 최소 주파수 및 전압을 위해 캘리브레이트(Calibrate) 하기· 모든 전력 관리 기능을 활성화시키고 배치하기이 전략은 표 5에서 더욱 자세하게 정리되어 있다. 이제 이 전략이 어떻게 효과적으로 적용될 수 있는지 알아보자.오디오 애플리케이션 사례OTS(off-the shelf) DSP 평가 모듈인 5509A EVM PLUS 보드는 DSP 코어 및 전체 시스템 전력 측정을 위해 V/F 스케일링 및 후크 지원을 포함하며, 테스트 플랫폼으로 선택된다.EVM이 사용하기 쉬운 평가 플랫폼으로 설계되었다는 점을 명심해야 한다. 상당수의 EVM은 최적의 전력소비 구성을 제공하지 않는다. 또 결과를 평가할 때 EVM이 구성하기 쉽게 설계되었기 때문에 이를 명심해야 한다. EVM에서 측정된 전체 시스템 전력 번호는 일반적으로 배치된 플랫폼의 번호보다 더 높을 것이다. 그러나 EVM은 DSP 코어 레벨 및 시스템 레벨 모두에서 다양한 기법의 효율을 측정하는데, 여전히 실용적인 플랫폼이다.단계 1은 설명이 거의 필요 없다. 단계 2와 4는 특정 EVM을 사용함으로써 본질적으로 완성되며, EVM은 폭넓게 이용할 수 있는 플랫폼의 값을 보여준다. 단계 3(실험)은 EVM에서 실행되며, 서로 다른 기법들의 페이오프를 측정한다(예: 온/ 오프 칩 액세스를 위한 코어 및 시스템 전력, DMA v대 CPU 전송, 정지된 주변기기 효과 및 클록 도메인 등).아키텍처이 사례는 그림 2에서 다이어그램으로 나타나 있다.오디오는 샘플되어 멀티 채널 버퍼 시리얼 포트(McBSPs)에서 다시 재생된다. DSP의 DMA 엔진은 McBSPs 내/외부에서 샘플을 전송한다. 스테레오 오디오 데이터는 RxSplit 작업을 통해 2개의 스트림으로 나누어지며, 프로세싱 작업에서 처리된다. DIP 스위치는 G726 인코드/디코드 프로세싱 또는 간단한 볼륨 제어를 선택하기 위해 사용된다. 그 다음 2채널은 TxJoin 작업에서 결합되어 스피커로 출력된다.제어 작업은 모드 스위치가 이루어져야 하는 경우를 결정하기 위해 DIP 스위치를 주기적으로 점검시킨다. (예: 프로세싱 모드로 변경하거나 대기 상태로 전환) 애플리케이션 모드에 따라, 제어 작업은 CPU를 점검할 수도 있으며, 적당하면 V/F 세트포인트를 변경시킨다.주요 전력 관련 설계 결정은 다음과 같다.· OS 스레딩 및 블록킹 원형을 사용하면 클록은 정지될 수 있다.· 효과적인 배경 데이터 스트림을 위해 DMA를 사용한다. CPU는 DMA 블록 전송의 완료일 때 만 중단되며, 시리얼 포트의 각 데이터 샘플 인/아웃에서는 중단되지 않는다.· 시리얼 포트를 마스터하는 공유형 외부 클록을 사용한다. (시리얼 포트의 재프로그래밍은 주파수 스케일링 DSP의 CPU를 위해 필요하지 않다)· 코덱 디바이스 드라이버를 ‘후크’하기 위해 콜백(callback)을 등록한다. 따라서 코덱은 애플리케이션이 딥 슬립(deep sleep) 상태일 때 전력 공급이 중단될 수 있다.· 오디오 하강이 발생하기 전, 세트포인트에 대한 주파수 및 전압을 막기 위해 캘리브레이션을 사용한다.· 전력 매니저의 클록 적용 기능을 사용해 주기적인 기능들은 주파수 스케일링을 따르는 특정 속도에서 지속적으로 동작한다.· DSP 재부팅 사이에서 파워 매니저의 “딥 슬립(deep sleep)” 인터페이스를 이용한다.결과전체 결과에 대한 정리가 표 6에 나와 있다. 모드 대 기존 모드의 주요 차이점은 굵은 텍스트로 표시 되어있다.· 모드 #1은 기준 측정으로, 모든 코드 오프 칩을 갖추었다.· 모드 #3은 부트타임 전력 절감(DSP의 CLKOUT 신호 끄기, 사용하지 않는 타이머의 자동 아이들링(auto-idling) 구성하기, 보드의 LED 끄기)을 비롯해 BIOS 정지된 루프 기간 동안 공전이 포함되어, DSP 코어 레벨에서 25%나 절감할 수 있다.· 모드 #4는 세트포인트가 144MHz@1.4V로 낮아질 때의 소비를 보여주며, 오디오 프로세싱을 구현하면서 실시간 데드라인을 준수해 DSP 코어 레벨에서 52%나 절감한다.· 모드 #5는 애플리케이션이 대기 모드일 때, 소비를 제시한다. 외부 코덱이 전원이 꺼져있어, 세트포인트 세트는 최소 전압이다. 신속한 시작을 위해 최대 주파수를 가지며, 클록 게이트 딥 슬립 모드에서 DSP의 특징을 통해 361μW의 대기 소비의 결과를 가져온다.RTOS에 높은 페이오프(high-payoff) 기법에 대한 지원을 통합하는 것은 설계자에게 특정 애플리케이션에 맞는 기법을 선택할 수 있도록 옵션을 제공하여 최적으로 달성된다. OS에서 이 같은 지원을 통해, 개발자들은 쉽고, 안전하고, 저비용으로 애플리케이션의 전력 효율을 향상시킬 수 있다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지