Merging path and gshare indexing in perceptron branch prediction

D. Tarjan and K. Skadron.
In ACM Transactions on Architecture and Code Optimization, 2(3), Sep. 2005

Abstract
We introduce the hashed perceptron predictor, which merges the concepts behind the gshare, path-based and perceptron branch predictors. This predictor can achieve superior accuracy to a path-based and a global perceptron predictor, previously the most accurate dynamic branch predictors known in the literature. We also show how such a predictor can be ahead pipelined to yield one cycle effective latency. On the SPECint2000 set of benchmarks, the hashed perceptron predictor improves accuracy by up to 15.6% over a MAC-RHSP and 27.2% over a path-based neural predictor.


Available in pdf

The source code for the improved hashed perceptron can be found here
You can download the CBP branch predictor framework from JILP
and the traces to go with it from here

The previous perceptron papers should probably be read in the following order:
Vintan: Towards a High Performance Neural Branch Predictor(need subscription to IEEExplore)
Jiménez:Neural Methods for Dynamic Branch Prediction
Seznec:Redundant History Skewed Perceptron Predictors: pushing limits on global history branch predictors
Ipek:On Accurate and Efficient Perceptron-Based Branch Prediction
Jiménez:Fast Path-Based Neural Branch Prediction
Seznec:Revisiting the perceptron predictor

The Second Value-Prediction and Value-Based Optimization Workshop had two papers on value prediction with perceptrons.

The 1st Championship Branch Prediction produced a bunch of interesting papers using perceptrons, building upon the older work.

A couple of the predictors from the CBP got expanded into papers at ISCA 2005

Seznec: Analysis of the O-GEometric History Length branch predictor
Jiménez:Piecewise Linear Branch Prediction


Gabriel Loh has also published a paper at PACT 2005 which uses the same basic idea as the hashed perceptron.
He subdivides the global history into segments and feeds a bimode predictor with each segment. He then uses a root predictor
(as opposed to calculating the sum in the hashed perceptron) fed with the predictions from the bimode predictors to make the final prediction.


Anybody have any additional suggestions? Comments?