Title :
Execution-based prediction using speculative slices
Author :
Zilles, Craig ; Sohi, Gurindar
Author_Institution :
Dept. of Comput. Sci., Wisconsin Univ., Madison, WI, USA
Abstract :
A relatively small set of static instructions has significant leverage on program execution performance. These problem instructions contribute a disproportionate number of cache misses and branch mispredictions because their behavior cannot be accurately anticipated using existing prefetching or branch prediction mechanisms. The behavior of many problem instructions can be predicted by executing a small code fragment called a speculative slice. If a speculative slice is executed before the corresponding problem instructions are fetched then the problem instructions can move smoothly through the pipeline because the slice has tolerated the latency of the memory hierarchy (for loads) or the pipeline (for branches). This technique results in speedups up to 43 percent over an aggressive baseline machine. To benefit from branch predictions generated by speculative slices, the predictions must be bound to specific dynamic branch instances. We present a technique that invalidates predictions when it can be determined (by monitoring the program´s execution path) that they will not be used. This enables the remaining predictions to be correctly correlated
Keywords :
parallel architectures; program compilers; storage management; branch mispredictions; cache misses; code fragment; execution-based prediction; memory hierarchy; program execution performance; speculative slice; speculative slices; Bandwidth; Computer displays; Delay; Hardware; Microarchitecture; Multithreading; Predictive models; Prefetching; USA Councils; Yarn;
Conference_Titel :
Computer Architecture, 2001. Proceedings. 28th Annual International Symposium on
Conference_Location :
Goteborg
Print_ISBN :
0-7695-1162-7
DOI :
10.1109/ISCA.2001.937426