Title :
Instruction fetch deferral using static slack
Author :
Muthler, Gregory A. ; Crowe, David ; Patel, Sanjay J. ; Lumetta, Steven S.
Author_Institution :
Center for Reliable & High Performance Comput., Illinois Univ., Urbana, IL, USA
Abstract :
In this paper we present an approach to boosting performance and tolerating latency by deferring non-critical instructions into a deferred queue for later processing. As such, instruction deferral allows more critical instructions to be fetched, dispatched, and possibly executed, earlier. We present methods for identifying deferrable instructions using previously investigated notions of instruction slack. In particular we use static slack to determine if an instruction is deferrable. The static slack of an instruction corresponds to the number of cycles an instruction can be delayed without impacting overall execution time when considering all dynamic paths from that instruction. A significant fraction of the dynamic instruction stream has enough static slack to be deferred by 10 or more cycles on an aggressive execution model. Furthermore, the small amount of register-based communication from deferred instructions to non-deferred instructions makes a deferral-based approach to fetch and execution very attractive. We use a trace cache based microarchitecture to overcome some significant implementation challenges associated with instruction deferral. Overall, instruction deferral boosts the performance of a 4-wide processor by approximately 11% and an 8-wide processor by 6% on eight of the SPEC2000 integer benchmarks.
Keywords :
cache storage; computer architecture; performance evaluation; deferred queue; instruction deferral; latency; microarchitecture; performance; static slack; trace cache; Bandwidth; Boosting; Computer aided instruction; Delay effects; Microarchitecture;
Conference_Titel :
Microarchitecture, 2002. (MICRO-35). Proceedings. 35th Annual IEEE/ACM International Symposium on
Print_ISBN :
0-7695-1859-1
DOI :
10.1109/MICRO.2002.1176238