Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
tutorial

Clank: Architectural Support for Intermittent Computation

Published: 24 June 2017 Publication History

Abstract

The processors that drive embedded systems are getting smaller; meanwhile, the batteries used to provide power to those systems have stagnated. If we are to realize the dream of ubiquitous computing promised by the Internet of Things, processors must shed large, heavy, expensive, and high maintenance batteries and, instead, harvest energy from their environment. One challenge with this transition is that harvested energy is insufficient for continuous operation. Unfortunately, existing programs fail miserably when executed intermittently.
This paper presents Clank: lightweight architectural support for correct and efficient execution of long-running applications on harvested energy---without programmer intervention or extreme hardware modifications. Clank is a set of hardware buffers and memory-access monitors that dynamically maintain idempotency. Essentially, Clank dynamically decomposes program execution into a stream of restartable sub-executions connected via lightweight checkpoints.
To validate Clank's ability to correctly stretch program execution across frequent, random power cycles, and to explore the associated hardware and software overheads, we implement Clank in Verilog, formally verify it, and then add it to an ARM Cortex M0+ processor which we use to run a set of 23 embedded systems benchmarks. Experiments show run-time overheads as low as 2.5%, with run-time overheads of 6% for a version of Clank that adds 1.7% hardware. Clank minimizes checkpoints so much that re-execution time becomes the dominate contributor to run-time overhead.

References

[1]
ARM. 2016. DesignStart for Processor IP. (2016). http://www.arm.com/products/processors/designstart-processor-ip/
[2]
D. Balsamo, A.S. Weddell, G.V. Merrett, B.M. Al-Hashimi, D. Brunelli, and L. Benini. 2014. Hibernus: Sustaining Computation during Intermittent Supply for Energy-Harvesting Systems. Embedded Systems Letters, IEEE 7 (2014), 15--18. Issue 1.
[3]
S. C. Bartling, S. Khanna, M. P. Clinton, S. R. Summerfelt, J. A. Rodriguez, and H. P. McAdams. 2013. An 8MHz 75 uA/MHz zero-leakage non-volatile logic-based Cortex-M0 MCU SoC exhibiting 100% digital state retention at VDD=0V with <400ns wakeup and sleep transitions. In International Solid-State Circuits Conference. 432--433.
[4]
Michael Buettner, Richa Prasad, Alanson Sample, Daniel Yeager, Ben Greenstein, Joshua R. Smith, and David Wetherall. 2008. RFID Sensor Networks with the Intel WISP. In Conference on Embedded Network Sensor Systems (SenSys). 393--394.
[5]
Alexei Colin and Brandon Lucia. 2016. Chain: Tasks and Channels for Reliable Intermittent Programs. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). 514--530.
[6]
John H. Davies. 2008. MSP430 Microcontroller Basics. Newnes, Newton, MA, USA.
[7]
Marc de Kruijf, Shuou Nomura, and Karthikeyan Sankaralingam. 2010. Relax: An Architectural Framework for Software Recovery of Hardware Faults. In International Symposium on Computer Architecture (ISCA). 497--508.
[8]
Marc de Kruijf and Karthikeyan Sankaralingam. 2011. Idempotent Processor Architecture. In Symposium on Microarchitecture (MICRO). 140--151.
[9]
M. de Kruijf and K. Sankaralingam. 2013. Idempotent code generation: Implementation, analysis, and evaluation. In Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on. 1--12.
[10]
Marc A. de Kruijf, Karthikeyan Sankaralingam, and Somesh Jha. 2012. Static Analysis and Compiler Design for Idempotent Processing. In Conference on Programming Language Design and Implementation (PLDI). 475--486.
[11]
Samuel DeBruin, Bradford Campbell, and Prabal Dutta. 2013. Monjolo: An Energy-harvesting Energy Meter Architecture. In Conference on Embedded Networked Sensor Systems (SenSys). 18:1--18:14.
[12]
Elmootazbellah N. Elnozahy and Willy Zwaenepoel. 1992. Manetho: Transparent Roll Back-Recovery with Low Overhead, Limited Rollback, and Fast Output Commit. IEEE Transactions on Computing 41, 5 (May 1992), 526--531.
[13]
Shuguang Feng, Shantanu Gupta, Amin Ansari, Scott A. Mahlke, and David I. August. 2011. Encore: Low-cost, Fine-grained Transient Fault Recovery. In International Symposium on Microarchitecture (MICRO). 398--409.
[14]
Matthew Hicks. 2016. MiBench port targeted at IoT devices. https://github.com/impedimentToProgress/MiBench2. (2016).
[15]
Matthew Hicks. 2016. Thumbulator: Cycle accurate ARMv6-m instruction set simulator. https://github.com/impedimentToProgress/thumbulator. (2016).
[16]
Matthew Hicks. 2017. Clank research artifact code repository. https://github.com/impedimentToProgress/ClankRepo. (2017).
[17]
Texas Instruments. 2015. MSP432P401R. (March 2015).
[18]
H. Jayakumar, A Raha, and V. Raghunathan. 2014. QUICKRECALL: A Low Overhead HW/SW Approach for Enabling Computations across Power Cycles in Transiently Powered Computers. In Conferences on Embedded Systems and VLSI Design. 330--335.
[19]
J. M. Kahn, R. H. Katz, and K. S. J. Pister. 1999. Next Century Challenges: Mobile Networking for Smart Dust. In Conference on Mobile Computing and Networking (MobiCom). 271--278.
[20]
S. Khanna, S.C. Bartling, M. Clinton, S. Summerfelt, J.A. Rodriguez, and H.P. McAdams. 2014. An FRAM-Based Nonvolatile Logic MCU SoC Exhibiting 100% Digital State Retention at VDD= 0 V Achieving Zero Leakage With < 400-ns Wakeup Time for ULP Applications. Solid-State Circuits, IEEE Journal of 49, 1 (Jan 2014), 95--106.
[21]
Seon Wook Kim, Chong liang Ooi, Rudolf Eigenmann, Babak Falsafi, and T. N. Vijaykumar. 2006. Exploiting reference idempotency to reduce speculative storage overflow. ACM Transactions on Programming Languages and Systems 28, 5 (2006), 942--965.
[22]
Daniel Kroening and Mitra Purandare. 2016. EBMC: The Enhanced Bounded Model Checker. (2016). http://www.cprover.org/ebmc/
[23]
Silicon Labs. 2016. EFM32 Zero Gecko 32-bit Microcontroller. (2016). http://www.silabs.com/products/mcu/32-bit/efm32-zero-gecko/Pages/efm32-zero-gecko.aspx
[24]
Yoonmyung Lee, Gyouho Kim, Suyoung Bang, Yejoong Kim, Inhee Lee, P. Dutta, D. Sylvester, and D. Blaauw. 2012. A modular 1mm3 die-stacked sensing platform with optical communication and multi-modal energy harvesting. In Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2012 IEEE International. 402--404.
[25]
C.-C.J. Li and W.K. Fuchs. 1990. CATCH-compiler-assisted techniques for checkpointing. In Symposium on Fault-Tolerant Computing (FTCS). 74--81.
[26]
Q. Liu, C. Jung, D. Lee, and D. Tiwari. 2016. Compiler-Directed Lightweight Checkpointing for Fine-Grained Guaranteed Soft Error Recovery. In International Conference for High Performance Computing, Networking, Storage and Analysis (SC). 228--239.
[27]
Brandon Lucia and Benjamin Ransford. 2015. A Simpler, Safer Programming and Execution Model for Intermittent Systems. In Conference on Programming Language Design and Implementation (PLDI).
[28]
Kaisheng Ma, Yang Zheng, Shuangchen Li, K. Swaminathan, Xueqing Li, Yongpan Liu, J. Sampson, Yuan Xie, and V. Narayanan. 2015. Architecture exploration for ambient energy harvesting nonvolatile processors. In High Performance Computer Architecture (HPCA). 526--537.
[29]
Scott A. Mahlke, William Y. Chen, Roger A. Bringmann, Richard E. Hank, Wen-mei W. Hwu, B. Ramakrishna Rau, and Michael S. Schlansker. 1993. Sentinel scheduling: a model for compiler-controlled speculative execution. ACM Transactions on Computer Systems 11 (1993), 376--408.
[30]
A. Mirhoseini, E.M. Songhori, and F. Koushanfar. 2013. Idetic: A high-level synthesis approach for enabling long computations on transiently-powered ASICs. In International Conference on Pervasive Computing and Communications (Per-CoM). 216--224.
[31]
Satish Narayanasamy, Gilles Pokam, and Brad Calder. 2005. BugNet: Continuously recording program execution for deterministic replay debugging. In International Symposium on Computer Architecture (ISCA). 284--295.
[32]
M. Prvulovic, Zheng Zhang, and J. Torrellas. 2002. ReVive: cost-effective architectural support for rollback recovery in shared-memory multiprocessors. In International Symposium on Computer Architecture (ISCA). 111--122.
[33]
Qingrui Liu and Changhee Jung. 2016. Lightweight Hardware Support for Transparent Consistency-Aware Checkpointing in Intermittent Energy-Harvesting systems. In Symposium on Non-Volatile Memory Systems and Applications (NVMSA), Vol. 5.
[34]
B. Randell, P. Lee, and P. C. Treleaven. 1978. Reliability Issues in Computing System Design. Comput. Surveys 10, 2 (June 1978), 123--165.
[35]
Benjamin Ransford, Shane Clark, Mastooreh Salajegheh, and Kevin Fu. 2008. Getting Things Done on Computational RFIDs with Energy-aware Checkpointing and Voltage-aware Scheduling. In Conference on Power Aware Computing and Systems (HotPower). 5--5.
[36]
Benjamin Ransford and Brandon Lucia. 2014. Nonvolatile Memory is a Broken Time Machine. In Workshop on Memory Systems Performance and Correctness (MSPC). Article 5, 3 pages.
[37]
Benjamin Ransford, Jacob Sorber, and Kevin Fu. 2011. Mementos: System Support for Long-running Computation on RFID-scale Devices. In Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 159--170.
[38]
Yannis Smaragdakis and George Balatsouras. 2015. Pointer Analysis. Foundations and Trends in Programming Languages 2, 1 (2015), 1--69.
[39]
Texas Instruments. MSP430FR59xx Datasheet. Texas Instruments. http://www.ti.com/lit/ds/symlink/msp430fr5969.pdf
[40]
Joel Van Der Woude and Matthew Hicks. 2016. Intermittent Computation without Hardware Support or Programmer Intervention. In Symposium on Operating System Design & Implementation (OSDI). 17--32.
[41]
Yu-Chi Wu, Pei-Fan Chen, Zhi-Huang Hu, Chao-Hsu Chang, Gwo-Chuan Lee, and Wen-Ching Yu. 2009. A Mobile Health Monitoring System Using RFID Ring-Type Pulse Sensor. In Conference on Dependable, Autonomic and Secure Computing (DASC). 317--322.
[42]
Xilinx. 2016. Xilinx Virtex-7 FPGA VC709 Connectivity Kit. (2016). http://www.xilinx.com/products/boards-and-kits/dk-v7-vc709-g.html
[43]
Xilinx. 2016. Xilinx Vivado Design Suite. (2016). https://www.xilinx.com/products/design-tools/vivado.html
[44]
Hong Zhang, Jeremy Gummeson, Benjamin Ransford, and Kevin Fu. 2011. Moo: A Batteryless Computational RFID and Sensing Platform. Technical Report UM-CS-2011-020. Department of Computer Science, University of Massachusetts Amherst, Amherst, MA. http://www.cs.umass.edu/publication/details.php?id=2114
[45]
Wei Zhang, Marc de Kruijf, Ang Li, Shan Lu, and Karthikeyan Sankaralingam. 2013. ConAir: Featherweight Concurrency Bug Recovery via Single-threaded Idempotent Execution. In Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 113--126.

Cited By

View all
  • (2024)CRAM-Based Acceleration for Intermittent Computing of Parallelizable TasksIEEE Transactions on Emerging Topics in Computing10.1109/TETC.2023.329342612:1(48-59)Online publication date: Jan-2024
  • (2024)Ensuring consistent recovery under power failure with minimal NVM write overheadJournal of Systems Architecture10.1016/j.sysarc.2024.103083148(103083)Online publication date: Mar-2024
  • (2023)Enabling Efficient Intermittent Computing on Brand New Microcontrollers via Tracking Programmable Voltage ThresholdsProceedings of the 11th International Workshop on Energy Harvesting & Energy-Neutral Sensing Systems10.1145/3628353.3628547(16-22)Online publication date: 12-Nov-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGARCH Computer Architecture News
ACM SIGARCH Computer Architecture News  Volume 45, Issue 2
ISCA'17
May 2017
715 pages
ISSN:0163-5964
DOI:10.1145/3140659
Issue’s Table of Contents
  • cover image ACM Conferences
    ISCA '17: Proceedings of the 44th Annual International Symposium on Computer Architecture
    June 2017
    736 pages
    ISBN:9781450348928
    DOI:10.1145/3079856
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 the author(s) 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: 24 June 2017
Published in SIGARCH Volume 45, Issue 2

Check for updates

Author Tags

  1. Batteryless Devices
  2. Energy Harvesting
  3. Idempotence
  4. Intermittent Computation

Qualifiers

  • Tutorial
  • Research
  • Refereed limited

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)96
  • Downloads (Last 6 weeks)17
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)CRAM-Based Acceleration for Intermittent Computing of Parallelizable TasksIEEE Transactions on Emerging Topics in Computing10.1109/TETC.2023.329342612:1(48-59)Online publication date: Jan-2024
  • (2024)Ensuring consistent recovery under power failure with minimal NVM write overheadJournal of Systems Architecture10.1016/j.sysarc.2024.103083148(103083)Online publication date: Mar-2024
  • (2023)Enabling Efficient Intermittent Computing on Brand New Microcontrollers via Tracking Programmable Voltage ThresholdsProceedings of the 11th International Workshop on Energy Harvesting & Energy-Neutral Sensing Systems10.1145/3628353.3628547(16-22)Online publication date: 12-Nov-2023
  • (2023)Hitchhiker's Guide to Secure Checkpointing on Energy-Harvesting SystemsProceedings of the 11th International Workshop on Energy Harvesting & Energy-Neutral Sensing Systems10.1145/3628353.3628542(8-15)Online publication date: 12-Nov-2023
  • (2023)SweepCache: Intermittence-Aware Cache on the CheapProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623781(1059-1074)Online publication date: 28-Oct-2023
  • (2023)Fine-grained Hardware Acceleration for Efficient Batteryless Intermittent Inference on the EdgeACM Transactions on Embedded Computing Systems10.1145/360847522:5(1-19)Online publication date: 26-Sep-2023
  • (2023)Experience: ARISTOTLE: wAke-up ReceIver-based, STar tOpology baTteryLEss sensor networkProceedings of the 22nd International Conference on Information Processing in Sensor Networks10.1145/3583120.3586961(177-190)Online publication date: 9-May-2023
  • (2023)ETAP: Energy-aware Timing Analysis of Intermittent ProgramsACM Transactions on Embedded Computing Systems10.1145/356321622:2(1-31)Online publication date: 25-Jan-2023
  • (2023)BOBBER A Prototyping Platform for Batteryless Intermittent AcceleratorsProceedings of the 2023 ACM/SIGDA International Symposium on Field Programmable Gate Arrays10.1145/3543622.3573046(221-228)Online publication date: 12-Feb-2023
  • (2023)ELIXIR: An Expedient Connection Paradigm for Self-Powered IoT DevicesIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2023.326672442:11(3743-3756)Online publication date: 1-Nov-2023
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media