title: How does the branch predictor know if it is incorrect?
body: <p>So I did do a search of this question, but the answer I found I didn't quite understand.</p>
  
  <p>What I understand for a CPU, is that the Instruction Fetch unit solely receives instructions from the Branch Predictor; which it will then go through L1i cache/L2/L3/RAM to find the predicted instruction to execute and then away it goes.</p>
  
  <p>However, the problem I'm having is; how does the branch predictor know whether what it did was correct or not? </p>