< previous page page_233 next page >

Page 233
guessing target vs. in-line paths on branch. The guessed path proceeds up to EX (but no out-of-order execution) until the CC is set. Assuming a scientific environment and an R/M processor, we want to create a guess strategy based on opcode type and CC mode tested (i.e., identify unconditional (BCs). We then compute the actual (weighted) branch penalty (CPI) based on the created strategy, and compare it to a simple "choose in-line" strategy. An in-line strategy means if there is a choice, choose in-line. There is no choice on unconditional branches.
The BCR and BALR (Table 1.14) with target address already in a register take the equivalent of only one cycle of AG (actually a general-purpose register to PSW transfer cycle).
In order to find the fraction of each branch instruction that uses an AG as a percent of all instructions, we compute a frequency for each instruction class. For example, BRs and BCs are computed as 72.5% (Table 3.10) times 82.6% (branches that use AG, Table 3.10) times 15% (Table 3.4)this is split into two categories by the data in Table 3.10.
Opcode% of Instr% Taken
BRRuncond0.454%
BCRcond1.554%
1.9
BRuncond1.8100%
BCcond7.254%
9.0
BALR0.5100%
BAL2.1100%
Loop Control1.591%

(a) For BRR (unconditional) or for BALR (one-cycle AG, address is in register):
0233-01.gif
Target penalty = 3 cycles
(b) For BCR (true conditional):
0233-02.gif
If we guess in-line and go in-line, we have:
0233-03.gif
that is, zero penalty.

 
< previous page page_233 next page >