Abstract
The design trend of high-speed microprocessors is toward wider and wider issue architecture to increase instruction-level parallelism. Such architecture needs a large register file to reduce register pressure. A large register file, however, consumes much more power during program execution. In this paper, we first analyze the register requirements in general programs, especially among those parts of the program which take most of execution time. Next, we drive a power-aware register assignment algorithm to distribute different access-frequencies temporary values over different register groups. Finally, we design a dynamic voltage scaling circuit to save the power consumption for those infrequently accessed registers. Experimental results show that partitioning the storage locations of temporary values in a register file will indeed impact the utilization of each register, and within a DVS approach a large register file can thus save a significant ratio of power consumption.
Similar content being viewed by others
References
Kim NS et al (2003) The microarchitecture of a low power register file. In: Proceedings of the 2003 international symposium on low power electronics and design, pp 384–389. doi:10.1145/871506.871602
Scott J et al (1999) Designing the M.CORETM M3 CPU architecture. In: Proceedings of IEEE international conference on computer design (ICCD’99), p 94. doi:10.1109/ICCD.1999.808407
Richard G (2006) Leakage takes priority at 65 nm. EETIMES. http://www.eetimes.com/news/design/showArticle.jhtml?articleID=175804055
Palacharla S et al (1997) Complexity-effective superscalar processors. In: Proceedings of the international symposium on computer architecture (ISCA), pp 206–218. doi:10.1109/ISCA.1997.604689
Zyuban V, Kogge P (1998) The energy complexity of register files. In: International symposium on low-power electronics and design, pp 305–310. doi:10.1145/280756.280943
Balasubramonian R et al (2001) Reducing the complexity of the register file in dynamic superscalar processor. In: Proceedings of the 34th microarchitecture (MICRO-34), pp 237–248
Hennessy J, Patterson D (2006) Computer architecture: a quantitative approach, 4th edn. Kaufmann, Los Altos, pp 17–19
Cruz J, González A et al (2000) Multiple-banked register file architectures. In: Proceedings of the international symposium on computer architecture (ISCA’00), pp 316–325. doi:10.1145/342001.339708
Merten MC et al (1999) A hardware-driven profiling scheme for identifying program hot spots to support runtime optimization. In: Proceeding of the 26th international symposium on computer architecture, pp 136–148. doi:10.1145/300979.300991
Iyer A et al (2001) Power aware microarchitecture resource scaling. In: Proceeding of conference and exhibition, pp 190–196
Kim NS et al (2003) Leakage current: Moore’s law meets static power. Computer 36:68–75. doi:10.1109/MC.2003.1250885
Shieh WY et al (2011) Saving register-file static power by monitoring instruction sequence in ROB. J Syst Archit 57:327–329. doi:10.1007/11807964_77
SimpleScalar. http://www.simplescalar.com/
SPEC2000. http://www.spec.org/cpu/
Tseng JH et al (2003) Banked multiported register files for high-frequency superscalar microprocessors. In: Proceedings of the international symposium on computer architecture (ISCA’03), pp 62–71. doi:10.1109/ISCA.2003.1206989
Ponomarev D et al (2004) Isolating short-lived operands for energy reduction. IEEE Trans Comput 53:696–709. doi:10.1109/TC.2004.11
Lozano L et al (1995) Exploiting short-lived variables in superscalar processors. In: Proceedings of the 28th annual international symposium on microarchitecture, pp 292–302
Fkautner K et al (2002) Drowsy caches: Simple techniques for reducing leakage power. In: Proceedings of the international symposium on computer architecture (ISCA’02), pp 148–157. doi:10.1109/ISCA.2002.1003572
Kim NS et al (2004) Circuit and microarchitectural techniques for reducing cache leakage power. IEEE Trans Very Large Scale Integr 12:167–184. doi:10.1109/TVLSL.2003.821550
Kim NS et al (2002) Drowsy instruction caches: leakage power reduction using dynamic voltage scaling and cache sub-bank prediction. In: Proceedings of the 35th annual ACM/IEEE international symposium on microarchitecture, pp 219–230
Burd TD et al (2000) Design issues for dynamic voltage scaling. In: Proceedings of the 2000 international symposium on low power electronics and design, pp 9–14. doi:10.1145/344166.344181
Shieh WY et al (2008) Saving register-file leakage energy by register-usage exploiting. J Inf Sci Eng 24:1429–1444
GCC. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Farkas K et al (1997) The multicluster architecture: reducing cycle time through partitioning. In: Proceedings of the 30th microarchitecture, pp 149–159
Janssen J et al (1995) Partitioned register file for TTAs. In: Proceedings of the 28th microarchitecture MICRO-28, pp 303–312
Hironaka T et al (2005) Superscalar processor with multi-bank register file. In: Proceedings of the innovative architecture on future generation high-performance processors and systems, pp 3507–3510. doi:10.1109/IWIA.2005.42
Ayala JL et al (2003) Power-aware compilation for register file energy reduction. Int J Parallel Program 31:151–167. doi:10.1023/B:IJPP.0000004510.66751.2e
Ayala JL et al (2003) Energy aware register file implementation through instruction predecode. In: Proceedings of the application-specific systems, architectures, and processors, pp 86–96. doi:10.1109/ASAP.2003.1212832
Shieh WY et al (2009) Power-aware register assignment for multi-banked register files. J Inf Sci Eng 25:1901–1920
Abella J et al (2003) On reducing register pressure and energy in multiple-banked register files. In: Proceedings of the 21st international conference on computer design, pp 14–20
CACTI: http://www.hpl.hp.com/personal/Norman_Jouppi/cacti4.html
Jones T et al (2009) Energy-efficient register caching with compiler assistance. ACM Trans Archit Code Optim 6:13–23
Park S et al (2006) Bypass aware instruction scheduling for register file power reduction. In: Proceedings of the ACM SIGPLAN/SIGBED conference on languages, compilers, and tools for embedded systems, pp 173–181
Lingo. http://www.lindo.com
Xie F et al (2004) Intraprogram dynamic voltage scaling: Bounding opportunities with analytic modeling. ACM Trans Archit Code Optim 1:323–367
Liao W et al (2005) Temperature and supply voltage aware performance and power modeling at microarchitecture level. IEEE Trans Comput-Aided Des Integr Circuits Syst 24:1042–1053
SimPoint, http://cseweb.ucsd.edu/~calder/simpoint/
Bird S et al (2007) Performance characterization of SPEC CPU benchmarks on Intel’s core microarchitecture based processor. In: SPEC benchmarking workshops and conferences
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Shieh, WY., Wang, BS. Power-aware register assignment for large register file design. J Supercomput 61, 719–742 (2012). https://doi.org/10.1007/s11227-011-0633-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-011-0633-1