🤖 AI Summary
Batteryless, energy-harvesting IoT devices suffer from high persistent-state overhead and weak data security under intermittent power supply. Method: This paper proposes vNV-Heap—the first virtual non-volatile heap that simultaneously ensures power-failure resilience and memory-safety guarantees for non-volatile memory—by integrating Rust’s ownership model into virtual memory design. Its core innovation is compile-time, fine-grained mutation tracking and object-level persistent virtualization, enabled by static ownership analysis and power-failure-resilient memory management. Contribution/Results: Implemented on the ESP32-C3 platform, vNV-Heap significantly reduces persistence energy consumption compared to state-of-the-art approaches. It provides statically verifiable worst-case energy upper bounds and end-to-end memory safety—guaranteed at compile time—thereby enabling efficient, secure, and predictable execution for intermittently powered systems.
📝 Abstract
The Battery-Free Internet of Things might revolutionize our understanding of connected devices, which harvest their operational energy from the environment (e.g., using solar cells). These systems come with the major system-software challenge that the intermittently-powered IoT devices have to checkpoint their state in non-volatile memory to later resume operation with this state when sufficient energy is available. The scarce energy resources demand that only modified data is persisted to non-volatile memory before a power failure, which requires precise modification-tracking. In this paper, we present the first virtually Non-Volatile Heap (vNV-Heap) abstraction for intermittently-powered systems with guaranteed power-failure resilience and non-volatile memory safety (analogous to memory-safety for RAM). The heap exploits ownership systems, a zero-cost (i.e., compile-time) abstraction for example implemented by Rust, to track modifications and virtualize object-persistence. To achieve power-failure resilience, our heap is designed and implemented to guarantee bounded operations by static program code analysis: As an example, the heap allows for determining a worst-case energy consumption for the operation of persisting modified and currently volatile objects. Our evaluations with our open-source implementation on an embedded hardware platform (i.e., ESP32-C3) shows that using our heap abstraction is more energy-efficient than existing approaches, while also providing runtime guarantees by static worst-case analysis bounds.