Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (1998)
Oct. 12, 1998 to Oct. 18, 1998
David Nagle , Carnegie Mellon University
Nitzan Weinberg , Carnegie Mellon University
Evaluating high-level language pointer-expressions can require a significant portion of the execution time and memory bandwidth in programs, especially for pointers with multiple memory accesses and address computations. Often such pointers repeatedly follow the same evaluation paths and return the same values. We present a microarchitecture technique that dynamically eliminates the execution of pointers based on results obtained from previous evaluations, without using prediction. We experiment with a benchmark set that includes continuous-speech recognition, MPEG-1 decoding, and SPECint95 ijpeg, li and go programs. Simulations of Digital Alpha 21164 microprocessor show that the eliminated pointers account for up to 11.3% of execution time, and 26% of data memory bandwidth of an entire program. Hence, the proposed microarchitecture provides substantial performance gains by significantly reducing the number of executed pointers.
pointer, pointer-expression, conditional execution, cache memory, speech recognition, sphinx, mpeg, jpeg, microprocessor, microarchitecture, temporal, spatial, value, locality, sub-expression, data reuse, dynamic, SPECint95, memory address, compiler, memory bandwidth, performance analysis
David Nagle, Nitzan Weinberg, "Dynamic Elimination of Pointer-Expressions", Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques, vol. 00, no. , pp. 142, 1998, doi:10.1109/PACT.1998.727185