Energy efficiency is an ongoing goal in computer system design. This paper proposes compiler-directed techniques to mark those branches that are inside of a loop body, putting the prediction table entries for the other branches in an energy-saving mode during the loop execution, and thus reducing the leakage energy of branch predictors while maintaining accuracy and performance. These techniques work on both innermost and outermost loops, and require some hardware support to turn the mechanism on or off. Very long instruction word (VLIW) is the target architecture.
This is a simple and well-defined idea to control partial energy consumption. The proposed approach is well explained, and it is clear where the benefits can be extracted. However, the experiments were carried out on a prediction table with fixed size, restricting the importance of the results once the advantages of the proposal are directly proportional to that size. Also, the results are shown only in terms of dead time, instead of energy reduction or instructions per cycle, making it impossible to see the practical advantages or the real impact on performance. An unfavorable aspect is that the approach requires the recompilation of current applications to include special on/off instructions. In any case, energy usually wasted can be retrieved through this approach.