This document discusses branch prediction in computer architecture. It begins by explaining what information is predicted for branches - the direction and target. It then categorizes different types of branches and discusses the costs of branch misprediction. Various branch prediction techniques are presented, starting with simple 1-bit and 2-bit predictors, and progressing to more advanced correlating and global history predictors. The goal of branch prediction is to reduce penalties from mispredicted branches by speculatively executing the predicted path.