Extracting thread-level parallelism, as well as instruction-level one, is greatly expected for modern microprocessors. Speculative multithreading is one of the most hopeful candidates, although, its performance improvement depends on prediction accuracy. On the other hand, profiling techniques can accelerate programs since it can reflect the programs actual behavior. This paper focuses our discussion on utilizing path-based profiling results in improving speculative multithreaded codes. Programs have many conditional branches thus many possible paths arise, however, actually executed paths are very limited. Thus we show that most frequent two paths are sufficient candidates for prediction and speculation, and we present a novel speculation method, two-path limited speculation. Furthermore, we present a simple path predictor based on two level branch predictor. Analytical and trace-driven evaluation results show the effectiveness of the proposed method.
['Takashi Yokota', 'Moriyuki Saito', 'Fumihito Furukawa', 'Kanemitsu Ootsu', 'Takanobu Baba']
Two-Path Limited Speculation Method for Static/Dynamic Optimization in Multithreaded Systems