Hardware Reference
In-Depth Information
a transition must be wrapped by a set of properly defined callback functions. An
high-level interface allows to define a governor , which is the platform independent
algorithm for the evaluation of system performance requirements and of the selection
of the optimal performance state. At least one governor must be defined, and mul-
tiple governors enable adaptive and dynamic multiple optimization strategies. The
default framework implementation provides five governors, the more interesting and
widely used being the on-demand governor . It implements a scaling policy based on
the run-to-idle optimization. The CPU load is monitored in a periodic time frame,
and according to the load observed in the past time frame a scaling decision is taken
according to a simple rule: try to keep the CPU utilization around the 80% [ 20 ]. On
CPU utilization higher that that threshold, an immediate scaling up to the maximum
available frequency is required, to the contrary, on lower CPU utilization the scaling
down is required step-by-step but only after a preconfigured number of negligible
load time-frames are elapsed.
The core implementation provides the code to bind the platform independent gov-
ernors down to the architecture specific driver. Moreover, a proper notification API
is provided which allows other kernel components not only to be aware about CPU
scaling operations but also to somehow interact with those optimization decisions,
for example to assert a veto on some changes due to some contingent constraints.
6.4.1.2
System-Wide Techniques
The clock distribution tree and the power domains have some common character-
istics: they have system-wide view (i.e., they interact with all the available on-chip
devices) and they define a hierarchical dependency tree (i.e., a local power opti-
mization decision could impact on different devices). These two components require
system-wide optimization techniques which are able to collect information from
multiple devices in order to identify a proper optimization strategy.
Suspend/Resume
The Suspend/Resume Framework ( S/R ) provides the proper support for a complete
and efficient resource hibernation strategy. Linux supports three static-power sav-
ing states: standby , suspend-to-RAM , and hibernation . The main difference between
them stands on how the device state is preserved. In a standby state a device is not
functional, but it is still powered at least to grant the preservation of the content of its
configuration registers. This kind of power saving addresses static power optimiza-
tion, since the device logic is powered down and only a retention voltage is applied to
the configuration array. This state could be always entered whenever a device is not in
use since the recovery time is relatively short and practically negligible if compared
to the typical operating system reaction time. In suspend-to-RAM a device is com-
pletely powered off, the contents of the configuration array are moved backed up in a
secure area in main memory. Recovering from such a state is more time demanding
Search WWH ::




Custom Search