当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Compiler Directed Speculative Intermittent Computation
arXiv - CS - Programming Languages Pub Date : 2020-06-20 , DOI: arxiv-2006.11479
Jongouk Choi, Qingrui Liu, Changhee Jung

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.

中文翻译:

编译器定向推测间歇计算

本文介绍了 CoSpec,这是一种新的架构/编译器协同设计方案,适用于能量收集系统中使用的商品有序处理器。为了在不需要非常规架构支持的情况下实现崩溃一致性,CoSpec 利用推测,假设不会发生电源故障,从而将所有提交的存储保存在存储缓冲区 (SB) 中,就像它们是推测的一样,以防误推测。CoSpec 编译器首先将给定的程序划分为一系列可恢复的代码区域,并考虑到 SB 大小,以便没有区域溢出 SB。当程序控制到达每个区域的末尾时,结果推测成功,从而将区域的所有缓冲存储释放到 NVM。如果区域执行过程中发生断电,它的所有推测存储都在易失性 SB 中消失,即它们从不影响 NVM 中的程序状态。因此,中断的区域可以在电源故障后以一致的程序状态重新启动。为了隐藏 SB 发布的延迟,即本质上 NVM 写入,在每个区域边界,CoSpec 将当前区域的 NVM 写入与下一个区域的推测执行重叠。这种指令级并行性给人一种在有序处理器之上乱序执行的错觉,在没有断电的情况下实现了 1.2 倍以上的加速。我们对一组频繁中断的真实能量收集轨迹进行的实验表明,CoSpec 的性能平均比最先进的方案高 1.8~3 倍。断电后,中断的区域可以以一致的程序状态重新启动。为了隐藏 SB 发布的延迟,即本质上 NVM 写入,在每个区域边界,CoSpec 将当前区域的 NVM 写入与下一个区域的推测执行重叠。这种指令级并行性给人一种在有序处理器之上乱序执行的错觉,在没有断电的情况下实现了 1.2 倍以上的加速。我们对一组频繁中断的真实能量收集轨迹进行的实验表明,CoSpec 的性能平均比最先进的方案高 1.8~3 倍。断电后,中断的区域可以以一致的程序状态重新启动。为了隐藏 SB 发布的延迟,即本质上 NVM 写入,在每个区域边界,CoSpec 将当前区域的 NVM 写入与下一个区域的推测执行重叠。这种指令级并行性给人一种在有序处理器之上乱序执行的错觉,在没有断电的情况下实现了 1.2 倍以上的加速。我们对一组频繁中断的真实能量收集轨迹进行的实验表明,CoSpec 的性能平均比最先进的方案高 1.8~3 倍。CoSpec 将当前区域的 NVM 写入与下一个区域的推测执行重叠。这种指令级并行性给人一种在有序处理器之上乱序执行的错觉,在没有断电的情况下实现了 1.2 倍以上的加速。我们对一组频繁中断的真实能量收集轨迹进行的实验表明,CoSpec 的性能平均比最先进的方案高 1.8~3 倍。CoSpec 将当前区域的 NVM 写入与下一个区域的推测执行重叠。这种指令级并行性给人一种在有序处理器之上乱序执行的错觉,在没有断电的情况下实现了 1.2 倍以上的加速。我们对一组频繁中断的真实能量收集轨迹进行的实验表明,CoSpec 的性能平均比最先进的方案高 1.8~3 倍。
更新日期:2020-06-23
down
wechat
bug