< previous page page_235 next page >

Page 235
In-line penalty = 5 cycles
Target penalty = 4 cycles
Then we should guess the target path if
d87111c01013bcda00bb8640fdff6754.gif
4P 5(1 - P) < 6P ® P > 5/7.
(e) For loop control:
0235-01.gif
* Note: we assume that the target is fetchedbefore the loop arithmetic is completed (EX) to avoid EX conflict with other instructions.
If we guess in-line and go in-line, we have (remember, no conditional EX):
0235-02.gif
If we guess in-line and go to target, we have:
0235-03.gif
In-line penalty = 1 cycle
Target penalty = 7 cycles
If we guess target and go in line:
0235-04.gif
If we guess target and go to target:
0235-05.gif
In-line penalty = 6 cycles
Target penalty = 4 cycles
Then we should guess the target path if:
d87111c01013bcda00bb8640fdff6754.gif
4P + 6(1 - P) < 7P + 1(1 - P) ® P < 5/8.
P = probability of branching.
Penalty = (taken penalty * P + in-line penalty * (1 - P)) * frequency of instruction.
Remember, the in-line strategy means if there is a choice, choose in-line. (There is no choice on an unconditional branch.)
Once we have computed the "best" static strategy, we compute the penalty based on that strategy. For example, for BCR, our analysis shows that we should guess in-line. The penalty for guessing in-line on BCR is the frequency of BCR times the sum of the expected in-line penalty (frequency ´ penalty) and the expected target penalty = (0 cycles ´ 0.46 + 6 cycles ´ 0.54) 0.015 =.049 cycles.
The in-line strategy is simply to fetch in-line on branch, except when the branch is unconditional. The only difference in strategy is for the loop control instructions, but the net change was only 0.04 CPI, or about 5%.

 
< previous page page_235 next page >