HyperLink   Supporting Predicated Execution: Techniques and Tradeoffs.
Publication Year:
  Jim E. McCormick
  MS thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana IL, May 1996

Predicated execution is the ability to associate a predicate, or guard, with an instruction and to use that predicate to determine whether the instruction executes or not. Much of the research to date on predicated execution assumes a high level of architectural support of predicated execution and focuses developing techniques to exploit these capabilities. Researchers have shown that predicate execution is a very useful tool in exposing and exploiting instruction level parallelism. Unfortunately, there are several factors that make it very difficult to develop a processor with a high level of architectural support for predicated execution. A big factor is that the importance of backward compatibility means that support for predication would usually have to come as an extension on an existing instruction set. Another factor is that some features which are assumed in a high level of support for predicated execution are difficult and costly to implement. Given these factors, techniques have to be developed that support predicated execution at various levels of performance and cost, and the tradeoffs among these techniques and levels of predication support need to be studied. This thesis discusses several existing techniques and presents several new techniques that support various levels of predicated execution and discusses the tradeoffs among these techniques and level of support.