Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3519939.3523454acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Open access

WARio: efficient code generation for intermittent computing

Published: 09 June 2022 Publication History

Abstract

Intermittently operating embedded computing platforms powered by energy harvesting require software frameworks to protect from errors caused by Write After Read (WAR) dependencies. A powerful method of code protection for systems with non-volatile main memory utilizes compiler analysis to insert a checkpoint inside each WAR violation in the code. However, such software frameworks are oblivious to the code structure---and therefore, inefficient---when many consecutive WAR violations exist. Our insight is that by transforming the input code, i.e., moving individual write operations from unique WARs close to each other, we can significantly reduce the number of checkpoints. This idea is the foundation for WARio: a set of compiler transformations for efficient code generation for intermittent computing. WARio, on average, reduces checkpoint overhead by 58%, and up to 88%, compared to the state of the art across various benchmarks.

References

[1]
Mikhail Afanasov, Naveed Anwar Bhatti, Dennis Campagna, Giacomo Caslini, Fabio Massimo Centonze, Koustabh Dolui, Andrea Maioli, Erica Barone, Muhammad Hamad Alizai, Junaid Haroon Siddiqui, and Luca Mottola. 2020. Battery-Less Zero-Maintenance Embedded Sensing at the Mithræ Um of Circus Maximus. In Proc. SenSys. ACM, Virtual Event. 368–381. https://doi.org/10.1145/3384419.3430722
[2]
Ambiq Micro Inc. 2010. Cortex-M4 Revision r0p0 Technical Reference Manual. https://documentation-service.arm.com/static/5f19da2a20b7cf4bc524d99a Last accessed: Nov. 10, 2021
[3]
Ambiq Micro Inc. 2021. Apollo4 Blue Ultra-Low Power Microcontroller. https://ambiq.com/apollo4-blue/ Last accessed: Nov. 10, 2021
[4]
Sotiris Apostolakis, Ziyang Xu, Zujun Tan, Greg Chan, Simone Campanoni, and David I. August. 2020. SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework. In Proc. PLDI. ACM, London, UK. 638–654. https://doi.org/10.1145/3385412.3386028
[5]
Arm Limited. 2007. https://documentation-service.arm.com/static/5e8e116188295d1e18d34a29 Last accessed: Nov. 5, 2021
[6]
Arm Limited. 2021. Arm Cortex-M Series Processors. https://developer.arm.com/ip-products/processors/cortex-m Last accessed: Nov. 4, 2021
[7]
Abu Bakar, Alexander G. Ross, Kasım Sinan Yıldırım, and Josiah Hester. 2021. REHASH: A Flexible, Developer Focused, Heuristic Adaptation Platform for Intermittently Powered Computing. ACM Interact. Mob. Wearable Ubiquitous Technol., 5, 3 (2021), Sept., 87:1–87:42. https://doi.org/10.1145/3478077
[8]
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 Trans. Comput.-Aided Design Integr. Circuits Syst., 35, 12 (2016), 1968–1980. https://doi.org/10.1109/TCAD.2016.2547919
[9]
Chris Baraniuk. 2021. Why is There a Chip Shortage? https://www.bbc.com/news/business-58230388 Last accessed: Mar. 18, 2022
[10]
Jongouk Choi, Qingrui Liu, and Changhee Jung. 2019. CoSpec: Compiler Directed Speculative Intermittent Computation. In Proc. MICRO. ACM/IEEE, Columbus, OH, USA. 399–412. https://doi.org/10.1145/3352460.3358279
[11]
Marc de Kruijf, Karthikeyan Sankaralingam, and Somesh Jha. 2012. Static Snalysis and Compiler Design for Idempotent Processing. In in Proc. PLDI. ACM, Beijing, China. 475–486. https://doi.org/10.1145/2254064.2254120
[12]
Jasper de Winkel, Carlo Delle Donne, Kasım Sinan Yıldırım, Przemysł aw Paweł czak, and Josiah Hester. 2020. Reliable Timekeeping for Intermittent Computing. In Proc. ASPLOS. ACM, Lausanne, Switzerland. 53–67. https://doi.org/10.1145/3373376.3378464
[13]
Jasper de Winkel, Vito Kortbeek, Josiah Hester, and Przemysł aw Paweł czak. 2020. Battery-Free Game Boy. ACM Interact. Mob. Wearable Ubiquitous Technol., 4, 3 (2020), Sept., 111:1–111:34. https://doi.org/10.1145/3411839
[14]
Pedro C. Diniz and Martin C. Rinard. 1998. Lock Coarsening: Eliminating Lock Overhead in Automatically Parallelized Object-Based Programs. J. Parallel Distrib. Comput., 49, 2 (1998), March, 218–244. https://doi.org/10.1006/jpdc.1998.1441
[15]
Kristina Edström (Executive Publisher). 2020. Horizon 2020 EU Program Battery 2030+: Inventing the Sustainable Batteries of the Future: Research Needs and Future Actions. https://battery2030.eu/digitalAssets/861/c_861350-l_1-k_roadmap-27-march.pdf Last accessed: Jun. 29, 2021
[16]
Embedded Microprocessor Benchmark Consortium. 2018. CoreMark Benchmark. https://github.com/eembc/coremark/releases/tag/v1.01 Last accessed: Jun. 29, 2021
[17]
Rich Geldreich. 2020. picojpeg: Plain C JPEG Decompressor. https://github.com/richgel999/picojpeg Last accessed: Nov. 5, 2021
[18]
Graham Gobieski, Brandon Lucia, and Nathan Beckmann. 2019. Intelligence Beyond the Edge: Inference on Intermittent Embedded Systems. In Proc. ASPLOS. ACM, Providence, RI, USA. 199–213. https://doi.org/10.1145/3297858.3304011
[19]
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 Proc. Workload Characterization Workshop. IEEE, Austin, TX, USA. 3–14. https://doi.org/10.1109/wwc.2001.990739
[20]
Josiah Hester and Jacob Sorber. 2017. The Future of Sensing is Batteryless, Intermittent, and Awesome. In Proc. SenSys. ACM, Delft, The Netherlands. 21:1–21:6. https://doi.org/10.1145/3131672.3131699
[21]
Matthew Hicks. 2017. Clank: Architectural Support for Intermittent Computation. In Proc. ISCA. ACM, Toronto, ON, Canada. 228–240. https://doi.org/10.1145/3140659.3080238
[22]
Matthew Hicks. 2017. Ratchet (Source Code from OSDI 2016). https://github.com/impedimentToProgress/Ratchet Last accessed: Nov. 5, 2021
[23]
Hrishikesh Jayakumar, Arnab Raha, Woo Suk Lee, and Vijay Raghunathan. 2015. Quickrecall: A HW/SW Approach for Computing Across Power Cycles in Transiently Powered Computers. J. Emerg. Technol. Comput. Syst., 12, 1 (2015), July, 8:1–8:19. https://doi.org/10.1145/2700249
[24]
Mohamad Katanbaf, Anthony Weinand, and Vamsi Talla. 2021. Simplifying Backscatter Deployment: Full-Duplex LoRa Backscatter. In Proc. NSDI. USENIX, Virtual Event. 955–972. https://www.usenix.org/system/files/nsdi21spring-katanbaf.pdf
[25]
Vito Kortbeek, Abu Bakar, Stefany Cruz Kasım Sinan Yıldırım, Przemysł aw Paweł czak, and Josiah Hester. 2020. BFree: Enabling Battery-free Sensor Prototyping with Python. ACM Interact. Mob. Wearable Ubiquitous Technol., 4, 4 (2020), Dec., 135:1–111:39. https://doi.org/10.1145/3432191
[26]
Vito Kortbeek, Kasım Sinan Yıldırım, Abu Bakar, Jacob Sorber, Josiah Hester, and Przemysł aw Paweł czak. 2020. Time-sensitive Intermittent Computing Meets Legacy Software. In Proc. ASPLOS. ACM, Lausanne, Switzerland. 85–99. https://doi.org/10.1145/3373376.3378476
[27]
Tianxing Li and Xia Zhou. 2018. Battery-Free Eye Tracker on Glasses. In Proc. MobiCom. ACM, New Delhi, India. 67–82. https://doi.org/10.1145/3241539.3241578
[28]
Jack L. Lo and Susan J. Eggers. 1995. Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-level Parallelism. In Proc. PLDI. ACM, La Jolla, CA, USA. 151–162. https://doi.org/10.1145/207110.207132
[29]
Brandon Lucia, Vignesh Balaji, Alexei Colin, Kiwan Maeng, and Emily Ruppel. 2017. Intermittent Computing: Challenges and Opportunities. In Proc. SNAPL. Alisomar, CA, USA. 8:1–8:14. https://drops.dagstuhl.de/opus/volltexte/2017/7131/pdf/LIPIcs-SNAPL-2017-8.pdf
[30]
Kaisheng Ma, Xueqing Li, Karthik Swaminathan, Yang Zheng, Shuangchen Li, Yongpan Liu, Yuan Xie, John Jack Sampson, and Vijaykrishnan Narayana. 2016. Nonvolatile Processor Architectures: Efficient, Reliable Progress with Unstable Power. Micro, 36, 3 (2016), May–Jun., 72–83. https://doi.org/10.1109/MM.2016.35
[31]
Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2017. Alpaca: Intermittent Execution without Checkpoints. In Proc. OOPSLA. ACM, Vancouver, BC, Canada. 96:1–96:30. https://doi.org/10.1145/3133920
[32]
Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2018. Adaptive Dynamic Checkpointing for Safe Efficient Intermittent Computing. In Proc. OSDI. USENIX, Carlsbad, CA, USA. 129–144. https://www.usenix.org/system/files/osdi18-maeng.pdf
[33]
Andrea Maioli and Luca Mottola. 2021. ALFRED: Virtual Memory for Intermittent Computing. In Proc. SenSys. ACM, Coimbra, Portugal. arxiv:2110.07542
[34]
Andrea Maioli, Luca Mottola, Muhammad Hamad Alizai, and Junaid Haroon Siddiqui. 2021. Discovering the Hidden Anomalies of Intermittent Computing. https://www.ewsn.org/file-repository/ewsn2021/Article1.pdf In Proc. EWSN. Delft, The Netherlands.
[35]
Amjad Yousef Majid, Carlo Delle Donne, Kiwan Maeng, Alexei Colin, Kasım Sinan Yıldırım, Brandon Lucia, and Przemysł aw Paweł czak. 2020. Dynamic Task-based Intermittent Execution for Energy-harvesting Devices. ACM Trans. Sens. Netw., 16, 1 (2020), Feb., 5:1–5:24. https://doi.org/10.1145/3360285
[36]
Angelo Matni, Enrico Armenio Deiana, Yian Su, Lukas Gross, Souradip Ghosh, Sotiris Apostolakis, Ziyang Xu, Zujun Tan, Ishita Chaturvedi, Brian Homerding, Tommy McMichen, David I. August, and Simone Campanoni. 2022. NOELLE Offers Empowering LLVM Extensions. In Proc. CGO. ACM, Seoul, South Korea.
[37]
Delft University of Technology Sustainable Systems Lab. 2022. Artifact. Last accessed: Apr. 07, 2022
[38]
Delft University of Technology Sustainable Systems Lab. 2022. Source Code Repository. Last accessed: Mar. 18, 2022
[39]
Open Source Community Contributors. 2021. C Language Family Front-end. https://github.com/llvm/llvm-project/tree/main/clang Last accessed: Nov. 10, 2021
[40]
Open Source Community Contributors. 2021. GNU Compiler Collection. https://gcc.gnu.org/git.html Last accessed: Jul. 21, 2021
[41]
Open Source Community Contributors. 2021. The LLVM Compiler Infrastructure. https://github.com/llvm/llvm-project Last accessed: Jun. 28, 2021
[42]
Open Source Community Contributors. 2021. QEMU: a Generic and Open Source Machine and Userspace Emulator and Virtualizer. https://gitlab.com/qemu-project/qemu Last accessed: Nov. 5, 2021
[43]
Open Source Community Contributors. 2021. Tiny AES in C. https://github.com/kokke/tiny-aes-c Last accessed: Nov. 5, 2021
[44]
Open Source Community Contributors. 2021. Unicorn: a Lightweight, Multi-platform, Multi-architecture CPU Emulator Framework based on QEMU. https://github.com/unicorn-engine/unicorn Last accessed: Nov. 5, 2021
[45]
Open Source Community Contributors. 2021. Whole Program LLVM in Go. https://github.com/SRI-CSL/gllvm Last accessed: Nov. 10, 2021
[46]
Aaron N. Parks, Angli Liu, Shyamnath Gollakota, and Joshua R. Smith. 2014. Turbocharging Ambient Backscatter Communication. In Proc. SIGCOMM. ACM, Chicago, IL, USA. 619–630. https://doi.org/10.1145/2740070.2626312
[47]
Benjamin Ransford. 2011. Traces repository used in ‘Mementos: System Support for Long-running Computation on RFID-scale Devices‘ paper. https://github.com/ransford/mspsim/tree/mementos/traces Last accessed: Nov. 1, 2021
[48]
Benjamin Ransford and Brandon Lucia. 2014. Nonvolatile Memory is a Broken Time Machine. In Proc. Memory Systems Performance and Correctness Workshop. ACM, Edinburgh, United Kingdom. 1–3. https://doi.org/10.1145/2618128.2618136
[49]
Benjamin Ransford, Jacob Sorber, and Kevin Fu. 2011. Mementos: System Support for Long-running Computation on RFID-scale Devices. In Proc. ASPLOS. ACM, Newport Beach, CA, USA. 159–170. https://doi.org/10.1145/1950365.1950386
[50]
Emily Ruppel and Brandon Lucia. 2019. Transactional Concurrency Control for Intermittent, Energy-Harvesting Computing Systems. In Proc. PLDI. ACM, Phoenix, AZ, USA. 1085–1100. https://doi.org/10.1145/3314221.3314583
[51]
Esther Shein. 2021. A Battery-Free Internet of Things. Commun. ACM, 64, 7 (2021), 16–18. https://doi.org/10.1145/3464937
[52]
Fang Su, Kaisheng Ma, Xueqing Li, Tongda Wu, Yongpan Liu, and Vijaykrishnam Narayanan. 2017. Nonvolatile Processors: Why is it Trending? In Proc. DATE. Lausanne, Switzerland. 966–971. https://doi.org/10.23919/DATE.2017.7927131
[53]
Yulei Sui and Jingling Xue. 2016. SVF: Interprocedural Static Value-Flow Analysis in LLVM. In Proc. CC. ACM, Barcelona, Spain. 265–266. https://doi.org/10.1145/2892208.2892235
[54]
Vamsi Talla, Bryce Kellogg, Shyamnath Gollakota, and Joshua R Smith. 2017. Battery-free Cellphone. ACM Interact. Mob. Wearable Ubiquitous Technol., 1, 2 (2017), June, 25:1–25:19. https://doi.org/10.1145/3090090
[55]
Texas Instruments Inc. 2017. MSP430FR59xx Mixed-Signal Microcontrollers (Rev. F). http://www.ti.com/lit/ds/symlink/msp430fr5969.pdf Last accessed: Nov. 4, 2021
[56]
University of Washington, Seattle, WA, USA. 2010. Wireless Identification and Sensing Platform GitHub Page. https://github.com/wisp Last accessed: Nov. 1, 2021
[57]
Joel Van Der Woude and Matthew Hicks. 2016. Intermittent Computation Without Hardware Support or Programmer Intervention. In Proc. OSDI. ACM, Savannah, GA, USA. 17–32. https://www.usenix.org/system/files/conference/osdi16/osdi16-van-der-woude.pdf
[58]
Wiliot. 2021. Wiliot Battery Free IoT Pixel BLE Tags Website. https://www.wiliot.com/product/iot-pixel Last accessed: Jul. 22, 2021
[59]
Bahram Yarahmadi and Erven Rohou. 2021. So Far So Good: Self-Adaptive Dynamic Checkpointing for Intermittent Computation based on Self-Modifying Code. In Proc. International Workshop on Software and Compilers for Embedded Systems. Eindhoven, The Netherlands. 1–7. https://hal.inria.fr/hal-03410647/document
[60]
Kasım Sinan Yıldırım, Amjad Yousef Majid, Dimitris Patoukas, Koen Schaper, Przemysł aw Paweł czak, and Josiah Hester. 2018. InK: Reactive Kernel for Tiny Batteryless Sensors. In Proc. SenSys. ACM, Shenzhen, China. 41–53. https://doi.org/10.1145/3274783.3274837
[61]
G. Pascal Zachary. 2016. The Search for a Better Battery. https://spectrum.ieee.org/at-work/innovation/the-search-for-a-better-battery Last accessed: Jun. 29, 2021

Cited By

View all
  • (2024)User-directed Assembly Code Transformations Enabling Efficient Batteryless Arduino ApplicationsProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/36595908:2(1-32)Online publication date: 15-May-2024
  • (2024)EarlyBird: Energy belongs to those who wake up early2024 IEEE 30th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA)10.1109/RTCSA62462.2024.00011(1-10)Online publication date: 21-Aug-2024
  • (2024)LACT: Liveness-Aware Checkpointing to reduce checkpoint overheads in intermittent systemsJournal of Systems Architecture10.1016/j.sysarc.2024.103213153(103213)Online publication date: Aug-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
June 2022
1038 pages
ISBN:9781450392655
DOI:10.1145/3519939
  • General Chair:
  • Ranjit Jhala,
  • Program Chair:
  • Işil Dillig
This work is licensed under a Creative Commons Attribution 4.0 International License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 June 2022

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. battery-free
  2. code transformation
  3. compiler
  4. embedded system
  5. intermittent computing
  6. optimization

Qualifiers

  • Research-article

Conference

PLDI '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)221
  • Downloads (Last 6 weeks)29
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)User-directed Assembly Code Transformations Enabling Efficient Batteryless Arduino ApplicationsProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/36595908:2(1-32)Online publication date: 15-May-2024
  • (2024)EarlyBird: Energy belongs to those who wake up early2024 IEEE 30th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA)10.1109/RTCSA62462.2024.00011(1-10)Online publication date: 21-Aug-2024
  • (2024)LACT: Liveness-Aware Checkpointing to reduce checkpoint overheads in intermittent systemsJournal of Systems Architecture10.1016/j.sysarc.2024.103213153(103213)Online publication date: Aug-2024
  • (2023)Liveness-Aware Checkpointing of Arrays for Efficient Intermittent Computing2023 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE56975.2023.10137060(1-6)Online publication date: Apr-2023
  • (2023)Routing for Intermittently-Powered Sensing Systems2023 IEEE International Performance, Computing, and Communications Conference (IPCCC)10.1109/IPCCC59175.2023.10253844(274-282)Online publication date: 17-Nov-2023

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media