ReplayCache: Enabling Volatile Cachesfor Energy Harvesting Systems

ReplayCache: Enabling Volatile Cachesfor Energy Harvesting Systems
复制标题

DOI:
10.1145/3466752.3480102
复制
发表时间:
2021-10
期刊:
MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture
影响因子:
--
通讯作者:
Jianping Zeng;Jongouk Choi;Xinwei Fu;Ajay Paddayuru Shreepathi;Dongyoon Lee;Changwoo Min;Changhee Jung
Jianping Zeng;Jongouk Choi;Xinwei Fu;Ajay Paddayuru Shreepathi;Dongyoon Lee;Changwoo Min;Changhee Jung
中科院分区:
其他
文献类型:
--
作者:
Jianping Zeng;Jongouk Choi;Xinwei Fu;Ajay Paddayuru Shreepathi;Dongyoon Lee;Changwoo Min;Changhee Jung

文献摘要

相似文献

能量收集系统已经显示出其超长运行时间而无需维护的独特优势,预计在物联网时代将更加普遍。然而,由于无电池的性质,它们经常遭受不可预测的停电。因此,他们需要一个轻量级的机制来实现崩溃一致性,因为在中断期间保存/恢复检查点可能会消耗来之不易的能量,从而限制向前的进展。因此,能量收集系统设计时仅配备非易失性存储器(NVM)。使用易失性数据缓存被认为是不可行的,或者至少是具有挑战性的,因为难以确保缓存行持久性。在本文中,我们提出了ReplayCache,这是一种仅限软件的崩溃一致性方案,使商品能源收集系统能够利用易失性数据缓存。ReplayCache不必确保脏缓存行的持久性,也不必在运行时记录它们的日志。相反,ReplayCache恢复运行时在电源故障之后重新执行潜在未持久化的存储,以恢复一致的NVM状态,中断的程序可以从该状态安全地恢复。为了支持恢复期间的存储重放,ReplayCache将程序分区为一系列区域,以使存储操作数寄存器在每个区域内保持完整,并使用商品系统的崩溃一致性机制在电源故障之前检查所有寄存器。为了提高性能,ReplayCache启用了区域级持久化,允许区域中的存储异步持久化,直到区域结束,利用ILP。对23个基准应用程序的评估表明,与没有缓存的基线相比,ReplayCache在没有和有断电的情况下分别可以实现约10.72倍和8.5倍-8.9倍的加速比(几何平均值)。
Energy harvesting systems have shown their unique benefit of ultra-long operation time without maintenance and are expected to be more prevalent in the era of Internet of Things. However, due to the batteryless nature, they suffer unpredictable frequent power outages. They thus require a lightweight mechanism for crash consistency since saving/restoring checkpoints across the outages can limit forward progress by consuming hard-won energy. For the reason, energy harvesting systems have been designed with a non-volatile memory (NVM) only. The use of a volatile data cache has been assumed to be not viable or at least challenging due to the difficulty to ensure cacheline persistence. In this paper, we propose ReplayCache, a software-only crash consistency scheme that enables commodity energy harvesting systems to exploit a volatile data cache. ReplayCache does not have to ensure the persistence of dirty cachelines or record their logs at run time. Instead, ReplayCache recovery runtime re-executes the potentially unpersisted stores in the wake of power failure to restore the consistent NVM state, from which interrupted program can safely resume. To support store replay during recovery, ReplayCache partitions program into a series of regions in a way that store operand registers remain intact within each region, and checkpoints all registers just before power failure using the crash consistency mechanism of the commodity systems. For performance, ReplayCache enables region-level persistence that allows the stores in a region to be asynchronously persisted until the region ends, exploiting ILP. The evaluation with 23 benchmark applications show that compared to the baseline with no caches, ReplayCache can achieve about 10.72x and 8.5x-8.9x speedup (on geometric mean) for the scenarios without and with power outages, respectively.