Instruction Balance and its Relation to Program Energy Consumption
Tao Li and Chen Ding
October 1, 2001
A computer consists of multiple components such as functional units, cache
and main memory. At each moment of execution, a program may have a varied
amount of work for each component. Recent development has exploited this
imbalance to save energy by slowing the components that have a lower load.
Example techniques include dynamic scaling and clock gating used in processors
from Transmeta and Intel. Symmetrical to reconfiguring hardware is reorganizing
software. We can alter program demand for different components by reordering
program instructions. This paper explores the theoretical lower bound of
energy consumption assuming that both a program and a machine are fully
adjustable. It shows that a program with a balanced load always consumes
less energy than the same program with uneven loads under the same execution
speed. In addition, the paper examines the relation between energy consumption
and program performance. It shows that reducing power is a different problem
than that of improving performance. Finally, the paper presents empirical
evidence showing that a program may be transformed to have a balanced demand
in most parts of its execution.
Download the paper in pdf
or postscript format.