The Predictability of Computations that Produce Unpredictable Outcomes

msra(2001)

引用 28|浏览9
暂无评分
摘要
We study the dynamic stream of slices (i.e., slice traces) that lead to branches that foil an existing branch predictor and to loads that miss and measure whether these slices exhibit locality (i.e., repeti- tion). We argue that this regularity can be used to dynamically extract slices for an operation-based predictor that speculatively pre-computes a load address or branch target (i.e., an outcome) rather than directly predicting the outcome based upon the history of outcomes. We study programs from the SPEC2000 suite and find they exhibit good slice locality for these problem loads and branches. Moreover, we study the performance of an idealized oper- ation-based predictor (it can execute slices instantaneously). We find that it interacts favorably with an existing sophisticated out- come-based branch predictor, and that slice locality provides good insight into the fraction of all branch mispredictions it can poten- tially eliminate. Similar observations hold for operation-based prefetching of loads that miss. On average slice locality for branches and loads was found to be above 70% and 76% respec- tively when recording the 4 most recent unique slices per branch or load over a window of 64 committed instructions, and close to 68% and 71% for branches and loads respectively when we look at slices over a window of up to 128 committed instructions. The idealized operation predictor was found to correct approximately 74% of branch mispredictions or prefetch about 67% of loads that miss respectively (slices detected over a window of 64 instructions). At the same time, on average, the branch operation predictor mispre- dicts less than 0.8% of all branches that are correctly predicted by an existing branch predictor.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要