| Po-Yung Chang, Eric Hao, and Yale N. Patt. Target prediction for indirect jumps. In The 24th Annual International Symposium on Computer Architecture, June 1997. 95 96 |
....add the bounded value range to Set of value range and return WHILE (RTLpointer = previousrtl(RTLpointer) ExpandandEvaluate(RTLpointer, expandedexpr, Setofvaluerange, ValueRangeState) IF (expandedexpr is either BOUNDED or UNBOUNDED) RETURN ValueRangeState. Alias effect such as r[9]=r[8] ELSE IF (expandedexpr = Register RTLpointer points to the instruction that assigns Register to NewRegister) expandedexpr = Register = NewRegister. Neither BOUNDED nor UNBOUNDED state can be determined by evaluating expanded expr. Expand and evaluate the expression by ....
....block 20 as the most beneficial root block. Note that the conditional branches in block 20 and block 24 were considered to be related since r[10] is an alias of r[8] by the RTL r[10] r[8] Blocks 17 to 19 contain RTLs generated from invoking the getc( macro. Block 18 contains an RTL (r[8] B[r[9]] 255; that loads an unsigned character from a buffer and bounds the range of values from 0. 255. Block 19 contains a call to filbuf, which results in the value associated with r[10] being unbounded since no interprocedural analysis was performed. The optimizer recursively searches backwards and ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, and Yale N. Patt. Target prediction for indirect jumps. In The 24th Annual International Symposium on Computer Architecture, June 1997. 95 96
....knock out system to decide on the best prediction (it works with a majority vote) This approach is named by several others as Hybrid. They conclude that interference is the major cause of misprediction. The majority vote of three predictors works (in approximately half of the cost) In [CHP97], Po Yung Chang, Eric Hao and Yale N. Patt propose a cache for target addresses of indirect jumps. They claim that a BTB is not good in storing this type of addresses (because it stores fall through and last computed address. The computed address changes often with conditional branches) They use ....
Po-Yung Chang, Eric Hao, and Yale N. Patt, Target prediction for indirect jumps, Tech. report, ACM 0-89791-901-7/97/0006, 1997.
....overheads. The overhead of virtual function calls in C programs on superscalar processors with a large BTB is as high as 29 [DH96] Similarly, Chang, Hao, and Patt show that for the SPECint95 programs perl and gcc the indirect branch overhead is approximately 15 and 8 with a BTB [CHP97]. Two level path based prediction can reduce the indirect branch overhead considerably, compared to standard BTBs [DH98] Unfortunately, the improved accuracy comes at the cost of much larger prediction tables. For example, to achieve a prediction accuracy of 90 , a path based two level ....
....length of the pattern remains constant. For example, a path length 6 predictor uses 4 bits from each target address. Note that a two level predictor with path length 0 reverts to a BTB. The 24 bit key pattern is used, as in a BTB, to access the prediction table (History Table or Target Cache in [CHP97]) by splitting it into table index and tag as explained in the previous section. A two level predictor suffers from the same misprediction causes as a BTB, but to a different extent. Compulsory misses remain the same, since they only depend on the branch trace. Only few pattern interference ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. ISCA'97 Proceedings, July 1997
....the following contributions: An extensive study of two level prediction for indirect branches. Two level predictors, which use the targets of the n most recently observed branches (history path length n) to predict the next branch, were first tested on indirect branches by Chang, Hao and Patt [25]. They measured a linear relationship between branch misprediction rate (the reciprocal of prediction accuracy) and cycle cost. We measured prediction accuracy with unlimited hardware resources, varying the amount of sharing of history buffers and history tables [46] After determining the best ....
....workstation 95 8 Basic indirect branch predictors Many existing branch prediction schemes are capable of accurately predicting the direction of conditional branches. However, these techniques are ineffective in predicting the targets of indirect jumps. Po Yung Chang, Eric Hao, Yale Patt [25] We investigate a wide range of two level predictors dedicated exclusively to indirect branches. We first study the intrinsic predictability of indirect branches by ignoring any hardware constraints on memory size or logic complexity. Then we progressively introduce hardware constraints and ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. ISCA'97 Proceedings, July 1998
.... more frequently than programs written in a procedural language (see Table 1) The overhead of mispredicted indirect branches increases with longer pipelines and higher instruction issue [HP95] Together, these trends make accurate indirect branch prediction increasingly critical to performance [CHP97]. In this study, we use a suite of large object oriented and procedural programs to: determine whether the two programming styles show substantial difference in indirect branch behavior; and to . determine whether indirect branch predictor can exploit this behavior to improve prediction ....
....switch statement) could improve branch prediction using branch classification [CHP94] Although some behavioral aspects of these three branch classes are quite different, it appears to be hard to exploit 2 in a predictor. We evaluate the prediction performance of a range of two level predictors [CHP97], DH98] on each class. A statically classifying hybrid predictor reduces mispredictions from 9.8 to 9.5 for a predictor using a 1K entry, 4 way associative, shared history table. A second experiment classified branches based on the number of different targets encountered in a program run (the ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. ISCA'97 Proceedings, July 1997
..... Traditional branch prediction selects one of the two addresses based on knowledge of the current branch address and possibly local or global history. Unfortunately, the target of an indirect branch can not be resolved via a simple binary decision. Instead, a target cache is employed [5]. Such a structure records a speculative target given (for example) a current branch address and a branch history. Chang, Hao, and Patt describe two means of addressing the cache: branch history and path history [5] The branch history approach combines the branch address with global pattern ....
....not be resolved via a simple binary decision. Instead, a target cache is employed [5] Such a structure records a speculative target given (for example) a current branch address and a branch history. Chang, Hao, and Patt describe two means of addressing the cache: branch history and path history [5]. The branch history approach combines the branch address with global pattern history of the preceding conditional branches. Path history instead uses the target addresses of the last n branches. Hash conflicts in target caches are more likely to be incorrect than in simpler BTBs, since they ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, and Yale N. Patt. Target prediction for indirect jumps. In ISCA '97 Proceedings, October 1997.
....is proposed using profile feedback information. At compile time, explicit instructions per branch are added into compiled code to predict the direction of branches. The experiments show that the performance of this algorithm is significantly better than other branch prediction strategies. In [1], the prediction accuracy of indirect jumps is considered. It is shown that prediction schemes based on a branch target buffer are not effective for indirect branches. To improve the accuracy of indirect jumps, a target cache is introduced. The target cache uses branch history to distinguish ....
Po-Yung Chang, Eric Hao, and Yale N. Patt. Target Prediction for Indirect Jumps. ISCA24, 1997.
....is proposed using profile feedback information. At compile time, explicit instructions per branch are added into compiled code to predict the direction of branches. The experiments show that the performance of this algorithm is significantly better than other branch prediction strategies. In [2], the prediction accuracy of indirect jumps is considered. It is shown that a prediction schemes based on a branch target buffer are not effective for indirect branches. To improve the accuracy of indirect jumps, a target cache is introduced. The target cache uses branch history to distinguish ....
Po-Yung Chang, Eric Hao, and Yale N. Patt. Target Prediction for Indirect Jumps. ISCA24, 1997.
....a history of taken non taken bits of recently executed branches with the direction of the current branch. Lipasti et al. successfully applied two level prediction to load value prediction [LWS96] Two level predictors also prove highly effective for the prediction of indirect branch targets [CHP97]. Indirect branches, which transfer control to an address (recently) loaded into a register, are hard to predict accurately. Unlike conditional branches, they can have more than two targets, so that prediction requires a full 32 bit or 64 bit address rather than just a taken or not taken bit. ....
.... Without two level prediction (using a simple branch target buffer or BTB) the overhead of virtual function calls in C programs is as high as 29 [DH96] Similarly, Chang, Hao, and Patt show that for the SPECint95 programs perl and gcc the indirect branch overhead is approximately 15 and 8 [CHP97]. In this study we evaluate predictor architectures for indirect branches. However, we believe that our conclusions will also apply to conditional branch prediction and value prediction, for reasons discussed in section 6. The accuracy of two level predictors depends on the size of the ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. ISCA'97 Proceedings, July 1997.
....best predictors for conditional branches. For example, an ideal (unconstrained) BTB achieves an average prediction hit ratio of only 64 on the SPECint95 benchmarks. Though not as common as conditional branches, indirect branches occur frequently enough to cause substantial overhead. Chang et al. [CHP97] predict a reduction in execution time of 14 and 5 for the perl and gcc benchmarks on a wide issue superscalar processor with an improved prediction mechanism for indirect branches (Target Cache) 2 Technical Report TRCS97 19: Accurate Indirect Branch Prediction In C and Java programs, ....
....transistors, with 48 million transistors dedicated to branch prediction ( P 97] In this study, we explore the design space of prediction mechanisms that are exclusively dedicated to indirect branches. Since the link between misprediction rate and execution overhead has been demonstrated in [CHP97], we focus on the minimization of branch misprediction rate. Initially, we assume unlimited hardware resources so that results are not obscured by implementation artifacts such as interference in tagless tables. We then progressively introduce hardware constraints, each of which causes a new type ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. To appear in the ISCA'97 Proceedings.
....significant overheads. The overhead of virtual function calls in C programs on superscalar processors with a large BTB is as high as 29 [DH96] Similarly, Chang, Hao, and Patt show that for the SPECint95 programs perl and gcc the indirect branch overhead is approximately 15 and 8 with a BTB [CHP97]. Two level path based prediction can reduce the indirect branch overhead considerably, compared to standard BTBs [DH98] Unfortunately, the improved accuracy comes at the cost of much larger prediction tables. For example, to achieve a prediction accuracy of 90 , a path based two level predictor ....
....length of the pattern remains constant. For example, a path length 6 predictor uses 4 bits from each target address. Note that a two level predictor with path length 0 reverts to a BTB. The 24 bit key pattern is used, as in a BTB, to access the prediction table (History Table or Target Cache in [CHP97]) by splitting it into table index and tag as explained in the previous section. A two level predictor suffers from the same misprediction causes as a BTB, but to a different extent. Compulsory misses remain the same, since they only depend on the branch trace. Only few pattern interference ....
[Article contains additional citation context not shown here]
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. ISCA'97 Proceedings, July 1997
.... will likely omit some branches in the immediate past) Finally, Jacobson et al. include conditional branches in the path histories, which is probably responsible for the difference in xlisp (in our study, xlisp s misprediction rate rises to 12.7 when including conditional branches) Chang et al. [CHP97] propose an indirect branch prediction scheme realizable in hardware and simulate the resulting speedups of selected SPECint95 programs for a superscalar processor. The study explores only a narrow range of prediction schemes but still achieved significant improvements, reducing the misprediction ....
Po-Yung Chang, Eric Hao, Yale N. Patt. Target Prediction for Indirect Jumps. To appear in the ISCA'97 Proceedings.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC