Branch predictor
CPU-komponent som gissar utfallet av if/loop-grenar innan villkoret faktiskt evalueras, så pipelinen inte stallar. Moderna predictors träffar 95-99% — utan dem skulle moderna CPUer vara 2-5x långsammare.
Designer: bimodal (2-bit counter per branch), two-level adaptive (history pattern), perceptron-based (TAGE i moderna Intel/AMD). Felgissning kostar 15-20 cykler (pipeline-flush). Spectre (2018) exploaterade träning av branch predictor för att läcka data via side-channels. Kod-tip: sortera arrays före loopen så branches blir predictable — kan ge 2-6x speedup på branch-tunga kärnor. __builtin_expect i GCC ger compiler-hint för predictable branches.