Abstract
Intermittently powered embedded devices ensure forward progress of programs through state checkpointing in non-volatile memory. Checkpointing is, however, expensive in energy and adds to the execution times. To minimize this overhead, we present DICE, a system that renders differential checkpointing profitable on these devices. DICE is unique because it is a software-only technique and efficient because it only operates in volatile main memory to evaluate the differential. DICE may be integrated with reactive (Hibernus) or proactive (MementOS, HarvOS) checkpointing systems, and arbitrary code can be enabled with DICE using automatic code-instrumentation requiring no additional programmer effort. By reducing the cost of checkpoints, DICE cuts the peak energy demand of these devices, allowing operation with energy buffers that are one-eighth of the size originally required, thus leading to benefits such as smaller device footprints and faster recharging to operational voltage level. The impact on final performance is striking: with DICE, Hibernus requires one order of magnitude fewer checkpoints and one order of magnitude shorter time to complete a workload in real-world settings.
- Saurabh Agarwal, Rahul Garg, Meeta S. Gupta, and Jose E. Moreira. 2004. Adaptive incremental checkpointing for massively parallel systems. In Proceedings of the 18th Annual International Conference on Supercomputing. ACM, 277--286.Google Scholar
- Saad Ahmed, Naveed Anwar Bhatti, Muhammad Hamad Alizai, Junaid Haroon Siddiqui, and Luca Mottola. 2019. Efficient intermittent computing with differential checkpointing. In Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems. ACM, 70--81.Google Scholar
Digital Library
- Faycal Ait Aouda, Kevin Marquet, and Guillaume Salagnac. 2014. Incremental checkpointing of program state to NVRAM for transiently-powered systems. In Proceedings of the 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip. IEEE, 1--4.Google Scholar
- ARDUINO. 2018. NANO. https://store.arduino.cc/usa/arduino-nano (accessed 2018-02-28).Google Scholar
- Satu Arra, Jarkko Leskinen, Janne Heikkila, and Jukka Vanhala. 2007. Ultrasonic power and data link for wireless implantable applications. In Proceedings of the 2nd International Symposium on Wireless Pervasive Computing.Google Scholar
Cross Ref
- Domenico Balsamo, Alex S. Weddell, Anup Das, Alberto Rodriguez Arreola, Davide Brunelli, Bashir M. Al-Hashimi, Geoff V. Merrett, and Luca Benini. 2016. Hibernus++: A self-calibrating and adaptive system for transiently-powered embedded devices. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (2016), 1968--1980.Google Scholar
- Domenico Balsamo, Alex S. Weddell, Geoff V. Merrett, Bashir M. Al-Hashimi, Davide Brunelli, and Luca Benini. 2015. Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems. IEEE Embedded Systems Letters (2015), 15--18.Google Scholar
- Naveed Bhatti and Luca Mottola. 2016. Efficient state retention for transiently-powered embedded sensing. In Proceedings of the International Conference on Embedded Wireless Systems and Networks. 137--148.Google Scholar
- Naveed Anwar Bhatti, Muhammad Hamad Alizai, Affan A. Syed, and Luca Mottola. 2016. Energy harvesting and wireless transfer in sensor network applications: Concepts and experiences. ACM Transactions on Sensor Networks (2016), 24.Google Scholar
- Naveed Anwar Bhatti and Luca Mottola. 2017. HarvOS: Efficient code instrumentation for transiently-powered embedded sensing. In Proceedings of the 16th ACM/IEEE International Conference on Information Processing in Sensor Networks. ACM, 209--219.Google Scholar
Digital Library
- Peter Boonstoppel, Cristian Cadar, and Dawson Engler. 2008. RWset: Attacking path explosion in constraint-based test generation. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 351--366.Google Scholar
Cross Ref
- Florian Brandner, Benoit Boissinot, Alain Darte, Benoît Dupont De Dinechin, and Fabrice Rastello. 2011. Computing Liveness Sets for SSA-Form Programs. Research Report RR-7503. INRIA. 25 pages. https://hal.inria.fr/inria-00558509Google Scholar
- Michael Buettner, Benjamin Greenstein, and David Wetherall. 2011. Dewdrop: An energy-aware runtime for computational RFID. In Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, 197--210.Google Scholar
- Hsung-Pin Chang, Yen-Ting Liu, and Shang-Sheng Yang. 2014. Surviving sensor node failures by MMU-less incremental checkpointing. Journal of Systems and Software 87 (2014), 74--86.Google Scholar
Digital Library
- Alexei Colin and Brandon Lucia. 2016. 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. ACM, 514--530.Google Scholar
Digital Library
- Canan Dagdeviren, Pauline Joe, Ozlem L. Tuzman, Kwi-Il Park, Keon Jae Lee, Yan Shi, Yonggang Huang, and John A. Rogers. 2016. Recent progress in flexible and stretchable piezoelectric devices for mechanical energy harvesting, sensing and actuation. Extreme Mechanics Letters (2016), 269--281.Google Scholar
- Kurt B. Ferreira, Rolf Riesen, Ron Brighwell, Patrick Bridges, and Dorian Arnold. 2011. libhashckpt: Hash-based incremental checkpointing using GPU’s. In Proceedings of the European MPI Users’ Group Meeting. Springer, 272--281.Google Scholar
Cross Ref
- M. Muztaba Fuad and Michael J. Oudshoorn. 2007. Transformation of existing programs into autonomic and self-healing entities. In Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems. IEEE Computer Society, 133--144.Google Scholar
- Blaise Gassend, G. Edward Suh, Dwaine Clarke, Marten van Dijk, and Srinivas Devadas. 2003. Caches and hash trees for efficient memory integrity verification. In Proceedings of HPCA. IEEE Computer Society, 295--306.Google Scholar
Cross Ref
- Abstract Research Group. 2018. Benchmark Applications. www.github.com/CMUAbstract/releases#benchmark-applications ((accessed 2018-02-28)).Google Scholar
- Berkin Güler and Öznur Özkasap. 2018. Efficient checkpointing mechanisms for primary-backup replication on the cloud. Concurrency and Computation: Practice and Experience 30, 21 (2018), e4707.Google Scholar
Cross Ref
- Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, and Richard B. Brown. 2001. MiBench: A free, commercially representative embedded benchmark suite. In Proceedings of the WWC. IEEE, 3--14.Google Scholar
- Josiah Hester, Lanny Sitanayah, and Jacob Sorber. 2015. Tragedy of the coulombs: Federating energy storage for tiny, intermittently-powered sensors. In Proceedings of the 13th ACM Conference on Embedded Networked Sensor Systems. ACM, 5--16.Google Scholar
Digital Library
- Josiah Hester and Jacob Sorber. 2017. Flicker: Rapid prototyping for the batteryless Internet-of-Things. In Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems. ACM, Article 19, 13 pages.Google Scholar
Digital Library
- Matthew Hicks. 2017. Clank: Architectural support for intermittent computation. In Proceedings of the 44th Annual International Symposium on Computer Architecture. 228--240.Google Scholar
Digital Library
- Texas Instruments. 2013. MSP430 Solar Energy Harvesting Development Tool. http://www.ti.com/tool/EZ430-RF2500-SEH (accessed 2018-08-03).Google Scholar
- Oana Iova, Pietro Picco, Timofei Istomin, and Csaba Kiraly. 2016. RPL: The routing standard for the Internet of Things... Or is it? IEEE Communications Magazine (2016), 16--22.Google Scholar
- Hrishikesh Jayakumar, Arnab Raha, Woo Suk Lee, and Vijay Raghunathan. 2015. Quick recall: A HW/SW approach for computing across power cycles in transiently powered computers. ACM Journal on Emerging Technologies in Computing Systems (2015), 8.Google Scholar
- Richard Koo and Sam Toueg. 1987. Checkpointing and rollback-recovery for distributed systems. IEEE Transactions on Software Engineering (1987), 23--31.Google Scholar
- Phil Koopman. 2010. Better Embedded System Software. CMU Press.Google Scholar
- PERSIST Lab. 2018. RF Trace. https://github.com/PERSISTLab/BatterylessSim/tree/master/traces (accessed 2018-02-28).Google Scholar
- Eunji Lee, Seunghoon Yoo, Jee-Eun Jang, and Hyokyung Bahn. 2012. Shortcut-JFS: A write efficient journaling file system for phase change memory. In Proceedings of the 28th Symposium on Mass Storage Systems and Technologies. IEEE, 1--6.Google Scholar
Cross Ref
- Juchang Lee, Kihong Kim, and Sang Kyun Cha. 2001. Differential logging: A commutative and associative logging scheme for highly parallel main memory database. In Proceedings of the 17th International Conference on Data Engineering. IEEE, 173--182.Google Scholar
- Fuyang Li, Keni Qiu, Mengying Zhao, Jingtong Hu, Yongpan Liu, Yong Guan, and Chun Jason Xue. 2018. Checkpointing-aware loop tiling for energy harvesting powered nonvolatile processors. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 38, 1 (2018), 15--28.Google Scholar
Digital Library
- Libelium. 2017. Waspmote. http://www.libelium.com/products/waspmote/ (accessed 2017-10-02).Google Scholar
- Brandon Lucia, Vignesh Balaji, Alexei Colin, Kiwan Maeng, and Emily Ruppel. 2017. Intermittent computing: Challenges and opportunities. In Procedings of the 2nd Summit on Advances in Programming Languages. Leibniz International Proceedings in Informatics.Google Scholar
- Brandon Lucia and Benjamin Ransford. 2015. A simpler, safer programming and execution model for intermittent systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, 575--585.Google Scholar
Digital Library
- Giedrius Lukosevicius, Alberto Rodriguez Arreola, and Alexander Weddell. 2017. Using sleep states to maximize the active time of transient computing systems. In ENSsys (with SenSys). ACM.Google Scholar
- Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2017. Alpaca: Intermittent execution without checkpoints. In Proceedings of the ACM on Programming Languages 1, Article 96 (2017), 30 pages.Google Scholar
Digital Library
- R. Margolies, L. Pena, K. Kim, Y. Kim, M. Wang, M. Gorlatova, J. Sarik, J. Zhu, P. Kinget, I. Kymissis, and G. Zussman. 2013. An adaptive testbed of energy harvesting active networked tags (EnHANTs) prototypes. In Proceedings of the 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS). 31--32.Google Scholar
- mbed. 2017. IoT OS. goo.gl/u918jX.Google Scholar
- Kresimir Mihic, Ajay Mani, Manjunath Rajashekhar, and Philip Levis. 2007. Mstore: Enabling storage-centric sensornet research. In Proceedings of IPSN. Citeseer, 1--8.Google Scholar
- Satish Narayanasamy, Gilles Pokam, and Brad Calder. 2005. Bugnet: Continuously recording program execution for deterministic replay debugging. ACM SIGARCH Computer Architecture News, Vol. 33. IEEE Computer Society, 284--295.Google Scholar
Digital Library
- Robert H. B. Netzer and Mark H. Weaver. 1994. Optimal tracing and incremental reexecution for debugging long-running programs. In Proceedings of PLDI, Vol. 94. ACM, 313--325.Google Scholar
- Hoang Anh Nguyen, Anna Forster, Daniele Puccinelli, and Silvia Giordano. 2011. Sensor node lifetime: An experimental study. In Proceedings of the IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops). IEEE, 202--207.Google Scholar
- Expansion of STM32 Nucleo boards. 2017. Data Sheet: X-NUCLEO-NFC02A1. www.st.com (accessed 2017-10-02).Google Scholar
- Terence Parr. 2013. The Definitive ANTLR 4 Reference. goo.gl/RR1s.Google Scholar
- James S. Plank, Micah Beck, Gerry Kingsley, and Kai Li. 1995. Libckpt: Transparent checkpointing under UNIX. In USENIX 1995 Technical Conference Proceedings. USENIX Association.Google Scholar
- Xiongpai Qin, Yanqin Xiao, Wei Cao, and Shan Wang. 2008. A parallel recovery scheme for update intensive main memory database systems. In Proceedings of the 9th International Conference on Parallel and Distributed Computing, Applications and Technologies. IEEE, 509--516.Google Scholar
Digital Library
- Brian Randell, Pete Lee, and Philip C. Treleaven. 1978. Reliability issues in computing system design. ACM Computing Surveys (CSUR) 10, 2 (1978), 123--165.Google Scholar
Digital Library
- Benjamin Ransford. 2011. Mementos: System support for long-running computation on RFID-scale devices. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 159--170.Google Scholar
Digital Library
- B. Ransford. 2013. Transiently Powered Computers. Ph.D. Dissertation. School of Computer Science, UMass Amherst.Google Scholar
- Alanson P. Sample, Daniel J. Yeager, Pauline S. Powledge, Alexander V. Mamishev, and Joshua R. Smith. 2008. Design of an RFID-based battery-free programmable sensing platform. IEEE Transactions on Instrumentation and Measurement 57, 11 (2008), 2608--2615.Google Scholar
Cross Ref
- Bor-Yeh Shen, Jiunn-Yeu Chen, Wei-Chung Hsu, and Wuu Yang. 2012. LLBT: An LLVM-based static binary translator. In CASES. ACM, 51--60.Google Scholar
Digital Library
- Rebecca Smith and Scott Rixner. 2015. Surviving peripheral failures in embedded systems. In Proceedings of the 2015 USENIX Annual Technical Conference. USENIX Association, 125--137.Google Scholar
Digital Library
- IXYS SolarMD. 2018. SLMD481H08L. http://ixapps.ixys.com/ (accessed 2018-02-28).Google Scholar
- Fang Su, Kaisheng Ma, Xueqing Li, Tongda Wu, Yongpan Liu, and Vijaykrishnan Narayanan. 2017. Nonvolatile processors: Why is it trending? In Proceedings of the 2017 Design, Automation and Test in Europe Conference and Exhibition. IEEE, 966--971.Google Scholar
Cross Ref
- Yulei Sui and Jingling Xue. 2016. SVF: Interprocedural static value-flow analysis in LLVM. In Proceedings of the 25th International Conference on Compiler Construction. ACM, 265--266.Google Scholar
Digital Library
- Florin Sultan, Thu Nguyen, and Liviu Iftode. 2000. Scalable fault-tolerant distributed shared memory. In Proceedings of the 2000 ACM/IEEE Conference on Supercomputing. IEEE, 20--20.Google Scholar
Digital Library
- Joel Van Der Woude and Matthew Hicks. 2016. Intermittent computation without hardware support or programmer intervention. In Proceedings of OSDI. USENIX Association, 17--32.Google Scholar
- Ramakrishnan Venkitaraman and Gopal Gupta. 2004. Static program analysis of embedded executable assembly code. In Proceedings of CASES. ACM, 157--166.Google Scholar
Digital Library
- Mimi Xie, Mengying Zhao, Chen Pan, Jingtong Hu, Yongpan Liu, and Chun Jason Xue. 2015. Fixing the broken time machine: Consistency-aware checkpointing for energy harvesting powered non-volatile processor. In Proceedings of theDAC. 1--6.Google Scholar
Digital Library
- Guang Yang, Bernard H. Stark, Simon J. Hollis, and Steve G. Burrow. 2014. Challenges for energy harvesting systems under intermittent excitation. IEEE Journal on Emerging and Selected Topics in Circuits and Systems (2014).Google Scholar
- Jing Yang, Mary Lou Soffa, Leo Selavo, and Kamin Whitehouse. 2007. Clairvoyant: A comprehensive source-level debugger for wireless sensor networks. In Proceedings of the 5th International Conference on Embedded Networked Sensor Systems. ACM, 189--203.Google Scholar
Digital Library
Index Terms
Fast and Energy-Efficient State Checkpointing for Intermittent Computing
Recommendations
Demystifying Energy Consumption Dynamics in Transiently powered Computers
Special Issue on LCETES, Part 2, Learning, Distributed, and Optimizing CompilersTransiently powered computers (TPCs) form the foundation of the battery-less Internet of Things, using energy harvesting and small capacitors to power their operation. This kind of power supply is characterized by extreme variations in supply voltage, ...
Efficient intermittent computing with differential checkpointing
LCTES 2019: Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsEmbedded devices running on ambient energy perform computations intermittently, depending upon energy availability. System support ensures forward progress of programs through state checkpointing in non-volatile memory. Checkpointing is, however, ...
Using multi-level cell STT-RAM for fast and energy-efficient local checkpointing
ICCAD '14: Proceedings of the 2014 IEEE/ACM International Conference on Computer-Aided DesignHigh reliability, availability, and serviceability are critical for modern large-scale computing systems. As an effective error recovery mechanism, checkpointing has been widely used in such systems for their survival from unexpected failures. The ...






Comments