Improving virtual function call target prediction via dependence-based pre-computation

Improving virtual function call target prediction via dependence-based pre-computation
复制标题

通过基于依赖的预计算改进虚拟函数调用目标预测

DOI:
--
复制
发表时间:
1999
期刊:
International Conference on Supercomputing
影响因子:
--
通讯作者:
G. Sohi
G. Sohi
中科院分区:
--
文献类型:
--
作者:
A. Roth;Andreas Moshovos;G. Sohi

文献摘要

被引文献

相似文献

我们引入了基于依赖性的预计算,作为对基于历史的目标预测方案的补充。我们提出了在虚拟函数调用(v-调用)的上下文中的预计算,这是一类越来越重要的控制转移,并抵制传统的预测。我们提出的技术动态地识别计算v调用目标的操作序列。当遇到这样的序列中的第一条指令时,一个小型执行引擎推测性地、积极地预执行其余的指令。预先计算的目标被存储,并且随后在需要进行预测时使用。我们表明,一个共同的V-调用指令序列可以利用以前提出的预取机制和最小的额外硬件来实现预计算。在一套C++程序中,基于依赖的预计算消除了简单BTB引起的46%的预测错误和基于路径的两级预测器引起的24%的预测错误。
We introduce dependence-based pre-computation as a complement to history-based target prediction schemes. We present pre-computation in the context of virtual function calls (v-calls), a class of control transfers that is becoming increasingly important and has resisted conventional prediction. Our proposed technique dynamically identifies the sequence of operations that computes a v-call’s target. When the first instruction in such a sequence is encountered, a small execution engine speculatively and aggressively pre-executes the rest. The pre-computed target is stored and subsequently used when a prediction needs to be made. We show that a common v-call instruction sequence can be exploited to implement pre-computation using a previously proposed prefetching mechanism and minimal additional hardware. In a suite of C++ programs, dependence-based pre-computation eliminates 46% of the mispredictions incurred by a simple BTB and 24% of those associated with a path-based two-level predictor.