Branch Predictor Competition
- You may use no more than 128Kbits of state to implement your predictor
- A hardware implementation must be feasible (no details are required)
You must submit your predictor by the 1st March 2012 (code + brief description)
Please ensure I am able to run your code so I can generate your final score using the secret program trace. The winner will be presented with a small prize (hopefully a Raspberry Pi computer + some bits and pieces) at the final lecture. Let me know your best scores as you progress and I'll post them here.
These traces have been generated to help you to develop your predictor. Each contains a list of addresses for each branch encountered and an indication of whether the branch was taken or not. e.g.
8048ff0 1 8048ff0 1 8048ff0 1 8048ff0 0 804e41f 1 804e418 1 8048ff0 1 8048ff0 1
simple_predictor.c A simple C program that implements a branch predictor based on 2-bit saturating counters.
To run the predictor:
gcc -o simple_predictor simple_predictor.c gzip -dc gcc.trace.gz | ./simple_predictor >Branch Predictor Accuracy = 91.82% >(branch_count=5126353)
You are of course free to use whatever platform and language you like (even Haskell )
Previous years entries that have performed well have included perceptron based predictors, gshare predictors and tournament predictors.