Autonomous control of issue queue utilization for simultaneous multi-threading processors

Simultaneous Multi-Threading (SMT) is a technique that improves overall system performance by allowing concurrent execution of multiple independent threads with sharing of key datapath components and better utilization of the resources. Most of existing resource allocation and distribution techniques adjust the resource allocation in real time based on certain pre-determined allocation parameter settings attempting to lead to better performance. Such an improved performance is contingent on the assumptions that the system environment parameters and workload characteristics remain unchanged. Once either is changed the same settings may no longer lead to the same performance gain. In this paper, we propose an adaptive technique to allow for a complete autonomous adjustment process to control the distribution of a critical shared resource -- Issue Queue (IQ) -- in an SMT system. The proposed process adjusts in real time the resource distribution based on the impact to performance caused by the previous adjustment, with a simple algorithmic guideline in constantly aiming to improve performance from one adjustment to the next. No a priori information in system environment parameters or workload characteristics is needed for this process to acquire beforehand for the autonomous adjustment. Our simulation results show that our proposed technique is able to improve the system's overall IPC by an average of 7.9% for a 4-threaded workload and 12.5% for an 8-threaded workload, as opposed other known adaptive techniques achieving similar performance.

[1]  Eugene John,et al.  Effective Dispatching for Simultaneous Multi-Threading (SMT) Processors by Capping Per-Thread Resource Utilization , 2011 .

[2]  Yilin Zhang,et al.  Capping Speculative Traces to Improve Performance in Simultaneous Multi-threading CPUs , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[3]  Dean M. Tullsen,et al.  Handling long-latency loads in a simultaneous multithreading processor , 2001, Proceedings. 34th ACM/IEEE International Symposium on Microarchitecture. MICRO-34.

[4]  Donald Yeung,et al.  Learning-Based SMT Processor Resource Distribution via Hill-Climbing , 2006, 33rd International Symposium on Computer Architecture (ISCA'06).

[5]  Kozo Kimura,et al.  An elementary processor architecture with simultaneous instruction issuing from multiple threads , 1992, ISCA '92.

[6]  Jean-Luc Gaudiot,et al.  Speculation control for simultaneous multithreading , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[7]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[8]  Francisco J. Cazorla,et al.  Dynamically Controlled Resource Allocation in SMT Processors , 2004, 37th International Symposium on Microarchitecture (MICRO-37'04).

[9]  Jack L. Lo,et al.  Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor , 1996, 23rd Annual International Symposium on Computer Architecture (ISCA'96).