A Comparison of Full and Partial Predicated Execution Support
for ILP Processors [abstract] (ACM DL, PDF, PostScript)
Scott A. Mahlke, Rick E. Hank, James E. McCormick, David I. August, and Wen-mei W. Hwu
Proceedings of the 22nd International Symposium on Computer
Architecture (ISCA), June 1995.
One can effectively utilize predicated execution to
improve branch handling in instruction-level parallel processors.
Although the potential benefits of predicated execution are high, the
tradeoffs involved in the design of an instruction set to support
predicated execution can be difficult. On one end of the design
spectrum, archi- tectural support for full predicated execution
requires increasing the number of source operands for all
instructions. Full predicate support provides for the most
flexibility and the largest potential performance improvements. On
the other end, partial predicated execution support, such as
conditional moves, requires very little change to existing
architectures. This paper presents a preliminary study to
qualitatively and quantitatively address the benefit of full and
partial predicated execution support. With our current compiler
technology, we show that the compiler can use both partial and full
predication to achieve speedup in large control- intensive
programs. Some details of the code generation techniques are shown to
provide insight into the benefit of going from partial to full
predication. Preliminary experimental results are very encouraging:
partial predication provides an average of 33% performance improvement
for an 8-issue processor with no predicate support while full
predication provides an additional 30% improvement.