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.
翻译:能源采集系统展示了超长操作时间而没有维护的独特好处,预期在物联网时代会更加流行。然而,由于无电池的性质,它们会遭受不可预测的频繁断电。因此,它们需要一种轻量机制来保持崩溃的一致性,因为通过省略的节省/储存检查站可以消耗来得不易获得的能源,从而限制进步。原因,能源采集系统仅设计为非挥发性内存(NVM),使用挥发性的数据缓存被认为不可行或至少具有挑战性,因为难以确保缓存线的持久性。在本文中,我们提议重新播放CAche,这是一个软件专用的崩溃一致性计划,使商品收集系统能够利用波动性能存储系统来利用挥发性数据缓存。相反,RelayC缓存的回收运行运行系统可以重新运行潜在的不透性存储存储存储状态,从中断的程序序列可以安全地恢复。为了支持在恢复期间存储存储性存储性存储性存储系统, ReCcadead 将所有稳定性存储器的运行到恢复区域。