Abstract
Many computers rely on branch predictions to improve the performance of popelining. It is even more important in superscalar/VLIW machines. In this thesis, we present a static pre-calculating scheme to predict the branch directions. In the scheme, we duplicate the evaluation expression of a branch, called a Pre-Calculating Function (PCF), and move it ahead to a suitable position at compliler-time. Thus at run-time, the PCF will be calculated before the branch is fetched, and the branch direction can be set. In a naive installation of the PCF scheme, the distance between a PCF and the original branch is guarded by the u-d chains related to the variables used in the branch. To enlarge the distances we propose additional variable propagation rules to move PCF far ahead of the branch. In addition, we also describe extra hardwares needed for effectively using our scheme. Experimental results with SPEC92 suite show that our idea is very promising, and may have profound impacts for branch prediction design for the future to come.