Lightweight Predication Support for Out of Order Processors [abstract] (IEEE Xplore, PDF)
Mark Stephenson, Lixin Zhang, and Ram Rangan
Proceedings of the 15th IEEE International Symposium on High Performance Computer Architecture (HPCA), February 2009.
The benefits of Out of Order (OOO) processing are well known, as is
the effectiveness of predicated execution for unpredictable control
flow. However, as previous research has demonstrated, these techniques
are at odds with one another. One common approach to reconciling their
differences is to simplify the form of predication supported by the
architecture. For instance, the only form of predicated supported by
modern OOO processors is a simple conditional move. We argue that it
is the simplicity of conditional move that has allowed its widespread
adoption, but we also show that this simplicity compromises its
effectiveness as a compilation target. In this paper, we introduce a
generalized form of hammock predication - called predicated mutually
exclusive groups - that requires few modifications to an existing
processor pipeline, yet presents the compiler with abundant
predication opportunities. In comparison to non-predicated code
running on an aggressively clocked baseline system, our technique
achieves an 8% speedup averaged across three important benchmark
suites.