2009년 6월 18일 목요일

시스템 전력 소비를 최소화하는 코어텍스-M0 기반 MCU의 활용

NE-Korea Edition

최근 전자업계의 가장 큰 화두는 '저전력'이라고 해도 결코 과언이 아니다. 특히 배터리로 구동하는 기기에서는 전력소모를 최소화하기 위한 설계가 무엇보다 중요하다. 최근 NXP 반도체가 발표한 ARM의 저전력 코어텍스-M0 코어 기반 'LPC1100' 마이크로컨트롤러는 이러한 애플리케이션의 저전력 요건을 충족한다. 이 글에서는 LPC1100 마이크로컨트롤러의 저전력 특성에 대해 소개한다.

마이크로컨트롤러의 전력 소비를 이해하기 위해서는 CMOS 디바이스의 기본적인 전력 소비 요소들을 이해하는 것이 중요하다. 전력 소비는 크게 동적 소비와 정적 소비로 분류된다.

동적 전력 소비

CMOS 디바이스의 동적 전력 소비는 일차적으로 다음과 같이 정의할 수 있다:



f = 동작 주파수
C = 부하 용량
V = 공급 전압 VDD

그림 1은 단순한 CMOS 인버터를 나타낸 것이다. 이 인버터가 스위치 되면 부하 용량(Load Capacitance)을 충전하거나 방전하고 이로 인해 전력이 소비된다. 부하 용량은 인터커넥트 용량과 게이트가 구동하는 모든 디바이스의 게이트 용량의 합이다. 디바이스가 스위치 되지 않으면 소비되는 모든 전력은 디바이스의 누설전류가 된다.

따라서 주어진 공정 노드에 대해 전력 소비는 전압의 제곱에 비례하고 주파수와 선형 관계를 갖는다. 전력 소비가 주파수와 선형적인 관계를 갖는다는 특성을 이용하면 마이크로컨트롤러에서 통상 사용되는 MHz당 전류 소비량를 구할 수 있다.

저전력 디바이스의 경우, 이 값은 μA/ MHz로 표시하는데 일반적으로 200μA/ MHz에서 300μA/MHz 이상까지 되기도 한다. 측정 방법에 대한 표준이 없기 때문에 이 값은 어느 정도 오차를 포함한다. 핵심은 전류 소비량에 비해 얼마나 많은 작업을 수행하느냐이며, 보다 포괄적인 측정의 경우에는 일정한 산출 값에서 얼마나 많은 에너지가 소비되느냐이다. 이러한 유형의 측정은 아직 광범위하게 사용되고 있지 않기 때문에 여기서는 μA/MHz 계산법을 사용한다.

디지털 CMOS 디바이스가 MHz 당 사용하는 전류량은 해당 디바이스가 소비하는 전류량의 전부가 아니다. 디지털 도메인을 지원하는데 필요한 아날로그 회로가 존재하기 때문이다. 여기에는 타이밍 구성 요소와 전력제어 구성 요소 그리고 메모리와 주변장치 등이 포함된다. 타이밍과 전력제어 그리고 메모리 구성요소는 마이크로컨트롤러 플랫폼에 포함되며 선택사양이 아닌 반면, 아날로그 주변장치는 기능 세트의 일부로서 마이크로컨트롤러 제품군에 따라 차이가 있다.

표 1은 NXP 반도체가 개발한 ARM 코어텍스-M0 기반 저전력 마이크로컨트롤러인 LPC1100에서 사용되는 타이밍 구성요소를 나타낸다. 표의 항목들은 전력 소비가 적은 것부터 많은 것 순으로 정렬되어 있다. 모든 아날로그 설계에서 볼 수 있듯이, 정확성과 소비 전류량 간에는 상쇄 관계가 존재한다. LPC1100은 전류 소비량 대비 정확성의 상쇄를 조정할 수 있게 해주는 유연한 구조를 갖추고 있어, 설계자는 목표로 하는 애플리케이션에 맞춰 구성요소들을 조정할 수 있다.

표 2는 LPC1100의 전력 제어 구성요소를 설명한 것이다. 타이밍 구성요소에서와 같이, 전력 제어 구성요소 또한 애플리케이션 요구에 따라 조정이 가능하다.

코어의 전류 소비는 슬로프(Slope)가 아니라 코어를 지원하기 위한 아날로그 장치에서 비롯되는 오프셋(Offset) 전류이다. 경우에 따라 이를 '제로-헤르츠 전류'라 부르기도 한다.

LPC1100은 유연한 클러킹 아키텍처를 가지고 있기 때문에 이 전류는 고정되어 있지 않다. 주파수가 낮아질수록 필요한 동작 주파수를 생성하는데 필요하지 않은 클러킹 구성요소를 끄면 오프셋 전류를 줄일 수 있다. 일례로, LPC1100은 0~10MHz 범위의 느슨한 저전력 오실레이터로 운용할 수 있기 때문에 보다 정확한 내부 RC 오실레이터를 작동시켜 1~12MHz의 주파수를 제공할 수 있다.

누설 전류

누설 전류는 디지털 로직이 스위칭 하지 않을 때 CMOS 접합이 소비하는 전류를 말한다. 이는 공정 노드와 그 노드 상의 라이브러리가 얼마나 최적화되었는지에 따라 결정된다. LPC1100의 경우, 라이브러리들은 누설 전류를 적게 만들 수 있도록 최적화되어 있다. 또한 전력 소모를 줄일 수 있는 다양한 파워다운 옵션들이 제공되기 때문에 이를 통해 사용자들은 누설을 보다 최적화할 수 있다. 이러한 모드들에서는 CMOS 접합 누설 이외에 다양한 아날로그 기능들을 제어할 수 있다(표 3).

슬립 모드

슬립 모드에서는 코어의 클럭은 꺼지지만 주변장치는 계속 사용할 수 있다. 이 모드에서 전력은 누설 전류가 아니고 작동 중인 주변장치의 동적 전류이다. 이 모드에서는 데이터 수신이 가능하지만 코어는 수신 데이터를 정적인 상태로 유지하고 있다가 필요할 때 작동을 개시할 수 있다.

파워다운 모드

디지털 로직의 모든 클럭들을 끄고 아날로그 서브시스템들을 잘 제어하면 애플리케이션에 맞춰 기동 시간(Wakeup Time)을 유연하게 조정할 수 있다. 최저 파워다운 모드에서는 모든 아날로그 클러킹 요소가 꺼진다. 기동 시간은 어떤 기동 클럭 소스를 선택하느냐에 의해 결정된다. 기동 시간이 가장 빠를 때는 저전력 오실레이터를 선택할 때이며 가장 느릴 때는 크리스털 오실레이터와 PLL을 선택할 때이다.

딥 파워다운 모드

이 모드에서는 소규모 올웨이즈온 도메인 레지스터를 제외한 마이크로컨트롤러의 모든 내부장치 전원이 꺼진다. 올웨이즈온 도메인 레지스터는 마이크로컨트롤러가 딥 파워다운 모드로 들어가기 전에 발생한 일들에 대한 정보를 저장할 수 있는 레지스터들이다. 이 모드에서 기동은 기동 핀(Wake Up Pin)이나 재설정을 통해 이루어진다.

코드 효율성

LPC1100은 ARM의 새로운 코어텍스-M0 코어를 사용하는데, 이 코어는 동적 전류뿐만 아니라 누설 전류에도 엄청난 영향을 끼친다. 단순 명령 집합에 초점을 맞추면 동적 전류가 줄어든다. 코어텍스-M0는 대부분 썸(Thumb) 명령을 사용한다. 이 명령은 16bit 명령이며 코어에 의해 32bit 명령으로 해석된다. 코어는 또한 게이트 개수를 줄이고 클러킹을 최소화하기 위해 간소화된 버스 인터페이스를 사용한다.

또한, 코어는 클럭 게이팅과 간소화된 라이브러리 요소를 활용할 수 있도록 설계되어 있다. 이 모든 요소들을 고려해 볼 때, 코어는 70μA/MHz 이하의 레벨을 갖는다. 앞서 언급한 바와 같이, 이 숫자는 이 전류로 얼마나 많은 작업을 수행할 수 있는지에 관한 정보를 포함하고 있지 않으므로 다소 무의미하다.

그러나 코어텍스-M0 코어는 0.9DMIPS/MHz의 레벨을 갖는데 이는 ARM7보다 높은 레벨이다. 이 코어를 사용하면 게이트 개수가 8bit 및 16bit 코어와 동일하게 되므로 누설 전류가 보다 증가할 수 있다. 누설 전류는 게이트 개수와 비례하므로, 코어 로직에서의 절감량에 따라 크게 영향을 받는다.

저전력 시스템 설계 시 고려 사항

마이크로컨트롤러 전력 모드 사용 방법은 애플리케이션에 따라 결정된다. 전원이 항상 공급되고 있지만 용량이 제한된 경우, 마이크로컨트롤러의 클럭은 항상 켜둘 수 있다. LPC1100은 처리 요구에 따라 사용중인 주파수를 바꿀 수 있다. 30MHz에서의 LPC1100 전류 소비는 6mA로 정해져 있다. 저전력 내부 오실레이터로 1MHz로 실행할 경우, 이 값은 200μA를 약간 웃도는 정도의 값으로 낮출 수 있다.

그러나 전력 소비량을 최소화할 필요가 있는 많은 애플리케이션들은 피워다운 모드와 딥 파워다운 모드에 의존해야 한다. 이러한 애플리케이션들은 대부분의 시간을 데이터 처리를 기다리며 대기 상태로 있게 된다. 프로세서는 재빨리 기동하여 필요한 데이터를 처리하고 다시 대기 상태로 되돌아 가야 한다.

이들은 대부분 배터리 전원을 이용하는데, 무엇보다 배터리 사용 시간을 늘리기 위해 평균적인 전류 소모를 줄이는 게 중요하다. 평균 전류를 낮추기 위해서는 가능한 빨리 데이터를 처리하여 듀티 사이클을 줄일 수 있어야 한다. 코어텍스-M0는 32bit 프로세서이기 때문에 소용량 프로세서보다 훨씬 빨리 연산을 처리할 수 있다.

그림 2는 처리 성능이 평균 전류에 어떻게 영향을 미치는지를 보여준다. 이 그림에서는 피크 전류와 파워다운 전류가 다양한 유형의 프로세서에서 동일한 것으로 가정하고 있다. 코어텍스-M0 코어는 더 낮은 비트 폭의 프로세스 평균 전력의 1/2~1/4의 용량을 갖는다. 코어텍스-M0에 의해 LPC1100은 200μA/ MHz의 피크 전류를 얻을 수 있다.

낮은 평균 전류는 배터리 수명을 연장하는 데 있어 매우 중요한 요인이다. 이는 대기 전류가 낮고 듀티 사이클이 작다는 것을 의미한다. LPC1100은 300nA 미만의 딥 파워다운 전류와 200μA/MHz의 피크 전류를 갖는다.

그림 3은 듀티 사이클이 배터리 수명에 미치는 영향을 보여준다. 이러한 연산에 사용되는 배터리는 230mAh 버튼형 리튬 전지다. 이 그림은 대기 전류가 배터리 수명에 미치는 영향과 배터리 수명이 3년을 넘기는 데 필요한 듀티 사이클의 종류를 보여준다. 평균 전류는 2mA의 피크 전류를 가정하고 있는데, 이는 LPC1100이 10MHz에서 동작함을 뜻한다. 또한, 대기 전류를 낮추면 가동 시간이 연장되기 때문에 여기에는 가동 시간 효과도 포함되어 있다. LPC1100 딥 파워다운 모드가 200ms 기간 중 1ms 처리 시간 동안 사용될 경우 배터리는 3년 동안은 충분히 쓸 수 있다.

롭 코사로(Rob Cosaro), MCU 제품라인 시스템 아키텍처 애플리케이션 그룹 매니저|NXP 반도체

====================

출처: http://www.nekorea.co.kr/article_view.asp?seno=5678

댓글 없음: