Improving the performance of object-oriented languages with dynamic predication of indirect jumps

Improving the performance of object-oriented languages with dynamic predication of indirect jumps
复制标题

通过间接跳转的动态预测提高面向对象语言的性能

DOI:
10.1145/1346281.1346293
复制
发表时间:
2008
期刊:
IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005.
影响因子:
--
通讯作者:
Y. Patt
Y. Patt
中科院分区:
--
文献类型:
--
作者:
José A. Joao;O. Mutlu;Hyesoon Kim;Rishi Agarwal;Y. Patt

文献摘要

被引文献

相似文献

间接跳转指令用于实现越来越常见的编程结构,如虚函数调用,switch-case语句,跳转表和接口调用。间接跳转对性能的影响可能会增加,因为即使使用专门的硬件,也很难预测具有多个目标的间接跳转。 本文提出了一种新的方法来处理难以预测的间接跳转:动态预测他们。编译器(静态或动态)识别适合于预测的间接跳转沿着它们的控制流合并(CFM)点。如果跳转在运行时很难预测,则硬件断言跳转的不同目标及其CFM点之间的指令。如果跳转实际上已经被错误预测,则其动态预测消除了管道刷新,从而提高了性能。 我们的评估表明,动态间接跳转预测(DIP)提高了一组面向对象的应用程序,包括Java DaCapo基准套件的性能37.8%相比,常用的分支目标缓冲区为基础的预测,同时也减少了24.8%的能源消耗。我们比较DIP到以前提出的三个间接跳转预测,发现它提供了最好的性能和能源效率。
Indirect jump instructions are used to implement increasingly-common programming constructs such as virtual function calls, switch-case statements, jump tables, and interface calls. The performance impact of indirect jumps is likely to increase because indirect jumps with multiple targets are difficult to predict even with specialized hardware. This paper proposes a new way of handling hard-to-predict indirect jumps: dynamically predicating them. The compiler (static or dynamic) identifies indirect jumps that are suitable for predication along with their control-flow merge (CFM) points. The hardware predicates theinstructions between different targets of the jump and its CFM point if the jump turns out to be hard-to-predict at run time. If the jump would actually have been mispredicted, its dynamic predication eliminates a pipeline flush, thereby improving performance. Our evaluations show that Dynamic Indirect jump Predication (DIP) improves the performance of a set of object-oriented applications including the Java DaCapo benchmark suite by 37.8% compared to a commonly-used branch target buffer based predictor, while also reducing energy consumption by 24.8%. We compare DIP to three previously proposed indirect jump predictors and find that it provides the best performance and energy-efficiency.