Data value prediction Bas van der Tol
Limits to ILP Instruction Level Parallelism is limited by Control flow Data flow: true dependencies
Types of Speculative Execution
Sources of predicatable data Data redundancy Error-checking Program constants Virtual function calls Glue code Call-subgraph identities Register spill code
Register value locality
Value Prediction Unit
VPT Hit rate sensitivity to Size
Example use of Value Prediction
Penalties Misprediction penalty Structural hazards, both on correct and mispredictions Penalties
Configurations used for experiments
PowerPC 620 Speedup
PowerPC 620+ Speedup
Infinite Machine Model Speedup
Data cache vs. Value Prediction
Improving Prediction Accuracy Last Value Prediction Stride Prediction Finite Context Method Predictors (fcm)
Finite Context Models
Prediction Success
Conclusions Data value prediction increases performance by 5% on PowerPC 620 A performance gain of 23% is possible Future Developments More parallel execution units Better prediction models