Το work with title Slice-processors: an implementation of operation-based prediction by Pnevmatikatos Dionysios, Andreas Moshovos, Amirali Baniasadi is licensed under Creative Commons Attribution 4.0 International
Bibliographic Citation
A.Moshovos, D. Pnevmatikatos, A. Baniasadi, "Slice- Processors: An implementation of operation-based prediction," in 2001 15th ACM Intern. Conf. on Super. (ICS), pp.321-334 .doi:10.1145/377792.377856
https://doi.org/10.1145/377792.377856
We describe the Slice Processor micro-architecture that implements a generalized operation-based prefetching mechanism. Operation-based prefetchers predict the series of operations, or the computation slice that can be used to calculate forthcoming memory references. This is in contrast to outcome-based predictors that exploit regularities in the (address) outcome stream. Slice processors are a generalization of existing operation-based prefetching mechanisms such as stream buffers where the operation itself is fixed in the design (e.g., address + stride). A slice processor dynamically identifies frequently missing loads and extracts on-the-fly the relevant address computation slices. Such slices are then executed in-parallel with the main sequential thread prefetching memory data. We describe the various support structures and emphasize the design of the slice detection mechanism. We demonstrate that a relatively simple organization can significantly improve performance over an aggressive, dynamically-scheduled processor and for a set of pointer-intensive programs and for some integer applications from the SPEC'95 suite. In particular, a slice processor that can detect slices of up to 8 instructions extracted over of a region of up to 32 instructions improves performance by 11% on the average (even if slice detection requires up to 32 cycles). Allowing slices of up to 16 instructions results in an average performance improvement of 15%. Finally, we study how our operation-based predictor interacts with an outcome-based one and find them mutually beneficial.