Abstract
Acknowledging the intense requirement for low power operation in most portable computing systems, this paper introduces the notion of energy efficient software design and proposes metrics, for evaluating software systems in terms of their energy consumption. Considering the sources of power consumption in every digital circuit, and the fact that power is primarily dependent on the executing software, appropriate energy measures are derived, which can be extracted from the flowgraph of a program. The proposed measures are computed by applying rules common to the existing hierarchical measures of other internal software attributes, and form the basis for the definition of a software energy metric. This metric can be used in order to determine the level of energy consumption of any software system more efficiently than existing assembly-parsing techniques, with only a limited penalty in accuracy. Application to different implementations of algorithms, drawn from matrix algebra and multimedia, demonstrates the efficiency of the proposed energy metric for comparison purposes, and as an indicator for quality improvement.
Similar content being viewed by others
References
Benini, L. and De Micheli, G. 2000. System-level power optimization: Techniques and tools, ACM Transactions on Design Automation of Electronic Systems, 5(2): 115-192.
Bhaskaran, V. and Konstantinides, K. 1999. Image and Video Compression Standards: Algorithms and Architectures, 2nd ed., Boston, Kluwer Academic Publishers.
Brooks, D., Tiwari, V., and Martonosi, M. 2000. Wattch: A framework for architectural-level power analysis and optimizations, Proc. International Symposium on Computer Architecture, Vancouver, BC, Canada, pp. 83-94.
Catthoor, F., Wuytack, S., De Greef, E., Balasa, F., Nachtergaele, L., and Vandecappelle, A. 1998. Custom Memory Management Methodology: Exploration of Memory Organization for Embedded Multimedia System Design, Boston, Kluwer Academic Publishers.
Chandrakasan A. and Brodersen R. 1995. Low Power Digital CMOS Design, Boston, Kluwer Academic Publishers.
Dasigenis, M., Kroupis, N., Argyriou, A., Tatas, K., Soudris, D., Zervas, N., and Thanailakis, A. 2001. A memory management approach for efficient implementation of multimedia kernelson programmable architectures, Proc. IEEE Computer Society Annual Workshop on VLSI, Orlando, Florida, pp. 171-176.
Ejiogu, L. 1991. Software Engineering with Formal Metrics, QED Publishing.
Fenton, N.E. and Pfleeger, S.L. 1996. Software Metrics: A Rigorous and Practical Approach, London, International Thomson Computer Press.
Fornaciari, W., Gubian, P., Sciuto, D., and Silvano, C. 1998. Power estimation of embedded systems: A hardware/software codesign approach, IEEE Trans. on VLSI Systems, 6(2): 266-275.
Furber, S. 2000. ARM System-on-Chip Architecture, Harlow, Addison-Wesley.
Golub, G.H. and Van Loan, C.F. 1996. Matrix Computations, Baltimore, John Hopkins University Press.
Jalote, P. 1997. An Integrated Approach to Software Engineering, New York, Springer Verlag.
Kandemir, M., Vijaykrishnan, N., Irwin, M.J., and Ye, W. 2000. Influence of compiler optimizations on system power, Proc. Design Automation Conference, LosAngeles, CA, pp. 304-307.
Landman, P. 1996. High-level power estimation, Proc. International Symposium on Low Power Electronics and Design, Monterey, CA, pp. 29-35.
Lee, M.T.-C., Tiwari, V., Malik, S., and Fujita, M. 1997. Power analysis and minimization techniques for embedded DSP software, IEEE Trans. on VLSI Systems, 5(1): 123-135.
Malik, S., Martonosi, M., and Li, Y.-T.S. 1997. Static Timing Analysis of Embedded Software, Proc. Design Automation Conference, Anaheim, CA, pp. 147-152.
Pressman, R.S. 1997. Software Engineering: A Practitioner's Approach, New York, McGraw-Hill.
Shaw, A.C. 1989. Reasoning about time in higher-level language software, IEEE Transactions on Software Engineering, 15(7): 875-889.
Shiue, W.-T. and Chakrabarti, C. 1999. Memory exploration for low power, embedded systems, Proc. Design Automation Conference, New Orleans, Louisiana, pp. 140-145.
Sinevriotis, G. and Stouraitis, Th. 1999. Power analysis of the ARM 7 embedded microprocessor, Proc. Int. Workshop on Power and Timing Modeling, Optimization and Simulation, Kos, Greece, pp. 261-270.
Sinevriotis, G. and Stouraitis, Th. 2001. SOFLOPO: low power software development for embedded applications, ESPRIT ESD-LPD Project 25403, Public Final Report (http://www.vlsi.ee.upatras. gr/so.opo/index.html).
Sinha A. and Chandrakasan, A. 2001. JouleTrack—A web based tool for software energy profiling. Proc. Design Automation Conference, Las Vegas, Nevada, pp. 220-225.
Tiwari V., Malik, S. and Wolfe, A. 1994. Power analysis of embedded software: A first step towards software power minimization, IEEE Transactions on VLSI Systems, 2(4): 437-445.
Tiwari, V., Malik, S., Wolfe, A., and Lee, T.C. 1996. Instruction level power analysis and optimization of software, Journal of VLSI Signal Processing, 13(2): 1-18.
Theokharidis, M. 2000. Measuring energy dissipation of ARM7TDMI processor instructions, University of Dortmund, Dept. of Computer Science. (http://ls12-www.cs.uni-dortmund.de/publications/theses).
Van Loan, C.F. 2000, Introduction to Scientific Computing, Upper Saddle River, Prentice Hall.
Ye, W., Vijaykrishnan, N., Kandemir, M., Irwin, M. J. 2000, The design and use of SimplePower: A cycle-accurate energy estimation tool, Proc. Design Automation Conference, LosAngeles, CA, pp. 340-345.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Chatzigeorgiou, A., Stephanides, G. Energy Metric for Software Systems. Software Quality Journal 10, 355–371 (2002). https://doi.org/10.1023/A:1022142105380
Issue Date:
DOI: https://doi.org/10.1023/A:1022142105380