A thread executing on a simultaneous multithreading (SMT) processor that experiences a longlatency load will eventually stall while holding execution resources. Existing long-latency load aware SMT fetch policies limit the amount of resources allocated by a stalled thread by identifying long-latency loads and preventing the thread from fetching more instructions-and in some implementations, instructions beyond the long-latency load are flushed to release allocated resources. This article proposes an SMT fetch policy that takes into account the available memory-level parallelism (MLP) in a thread. The key idea proposed in this article is that in case of an isolated long-latency load (i.e., there is no MLP), the thread should be prevented from allocating additional resources. However, in case multiple independent long-latency loads overlap (i.e., there is MLP), the thread should allocate as many resources as needed in order to fully expose the available MLP. MLP-aware fetch policies achieve better performance for MLP-intensive threads on SMT processors, leading to higher overall system throughput and shorter average turnaround time than previously proposed fetch policies. . It extends our prior work: by providing an expanded presentation and discussion; by providing performance numbers for a more realistic baseline processor configuration, which includes a hardware prefetcher; in addition, the experimental setup is more rigorous by considering SimPoint simulation points and more aggressively optimized binaries; by studying the impact of the SMT processor microarchitecture configuration on the performance of the MLP-aware fetch policy, thus providing more insight into the performance trends to be expected across microarchitectures; by exploring and evaluating a number of alternative MLP-aware fetch policies; by evaluating the proposed fetch policies using system-level metrics, namely system throughput (STP) and average normalized turnaround time (ANTT); by comparing the proposed MLP-aware fetch policy against static and dynamic resource partitioning. S. Eyerman and L. Eeckhout are Postdoctoral Fellows with the Fund for Scientific ResearchFlanders (Belgium) (FWO-Vlaanderen). Authors' address: Stijn Eyerman and Lieven Eeckhout, ELIS Department, Ghent University, SintPietersnieuwstraat 41, B-9000 Gent, Belgium; email: {seyerman,leeckhou}@elis.UGent.be. Permission to make digital or hard copies part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from the Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (
Instead of preventing all threads with longlatency loads from entering the pipeline, the Memory-Level Parallelism (MLP)-aware fetch policy REF assigns as many resources as needed to MLP-intensive threads in order to fully exploit the high level of MLP and only prevents threads with isolated long-latency loads from being allocated more resources.
Memory-level parallelism aware fetch policies for simultaneous multithreading processors
TACO
Computer Science