Skip to Main Content
Branch instructions pose a serious problem in achieving a good instruction level pamllelism (ILP) from a program. Modern microprocessors have attempted to alleviate this problem with the support of sophisticated branch prediction schemes. Dynamic speculation, as a hardware feature, is used to execute instructions out-of-order (OOO) guided by the outcomes of such prediction schemes. Previous branch outcomes are used to speculate an instruction before the branch is fully resolved. Studies have shown that inspite of such complex prediction schemes, there still exist many frequently executed branches which are hard to predict. Predicated execution has been proposed as an alternative technique by researchers to eliminate some of these hard to predict bmnches. Previous studies have analyzed the effects of applying predicated execution with branch prediction. Here, we study the effects of predicated execution on architectures supporting dynamic speculation. Branch classification, as a technique, is used to group branches with similar dynamic execution frequencies. The effects of different predication models on dynamic speculation are then studied for each of these branch classes. An in-depth analysis of useful and useless instructions as a result of applying these different models is also summarized.