skip to main content
10.1145/3297280.3299739acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

PureMEM: a structured programming model for transiently powered computers

Published:08 April 2019Publication History

ABSTRACT

Advances in energy harvesting circuits and energy efficient architecture of processors create the potential for batteryless computing and sensing systems called transiently powered computers. These computers can only operate intermittently due to fluctuating nature of ambient energy. Intermittent operation requires a new programming model that should preserve forward progress and maintain data consistency; which are challenging. We propose a structured task-based programming model; namely PureMEM, to cope with these challenges. We discuss how PureMEM prevents interdependencies caused by the unstructured control encountered in intermittent operation, enables re-usability of the tasks, provides dynamic memory management and supports error handling. We also present intermittent programs to exemplify the features of PureMEM.

References

  1. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. N. A. Bhatti and L. Mottola. 2017. HarvOS: Efficient Code Instrumentation for Transiently-Powered Embedded Sensing. In 2017 16th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN). ACM/IEEE, 209--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 (OOPSLA 2016). ACM, Amsterdam, Netherlands, 514--530. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Edsger W Dijkstra. 1968. Letters to the editor: go to statement considered harmful. Commun. ACM 11, 3 (1968), 147--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Brian Goetz, Tim Peierls, Doug Lea, Joshua Bloch, Joseph Bowbeer, and David Holmes. 2006. Java concurrency in practice. Pearson Education.Google ScholarGoogle Scholar
  6. Josiah Hester, Kevin Storer, and Jacob Sorber. 2017. Timely Execution on Intermittently Powered Batteryless Sensors. In Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems. ACM, 17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Matthew Hicks. 2017. Clank: Architectural Support for Intermittent Computation. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA '17). ACM, New York, NY, USA, 228--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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. ACM J. Emerg. Technol. Comput. Syst. 12, 1 (July 2015), 8:1--8:19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 (PLDI'15). ACM, Portland, OR, USA, 575--585. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2017. Alpaca: Intermittent Execution Without Checkpoints. Proc. ACM Program. Lang. 1, OOPSLA, Article 96 (Oct. 2017), 30 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. John C Mitchell and Krzysztof Apt. 2003. Concepts in programming languages. Cambridge University Press.Google ScholarGoogle Scholar
  12. Benjamin Ransford, Jacob Sorber, and Kevin Fu. 2011. 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). ACM, Newport Beach, CA, USA, 159--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Joshua R Smith. 2013. Wirelessly powered sensor networks and computational RFID. Springer Science & Business Media.Google ScholarGoogle Scholar
  14. Guy Lewis Steele Jr. 1977. Debunking the "expensive procedure call" myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO. In Proceedings of the 1977 annual conference. ACM, ACM, 153--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Nicolas Stucki, TiarkRompf, Vlad Ureche, and Phil Bagwell. 2015. RRB Vector: A Practical General Purpose Immutable Sequence. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming (ICFP 2015). ACM, New York, NY, USA, 342--354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Joel Van Der Woude and Matthew Hicks. 2016. Intermittent Computation Without Hardware Support or Programmer Intervention. In Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation (OSDI'16). ACM, Savannah, GA, USA, 17--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kasim Sinan Yildirim, Amjad Yousef Majid, Dimitris Patoukas, Koen Schaper, Przemyslaw Pawelczak, and Josiah Hester. 2018. InK: Reactive Kernel for Tiny Batteryless Sensors. In Proceedings of the 16th ACM Conference on Embedded Networked Sensor Systems. ACM, 41--53. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. PureMEM: a structured programming model for transiently powered computers

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SAC '19: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing
        April 2019
        2682 pages
        ISBN:9781450359337
        DOI:10.1145/3297280

        Copyright © 2019 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 8 April 2019

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate1,650of6,669submissions,25%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader