글|엘리 디켈(Eli Dekel), 무선 시스템 설계자, 텍사스 인스트루먼트
이 글은 에너지 소비의 원인이 되는 요소와 그로 인한 설계 시 고려사항을 다룬다. 특히 기존 IoT 애플리케이션에서 주요 요소들을 실현하고 전체적으로 저전력 에너지 소비를 달성할 수 있는 방법을 실증한다. 또한 와이파이 하위 레이어 동작에 영향을 미쳐 솔루션의 전체 에너지 소비를 감소시킬 수 있는 간접적인 방법을 설명한다.
빠르게 성장하는 사물인터넷(IoT)에서는 개인용 전자기기에서 산업 기기 및 센서에 이르기까지 대다수 애플리케이션이 무선으로 인터넷에 연결된다. 이러한 애플리케이션은 유스 케이스가 수십 가지이고 다양한 환경에서 다양한 요건들을 처리한다. 따라서 무선 표준 하나만으로 충분한 효과를 얻을 수 있는 경우는 없다.
와이파이(Wi-Fi)는 오늘날 가장 보편화된 무선 인터넷 접속 기술이다. 와이파이의 에너지 소비와 복잡도는 사물인터넷 개발자들에게 큰 장벽이었지만, 새로운 실리콘 디바이스와 모듈이 상당 부분 이러한 장벽을 없앴다. 이로써 저전력 와이파이 솔루션을 가능하게 해주고 와이파이를 최신 IoT 애플리케이션과 배터리 구동 디바이스에 통합시킬 수 있게 해주고 있다. 이 에너지 소비 문제는 접속 기술 애드온이 전원공급장치에 변화를 주지 않도록 하는 데 있다. 에너지 관리와 직접 관련이 있는 이 문제는 통신이 사실상 오버헤드를 유발한다는 사실에 기인한다.
또한 대부분 와이파이 기기의 에너지 소비는 액세스 포인트(AP) 동작과 네트워크/클라우드/서버의 성능에 크게 영향을 받는다. 시스템 파라미터와 성능의 대부분은 독립적이며 특정 네트워크에 맞춰 주어지게 된다. 따라서 와이파이 에너지 소비를 최적화하면서 시스템의 견고성을 유지하려면 그 플랫폼의 용도와 트래픽 모델, 네트워크 속성에 대해 완전히 이해해야 한다. 이러한 것들은 해당 애플리케이션, 네트워크, 트랜스포트, 네트워킹 통신 모델의 링크 레이어들과 연결돼 있다.
배터리 구동 제품의 경우, 주된 문제 중 하나가 적절한 배터리 크기를 사용해 배터리 교체나 충전 주기 동안 사용자의 경험을 긍정적으로 이끌어내는 것이다. 특정 조치들을 취해 다른 성능 요소들보다 배터리 수명을 더 연장할 수 있다. 이런 경우, 목표 결과로 삼을 어떤 지침을 시스템에 내려줘야 한다. 배터리 구동 제품의 수명을 늘리려면 단순히 최대 전력 소비가 아닌, 평균 에너지 소비를 최적화해야 한다.
통신 프로토콜
통신 시스템은 일련의 규칙과 표준을 이용해 데이터를 포맷하고 데이터 교환을 제어한다. 데이터 통신 시스템의 가장 일반적인 모델이 OSI(Open Systems Interconnection) 모델이다. 이것은 통신을 기능 레이어로 나누어 손쉽게 네트워크를 확장 및 상호작동 할 수 있도록 해준다. OSI 모델에는 여러 개의 레이어가 있다.
그림 1은 이 모델을 4개 레이어로 간소화한 것과 와이파이 TCP/IP 프로토콜 스택의 예를 보여주고 있다.
링크 레이어(link layer)는 비트를 무선 신호로 변환하거나 그 반대로 변환하고, 믿을 수 있는 무선 통신을 위해 데이터 프레이밍을 관리하고, 무선 채널 액세스를 관리한다. 그림 1의 TCP/IP의 예에서, 와이파이가 링크 레이어 프로토콜로 그려져 있다.
네트워크 레이어(network layer)는 네트워크를 통해 데이터 어드레싱과 라우팅을 관리한다. IP는 인터넷의 네트워크 레이어 프로토콜로, 장치에 IP 어드레스를 부여하고 IP 패킷을 한 디바이스에서 다른 디바이스로 나른다.
트랜스포트 레이어(transport layer)는 네트워크의 두 개 끝에서 실행되는 애플리케이션 간에 통신 세션을 만들어낸다. 그러면 한 디바이스에서 복수의 애플리케이션이 실행될 수 있고, 각자가 자기만의 통신 채널을 사용할 수 있다. TCP와 UDP(User Datagram Protocol)가 이러한 레이어에 사용되는 트랜스포트 레이어이다.
애플리케이션 레이어(application layer)는 데이터 포맷팅을 맡아 특정 애플리케이션의 최적 체계에서 데이터 흐름을 관장한다. TCP/IP 프로토콜 스택에서 대중적인 애플리케이션이 HTTP(Hypertext Transfer Protocol)이다. 이것은 인터넷을 통해 웹 콘텐츠를 전송하기 위해 만들어진 것이다.
견고하고 확장 가능한 IoT 솔루션은 계층화된 네트워크 형태에 주로 기반하고 있다. 물론 일부 애플리케이션의 경우, 그 레이어의 일부를 에너지 소비를 줄이는 데 최적화시킬 수 있다. 각 레이어의 동작이 전체 애플리케이션 에너지 소비에 영향을 미친다.
에너지 감도 파라미터
IoT 제품의 에너지 소비는 트래픽 모델별, 네트워크 속성별, 플랫폼 제약별로 분석 가능하다(그림 2 참고). 에너지 평균 소비 프로파일은 이러한 파라미터들 때문에 달라진다. 다음 단락에서는 각 분야마다 시스템 에너지 소비에 영향을 미치는 파라미터를 설명한다.
애플리케이션 소비 프로파일은 시간이 지남에 따라 여러 가지 시스템 모드에서 그 시스템의 소비를 알려준다. 이 프로파일에는 시스템 모드 간의 중간 트랜지션에 소비되는 에너지도 포함돼 있다. 소비된 총 에너지는 공급 시점부터 암페어로 측정된 소비 전류의 총체다:
번갈아 전하 소비를 계산할 수 있다:
보통은 에너지 소비에 대해 더 간단한 구간 리니어 근사치 도형을 사용한다:
배터리 용량은 얼마나 전하를 저장할 수 있는지를 알려준다. 용량은 얼마나 많은 전하를 저장-방출할 수 있는지를 가리키며, 암페어 아워(Ah)로 표기할 수 있다. 애플리케이션의 전하 소비와 배터리 용량이 그 애플리케이션의 수명을 결정한다.
트래픽 모델
트래픽 모델은 네트워크에서의 데이터 흐름이나 패킷 흐름을 기술한다. 패킷 흐름은 그 애플리케이션에 필요한 평균 처리량과 필요한 응답 지연, 활성 듀티사이클, 데이터가 버스트 모드에서 전송됐는지 연속 모드에서 전송됐는지 등에 영향을 받는다. 트래픽 모델은 애플리케이션 별로 다르며, 그 특성은 주로 유스 케이스에 좌우된다. 다음 단원에서는 이 트래픽 모델의 파리미터들을 설명한다.
프로토콜
프로토콜이란 패킷/메시지 포맷과 서버와의 핸드쉐이크를 가리키는 말이다. 네트워크를 통해 전송되는 모든 패킷에는 오버헤드 비트가 들어 있다. 패킷 포맷에는 패킷 헤더와, 네트워크를 통해 전송돼야 할 실제 데이터가 들어 있다.
TCP 및 UDP는 인터넷을 통해 데이터를 보낼 때 사용되는 트랜스포트 레이어 프로토콜이다. TCP는 접속 지향적 프로토콜로, 전송 전에 접속이 확립돼야 한다. 이것은 확실하게 올바른 순서로 메시지가 전달되도록 해준다. 커진 헤더와 데이터 확인 요건 때문에 TCP 오버헤드는 높은 편이다. 그래서 에너지 소비가 늘어나게 된다.
UDP는 접속이 없는 프로토콜로, 전송 전에 어떤 접속 환경도 필요로 하지 않는다. UDP는 최대한 메시지를 잘 전달하려 노력하지만 전송 메시지가 어쨌든 도달할 것이라는 보장은 없다. UDP 프로토콜에서는 오버헤드가 작아도 되며, 응답이나 확인(ACK)이 필요치 않다. 이 때문에 에너지 소비가 덜하다. 사용된 프로토콜은 애플리케이션 요건과 그것이 전체 에너지 소비에 미치는 영향을 고려해야 한다. 가장 효율적인 프로토콜을 사용해야 할 것이다.
처리량
애플리케이션 처리량이란, 특정 기간 동안 네트워크를 통과하는 데이터량을 의미한다. 처리량 요건 정의에는 데이터량과 시간에 따른 그 분배가 포함된다. 데이터량은 시스템이 네트워크와 통신을 해야 하는 활성 기간에 영향을 미치지만, 분배는 수면 기간과 네트워크에 동작에 영향을 미칠 수 있다.
데이터 크기는 활동마다 일정할 수도 있고, 시간에 따라 변할 수도 있다. 데이터 분배는 활동이 시간에 따라 산발적으로 일어나면 주기적일 수도 있고, 활동이 주기적이 아니라면 가변적일 수도 있으며, 데이터가 한 번만 전송되면 일회성일 수도 있다.
레이턴시 응답
레이턴시는 이벤트와 응답 사이의 시간 간격을 의미한다. 이것은 시스템이 이벤트에 얼마나 빨리 응답하는지를 알려준다. 이벤트는 주변장치로부터의 외부 촉발인자일 수도 있고, 네트워크로부터의 접속이나 네트워크 상태 변화일 수도 있다. 응답은 주변장치를 활성화시킬 수도 있고, 네트워크에 알림을 전송하는 것일 수도 있다.
애플리케이션은 필요한 레이턴시 응답을 결정한다. 레이턴시는 IoT 디바이스를 네트워크에 연결된 상태로 둘 것인지, 정해진 시간이 지나면 재연결 되게 할 것인지 등 같이 시스템의 최대 수면 시간에 영향을 미친다.
예를 들어 1분마다 측정된 온도를 서버에 업데이트하는 온도 센서 애플리케이션에서는 레이턴시 응답 시간에 사실상 제한이 없다. 그 애플리케이션은 낮은 듀티사이클에서 작동하며 에너지 소비를 최적화할 수 있다. 그렇지만 그 온도 센서 애플리케이션은 온도가 특정 임계치를 넘으면 즉시 알려야 하고, 레이턴시 응답 시간이 매우 작아져야 한다. 이런 경우, 그 애플리케이션은 네트워크 연결 상태를 유지해야 하는데, 그러면 에너지 소비량이 커지게 된다. 그 애플리케이션이 필요한 요건을 충족하면서도 낮은 와이파이 에너지 소비를 하게 하려면 그에 관한 적절한 균형이 이루어져야 할 것이다.
푸시 모드와 풀 모드
애플리케이션은 푸시 모드나 풀 모드에서 서버로부터 데이터를 취득할 수 있다. 푸시 모드에서는 서버가 IoT 디바이스로 데이터를 전송하는데, IoT 디바이스는 그 서버로부터 데이터를 수신할 준비가 돼 있어야 한다. 이 모드에서는 IoT 디바이스가 반드시 와이파이 네트워크 접속 상태를 유지해야 하며, 그 서버와 항상 활성 채널을 유지해야 한다. 그런데 풀 모드에서는 IoT 디바이스가 서버의 접속 상태를 유지할 것인지, 아니면 데이터 검색이 필요할 때에만 재연결을 할 것인지 선택할 수 있다. 그러면 에너지 소비를 크게 줄일 수 있다.
트래픽 모델 레벨에서는 애플리케이션 레이어에 이를 적용할 수 있지만, 다른 레이어들도 여러 가지 이유로 명백하든 아니든 다른 방식을 적용할 수 있다는 사실을 혼동해서는 안 된다. 와이파이 프로토콜 절전 전송 체계를 이용해 링크 레이어에서 전력을 줄일 수 있는 푸시 애플리케이션이 바로 그런 경우다. 이 경우, 링크 레이어는 풀 모드에서 작동하며 액세스 포인트를 폴링하게 되겠지만, 애플리케이션 레이어 관점에서는 그 애플리케이션은 여전히 푸시 모드에서 동작할 수 있다.
버스트 전송
버스트 전송(Burst transfer)은 빠르게 연속하여 일어나는 이벤트들을 의미한다. 처리량과 레이턴시 응답 요건에 따라, 시스템은 데이터 전송 프로파일을 정의할 수 있다. 예를 들어 데이터를 입수 가능할 때마다 시스템이 네트워크와 통신을 할 수도 있고, 데이터를 누적해 두었다가 특정 임계치나 시간이 지나면 네트워크와 통신할 수도 있다. 데이터를 누적해두면 시스템이 좀 더 오랜 시간 수면을 취할 수 있고, 활성과 수면 사이의 트랜지션 횟수를 줄일 수 있다. 또한 이것은 서버와의 모든 통신에서 프로토콜 오버헤드를 줄여준다.
듀티사이클
듀티사이클은 시스템 활성 시간의 비율을 말한다. 듀티사이클을 줄이면 시스템 에너지 소비도 줄어든다. 애플리케이션 처리량과 레이턴시 요건이 시스템의 듀티사이클을 결정한다. 예를 들어 높은 처리량과 낮은 레이턴시 요건은 듀티사이클을 증가시킨다.
플랫폼 제약
플랫폼 제약이란 시스템에 관련한 한계들, 예컨대 총 솔루션 크기, 전원공급장치의 종류, 전압 레벨, 안테나 크기 등을 말한다. 다음 단원에서는 에너지 소비와 제품의 배터리 수명에 영향을 미치는 주요 시스템 한계에 대해 설명한다.
전원공급장치
전원공급장치는 시스템의 에너지를 공급한다. 이것은 배터리나 AC 전원, 전기 하베스팅 전지 같은 여러 가지 원천에서 에너지를 얻을 수 있다. 전원공급장치의 종류는 소비 가능한 총 에너지와 피크 파워에 영향을 준다. 예를 들어 배터리는 여러 가지 크기와 용량으로 이용 가능한데, 각 배터리 유형마다 서로 다른 용량 값과 최대 피크 전류를 지원한다. AC 전원 애플리케이션은 ‘무제한’ 에너지를 가지고 있고, 부하의 평균 에너지 소비에 사실상 제한이 없다.
총 면적 솔루션
대부분의 경우, 제품들은 특정 크기와 총 면적 솔루션을 충족해야 한다. 이것은 안테나 크기와 그 위치에 영향을 미칠 수 있다. 안테나의 크기와 게인, 유형은 네트워크를 통해 데이터를 전송하는데 필요한 에너지에 영향을 준다. 안테나의 크기나 게인이 작아질수록, 그 안테나 크기를 상쇄하기 위해 더 높은 출력 파워에서 전송을 해야 한다.
네트워크 속성
여러 가지 네트워크 파라미터가 전체 시스템 동작과 그 에너지 소비에 영향을 미칠 수 있다. 여기에는 네트워크 용량과 네트워크 부하, 링크 예산, 응답 시간 등이 있으며, 대부분 애플리케이션이 제어할 수 없는 것들이다.
네트워크 용량과 부하
네트워크 용량은 하나의 링크를 통해 네트워크 위치 간에 전송할 수 있는 최대 데이터량의 크기를 말한다. 네트워크 사용이 늘어나면 네트워크를 통한 통신 시간이 늘어나게 되고, 그러면 디바이스의 전체 에너지 소비도 늘어나게 된다. 네트워크상의 클라이언트 숫자와 요구되는 처리량은 네트워크 부하와 응답 시간에 영향을 미친다는 점에 주목하자. 특정 처리량을 위해 네트워크 사용을 줄이는 것은 전송 숫자와 그 시간을 줄이면 된다.
전송 숫자는 (레이턴시 요건에 따라) 허용 가능한 최대 패킷까지 데이터를 통합해 줄인다. 전송 시간은 더 높은 와이파이 레이트를 사용해 줄일 수 있다. 이 레이트는 보통 액세스 포인트와 링크 레이어의 디바이스가 최적의 무선과 에너지 소비, 처리량 성능에 맞춰 결정하기 때문에, 애플리케이션이 이를 제어할 수 없다.
링크 예산
링크 예산이란 무선 통신 시스템 링크 품질의 척도다. 저 품질의 링크는 전송해야 할 패킷(예: 재전송)의 숫자에 영향을 미치고, 따라서 전체 에너지 소비에도 영향을 미치게 된다. 전송된 패킷의 출력 파워와 레이트가 채널에서의 패킷 오류 레이트와 에너지 소비를 결정하게 된다. 링크 품질의 개선과 에너지 소비 사이에는 분명한 교환 관계가 존재한다.
네트워크 응답 시간
응답 시간이란, 네트워크의 다른 목적지, 예컨대 서버로 보내진 요청에 대해 응답을 받는데 걸리는 총 시간을 말한다. 네트워크 용량이나 네트워크 부하, 링크 예산 등 많은 요소들이 이 시간에 영향을 미친다. 애플리케이션의 에너지 소비는 네트워크 응답 시간에 크게 영향을 받기 때문에, 에너지 소비가 늘어날 수 있다.
예를 들어 TCP/IP 프로토콜을 이용해 서버와 통신하는 IoT 디바이스는 TCP/IP 레이어를 통해 응답을 기다리게 될 것이다. 이러한 응답은 네트워크 토폴로지, 용량, 트래픽, 프로토콜 등에 좌우된다. 그 지연은 10밀리초부터 100밀리초까지 다양할 수 있다.
IoT 디바이스의 동작은 서버의 응답을 기다리는 동안 총 에너지 소비에 상당한 영향을 미치게 된다. 한편으로는 IoT 디바이스가 최저전력 모드에 들어가 전력을 아끼다가 주기적으로 깨어나 응답이 도달했는지 확인할 수도 있다. 이것은 애플리케이션 레이어에서 레이턴시 응답을 증가시킨다. 다른 한편으로는, IoT 디바이스가 계속 활성 상태를 유지하며 응답이 도착했을 때 그 응답을 바로 수신할 수도 있다.
에너지 최적화와 시스템 견고함의 균형을 이루는 방법에는 여러 가지가 있다. 에너지를 절약할 수 있는 방법은 사용된 링크 레이어 프로토콜이 무엇인지에 따라 구체화된다. IoT 디바이스가 액세스 포인트(AP)에게 자신이 절전 상태임을 알릴 수 있는 와이파이 절전 모드(802.11)가 그런 경우이다. 이때부터 AP는 그 IoT 디바이스를 위해 트래픽을 버퍼링해 그 디바이스가 임의로 이 트래픽을 폴링할 수 있게 해준다.
버퍼링된 트래픽은 특정 비콘 패킷에서 알 수 있다. 이러한 패킷에서만 깨어나도록 하고 그 중간에서는 에너지를 절약하도록 디바이스를 프로그램할 수 있다. 이 방식의 가장 큰 단점은 서버와 IoT 디바이스 간의 통신이 IoT 디바이스의 웨이크업 시간으로 한정된다는 데 있다. 이것은 사실상 레이턴시를 증가시키게 된다. 레이턴시에 민감한 애플리케이션에서는 이 방식을 적용할 수 없다.
프로파일 기원 가이드라인/기법
사례 연구에서 비롯된 개념을 가이드라인으로 일반화하기 위해 다음의 비법에 따를 수 있다. 아주 간단한 단계별 절차로 제법 복잡한 체계를 구현한다. 이 체계에 필요한 입력 정보는 분석된 프로파일에 대해 완전한 묘사다. 이 기법을 실현하기 위해서는 시스템의 여러 가지 전력 모드를 정렬해야 할 필요가 있다.
시스템 전력 모드
에너지 소비 프로파일은 시간에 따른 여러 시스템 모드들을 조합하여 설명한 것이다. 다음 단원에서는 무선 시스템에 공통하는 시스템 모드들을 설명한다. 표준 용어는 없지만, 각 모드에서의 정확한 동작을 숙지해야 각 모드에 수반하는 오버헤드를 제대로 이해할 수 있다.
다음의 용어는 TI의 SimpleLink™ 와이파이 제품군에서 사용하는 용어로, 앞으로의 논의를 명확하게 하기 위한 목적으로 제시된 것이다.
동면(Hibernate)-디바이스가 상태나 파라미터를 유지하지 않고(RTC 클록은 ON 일 수 있음) 최저 에너지 소비 모드에 있다는 뜻이다. 이 모드에서 나가려면 디바이스를 완전히 초기화해야 한다. 디바이스는 와이파이 접속이 필요하지 않을 때 이 모드에 들어갈 수 있다.
LPDS(low power deep sleep, 저전력 숙면)-디바이스가 저전력 모드에 있지만, 시스템 상태와 파라미터를 계속 유지하고 있다는 뜻이다. 디바이스는 네트워크 통신들 사이에서 이 모드에 들어갈 수 있고, 동시에 와이파이 네트워크와 TCP/IP 파라미터 및 상태는 그대로 유지할 수 있다.
아이들(Idle) (또는 대기 상태)-디바이스가 활성 상태이지만, 무선 활동은 없다는 뜻이다. 예를 들어 디바이스가 깨어나 공전 상태로 온도를 측정하는 경우가 그런 경우다.
활성(Active)-디바이스가 네트워크와 통신을 하며, 송신을 하거나 수신을 하고 있다. 이 모드는 가장 많은 전력을 소비한다.
트랜지션(Transition)-모드들 사이의 트랜지션은 에너지도 소비하지만, 그 용례에 필요한 총 에너지를 계산할 때 반드시 고려해야 할 요소다.
기법
이 방법을 설명하는 동안 다음의 예를 이용해 각 단계를 설명할 것이다-“일회용 손목 가젯, 120 mAh, 3 V 리튬-폴리머(Li-Poly) 배터리를 상정했다. 이 디바이스는 항상 연결된 상태로 다운링크 정보의 경우 매 초마다 비콘을 들으며 그 상태를 매 분마다 업데이트한다. 제조 과정에서 일련의 품질 테스트를 위해 이 디바이스에 전력을 공급하는데, 그 테스트들은 20밀리초 동안 지속된다. 이때 디바이스는 완전히 활성 상태가 된다. 다운링크 정보의 가능성은 드문 편이라 무시할 수 있다(한 시간에 한 번). 활동들 중간에 디바이스는 저전력 슬립 모드 (LPDS)에 들어간다. 이 손목 가젯의 수명은 얼마일까?”
저전력 와이파이 애플리케이션을 위해서는 그 애플리케이션 에너지 소비에 기여하는 요소들 하나하나에 대한 이해가 선행돼야 한다. 한 번 실행되거나 드물게 실행되는 활동들과 주기적으로 실행되는 활동들의 기여도 여기에 포함된다. 이상의 설명을 생략하고, 다음을 들여다보자:
아래의 모든 에너지 소비 숫자는 시중에서 이용할 수 있는 솔루션의 평균 에너지 소비에 기반하고 있다.
사례 연구 - 온도 센서
이 단원에서는 실제 유스 케이스를 들어 주요 파라미터들 각각이 전체 시스템 에너지 소비에 미치는 영향 등을 분석할 것이다. 이 분석은 온도 센서 애플리케이션에 대한 것으로, 이 애플리케이션은 60초마다 온도를 측정해 이를 서버에 전송한다.-‘온도 센서, 3,000 mAh, 3 V 리튬-이온(Li-Ion) 배터리를 상정했다. 이 디바이스는 항상 연결 상태이며, 다운링크 정보에 대해 매 300밀리초마다 비콘을 듣고 그 상태를 매 분마다 업데이트 한다. 다운링크 정보의 가능성은 드문 편이라 무시될 것이다(1 시간에 1 번).’
표 3은 이 유스 케이스의 주요 속성들을 보여주고 있다.
파워 프로파일
이 유스 케이스에서, 시스템은 60초마다 깨어나 온도 측정 결과를 서버로 전송한다. 활동들 중간에 이 시스템은 와이파이 액세스 포인트와 연결 상태를 유지하며 비콘을 청취해야 한다(비콘 간격은 100 msec이고 DTIM = 3으로 가정한다). 나머지 시간에 이 시스템은 슬립 모드로 들어갈 수 있다.
또한 이 시스템은 와이파이 AP와 연결 상태여야 하고, 서버와의 TCP/IP 소켓이 열려 있어야 한다. 이것은 제품 수명이 시작될 때 한 번 이루어질 수 있는데, 그렇게 소비된 에너지는 이 분석에서 무시할 것이다.
에너지 소비 분석에서는 각 모드에 소비된 에너지와 모드들 사이의 트랜션트에 소비된 에너지를 전체 에너지 소비에 둘 다 포함시킬 것이다.
그림 3은 해당 애플리케이션을 AP와 연동시키고 서버와의 TCP/IP 소켓을 개방한 후에 이 시나리오에 따른 에너지 소비 프로파일을 설명하고 있다:
이 유스 케이스는 주기성이기 때문에 평균 에너지 소비는 60초 주기로 계산하며, 60초마다 다음의 에너지를 소비한다:
비콘 수신을 포함해 하나의 비콘을 수신하는데 소비된 에너지와, LPDS 모드와 RX 모드 사이의 트랜션트에 소비된 에너지. 비콘은 매 100밀리초마다 전송되지만, 이 유스 케이스에서는 DTIM = 3을 이용한다. 스테이션이 3회 비콘 주기마다, 즉 300밀리초마다 비콘을 청취하는 것이다. 총 에너지에는 LPDS에서 RX로의 트랜지션과 수신, 다시 RX에서 LPDS로의 트랜지션도 포함된다.
온도 샘플을 전송하고 AP에서 L2 ACK를 수신하는 등 서버로 패킷을 보낼 때 소비되는 에너지. 이 에너지에는 LPDS에서 전송 모드까지, 전송 모드에서 수신 모드로의 트랜지션도 포함된다. 매 60초마다 패킷을 서버로 보낸다.
ACK 수신, RX에서 TX로의 트랜지션, L2ACK 전송 등, 서버에서 TCP IP 패킷을 수신하는 데 소비되는 에너지. 이것은 60초마다 이뤄진다. TCP/IP ACK 수신 주기는 네트워크 응답 시간에 따라 달라지며, 네트워크 응답 시간은 매우 다양하고 전체 에너지 소비에 영향을 미칠 수 있다. 이 주기 동안 시스템이 수신 모드에 있어야 하기 때문이다.
대기(sleep) 중 소비되는 에너지. 서버와 통신을 하지 않고 비콘을 청취하지 않을 때, 디바이스는 슬립 모드로 들어간다.
표 5는 파라미터 각각을 계산한 것이다. 아래의 모든 에너지 소비 숫자는 시중에서 구할 수 있는 솔루션의 평균 에너지 소비를 기준으로 한 것이다. 표 5의 예에서, 에너지 소비의 주된 원인은 비콘 수신 이고, 두 번째 원인은 대기 중 소비된 에너지다(P4). TCP ACK 를 수신하는데 소비된 에너지 또한 상당하여 총 에너지의 17%를 소비하고 있다. 이것은 긴 네트워크 응답 시간 때문이다. 온도 샘플을 서버로 보내는 경우 총 에너지 소비에 큰 역할을 하지 않는다. 그림 4를 참고한다.
에너지 종속 파라미터
이 단원에서는 파라미터들 각각의 변화량이 유스 케이스의 전체 에너지 소비에 얼마나 영향을 미치는지를 설명한다.
프로토콜 선택-UDP와 TCP: 사용된 프로토콜이 UDP라면, TCP ACK는 필요하지 않으므로 를 없앨 수 있어 총 에너지 소비의 17%를 절약할 수 있다. 단점은, 시스템은 서버로부터 ACK를 받지 않기 때문에 데이터가 유실될 수 있다는 점이다. 일부 애플리케이션의 경우에는 데이터 유실을 용인하기도 한다.
결과 1. 데이터 신뢰를 위해서는 TCP가 낫다. 최소한의 오버헤드를 가진 휘발성 트래픽의 경우에는 UDP가 낫다.
처리량 512 B와 64 B: 더 많은 데이터를 전송해야 하는 경우, 전송 에 드는 에너지가 증가한다. 그러나 온도 샘플을 전송하는 데 소비되는 에너지는 전체 에너지에 비해 무시할 수 있는 수준이며, TCP 패킷 크기(1.5 KB) 입상까지 유지된다. 복수의 TCP 패킷을 보낸 다음의 ACK가 사실상 에너지 소비를 크게 증가시킨다.
결과 2. 린(lean) 데이터 시나리오에서는 전송 데이터를 최대 TCP 패킷 크기로 꾸린다.
버스트: 버스트 모드에서 작동할 때: 이 경우 애플리케이션이 예컨대 다섯 개 샘플을 저장하고 다섯 개 모두를 300초마다(5×60초) 전송하도록 허용할 수 있다. 이것은 를 감소시킬 것이다. 300초마다 한 번 실행되어 총 에너지 감소가 13.6%에 불과하기 때문이다(소비된 에너지는 17%/5). 단점은 온도 샘플이 300초씩 지연되어 서버에 있는 최신 샘플들이 최악의 경우 5분 지난 것일 수 있다는 점이다.
결과 3. 레이턴시 레벨까지 합산이 유리하다.
네트워크 응답 시간: 네트워크 응답 시간은 에 영향을 미친다. 응답 시간이 길어질수록, 시스템은 (대기 상태가 아닌) 수신 모드에 더 오래 머물러야 해서 사실상 전체 에너지 소비가 크게 증가하게 된다. 네트워크 응답 시간을 최적화하면 에너지를 크게 절약할 수 있다.
결과 4. 토폴로지가 중요하다. 네트워크 응답 시간 토폴로지가 열악하면, 에너지 소비가 빠르게 악화된다.
비콘 건너뛰기: 비콘 수신은 이 유스 케이스에서 가장 많은 에너지를 소비했다. 총 에너지의 57%를 소비한다. 비콘을 건너뛰면 시스템의 웨이크업 횟수가 줄어들게 될 것이다. 예를 들어 주기적으로 다섯 비콘 중 하나를 수신하면(DTIM = 5, 500-msec 주기), 이 유스 케이스의 총 에너지가 25%까지 줄어들게 될 것이다. 그러나 AP와의 연결 상태를 유지하기 위해 최소한의 주둔이 필요하다.
결과 5. 애플리케이션 레이턴시에 맞춰 비콘 건너뛰기 간격을 최대화한다.
접속 패러다임: 접속 유지와 재접속의 비교-가용성을 위해서라면, 센서는 AP와 접속을 유지해야 한다. 이 에너지는 EStay Connected로 표시될 것이며, 이 센서를 주기적으로 네트워크로부터 분리했다가 다시 연결할 수 있다. 이 에너지를 표시하면 EReconnect이다.
접속 유지 상태일 경우, 비콘 수신과 AP 접속 유지에 총 에너지 예산의 59%가 소비된다. 그렇지만, 100% 네트워크 활용이 가능하고, 활동들 중간에 시스템이 LPDS 모드로 들어갈 수 있다. 접속과 비콘 수신에 소요되는 에너지는 AP 동작과 네트워크 토폴로지에 크게 영향을 받는다는 사실에 주목해야 한다. AP와 원격 서버 둘 다의 응답 시간 때문에 활동 완료에 드는 시간이 길어지게 된다. 그 결과, 에너지 소비가 증가하게 된다.
재접속의 경우, 센서는 비콘을 수신하기 위해 깨어날 필요가 없으며, 따라서 최대 절전 모드로 들어갈 수 있다. 최대 절전 상태는 이 유스 케이스에서 총 에너지의 25%까지 감소를 뜻하는 LPDS보다 최대 50배 낮은 저전력 상태다. 다른 한편으로, 이 센서는 매번 깨어날 때마다 인증 및 연동 프로세스를 거쳐야 하고, TCP/IP 세션을 열어야 한다.
또한 이 패러다임은 원격 페이징에 100% 가용성이 필요치 않은 사례에 적합하다. 가동 후 재접속 에너지 EReconnect(초기화와 AP/서버와의 접속이 주된 인자일 수 있다)가 연결 유지 에너지 EStay Connected(비콘 수신이 주된 인자)보다 작을 경우, AP 접속을 유지하는 것보다 재접속이 더 낫다. 그림 5는 두 패러다임 간의 크로스오버 분석을 보여주고 있다.
결과 6. 레이턴시에 민감한 애플리케이션이나 100% 가용성이 필요한 경우, ‘항시 접속’ 패러다임을 선택해야 한다. 그렇지 않은 낮은 듀티사이클 애플리케이션의 경우에는 재접속이 더 전력 효율적인 패러다임이다.
결과 7. 에너지 소비가 유일한 인자일 경우, 다음에 대한 크로스오버 기간을 밝힌다.
EReconnect = EStay Connected
TI SimpleLink 와이파이 디바이스
TI SimpleLink 와이파이 인터넷온칩(Internet-on-Chip™)을 이용해 위에서 설명한 센서 유스 케이스의 ‘접속 유지’와 ‘재접속’ 패러다임 간의 교환 가치를 계산, 제시할 것이다. SimpleLink 와이파이 CC3200은 고도로 집적된 저전력 무선 MCU다. 고성능 애플리케이션 프로세스 외에도 이 디바이스는 온칩 와이파이 서브시스템과 종합 네트워크 스택, 튼튼한 보안 엔진을 포함하고 있다.
이 디바이스에는 다양한 주변장치들이 있어서 온도 센서 같은 전체 애플리케이션을 IC 하나로 개발할 수 있는 선택권이 주어진다. 발전된 디바이스 전력관리 서브시스템과 정책 관리를 통해 사용자는 ‘접속 유지’ 방식으로든, ‘재접속’ 방식으로든 작업을 할 수 있다.
‘접속 유지’ 방식의 경우, 100 msec마다 비콘 수신(DTIM = 1) 성능과 긴 대기 간격(LSI, long sleep interval)을 특징으로 한다. 이를 통해, 예컨대 0.5초(DTIM = 5)마다 비콘을 청취할 수 있다:
매 100밀리초 비콘 수신의 크로스오버 포인트는 ~10초 주기에서다. LSI가 활성일 때 (LSI = 0.5 초), 크로스오버 포인트는 ~220초 주기에서다. 애플리케이션이 매 5초마다 측정된 온도로 서버를 업데이트할 경우에는 접속을 유지하는 것이 더 낫다. 그러나 60초마다 서버 업데이트를 하는 경우, 매번 깨어나 재접속을 하는 것이 더 낫다. 자세한 내용은 아래 애플리케이션 노트, ‘SimpleLink Wi-Fi CC3100/CC3200 Internet-on-a-chip networking subsystem power management’에서 확인할 수 있다.
저전력 인터넷 접속은 현실
와이파이를 이용한 저전력 인터넷 접속은 현실이다. 문제는 무선 접속 기술 애드온이 전력공급에 변화를 일으키지 않도록 하는 데 있다. 배터리 구동 제품의 경우에는 다른 성능 요소들보다 배터리 수명을 연장할 수 있는 조치들이 있다.
이 글에서 에너지 소비의 원인과 관련 설계 타협점들을 살펴봤다. 전력 프로파일과 분석을 위한 확실한 방법론을 규정함으로써 개발자가 IoT 애플리케이션에서 전체적으로 에너지 소비를 낮출 수 있는 방법을 모색할 수 있도록 했다. 또한 와이파이 하위 레이어 동작에 영향을 주어 솔루션의 총 에너지 소비를 줄이는 방법도 설명했다.
대부분의 애플리케이션에서는 전송할 정보의 양이 총 무선 비트보다 크게 낮은 편이다. 통신 프로토콜이 본질적으로 오버헤드를 유도한다는 사실이 총 에너지 소비에 영향을 미치게 된다. 전체 에너지 소비에서 이러한 오버헤드의 영향은 애플리케이션의 트래픽 속성과 프로파일을 관리해 줄일 수 있다. 앞서 설명했듯이, 이것은 까다로운 작업이다. TI SimpleLink 와이파이 CC3200 무선 MCU처럼 고도로 집적된 네트워킹 솔루션은 트래픽 속성들을 온칩으로 손쉽게 관리할 수 있고, 애플리케이션의 에너지 소비를 최적화할 때의 복잡성을 완화할 수 있다.
에너지 소비의 원인 인자들을 관리하면 저전력 와이파이 애플리케이션의 목적을 달성할 수 있다. 보통의 IoT 애플리케이션에서 전체적으로 에너지 소비를 낮출 수 있는 주요 요소들을 면밀히 분석해야 한다. 훌륭한 솔루션의 열쇠는 이러한 원인 인자들을 이해한 후, 이 글이 설명하고 있는 내용을 제대로 행하는 데 있다. 애플리케이션 레벨의 요건들과 목표 성능에 대해 깊이 있게 이해한다면, 네트워크에서의 애플리케이션 동작을 정의할 수 있고, 평균 에너지 소비를 최적화하면서도 시스템의 견고함까지 유지할 수 있다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>