Compiler Directed Speculative Intermittent Computation

06/20/2020
by   Jongouk Choi, et al.
0

This paper presents CoSpec, a new architecture/compiler co-design scheme that works for commodity in-order processors used in energy-harvesting systems. To achieve crash consistency without requiring unconventional architectural support, CoSpec leverages speculation assuming that power failure is not going to occur and thus holds all committed stores in a store buffer (SB), as if they were speculative, in case of mispeculation. CoSpec compiler first partitions a given program into a series of recoverable code regions with the SB size in mind, so that no region overflows the SB. When the program control reaches the end of each region, the speculation turns out to be successful, thus releasing all the buffered stores of the region to NVM. If power failure occurs during the execution of a region, all its speculative stores disappear in the volatile SB, i.e., they never affect program states in NVM. Consequently, the interrupted region can be restarted with consistent program states in the wake of power failure. To hide the latency of the SB release, i.e., essentially NVM writes, at each region boundary, CoSpec overlaps the NVM writes of the current region with the speculative execution of the next region. Such instruction level parallelism gives an illusion of out-of-order execution on top of the in-order processor, achieving a speedup of more than 1.2X when there is no power outage. Our experiments on a set of real energy harvesting traces with frequent outages demonstrate that CoSpec outperforms the state-of-the-art scheme by 1.8 3X on average.

READ FULL TEXT

page 6

page 8

page 10

page 11

research
02/18/2022

Enabling Volatile Caches for Energy Harvesting Systems

Energy harvesting systems have shown their unique benefit of ultra-long ...
research
06/06/2016

CG-OoO: Energy-Efficient Coarse-Grain Out-of-Order Execution

We introduce the Coarse-Grain Out-of-Order (CG- OoO) general purpose pro...
research
12/18/2022

An Efficient NVM based Architecture for Intermittent Computing under Energy Constraints

Battery-less technology evolved to replace battery technology. Non-volat...
research
05/16/2017

An Operational Framework for Specifying Memory Models using Instantaneous Instruction Execution

There has been great progress recently in formally specifying the memory...
research
07/30/2020

Identification of Failure Regions for Programs with Numeric Inputs

Failure region, where failure-causing inputs reside, has provided many i...
research
10/30/2017

Louvre: Lightweight Ordering Using Versioning for Release Consistency

Fence instructions are fundamental primitives that ensure consistency in...
research
06/13/2018

A Graphical Interactive Debugger for Distributed Systems

Designing and debugging distributed systems is notoriously difficult. Th...

Please sign up or login with your details

Forgot password? Click here to reset