Abstract
Due to the scarce energy in battery-free systems, the system cannot be active for a long time and frequently suffers from power outage. In order to protect programs executing completely, a program runtime typically first collects enough energy from the environment in low-power mode and then executes a part of programs in active mode, repeating until all programs are completed successfully. According to the strategy of executing the program, existing runtimes can be divided into two categories, burst execution and checkpoint execution. The former performs a complete program at a time after charging enough, and adapts to lightweight programs like sensing. On the other hand, the latter splits the program into several segments and can be executed intermittently, which is suitable for long-term computing programs. In practical applications, however, the above two types of programs exist simultaneously and are often mixed in program scheduling. Existing runtimes cannot effectively support mixed execution on different types of programs, resulting in a decline in system performance in terms of task throughput. This paper proposes a lightweight runtime that dynamically adjusts the program execution strategy according to different program categories, and fully supports the mixed execution with high efficiency. In order to achieve this, our basic idea is to assign a program description block (PDB) to each program to indicate the type of program execution. Before executing each program, the runtime first determines the program type and then dynamically configures the corresponding execution strategy, and chooses the best way to execute the corresponding program. In doing so, however, it is quite challenging to implement such design in battery-free systems due to the scarce energy. To make the runtime dynamic, we have to redesign the runtime kernel that is currently static in existing battery-free systems, but the dynamic optimization will bring extra high energy overheads to the system. To achieve a lightweight design, we deeply investigate the root reason of the extra energy overheads. Essentially, the dynamic runtime needs to be aware of dynamicity of the harvested energy. However, we observe that energy sensing operations drain the major power consumption in the dynamic optimization, where the system has to keep detecting how much energy is available in the system. Since battery-free systems often exhaust and recharge their energy reservoirs in milliseconds, the frequent energy sensing operations result in high energy overheads to the system. To address this problem, we construct the dynamic runtime based on our proposed lightweight energy sensing component. Further, we build a system throughput model to describe the relationship between task throughput and different programs in the dynamic runtime, which shows a theoretical analysis to the throughput. Moreover, we discuss the compatibility of the dynamic runtime with existing programs and make efforts to design a program framework to support the mixed execution to all of existing programs. Finally, we implement our design on the Intel WISP platform and conduct comprehensive experiments to evaluate the improved performance in particular task throughput. The results show that the throughput of the adaptive runtime is 102.8% higher than that of the burst execution runtime, and 34% higher than that of the checkpoint execution runtime.
| Translated title of the contribution | A Dynamic and Lightweight Runtime for Battery-Free Systems |
|---|---|
| Original language | Chinese (Traditional) |
| Pages (from-to) | 1326-1340 |
| Number of pages | 15 |
| Journal | Jisuanji Xuebao/Chinese Journal of Computers |
| Volume | 44 |
| Issue number | 7 |
| DOIs | |
| Publication status | Published - Jul 2021 |
| Externally published | Yes |
Bibliographical note
Publisher Copyright:© 2021, Science Press. All right reserved.
Keywords
- Battery-free system
- Energy efficiency
- Program execution
- Runtime
- Throughput