Difficult-path branch prediction using subordinate microthreads

Robert S. Chappell, Francis Tseng, Adi Yoaz, Yale N. Patt
2002 SIGARCH Computer Architecture News  
Branch misprediction penalties continue to increase as microprocessor cores become wider and deeper. Thus, improving branch prediction accuracy remains an important challenge. Simultaneous Subordinate Microthreading (SSMT) provides a means to improve branch prediction accurac): SSMT machines run multiple, concurrent microthreads in support of the primary thread. We propose to dynamically construct microthreads that can speculatively and accurately pre-compute branch outcomes along frequently
more » ... predicted paths. The mechanism is intended to be implemented entirely in hardware. We present the details for doing so. We show how to select the right paths, how to generate accurate predictions, and how to get this information in a timely way. We achieve an average gain of 8.4% (42% maximum) over a very aggressive baseline machine on the SPECint95 and SPECint2000 benchmark suites. Generate accurate microthread predictions. A microthread is useless if it does not generate a correct prediction. In fact, it can be harmful if the hardware prediction is correct and the microthread prediction is not. Complete microthreads in time to be useful. A microthread is useless if it does not complete before the target branch is resolved--at that point, the machine has already computed the actual outcome of the branch. Microthreads should complete as early as possible to eliminate or reduce misprediction penalties. We propose using a set of difficult-paths to guide microthread branch prediction with the above goals in mind. Path-based confidence mechanisms [10] have demonstrated 1063-6897/02 $17.00 © 2002 IEEE 307
doi:10.1145/545214.545250 fatcat:z7s5yiikszct7kxyxe2v4at2em