【24h】

Compiler synthesized dynamic branch prediction

机译:编译器综合动态分支预测

获取原文

摘要

Branch prediction is the predominant approach for minimizing the pipeline breaks caused by branch instructions. Traditionally, branch prediction is accomplished in one of two ways, static prediction at compile-time via compiler analysis or dynamic prediction at run-time via special hardware structures. In this paper, we propose a novel technique that aims to combine the strengths of the two approaches -- the lower cost of compile-time analysis with the effectiveness of dynamic prediction. Specifically, we propose that the compiler use profile feedback to define a prediction function for each branch and insert a few explicit instructions per branch into the compiled code to compute the prediction function. These instructions are carefully selected to predict the direction of the branch using any information available during run-time. A strength of this approach is that information beyond branch history can be used to make predictions, such as the contents of the architectural registers. To substantiate our proposal, we present an algorithm for selecting the prediction instructions, and demonstrate the performance of the approach against contemporary static and dynamic branch prediction strategies.
机译:分支预测是最小化由分支指令引起的流水线中断的主要方法。传统上,分支预测是通过以下两种方式之一完成的:通过编译器分析在编译时进行静态预测,或者通过特殊的硬件结构在运行时进行动态预测。在本文中,我们提出了一种新颖的技术,旨在结合两种方法的优势-编译时分析的较低成本与动态预测的有效性。具体来说,我们建议编译器使用配置文件反馈来为每个分支定义一个预测函数,并将每个分支的一些显式指令插入到已编译的代码中以计算预测函数。仔细选择这些说明,以使用运行时可用的任何信息来预测分支的方向。这种方法的优势在于分支历史以外的信息可用于进行预测,例如体系结构寄存器的内容。为了证实我们的建议,我们提出了一种用于选择预测指令的算法,并演示了针对当前静态和动态分支预测策略的方法的性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号