1 Improving Branch Prediction by Dynamic Dataflow-based Identification of Correlation Branches from a Larger Global History CSE 340 Project Presentation.

Slides:



Advertisements
Similar presentations
Dynamic History-Length Fitting: A third level of adaptivity for branch prediction Toni Juan Sanji Sanjeevan Juan J. Navarro Department of Computer Architecture.
Advertisements

Instruction-Level Parallelism compiler techniques and branch prediction prepared and Instructed by Shmuel Wimer Eng. Faculty, Bar-Ilan University March.
Lecture 8 Dynamic Branch Prediction, Superscalar and VLIW Advanced Computer Architecture COE 501.
Dynamic Branch Prediction (Sec 4.3) Control dependences become a limiting factor in exploiting ILP So far, we’ve discussed only static branch prediction.
Dynamic Branch Prediction
UPC Microarchitectural Techniques to Exploit Repetitive Computations and Values Carlos Molina Clemente LECTURA DE TESIS, (Barcelona,14 de Diciembre de.
Exploiting Spatial Locality in Data Caches using Spatial Footprints Sanjeev Kumar, Princeton University Christopher Wilkerson, MRL, Intel.
Sim-alpha: A Validated, Execution-Driven Alpha Simulator Rajagopalan Desikan, Doug Burger, Stephen Keckler, Todd Austin.
Limits on ILP. Achieving Parallelism Techniques – Scoreboarding / Tomasulo’s Algorithm – Pipelining – Speculation – Branch Prediction But how much more.
CPE 731 Advanced Computer Architecture ILP: Part II – Branch Prediction Dr. Gheith Abandah Adapted from the slides of Prof. David Patterson, University.
EECC551 - Shaaban #1 lec # 5 Fall Static Conditional Branch Prediction Branch prediction schemes can be classified into static (at compilation.
WCED: June 7, 2003 Matt Ramsay, Chris Feucht, & Mikko Lipasti University of Wisconsin-MadisonSlide 1 of 26 Exploring Efficient SMT Branch Predictor Design.
Perceptron-based Global Confidence Estimation for Value Prediction Master’s Thesis Michael Black June 26, 2003.
1 Applying Perceptrons to Speculation in Computer Architecture Michael Black Dissertation Defense April 2, 2007.
EE8365/CS8203 ADVANCED COMPUTER ARCHITECTURE A Survey on BRANCH PREDICTION METHODOLOGY By, Baris Mustafa Kazar Resit Sendag.
VLSI Project Neural Networks based Branch Prediction Alexander ZlotnikMarcel Apfelbaum Supervised by: Michael Behar, Spring 2005.
EECC551 - Shaaban #1 lec # 5 Fall Reduction of Control Hazards (Branch) Stalls with Dynamic Branch Prediction So far we have dealt with.
EENG449b/Savvides Lec /17/04 February 17, 2004 Prof. Andreas Savvides Spring EENG 449bG/CPSC 439bG.
Combining Branch Predictors
Improving Branch Prediction by Dynamic Dataflow-based Identification of Correlated Branches from a Large Global History Renjiu Thomas, Manoij Franklin,
EECC551 - Shaaban #1 lec # 5 Winter Reduction of Control Hazards (Branch) Stalls with Dynamic Branch Prediction So far we have dealt with.
Computer Architecture Instruction Level Parallelism Dr. Esam Al-Qaralleh.
Techniques for Efficient Processing in Runahead Execution Engines Onur Mutlu Hyesoon Kim Yale N. Patt.
Branch Prediction Dimitris Karteris Rafael Pasvantidιs.
EENG449b/Savvides Lec /25/05 March 24, 2005 Prof. Andreas Savvides Spring g449b EENG 449bG/CPSC 439bG.
Prophet/Critic Hybrid Branch Prediction Falcon, Stark, Ramirez, Lai, Valero Presenter: Christian Wanamaker.
EECC551 - Shaaban #1 lec # 5 Fall Static Conditional Branch Prediction Branch prediction schemes can be classified into static and dynamic.
Neural Methods for Dynamic Branch Prediction Daniel A. Jiménez Department of Computer Science Rutgers University.
Improving the Performance of Object-Oriented Languages with Dynamic Predication of Indirect Jumps José A. Joao *‡ Onur Mutlu ‡* Hyesoon Kim § Rishi Agarwal.
1 Storage Free Confidence Estimator for the TAGE predictor André Seznec IRISA/INRIA.
Evaluation of the Gini-index for Studying Branch Prediction Features Veerle Desmet Lieven Eeckhout Koen De Bosschere.
Korea Univ B-Fetch: Branch Prediction Directed Prefetching for In-Order Processors 컴퓨터 · 전파통신공학과 최병준 1 Computer Engineering and Systems Group.
Analysis of Branch Predictors
ACSAC’04 Choice Predictor for Free Mongkol Ekpanyapong Pinar Korkmaz Hsien-Hsin S. Lee School of Electrical and Computer Engineering Georgia Institute.
CSCI 6461: Computer Architecture Branch Prediction Instructor: M. Lancaster Corresponding to Hennessey and Patterson Fifth Edition Section 3.3 and Part.
Advanced Computer Architecture Lab University of Michigan Compiler Controlled Value Prediction with Branch Predictor Based Confidence Eric Larson Compiler.
Branch.1 10/14 Branch Prediction Static, Dynamic Branch prediction techniques.
Trace Substitution Hans Vandierendonck, Hans Logie, Koen De Bosschere Ghent University EuroPar 2003, Klagenfurt.
11 Online Computing and Predicting Architectural Vulnerability Factor of Microprocessor Structures Songjun Pan Yu Hu Xiaowei Li {pansongjun, huyu,
The life of an instruction in EV6 pipeline Constantinos Kourouyiannis.
Dynamic Branch Prediction During Context Switches Jonathan Creekmore Nicolas Spiegelberg T NT.
On the Importance of Optimizing the Configuration of Stream Prefetches Ilya Ganusov Martin Burtscher Computer Systems Laboratory Cornell University.
Prophet/Critic Hybrid Branch Prediction B B B
Branch Prediction Perspectives Using Machine Learning Veerle Desmet Ghent University.
Fast Path-Based Neural Branch Prediction Daniel A. Jimenez Presented by: Ioana Burcea.
CS203 – Advanced Computer Architecture
Dynamic Branch Prediction
CMSC 611: Advanced Computer Architecture
Module 3: Branch Prediction
So far we have dealt with control hazards in instruction pipelines by:
Branch statistics Branches occur every 4-6 instructions (16-25%) in integer programs; somewhat less frequently in scientific ones Unconditional branches.
Phase Capture and Prediction with Applications
Lecture: Branch Prediction
Pipelining and control flow
So far we have dealt with control hazards in instruction pipelines by:
Lecture 10: Branch Prediction and Instruction Delivery
So far we have dealt with control hazards in instruction pipelines by:
So far we have dealt with control hazards in instruction pipelines by:
Adapted from the slides of Prof
Dynamic Hardware Prediction
So far we have dealt with control hazards in instruction pipelines by:
So far we have dealt with control hazards in instruction pipelines by:
So far we have dealt with control hazards in instruction pipelines by:
So far we have dealt with control hazards in instruction pipelines by:
Aliasing and Anti-Aliasing in Branch History Table Prediction
rePLay: A Hardware Framework for Dynamic Optimization
So far we have dealt with control hazards in instruction pipelines by:
The O-GEHL branch predictor
Gang Luo, Hongfei Guo {gangluo,
Phase based adaptive Branch predictor: Seeing the forest for the trees
Presentation transcript:

1 Improving Branch Prediction by Dynamic Dataflow-based Identification of Correlation Branches from a Larger Global History CSE 340 Project Presentation Baha Guclu Dundar

2 Outline Branch prediction overview Primitive techniques -Long global history -Selecting Correlated Branches Identifying Affector Branches in Run-time Implementing affector branches Building predictors that use affector information Experimental Evaluation

3 Branch Prediction Overview Branch mis-prediction is the single most significant performance limiter for improving processor performance using deeper pipelining [18].

4 Branch Prediction Overview Trivial prediction Static prediction Line prediction Bimodal branch prediction Local branch prediction Global branch prediction Overriding branch prediction Other types…

5 Branch Prediction Overview Use multiple predictors with progressively increasing latencies and prediction accuracies in an overriding fashion. Each of these predictors provide its predictions at different stage. The ones at initial stages are less accurate. Predictions in further stage are expected to be more accurate.

6 Selected predictors in this paper A simple 1 cycle line predictor provides predictions in first stage, followed by a more accurate global branch predictor, and finally a highly accurate corrector predictor. It corrects global predictor.

7 Selected predictors in this paper Cnt’ Corrector predictor must have high accuracy comparing with other predictors. Focus on this paper is to propose and evaluate a new high-accuracy corrector predictor. Techniques are long global history and identifying correlated branches in this history by using runtime dataflow.

8 Long Global history What if there is a large distance between two correlated branches? Use longer history… How far in the past we should go? What is a good way to use longer history?

9 Long History Cnt’ Length of global history <= log2 (branch prediction table size) Moreover, recent papers [9][10] show that looking longer histories (at least 64 branches) is necessary.

10 Selecting Correlated Branches Throughout history, which branches we should select in long history? Brute force? No, this will increase second-level table size. Using hash table? No too much aliasing. We need to be careful. Not all branches in long history are correlated under branch prediction. Perceptron predictors gives weight for each branch in long history.

11 Identifying Affector Branches in Run-time A branch becomes affector for a future branch if it can affect the outcome of future branch’s source operands.

12 Identifying Affector Branches in Run-time

13 Identifying Affector Branches in Run-time We need to both keep both conventional global history and track run-time dataflow of the program and determine affector branches of last register. When a prediction is made for a branch, the affector information is used by source registers on the fly. Affector information on each node is determined by bitmap in dataflow. LSB of bit map denote the most recent dynamical branch.

14 How to implement affector branches We keep a separate record of affector information corresponding to each architectural registers as entries in “Affector Register File(ARF)”

15 How to implement affector branches Classifying three dynamic instructions: Conditional branch instructions Register-writing instructions Non-register-writing instructions: jumps, returns, system calls, stores etc.

16 How to implement affector branches

17 Back to the Example…

18

19 Building predictors that use affector information There are two proposed predictors: Zeroing scheme Packing scheme

20 Building predictors that use affector information Resulting register bits are hashed down to the required number of bits for predictor index.

21 In a big picture

22 Experimental Evaluation For the simulation SimpleScalar v3.0 using Alpha ISA was used for 12 benchmarks from SPEC95 and SPEC2000 integer benchmark suites.

23 Misprediction Results

24 Experimental Evaluation Cnt’

25 Conclusion We used long global history and identifying correlated branches by using runtime dataflow information. We examined hardware structures, ARF to identify affector branches for each dynamical branch. Hardware overhead for identifying affectors from 64 branch global history is 312 bytes. We go through two prediction schemes. Experimental studies show that adding 8 KB corrector predictor to a 16 KB perception predictor reduces average misprediction rate from %6.3 to %5.7 which is achieved by 64 KB perception predictor.

26 Appendix A: Global Branch Predictors What if we came across the same branch after executing several branch instructions? We can use Global branch predictors to deal with this problem. They correlate branch’s outcome with the history preceding dynamic branches. Global branch predictors have good accuracy percentage. However, it may take 2-3 cycles to execute it.