최근 시장에서는 ‘초저전력(Ultra-Low-Power; 이하 ULP)’을 내세운 수많은 마이크로컨트롤러(MCU)들이 출시되고 있다. 초저전력 MCU의 목적은 모든 애플리케이션의 전력소비를 최적화하여 줄여주고, 배터리 구동 시스템이라면 배터리 수명을 늘려주어야 한다. 이를 위한 기법이 몇 가지 있는데, 전력 소비가 최적화된 액티브 모드와 여러 단계의 슬립 모드를 들 수 있다.


글 : 하킴 자파(Hakim Jaafar) / 초저전력 담당 마케팅 매니저,
자료제공 : ST마이크로일렉트로닉스(www.st.com)

 

과거에는 이러한 슬립 모드가 MCU의 환경적인 요인으로 중요했었다. 그러나 새로운 아키텍처, 새로운 MCU 코어 및 공정 기술을 사용하게 되면서 마이크로컨트롤러도 진화하게 됐다. 결과적으로 슬립 모드의 이점이 새로운 MCU 시장에서 크게 요구되고 있다.

액티브 모드나 슬립 모드의 종류에 상관없이 설계 엔지니어는 목표로 하는 애플리케이션의 유형을 고려하여 양 모드 사이에 적절한 균형을 이뤄야 할 것이다.



액티브 모드: 무엇을 위한 것인가?
액티브 모드는 주로 ㎂/㎒의 전력 소비율로 정의를 내리지만 이는 ULP 영역에서는 큰 관련이 없다. 전체적인 그림을 보기 위해서는 플랫폼 성능에 대해서도 알아야 한다. 코어마크(Coremark)는 MCU의 성능에 대해 알 수 있도록 도와주는 벤치마크 중 하나이다.

벤치마크 점수가 0.6 코어마크/MHz인 16비트 코어 MCU-A와 벤치마크 점수가 2.9 코어마크/MHz인 32비트 코어 MCU-B의 예를 들어 보자. 여기서 MCU-B는 동일한 작업을 MCU-A보다 짧은 시간(5배 정도 적은) 내에 수행할 수 있다. 액티브 모드에서 시간이 더 적게 든다면 소비되는 전력도 적어지기 때문에 전반적인 전력 소모가 줄어든다. 문제는 액티브 모드에서의 전력 소비를 어떻게 줄이는가 하는 것이다.


MCU 코어
앞서 설명됐듯 MCU 코어의 종류가 솔루션의 일부이다. 잘 설계된 코어는 큰 차이를 가져온다. 따라서 32비트 솔루션의 MCU는 16비트 코어 MCU보다 전력 효율성이 좋고, 예컨대 부동소수점 유닛(FPU)을 갖춘 32비트 코어는 표준 32비트 코어보다 빠르다(애플리케이션이 그 같은 강력한 프로세싱을 필요로 할 경우에 한해서지만).

여기서 애플리케이션의 듀티 사이클과 액티브 모드 대비 슬립 모드의 전력소비율을 고려할 필요가 있다. 목표 애플리케이션이 사용 기간의 95%를 슬립 모드에서 보낸다면 전류 소모가 가장 적은 MCU가 적합할 것이다.

예를 들어, 연기 감지 센서의 경우에는 액티브 모드에 비해 슬립 모드의 전류 소비 값이 가장 낮은 MCU를 선택하는 것이 좋을 것이다. 대부분의 시간을 슬립 모드로 동작하다가 온도, 연기 등을 감지하기 위해 일시적으로 활성화되기 때문이다.

그러나 센서 허브와 같이 보다 복잡한 시스템이라면 답이 달라진다. 이런 종류의 애플리케이션에서는 다양한 센서들(자이로스코프, 지자기 센서 등)로부터 오는 엄청난 양의 데이터를 연산해야 한다.

이 경우 성능(FPU를 갖춘 32비트 제품)과 ㎂/㎒ 전력소비율을 둘 다 고려했을 때 최상의 에너지 효율성을 제공하는 MCU가 최선의 선택이 될 것이다. MCU의 슬립 모드가 최적화 되어 있지 않다 해도, 액티브 모드에서의 압도적인 전력 소모율 덕분에 전체적인 전력 소모는 뛰어난 슬립 모드를 갖춘 순수한 ULP MCU보다 적을 수 있다.


플래시 종류
플래시의 속도는 플랫폼 속도에 맞춰 조정되어야 한다. 그렇지 않으면 전반적인 플랫폼 효율이 떨어진다. 예를 들어, 32MHz의 32비트 플래시는 32MHz의 64비트 플래시보다 액세스 속도가 느리므로 전체 플랫폼의 속도가 느려진다. 기술적인 한계가 있어서 대부분의 플래시 메모리는 특정한 주파수 속도에 따른 대기 시간이 요구된다.

이 문제를 해결하기 위해 여러 가지 기법들이 적용되고 있다. 그 중 한 가지는 플래시와 CPU 사이에 메모리 캐시를 삽입하는 것이다. 이 버퍼의 크기를 제대로 잡으면 대기상태 효과는 캐시에 의해 완전히 흡수(absorbed)될 수 있으며 그 결과 최대 주파수에서 최대 성능을 발휘할 수 있게 되어 액티브 모드로 유지되는 시간이 줄어들게 된다.

코어의 주파수, 플래시 메모리의 주파수 등 이 모든 값들의 연관관계를 알아보기 위해서는 MCU의 클럭 트리(Clock tree)를 더 자세히 들여다 볼 수 밖에 없다.

클럭 트리(Clock tree)
클럭 트리는 MCU의 근간이다. 모든 동기식 통신 주변기기들에 연결되며, ADC, DAC 등에 사용된다. 잘 설계된 클럭 트리는 서로 다른 소스 클럭들을 다룰 수 있는 기능을 제공한다. 내부 클럭은 다양한 속도 범위를 제공하기 때문에 훨씬 더 유연하다. 이러한 내부 클럭들의 단점은 대부분 온도의 변화에 따른 정확성의 문제이다. MCU 설계에서 사용 조건에 관계 없이 클럭의 정확성을 유지하기란 매우 힘든 일이다. 이러한 특정 요구를 들어주기 위해 대부분의 MCU 플랫폼들은 외부에 정밀한 소스 클럭(source clock)을 추가할 수 있는 기능을 제공한다.

잘 설계된 MCU는 사용자가 정확한 외부 클럭을 토대로 내부 클럭을 보정할 수 있도록 해주고 이는 임베디드 PLL이나 FLL을 통해서 내부 클럭에 정확성과 유연성을 모두 구현할 수 있다.



공정 기술
액티브 모드에서 소모하는 시간을 줄이기 위해 더 많은 기능들을 내장할수록 디지털 부분의 게이트 수와 관련하여 다이 크기는 더욱 커지게 된다. 디지털 부품이 커질수록 소비 전류도 (주로 액티브 모드에서) 증가하게 된다. 이러한 현상을 극복하기 위해 MCU 설계자들은 보다 작은 공정 기술들을 선택하여 게이트의 전력 소모를 줄인다.

180nm 공정 기반의 MCU 설계는 예컨대 110nm 기반의 동일한 설계보다 많은 전류를 소비하게 된다. 보다 작은 공정 기술들은 액티브 모드에서의 전력 소비를 줄이는 데 도움을 주지만, 누설 전류가 발생하기 때문에 슬립 모드에서는 단점이 되고 만다. 이렇게 생성되는 누설 전류는 슬립 모드에서 상당하기 때문에 설계 시부터 관리되어야 한다.

초저전력 MCU는 어떠한 조건에서도 초저전력 상태를 유지해야만 한다. 따라서 제조업체는 선택해야 한다. 즉, 보다 저렴한 구형 공정 기술을 유지하여 가격 경쟁력을 도모하거나 보다 미세한 공정 기술로 전환하여 액티브 모드와 슬립 모드 양쪽의 전력 소비를 줄이면서 가격 경쟁력을 유지하기 위한 혁신적인 기술을 도입하는 것이다. 두 번째 경우에는 또 다른 과제에 직면하게 된다.


슬립 모드: 필요한 정도는?

슬립 모드는 방대한 개념이다. 모든 슬립 모드는 절약되는 에너지의 양과 액티브 모드로 전환하는 데 걸리는 시간이라는 두 가지 요소로 계량할 수 있다.

이를 인체의 경우에 비유하여 다음과 같이 세 가지 에너지 절약 상태로 구분할 수 있다

- 슬립 모드 1: 의자에 앉아 휴식을 취하는 상태
- 슬립 모드 2: 15~20분간 낮잠을 자는 상태
- 슬립 모드 3: 밤 시간의 수면을 취하는 상태


슬립 모드 1
의자에 앉아 있을 때 인체에 요구되는 에너지는 그다지 많지 않다. 여기서 액티브 모드(달리거나 걷기)로 전환하기 위해 필요한 것은 일어서는 동작 한 가지뿐이다.

이는 코어만 꺼지는 슬립 모드 1에 해당된다. 플랫폼의 나머지 부분은 완전한 동작 상태를 유지한다. 즉 MCU는 여전히 통신 포트를 이용하여 데이터를 캡처할 수 있으며 임베디드 DMA 덕분에 이를 플래시로 전송할 수 있다.

이 모드에서 절약되는 에너지는 많지 않지만 완전한 액티브 모드로 전환하기 위해 요구되는 클럭 펄스 역시 얼마 되지 않는다. 이 모드는 빠른 응답 시간을 요구하는 애플리케이션들과 플래시, RAM, 아날로그 및 기타 주변기기들이 동작 상태에 있어야 하는 애플리케이션을 위한 것이다. MCU 플랫폼의 아키텍처에 따라 절약되는 전력이 액티브 모드에서의 전력 소비량의 50%까지 이를 수 있다. 완전 액티브 모드로부터 슬립 모드 1로 전환하는 것이, 센서나 기타 산업 애플리케이션과 같은 분야에는 좋은 절충안이 될 수 있다.



슬립 모드 2
이렇게 볼 때 슬립 모드2는 보다 복잡하다. 플랫폼에서 가능한 한 많은 부분을 꺼버리되 MCU는 여전히 외부에서 벌어지는 일을 인식하고, 셋팅된 시한 후 깨어나도록 시간을 카운트 할 수 있어야 한다. 이 모드는 유연성을 필요로 하므로 실시간 클럭과 같은 여러 가지 기능들이 요구된다. 이 같은 슬립 모드는 극히 낮은 주파수(1KHz)로 동작하는 단순한 타이머부터 외부의 정밀한 32.768KHz로 구동되는 BCD캘린더, 1초 미만 단위의 카운팅, 자동 보정 기능 등에 이미 다양하게 사용되고 있다.

모두가 최소 400nA의 매우 낮은 전류를 소비한다. 이 같은 슬립 모드는 메모리 내용 중 일부를 사용할 수 있도록 하며 일단 깨어난 후에는 애플리케이션의 재가동 속도를 높이기 위해 RAM 유지 기능을 제공한다. 목표는 매우 분명하다. 즉, RAM, RTC, DAC 센서 및 UART를 매우 적은 전력으로 사용할 수 있도록 하는 것이다. 최근의 정밀한 RTC 및 RAM을 유지하기 위한 설정은 1㎂ 미만의 범위에서 이루어지는 것이 일반적이다. 유연성을 위해 필요할 경우 DAC, ADC, USART, 타이머 등을 사용할 수 있어야 한다.


각 슬립 모드에서 깨어나는 데 걸리는 시간은 수 ㎲에서 10㎲ 미만에 이르기까지 다양하다. 물론 깨어나는 시간이 빨라질수록 배터리에 야기되는 전류 스파이크는 커지게 된다. 따라서 일부 코인 셀 배터리는 그 같은 전류 상승을 수용하지 못할 수도 있다. 슬립 모드는 이 문제를 해결하기 위해 유연한 웨이크업(Wake up) 시간을 제공하여 배터리마다 다른 전력소비 예산 시간을 따라야만 한다.

슬립 모드 2의 목표는 최대한 많은 부분을 꺼버리면서도 MCU가 처리해야만 할 외부에서의 작업이나 시간을 끊임없이 모니터링 하는 것이다. 액티브 모드와 슬립 모드 2의 혼합 버전은 화재 경보, 연기 감지기, 마우스 및 키보드 등에서 자주 사용된다.


슬립 모드 3
슬립 모드3의 목표는 분명하다. 밤에 잠이 들 때처럼 주변기기들을 최대한 꺼버리는 것이다. MCU로부터 클럭과 RAM 등을 최대한 꺼버리면 전력 소비를 100nA 한계 이하로 떨어뜨리는 데 도움이 되지만 웨이크업 시간은 수십 마이크로초에서 수 밀리초 범위까지 더 길어지게 된다. 슬립 모드 3에서 다시 활성화하기 위해 가장 많이 제시되는 솔루션은 리셋 신호, RTC 웨이크업(이 모드에서 제공될 경우) 또는 전용 웨이크업 핀들이다. 이는 파워온 리셋(POR)과 다소 유사하지만, 여기서도 몇 가지 트릭을 적용할 수 있다.

완전 리셋 같은 상태가 되지 않도록 일부 MCU는 백업 레지스터를 제공함으로써 초저전력 모드로 들어갈 때 일부 레지스터 내용을 저장해 두었다가 액티브 모드로 돌아오면 이를 다시 복구시키도록 도와준다. 이는 MCU가 액티브 모드로 돌아올 때 시스템 초기화가 일어나지 않도록 막아주어 액티브 모드에서의 시간을 줄여준다.

위에서 언급한 바와 같이 액티브 모드에서의 전력 소비율을 줄일수록 전체적인 전력 소비도 더욱 줄어들게 된다.
그러나 타이머 카운팅 기능은 슬립 모드 3에 옵션으로 고려되기도 한다. RTC와 백업 레지스터를 이용하는 슬립 모드 3는 가스나 수도 계량기와 같은 애플리케이션에 최적이다. 단순한 슬립 모드 3는 제조된 뒤 수개월간 ‘방치되다가’ 사용되는 애플리케이션들에 적합하다.

슬립 모드가 무엇이든 초저전력 애플리케이션들이 저마다 다른 설정을 필요로 하기 때문에 완벽한 슬립 모드를 정의하기는 매우 어렵다. 잘 설계된 ULP MCU는 이러한 요구에 부응하기 위해 한가지가 아닌 위와 같은 세 가지 슬립 모드 각각에 대한 유연성을 제공해야만 한다. 물론 Vdd가 1.8V 미만인 초저전력 저전압 MCU는 다른 MCU와는 다르다. 대부분의 초저전력 MCU는 1.8V나 2V에서 동작을 시작하지만 Vdd를 이 한계 값 아래로 낮추면 슬립 모드 2와 3의 전류 소비에 영향을 미쳐, 보다 낮은 값을 제공하게 된다. 이는 각 MCU의 저전압 역량에 의해 좌우된다.




웨이크업 시간

앞서 살펴본 3가지 슬립 모드에서 웨이크업 시간이 영향을 받게 된다고 설명한 바 있다. 슬립 모드는 시스템적인 웨이크업을 피하기 위한 다른 많은 기능들을 제공하지만 때로는 이를 적용할 필요가 있다. 반도체 물리학의 좋은 점은 마법을 부릴 수 없다는 것이다. 즉, MCU가 보다 깊게 슬립 모드로 들어갈수록(대부분의 주변기기들이 꺼진 상태) 이를 다시 켜는 데 걸리는 시간도 길어진다. 동시에 전원을 투입해야만 할 게이트가 많아질수록 더 많은 전류를 전원으로부터 끌어와야 한다.

따라서 슬립 모드 1은 에너지 절약이 덜한 대신, 보다 빨리 활성화되고, 웨이크업 시 전원으로부터 끌어오는 전류도 슬립 모드 2와 3의 경우보다 적어진다.

배터리 구동형 애플리케이션의 경우에는 웨이크업 기간에 발생하는 전류 스파이크를 고려해야만 하며, 배터리 크기도 그에 따라 정해야만 한다.

여기서 해결책으로 전류 스파이크를 제어하거나 피하기 위해 필요한 웨이크업 속도를 사용자가 선택할 수 있도록 하는 것이다.



결론

결론적으로 초저전력 MCU 모드는 이를 요구하는 애플리케이션만큼이나 복잡하다. 전력소비를 최소화하기 위해서는 기존의 모든 모드들을 이용하되 웨이크업 시간, 전력 소비 절감 및 요구되는 성능 간의 고른 균형을 고려해야만 한다. 전력소비를 줄이면서도 필요한 성능을 제공해야 한다는 부분을 해결하기 위해 초저전력 MCU는 액티브 모드에 있든 혹은 슬립 모드에 있든 스마트하면서도 유연해야만 한다.

코어가 분명한 해답 중 하나이기는 하지만, 아키텍처와 스마트 임베디드 주변기기 때문에 기존의 플랫폼들 간에도 차이가 난다. 이것이 ST마이크로일렉트로닉스가 STM32L 초저전력 마이크로컨트롤러 시리즈를 통해 해결하고자 하는 문제이다.

현재의 ULP MCU가 이미 가지고 있는 장점은 우리가 사는 세상을 바꿔 놓았다. 한 예로, 무선 마우스를 이제는 배터리 교환 없이 최대 2년간 사용할 수 있게 되었지만 처음 시장에 선보였을 당시만 해도 간신히 1 주일을 버티는 것이 고작이었다. 노트북 컴퓨터는 이제 한 번 충전으로 최대 10시간 사용할 수 있게 됐다.

더 나아가기 위해서 ULP MCU 제조업체들은 성능과 높은 주파수, 유연한 초저전력 모드들 그리고 미세한 공정 기술들을 조합하되 기능들에는 영향을 미치지 않아야 한다는 문제를 해결해야만 한다. 이를 해결하고 목표를 이루기 위해 앞으로도 많은 연구가 진행되어야 한다.


회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지