Title: Dependence-Based Value Prediction
1Dependence-Based Value Prediction
- Yiannakis Sazeides
- University of Cyprus
- yanos_at_ucy.ac.cy
- UPC-Barcelona 17/5/2001
2Motivation
- Improve Performance (reduce complexity, save
power...) - What limits performance? Dependences
- Break dependences Prediction
- Exploits regularity and/or non-uniformity in
predicted information
3Predicted Information
- Architectural
- dependences control, address, value, memory
- Non-Architectural
- structural constrains cache misses, bank
conflicts - reduce hardware complexity cache sets, shared
patterns
4Use of Predicted Information
- Speculative/Non-Speculative
- Depends on whether predicted information can
directly/indirectly cause an incorrect update of
architected state - non-speculative branch prediction for
instruction prefetching - speculative branch prediction for instruction
execution - Hardware/Software
5Trends
- Identify and eliminate predictability at
computational levels below programming - Predictors in almost all high performance
processors and many compilers - Technological evolution and limitations will
increase latency and make predictive techniques
more important - deeper pipelines
- fast processor/slow memory
- distributed microarchitectures
6Our motivation
- Can value prediction help?
- How to use value predictability?
- Wholistic approach all types not just vp and
coarser grain - Absolutely curious to discover, understand and
use the esoteric program properties causing the
predictability and non-uniformity observed in
program information
7This talk...
- Hypothesis dependence information influences the
predictability of program values - Propose and evaluate various dependence-based
value predictors - Approach theoretical and practical
- Work in progress...
8Outline
- Introduction
- Background on value prediction
- Dependence Info and Predictability
- Dependence-based Value Predictors
- Results
- Future work
9Value Sequences Produced by Instructions
- Basic Sequences
- Constant 0 0 0 0 0
- Stride 4 3 2 1 0
- Non-Stride -1 23 10 94
- Repeating Sequences (composition of basic
sequences) - Repeated Stride 4 3 2 1 0 4 3 2 1 0
- Repeated Non-Stride -1 23 10 94 -1 23 10 94
10Local History Value Predictors
- Computational-Based
- compute next value by performing a computation on
previous value(s) - Context-Based
- learn the value that follows a finite number of
previous values (context) and predict that value
when context repeats - need to observe a context-value before predicting
correctly - Hybrid Delta-Predictor
11Last Value Predictor
12Stride Predictor
13Context-Based Predictor
14Hybrid Predictor
15Causes of Predictability
- Model Based on Dependence Graph
- Robustness predictability due to program control
structure and immediate values not input data - Predictability generation-propagation termination
- need to consider info beyond local scope
- dependence information holds potential to
increase accuracy of value prediction
16Hypothesis/Fact
- The predictability of an instruction is
determined by the information on the dependence
path that leads to it - Predict the value produced by an instruction
based on the values and/or information of its
predecessors
17Outline
- Introduction
- Background on value prediction
- Dependence Info and Predictability
- Dependence-based Value Predictors
- Results
- Future work
18Example
19Observations
- All instructions can trace dependence back to 6
- 6 used as an induction variable
- Use information about 6 to get predictions
20Example
- Use value in 6 to predict instruction 7
Value of 6 Output of Instr. 7
0,..,13, 15, 31..63 1
14, 16..30 0 - Local history with lt47 previous values mispredicts
21Dependence-Based Prediction
- Prediction based on information from the
component of the predicted instruction
i Output PF(Componenti) - Component
- backward dynamic data dependence slice
- node info pcs, optypes, immed., outcomes
- livein values (values not produced by component,
register and memory)
22Dependence-Based Prediction
- In general, use information from components of
previous instructions Output
PF(Ci-n..Ci-1,Ci)
23Perspective
- Virtually all predictors are functions of
component approximations to values - Practical Limitation predictors can rely on a
subset of components and information
24Component Approximation
- Approximation accuracy depends on information
used from component - What limits approximation accuracy
- finite resources and aliasing
- amount of information to be stored
- how soon a prediction can be made
25Existing Predictors
- Interesting with how little information
predictors work well - Global History Branch Predictors
- use information from multiple previous branch
components OutputPF(Ci-n..Ci-1,Ci) - Note components may be unrelated (longer learning
and destructive aliasing)
26Dependence Information
- A lot of information to choose from
- Which predecessors
- recent, recurrent, earliest, all
- Information
- values
- register, memory names
- pc, optypes, immediates
- dependence distance
- Propagation through registers or memory
27Ideas predict based on
- Values of recurrent predecessors
- values indicating location in program
28Based on Recurrent Predecessors
29Ideas predict based on
- Values of recurrent predecessors
- values indicating location in program
- no sp
- sp with last SP value and PC selection of stride
30(No Transcript)
31Dependence-Based Stack Pointer Predictor
32(No Transcript)
33Ideas predict based on
- Values of recurrent predecessors
- values indicating location in program
- no sp
- sp with last SP value and PC selection of stride
- Distance from predecessors
- distance indicates coordinates in program
- predict values not based on values
- no sp
34Based on Dependence Distance
35Ideas predict based on
- Values of recurrent predecessors
- values indicating location in program
- no sp
- sp with last SP value and PC selection of stride
- Distance from predecessors
- distance indicates coordinates in program
- predict values not based on values
- no sp
- Most recently known processor state
- isolate non-determinism
36Based on Recent Predecessors
37Outline
- Introduction
- Background on value prediction
- Dependence Info and Predictability
- Dependence-based Value Predictors
- Results
- Future work
38Prediction Process
- To predict an instruction
- Construction of Dependence Record (DR)
- approximation of the information on the component
of the instruction - Use DR to obtain a prediction (directly or
indirectly)
39DBVP Predictor with CT
40DBVP Register (DBVP-R)
- Component subset instructions those fetched but
have not updated yet the architectural state - isolates the non-determinism in execution
- Information used
- Generate Registers(GR)livein registers (most
recently known architected state) - Dependence Path Id(DPI)pcs, optypes, immediates
(info about unknown state)
41Construction of DR for an instruction (GR)
42Construction of DR for an instruction
- Many instructions same GRs - Differentiate with
DPI
43DR Construction
- Information encoded in instructions
- May be done incrementally off-line and stored in
a table where it can be retrieved (imprecise?) - No investigation of implementation specifics of
DR construction - Memory instructions propagate the dependence info
through address operands (can be problematic -
later)
44DBVP-R Predictor
History Table indexed with register names
contains architected state
45DBVP Memory (DBVP-M)
- DBVP-R ignores memory dependences
- often no correlation between load address and
value - DBVP-M same as DBVP-R with additional
functionality and information - propagation of DR through memory
- convert def-store-load-use dependence in a
component to def-use - livein memory locations(generate locations GLs)
- converts values from memory to liveins
46DR Propagation Through Memory (spilled variable)
47Livein Memory Locations
48Generate Locations (GL) and Memory History
Table(MHT)
- GL is an index into a table (MHT) with values
written to memory - Store-load dependent pairs are assigned MHT
location - Memory Dependence Prediction mechanisms can
provide the extra functionality required by DBVP-M
49DBVP-M Predictor
50Differences DBVP and CB
- Information used to access tables and table sizes
- History table is register indexed (vs PC indexed)
- smaller
- may be easier to manage speculative updates
- -possibly provide predictions later
- Smaller context is required to capture repeated
behavior
51Outline
- Introduction
- Background on value prediction
- Dependence Info and Predictability
- Dependence-based Value Predictors
- Results
- Future work
52Experimental Framework
- SPECINT95 Benchmarks
- Study predictors with simple delay model
- predict d instructions (or up to first
misprediction) - update
- d is also maximum component size
- DPI pc, optypes and immediates
53DBVP-R DPI Information d1, 64K entry VPT
54DBVP-R VPT Sized1
55DBVP-R Sensitivity to Delay64K VPT size
56Problems with increasing d
- Capacity instruction in different components
requires more information to be learned
57Component Redundancy
58Problems with increasing d
- Capacity instruction in different components
requires more information to be learned - Destr. Aliasing multiple instances of same
instruction same prediction
59Multiple instances same GR and DPI
60Problems with increasing d
- Capacity instruction in different components
requires more information to be learned
(destructive aliasing) - Destr. Aliasing multiple instances of same
instruction same prediction - Capacity increasing d means more information
needs to be learned
61Information to be learned
Two combinations
62Information to be learned
64 combinations
63Solutions for increasing d
- Careful partitioning
- Transform different structure to same
- Better DPI
- position
- count of outstanding instances of an instruction
- predict only liveouts
- Predict based on other information
- recurrence, dependence distance...
64DBVP-M MHT Sized1, 64K VPT size
65DBVP-M Sensitivity to Delay
66DBVP vs CB
67Conclusions
- Dependence-based prediction holds potential to
improve accuracy - Use dependence information for prediction
- Propagation of dependence information through
memory useful for increased accuracy
68Current and Future Work
- Refinement and evaluation of dependence-based
prediction methods - Evaluation in a processor
- DR construction
- Characterize program full components
- size, uniqueness, correlation to predictability
69Other Work/Interests
- Prediction and Speculation
- Program Behavior
- Distributed Microarchitectures
- SMT
- Benchmark characterization
70I had a great time - thank you all! Hasta luego
amigas y amigos!