Abstract
Energy saving is one of the most important missions in the design of battery-based mobile systems. Many ideas have been suggested for saving energy in different system layers. Specifically: 1) lowering the supply voltage for idle CPU time slots; 2) using hybrid memory to save DRAM refresh power; and 3) task offloading to edge/cloud servers are well-acknowledged techniques used in CPU, memory, and network subsystems. In this article, we show that co-optimizing these three techniques is necessary for further reducing the energy consumption of mobile real-time systems. To this end, we present an extended task model and formulate the effect of dynamic voltage/frequency scaling (DVFS), hybrid memory allocation, and task offloading problems as a unified measure. We then present a new real-time task scheduling scheme, called Co-TOMS, to co-optimize the energy-saving techniques in CPU, memory, and network subsystems by considering the given task set and resource conditions. The main contributions of our study can be summarized as follows. First, we optimize three energy-saving techniques across different system layers and find that they have significant influence on each other. For example, the effect of DVFS alone is limited in mobile systems, but combining it with offloading greatly amplifies its efficiency. Second, previous studies on offloading usually define a deadline as the maximum allowable latency at the application level, but we focus on hard real-time systems that must meet task-level deadlines. Third, we design a steady-state genetic algorithm that allows fast convergence with reasonable computation overhead under various resource and workload conditions.
Original language | English |
---|---|
Pages (from-to) | 9177-9192 |
Number of pages | 16 |
Journal | IEEE Internet of Things Journal |
Volume | 10 |
Issue number | 10 |
DOIs | |
State | Published - 15 May 2023 |
Bibliographical note
Publisher Copyright:© 2014 IEEE.
Keywords
- CPU voltage scaling
- energy saving
- memory placement
- mobile system
- real-time task
- task offloading