安腾处理器中多级分支预测机制

更新时间:2023-07-10 23:49:57 阅读: 评论:0

安腾处理器中多级分支预测机制
苏铭赵荣彩宋宗宇
(解放军信息工程大学郑州 450002)
E-mail:
摘要:分支预测技术可消除分支指令之后损失的周期,防止流水线断流。高比率
的分支预测精确度是高性能微处理器性能的保证。本文详细分析了安腾处理器
primadonna(Itanium)多级分支预测机制,并研究了每级预测器的具体实现。
关键词:  分支预测  安腾处理器
中图分类号:TP311.11  文献标识码:①
项目基金资助:河南杰出人才创新基金(基金编号:0521000200)河南公务员培训
Multi-level Branch Prediction Strategy in
Itanium Processor
Su Ming Zhao rong cai Song zong yu
The Information and Engineering University Zheng Zhou 450002 Abstract: Multi-level prediction strategy enhance prediction precision and improve
performance. In this paper, we analyze multi-level branch prediction in the front end
and study the implementation of each-level predictor on the basis of Itanium processor
which is a commercial EPIC processor.
key word:Branch prediction  EPIC
1.引言
频繁的分支指令改变了程序的正常控制流,制约了指令并行性的开发,而且这种性能损失对于宽发射深流水结构的高性能处理器来说更为严重,所以必须采取一种有效的措施来解决上述瓶颈。在EPIC体系结构中使用了判断执行技术来消除分支指令及其带来的影响,但判断执行技术不能去除全部的分支
指令,只能去除部分分支指令——if分支指令。针对无法消除的分支指令,为了减小对性能的影响,EPIC延用了传统体系结构中的处理方式,使用分支预测技术。
分支预测技术是指在分支条件计算出来之前对分支执行路径进行猜测的过程。如果猜测结果正确将会减少处理器停顿、提高性能。对于分支预测来说,目标就是提高预测率,尽可能地减少误预测及其开销。本文以第一个商业可得的EPIC指令系统体系结构——IA-64为背景,以IA-64的第二代处理器芯片ItaniumⅡ为基础,详细分析了多级分支预测结构在提高预测率、减少误预测的开销方面的技术思路。
2.多级分支预测结构框架
由于判断执行技术的引入,与传统的分支预测结构相比,安腾处理器增添了许多新的预测结构[1]。图1给出了流水线前端的多级分支预测结构图。从图上看出可分为4级预测结构,第一级预测结构采用了一个目标地址寄存器(TAR)表来保存分支的目标地址。第二级预测结构中,除了采用传统的动态预测表(BPT)对单分支指令进行预测外,还建立了动态多分支预测表(MBPT)对多路分支给予支持,同时使用返回栈缓冲区(RSB)结构对调用和返回分支指令进行预测。第三和第四级预测结构采用了分支地址计算(BAC1、BAC2)对无条件分支指令的预测进行支持,同时在第三级预测结构中针对循环指令最后一次循环退出时的误预测,使用了循环退出校正器结构(loop exit corrector)结构给予纠正,比较巧妙地实现了对循环结构的预测。
图1多级分支预测结构图
由于使用多级预测结构,可能就会存在多个预测返回的结果同时修改当前IP的情况。所以要想正确而有效的处理指令,就必须定义各级预测的优先级。一般采用的原则是:不同时刻的同一指令按照图1自左向右的顺序优先级降低;对于同一时刻的不同指令,前面进入流水线的指令优先级要高于后面进入流水线的指令优先级。图2给出了多级分支预测结构的优先原则。
torn
图2多级分支预测结构优先原则
前端的多级分支预测包括两个层次:动态预测和静态预测。动态预测是使用预测硬件根据程序执行的历史来预测分支。静态预测是使用编译器提供的提示信息来确定预测的方向。图3给出了多级分支预测层次示意图。
图3多级分支预测层次示意图
下面我们将从硬件机制对于多级分支动态预测的支持和软件提示对于静态预测的支持两个方面进行具体描述。
3.分支预测的硬件机制
3.1单周期预测器
单周期预测器用于多级预测结构的第一级预测,其使用的数据结构是目标地址寄存器(TAR)。TAR包括四个寄存器,采用全相联的组织结构,能够提供对分支指令的快速预测。TAR由当前指令束(bundle)地址和分支目标地址构成,使用指令束地址进行查找。图4给出了TAR结构示意图。
图3-5TAR结构示意图
其中TAR Data保存预测的分支目标地址,TAR Tag保存相应的指令束地址。由于对TAR的访问是单周
期的,且对TAR的读取和分支指令的发射是同时的,所以在这种情况下流水线没有气泡产生,是零延迟的。当编译器在进行全局指令调度时,在分支指令前几个节拍插入分支预测指令(brp),然后由brp指令中的提示信息来修改TAR。
通过这种硬件和编译器结合的机制就实现了高预测率的单周期预测器。
3.2两级自适应的分支预测器和返回预测器
两级自适应的分支预测器和返回预测器用于多级预测结构的第二级预测。其硬件结构包括BPT、MBPT、目标地址缓存(TAC)和RSB,其中BPT、MBPT和TAC用于单分支和多分支类型的预测,而RSB用于调用返回分支类型的预测。
两级自适应的分支预测器不仅使用本条指令的执行信息,而且利用邻近分支指令的执行情况来更准确预测当前指令的执行结果。其第一级历史被记录在一个或多个称为分支历史寄存器(BHR)的K位移位寄存器中。其第二级历史被记录在一个或多个由2位饱和计数器组成的模式历史表(PHT)中。用第一级表信息索引到第二级历史表,在根据所选择2位饱和计数器的指示做出方向预测。在程序开始执行的时候,分支预测表为空,随着程序的执行分支预测表慢慢被填满,这时候就能够提供相应的分支预测信息。由于分支预测是根据程序执行时候的动态信息进行,所以称这种预测算法为动态预测算法[2]。
返回预测器主要是针对调用返回分支指令的预测。调用返回类型的分支有其自身的特点:调用时即可知道它的返回地址;调用和返回是成对出现的。针对这些特点,我们提供了RSB的栈缓冲硬件机制对调用返回类型的分支预测给予支持。
3.3分支地址计算和修改预测器
第三、第四级分支预测主要用于对先前的预测进行修正,减少流水线的排空时间。
分支地址计算和修改预测器包括两个计算和修改结构:BAC1和BAC2。它们在流水线的第三阶段启动,其修正过程是先获得分支指令的操作码,然后从指令编码中抽取静态的预测信息和地址信息,利用这些信息进行目标地址的计算,根据计算结果修改前端的指令指针IP。
在第三级预测中除了BAC1外,针对循环指令最后一次循环退出时的误预测,使用了循环退出校正器结构对模块调度循环结束条件进行修正,从而保证循环退出预测永远不会失效。这种保证机制需要硬件和软件结合。在循环开始时需用寄存器记录模块调度循环的次数和循环排空的收尾段数,利用这些寄存器记录的值即可对模块调度循环结束条件进行修正。
4.分支的软件提示
rolly分支预测的实现除了需要一定的硬件机制外,也需要相应的软件方法给予支持。
美女与野兽 歌曲软件方法是以编译器提供提示信息的方式实现。在EPIC体系结构中,对于分支来说,编译器提供的软件提示包括:分支目标地址、分支方向的静态预测、以及何时使用动态预测。这些提示与动态预测方法配合使用,对分支预测的硬件结构进行编程。skim
具体实现有三种方式:显式分支预测指令编码中的提示;分支指令编码中的提示;
研究生调剂系统移入分支寄存器指令编码中的提示。分支预测指令brp是一类特殊的指令,由编译器产生,执行产生随后分支指令的地址和分支目标地址,不影响程序的正确性。分支指令的编码中也包含一定的提示信息,这些信息用来预测分支的方向、控制cache的行为。
在处理器中当动态预测失效的时候,就采用这些软件给出的编码提示信息进行静态预测。移入分支寄存器指令的软件提示主要是对分支预测硬件进行更新。
5.结论
处理器指令并行度的提高要求相应的提高分支预测精度类保证性能指标,而处理器指令并行度的提高本身也增加了分支预测设计的难度。这样必然造成了高性能处理器分支预测的硬件开销大幅度增加,分支预测的设计更加复杂。目前,大量工作正在围绕如何提高分支预测精确度和缓解预测延迟展开[3]。总之,分支预测技术研究工作随着高性能处理器的发展更加深入地展开,而且越来越重要。qpr
参考文献
[1]Intel Corporation, Intel Itanium 2 Processor Hardware Developer’s Manual ,2002.
[2] TY.Yeh and Y.N.Patt.Two-level Adaptive Branch Prediction. 24th ACM/IEEE International
Symposium on Microarchitecture,1991
哈利波特 mp3[3] 董建萍 高性能微处理器中的转移预测技术,高性能计算技术,2003.2
作者简介
苏铭, 1974,女,汉族,博士研究生,主要研究方向: 高性能编译技术;
赵荣彩,1957,男,汉族,教授,博士生导师,主要研究方向为:高性能编译技术; Auther’s brief introduction:
Su Ming, female, the doctor, working at high performance technology of compilation;
Zhao Rong-cai, male, doctorial supervir, is engaged in high performance technology of
compilation;
联系方式:
联系人:苏铭;电子邮件:;
联系地址:河南省郑州市经七路长城公寓2号楼2124(450002)mysteriously

本文发布于:2023-07-10 23:49:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1089837.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:预测   分支   指令   结构   地址
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图