Title :
Reactive techniques for controlling software speculation
Author :
Zilles, Craig ; Neelakantam, Naveen
Author_Institution :
Siebel Center for Comput. Sci., Illinois Univ., Urbana, IL, USA
Abstract :
Aggressive software speculation holds significant potential, because it enables program transformations to reduce the program´s critical path. Like any form of speculation, however, the key to software speculation is employing it only where it is likely to succeed. While mechanisms for controlling hardware speculation (e.g., saturating counters updated after each instance) are well understood, these techniques do not translate directly to software techniques because changing a speculation requires changing the code. As it stands, the dominant software speculation control technique, non-reactive profile-guided optimization, lacks the robustness to support aggressive speculation. The primary thesis of this paper is that software speculation can be made to be robust by adding a reactive controller that can dynamically adjust the speculation. We make two primary observations about such systems: 1) reactive control systems can select behaviors on which to speculate with performance that equals or exceeds self-training, and 2) such control systems are remarkably latency tolerant. Although reactivity is required, it can be done at a low frequency; latencies of hundreds of thousands, or even millions of cycles, can be tolerated for most actions. Together these two characteristics imply that robust aggressive software speculation is a realistic goal.
Keywords :
parallel programming; program compilers; nonreactive profile-guided optimization; program transformation; reactive technique; software speculation control; Computer science; Control systems; Counting circuits; Delay; Frequency; Hardware; Open loop systems; Pipelines; Robust control; Robustness;
Conference_Titel :
Code Generation and Optimization, 2005. CGO 2005. International Symposium on
Print_ISBN :
0-7695-2298-X
DOI :
10.1109/CGO.2005.30