1. 서 론
급속도로 진행되는 IT 기술의 발전으로 인해 스마트 폰, 태블릿 등의 여러 모바일 디바이스와 스마트 안경, 스마트 워치 등의 웨어러블 디바이스의 사용량이 증가하고 있다. 이와 동시에 임베디드 시스템은 디바이스의 다양한 요구사항을 만족시키기 위해 고성능화 되었으며, 동시에 소형화 되어 IoT 등이 가능하게 되었다[1-3]. 고성능화로 인해 복합적이고 많은 기능들을 가진 시스템을 모두 수행하기 위해서는 성능이 뛰어난 프로세서들을 사용해야만 하고, 이러한 시스템들을 소형화시키기 위해 배터리의 용량에 제약을 두어 설계하는 것이 일반적이다. 하지만 많은 기능들을 수행하기 위한 목적으로 무작정 고성능의 프로세서들을 사용하기에는 소비전력 증가 문제가 존재하기 때문에 임베디드 시스템의 실시간성을 만족하기 위한 디바이스의 장시간 사용이 불가능해진다. 이렇게 임베디드 시스템은 많은 제약이 존재하기 때문에 소비전력을 줄여 에너지 소비를 최소화함으로써 배터리 사용 시간(Battery Life Time)을 늘릴 수 있는 저전력 기술에 대한 연구가 수반되어야 한다[4-6].
이전의 많은 연구는 각 메모리의 단일 효율을 높이는 연구가 주로 진행되었다. 특히 시스템에서 요구하는 전력이 증가하는 것을 근본적으로 줄이고자, 전원이 공급되지 않아도 데이터를 보존할 수 있어 대기 전력의 소모가 없는 비휘발성 메모리에 초점을 맞춘 연구가 대부분을 차지한다[7-10].
본 논문에서는 비휘발성 메모리보다 낮은 전력으로 구동되기 때문에 사용되는 형태에 따라 소비전력의 효율을 높일 수 있다는 장점을 가진 휘발성 메모리에 초점을 맞추어 연구를 진행하였다. 근본적으로 프로그램은 비휘발성 메모리에서 모든 코드가 수행되므로 본 연구에서는 저전력으로 구동하였을 때 전력 및 에너지의 효율성이 높아질 것으로 예측되는 부분을 실험과 논리적인 분석을 통해 파악한다. 이 영역을 분할하여 비휘발성 메모리와 휘발성 메모리에 위치시켜 전체 프로그램을 수행함으로써 보다 효율적인 임베디드 시스템을 구축할 수 있는 방법을 제안하고자 한다.
본 논문의 구성은 다음과 같다. 2장에서는 저전력 기법 및 관련연구에 대해 소개하고, 이를 기반으로 한 저전력 메모리 관련 연구를 기술하며, 3장에서는 ARM Cortex-M4 마이크로프로세서를 탑재한 MSP 432P401R Launchpad와 Command Linker File의 구성 및 특성에 대해 기술하고, 실험을 위해 사용하는 Composer Studio (CCS) Integrated Development Environment (IDE)의 특성에 대해 기술한다. 4장에서는 비휘발성 메모리와 휘발성 메모리에서 프로그램을 수행하기 위한 방법과 실험 방법에 대해 기술한다. 5장에서는 기존의 프로그램 수행 방식과 동일하게 비휘발성 메모리에서 시간복잡도가 다른 여러 프로그램을 수행하는 실험을 진행한 후 결과의 분석을 통해 전력과 에너지의 효율성을 높일 수 있는 부분을 파악하여 분할한다. 다음으로 분할한 영역을 비휘발성 메모리와 휘발성 메모리에서 각각 수행함으로써 전력과 에너지의 효율성이 어느 정도 증가하였는지에 대한 정량적인 분석을 진행하여 효율적인 임베디드 시스템을 구축할 수 있는 방법을 제안하고, 마지막으로 6장에서 본 논문의 결론을 내린다.
2. 저전력 기법 및 관련 연구
전력을 관리하는 기법에는 여러 수준에서 매우 다양하게 존재한다. 하지만 임베디드 시스템과 같이 저전력을 요구하는 시스템이나 소프트웨어 수준에서 사용되는 기법은 대표적으로 동적 전력 관리 기법과 동적 전압 조절 기법이 있다.
동적 전력 관리 기법(Dynamic Power Management)은 소비전력이 가장 큰 CPU Frequency와 Bus Clock의 속도를 조절하여 전체 시스템의 소비전력을 감소시키는 전력 관리 기법으로 특히 마이크로프로세서에 가장 효과적인 기법으로 알려져 있다. 시스템 디자이너가 정책 관리자를 통해 시스템에서 제공하는 CPU Frequency와 Bus Clock에 맞추어 각각의 응용프로그램이 요구하는 CPU Frequency와 Bus Clock으로 이루어진 집합을 정의하여 여러개의 정책을 생성한다. 생성한 정책 하에서 정책 관리자가 응용프로그램을 구성하는 태스크들에게 해당 태스크가 요구하는 CPU Frequency와 Bus Clock을 할당하여 응용프로그램 구동시의 QoS를 보장함과 동시에 소비전력을 줄이는 방법이다. 즉, 처리율과 소비전력 간의 상관관계를 통해서 남은 전력이 부족할 경우에 처리율 저하를 최소화 시키면서 소비전력을 줄이는 방법이라 할 수 있다[11,12].
동적 전압 조절 기법(Dynamic Voltage Scaling)은 CMOS 회로로 구성되는 대부분의 컴퓨터 시스템의 프로세서의 공급 전압을 조절하여 에너지 소모량을 줄이는 기법이다. 소비전력은 공급 전압의 제곱에 비례하기 때문에 공급 전압을 감소시키는 것은 전력의 소모를 줄이는 매우 효과적인 방법이라 할 수 있다. 특히나 임베디드 시스템과 같은 실시간 시스템에서는 마감 시간 제약 조건이 존재하기 때문에 마감시간을 만족시키는 범위 내에서 태스크들의 전압을 낮추어 낮은 속도로 수행하게 함으로써 에너지와 소비전력을 줄여야 한다. 이러한 실시간 성을 만족하기 위해서는 태스크들의 유휴 시간의 계산이 필요하다. 유휴 시간은 동적 전압 조절 기법을 구현하기 위한 알고리즘 별로 다르게 계산된다. 오프라인 알고리즘에서의 유휴 시간은 시스템에 제공되는 시작 시간과 마감시간을 기반으로 하여 계산하는데, 태스크의 수행이 마감시간 보다 일찍 완료되어 프로세서의 상태가 유휴 상태로 전이된 시간을 측정함으로써 이루어진다. 온라인 알고리즘에서의 유휴 시간은 실제 측정한 태스크의 수행 시간과 마감시간을 기반으로 하여 계산된다. 이렇게 계산된 유휴 시간은 태스크의 수행 시간 전에 값을 계산할 수 있으므로, 이를 기본으로 태스크를 구동시키는 CPU Frequency와 시작 전압 값의 조절하여 낮은 속도로 수행하게 한다. 낮은 속도로 수행하게 되면 태스크의 전체 수행 시간이 길어진다는 기회비용이 존재하지만 이를 감안해도 소비전력 감소의 효과는 크다고 할 수 있다[13,14].
저전력 임베디드 시스템을 구현하기 위한 많은 연구들은 주로 두 방향으로 진행되고 있다. 첫째로 기존에 존재하는 저전력 기법을 중심으로 그 기법을 임베디드 시스템에 적용하는 방식과 임베디드 시스템의 메모리 자체를 저전력화 시키는 방식이 존재한다. 이는 여러 메모리 간의 성능을 비교하여 최적화 시키는 것이 아니라 한 메모리의 특성에만 집중하므로 다양한 메모리가 존재하는 임베디드 시스템에 적합한 접근 방법이라고 하기 어렵다. 그러므로 본 연구에서는 단일 메모리가 아닌 여러 메모리, 특히 비휘발성과 휘발성 메모리 사이의 소비전력 대비 프로그램 수행 시간의 비교를 통해 최적의 효율을 가지는 임베디드 시스템을 제안하고자 한다.
3. 소비전력 측정을 위한 실험 환경
소비전력 측정 실험을 위해 Fig. 1과 같은 TI사의 MSP432P401R Launchpad와 Code Composer Studio (CCS) Integrated Development Environment (IDE)의 6.1.2 버전을 사용하였다.
Fig. 1.Experimental Environment (a) MSP432P401R Launchpad, (b) CCS IDE v6.1.2.
3.1 MSP432P401R Launchpad의 특성
본 논문에서 프로그램 수행 시 사용할 SoC(System on Chip) 디바이스는 Fig.1의 (a)와 같은 MSP 432P201R Launchpad는 TI사에서 생산하는 마이크로컨트롤러 중 저전력으로 프로그램을 실행할 수 있도록 특수하게 설계된 마이크로컨트롤러이다. 이 디바이스는 비용 대비 낮은 전력으로 최대 속도 48 MHz의 고효율 신호 처리 기능이 구현된 32bit ARM Cortex-M4F 마이크로프로세서와 256KB의 Flash, 그리고 64KB의 SRAM으로 결합된 구성을 가지고 있다. 해당 디바이스의 가장 큰 특징은 EnergyTraceTM 기술이 구현될 수 있게 설계되었다는 점이다. 위에서 언급한 마이크로프로세서 외에 XDS110-ET 디버거와 함께 EnergyTrace+ 하드웨어가 내장되어 있어 프로그램이 실행되는 동안 실시간으로 디바이스 내부의 전력 측정과 디버깅이 가능하다. 또한 시스템 전력 소비와 소프트웨어 코드를 개선하여 저전력을 구현하는 MSP432P401R Launchpad의 특성을 극대화 시키는 ULP Advisor를 함께 사용하면 ± 2%의 정확도를 가지고 전력 소모량과 에너지 소비량, 배터리 사용 시간까지 실시간으로 모니터링 가능하다[15]. 즉, 본 논문에서 사용하는 MSP432P401R Launchpad는 저전력 임베디드 시스템을 구현하고 그 효율성을 측정하기에 가장 최적화된 디바이스라 볼 수 있다. 해당 마이크로컨트롤러의 블록 다이어그램은 다음 Fig. 2와 같다[16].
Fig. 2.General Block Diagram of MSP432P401R.
3.2 Command Linker File의 구성
일반적으로 두 개 이상의 프로그램을 합쳐 실행가능한 하나의 프로그램으로 만드는 작업은 링커에 의해 이루어진다. MSP432P401R 디바이스에서는 Linker에게 직접적으로 명령을 지시하여 수행하게 하는 수단을 제공한다. Command Linker File 이 그 핵심 방법으로, 이 링커 파일을 변경함으로써 메모리의 형태 및 설정을 수정하거나 사용자 임의의 수행 영역을 지정하는 등의 활동을 가능하게 한다. 따라서 본 논문에서는 기본적으로 비휘발성 메모리인 Flash에 정의되는 프로그램 코드를 휘발성 메모리인 SRAM으로 이동시키기 위해 Command Linker File을 재구성하였다. 이는 구체적인 주소를 기반으로 메모리의 영역을 할당하는 MEMORY directive의 수정을 통해 구현이 가능하다.
MSP432P401R 디바이스의 메모리는 대략적으로 아래 Fig. 3과 같은 구조를 가진다. 기본적으로 Reserved 되어 사용할 수 없는 부분을 제외하면 Code Zone과 SRAM Zone으로 구분할 수 있다. Flash의 Main Memory는 Code Zone에 존재하고 SRAM은 일부 영역이 Code Zone에, Main Memory가 SRAM Zone에 존재한다. SRAM은 Flash와 달리 그 영역이 둘로 분할되어 동시에 SRAM에 접근하는 것을 가능하게 한다. 그 영역들은 각기 다른 Zone에 위치하는데 이것은 프로그램 코드 및 데이터를 Load하고 Store하는 작업이 분리되어 있기 때문이다. 다시 말해, SRAM에서 프로그램 코드를 저장하거나 데이터를 읽어오는 과정이 각각 다른 영역에서 수행되므로 SRAM에 프로그램을 이동시키기 위해서는 저장될 주소와 불러올 주소를 Command Linker File의 MEMORY directive의 인자로 재 정의하여 메모리를 할당하여야 한다[16].
Fig. 3.Basic Memory Map of MSP432P401R.
3.3 Code Composer Studio의 특성
Code Composer Studio (CCS)는 TI사의 마이크로컨트롤러 및 임베디드 프로세서의 통합 개발 환경(Integrated Development Environment, IDE)으로 Eclipse Frame Word를 기반으로 하는 TI사의 고급 임베디드 시스템 개발 및 디버깅 도구이다[17].
4. 프로그램이 수행되는 메모리에 따른 소비전력 측정 및 실험 방법
보통의 임베디드 시스템의 경우 프로그램은 Flash와 같은 비휘발성 메모리에 먼저 프로그램이 Load되고, Run 되는 단계를 거쳐 수행되기 때문에 본 논문에서 사용한 실험 환경에서 별도의 코드 수정 작업이 불필요 하다. 하지만 SRAM과 같은 휘발성 메모리에서 프로그램을 수행시키기 위해서는 Command Linker File(.cmd)과 프로그램 코드(.c)의 수정작업을 거쳐야만 전력과 에너지 소비량을 측정할 수 있다.
Command Linker File을 수정하기 위한 작업은 Fig. 4의 (a)와 같다. 기존의 Command Linker File에는 SRAM을 사용하기 위한 공간이 정의되어 있지 않기 때문에, MEMORY 영역을 나누어 SRAM을 위한 공간을 따로 만드는 작업이 가장 먼저 이루어져야한다. 다음으로 SECTIONS 영역에서 RAM에서 프로그램이 수행될 수 있도록 Flash에 바이너리를 생성한 후에 Load 작업을 수행한다. 마지막으로 SECTIONS 영역에서 RAM에서 수행되어질 프로그램이 저장되고, 불러와질 공간을 생성하여야한다. Command Linker File의 수정이 끝난 후, 프로그램 코드의 수정이 이루어져야하며 그 작업은 Fig. 4의 (b)와 같다. RAM에서 프로그램을 실행시키기 위해 Flash에 위치한 프로그램을 RAM으로 옮기길 때 사용하는 함수 포인터를 정의하고 링커 파일에서 정의한 변수들을 extern으로 참조하는 작업등이 필요하다. 다음으로 RAM으로 프로그램을 복사하기 위한 memcpy 작업을 수행한 후 마지막으로 선언한 함수 포인터가 옮겨진 코드를 가리키게 한 후에 Function을 호출하는 작업을 수행하여야 한다. 이러한 작업들로 기존의 방식대로 Flash에서 프로그램이 수행되는 것이 아닌, SRAM에서 프로그램을 수행하게 되므로 SRAM에서의 소비전력 측정이 가능해진다.
Fig. 4.Operation for Executing a Program in the Volatile Memory of (a) Command Linker File, (b) Program Code.
실험은 먼저 Flash에서 전력을 가장 많이 소모하는 영역을 알아보기 위하여 세 가지의 시간복잡도를 가지는 프로그램을 구현하였다. 이 실험을 기반으로 전력을 많이 소모하는 영역을 Flash와 SRAM에 옮겨 어떠한 메모리에 위치하였을 때 저전력으로 구동되는지 알아보기 위한 실험을 진행하였다. 프로그램 내에 구현된 Function은 상수형(Constant), 평방형(Quadratic), 계수형(Factorial)의 시간복잡도를 가지며, 소비전력을 측정하기 위한 프로그램의 수행시간은 1회 당 60초씩, 총 10회의 반복적인 실험을 진행하였다.
5. 실험 결과 및 분석
5.1 시간복잡도에 따른 실험 및 분석
프로그램을 효과적으로 분석하기 위해서는 일반적으로 시간 또는 공간복잡도를 이용하여 해석한다. 시간복잡도는 프로그램이 정상적으로 수행되는데 소요되는 시간과 기본 연산의 함수 사이의 관계를 수식으로 나타낸 것으로 실제 측정값이 아닌 이론적인 분석 값을 의미한다. 기본적으로 가장 많이 사용되는 시간복잡도의 표기법은 점근적인 수치를 표현하는데, 상한선을 나타내는 Big-Oh(O), 하한선을 나타내는 Omega(Ω), 그리고 비교적 정확한 경계를 나타내는 Order(Θ)까지 총 세 가지가 있다. 본 논문에서는 프로그램의 상한선을 보여주는 Big-Oh(O) 표기법을 사용함으로써 최악의 경우 프로그램에서 소모될 전력을 측정하고 그 효율을 알아보고자 한다.
이러한 분석 기법은 프로그램의 깊이를 파악하고 연산의 횟수와 수행 시간을 짐작하며 결론적으로 해당 프로그램의 최적성을 판단할 수 있는 척도가 된다. 하지만 소프트웨어적인 요소만을 판단 대상으로 하여 외부의 영향을 배제한다는 한계점이 존재한다. 다른 시스템에 비해 실험 환경의 변화에 민감하게 반응하는 임베디드 시스템은 소프트웨어적 실험 환경뿐만 아니라 하드웨어와 관련된 실험 대상 디바이스와 도구 역시 전체 시스템의 성능 및 안정성을 파악하는 매우 중요한 요소 이므로 본 논문에서는 시간복잡도와 더불어 반복된 실험을 통해 도출된 실험 결과를 함께 분석하고자 한다.
Fig. 5에서 시간복잡도가 증가함에 따라 그 연산을 수행하는 Function이 전체 소비전력에서 차지하는 비율이 증가하는 것을 볼 수 있다. 복잡도와 관계없이 기본적으로 Main보다는 Function이 시간과 전력 면에서 높은 비율을 차지하지만 이러한 경향성은 복잡도가 높아지면 더 확연하게 드러난다. (c)의 O(n!)의 경우, Main이 전체 전력의 0.1%만 소모하고 나머지 99.9%는 Function에 의해 소모된다. 이와 같은 실험을 통해 시간복잡도가 충분히 높을 경우 Function이 소비전력에서 차지하는 비율이 커지기 때문에 소비전력에 미치는 영향 또한 커진다는 것을 확인할 수 있었다. 본 절의 실험에서 도출된 결과를 기반으로 비교적 적은 용량을 가지고 있지만 저전력으로 구동되는 SRAM으로 Function을 옮겨 실행한다면 연산 대비 전력 및 에너지 효율을 더욱 더 높일 수 있을 것이다.
Fig. 5.Operation of Program Execution in the Volatile Memory (Flash). (a) O(1), (b) O(n2), (c) O(n!).
5.2 메모리에 따른 실험 및 분석
프로그램 코드 중 소비전력에서 가장 높은 비율을 차지하는 Function을 SRAM으로 옮기는 것이 전력과 에너지 측면에서 효율을 높일 수 있을 것이라는 5.1절의 결론을 기반으로 메모리에 따른 소비전력을 측정하기 위한 실험을 진행하였다. 각 메모리에서 프로그램 코드를 수행하기 위해 Flash의 경우에는 Main 함수에서 반복적으로 Function을 호출하도록 구현하였으며, SRAM의 경우에는 Main함수에서 반복적으로 memcpy를 수행함으로써 동일한 Function을 호출하도록 구현하였다.
실험 결과 Fig. 6의 (a)와 같이 시간복잡도가 가장 낮은 상수형의 경우 SRAM에서 Function을 수행하기 위한 전처리 작업과 memcpy 등의 추가적인 작업(본 논문에서는 이러한 모든 작업을 기회비용이라 부른다.)을 수행하는 것에 대한 소비전력이 차지하는 비율이 가장 높았다. 하지만 Fig. 6의 (b), (c)와 같이 시간복잡도가 상수형(O(1))에서 평방형(O(n2))으로 증가할 때에 기회비용이 차지하는 비율은 급격하게 줄어들었으며, 가장 시간복잡도가 높은 계수형(O(n!)) 경우는 7.8%로 매우 낮은 비율을 차지하는 것을 확인 할 수 있었다. 또한 Fig. 7에서 볼 수 있듯 상수형의 경우에는 SRAM의 소비전력이 더 크지만, 평방형과 계수형의 경우에는 SRAM의 소비전력이 더 작았다. 또한 Flash 대비 SRAM의 전력 감소율도 증가하는 것을 미루어 보았을 때 연산 횟수가 적은 상수형의 경우에는 기회비용의 비율이 Flash에서 Function을 수행하는 것만큼의 비율을 차지하여 SRAM으로 옮기는 것에 대한 Overhead가 매우 크지만, 연산이 복잡해지는 평방형과 상수형의 경우에는 이러한 Overhead가 존재함에도 불구하고 전력과 에너지 측면에서 더 높은 효율을 보임을 확인할 수 있었다.
Fig. 6.Operation of Program Execution in the Volatile Memory (Flash) vs. Non-Volatile Memory (SRAM). (a) O(1), (b) O(n2), (c) O(n!).
Fig. 7.Power Consumption and Reduction Ratio by Time Complexity in both Memories.
6. 결 론
임베디드 시스템은 시스템의 특성 상 배터리 용량의 제약이 존재하므로 전체 메모리 구조 중 비휘발성 메모리가 거의 대부분을 차지한다. 즉, 거의 모든 프로그램 코드가 비휘발성 메모리에서 직접 수행되는 방식으로 시스템이 동작하는 것이다. 반면 휘발성 메모리는 적은 용량임에도 불구하고 사용되는 용도에 따라 전력과 속도 대비 높은 효율을 보인다는 점에 착안하여, 각각의 메모리의 특성에 기반을 둔 소비전력 대비 프로그램 수행 시간의 비교 및 분석을 통해 저전력 임베디드 시스템의 설계에 도움을 주고자 하였다.
일반적으로 프로그램의 효율성을 판단하기 위한 기준으로 시간복잡도를 가장 많이 사용하는데 이러한 분석 기법은 하드웨어적 요소가 소프트웨어적 요소보다 중요한 임베디드 시스템의 성격을 반영하지 못한다. 그러므로 본 논문에서는 Launchpad에 이식할 프로그램 코드를 세 가지의 시간 복잡도를 가지는 코드로 작성하고 반복적으로 실험 결과를 도출함으로써 추가적인 분석 기법이 적용 가능하도록 진행하였다.
결론적으로, 시간복잡도가 증가함에 따라 연산을 수행하는 Function이 전체 소비전력에서 차지하는 비율이 증가함을 알 수 있었다. 이 뿐만 아니라 전력에서 높은 비율을 차지하는 Function을 휘발성 메모리로 이동시켜 수행하는 것이 비휘발성 메모리에 위치한 Function을 휘발성 메모리로 이동시키는 데에 드는 기회비용이 존재함에도 불구하고 오히려 전력과 에너지 측면에서 높은 효율을 보임을 확인 할 수 있었다.
향후 연구에서는 프로그램 코드에 따라 평균적으로 요구되는 어셈블리어 코드의 메모리 접근 횟수에 대한 이론적인 접근과 실험적인 데이터의 수집을 기반으로 하여 휘발성 메모리와 비휘발성 메모리의 분할된 영역으로 Function을 위치시켜 수행함으로써 각각의 메모리에 어떠한 영향을 미치는지에 대한 실험을 진행할 것이다. 이를 통해 더욱 더 효율적인 저 전력 임베디드 시스템을 구축할 수 있을 것으로 기대된다.
References
- D. Shin, J. Jung, and S. Kang, “Trends and Forecasting in IoT,” Journal of Korean Society for Internet Information, Vol. 14, No. 2, pp. 32-46, 2013.
- G. Kim, K. Lee, and K. Lee, "IoT Technology Trends based on Wearable Devices," Journal of The Korea Contents Association, Vol. 13, No. 1, pp. 25-30, 2015.
- J. Lee, S.H. Kim, S.B Lee, H.J. Choi, and J.J. Jung, "A Study on the Necessity and Construction Plan of the Internet of Things Platform for Smart Agriculture," Journal of Korea Multimedia Society, Vol. 17, No. 11, pp. 1313-1324, 2014. https://doi.org/10.9717/kmms.2014.17.11.1313
- R. Bonndade and D. Ma, "Hardware-software co-design of an Embedded Power Management Module with Adaptive On-chip Power Processing Schemes," Proceedings of 2010 IEEE International Symposium on Circuits and Systems, pp. 617-620, 2010.
- L. Beinini, G. Castelli, A. Macii, E. Macii, M. Poncino, and R. Scarsi, "Life-time Analysis of Batteries Used in Portable Digital Systems," Proceedings of 10th Mediterranean Electrotechnical Conference, pp. 240-243. 2000.
- J. Garche and A. Jossen, "Battery Management Systems (BMS) for Increasing Battery Life Time," Proceedings of The Third International Telecommunications Energy Special Conference, pp. 85-88, 2000.
- J. Lee, J. Choi, and S. Kim, “Research Trend on Low Power On-Chip Memory Systems,” Journal of Communications of the Korean Lnstitute of Information Scientists and Engineers, Vol. 20, No. 10, pp. 37-44, 2002.
- J. Jin, T. Lee, S. Lee, and K. Chung, "Implementation of Efficient and Reliable Flash File System," Journal of Korea Multimedia Society, Vol. 11, No. 5, pp. 651-660, 2008.
- H. Song and O. Kwon, "Delayed Write Scheme to Enhance Write Performance of Flash Memory based Embedded Database Systems," Journal of Korea Multimedia Society, Vol. 12, No. 2, pp. 165-177, 2009.
- H. Hidaka, "Evolution of Embedded Flash Memory Fechnology for MCU," Proceedings of IEEE International Conference on IC Design & Technology, pp. 1-4, 2011.
- V. Tiwari, R. Donnelly, S. Malik, and R. Gonzalez, "Dynamic Power Management for Microprocessors-A Case Study," Proceedings of Tenth International Conference on VLSI Design, pp. 185-192, 1997.
- B. Brock and K. Rajamani, "Dynamic Power Management for Embedded Systems," Proceedings of IEEE Systems-On-Chip Conference, pp. 416-419, 2003.
- T. Kim, "Application-Drien Low-Power Techniques Using Dynamic Voltage Scaling," Proceeding of 12th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, pp. 199-206, 2006.
- T.D. Burd and R.W. Brodersen, "Energy Efficient CMOS Microprocessor Design," Proceedings of the 28th Annual Hawaii International Conference on System Sciences, pp. 288-297, 1995.
- Overview for MSP432P4x, http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/low_power_performance/msp432p4x/overview.page, (accessed Apr., 1, 2016).
- MSP432P401R LaunchPadTM Development Kit (MSP EXP432P401R), http://www.ti.com/lit/ug/slau597a/slau597a.pdf, (accessed Apr., 92016).
- Code Composer Studio(CCS) Integrated Development Enviroment(IDE), http://www.ti.com/tool/ccstudio#Technical Documents, (accessed Apr., 17 2016).
Cited by
- 영상기기와 무선통신이 가능한 저전력 구동의 이너탭 검사시스템 개발 vol.21, pp.6, 2016, https://doi.org/10.9717/kmms.2018.21.6.649
- Modeling the Power Consumption of Function-Level Code Relocation for Low-Power Embedded Systems vol.9, pp.11, 2016, https://doi.org/10.3390/app9112354