|
|
|
|
|
|
Figure 4.18
Basic branch delays. |
|
|
|
|
|
|
|
|
Figure 4.19
Branch prediction. |
|
|
|
|
|
|
|
|
3. Branch prediction. Using available information about the branch one can predict the branch outcome and begin processing on the predicted program path. If the strategy is simple or triviale.g., always fetch in-line on true conditional branchesit is called a fixed strategy. If the strategy varies by opcode type but is predetermined, it is called a static strategy. Finally, if the strategy varies according to current program behavior, it is called a dynamic strategy (see Figure 4.19). |
|
|
|
|
|
|
|
|
4. Branch target capture. After a branch has been executed we can keep its target instruction in a table for later use (Figure 4.20). |
|
|
|
|
|
|
|
|
Figure 4.20
Branch table buffer. |
|
|
|
|
|