Skip to main content

Memory Redundancy Elimination to Improve Application Energy Efficiency

  • Conference paper
Book cover Languages and Compilers for Parallel Computing (LCPC 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2958))

  • 574 Accesses

Abstract

Application energy consumption has become an increasingly important issue for both high-end microprocessors and mobile and embedded devices. A multitude of circuit and architecture-level techniques have been developed to improve application energy efficiency. However, relatively less work studies the effects of compiler transformations in terms of application energy efficiency. In this paper, we use energy-estimation tools to profile the execution of benchmark applications. The results show that energy consumption due to memory instructions accounts for a large share of total energy. An effective compiler technique that can improve energy efficiency is memory redundancy elimination. It reduces both application execution cycles and the number of cache accesses. We evaluate the energy improvement over 12 benchmark applications from SPEC2000 and MediaBench. The results show that memory redundancy elimination can significantly reduce energy in the processor clocking network and the instruction and data caches. The overall application energy consumption can be reduced by up to 15%, and the reduction in terms of energy-delay product is up to 24%.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Pering, T., et al.: The simulation and evaluation of dynamic voltage scaling algorithms. In: Int. Symp. on Low Power Electronics and Design, pp. 76–81 (1998)

    Google Scholar 

  2. Ghose, K., Kamble, M.: Reducing power in superscalar processor caches using subbanking, multiple line buffers and bit-line segmentation. In: Int. Symp. on Low Power Electronics and Design, pp. 70–75 (1999)

    Google Scholar 

  3. Kin, J., et al.: The filter cache: An energy efficient memory structure. In: Int. Symp. on Microarchitecture, pp. 184–193 (1997)

    Google Scholar 

  4. Simunic, T., Benini, L., Acquaviva, A., Glynn, P., Micheli, G.D.: Dynamic voltage scaling for portable systems. In: Design Automation Conf. (2001)

    Google Scholar 

  5. Lorch, J.R., Smith, A.J.: Improving dynamic voltage scaling algorithms with PACE. In: SIGMETRICS/Performance, pp. 50–61 (2001)

    Google Scholar 

  6. Albonesi, D.H.: Selective cache ways: On-demand cache resource allocation. In: International Symp. on Microarchitecture (1999)

    Google Scholar 

  7. Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann, San Francisco (2002)

    Google Scholar 

  8. Brooks, D., Tiwari, V., Martonosi, M.: Wattch: a framework for architectural-level power analysis and optimizations. In: ISCA, pp. 83–94 (2000)

    Google Scholar 

  9. Ye, W., Vijaykrishnan, N., Kandemir, M.T., Irwin, M.J.: The design and use of simplepower: a cycle-accurate energy estimation tool. In: Design Automation Conf., pp. 340–345 (2000)

    Google Scholar 

  10. Burger, D., Austin, T.: The simplescalar toolset, version 2.0. Computer Architecture News, pp. 13–25 (1997)

    Google Scholar 

  11. Gonzalez, R., Horowitz, M.: Energy dissipation in general purpose microprocessors. IEEE Journal of Solid-State Circuits, 1277–1283 (1996)

    Google Scholar 

  12. Lee, C., Potkonjak, M., Mangione-Smith, W.H.: Mediabench: A tool for evaluating and synthesizing multimedia and communications systems. In: Int. Symp. on Microarchitecture, pp. 330–335 (1997)

    Google Scholar 

  13. Cooper, K.D., Xu, L.: An efficient static analysis algorithm to detect redundant memory operations. In: ACM Workshop on Memory Systems Performance (2002)

    Google Scholar 

  14. Simpson, T.: Value-Driven Redundancy Elimination. PhD thesis, Rice U (1996)

    Google Scholar 

  15. Gargi, K.: A sparse algorithm for predicated global value numbering. In: ACM SIGPLAN PLDI, pp. 45–56 (2002)

    Google Scholar 

  16. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, University of Copenhagen (1994)

    Google Scholar 

  17. Cocke, J.: Global common subexpression elimination. In: Symp. on Compiler Construction, pp. 20–24 (1970)

    Google Scholar 

  18. Morel, E., Renvoise, C.: Global optimization by suppression of partial redundancies. Commun. ACM, 96–103 (1979)

    Google Scholar 

  19. Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. In: ACM SIGPLAN PLDI, pp. 224–234 (1992)

    Google Scholar 

  20. Drechsler, K.H., Stadel, M.P.: A variation of knoop, ruthing, and steffen’s lazy code motion. SIGPLAN Notices, 29–38 (1993)

    Google Scholar 

  21. Xu, L.: Program Redundancy Analysis and Optimization to Improve Memory Performance. PhD thesis, Rice University (2003)

    Google Scholar 

  22. Kandemir, M.T., Vijaykrishnan, N., et al.: Influence of compiler optimizations on system power. In: Design Automation Conf., pp. 304–307 (2000)

    Google Scholar 

  23. Hsu, C.H., Kremer, U.: The design, implementation, and evaluation of a compiler algorithm for cpu energy reduction. In: ACM SIGPLAN PLDI, pp. 38–48 (2003)

    Google Scholar 

  24. Kremer, U.: Compilers for power and energy management. PLDI Tutorial (2003)

    Google Scholar 

  25. Briggs, P., Cooper, K.D., Simpson, L.T.: Value numbering. Software: Practice and Experience, 710–724 (1977)

    Google Scholar 

  26. Lu, J., Cooper, K.: Register promotion in c programs. In: ACM SIGPLAN PLDI, pp. 308–319 (1997)

    Google Scholar 

  27. Lo, R., Chow, F., Kennedy, R., Liu, S.M., Tu, P.: Register promotion by sparse partial redundancy elimination of loads and stores. In: ACM SIGPLAN PLDI, pp. 26–37 (1998)

    Google Scholar 

  28. Sastry, A., Ju, R.D.: A new algorithm for scalar register promotion based on ssa form. In: ACM SIGPLAN PLDI, pp. 15–25 (1998)

    Google Scholar 

  29. Bodik, R., Gupta, R., Soffa, M.L.: Load-reuse analysis: Design and evaluation. In: ACM SIGPLAN PLDI, pp. 64–76 (1999)

    Google Scholar 

  30. Callahan, D., Carr, S., Kennedy, K.: Improving register allocation for subscripted variables. In: ACM SIGPLAN PLDI, pp. 53–65 (1990)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cooper, K.D., Xu, L. (2004). Memory Redundancy Elimination to Improve Application Energy Efficiency. In: Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2003. Lecture Notes in Computer Science, vol 2958. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24644-2_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24644-2_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21199-0

  • Online ISBN: 978-3-540-24644-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics