Bog'liq (Lecture Notes in Computer Science 10793) Mladen Berekovic, Rainer Buchty, Heiko Hamann, Dirk Koch, Thilo Pionteck - Architecture of Computing Systems – ARCS
3.2 Overhead Characterization Power-performance and thermal policies relying on DVFS are often closed loop
ones, meaning that they measure some quantity (system load or chip temper-
ature), execute an algorithm to decide whether a change of operating point is
needed, and in case, pick the best one according to a multi-objective function.
Many different approaches exist, from PID control [
22
] to optimization tech-
niques [
23
], and policies can be executed as either as periodic or event-based [
21
]
tasks. Such policies often work better if the rate of DVFS point changes is
increased, as they can better keep up with the variability introduced by the
applications [
9
].
The rate of DVFS changes is thus a trade-off between the advantages of a
fast rate control and the overhead of DVFS transitions. This overhead is lim-
ited by hardware factors, which are mainly the time the PLL takes to set a
new frequency, and the time required by the voltage regulator to switch to a
new voltage. Often these two actions are performed sequentially [
14
], to avoid
transition through critical path failure regions.
The impact of switching to a new DVFS point can be evaluated from a
performance and a energy perspective. In fact, a DVFS transition subtracts a
certain amount of CPU time to useful computations, resulting in both perfor-
mance and energy overhead. In most embedded DVFS implementations, voltage
and frequency control are exposed to the operating system independently, and
cannot be changed simultaneously. For example, in a scale-down transition the
frequency must be changed before decreasing the voltage. The opposite happens
in the scale-up transitions. In both cases for a certain amount of time in the
middle of DVFS transitions, the voltage applied to the CPU is higher than the
value expected by the operating point for the current frequency. This sequence
is a further source of energy overhead.
The proposed solution for measuring time overheads makes use of on-board
GPIO ports, or general purpose input/output on the SoC. The DVFS driver is
instrumented in order to set the pin at the beginning of the code block to profile,
and clear it at the end. An oscilloscope can be connected to the GPIO and used
to measure the time. This technique allows to measure the full DVFS transition,
as well as its individual parts such as the PLL lock and voltage regulator settling.
To measure the energy consumption the power supply line of the CPU cores
should be cut, and the insertion of a shunt resistor is required. Using an oscil-
loscope, it is then possible to measure the CPU core voltage and the current
drawn, from which it is possible to compute the DVFS energy consumption.