2022 · 18 citations · 31 references
EngineeringComputer EngineeringComputer ScienceCompilersEmbedded SystemsFault-tolerant ComputingControl-flow AnalysisData-flow AnalysisHardware Fault ToleranceSoftware Fault ToleranceCheckpointing OptimizationIntermittent FaultsPower-aware CompilationProtectionRuntime Code GenerationSoftware FrameworksTransformationsWrite Propagation
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.
31
MiBench: A free, commercially representative embedded benchmark suite
Matthew R. Guthaus, Jeffrey Ringenberg, Daniel Ernst et al. · 2005 · 1.6K citations
SVF: interprocedural static value-flow analysis in LLVM
Yulei Sui, Jingling Xue · 2016 · 410 citations · Full text
Benjamin Ransford, Jacob Sorber, Kevin Fu · 2011 · 346 citations