ICEr: An Intermittent Computing Environment Based on a Run-Time Module for Energy-Harvesting IoT Devices with NVRAM
Abstract
:1. Introduction
2. Background
2.1. Energy Harvesting and Intermittent Computing
2.2. Non-Volatile Random Access Memory
2.3. Related Works
2.3.1. Programming Model
2.3.2. Compiler-Based Model
2.3.3. JIT Model
3. Our Proposed Approach: ICEr
3.1. System Structure
3.1.1. Energy Checker
3.1.2. Controller
3.2. State Diagram of ICEr
3.3. Forward Progress and Data Consistency
3.4. Energy Efficiency
3.5. Programmability and Portability
4. Experimental Results and Discussion
4.1. Experimental Environment
- E0: 3.3 V DC signal. It denotes an environment with a sufficient energy supply.
- E1: A sine wave signal with a period of 3 s. Sine waves ranging from 1.8 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is fast and power failure does not occur.
- E2: A sine wave signal with a period of 3 s. Four sine waves ranging from 1.8 V to 2.6 V and one sine wave ranging from 1.5 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is fast and power failure occasionally occurs.
- E3: A sine wave signal with a period of 3 s. Sine waves ranging from 1.5 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is fast and power failure continuously occurs.
- E4: A sine wave signal with a period of 5 s. Sine waves ranging from 1.8 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is slow and power failure does not occur.
- E5: A sine wave signal with a period of 5 s. Four sine waves ranging from 1.8 V to 2.6 V and one sine wave ranging from 1.5 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is slow and power failure occasionally occurs.
- E6: A sine wave signal with a period of 5 s. Sine waves ranging from 1.5 V to 2.6 V repeat. It denotes an environment where the charging and discharging speed is slow and power failure continuously occurs.
4.2. Operation Validation and Performance Measurement
4.2.1. Benchmarks
- crc32: A benchmark calculating 32-bit Cyclic Redundancy Check (CRC).
- edn: A benchmark performing vector multiplication.
- nbody: A benchmark solving multibody problems that find the future motion states based on mass, initial position, and initial velocity of multiple objects.
- picojpeg: A benchmark decompressing Joint Photographic Experts Group (JPEG) files.
- st: A benchmark calculating the mean, variance, standard deviation, and correlation coefficient of two arrays.
- ud: A benchmark testing the impact of the conditional flow.
4.2.2. Execution Time
4.2.3. Number of ICEr Operations
4.2.4. Energy Consumption
4.2.5. Memory Usage
4.3. Utilization in a Real IoT Application
4.3.1. Application
4.3.2. Energy Consumption
5. Conclusions
Author Contributions
Funding
Conflicts of Interest
Abbreviations
JIT | Just-In-Time |
ICEr | Intermittent Computing Environment based on a run-time module |
IoT | Internet of Things |
NVRAM | non-volatile random access memory |
EEPROM | electrically erasable programmable read-only memory |
RAM | random access memory |
MRAM | magnetoresistive random access memory |
FRAM | ferroelectric random access memory |
WAR | Write-After-Read |
SRAM | static random access memory |
MCU | Micro Controller Unit |
CRC | Cyclic Redundancy Check |
JPEG | Joint Photographic Experts Group |
References
- Liang, Y.; Yu, L. Development of Semiconducting Polymers for Solar Energy Harvesting. Polym. Rev. 2010, 50, 454–473. [Google Scholar] [CrossRef]
- Lallart, M.; Cottinet, P.J.; Guyomar, D.; Lebrun, L. Electrostrictive polymers for mechanical energy harvesting. J. Polym. Sci. Part B Polym. Phys. 2012, 50, 523–535. [Google Scholar] [CrossRef]
- Sample, A.P.; Yeager, D.J.; Powledge, P.S.; Mamishev, A.V.; Smith, J.R. Design of an RFID-Based Battery-Free Programmable Sensing Platform. IEEE Trans. Instrum. Meas. 2008, 57, 2608–2615. [Google Scholar] [CrossRef]
- Karagozler, M.E.; Poupyrev, I.; Fedder, G.K.; Suzuki, Y. Paper Generators: Harvesting Energy from Touching, Rubbing and Sliding. In Proceedings of the 26th Annual ACM Symposium on User Interface Software and Technology, St. Andrews, UK, 8–11 October 2013; Association for Computing Machinery: New York, NY, USA, 2013; pp. 23–30. [Google Scholar] [CrossRef]
- Paradiso, J.A. Systems for human-powered mobile computing. In Proceedings of the 43rd ACM/IEEE Design Automation Conference, San Francisco, CA, USA, 24–28 July 2006; pp. 645–650. [Google Scholar] [CrossRef]
- Juang, P.; Oki, H.; Wang, Y.; Martonosi, M.; Peh, L.S.; Rubenstein, D. Energy-Efficient Computing for Wildlife Tracking: Design Tradeoffs and Early Experiences with ZebraNet. SIGOPS Oper. Syst. Rev. 2002, 36, 96–107. [Google Scholar] [CrossRef]
- Manchester, Z. KickSat. 2015. Available online: https://kicksat.github.io/ (accessed on 4 March 2021).
- Lucia, B.; Balaji, V.; Colin, A.; Maeng, K.; Ruppel, E. Intermittent Computing: Challenges and Opportunities. In 2nd Summit on Advances in Programming Languages (SNAPL 2017); Lerner, B.S., Bodík, R., Krishnamurthi, S., Eds.; Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: Dagstuhl, Germany, 2017; Leibniz International Proceedings in Informatics (LIPIcs); Volume 71, pp. 8:1–8:14. [Google Scholar] [CrossRef]
- Colin, A.; Lucia, B. Chain: Tasks and Channels for Reliable Intermittent Programs. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016, Amsterdam, The Netherlands, 30 October–4 November 2016; Association for Computing Machinery: New York, NY, USA, 2016; pp. 514–530. [Google Scholar] [CrossRef] [Green Version]
- Maeng, K.; Colin, A.; Lucia, B. Alpaca: Intermittent Execution without Checkpoints. arXiv 2019, arXiv:1909.06951. [Google Scholar] [CrossRef] [Green Version]
- Woude, J.V.D.; Hicks, M. Intermittent Computation without Hardware Support or Programmer Intervention. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16), Savannah, GA, USA, 2–4 November 2016; USENIX Association: Savannah, GA, USA, 2016; pp. 17–32. [Google Scholar]
- Maeng, K.; Lucia, B. Adaptive Dynamic Checkpointing for Safe Efficient Intermittent Computing. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18), Carlsbad, CA, USA, 8–10 October 2018; USENIX Association: Carlsbad, CA, USA, 2018; pp. 129–144. [Google Scholar]
- Ahmed, S.; Alizai, M.H.; Siddiqui, J.H.; Bhatti, N.A.; Mottola, L. Poster Abstract: Towards Smaller Checkpoints for Better Intermittent Computing. In Proceedings of the 17th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN), Porto, Portugal, 11–13 April 2018; pp. 132–133. [Google Scholar] [CrossRef]
- Ransford, B.; Sorber, J.; Fu, K. Mementos: System Support for Long-Running Computation on RFID-Scale Devices. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, Newport Beach, CA, USA, 5–11 March 2011; Association for Computing Machinery: New York, NY, USA, 2011; pp. 159–170. [Google Scholar] [CrossRef]
- Balsamo, D.; Weddell, A.S.; Merrett, G.V.; Al-Hashimi, B.M.; Brunelli, D.; Benini, L. Hibernus: Sustaining Computation During Intermittent Supply for Energy-Harvesting Systems. IEEE Embed. Syst. Lett. 2015, 7, 15–18. [Google Scholar] [CrossRef] [Green Version]
- Maeng, K.; Lucia, B. Supporting Peripherals in Intermittent Systems with Just-in-Time Checkpoints. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, 22–26 June 2019; Association for Computing Machinery: New York, NY, USA, 2019; pp. 1101–1116. [Google Scholar] [CrossRef]
- MSP-EXP430FR5994 LaunchPad Development Kit. Available online: https://www.ti.com/tool/MSP-EXP430FR5994 (accessed on 5 March 2021).
- Foundation, F. Embench: A Modern Embedded Benchmark Suite. 2019. Available online: https://github.com/embench (accessed on 5 March 2021).
- Harb, A. Energy harvesting: State-of-the-art. Renew. Energy 2011, 36, 2641–2654. [Google Scholar] [CrossRef]
- Stankovic, J.A. Wireless Sensor Networks. Computer 2008, 41, 92–95. [Google Scholar] [CrossRef]
- Estrin, D.; Girod, L.; Pottie, G.; Srivastava, M. Instrumenting the world with wireless sensor networks. In Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing, Salt Lake City, UT, USA, 7–11 May 2001; Proceedings (Cat. No.01CH37221). IEEE: Piscataway, NJ, USA, 2001; Volume 4, pp. 2033–2036. [Google Scholar] [CrossRef]
- de Meulenaer, G.; Gosset, F.; Standaert, F.; Pereira, O. On the Energy Cost of Communication and Cryptography in Wireless Sensor Networks. In Proceedings of the IEEE International Conference on Wireless and Mobile Computing, Networking and Communications, Avignon, France, 12–14 October 2008; pp. 580–585. [Google Scholar] [CrossRef]
- Jayakumar, H.; Raha, A.; Raghunathan, V. Energy-Aware Memory Mapping for Hybrid FRAM-SRAM MCUs in IoT Edge Devices. In Proceedings of the 29th International Conference on VLSI Design and 2016 15th International Conference on Embedded Systems (VLSID), Kolkata, India, 4–8 January 2016; pp. 264–269. [Google Scholar] [CrossRef]
- Kawashima, S.; Cross, J.S. FeRAM. In Embedded Memories for Nano-Scale VLSIs; Zhang, K., Ed.; Springer: Boston, MA, USA, 2009; pp. 279–328. [Google Scholar] [CrossRef]
- Qazi, M.; Clinton, M.; Bartling, S.; Chandrakasan, A.P. A Low-Voltage 1 Mb FRAM in 0.13 μm CMOS Featuring Time-to-Digital Sensing for Expanded Operating Margin. IEEE J. Solid-State Circ. 2012, 47, 141–150. [Google Scholar] [CrossRef]
- Safaric, S.; Malaric, K. ZigBee wireless standard. In Proceedings of the Proceedings ELMAR 2006, Zadar, Croatia, 7–10 June 2006; pp. 259–262. [Google Scholar] [CrossRef]
- Gill, K.; Yang, S.; Yao, F.; Lu, X. A zigbee-based home automation system. IEEE Trans. Consum. Electron. 2009, 55, 422–430. [Google Scholar] [CrossRef] [Green Version]
- Wheeler, A. Commercial Applications of Wireless Sensor Networks Using ZigBee. IEEE Commun. Mag. 2007, 45, 70–77. [Google Scholar] [CrossRef]
- Colin, A.; Harvey, G.; Sample, A.P.; Lucia, B. An Energy-Aware Debugger for Intermittently Powered Systems. IEEE Micro 2017, 37, 116–125. [Google Scholar] [CrossRef]
E1 | E2 | E3 | E4 | E5 | E6 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
H | I | H | I | H | I | H | I | H | I | H | I | ||
# of Backup | 12 | 11 | 12 | 11 | 13 | 13 | 7 | 6 | 7 | 6 | 7 | 7 | |
crc32 | # of Restore | 12 | 0 | 12 | 2 | 13 | 13 | 7 | 0 | 7 | 1 | 7 | 7 |
# of Wakeup | · | 11 | · | 9 | · | 0 | · | 6 | · | 5 | · | 0 | |
# of Backup | 37 | 34 | 37 | 35 | 41 | 41 | 21 | 19 | 21 | 20 | 22 | 22 | |
edn | # of Restore | 37 | 0 | 37 | 7 | 41 | 41 | 21 | 0 | 21 | 4 | 22 | 22 |
# of Wakeup | · | 34 | · | 28 | · | 0 | · | 19 | · | 16 | · | 0 | |
# of Backup | 13 | 12 | 13 | 12 | 15 | 15 | 7 | 7 | 7 | 7 | 8 | 8 | |
nbody | # of Restore | 13 | 0 | 13 | 2 | 15 | 15 | 7 | 0 | 7 | 1 | 8 | 8 |
# of Wakeup | · | 12 | · | 10 | · | 0 | · | 7 | · | 6 | · | 0 | |
# of Backup | 8 | 7 | 8 | 7 | 8 | 8 | 4 | 4 | 4 | 4 | 4 | 4 | |
picojpeg | # of Restore | 8 | 0 | 8 | 1 | 8 | 8 | 4 | 0 | 4 | 0 | 4 | 4 |
# of Wakeup | · | 7 | · | 6 | · | 0 | · | 4 | · | 4 | · | 0 | |
# of Backup | 23 | 21 | 23 | 22 | 26 | 26 | 13 | 12 | 13 | 12 | 14 | 14 | |
st | # of Restore | 23 | 0 | 23 | 4 | 26 | 26 | 13 | 0 | 13 | 2 | 14 | 14 |
# of Wakeup | · | 21 | · | 18 | · | 0 | · | 12 | · | 10 | · | 0 | |
# of Backup | 27 | 24 | 27 | 25 | 30 | 30 | 15 | 14 | 15 | 15 | 16 | 16 | |
ud | # of Restore | 27 | 0 | 27 | 5 | 30 | 30 | 15 | 0 | 15 | 3 | 16 | 16 |
# of Wakeup | · | 24 | · | 20 | · | 0 | · | 14 | · | 12 | · | 0 |
Energy Checker | Backup | Restore | Wakeup | |
---|---|---|---|---|
Average current consumption (mA) | 0.039 | 0.13 | 0.088 | 0.001 |
Hibernus | ICEr | crc32 | edn | nbody | picojpeg | st | ud | |
---|---|---|---|---|---|---|---|---|
FRAM (byte) | 1046 | 1088 | 1700 | 3940 | 7642 | 9514 | 7634 | 1778 |
SRAM (byte) | 168 | 170 | 174 | 1768 | 482 | 2552 | 1788 | 1922 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Kwak, J.; Kim, H.; Cho, J. ICEr: An Intermittent Computing Environment Based on a Run-Time Module for Energy-Harvesting IoT Devices with NVRAM. Electronics 2021, 10, 879. https://doi.org/10.3390/electronics10080879
Kwak J, Kim H, Cho J. ICEr: An Intermittent Computing Environment Based on a Run-Time Module for Energy-Harvesting IoT Devices with NVRAM. Electronics. 2021; 10(8):879. https://doi.org/10.3390/electronics10080879
Chicago/Turabian StyleKwak, Junho, Hyeongrae Kim, and Jeonghun Cho. 2021. "ICEr: An Intermittent Computing Environment Based on a Run-Time Module for Energy-Harvesting IoT Devices with NVRAM" Electronics 10, no. 8: 879. https://doi.org/10.3390/electronics10080879
APA StyleKwak, J., Kim, H., & Cho, J. (2021). ICEr: An Intermittent Computing Environment Based on a Run-Time Module for Energy-Harvesting IoT Devices with NVRAM. Electronics, 10(8), 879. https://doi.org/10.3390/electronics10080879