Dynamic Voltage and Frequency Scaling for Intermittent Computing
Andrea Maioli, Kevin A. Quinones, Saad Ahmed, Muhammad H. Alizai, Luca Mottola
TL;DR
The paper tackles DVFS for intermittently powered, battery-less devices that rely on ambient energy harvesting. It introduces two hardware/software co-designs, D$^2$VFS and FBTC, which implement energy-aware voltage and frequency scaling within a constrained energy envelope. Through hardware experiments and software-emulated evaluations, the authors demonstrate substantial performance gains, including up to 3.75x energy savings and 12x faster execution compared with baselines, while using smaller energy buffers. The study shows that these co-designs can adapt to highly variable energy supplies, enabling more useful work per energy cycle and advancing practical deployment of energy-harvesting sensing nodes and similar devices.
Abstract
We present hardware/software techniques to intelligently regulate supply voltage and clock frequency of intermittently-computing devices. These devices rely on ambient energy harvesting to power their operation and small capacitors as energy buffers. Statically setting their clock frequency fails to capture the unique relations these devices expose between capacitor voltage, energy efficiency at a given operating frequency, and the corresponding operating range. Existing dynamic voltage and frequency scaling techniques are also largely inapplicable due to extreme energy scarcity and peculiar hardware features. We introduce two hardware/software co-designs that accommodate the distinct hardware features and function within a constrained energy envelope, offering varied trade-offs and functionalities. Our experimental evaluation combines tests on custom-manufactured hardware and detailed emulation experiments. The data gathered indicate that our approaches result in up to 3.75x reduced energy consumption and 12x swifter execution times compared to the considered baselines, all while utilizing smaller capacitors to accomplish identical workloads.
