Selective Guarded Execution Using Profiling on a Dynamically Scheduled Processor

  • Authors:
  • Srinivas Mantripragada;Alexandru Nicolau

  • Affiliations:
  • -;-

  • Venue:
  • IWIA '99 Proceedings of the 1999 International Workshop on Innovative Architecture
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern dynamically scheduled processors use branch prediction hardware to speculatively fetch and execute most likely executed paths in a program. Complex branch predictors have been proposed which attempt to identify these paths accurately such that the hardware can benefit from out-of-order (OOO) execution. Recent studies have shown that in spite of such complex prediction schemes, there still exist many frequently executed branches which are difficult to predict. Predicated execution has been proposed as an alternative technique to eliminate some of these branches in various forms ranging from a restrictive support to a full-blown support. We call the restrictive form of predicated execution as guarded execution.In this paper, we propose a new algorithm, which uses profiling and selectively performs if-conversion for architectures with guarded execution support. Branch profiling is used to gather the taken, non-taken and misprediction counts for every branch. This combined with block profiling is used to select paths, which suffer from heavy mispredictions and are profitable to if-convert. Effects of three different selection criteria, namely size-based, predictability-based and profiled-based, on net cycle improvements, branch mispredictions and mis-speculated instructions are then studied. We also explain numerous adjustments that were made to the selection criteria to better reflect the OOO processor behavior.