Slice-processors
- 17 June 2001
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 321-334
- https://doi.org/10.1145/377792.377856
Abstract
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.Keywords
This publication has 9 references indexed in Scilit:
- Execution-based prediction using speculative slicesPublished by Association for Computing Machinery (ACM) ,2001
- Slipstream processorsPublished by Association for Computing Machinery (ACM) ,2000
- Instruction path coprocessorsPublished by Association for Computing Machinery (ACM) ,2000
- Understanding the backward slices of performance degrading instructionsPublished by Association for Computing Machinery (ACM) ,2000
- Improving virtual function call target prediction via dependence-based pre-computationPublished by Association for Computing Machinery (ACM) ,1999
- Dependence based prefetching for linked data structuresPublished by Association for Computing Machinery (ACM) ,1998
- Memory-system design considerations for dynamically-scheduled processorsPublished by Association for Computing Machinery (ACM) ,1997
- Exploiting choicePublished by Association for Computing Machinery (ACM) ,1996
- Examination of a memory access classification scheme for pointer-intensive and numeric programsPublished by Association for Computing Machinery (ACM) ,1996