Techniques for low energy software

The energy consumption of a system depends upon the hardware and software component of a system. Since it is the software which drives the hardware in most systems, decisions taken during software design has significant impact on the energy consumption of the processor. The paper focuses on decreasing energy consumption of a processor using software techniques. A novel compiler technique is proposed which reduces energy consumption by proper register labeling during the compilation phase. The idea behind this technique is to reduce the energy of the processor by reducing the energy of the instruction register (also the instruction data bus) and the register file decoder by encoding the register labels such that the sum of the switching costs between all the register labels in the transition graph is minimized. There is no hardware penalty since this is purely a compiler optimization. Results on benchmarks show that the energy consumption of the DLX processor can be reduced by 9.82% (maximum) and 4.25% (average) (as measured by DLX energy simulator). In addition several compiler techniques such as loop unrolling, software pipelining, recursion elimination and of effects of different algorithms on power and energy consumption are studied. This evaluation methodology is useful for computer architects to evaluate energy improvements of their hardware, compiler writers to evaluate energy of the compiled code and program writers to evaluate energy of data structures and algorithms.

[1]  Sharad Malik,et al.  A Survey of Optimization Techniques Targeting Low Power VLSI Circuits , 1995, 32nd Design Automation Conference.

[2]  José C. Monteiro,et al.  Techniques for the power estimation of sequential logic circuits under user-specified input sequences and programs , 1995, ISLPED '95.

[3]  Sharad Malik,et al.  Technology Mapping for Low Power , 1993, DAC 1993.

[4]  Jan M. Rabaey,et al.  Activity-sensitive architectural power analysis for the control path , 1995, ISLPED '95.

[5]  Mary Jane Irwin,et al.  Energy characterization based on clustering , 1996, DAC '96.

[6]  Jan M. Rabaey,et al.  Architectural power analysis: The dual bit type method , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[7]  Sharad Malik,et al.  Power analysis of embedded software: a first step towards software power minimization , 1994, ICCAD.

[8]  Mary Jane Irwin,et al.  Instruction level power profiling , 1996, 1996 IEEE International Conference on Acoustics, Speech, and Signal Processing Conference Proceedings.

[9]  Sharad Malik,et al.  Technology Mapping for Low Power , 1993, 30th ACM/IEEE Design Automation Conference.

[10]  Andrew Wolfe,et al.  Compilation techniques for low energy: an overview , 1994, Proceedings of 1994 IEEE Symposium on Low Power Electronics.

[11]  Chi-Ying Tsui,et al.  Low power architecture design and compilation techniques for high-performance processors , 1994, Proceedings of COMPCON '94.

[12]  Luca Benini,et al.  Regression Models for Behavioral Power Estimation , 1998, Integr. Comput. Aided Eng..

[13]  Mike Tien-Chien Lee,et al.  Power analysis and low-power scheduling techniques for embedded DSP software , 1995 .

[14]  Jan M. Rabaey,et al.  Power estimation for high level synthesis , 1993, 1993 European Conference on Design Automation with the European Event in ASIC Design.

[15]  Mike Tien-Chien Lee,et al.  A memory allocation technique for low-energy embedded DSP software , 1995, 1995 IEEE Symposium on Low Power Electronics. Digest of Technical Papers.

[16]  Sharad Malik,et al.  Power analysis of embedded software: a first step towards software power minimization , 1994, IEEE Trans. Very Large Scale Integr. Syst..