Lightweight hardware support for transparent consistency-aware checkpointing in intermittent energy-harvesting systems

Non-volatile memory (NVM) enables intermittent systems without batteries because of the persistence of NVM. However, the persistence presents a new challenge to memory consistency threatening to corrupt application data across a power failure. Prior work proposes various software-based techniques built upon compiler instrumentation to achieve memory consistency. However, those techniques are not only limited by the complexity, conservatism, and soundness of static program analyses resulting in an excessive amount of checkpoints, but also lack the guarantee of forward progress. This paper presents TCCP, a Transparent Consistency-aware CheckPointing hardware scheme that automatically checkpoints the system states, thus requiring neither recompilation nor user intervention. TCCP does not immediately perform committed stores to non-volatile memory as if they are speculative assuming an impending power failure. Across a failure, such speculation allows TCCP to rollback to an execution point with consistent program states by simply discarding the speculative stores. To achieve this, TCCP only requires very few modifications to conventional processor design practices, as it leverages the existing store buffer. To provide forward progress guarantee, TCCP also incorporates a simple counter-based logic. On average, TCCP incurs only 0.7% runtime overhead and reduces the number of checkpoints by 3.1X compared to the state-of-the-art software-based scheme.

[1]  Devesh Tiwari,et al.  Low-cost soft error resilience with unified data verification and fine-grained recovery for acoustic sensor based detection , 2016, 2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[2]  Jingtong Hu,et al.  Fixing the broken time machine: Consistency-aware checkpointing for energy harvesting powered non-volatile processor , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[3]  Jaejin Lee,et al.  Adaptive execution techniques of parallel programs for multiprocessors , 2010, J. Parallel Distributed Comput..

[4]  Arnab Raha,et al.  QUICKRECALL: A Low Overhead HW/SW Approach for Enabling Computations across Power Cycles in Transiently Powered Computers , 2014, 2014 27th International Conference on VLSI Design and 2014 13th International Conference on Embedded Systems.

[5]  Thomas F. Wenisch,et al.  Memory persistency , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[6]  Christopher Frost,et al.  Better I/O through byte-addressable, persistent memory , 2009, SOSP '09.

[7]  Rong Luo,et al.  Storage-less and converter-less maximum power point tracking of photovoltaic cells for a nonvolatile microprocessor , 2014, 2014 19th Asia and South Pacific Design Automation Conference (ASP-DAC).

[8]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[9]  Narayanan Vijaykrishnan,et al.  Architecture exploration for ambient energy harvesting nonvolatile processors , 2015, 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA).

[10]  Devesh Tiwari,et al.  Clover: Compiler Directed Lightweight Soft Error Resilience , 2015, LCTES.

[11]  Brandon Lucia,et al.  A simpler, safer programming and execution model for intermittent systems , 2015, PLDI.

[12]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[13]  Devesh Tiwari,et al.  Compiler-Directed Soft Error Detection and Recovery to Avoid DUE and SDC via Tail-DMR , 2016, ACM Trans. Embed. Comput. Syst..

[14]  Bo Zhao,et al.  A 3us wake-up time nonvolatile processor based on ferroelectric flip-flops , 2012, 2012 Proceedings of the ESSCIRC (ESSCIRC).

[15]  이재진,et al.  Adaptive execution method for multithreaded processor based parallel systems , 2006 .

[16]  Jaejin Lee,et al.  Adaptive execution techniques for SMT multiprocessor architectures , 2005, PPOPP.

[17]  Devesh Tiwari,et al.  Compiler-Directed Lightweight Checkpointing for Fine-Grained Guaranteed Soft Error Recovery , 2016, SC16: International Conference for High Performance Computing, Networking, Storage and Analysis.

[18]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

[19]  Stratis Viglas,et al.  Efficient persist barriers for multicores , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[20]  Rajesh K. Gupta,et al.  NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories , 2011, ASPLOS XVI.

[21]  Jongmoo Choi,et al.  ThyNVM: Enabling software-transparent crash consistency in persistent memory systems , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[22]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[23]  Kevin Fu,et al.  Mementos: system support for long-running computation on RFID-scale devices , 2011, ASPLOS XVI.

[24]  Yu Wang,et al.  4.7 A 65nm ReRAM-enabled nonvolatile processor with 6× reduction in restore time and 4× higher clock frequency using adaptive data retention and self-write-termination nonvolatile logic , 2016, 2016 IEEE International Solid-State Circuits Conference (ISSCC).