Boosting SMT performance by speculation control
Citations Over TimeTop 12% of 2002 papers
Abstract
Simultaneous Multithreading (SMT) is a technique that permits multiple threads to execute in parallel within a single processor. Usually, an SMT processor uses shared instruction queues to collect instructions from the different threads. Hence, an SMT processor's performance depends on how the instruction fetch unit fills these instruction queues. On each cycle the fetch unit must judiciously decide which threads to fetch instructions from. This paper proposes a new instruction fetch scheme that uses both fetch prioritizing and fetch gating for SMR processors. Fetch prioritizing sets up fetch priority for each thread based on the number of unresolved low-confidence branches from the thread, while fetch gating prevents fetching from a thread once it has a stipulated number of out-standing low-confidence branches. Based on the fetch priority of each thread, our fetch scheme finds threads that are most likely to be in their correct paths. This improves the overall throughput of an SMT processor by reducing the number of wrong-path instructions in the pipeline. Our experimental evaluation shows that, on the average, our fetch scheme provides 14.9% speedup over ICOUNT, which is the best fetch policy reported so far for SMT.
Related Papers
- → Cost effective speculation with the omnipredictor(2018)6 cited
- → Modeling Control Speculation for Timing Analysis(2004)36 cited
- → The effect of speculatively updating branch history on branch prediction accuracy, revisited(1994)66 cited
- Dynamic Branch Predictor Evaluation on Simultaneous Multithreading Processor(2006)
- → Broadcast Mechanism for improving Conditional Branch Prediction in Speculative Multithreaded Processors(2000)