Unroll-based copy elimination for enhanced pipeline scheduling

IEEE Transactions on Computers - Tập 51 Số 9 - Trang 977-994 - 2002
Suhyun Kim1, Soo-Mook Moon1, Jinpyo Park1, K. Ebcioglu2
1School of Electrical Engineering and Computer Science, Seoul National University, Seoul, South Korea
2IBM Thomas J. Watson Research Center, Yorktown Heights, NY, USA

Tóm tắt

Enhanced pipeline scheduling (EPS) is a software pipelining technique which can achieve a variable initiation interval (II) for loops with control flow via its code motion pipelining. EPS, however, leaves behind many renaming copy instructions that cannot be coalesced due to interferences. These copies take resources and, more seriously, they may cause a stall if they rename a multilatency instruction whose latency is longer than the II aimed for by EPS. This paper proposes a code transformation technique based on loop unrolling which makes those copies coalescible. Two unique features of the technique are its method of determining the precise unroll amount, based on an idea of extended live ranges, and its insertion of special bookkeeping copies at loop exits. The proposed technique enables EPS to avoid a serious slowdown from latency handling and resource pressure, while keeping its variable II and other advantages. In fact, renaming through copies, followed by unroll-based copy elimination, is EPS's solution to the cross-iteration register overwrite problem in software pipelining. It works for loops with arbitrary control flow that EPS must deal with, as well as for straightline loops. Our empirical study performed on a VLIW testbed with a two-cycle load latency shows that 86 percent of the otherwise uncoalescible copies in innermost loops become coalescible when unrolled 2.2 times on average. In addition, it is demonstrated that the unroll amount obtained is precise and the most efficient. The unrolled version of the VLIW code includes fewer no-op VLIW caused by stalls, improving the performance by a geometric mean of 18 percent on a 16-ALU machine.

Từ khóa

#Pipeline processing #Interference #Delay #VLIW #Moon #Motion control #Performance evaluation #Testing #Optimizing compilers

Tài liệu tham khảo

steffen, 1996, Property-Oriented Expansion, Proc Int'l Static Analysis Symp (SAS '96), 22 10.1109/PACT.1998.727246 10.1109/MICRO.1997.645802 10.1145/177492.177575 10.1145/229542.229546 rau, 1994, Data Flow and Dependence Analysis for Instruction Level Parallelism, Languages and Compilers for Parallel Computing, 236 shim, 1998, Split-Path Enhnaced Pipeline Scheduling for Loops with Control Flows, Proc MICRO-31, 93 10.1145/113445.113464 10.1145/263580.263653 10.1145/53990.54022 kim, 1997, Unroll-Based Copy Coalescing 10.1145/70082.68185 10.1145/212094.212131 10.1145/1014192.802449 10.1145/267959.269966 ebcioglu, 1989, A New Compilation Technique for Parallelizing Loops with Unpredictable Branches on a VLIW Architecture, Languages and Compilers for Parallel Computing, 213 10.1109/MICRO.1996.566456 10.1109/71.476167 10.1109/MICRO.1995.476818 stoodley, 1996, Software Pipelining Loops with Conditional Branches, Proc 29th Ann Workshop Microprogramming (Micro-29)