Inserting DVFS Code in Hard Real-Time System Tasks - Pinheiro, Diego; Gonçalves, Rawlinson; Valentin, Eduardo; Oliveira, Horácio de; Barreto, Raimundo (Anais do Simpósio Brasileiro de Engenharia de Sistemas Computacionais (SBESC); 2017: Anais do VII Simpósio Brasileiro de Engenharia de Sistemas Computacionais, 2017)
Applying Dynamic Voltage and Frequency Scaling (DVFS) in real-time systems is not a trivial task. Real-Time tasks are bounded to timing constraints in such a way that a simple performance degradation may cause the system to totally fail. Thus, this work aims at gathering two DVFS approaches (intra and inter-tasks) to define a methodology for optimizing energy consumption in hard real-time systems. The intra-task approach analyzes execution flow of a task and identifies where new instructions can be inserted in order to change supply voltage and frequency when the worst-case path is not followed. On the other hand, the inter-task analyzes how long a task waits due to interferences (e.g. preemption, shared resources), verifies system schedulability, and defines a set of initial optimal frequencies in multi-task environment. The proposed method generates a new code with the same functionality as the original one, but with the advantage of having instructions to change voltage and frequency while taking into account the task interferences, and the new added overheads. Moreover, the experimental results show not only timing constraints were satisfied, but also the energy consumption was reduced around 16% and 18% compared to the total consumption of the highest available frequency in two evaluated paths.