skip to main content
research-article

Register allocation for embedded systems to simultaneously reduce energy and temperature on registers

Published:24 December 2013Publication History
Skip Abstract Section

Abstract

Energy and thermal issues are two important concerns for embedded system design. Diminished energy dissipation leads to a longer battery life, while reduced temperature hotspots decelerate the physical failure mechanisms. The instruction fetch logic associated with register access has a significant contribution towards the total energy consumption. Meanwhile, the register file has also been previously shown to exhibit the highest temperature compared to the rest of the components in an embedded processor. Therefore, the optimization of energy and the resolution of the thermal issue for register accesses are of great significance. In this article, register allocation techniques are studied to simultaneously reduce energy consumption and heat buildup on register accesses for embedded systems. Contrary to prevailing intuition, we observe that optimizing energy and optimizing temperature on register accesses conflict with each other. We introduce a rotator hardware in the instruction decoder to facilitate a balanced solution for the two conflicting objectives. Algorithms for register allocation and refinement are proposed based on the access patterns and the effects of the rotator. Experimental results show that the proposed algorithms obtain notable improvements of energy and peak temperature for embedded applications.

References

  1. ARM. 2012. http://www.arm.com/products/processors/cortex-a/cortex-a8.php.Google ScholarGoogle Scholar
  2. Bouchez, F., Darte, A., Guillon, C., and Rastello, F. 2006. Register allocation: What does the NP-completeness proof of Chaitin et al. really prove? or revisiting register allocation: Why and how. In Proceedings of the 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC'06). 283--298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Briggs, P. 1992. Register allocation via graph coloring. Ph.D. Dissertations, Rice University. http://citeseer.ist.psu.edu/briggs92register.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Chaitin, G. J. 1982. Register allocation and spilling via graph coloring. ACM SIGPLAN Not. 39, 4, 66--74.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chaitin, G. J., Auslander, M. A., Chandra, A. K., Cocke, J., Hopkins, M. E., and Markstein, P. W. 1981. Register allocation via coloring. Comput. Lang. 6, 47--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Chang, J. and Pedram, M. 1995. Register allocation and binding for lower power. In Proceedings of the Design Automation Conference (DAC'95). 29--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Chow, F. C. and Hennessy, J. L. 1990. The priority-based register allocation. ACM Trans. Program. Lang. Syst. 12, 4, 501--536. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Farach, M. and Liberatore, V. 1998. On local register allocation. In Proceedings of the 9th Annual ACM-SIAM Symposium on Discrete Algorithms. 564--573. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Fu, C. and Wilken, K. 2002. A faster optimal register allocator. In Proceedings of the 35th Annual ACM/IEEE International Symposium on Microarchitecture. 245--256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Gebotys, C. 1997. Low energy memory and register allocation using network flow. In Proceedings of the International Conference on Design Automation Conference (DAC'97). 435--440. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Guthaus, M. R., Ringenberg, J. S., Ernst, D., Austin, T. M., Mudge, T., and Brown, R. B. 2001. MiBench: A free, commercially representative embedded benchmark suite. In Proceedings of the IEEE International Workshop on Workload Characterization (WWC-4). 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Homayoun, H., Gupta, A., Veidenbaum, A. V., Sasan, A., Kurdahi, F. J., and Dutt, N. 2010. Relocate: Register file local access pattern redistribution mechanism for power and thermal management in out-of-order embedded processor. In Proceedings of the International Conference on High-Performance and Embedded Architectures and Compilers (HiPEAC). 216--231. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. HotSpot. 2011. http://lava.cs.virginia.edu/HotSpot/.Google ScholarGoogle Scholar
  14. Hsieh, W. and Hwang, T. 2009. Thermal-aware post compilation for vliw architectures. In Proceedings of the Asia and South Pacific Design Automation Conference (ASP-DAC'09). 606--611. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Huang, Y., Liu, T., and Xue, C. J. 2012. Register allocation for write activity minimization on non-volatile main memory for embedded systems. J. Syst. Architect. Embed. Syst. Design 58, 1, 13--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Koes, D. R. and Goldstein, S. C. 2006. A global progressive register allocator. SIGPLAN Not. 41, 204--215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lasance, C. J. 2003. Thermally driven reliability issues in microelectronic systems: Status-quo and challenges. Microelectron. Reliab. 43, 12, 1969--1974.Google ScholarGoogle ScholarCross RefCross Ref
  18. Martin, M., Roth, A., and Fischer, C. 1997. Exploiting dead value information. In Proceedings of the 30th Annual ACM/IEEE International Symposium on Microarchitecture. 125--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Panda, P. R. and Dutt, N. D. 1999. Low-power memory mapping through reducing address bus activity. IEEE Trans. VLSI Syst. 7, 3, 309--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Patel, K., Lee, W., and Pedram, M. 2007. Active bank switching for temperature control of the register file in a microprocessor. In Proceedings of the 17th ACM Great Lakes Symposium on VLSI. 231--234. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Pereira, F. M. Q. and Palsberg, J. 2006. Register allocation after classical SSA elimination is NP-complete. Foundations of Software Science and Computation Structures. Lecture Notes in Computer Science, Series, vol. 3921, Springer Verlag, Berlin, 79--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Pereira, F. and Palsberg, J. 2005. Register allocation via coloring of chordal graphs. In Programming Languages and Systems. Lecture Notes in Computer Science, vol. 3780, Springer Verlag, Berlin, 315--329. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pereira, F. M. and Palsberg, J. 2008. Register allocation by puzzle solving. SIGPLAN Not. 43, 216--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Petrov, P. and Orailoglu, A. 2003. Compiler-based register name adjustment for low-power embedded processors. In Proceedings of the International Conference on Computer-Aided Design (ICCAD'03). 523--527. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Rusu, S. and Singer, G. 2000. The first IA-64 microprocessor. IEEE J. Solid-State Circuits 35, 11, 1539--1544.Google ScholarGoogle ScholarCross RefCross Ref
  26. Scholz, B. and Eckstein, E. 2002. Register allocation for irregular architectures. SIGPLAN Not. 37, 139--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. SimpleScalar. 2011. http://www.simplescalar.com/.Google ScholarGoogle Scholar
  28. Skadron, K., Stan, M., Huang, W., Velusamy, S., Sankaranarayanan, K., and Tarjan, D. 2003. Temperature-aware microarchitecture. In Proceedings of the 30th International Symposium on Computer Architecture (ISCA). 2--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Srinivasan, J. and Adve, S. 2003. Predictive dynamic thermal management for multimedia applications. In Proceedings of the International Conference on Supercomputing (ICS). 109--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Stan, M. R. and Burleson, W. P. 1995. Bus-invert coding for low-power I/O. IEEE Trans. VLSI Syst. 3, 1, 49--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Yang, C. and Orailoglu, A. 2009. Processor reliability enhancement through compiler-directed register file peak temperature reduction. In Proceedings of the 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. 468--477.Google ScholarGoogle Scholar
  32. Zhang, Y., Hu, X., and Chen, D. Z. 2002. Efficient global register allocation for minimizing energy consumption. ACM SIGPLAN Not. 37, 4, 42--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Zhou, X., Yu, C., and Petrov, P. 2008. Compiler-driven register re-assignment for register file power-density and temperature reduction. In Proceedings of the International Conference on Design Automation Conference (DAC'08). 750--753. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Zhuang, X. and Pande, S. 2005. Differential register allocation. SIGPLAN Not. 40, 168--179. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Register allocation for embedded systems to simultaneously reduce energy and temperature on registers

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!