Process Cruise Control: Event-Driven Clock Scaling for Dynamic Power Management

  • Author:

    Frank Bellosa

  • Source:

    University of Erlangen, Technical Report TR-I4-01-11, December 14, 2001

  • Date: 14.12.2001
  • Abstract:

    Scalability of the core frequency is a common feature of lowpower processor architectures. Many heuristics for frequency scaling were proposed in the past to find the best trade-off between energy efficiency and computational performance. With complex applications exhibiting unpredictable behavior these heuristics cannot reliably adjust the operation point of the hardware because they do not know where the energy is spent and why the performance is lost.

    Embedded hardware monitors in the form of event counters have proven to offer valuable information in the field of performance analysis. We will demonstrate that counter values can also characterize the power-specific characteristics of a thread.

    In this paper we propose an energy-aware scheduling policy that benefits from event counters. By exploiting the information from these counters, the scheduler determines the appropriate clock frequency for each individual thread running in a timesharing environment. A recurrent analysis of the thread-specific energy and performance profile allows an adjustment of the frequency to the behavioral changes of the application. While the clock frequency may vary in a wide range, the application performance should only suffer slightly (e.g. with 10% performance loss compared to the execution at the highest clock speed). Because of the similarity to a car cruise control, we called our scheduling policy Process Cruise Control. This adaptive clock scaling is accomplished by the operating system without any application support.

    Process Cruise Control has been implemented on the Intel XScale architecture, that offers a variety of frequencies and a set of configurable event counters. Energy measurements of the target architecture under variable load show the advantage of the proposed approach.


      author = {Frank Bellosa},
      title = {Process Cruise Control: Event-Driven Clock Scaling for Dynamic Power Management},
      booktitle = {Technical Report},
      number = {TR-I4-01-11},
      month = dec # "~14",
      year = 001,
      affiliation = {University of Erlangen, Germany},
      url = {}