Variable Length Path Branch

all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proot or commercial advantage and that copies bear this notice and the full citation on the rst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior speciic permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or permissions@acm.org. Abstract Accurate branch prediction is required to achieve high performance in deeply pipelined, wide-issue processors. Recent studies have shown that conditional and indirect (or computed) branch targets can be accurately predicted by recording the path, which consists of the target addresses of recent branches, leading up to the branch. In current path based branch predictors, the N most recent target addresses are hashed together to form an index into a table, where N is some xed integer. The indexed table entry is used to make a prediction for the current branch. This paper introduces a new branch predictor in which the value of N is allowed to vary. By constructing the index into the table using the last N target addresses, and using prooling information to select the proper value of N for each branch, extremely accurate branch prediction is achieved. For the SPECint95 gcc benchmark, this new predictor has a conditional branch misprediction rate of 4.3% given a 4K byte hardware budget. For comparison, the gshare predictor, a predictor known for its high accuracy, has a conditional branch misprediction rate of 8.8% given the same hardware budget. For the indirect branches in gcc, the new predictor achieves a misprediction rate of 27.7% when given a hardware budget of 512 bytes, whereas the best competing predic-tor achieves a misprediction rate of 44.2% when given the same hardware budget.

[1]  Quinn Jacobson,et al.  Control flow speculation in multiscalar processors , 1997, Proceedings Third International Symposium on High-Performance Computer Architecture.

[2]  Karel Driesen,et al.  Improving Indirect Branch Prediction With Source- and Arity-based Classification and Cascaded Prediction , 1998 .

[3]  Juan J. Navarro,et al.  Dynamic history-length fitting: a third level of adaptivity for branch prediction , 1998, ISCA.

[4]  Mario Nemirovsky,et al.  The influence of branch prediction table interference on branch prediction scheme performance , 1995, PACT.

[5]  Michael D. Smith,et al.  Improving the accuracy of static branch prediction using branch correlation , 1994, ASPLOS VI.

[6]  Yale N. Patt,et al.  Improving branch prediction accuracy by reducing pattern history table interference , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[7]  Guang R. Gao,et al.  Elastic history buffer: a low-cost method to improve branch prediction accuracy , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[8]  James E. Smith,et al.  Path-based next trace prediction , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[9]  A. Seznec,et al.  Trading Conflict And Capacity Aliasing In Conditional Branch Predictors , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[10]  Karel Driesen,et al.  Accurate indirect branch prediction , 1998, ISCA.

[11]  Ravi Nair,et al.  Dynamic path-based branch correlation , 1995, MICRO 28.

[12]  Trevor N. Mudge,et al.  The bi-mode branch predictor , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[13]  Yale N. Patt,et al.  An analysis of correlation and predictability: what makes two-level branch predictors work , 1998, ISCA.

[14]  Yale N. Patt,et al.  Branch Classification: A New Mechanism for Improving Branch Predictor Performance , 1994, Proceedings of MICRO-27. The 27th Annual IEEE/ACM International Symposium on Microarchitecture.

[15]  Michael D. Smith,et al.  A comparative analysis of schemes for correlated branch prediction , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[16]  Dirk Grunwald,et al.  Reducing indirect function call overhead in C++ programs , 1994, POPL '94.

[17]  Yale N. Patt,et al.  The agree predictor: a mechanism for reducing negative branch history interference , 1997, ISCA '97.

[18]  S. McFarling Combining Branch Predictors , 1993 .

[19]  Jeffrey Dean,et al.  ProfileMe: hardware support for instruction-level profiling on out-of-order processors , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.