Energy Scheduling for Task Execution on Intermittently-Powered Devices
Intermittently-powered embedded devices are getting widespread attention these days. However, running real-time tasks on these devices remains a challenging problem due to the lack of support for data freshness guarantee, time keeping, and schedulability analysis. Furthermore, while many sensing applications require low-level sensor readings to be done in an atomic way, meaning that the operations cannot be suspended and resumed later, existing solutions for intermittently-powered devices assume compute-only workloads and disregard such sensor operations. In this research, we provide an energy harvesting model for intermittently-powered devices, and based on that, propose techniques to utilize intermittent power sources efficiently and to schedule real-time periodic tasks that need atomic operations. We present a hardware-software co-design scheme to keep track of time and to ensure the periodic execution of sensing tasks. We provide schedulability analysis to determine if a single task is schedulable in a given charging setup, and extend this idea to scheduling multiple tasks. As a proof-of-concept, we design a custom programmable RFID tag device, called R'tag, and demonstrate the effect of our proposed techniques in a realistic sensing application. We also show the device parameters' effect on energy harvesting performance in simulation. We compare the baseline approach and the proposed method both in simulation and experimental evaluations. Evaluation results, both on simulation and experiment, verify that the proposed method outperforms the baseline approach in terms of task scheduling, time keeping, and periodic sensing.