  Modern processors rely heavily on speculation to keep the pipeline filled and
consequently execute and commit instructions as close to maximum capacity as
possible. To improve instruction-level parallelism, the processor core needs to
fetch and decode multiple instructions per cycle and has come to rely on
incredibly accurate branch prediction. However, this comes at cost of the
increased area and complexity which is needed for modern high accuracy branch
predictors.
  The key idea described in this work is to use hyperdimensional computing and
sparse distributed memory principles to create a novel branch predictor that
can deliver complex predictions for a fraction of the current area. Sparse
distributed memories can store vast amounts of data in a compressed manner,
theoretically enabling branch histories larger and more precise than the branch
predictors used today to be stored with equal or smaller area footprint.
Furthermore, as all the data is in a hashed format and due to the nature of the
hashing scheme used, it is inherently harder to manipulate with known
side-channel attacks.
  We describe our proof-of-concept and evaluate it against a state-of-the-art
academic TAGE predictor. Our experiments are conducted on realistic synthetic
branch predictor patterns and the Championship Branch Prediction traces and
show competitive accuracy. Finally, we describe techniques that can be used to
solve some of the challenges of processing with hyperdimensional vectors in
order to deliver timely predictions.
