Title :
Improving instruction-level parallelism by loop unrolling and dynamic memory disambiguation
Author :
Davidson, Jack W. ; Jinturkar, Sanjay
Author_Institution :
Dept. of Comput. Sci., Virginia Univ., Charlottesville, VA, USA
fDate :
29 Nov-1 Dec 1995
Abstract :
Exploitation of instruction-level parallelism is an effective mechanism for improving the performance of modern super-scalar/VLIW processors. Various software techniques can be applied to increase instruction-level parallelism. This paper describes and evaluates a software technique, dynamic memory disambiguation, that permits loops containing loads and stores to be scheduled more aggressively, thereby exposing more instruction-level parallelism. The results of our evaluation show that when dynamic memory disambiguation is applied in conjunction with loop unrolling, register renaming, and static memory disambiguation, the ILP of memory-intensive benchmarks can be increased by as much as 300 percent over loops where dynamic memory disambiguation is not performed. Our measurements also indicate that for the programs that benefit the most from these optimizations, the register usage does not exceed the number of registers on mast high-performance processors
Keywords :
instruction sets; parallel architectures; program testing; software performance evaluation; VLIW processors; dynamic memory disambiguation; instruction-level parallelism; loop unrolling; memory-intensive benchmarks; performance improvement; register renaming; software technique evaluations; software techniques; static memory disambiguation; superscalar processors; Computer science; Dynamic scheduling; Hardware; Parallel processing; Performance evaluation; Pipelines; Processor scheduling; Program processors; Registers; VLIW;
Conference_Titel :
Microarchitecture, 1995., Proceedings of the 28th Annual International Symposium on
Conference_Location :
Ann Arbor, MI
Print_ISBN :
0-8186-7349-4
DOI :
10.1109/MICRO.1995.476820