Code placement for improving dynamic branch prediction accuracy
Code placement for improving dynamic branch prediction accuracy
复制标题
用于提高动态分支预测准确性的代码放置
DOI:
--
复制
发表时间:
2005
期刊:
影响因子:
--
通讯作者:
Daniel A. Jiménez
中科院分区:
文献类型:
--
作者:
Daniel A. Jiménez
Code placement techniques have traditionally improved instruction fetch bandwidth by increasing instruction locality and decreasing the number of taken branches. However, traditional code placement techniques have less benefit in the presence of a trace cache that alters the placement of instructions in the instruction cache. Moreover, as pipelines have become deeper to accommodate increasing clock rates, branch misprediction penalties have become a significant impediment to performance. We evaluate pattern history table partitioning, a feedback directed code placement technique that explicitly places conditional branches so that they are less likely to interfere destructively with one another in branch prediction tables. On SPEC CPU benchmarks running on an Intel Pentium 4, branch mispredictions are reduced by up to 22% and 3.5% on average. This reduction yields a speedup of up to 16.0% and 4.5% on average. By contrast, branch alignment, a previous code placement technique, yields only up to a 4.7% speedup and less than 1% on average.