A Real-time Per-thread IQ-capping Technique for Simultaneous Multi-threading (SMT) Processors
Simultaneous multithreading (SMT) provides a platform to improve performance with better resource utilization of superscalar CPUs by sharing key data-path components among multiple independent threads. Effective use of critical resources among threads remains a challenge to SMT due to transient behaviors of threads. As Issue Queue (IQ) is regarded as one of most critical shared resources in the pipeline, putting a limit on its occupation by each thread may easily improves the overall throughput; however, such a limit (cap) should be set properly in real time to accommodate the transient behavior of each thread in order to preclude under-utilization (thus, under-achieving) due to over-capping, or starvation for some threads due to under- capping. We propose a simple dynamic algorithm to adjust the cap value for each thread in real time according to its activeness in terms of its dispatching and issuing activities. The simulation results show that the proposed technique not only achieves a significant improvement in IPC over the regular no-capping technique, but also demonstrates a performance superior to the fixed capping approach.