DocumentCode
304107
Title
The design of a modulo scheduler for a superscalar RISC processor
Author
Tinumalai, P. ; Beylin, Boris ; Subramanian, Krishna
Author_Institution
Sun Microsystems Inc., Mountain View, CA, USA
fYear
1996
fDate
35339
Firstpage
97
Lastpage
109
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
Keywords
parallel architectures; parallel programming; performance evaluation; processor scheduling; reduced instruction set computing; dependence graph; inner loops; modulo scheduler; partitioned dependence graph scheduling; performance; software pipelining; superscalar RISC processor; systematic amortization; virtual register allocation phase; Clocks; Delay; Frequency; Pipeline processing; Process design; Processor scheduling; Reduced instruction set computing; Registers; Sun; Trademarks;
fLanguage
English
Publisher
ieee
Conference_Titel
Parallel Architectures and Compilation Techniques, 1996., Proceedings of the 1996 Conference on
Conference_Location
Boston, MA
ISSN
1089-795X
Print_ISBN
0-8186-7633-7
Type
conf
DOI
10.1109/PACT.1996.552642
Filename
552642
Link To Document