Dynamic Branch Predictors
In pipelined processors, an instruction must be fetched at every clock cycle in order to sustain the pipeline. However, in modern processors, the decision of whether or not to take a branch is not made until the memory-access stage of the pipeline, and the pipeline must stall the fetching of the next instruction until the decision is made. Because on average 20% of instructions are fetches, this causes a significant penalty on the performance of pipelined processors. Since the processor must keep working during this delay, modern processors incorporate branch predictors to predict whether a branch will be taken or not, and load instructions from the more likely path to minimize the branch penalty. Dynamic branch predictors use information gathered about the program's branches at run-time to determine the most likely outcome of each branch. There are several different flavors of dynamic branch predictors in use, the most common of which are one-level branch predictors, two-level branch predictors, hybrid branch predictors, and multiple component hybrid branch predictors. In one-level branch predictors, each branch instruction is mapped to an entry in a one-dimensional table of n-
. . .
Some common words found in the essay are:
Branch Predictors, Predictors Two-level, XORing XORing, , branch predictors, two-level branch predictors, two-level branch, branch predicted, one-level branch, branch history, history table, one-level branch predictors, global branch history, branch instruction, global branch, branch instructions, pattern history, branch predictors one-level, predictors one-level branch,
Approximate Word count = 1071
Approximate Pages = 4 (250 words per page double spaced)
|