首页> 中国专利> 一种支持超标量与超长指令字混合架构处理器的分支预测方法

一种支持超标量与超长指令字混合架构处理器的分支预测方法

摘要

一种支持超标量与超长指令字混合架构处理器的分支预测方法,首先在取指级从BTB表中取得跳转指令所在分发包的NDA,然后根据此NDA来判断包含跳转指令的取指包中跳转指令后面的指令是否会执行,并以valid值标识出来,在分发级根据valid值标识的不同来判断该跳转指令是在超标量还是超长指令字模式下,在超标量模式下,分发包中跳转指令后的指令不能执行,如预测错误则从跳转指令后一条指令重新执行;在超长指令字模式下,分发包中跳转指令后面指令允许和跳转指令并行执行,如预测错误则从下个分发包首地址处重新执行;本发明能使混合架构处理器在两种模式下都能够进行分支预测,在吸收两种模式长处的同时减少了跳转指令周期损失,提高了处理器性能。

著录项

  • 公开/公告号CN104765590A

    专利类型发明专利

  • 公开/公告日2015-07-08

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201510213002.3

  • 申请日2015-04-29

  • 分类号

  • 代理机构西安智大知识产权代理事务所;

  • 代理人贾玉健

  • 地址 100084 北京市海淀区100084信箱82分箱清华大学专利办公室

  • 入库时间 2023-12-18 09:43:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-13

    授权

    授权

  • 2015-08-05

    实质审查的生效 IPC(主分类):G06F9/38 申请日:20150429

    实质审查的生效

  • 2015-07-08

    公开

    公开

说明书

技术领域

本发明涉及电子技术领域,特别涉及一种支持超标量与超长指令字混合 架构处理器的分支预测方法。

背景技术

现代处理器的功能千变万化,应用领域也各不相同,但是追求处理器性 能的提高却是各个领域的共同目标。处理器性能可以由CPU执行时间来衡 量,如下公式:

CPU执行时间=程序的CPU时钟周期数′时钟周期长度

CPU执行时间=程序的CPU时钟周期数

由以上公式可以看出,指令数、CPI(Cycles Per Instruction)、时钟周 期长度共同影响着处理器性能。其中,指令数由指令集系统和编译器决定, CPI由计算机架构决定,时钟周期长度则由计算机硬件技术决定。

流水线技术在现代处理器中普遍使用,此技术将指令执行过程划分为多 个阶段,各个指令执行的不同阶段可以相互重叠执行,这样便提高了流水线 各个单元的利用率,降低了时钟周期数,提高了处理器性能。

为了通过降低CPI来提高处理器性能,必须挖掘程序中的并行性。挖掘 并行性包括指令级并行、线程级并行以及任务级并行,目前最为成熟的技术 当属指令级并行。所谓指令集并行性,是指在程序执行过程中,指令重叠或 并行执行的能力。在挖掘指令级并行性过程中,超标量(Superscalar)技术 和超长指令字(VLIW)技术被广泛应用。

超标量技术是也称动态多发射技术,是在流水线执行过程中,由硬件完 成指令并行调度的技术。这种技术对于编译器要求较低,编程较为简单,软 件的可移植性较强,但是硬件开销较大,可重构性较差,同时,硬件延时、 功耗也随之增大。

超长指令字技术也称静态多发射技术,是由编译器在编译阶段挖掘指令 并行性,完成指令调度的技术。由于超长指令字技术的发射由编译器来决定, 所以并不增加硬件复杂度,但是大大增加了编译器的编译难度,对编译器要 求很高。

设计超标量与超长指令字混合架构的处理器的目的就是吸收两种模式各 自的优点,对于关键性执行次数较多的代码,使用超长指令字模式充分挖掘 指令并行性以提高性能,对于剩余代码,使用超标量模式提高软件的可移植 性。

现代处理器中,流水线技术被广泛应用,在不进行分支预测的情况下, 跳转指令的下一条指令被执行,在执行级发现执行错误,则清空流水线,跳 转至目标地址重新执行,这便带来了几个周期的损失。随着流水线级数的增 加,对于没有分支预测技术的处理器来说,由跳转指令所带来的周期损失给 处理器性能提升带来了严重制约。分支预测技术的出现大大降低了跳转指令 所带来的周期损失,分支预测技术已经成为了现代处理器提高性能的关键技 术。

发明内容

为了克服上述现有技术的缺点,本发明的目的在于提供一种支持超标量 与超长指令字混合架构处理器的分支预测方法,即可以充分发挥超标量与超 长指令字模式的长处,又可以在两种模式下利用分支预测技术提高处理器性 能。

为了实现上述目的,本发明采用的技术方案是:

一种支持超标量与超长指令字混合架构处理器的分支预测方法,包括:

在取指级从分支目标缓冲(BTB,Branch Target Buffer)表中取得跳转 指令所在分发包的下个分发包首地址(NDA,Next Dispatch-packet Address of  branch instruction),根据所述下个分发包首地址来判断包含所述跳转指令的 取指包中所述跳转指令后面的指令是否会执行,并以valid值标识出来;

在分发级根据所述valid值标识的不同来判断所述跳转指令处于超标量 还是超长指令字模式下;

当在超标量模式下,分发包中所述跳转指令后的指令不执行;

当在超长指令字模式下,分发包中所述跳转指令后面指令允许和所述跳 转指令并行执行;

在执行级对分支预测准确性进行判断,如果预测正确,则继续执行,如 果预测错误:

当在超标量模式下,则从所述跳转指令的后一条指令重新执行;

当在超长指令字模式下,则从所述下个分发包首地址处重新执行。

所述根据所述下个分发包首地址来判断包含所述跳转指令的取指包中所 述跳转指令后面的指令是否会执行的方法是:

将一个取指包中下个分发包首地址之后的指令valid置0,其余指令valid 置1,valid为1代表该条指令有效,valid位0代表该条指令无效,即,如果 valid值为0,则该指令不执行,如果valid为1,则该指令执行。

在分发级根据所述valid值标识的不同来判断所述跳转指令处于超标量 还是超长指令字模式下的规则是:

如果在同一个分发包中,跳转指令后面的指令valid值为0,则处在超标 量模式,如果跳转指令后面的指令valid值为1,则为超长指令字模式。

在超标量模式下,所述下个分发包首地址为所述跳转指令后面紧跟的一 条指令的地址;

在超长指令字模式下,所述下个分发包首地址为所述跳转指令所在分发 包的下一个分发包首地址。

与现有技术相比,本发明分支预测方法可以应用于超标量与超长指令字 混合架构的处理器之上,也可以单独应用于超标量架构或超长指令字架构的 处理器,硬件开销较小。

附图说明

图1是本发明实施例双发射超标量架构与六发射超长指令字架构混合处 理器的流水线示意图。

图2是本发明实施例双发射超标量架构与六发射超长指令字架构混合处 理器的硬件结构示意图。

图3是本发明实施方法流程图。

图4是本发明BTB表存储内容示意图。

图5是本发明分发包中NDA所在位置示意图。

图6是本发明取指包中NDA所在位置及valid值设置方法示意图。

具体实施方式

下面结合说明书附图对本发明实施例的具体实施方式做进一步的描述。 下面通过参考附图描述的实施例是示例性的,仅用于解释发明,而不能解释 为对本发明的限制。

为了能对本发明的实施例有更清楚的认识,本发明提出的支持超标量与 超长指令字混合架构处理器的分支预测技术是在双发射超标量架构与六发射 超长指令字架构混合处理器上实施的,所以下面对本发明实施例提出的双发 射超标量架构与六发射超长指令字架构混合处理器的流水线进行简单介绍。 如图1所示,是实施例双发射超标量架构与六发射超长指令字架构混合处理 器的流水线示意图,流水线主要分为取指、分发、解码、扩展四级,在取指 级,每个周期从指令缓存存储器中读取一个256位的取指包,在分发级,每 六条指令生成一个分发包。如图2所示,是实施例双发射超标量架构与六发 射超长指令字架构混合处理器的硬件结构示意图,处理器中包含两个簇,每 个簇包含三个独立的功能单元,包括XA、XM、XD、YA、YM、YD六个功 能单元。对于超标量模式,一次最多允许两条指令并行发射,只有X簇按照 XA、XM、XD的顺序进行分发,由于跳转指令由XD单元分发,所以跳转 指令后面跟随的指令不能与之并行分发。对于超长指令字模式,一次最多允 许六条指令并行发射,并按照XA、XM、XD、YA、YM、YD顺序进行分发, 同一个分发包中跳转指令后面的指令可以并行分发。

如图3所示,是本发明实施例的实施方法流程图,具体实现方法如下:

分支预测器的核心部分是分支目标缓冲BTB(Branch Target Buffer), 在传统BTB表中,存放着不同跳转指令的历史信息,一般包含跳转指令地址 BIA(Branch Instruction Address),跳转目标地址BTA(Branch Target Address) 和分支历史信息BHI(Branch History Information),并且由跳转指令的PC 值进行索引相应的项。本发明设计的预测器在传统预测器BTB表基础上,增 加了跳转指令下一个执行包地址NDA(Next Dispatch-packet Address of  branch instruction)一项,如图4所示。所谓NDA,就是当预测跳转错误时, 处理器要清空流水线,并从跳转指令后正确的位置重新执行,此正确的位置 便是NDA。

NDA值最初是在分发级计算得到的,在分发级,对于分发包中跳转指令 B所处模式进行判断,如果是超标量模式,那么NDA就是跳转指令B后面 紧跟的一条指令的地址,如果是超长指令字模式,那么NDA就是跳转指令B 所在分发包的下一个分发包首地址,如图5所示。

当跳转指令执行过之后,它的跳转信息包括NDA都存储在BTB表中, 在下一次执行此同一条跳转指令的时候,NDA被查出并发挥作用。在取指级, 对一个取指包中每条指令进行遍历,查找其中的跳转指令,如果发现一条跳 转指令,根据它的PC值索引BTB表,查询它的跳转信息,查出它的NDA 值。设定有效信号valid值,valid为1代表该条指令有效,valid位0代表该 条指令无效。将一个取指包中NDA之后的指令valid置0,其余指令valid 置1,如图6所示。对于两种模式,取指包中NDA位置有差异。对于超标量 模式,NDA紧随跳转指令之后,是跳转指令后一条指令的地址;对于超长指 令字模式,NDA不紧随跳转指令之后,其与跳转指令之间的几条指令是可以 与跳转指令并行执行的指令。

当指令跟随流水线进入分发级时,根据NDA位置进行判断,是超标量 模式还是超长指令字模式。如图5所示,是NDA在分发包中的位置。对于 超标量模式,最多双发射,跳转指令后不允许跟随并行执行的指令,所以在 分发包中跳转指令后面指令不发射;对于超长指令字模式,最多六发射,跳 转指令后允许有指令跟随并行执行,所以分发包中跳转指令后面指令可以一 起发射。

当指令进入执行级时,对分支预测准确性进行判断,如果预测正确,则 流水线继续执行,如果预测错误,流水线被清空,同时程序计数器改写为NDA 地址,从NDA处重新执行。

综上所述,本发明设计的一种支持超标量与超长指令字混合架构处理器 的分支预测技术,可以充分发挥双模式各自优势的同时,对跳转指令进行分 支预测,在发挥处理器本身效率优势的同时,增加很小的硬件开销,得到了 较大的性能提升。

以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应该以权利要求所界定的保护范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号