DocumentCode :
939007
Title :
Partitioning variables across register windows to reduce spill code in a low-power processor
Author :
Ravindran, Rajiv A. ; Senger, Robert M. ; Marsman, Eric D. ; Dasika, Ganesh S. ; Guthaus, Matthew R. ; Mahlke, Scott A. ; Brown, Richard B.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., Michigan Univ., Ann Arbor, MI, USA
Volume :
54
Issue :
8
fYear :
2005
Firstpage :
998
Lastpage :
1012
Abstract :
Low-power embedded processors utilize compact instruction encodings to achieve small code size. Such encodings place tight restrictions on the number of bits available to encode operand specifiers and, thus, on the number of architected registers. As a result, performance and power are often sacrificed as the burden of operand supply is shifted from the register file to the memory due to the limited number of registers. In this paper, we investigate the use of a windowed register file to address this problem by providing more registers than allowed in the encoding. The registers are organized as a set of identical register windows where, at each point in the execution, there is a single active window. Special window management instructions are used to change the active window and to transfer values between windows. This design gives the appearance of a large register file without compromising the instruction encoding. To support the windowed register file, we designed and implemented a graph partitioning-based compiler algorithm that partitions program variables and temporaries referenced within a procedure across multiple windows. On a 16-bit embedded processor, an average of 11 percent improvement in application performance and 25 percent reduction in system power was achieved as an 8-register design was scaled from one to two windows.
Keywords :
embedded systems; file organisation; instruction sets; low-power electronics; power consumption; program compilers; code generation; graph partitioning-based compiler algorithm; instruction encodings; low-power embedded processor; register file; register window; retargetable compiler; spill code; variable partitioning; window management instruction; Algorithm design and analysis; Design optimization; Distributed power generation; Encoding; Image coding; Optimizing compilers; Partitioning algorithms; Program processors; Registers; Signal processing algorithms; Index Terms- Code generation; embedded processor; graph partitioning; instruction encoding; low-power design; optimization; register window; retargetable compilers; spill code.;
fLanguage :
English
Journal_Title :
Computers, IEEE Transactions on
Publisher :
ieee
ISSN :
0018-9340
Type :
jour
DOI :
10.1109/TC.2005.132
Filename :
1453501
Link To Document :
بازگشت