Branch predictor
CPU-onderdeel dat de uitkomst van if- en lus-sprongen raadt voordat de voorwaarde is geëvalueerd, zodat de pipeline niet stilvalt. Moderne voorspellers halen 95-99%; zonder hen zouden CPU's 2 tot 5 keer trager zijn.
Ontwerpen: bimodaal (2-bits teller per sprong), tweeniveaus adaptief (geschiedenispatroon) en perceptron-gebaseerd (TAGE in moderne Intel/AMD). Een misvoorspelling kost 15-20 cycli (pipeline leegmaken). Spectre (2018) misbruikte het trainen van de voorspeller om via zijkanalen data te lekken. Praktische tip: sorteer arrays vóór de lus, dan worden sprongen voorspelbaar, wat 2 tot 6 keer sneller kan zijn bij sprongrijke kernels. __builtin_expect in GCC geeft de compiler een hint voor voorspelbare sprongen.