Is this a gimmicky marketing term, or is it logical\descriptive\rational?
Is this a gimmicky marketing term, or is it logical\descriptive\rational?
There's a very approachable explanation in the following (around the 1:01:40 mark): https://youtu.be/8I_1TSs695I?t=1h1m40s -- part of Design of Digital Circuits - Lecture 18: Branch Prediction II (ETH Zürich, Spring 2019). Related readings: https://safari.ethz.ch/digitaltechnik/spring2019/doku.php?id....
These lectures are pretty great, by the way, highly recommended to anyone interested in computer architecture: http://people.inf.ethz.ch/omutlu/lecture-videos.html
Incidentally, this year's High-Performance Computer Architecture Test of Time Award has been given to "Dynamic Branch Prediction with Perceptrons" referenced in the lecture (from 2001, https://www.cs.utexas.edu/~lin/papers/hpca01.pdf): https://engineering.tamu.edu/news/2019/02/jimenez-receives-h....
Looks like an already studied technical description going back to 2005:
https://github.com/ChampSim/ChampSim/blob/master/branch/hash...
https://www.jilp.org/cbp2014/paper/DanielJimenez.pdf
> Introduced by Tarjan and Skadron 2005
> Basic idea:
> - Hash segments of branch history into different tables
> - Sum weights selected by hash functions, apply threshold to predict
> - Update the weights using perceptron learning
Since you don't have branch predictors for each address, you share the same prediction data for multiple addresses (this is one often underlooked cost to heavily branchy code).