  Major chip manufacturers have all introduced Multithreaded processors. These
processors are used for running a variety of workloads. Efficient resource
utilization is an important design aspect in such processors. Depending on the
workload, mis-speculated execution can severely impact resource utilization and
power utilization. In general, compared to a uniprocessor, a multithreaded
processor may have better tolerance towards mis-speculation. However there can
still be phases where even a multi-threaded processor performance may get
impacted by branch induced mis-speculation. In this paper I propose monitoring
the branch predictor behavior of various hardware threads running on the
multi-threaded processor and use that information as a feedback to the thread
arbiter/picker which schedules the next thread to fetch instructions from. If I
find that a particular thread is going through a phase where it is consistently
mis-predicting its branches and its average branch misprediction stall is above
a specific threshold then I temporarily reduce the priority for picking that
thread. I do a qualitative comparison of various solutions to the problem of
resource inefficiency caused due to mis-speculated branches in multithreaded
processors. This work can be extended by doing a quantitative evaluation.
