DOI QR코드

DOI QR Code

IoT 기반 간헐적 이벤트 로깅 응용에 최적화된 효율적 플래시 메모리 전력 소모 감소기법

Efficient Flash Memory Access Power Reduction Techniques for IoT-Driven Rare-Event Logging Application

  • 투고 : 2019.02.24
  • 심사 : 2019.04.01
  • 발행 : 2019.04.30

초록

Low power issue is one of the most critical problems in the Internet of Things (IoT), which are powered by battery. To solve this problem, various approaches have been presented so far. In this paper, we propose a method to reduce the power consumption by reducing the numbers of accesses into the flash memory consuming a large amount of power for on-chip software execution. Our approach is based on using cooperative logging structure to distribute the sampling overhead in single sensor node to adjacent nodes in case of rare-event applications. The proposed algorithm to identify event occurrence is newly introduced with negative feedback method by observing difference between past data and recent data coming from the sensor. When an event with need of flash access is determined, the proposed approach only allows access to write the sampled data in flash memory. The proposed event detection algorithm (EDA) result in 30% reduction of power consumption compared to the conventional flash write scheme for all cases of event. The sampled data from the sensor is first traced into the random access memory (RAM), and write access to the flash memory is delayed until the page buffer of the on-chip flash memory controller in the micro controller unit (MCU) is full of the numbers of the traced data, thereby reducing the frequency of accessing flash memory. This technique additionally reduces power consumption by 40% compared to flash-write all data. By sharing the sampling information via LoRa channel, the overhead in sampling data is distributed, to reduce the sampling load on each node, so that the 66% reduction of total power consumption is achieved in several IoT edge nodes by removing the sampling operation of duplicated data.

키워드

Ⅰ. 서론 및 관련 연구

각종 사물에 센서와 통신 기능을 내장 (Embedded)하여 사물들끼리 서로 연결하는 기술인 사물인터넷 (IoT)은 수년간 폭발적으로 성장해왔다. 2009년까지 사물인터넷 기술을 사용하는 사물의 개수는 9억여 개였으나, 2020년에는 그 수가 260억여 개에 이를 것으로 예상한다 [1]. 사물인터넷 센서 노드의 저전력 동작 기술은 가장 중요한 핵심 이슈이다. 센서로부터 정보를 받아들이는 에지 (Edge) 노드는 가전이나 자동차처럼 안정적으로 전원을 공급받을 수 있는 환경에 놓여있는 경우도 많지만, 깊은 심해에서 바다 온도를 측정하는 센서나 깊은 산속에 위치하는 센서의 경우 상시 전원 공급없이 배터리만으로 전원을 유지하여야 한다. 따라서 IoT 에지 노드의 핵심을 구성하는 마이크로컨트롤러 (MCU)를 초저전력으로 동작시키기 위한 하드웨어, 소프트웨어 통합기술이 필요하며, 이러한 저전력 특성을 만족시키는 여부를 평가하기 위한 ULPMark-CP [2]와 같은 벤치마크들이 소개되었으며, 그만큼 전력 소모에 관한 이슈가 IoT 기반 응용에서 중요하다고 할 수 있다 [3].

이러한 전원 공급과 관련된 문제를 해결하기 위해 제안되는 해결책으로는 배터리의 용량을 키워 노드의 동작 지속시간을 늘리는 방법이 있지만, 큰 규모의 노드 네트워크를 구성하기 위해서는 증가한 배터리 용량만큼의 비용이 발생하고 용량을 증가시키는 데에도 한계가 존재한다. 따라서 최근의 연구들은 저전력으로도 작동이 가능한 IoT 센서에 최적화된 MCU 프로세서의 구조를 재설계하고, 이러한 하드웨어 구조에 특화된 소프트웨어 알고리즘을 탑재하여 전력 효율적인 IoT 센서 노드를 구현하는 방향으로 연구가 진행되고 있다 [4].

본 논문에서 가정하고 있는 응용은 간헐적인 이벤트 (Rare-event) 센싱으로, 사물의 상태변화가 매우 긴 시간 동안 간헐적으로 발생하는 이벤트를 감지하는 IoT 시스템에서 전력 소모의 최적화를 다루고자 한다 [5]. 이때, IoT 센서 노드에 탑재된 MCU의 ADC를 사용하여 센서로부터 들어오는 신호들을 특정 조건에 맞추어 샘플링한 뒤, 플래시 메모리에 기록하는 과정에서 사용되는 ADC 회로의 동작 소모전력 및 플래시 메모리로의 접근으로 인한 전력은 노드 동작 전력에서 큰 부분을 차지한다. 하지만, 간헐적으로 발생하는 Rare-event는 긴 시간 동안 드물게 발생하기 때문에 이를 안전하게 logging하기 위해서는 on-chip SRAM이 아닌 플래시 (Flash) 메모리에 저장해야 한다 [6]. 따라서 logging 데이터의 양에는 적은 영향을 미치면서, 플래시 메모리로의 접근을 효율적으로 수행하는 관점에서의 연구가 필요하다.

또한, 지금까지 과도한 ADC의 동작 전력을 줄이는 다양한 연구들이 진행되었다 [7]. 이러한 연구들은 하나의 IoT 노드 내부 회로의 동작 특성을 고려한 미시적 관점에서만 연구가 집중되었다. 따라서 Rare-event 응용의 경우, IoT 기반 센서 시스템은 통신이라는 매개체를 통해, 협력적으로 환경을 센싱하는 동작을 공유할 수 있으므로 중복되는 센서 회로 구동을 줄여서 여러 개의 IoT 노드들의 전체 전력 소모의 합을 최소화하는 거시적 관점의 저전력 기법에 관한 연구가 필요하다.

이에 본 논문에서는 센서로부터 받아온 데이터를 플래시 메모리에 기록하는 과정에서 발생하는 소모전력을 줄이는 기법과 ADC를 사용한 샘플링 과정에서 발생하는 소모전력을 줄이는 기법을 제안한다. 먼저 센서로부터 들어오는 데이터 중, 플래시 메모리에 기록할 데이터를 선별하는 알고리즘을 사용하여 플래시 메모리로의 접근 빈도를 줄인다. 그리고 모든 데이터마다 플래시 메모리에 접근하여 기록하지 않고, 데이터들을 RAM에 먼저 모아서 일정한 양 만큼 쌓이게 한 뒤, MCU에 내장된 플래시 제어기 내부의 페이지 단위로 플래시 메모리에 접근하여 데이터를 기록한다.

그리고 에지 노드들이 게이트웨이와의 LoRa 통신을 기반으로 동작하고 있는 상황을 가정할 때, 각각의 노드 ADC에서 동작하는 데이터 샘플링 결과를 게이트웨이로 전송한 뒤, 게이트웨이에서는 전송 받은 데이터를 다른 노드에 다시 전송함으로써 에지 노드에서는 샘플링 동작 여부를 결정하는 알고리즘을 사용하여 샘플링이 불필요한 노드는 샘플링을 중지하도록 함에 따라 전체 전력 소모량을 줄일 수 있다.

본 논문의 구성은 다음과 같다. 2장에서는 제안하는 구조를 소개하고, 3장에서는 실험을 통해 제시하는 기법의 타당성을 입증하며, 마지막으로 4장에서 결론을 맺는다.

Ⅱ. 제안하는 구조

본 논문에서는 IoT 네트워크에서 센서로부터 들어오는 데이터를 센싱할 때, 저전력 모드로의 진입을 통한 소모전력 최소화가 아닌, 플래시 메모리에 데이터를 기록할 때, 데이터가 들어오는 빈도, 기록하는 데이터 선별 과정을 효율적으로 조절하여 노드에서의 소모전력의 최소화를 목표로 한다. 이를 위해 제안하고 있는 방법은 다음과 같다.

먼저 센서로부터 데이터가 들어오는 형태에 따라 플래시 메모리 기록의 여부를 결정하여 소모전력을 감소할 수 있다. 센서로부터 데이터를 입력받을 때 플래시 메모리에 바로 기록하는 것이 아니라 버퍼를 가진 피드백 회로를 사용하여 데이터의 과거 입력값에 의해 현재 기록하는 데이터의 값을 결정한다. 즉, 발생하고 있는 데이터를 모두 플래시 메모리에 기록하는 것이 아니라 변화량과 같은 특정한 조건을 만족하는 경우, 이벤트가 발생했다고 판단하여 해당하는 순간의 데이터만 플래시 메모리에 기록한다.

그리고 RAM에 저장된 데이터들을 매번 플래시 메모리에 기록하지 않고 페이지 단위로 플래시 메모리에 기록함으로써 플래시 메모리에 접근하는 빈도를 줄일 수 있다. 한 번 플래시 메모리에 접근할 때 기록하는 데이터의 양보다 기록하는 빈도에 의해 소모전력이 더 큰 영향을 받는다. 따라서 플래시 메모리로 접근하는 데 소모되는 전체 전력의 양을 줄일 수 있다. 위의 기법들은, 네거티브 피드백 회로를 사용하여 과거와 현재 데이터값을 비교한다는 점, 센싱 데이터를 페이지 단위로 플래시 메모리에 기록할 때, 로깅 데이터양의 감소 없이 플래시 메모리 접근 빈도만이 줄어든다는 점에서 기존에 로깅 데이터양을 줄이기 위해 제안되었던 여러 기법과의 차이점을 찾을 수 있다.

마지막으로 센서 노드 네트워크에서 각 노드의 ADC가 하던 샘플링 중, 불필요한 데이터 샘플링을 중지하고 필요한 노드만 샘플링을 동작하게 함으로써 네트워크에 걸리는 샘플링 부하를 분산 (Load balancing)하고 전체 소모전력을 줄일 수 있다. 그 과정에서 LoRa 통신을 사용하여 노드와 게이트웨이 간에 샘플링의 결과 데이터에 대한 정보를 공유하도록 하고, 에지 노드에서 게이트웨이로부터 전송 받은 데이터를 활용해 샘플링 동작 여부를 결정하는 알고리즘을 사용한다. 그 결과 불필요한 샘플링은 하지 않도록 한다. 따라서 모든 노드에서 ADC 샘플링을 동작할 때의 전체 전력과 비교하면, 필요한 노드만 샘플링을 하도록 하여 전체 시스템에서 바라본 소모전력을 줄일 수 있다.

1. 이벤트 검출 알고리즘

본 논문에서 제안하는 피드백 회로를 사용하여 과거에 들어온 데이터 값에 의해 현재 기록하는 데이터 값을 결정하는 블록 다이어그램은 그림 1과 같다.

OBDDBE_2019_v14n2_87_f0001.png 이미지

그림 1. 센서 데이터 피드백 블록 다이어그램

Fig. 1 Sensor data feedback block diagram

센서로부터 들어오는 데이터는 이벤트를 검출하는 알고리즘의 입력으로 사용된다. 알고리즘은 검출하는 알고리즘은 입력받은 데이터를 사용하여 이벤트의 발생 여부를 판단하고, 만약 이벤트가 발생했다고 판단되면 플래시 메모리에 기록을 허용하는 신호 (Write enable)와 데이터를 출력한다. 반대의 경우로 이벤트가 발생하지 않았다고 판단되어 데이터를 플래시 메모리에 기록할 필요가 없으면, Write enable 신호를 clear하여 플래시 메모리에 데이터를 기록하지 않는다.

본 논문에서 제안하는 알고리즘에서, 데이터로부터 이벤트가 발생했는지 판단하기 위해 사용하는 방법은 데이터값의 변화량을 관찰하는 방법이다. 그림 1의 블록 다이어그램처럼 피드백 회로를 통해 현재의 데이터값뿐만 아니라 과거의 데이터값도 함께 입력받아 둘의 차이 (Variation)를 분석하여, 주변 환경에 이벤트가 발생했는지 판단하도록 한다. 가정하고 있는 데이터의 형태는 주변의 온도나 습도를 측정하는 센서처럼 일정한 값을 유지하는 양상을 가진다. 이를 이벤트가 발생하지 않고 stable한 상황을 유지한다고 간주하였고, 급격한 데이터값의 변화 양상이 나타났을 때, 이벤트가 발생한 상태라고 판단하였다. 그렇다면 굳이 모든 데이터를 플래시 메모리에 기록할 필요가 없다. 따라서 이벤트 검출 알고리즘은 플래시 메모리에 기록이 필요한 데이터와 그렇지 않은 데이터를 선별하는 역할을 한다. 이를 위한 알고리즘은 그림 2로 나타낼 수 있다.

OBDDBE_2019_v14n2_87_f0002.png 이미지

그림 2. 이벤트 검출 알고리즘

Fig. 2 Event detection algorithm (EDA)

먼저 센서로부터 들어오는 데이터들의 집합을 D라고 나타내었다. 각 데이터는 d0부터 d 까지 순서대로 입력된다. 그리고 N개의 공간을 가진 큐 Q를 생성한다. Q는 이전 데이터 di-1와 현재 데이터 di의 차이 값으로 채워진다. 즉, 데이터의 변화량 관점에서 이벤트를 판단하는 것이다. 따라서 |d1-d0|, |d2-d1|로 시작하여 |di-di-1|까지 Q에 저장된다. 그 후, Q에 저장된 데이터 변화량들의 평균값을 구한다. 이때, 평균값의 신뢰도를 높이기 위하여 Q에서 최댓값 Max(Q)과 최솟값 Min(Q)를 제외한 나머지 N-2개 값의 평균 Average(Q)을 구한다. 마지막으로, 가장 최근에 센서로부터 들어온 데이터 di가 Avg(Q)의 ±M% 범위의 경계 바깥에 존재하는 경우에만 플래시 메모리에 접근하여 기록한다. 따라서 일정한 값이 유지된다는 것은 데이터의 변화량이 많지 않다는 의미이므로, 이를 제외하고 유의미한 정도의 데이터 변화량을 가지는 경우만 플래시 메모리에 기록함으로써 플래시 메모리의 접근 빈도를 줄이고 전력 소모를 줄일 수 있다.

2. 페이지 단위 플래시 메모리 기록

앞서 본 논문에서는 센서로부터 지속해서 들어오는 데이터들을 플래시 메모리에 저장해야 한다고 하였다. 하지만 이러한 방법은 데이터마다 플래시 메모리로 접근하는 전력 오버헤드가 발생하기 때문에 데이터가 들어올 때마다 모두 플래시 메모리에 기록하는 것이 아니라, 일정한 양만큼 데이터가 모였을 때 한 번 플래시 메모리에 접근하여 데이터를 기록한다. 본 논문의 검증과정에서 사용할 범용 MCU가 한 번에 플래시 메모리에 최대로 기록할 수 있는 데이터의 양이 페이지의 크기이므로 데이터를 기록하는 양은 MCU의 페이지 단위로 선택하였다.

하나의 데이터 크기를 s라고 하자. 임의의 데이터 s가 플래시 메모리에 기록될 때의 전력은 입력 s에 대한 함수 P의 출력으로 구할 수 있다고 한다. s 크기의 데이터 N개가 모여서 하나의 페이지 크기를 이룬다고 할 때, 데이터를 한 개씩 플래시 메모리에 기록하는 경우의 에너지 Pone을 식 (1)로, 하나의 페이지만큼 플래시 메모리에 기록하는 경우의 에너지 Ppage을 식 (2)로 나타낼 수 있다.

\(P_{page}=P(N\cdot s)\)       (1)

\(P_{one}=N\cdot P(s)\)       (2)

플래시 메모리에 접근할 때 소모되는 전력은 기록하는 양보다 접근하는 빈도에 더 큰 영향을 받는다 [8]. 따라서 두 값의 관계를 나타내면 식 (3)과 같다.

\(P_{one}>P_{page}\)       (3)

그림 3과 같이 페이지 단위로 한 번에 플래시 메모리에 기록할 경우, 소모하는 에너지양을 줄일 수 있다. 이때, P는 플래시 메모리에 데이터를 기록할 때의 전력 값을 나타낸다. 플래시 메모리 기록 과정에서 소모하는 에너지W는 P와 시간을 축으로 하는 그래프의 면적과 같다. 사각형  하나의 면적이 데이터 하나를 플래시 메모리에 기록할 때 소모되는 에너지양을 나타낸다. 센서로부터 들어오는 모든 데이터를 플래시 메모리에 기록하게 되면 각각의 데이터가 만큼 소모하게 되므로 전력 소모가 크다. 따라서 들어오는 데이터를 일단 RAM에 저장한 뒤, MCU의 한 페이지 분량의 데이터가 모였을 때 이를 플래시 메모리에 한 번 접근하여 기록하게 되면 순간의 전력 P와 소요 시간은 약간 증가하지만, 그 차이는 미미하다. 이때, 센싱 데이터를 RAM의 버퍼에 저장하는 과정에서 전력 공급 문제 등에 의해 데이터의 신뢰성이 위협받을 수 있다. 다만, 본 논문에서 가정하는 상황은 장시간 간헐적으로 발생하는 이벤트에 대한 응용으로써, 이벤트가 자주 발생하는 상황과는 반대로 적은 수의 이벤트가 드물게 발생하는 상왕이다. 따라서, trade-off 관계처럼 센싱 데이터의 신뢰성 측면보다는 긴 시간 동안의 전력 소모량 감소에 더 주안점을 두어야 한다고 판단하였다. 결과적으로, 기존의 플래시 메모리 접근 빈도를 줄임으로써 같은 시간이 지났을 때 소모하는 에너지의 양이 감소하게 된다.

OBDDBE_2019_v14n2_87_f0003.png 이미지

그림 3. 샘플링 주기 변화

Fig. 3 Sampling period change

3. LoRa 통신 기반 샘플링 분산

LoRa란 Long Range의 줄임말로 장거리, 저전력 통신을 위해 개발된 무선 통신 기술이다. Bluetooth나 Wi-Fi 같은 다른 통신 방법과 비교하였을 때, LoRa는 Chirp Spread Spectrum (CSS) 변조 방식을 사용하기 때문에 적은 전력으로 수 km 내외의 먼 거리를 통신할 수 있다 [9].

일반적인 LoRa 통신의 네트워크 구조는 그림 4와 같다. 임의의 노드는 특정 게이트웨이와 관련이 없어 각 노드가 전송하는 데이터는 일반적으로 여러 게이트웨이에서 수신된다. 게이트웨이는 수신한 데이터 패킷을 이더넷이나 셀룰러를 통해 네트워크 서버로 전송한다. 마지막으로 사용자는 서버로부터 데이터를 받아 분석하고 활용하는 구조로 되어있다.

OBDDBE_2019_v14n2_87_f0004.png 이미지

그림 4. LoRa 네트워크 구조

Fig. 4 LoRa network architecture

기존의 모든 노드가 서로 연결된 메시 (Mesh) 토폴로지 (Topology)와 달리 모든 노드가 중앙의 허브와 연결된 스타 (Star) 토폴로지를 사용한다. 메시 토폴로지를 사용할 경우, 노드를 추가할 때 모든 노드와의 연결을 추가해야 하므로 네트워크의 복잡성이 증가하고, 각 노드가 필요로 하는 데이터 외에 불필요한 정보들을 다른 노드로부터 전송받으므로 소모전력이 증가하여 배터리의 지속시간이 감소한다는 단점이 있다. 반면, LoRa 통신 네트워크는 스타 토폴로지를 사용하므로 손쉽게 노드를 추가하고 확장할 수 있어 구현 비용을 줄일 수 있다. 위와 같은 특징 덕분에 LoRa 통신은 센서를 활용하여 간단한 정보를 주고받는 사물인터넷에 주로 사용된다. 또한, LoRa 통신은 Wi-Fi 또는 Bluetooth 통신과 비교하였을 때 0.3Kbps에서 50Kbps 내외의 상대적으로 느린 전송 속도를 가지지만, 전력 소모량이 매우 낮고 LoRa 네트워크의 coverage가 약 10km에 달해 사물인터넷의 특징인 저전력, 장거리에 부합한다 [10]. 또한, 4G 네트워크처럼 별도의 기지국이 필요 없고 각각의 노드들로부터 들어오는 데이터들을 취합할 게이트웨이를 구성하는 칩셋의 가격 또한 저렴하여 경쟁력이 있기에 본 논문에서 노드 간 통신의 방법으로 LoRa 통신을 선택하였다.

본 논문에서 제안하는, LoRa 통신을 사용하여 노드마다 동작하는 샘플링을 노드마다 분산하는 방법의 전체적인 구조는 그림 5와 같다. 현재 가정하고 있는 상황은 센서 네트워크의 에지 노드들이 이미 게이트웨이와 LoRa 통신을 기반으로 데이터를 송수신 중인 상황이므로, 게이트웨이에서 에지 노드로 데이터 전송에 소모되는 추가 전력은 고려하지 않도록 하였다. 또한, 스타 토폴로지를 사용하여 센서 네트워크를 확장할 때, 늘어나는 노드의 수에 따라 게이트웨이에서 처리 또는 송신하는 데이터의 수도 늘어나지만, 게이트웨이 레벨에서의 전원 공급은 충분하다고 간주하므로 확장성에 문제가 없다고 볼 수 있다.

 OBDDBE_2019_v14n2_87_f0005.png 이미지

그림 5. LoRa 통신을 활용한 샘플링 밸런싱

Fig. 5 Sampling balancing via LoRa

센서 네트워크를 이루는 하나의 센서로부터 들어오는 데이터를 ADC가 샘플링 할 때, 그리고 데이터를 샘플링하고 이를 플래시 메모리에 기록하는 과정에 따른 에너지 소모량 W를 식 (4)로 나타낼 수 있다. 이때, P는 샘플링과 플래시 메모리에 데이터를 기록할 때의 전력 값을 나타낸다.

\(W=P\cdot time\)       (4)

따라서 노드에서 소모하는 에너지 W는 P와 시간을 축으로 하는 그래프의 면적과 같다. 기존에는 위와 같은 통신, 샘플링 동작을 모든 노드가 수행하였다. 기존의 방법과 본 논문에서 제안하는 방법인, 그림 5에서의 우측 그래프처럼 여러 개의 노드가 샘플링을 분담하여 동작하는 경우의 에너지 소모량 W를 비교하였다. 노드의 샘플링 동작 여부를 선택하는 알고리즘을 통해 불필요한 노드의 샘플링을 중지하여 전체 샘플링 부하를 여러 개의 노드로 분산하였을 때, 전체 노드 시스템에서 소모하는 에너지양은 기존의 모든 노드에서 샘플링이 동작하는 경우보다 감소한다고 볼 수 있다. 이때, 샘플링이 필요한 여부를 판단하는 알고리즘은 그림 6과 같다.

OBDDBE_2019_v14n2_87_f0006.png 이미지

그림 6. 중복 데이터 검출 알고리즘

Fig. 6 Detect duplicated data algorithm

노드의 ADC 샘플링을 거친 데이터를 DS , 게이트웨이로부터 전송받은 데이터를 DG라고 하였다. 이때, 게이트웨이에서 전송하는 DG는 센서 네트워크의 목적에 따라 값이 달라지는데, 본 논문에서는 센서 주변의 상황이 stable하여 샘플링이 불필요하다고 생각되는 값을 전송한다고 가정하였다. DG는 상황에 따라 바뀔 수 있으므로 센서 네트워크 주변의 상황에 따라 유연한 대처를 할 수 있다. 알고리즘에서는 샘플링한 데이터 DS가 DG의 ±M% 범위 내부에 있으면 센서 주변의 상황이 stable하다고 간주하므로 샘플링을 중지한다. 반대로 범위 바깥에 존재하는 경우는 샘플링을 다시 작동시킨다. 이때 샘플링이 중지되어있는 시간을 조절하기 위해 cnt를 사용하여 일정 시간이 지나면 샘플링을 다시 동작하도록 한다.

Ⅲ. 실험 및 결과

본 논문에서 제안하는 기법의 타당성을 검증하기 타겟 보드로는 Cortex-M0+ 아키텍처의 STM32L0 MCU를 기반으로 하는 NUCLEO-L073RZ 보드와 LoRa 통신을 위해 Semtech SX1272MB2DAS LoRa 확장 보드가 사용되었다. 그리고 보드에 흐르는 전류을 측정하기 위해 흐르는 전류를 시각화하여 그래프로 보여주는 Atmel Power Debugger를 사용하였다. 그림 7은 NUCLEO-L073RZ와 SX1272MB2DAS 보드를 결합한 실제 실험에서 사용된 타겟 보드와 Atmel Power Debugger가 연결된 모습이다. 타겟 보드의 동작 전압이 일정하므로 Atmel Power Debugger를 통해서 관찰하는 전류를 일정한 시간 동안 측정하여 소모하는 에너지양을 측정할 수 있다. 본 실험에서는 10초 동안 흐르는 전류의 평균값을 측정하여 소모되는 에너지양을 계산한다.

 OBDDBE_2019_v14n2_87_f0007.png 이미지

그림 7. 타겟 보드 (NUCLEO-L073RZ & SX1272MB2DAS)와 Atmel Power Debugger

Fig. 7 Target board (NUCLEO-L073RZ & SX1272MB2DAS) and Atmel power debugger

실험과정에서 Rare-event가 발생하는 센서에서 보드로 데이터가 들어오는 상황은, 보드의 아날로그 입력 핀에 아무것도 연결하지 않은 상태, 즉 플로팅 입력을 사용하였다. 본 논문에서의 Rare-event 상황과 플로팅 입력의 무작위성, 그리고 일정한 값이 유지되지 않는 양상을 비교하였을 때 적당한 입력으로 간주할 수 있다고 판단하였다. 실험의 구체적인 내용은, 이전과 같이 모든 데이터를 플래시 메모리에 기록하는 경우와 이벤트 검출 알고리즘 (Event detection algorithm: EDA)를 사용했을 경우, 그리고 받아온 데이터를 MCU의 페이지 크기만큼 모아서 한 번에 플래시 메모리에 기록하는 경우 각각의 에너지 소모량을 측정하여 적용한 기법에 따른 감소량을 비교하였다. 그리고, 에지 노드와 게이트웨이 간에 LoRa 통신을 사용하여 샘플링된 데이터 정보를 공유하고 샘플링 부하를 분산시키는 경우의 에너지 소모량을 기존의 모든 에지 노드에서 샘플링이 동작하는 경우와 비교하며 진행하였다. 이때 MCU가 기본적인 동작에 필요한 constant current는 제외한 상태에서 소모되는 에너지양을 계산하였다.

본 논문에서 제안하는 이벤트 검출 알고리즘으로 인한 전류 감소를 Atmel Power Debugger로 측정하고, 소모되는 에너지양을 계산하여 기존과 비교한 그래프를 그림 8로 나타내었다. ADC 샘플링한 데이터를 모두 플래시 메모리에 접근하여 기록하는 경우, 이벤트 검출 알고리즘을 사용하여 Rare-event에 의해 발생한 데이터들만 플래시 메모리에 기록하는 경우를 비교하였다. 이벤트 검출 알고리즘에서, 변화량 범위를 정하는 파라미터 M의 값은 50%로, 데이터의 변화량을 저장하는 Q의 크기는 10으로 결정하였다. 그래프에서 볼 수 있듯이, 이벤트 검출 알고리즘을 사용하여 Rare-event의 경우에만 플래시 메모리에 접근하는 경우 소모하는 에너지의 양이 30% 감소하는 것을 확인하였다.

OBDDBE_2019_v14n2_87_f0008.png 이미지

그림 8. 이벤트 검출 알고리즘에 따른 에너지 소모량 비교

Fig. 8 Energy consumption according to event detection algorithm

그림 9는 기존의 ADC 샘플링한 데이터를 모두 플래시 메모리에 접근하여 기록하는 경우와 페이지 단위로 플래시 메모리에 저장하는 기법을 사용한 경우, 마지막으로 이벤트 검출 알고리즘까지 사용했을 때의 에너지 소모량을 비교한 그래프이다. 페이지 단위로 데이터를 플래시 메모리에 기록했을 때, 모든 데이터를 플래시 메모리에 기록한 경우에 비해 소모하는 에너지의 양이 40% 감소하는 것을 확인하였다. 또한, 추가로 이벤트 검출 알고리즘을 사용하면 소모 에너지가 66% 더 감소하는 것을 확인하였다.

OBDDBE_2019_v14n2_87_f0009.png 이미지

그림 9. 페이지 단위 플래시 메모리 기록에 따른 전력 소모량 비교

Fig. 9 Energy consumption according to flash memory write with page unit

두 개의 타겟 보드를 사용하여 본 논문에서 제안하는 LoRa 통신으로 샘플링 부하를 분산하는 기법의 타당성을 검증하기 위해 양쪽 보드 모두가 게이트웨이와 노드의 역할을 동시에 한다고 결정하였다. 실제로도 본 논문의 실험에서 쓰인 LoRa 확장 보드이 칩셋 SX1272이 LoRa 게이트웨이에도 사용되기 때문이다. 즉, 샘플링과 데이터 송수신을 모두 하는 것이다. 모든 타겟 보드에서 항상 ADC 샘플링이 동작하는 경우와 LoRa 통신으로 샘플링된 데이터 정보를 공유하고 샘플링 선택 알고리즘을 사용하여 불필요한 샘플링 동작을 하지 않는 경우를 비교하였다. 이때, 샘플링 중단이 유지되는 시간을 제어하는 cnt는 10으로, 데이터의 범위 M은 50%로 설정하였다. 또한, 게이트웨이에서 전송되는 DG의 값은 서로의 노드에서 샘플링한 데이터 값으로 대체하였다. 그림 10은 그에 따른 에너지 소모량 변화를 그래프로 나타낸 것이다. 실험 결과에서 LoRa 통신으로 샘플링 부하를 분산한 경우의 에너지 소모량이 그렇지 않은 경우보다 66% 감소하는 것을 확인할 수 있었다.

OBDDBE_2019_v14n2_87_f0010.png 이미지

그림 10. 샘플링 부하 분산에 따른 에너지 소모량 비교

Fig. 10 Energy consumption according to sampling load distribution

Ⅳ. 결론

본 논문에서는 Rare-event 센싱의 경우, 플래시 메모리에 효율적으로 접근함으로써 에지 노드를 구성하는 MCU의 장기적 전력 소모량 감소에 그 목적을 두고 있다. 센서로부터 들어오는 데이터의 변화량을 사용하여 이벤트를 검출하는 알고리즘을 구현하고, 이벤트가 발생했다고 판단되는 경우에만 데이터를 플래시 메모리에 기록함으로써 플래시 메모리로의 접근 빈도를 조절하거나, 센서로부터 들어오는 데이터를 RAM에 먼저 저장한 뒤, 이를 MCU의 페이지 단위로 플래시 메모리에 기록함으로써 소모전력이 감소하는 것을 확인하였다. 그리고 LoRa 통신을 사용하여 에지 노드와 게이트웨이 간에 협력적으로 샘플링 정보를 공유하고, 그 정보로 특정 노드에서는 불필요한 샘플링 동작을 하지 않도록 하여 샘플링을 분산하는 효과를 내었다, 위의 방법들을 통하여 거시적인 관점에서 바라봤을 때 전체 에지 노드의 소모전력이 감소하는 시스템을 제안하고, 이를 타겟 보드를 사용하여 검증하였다. 절대적 관점에서 실험을 통해 감소한 전력은 크지 않지만, 본 논문에서 제안하는 장시간 Rare-event 센싱 환경에 응용하였을 때 누적된 소모전력 감소량은 에지 노드의 저전력 구동에 큰 영향을 미칠 수 있다고 생각된다.

참고문헌

  1. Avaliable on : https://www.finyear.com/Gartner-Says-the-Internet-of-Things-Installed-Base-Will-Grow-to-26-Billion-Units-By-2020_a27901.html
  2. Avaliable on : https://www.eembc.org/ulpmark/
  3. B. Karg, S. Lucia, "Towards Low-energy, Low-cost and High-performance IoT-based Operation of Interconnected Systems," Proceedings of IEEE 4th World Forum on Internet of Things (WF-IoT), pp. 706-711, 2018.
  4. Z. Wang, Y. Liu, Y. Sun, Y. Li, D. Zhang, H. Yang, "An Energy-efficient Heterogeneous Dual-core Processor for Internet of Things," Proceedings of IEEE International Symposium on Circuits and Systems (ISCAS), pp. 2301-2304, 2015.
  5. K. Leuenberger, R. Gassert, "Low-power Sensor Module for Long-term Activity Monitoring," Proceedings of the IEEE Engineering in Medicine and Biology Society, pp. 2237-2241, 2011.
  6. D. Balsamo, A. Elboreini, B. M. Al-Hashimi , G.V. Merrett, "Exploring ARM Embed Support for Transient Computing in Energy Harvesting IoT Systems," Proceedings of 7th IEEE International Workshop on Advances in Sensors and Interfaces (IWASI), pp. 115-120, 2017.
  7. M.D. Scott, B.E. Boser, K.S. Pister. "An Ultra -low Power ADC for Distributed Sensor Networks," Proceedings of European Solid-State Circuits Conference, pp. 255-258, 2002.
  8. Avaliable on : https://www.st.com/resource/en/datasheet/stm32l073rz.pdf
  9. M. Bor, J.E. Vidler, U. Roedig. "LoRa for the Internet of Things," Proceedings of the 2016 International Conference on Embedded Wireless Systems and Networks, pp. 361-366, 2016.
  10. L. Yi, G. Lee, H. Kim, "A Study on the LoRa Systems," Proceedings of Symposium of the Korean Institute of Communications and Information Sciences, pp. 217-218, 2017 (in Korean).