LearnViz CompSci
Home / Learn / Computer Architecture & Logic / Branch Prediction

Intermediate Topic 33 of 51 Computer Architecture & Logic

Branch Prediction

Guessing branch outcomes to keep the pipeline full.

How it works

A branch predictor guesses the outcome of a conditional branch before it is resolved so that the pipeline can keep fetching instructions. Simple schemes use a saturating 2-bit counter per branch; more advanced ones correlate with global history, as in gshare and TAGE, or use neural predictors. A branch target buffer predicts the destination address. A wrong guess flushes the pipeline, costing 10 to 20 cycles.

Step-by-step walkthrough

  1. The CPU meets a conditional branch before knowing the result.
  2. A predictor looks at history to guess.
  3. It guesses taken and fetches from the target at once.
  4. If the guess is right no time is lost.
  5. If wrong the pipeline is flushed and 10 to 20 cycles are wasted.

Where it is used

Every high-performance CPU relies on prediction, achieving over 95 percent accuracy on typical code. Programmers write predictable branches, use branchless code or sort data to improve speed in hot loops.

Common pitfall

Unpredictable data-dependent branches, such as in a loop over random values, are slow. Prediction mistakes were exploited in Spectre-style attacks, because speculative work leaves traces in caches. Do not assume a branch is free; measure with performance counters and consider conditional moves.

Where it fits in the course

Branch Prediction is topic 33 of 51 in Computer Architecture & Logic, rated Intermediate. It follows Pipeline Hazards. The next topic is Out-of-Order Execution.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Computer Architecture & Logic quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Branch Prediction?
Guessing branch outcomes to keep the pipeline full. It belongs to Computer Architecture & Logic and is an intermediate-level topic.
Where do people use Branch Prediction?
Every high-performance CPU relies on prediction, achieving over 95 percent accuracy on typical code.
What is the most common mistake with Branch Prediction?
Unpredictable data-dependent branches, such as in a loop over random values, are slow.
What should I learn before this topic?
Start with Pipeline Hazards, the topic just before it in Computer Architecture & Logic.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Computer Architecture & Logic quiz.
Is Branch Prediction hard to learn?
It is an Intermediate topic. Be comfortable with the Beginner topics in this area first, then read the common pitfall carefully, since it is where most mistakes happen.
How long does it take to learn Branch Prediction?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Branch Prediction?
Pipeline Hazards, Out-of-Order Execution, Instruction Pipelining are closely connected. The full list is in the related topics section of this page.
What should I study after Branch Prediction?
Continue with Out-of-Order Execution, the next topic in Computer Architecture & Logic.

Related topics