Branch misprediction occurs when a Central processing unit (CPU) mispredicts the next instruction to process in branch prediction, which is aimed at speeding up execution. In Computer architecture, a branch predictor is the part of a processor that determines whether a Conditional branch in the instruction
During the execution of certain programs there are places where the program execution flow can continue in several ways. These are called branches, or conditional jumps. A branch (or jump on some Computer architectures, such as the PDP-8 and Intel x86) is a point in a Computer program where the The CPU also uses a pipeline which allows several instructions to be processed at the same time. In Computing, a pipeline is a set of data processing elements connected in series so that the output of one element is the input of the next one When the code for a conditional jump is read we do not yet know the next instruction to execute and insert into the execution pipeline. This is where branch prediction comes in. In Computer architecture, a branch predictor is the part of a processor that determines whether a Conditional branch in the instruction Branch prediction guesses the next instruction to execute and inserts the next assumed instruction to the pipeline. Guessing wrong is called branch misprediction. This causes the work done to start processing the instructions following the branch to be discarded. If this happens too often it can hinder performance.