WARio: efficient code generation for intermittent computing

WARio: efficient code generation for intermittent computing
复制标题

DOI:
10.1145/3519939.3523454
复制
发表时间:
2022-06
期刊:
Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Vito Kortbeek;Josiah D. Hester;Simone Campanoni
Vito Kortbeek;Josiah D. Hester;Simone Campanoni
中科院分区:
其他
文献类型:
--
作者:
Vito Kortbeek;Josiah D. Hester;Simone Campanoni

文献摘要

相似文献

通过能量收集提供动力的间歇性操作嵌入式计算平台需要软件框架,以保护(战争)依赖性后写入的错误。具有非挥发性主内存的系统的代码保护的强大方法利用编译器分析在代码中的每个战争违规中插入一个检查点。但是,此类软件框架不理会代码结构 - 因此,当存在许多连续的战争违规时,效率低下。我们的见解是,通过将输入代码转换,即将单个写作操作从彼此接近的唯一战争中移动,我们可以大大减少检查点的数量。这个想法是Wario的基础:一组编译器转换,用于间歇计算的有效代码生成。与各种基准相比,Wario平均将检查站开销降低了58%,高达88%。
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.