Global register partitioning
Document Type
Article
Publication Date
1-1-2000
Abstract
Modern computers have taken advantage of the instruction-level parallelism (ILP) available in programs with advances in both architecture and compiler design. Unfortunately, large amounts of ILP hardware and aggressive instruction scheduling techniques put great demands on a machine's register resources. With increasing ILP, it becomes difficult to maintain a single monolithic register bank and a high clock rate. To provide support for large amounts of ILP while retaining a high clock rate, registers can be partitioned among several different register banks. Each bank is directly accessible by only a subset of the functional units with explicit inter-bank copies required to move data between banks. Therefore, a compiler must deal not only with achieving maximal parallelism via aggressive scheduling, but also with data placement to limit inter-bank copies. Our approach to code generation for ILP architectures with partitioned register resources provides flexibility by representing machine dependent features as node and edge weights and by remaining independent of scheduling and register allocation methods. Experimentation with our framework has shown a degradation in execution performance of 10% on average when compared to an unrealizable monolithic-register-bank architecture with the same level of ILP.
Publication Title
Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT
Recommended Citation
Hiser, J.,
Carr, S.,
&
Sweany, P.
(2000).
Global register partitioning.
Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT, 13-23.
http://doi.org/10.1109/PACT.2000.888256
Retrieved from: https://digitalcommons.mtu.edu/michigantech-p/10850