Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (1996)
Oct. 20, 1996 to Oct. 23, 1996
P. Tinumalai , Sun Microsystems Inc., Mountain View, CA, USA
K. Subramanian , Sun Microsystems Inc., Mountain View, CA, USA
B. Beylin , Sun Microsystems Inc., Mountain View, CA, USA
Abstract: Module scheduling is a form of software pipelining that extracts parallelism from inner loops by overlapping the execution of successive iterations. This paper describes the design of a commercial module scheduler for a modern superscalar RISC processor. Systematic amortization of instructions and partitioned dependence graph scheduling deliver good performance in the face of limited instruction issue. Slot reservation prior to scheduling permits effective handling of both pipelined and non-pipelined instructions. Constraining the dependence graph allows loops containing simple control flow to be scheduled with very limited architectural support. A virtual register allocation phase during scheduling uses simple but effective heuristics to control high register pressure. Extensive data on the performance of the module scheduler on a collection of over one thousand loops are presented.
reduced instruction set computing; modulo scheduler; superscalar RISC processor; software pipelining; inner loops; systematic amortization; partitioned dependence graph scheduling; dependence graph; virtual register allocation phase; performance
P. Tinumalai, K. Subramanian, B. Beylin, "The Design of a Modulo Scheduler for a Superscalar RISC Processor", Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques, vol. 00, no. , pp. 0097, 1996, doi:10.1109/PACT.1996.552642