My favourite explanation of how Branch Prediction works: https://stackoverflow.com/a/11227902/1150676