tage -- modern branch predictor
The TAGE branch predictor is the best branch predictor design today, it was first introduced in a 2006 paper:
A case for (partially) tagged Geometric History Length Branch Prediction
André Seznec, Pierre Michaud
Journal of Instruction Level Parallelism (JILP), 2006.
Since its first appearance, it has been widely developed and has become a default choice for high-end CPUs like AMD zen2 and many competition-winning predictors.
A detailed review of the paper would be updated (perhaps..), below is a simple design introduction, which I recently implemented in the CPU program RISC-V-CPU.