分支预测方法及装置、处理器制造方法及图纸

技术编号:5042097 阅读:221 留言:0更新日期:2012-04-11 18:40
一种分支预测方法及装置、处理器。所述分支预测方法包括:在取指的同时,以指令地址中的j位地址数据索引其历史模式,获得对应的k位历史模式数据;将指令的j位地址数据中的i位地址数据和k位历史模式数据进行异或运算获得n位运算结果;以n位运算结果索引所述指令在所述历史模式下的历史信息;以索引获得的历史信息数据对所述指令的下一个取指地址进行预测。所述分支预测方法及装置、处理器解决例如GAs、Gshare实现对不依赖统一历史模式而只依赖自身历史模式的情况预测不准的问题,也无需如GAs、PAs实现需要庞大的饱和计数器阵列来保存历史信息,节省了硬件开销及访问延时。

【技术实现步骤摘要】

本专利技术涉及数据处理
,特别涉及分支预测方法及装置、处理器
技术介绍
目前,分支预测技术在开发处理器指令集并行(ILP)中起到了重要的作用,且指 令流水线级数越多,分支预测技术对处理器性能的影响越大。现有技术中采用的分支预测技术可划分为静态预测技术和动态预测技术。而动态 预测技术又可划分为一级表预测技术和两级自适应表预测技术。一级表预测技术一般是基于某条分支指令有限的历史信息进行预测的。例如,参 照图1所示,所述的一级表预测技术通过索引历史信息表10中分支指令地址对应的饱和计数器11、12......Ia的值来进行预测。假设所述饱和计数器11、12......la(a = 21,i为分支指令地址位数)是2bits的饱和计数器,则饱和计数器的各个值可分为00- “不发生”、 01- “弱不发生”、10- “弱发生”、11- “发生”四个状态。饱和计数器的训练方法为实际跳 转发生一次,计数器+1,11为饱和值再+1还是等于11,而实际跳转不发生一次,计数器-1, 00为饱和值再-1还是等于00。由此可以看到,对于2bits的饱和计数器,一般只对前两次 的历史信息有记忆,没有考虑分支执行的上下文信息,对于类似一次跳转一次不跳转的分 支指令则会形成颠簸,特别是饱和计数器的值对应“弱发生”和“弱不发生”状态时,对后续 一次跳转发生一次跳转不发生的程序轨迹可能每次都会预测错。例如,假定分支指令的程序轨迹为一次跳转发生,一次跳转不发生,当前2bits的 饱和计数器值为“01”,则根据当前饱和计数器的值预测分支指令跳转不发生,但实际分支 指令跳转为发生,则饱和计数器的值+1,其值修改为“10”。下一次预测时,根据饱和计数器 的值“ 10”就会预测分支指令跳转发生,但实际分支指令跳转为不发生。基于一级表预测技术的不足,现有大多采用两级自适应表预测技术。第一级表为 分支历史模式表,用于保存每条或每组分支指令的历史模式,其包括1个或多个分支历史 模式移位寄存器(BHSR),第二级第为模式历史信息表(PHT),用于保存每条分支指令在特 定历史模式下的历史信息,由饱和计数器阵列组成。其中,BHSR的实现有两种选择统一(G)方式和单独或单组(P)方式,而PHT的实 现有三种选择统一(g)方式、单独(P)方式和共享(S)方式。由于BHSR的单独实现,即每 条分支指令对应一个BHSR组成一个以指令全地址为索引的BHSR的阵列,其硬件代价实在 太大,基于目前的工艺只能说是一种理论上的方案,所以BHSR的单独或单组(P)方式通常 指的是一组分支指令共享一个BHSR,构成一个用部分指令地址为索引的BHSR的阵列。总结两级自适应表预测技术现有的实现中,值得研究的有5种实现l)GAg 统一的 BHSR、统一的 PHT 表参照图2所示,该实现是以统一的历史信息移位寄存器20中保存的所有分支指令统一的历史模式索引模式历史信息表30中相应饱和计数器301、302...... 30b(b = 2k,k为历史模式位数)中保存的历史信息,以此对下一条分支指令进行预测。该实现的优点在于节省资源,其资源消耗和一级表预测技术差不多。但该实现的缺点在于只反应了程序中分 支指令的全局规律,对于不依赖于统一历史模式而只依赖于自身历史模式的情况,不同分 支指令的历史信息会相互影响,从而降低预测精度。2) PAg 单独的 BHSR,统一的 PHT 表参照图3所示,该实现根据每条(每组)分支指令的历史模式和模式对应的统一 的历史信息,对下一条分支指令进行预测。即,分支历史信息表21中的历史信息移位寄存器211、212......21c(c = 2i,i为分支指令地址位数)中分别保存不同的历史模式,以每条(每组)分支指令相应的历史信息移位寄存器211、212......21c中保存的历史模式来索引模式历史信息表31中相应饱和计数器311、312......31d(d = 2k,k为历史模式位数)中保存的历史信息。该实现的优点在于每条(每组)分支指令的历史模式分开保存,对于 不依赖于统一历史模式而只依赖于自身历史模式的情况,其预测精确度比GAg实现方式有 所提高,而且资源适中。但该实现的缺点在于不同分支指令在相同历史模式下的历史信息 会相互影响,从而降低预测精度。3) PAs 单独的BHSR,分组共享的PHT表参照图4所示,该实现根据每条(每组)分支指令的历史模式和模式对应的每条 (每组)分支指令的历史信息,对下一条分支指令进行预测。即,分支历史信息表22中的历史信息移位寄存器221、222...... 22e(e = 2S i为分支指令地址位数)中分别保存不同的历史模式,以每组分支指令相应的历史信息移位寄存器211、212......21e中保存的历史模式以及每组分支指令地址共同来索引模式历史信息表32中相应饱和计数器321......32f......32g......32g+f(f = 21,!为分支指令地址位数;g = 2k,k为历史模式位数,饱和计数器的总数为2iX2k)中保存的历史信息。该实现的优点在于不同分支指令的历史模式 和历史信息都完全分开,其预测精度非常高。但该实现的缺点在于模式历史信息表32中 饱和计数器阵列的面积相当庞大,并且延时开销也太大。4) GAs 统一的BHSR,分组共享的PHT表参照图5所示,该实现根据所有分支指令统一的历史模式和模式对应的每组分支 指令的历史信息,对下一条分支指令进行预测。即以统一的历史信息移位寄存器23中保存 的所有分支指令统一的历史模式以及每组分支指令地址共同来索引模式历史信息表33中相应饱和计数器331...... 33h......33j......32j+h(h = 21, i为分支指令地址位数;j= 2k,k为历史模式位数,饱和计数器的总数为2iX2k)中保存的历史信息。该实现的优点 在于消除了不同组分支指令在相同历史模式下的历史信息间的相互影响,所以预测精度 比GAg高。该实现的缺点在于①对于不依赖于统一历史模式而只依赖于自身历史模式的 情况预测不准确。②模式历史信息表33中饱和计数器阵列的面积仍然过于庞大,延时开销 也仍然很大。5) Gshare 统一的BHSR,分组共享的PHT小表参照图6所示,该实现与GAs类似,也以统一的历史信息移位寄存器23中保存所 有分支指令统一的历史模式。不同的是通过将分支指令地址的i位数据和历史信息移位 寄存器23的k位历史模式数据在计算单元25处进行杂凑(hash)计算,得出的结果为1位 的数据(假设1=嫩乂{1,幻),用1位的数据去索引模式历史信息表34中相应饱和计数器 341,342...... 3^^ = 21)中保存的历史信息。由于杂凑计算的结果中既包含了历史模式信息,又包含了分支指令地址信息,所以不同组分支指令不会相互影响,起到了分组共享模 式历史信息表的效果,但又控制了模式历史信息表的大小。所以,该实现的优点在于只用 一个统一的k位历史信息移位寄存器23和一个很小的历史信息表34,就可以获得同GAs相 当的预测精度。但该实现的缺点由于所有分支指令对应同一个历史模式,所以对于不依赖 于统一历史模式而只依赖于自身历史模式的情况预测仍然不准确。本文档来自技高网...

【技术保护点】
一种分支预测方法,其特征在于,包括:在取指的同时,以指令地址中的j(j=1,2,3……N)位地址数据索引其历史模式,获得对应的k(k=1,2,3……N)位历史模式数据;将所述指令的j位地址数据中的i(i=1,2,3……j)位地址数据和所述k位历史模式数据进行异或运算获得n(n≤MAX{i,k})位运算结果;以所述n位运算结果索引所述指令在所述历史模式下的历史信息;以索引获得的历史信息数据对所述指令的下一个取指地址进行预测。

【技术特征摘要】

【专利技术属性】
技术研发人员:高剑刚黄永勤张琦滨李强袁爱东严华锦刘杰
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:32[中国|江苏]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1