Dynamic voltage and frequency scaling is increasingly being used to reduce the energy requirements of embedded and real-time applications by exploiting idle CPU resources, while still maintaining all application’s real-time characteristics. Accurate predictions of task run-times are key to computing the frequencies and voltages that ensure that all tasks’ real-time constraints are met. Past work has used feedback-based approaches, where applications’ past CPU utilizations are used to predict future CPU requirements. Mis-predictions in these approaches can lead to missed deadlines, suboptimal energy savings, or large overheads due to frequent changes to the chosen frequency or voltage. One shortcoming of previous approaches is that they ignore other ‘indicators’ of future CPU requirements, such as the frequency of I/O operations, memory accesses, or interrupts. This paper addresses the energy consumptions of memory-bound real-time applications via a feedback loop approach, ba...