DocumentCode :
2417940
Title :
Quantitative evaluation of the register stack engine and optimizations for future Itanium processors
Author :
Weldon, R. David ; Chang, Steven S. ; Hong Wang ; Hoflehner, Gerolf ; Wang, Hong ; Lavery, Dan ; Shen, John P.
Author_Institution :
Microprocessor Res., Intel Corp., Santa Clara, CA, USA
fYear :
2002
fDate :
2002
Firstpage :
57
Lastpage :
67
Abstract :
This paper examines the efficiency of the register stack engine (RSE) in the canonical Itanium architecture, and introduces novel optimization techniques to enhance the RSE performance. To minimize spills and fills of the physical register file, optimizations are applied to reduce internal fragmentation in statically allocated register stack frames. Through the use of dynamic register usage (DRU) and dead register value information (DVI), the processor can dynamically guide allocation and deallocation of register frames. Consequently, a speculatively allocated register frame with a dynamically determined frame size can be much smaller than the statically determined frame size, thus achieving minimum spills and fills. Using the register stack engine (RSE) in the canonical Itanium architecture as the baseline reference, we thoroughly study and gauge the tradeoffs of the RSE and the proposed optimizations using a set of SPEC CPU2000 benchmarks built with different compiler optimizations. A combination of frame allocation policies using the most frequent frame size and deallocation policies using dead register information proves to be highly effective. On average, a 71% reduction in aggregate spills and fills can be achieved over the baseline reference
Keywords :
program compilers; reduced instruction set computing; storage allocation; Itanium processors; SPEC CPU2000 benchmarks; canonical Itanium architecture; compiler optimizations; dead register value information; dynamic register usage; dynamically determined frame size; fills; frame allocation policies; internal fragmentation reduction; quantitative evaluation; register file; register frame allocation; register frame deallocation; register stack engine; speculatively allocated register frame; spills; statically allocated register stack frames; statically determined frame size; Aggregates; Computer architecture; Delay; Educational institutions; Engines; Microprocessors; Optimizing compilers; Page description languages; Registers; Welding;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Interaction between Compilers and Computer Architectures, 2002. Proceedings. Sixth Annual Workshop on
Conference_Location :
Cambridge, MA
Print_ISBN :
0-7695-1534-7
Type :
conf
DOI :
10.1109/INTERA.2002.995843
Filename :
995843
Link To Document :
بازگشت