Definition
Branch Target Buffer
A branch target buffer (BTB) is a small cache indexed by the program counter that stores the target addresses of recently executed branches.
During the fetch stage, the processor looks up the current PC in the BTB. A hit means the instruction at that PC was a branch the last time it was seen, and the BTB supplies the branch target address so the next fetch can proceed immediately.
A BTB therefore answers two questions at once: is this instruction a branch? and where does it go? It provides both branch identification and the target address before the instruction is even decoded.