VPC prediction: reducing the cost of indirect branches via hardware-based dynamic devirtualization

VPC prediction: reducing the cost of indirect branches via hardware-based dynamic devirtualization
复制标题

VPC预测:通过基于硬件的动态去虚拟化降低间接分支的成本

DOI:
--
复制
发表时间:
2007
期刊:
International Symposium on Computer Architecture
影响因子:
--
通讯作者:
R. Cohn
R. Cohn
中科院分区:
--
文献类型:
--
作者:
Hyesoon Kim;José A. Joao;O. Mutlu;Chang Joo Lee;Y. Patt;R. Cohn

文献摘要

被引文献

相似文献

间接分支在以现代面向对象语言和基于虚拟机的运行时系统编写的模块化程序中变得越来越普遍。不幸的是,间接分支的预测精度没有像条件分支那样提高。此外,先前提出的间接分支预测器通常需要大量的额外硬件存储和复杂性,这使得它们实现起来不那么有吸引力。 本文提出了一种新的技术来处理间接分支,称为虚拟程序计数器(VPC)预测。VPC预测的关键思想是将单个间接分支视为硬件中的多个虚拟条件分支以用于预测目的。我们的技术使用现有的条件分支预测硬件预测每个虚拟条件分支。因此,不需要单独的存储结构来预测间接分支目标。 我们的评估表明,VPC预测提高了26.7%的平均性能相比,常用的分支目标缓冲区为基础的预测12间接分支密集型应用程序。VPC预测实现了至少12KB(通常是192KB)标记的目标缓存预测器在一半的检查应用程序上提供的性能改进。我们表明,VPC预测可以使用任何现有的条件分支预测机制,VPC预测的准确性提高时,使用更准确的条件分支预测。
Indirect branches have become increasingly common in modular programs written in modern object-oriented languages and virtual machine based runtime systems. Unfortunately, the prediction accuracy of indirect branches has not improved as much as that of conditional branches. Furthermore, previously proposed indirect branch predictors usually require a significant amount of extra hardware storage and complexity, which makes them less attractive to implement. This paper proposes a new technique for handling indirect branches, called Virtual Program Counter (VPC) prediction. The key idea of VPC prediction is to treat a single indirect branch as multiple virtual conditional branches in hardware for prediction purposes. Our technique predicts each of the virtual conditional branches using the existing conditional branch prediction hardware. Thus, no separate storage structure is required for predicting indirect branch targets. Our evaluation shows that VPC prediction improves average performance by 26.7% compared to a commonly-used branch target buffer based predictor on 12 indirect branch intensive applications. VPC prediction achieves the performance improvement provided by at least a 12KB (and usually a 192KB) tagged target cache predictor on half of the examined applications. We show that VPC prediction can be used with any existing conditional branch prediction mechanism and that the accuracy of VPC prediction improves when a more accurate conditional branch predictor is used.