CN102053818B - 分支预测方法及装置 - Google Patents

分支预测方法及装置 Download PDF

Info

Publication number
CN102053818B
CN102053818B CN200910198355.5A CN200910198355A CN102053818B CN 102053818 B CN102053818 B CN 102053818B CN 200910198355 A CN200910198355 A CN 200910198355A CN 102053818 B CN102053818 B CN 102053818B
Authority
CN
China
Prior art keywords
historical
data
instruction
historical pattern
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910198355.5A
Other languages
English (en)
Other versions
CN102053818A (zh
Inventor
高剑刚
黄永勤
张琦滨
李强
袁爱东
严华锦
刘杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN200910198355.5A priority Critical patent/CN102053818B/zh
Publication of CN102053818A publication Critical patent/CN102053818A/zh
Application granted granted Critical
Publication of CN102053818B publication Critical patent/CN102053818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

分支预测方法及装置
技术领域
本发明涉及数据处理技术领域,特别涉及分支预测方法及装置、处理器。 
背景技术
目前,分支预测技术在开发处理器指令集并行(ILP)中起到了重要的作用,且指令流水线级数越多,分支预测技术对处理器性能的影响越大。 
现有技术中采用的分支预测技术可划分为静态预测技术和动态预测技术。而动态预测技术又可划分为一级表预测技术和两级自适应表预测技术。 
一级表预测技术一般是基于某条分支指令有限的历史信息进行预测的。例如,参照图1所示,所述的一级表预测技术通过索引历史信息表10中分支指令地址对应的饱和计数器11、12......1a的值来进行预测。假设所述饱和计数器11、12......1a(a=2i,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种实现: 
1)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=2i,i为分支指令地址位数)中分别保存不同的历史模式,以每组分支指令相应的历史信息移位寄存器211、212......21e中保存的历史模式以及每组分支指令地址共同来索引模式历史信息表32中相应饱和计数器321......32f......32g......32g+f(f=2i,i为分支指令地址位数;g=2k,k为历史模式位数,饱和计数器的总数为2i×2k)中保存的历史信息。该实现的优点在于:不同分支指令的历史模式和历史信息都完全分开,其预测精度非常高。但该实现的缺点在于:模式历史信息表32中饱和计数器阵列的面积相当庞大,并且延时开销也太大。 
4)GAs:统一的BHSR,分组共享的PHT表 
参照图5所示,该实现根据所有分支指令统一的历史模式和模式对应的每组分支指令的历史信息,对下一条分支指令进行预测。即以统一的历史信息 移位寄存器23中保存的所有分支指令统一的历史模式以及每组分支指令地址共同来索引模式历史信息表33中相应饱和计数器331......33h......33j......32j+h(h=2i,i为分支指令地址位数;j=2k,k为历史模式位数,饱和计数器的总数为2i×2k)中保存的历史信息。该实现的优点在于:消除了不同组分支指令在相同历史模式下的历史信息间的相互影响,所以预测精度比GAg高。该实现的缺点在于:①对于不依赖于统一历史模式而只依赖于自身历史模式的情况预测不准确。②模式历史信息表33中饱和计数器阵列的面积仍然过于庞大,延时开销也仍然很大。 
5)Gshare:统一的BHSR,分组共享的PHT小表 
参照图6所示,该实现与GAs类似,也以统一的历史信息移位寄存器23中保存所有分支指令统一的历史模式。不同的是:通过将分支指令地址的i位数据和历史信息移位寄存器23的k位历史模式数据在计算单元25处进行杂凑(hash)计算,得出的结果为l位的数据(假设l=MAX{i,k}),用l位的数据去索引模式历史信息表34中相应饱和计数器341、342......34m(m=2l)中保存的历史信息。由于杂凑计算的结果中既包含了历史模式信息,又包含了分支指令地址信息,所以不同组分支指令不会相互影响,起到了分组共享模式历史信息表的效果,但又控制了模式历史信息表的大小。所以,该实现的优点在于:只用一个统一的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位运算结果索引所述指令在所述历史模式下的历史信息; 
以索引获得的历史信息数据对所述指令的下一个取指地址进行预测。 
相应地,本发明还提供一种分支预测装置,包括: 
历史模式存储器,包括多个存储单元,每个存储单元用于保存每条或每组指令的历史模式数据,所述历史模式数据为k位数据; 
模式历史信息存储器,包括多个存储单元,每个存储单元用于保存每条或每组指令在特定历史模式下的历史信息数据; 
第一索引单元,在取指的同时,以指令地址中的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位异或运算结果索引模式历史信息存储器,获得所述指令在所述k位历史模式数据对应的历史模式下的历史信息数据; 
预测单元,以第二索引单元获得的历史信息数据对所述指令的下一个取指地址进行预测。 
相应地,本发明还提供一种包括上述分支预测装置的处理器。 
与现有技术相比,上述分支预测方法及装置、处理器具有以下优点:通过将指令地址和指令的历史模式做异或运算后对历史信息进行索引,以索引的结果进行预测。由于这样的索引既包含了指令的地址信息,又包含指令的历史模式信息,因此既能区分不同指令的历史信息,又能区分不同历史模式的历史信息,从而有效地解决了现有技术例如GAg、Gshare实现使用统一历史模式进行预测的缺点,即对于不依赖于统一历史模式而只依赖于自身历史模式的情况预测不准确。 
并且,上述分支预测装置中的模式历史信息存储器,其最少只需2n个存储单元,就可保存指令在所有历史模式下的历史信息,其无需如GAs、PAs实现中需要庞大的(2j×2n个)饱和计数器阵列来保存历史信息,因而节省了模式历史信息存储器的大小,从而也减小了对模式历史信息存储器的访问延时。 
附图说明
图1是现有技术一级表预测技术的一种实施方式简易示意图; 
图2~图6是现有技术两级自适应表预测技术的各种实施方式简易示意图; 
图7是本发明分支预测方法的一种实施方式流程图; 
图8是本发明分支预测装置的一种实施例结构示意图。 
具体实施方式
参照图7所示,本发明分支预测方法的一种实施方式包括: 
步骤s1,在取指的同时,以指令地址中的j(j=1,2,3......N)位地址数据索引其历史模式,获得对应的k(k=1,2,3......N)位历史模式数据; 
步骤s2,将所述指令的j位地址数据中的i(i=1,2,3......j)位地址数据和所述k位历史模式数据进行异或运算获得n(n≤MAX{i,k})位运算结果; 
步骤s3,以所述n位运算结果索引所述指令在所述历史模式下的历史信息; 
步骤s4,以索引获得的历史信息数据对所述指令的下一个取指地址进行预测。 
上述分支预测的实施方式中,先以指令地址中的j位地址数据索引获得所述指令的历史模式对应的k位历史模式数据,再通过将所述指令的j位地址数据中的i位地址数据和所述指令的k位历史模式数据进行异或运算,来获得同时包含指令的地址信息及指令的历史模式信息的索引信息。此索引信息中,指令的历史模式信息可用于区分不同历史模式下的历史信息,而指令的地址信息则可在历史模式相同时区分不同指令的历史信息。因此,以此索引信息索引获得的历史信息进行预测可以有效地解决现有技术对于不依赖于统一历史模式而只依赖于自身历史模式的情况预测不准确的问题,并且也有效地解决了不同指令在相同历史模式下的历史信息会相互影响的问题。 
参照图8所示,本发明分支预测装置的一种实施例包括: 
历史模式存储器400,包括存储单元401、402......40n,每个存储单元用于保存每条或每组指令的历史模式数据,所述历史模式数据为k位数据; 
模式历史信息存储器700,包括存储单元701、702......70p,每个存储单元用于保存每条或每组指令在特定历史模式下的历史信息数据; 
第一索引单元501,在取指的同时,以指令地址中的j(j=1,2,3......N)位地址数据索引历史模式存储器400,获得所述指令对应的k(k=1,2,3......N) 位历史模式数据; 
运算单元600,将所述指令的j位地址数据中的i(i=1,2,3......j)位地址数据与第一索引单元501获得的所述指令的k位历史模式数据进行异或运算,获得n(n≤MAX{i,k})位运算结果; 
第二索引单元502,以运算单元600获得的n位异或运算结果索引模式历史信息存储器700,获得所述指令在所述k位历史模式数据对应的历史模式下的历史信息数据; 
预测单元800,以第二索引单元502获得的历史信息数据对所述指令的下一个取指地址进行预测; 
第一更新单元901,根据分支指令的执行结果对所述指令对应的历史模式存储器400中相应存储单元保存的历史模式数据进行更新; 
第二更新单元902,根据分支指令的执行结果对历史信息存储器700中相应存储单元保存的所述指令在原历史模式下的历史信息数据进行更新。 
其中,所述历史模式存储器400中存储单元的个数可以大于或等于2j,所述模式历史信息存储器700中存储单元的个数可以大于或等于2n,所述模式历史信息存储器700中的存储单元保存的历史信息数据可以为2位数据。 
此外,在上述分支预测装置以硬件形式实现时,第一索引单元501与历史模式存储器400可集成为一个统一的存储器,第一索引单元501作为该存储器的读控制逻辑。同理,第二索引单元502与模式历史信息存储器700也可集成为一个统一的存储器,第二索引单元502作为该存储器的读控制逻辑。 
本发明还提供一种包括上述实施例的分支预测装置的处理器。 
以下基于上述分支预测装置的实施例,对分支预测的过程作进一步说明。 
在每次取指的同时,第一索引单元501以指令地址中的j位地址数据索引 历史模式存储器400,若索引命中,则说明该指令为分支指令,且已读取到所述分支指令的对应的历史模式数据。假设当前分支指令为Br0。则当第一索引单元501以分支指令Br0地址中的j位地址数据索引历史模式存储器400命中时,第一索引单元501从历史模式存储器400中取出与分支指令Br0对应的k位历史模式数据BHSR(Br0),并将之传输至运算单元600。 
运算单元600将第一索引单元501传输的分支指令Br0的k位历史模式数据BHSR(Br0)与所述j位地址数据中的i位地址数据进行异或运算,获得n位异或运算结果。根据前述说明,所述n位异或运算结果既包含了分支指令Br0的部分地址信息(由所述i位地址数据提供),又包含了分支指令Br0的历史模式信息(由所述k位历史模式数据BHSR(Br0)提供)。所述运算单元600获得n位异或运算结果后,将之传输至第二索引单元502。 
第二索引单元502在获得所述n位异或运算结果后,根据所述n位异或运算结果索引模式历史信息存储器700,取出与n位异或运算结果对应的存储单元保存的历史信息数据。以所述存储单元为2位饱和计数器为例,所述历史信息数据就是所述2位饱和计数器的值,其对应所述分支指令Br0在所述历史模式下的历史信息。第二索引单元502获得所述2位饱和计数器值后,将之传输至预测单元800。 
预测单元800在获得所述分支指令Br0对应的2位饱和计数器值后,对分支指令Br0的下一个取指地址进行预测。如前述说明的,饱和计数器值为不发生或弱不发生(00-“不发生”、01-“弱不发生”)时,就预测跳转不发生,而饱和计数器值为弱发生或发生(10-“弱发生”、11-“发生”)时,就预测跳转发生。预测单元800还会将预测结果随着所述分支指令Br0传输至执行站台。 
所述分支指令Br0经过执行站台执行后,执行站台根据分支指令Br0执 行的结果,以及伴随本分支指令Br0的预测结果,来决定预测是否失败。若预测失败,则执行站台需要通知取指站台重新从计算的地址开始取指,并通知分支预测装置进行更新。执行站台会将更新请求和对应的更新数据(包括1位的跳转方向信息和若干位的跳转地址)传输至第一更新单元901和第二更新单元902。 
而第一更新单元901和第二更新单元902基于更新请求,根据所获得的更新数据中的跳转方向信息分别对历史模式存储器400中保存的分支指令Br0的历史模式数据进行更新,以及对模式历史信息存储器700中保存的分支指令Br0在原历史模式下的历史信息数据进行更新(通常将此更新过程称之为训练)。 
所述训练过程如下:第一更新单元901从第一索引单元501处获得分支指令Br0的原历史模式数据BHSR(Br0),若分支指令Br0的执行结果是跳转发生,则第一更新单元901将Br0的原历史模式数据BHSR(Br0)的值进行如下修改:BHSR(Br0)<<1|1’b1,即原BHSR(Br0)的值左移1位,并在最低位拼上“1”,生成新的BHSR(Br0)的值,并将该新的BHSR(Br0)的值写入历史模式存储器400中保存分支指令Br0的历史模式数据的存储单元;若Br0的执行结果是转移不发生,则第一更新单元901将BHSR(Br0)的值进行如下修改:BHSR(Br0)<<1|1’b0,即原BHSR(Br0)的值左移1位,并在最低位拼上“0”,生成新的BHSR(Br0)的值,并将该新的BHSR(Br0)的值写入历史模式存储器400中保存分支指令Br0的历史模式数据的存储单元。 
第二更新单元902从第二索引单元502处获得分支指令Br0在原历史模式下的历史信息数据,若分支指令Br0的执行结果为跳转发生,则第二更新单元902将该历史信息数据的值+1后生成新的历史信息数据写入模式历史信息存储器700中相应存储单元,即以新的历史信息数据更新2位饱和计数器的值;若分支指令Br的执行结果为跳转不发生,则第二更新单元902将该历 史信息数据的值-1后生成新的历史信息数据写入模式历史信息存储器700中相应饱和计数器存储单元,即以新的历史信息数据更新2位饱和计数器的值。 
此外,根据处理器设计的目标(主频、性能、面积、功耗等)和不同应用程序的特点,用于索引历史模式数据的分支指令的地址位数j、历史模式数据的位数k、与历史模式数据一起供运算单元600运算的分支指令的地址位数i以及运算单元600的运算方式都可以进行相应配置。 
更具体地说,根据实现代价评估和可接受程度,用于索引历史模式存储器400的分支指令地址位数j可以配置,j的值越接近于指令全地址的长度,预测精度越高,但相应地,历史模式存储器400的容量会成2的幂次方增长,面积和延时开销都会随之增长。此外,在所述分支指令地址中选取j位地址数据可以基于分支指令的取指地址跳转的密度进行,当跳转密度较高时,可以选取分支指令地址的低段地址,当跳转密度较低时,可以选取分支指令地址的高段地址。同样,分支指令的地址位数i、历史模式数据的位数k也可以按需进行配置,i、k值的选择同样也关系着模式历史信息存储器700的面积和访问延时。 
根据应用程序的不一样,结合实现延时代价,运算单元600的异或运算方式也可以配置:假设进行异或运算的历史模式数据BHSR1和部分分支指令地址PC1都是10bits,则异或运算可以直接是 BHSR 1 [ 9 : 0 ] ⊕ PC 1 [ 9 : 0 ] , 将获得10位运算结果的作为第二索引单元502的索引位,第二索引单元502就可以所述10位索引位索引模式历史信息存储器700。 
所述异或运算也可以是 { BHSR 1 [ 9 : 5 ] ⊕ PC 1 [ 4 : 0 ] , BHSR 1 [ 4 : 0 ] } ,具体地说,将BHSR1的高5位[9:5]与PC1的低5位[4:0]异或运算获得的5位数据作为第二索引单元502的索引位的高5位,BHSR1的低5位[4:0]直接作为第二索引单元502的索引位的低5位。 
上述各种索引位的不同异或运算方法是为了避免不同分支指令在不同历史模式下映射到同一个历史信息条目中去的别名情况。因此,选择一个合理的运算方式可以有效减小别名的概率。所述运算方式也可以根据预先尝试多种配置并根据各种配置相应的预测结果来确定一种性能最好的配置。 
基于以上举例说明并对比现有技术可以看到,上述举例的分支预测过程是一种接近Gshare的硬件代价但可以达到近似PAs预测精度的实现,同时也可以弥补Gshare依赖于全局自适应的局限(Gshare属于一种全局自适应的两级预测算法,它的适用范围有限,对整数类课题预测效果较好,但对浮点类课题预测效果不好),所述分支预测方法减小了不同分支指令间的相互影响,又不会大幅增加历史信息的保存容量。 
此外还可看到,上述举例的分支预测过程可以解决Gshare的问题,同样也可以解决GAg、PAg的问题,所以在预测精度上比GAg、PAg、Gshare高。同时实现代价又比GAs和PAs小很多。 
虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。 

Claims (11)

1.一种分支预测方法,其特征在于,包括:
在取指的同时,以指令地址中的j位地址数据索引其历史模式,获得所述指令的历史模式对应的k位历史模式数据,其中,j=1,2,3……N,k=1,2,3……N;
将所述指令的j位地址数据中的i位地址数据和所述k位历史模式数据进行异或运算获得n位运算结果,其中,i=1,2,3……j,n≤MAX{i,k};
以所述n位运算结果索引所述指令在所述历史模式下的历史信息;
以索引获得的历史信息数据对所述指令的下一个取指地址进行预测。
2.如权利要求1所述的分支预测方法,其特征在于,还包括:根据所述指令的执行结果更新所述指令对应的历史模式数据以及所述指令在原历史模式下的历史信息数据。
3.如权利要求2所述的分支预测方法,其特征在于,当执行结果显示跳转不发生时,将所述指令在原历史模式下的历史信息数据的值-1;当执行结果显示跳转发生时,将所述指令在原历史模式下的历史信息数据的值+1。
4.如权利要求2所述的分支预测方法,其特征在于,当执行结果显示跳转不发生时,将所述k位历史模式数据的值左移1位,并在最低位补0;当执行结果显示跳转发生时,将所述k位历史模式数据的值左移1位,并在最低位补1。
5.一种分支预测装置,其特征在于,包括:
第一索引单元,在取指的同时,以指令地址中的j位地址数据索引历史模式存储器,获得所述指令的历史模式对应的k位历史模式数据,其中,j=1,2,3……N,k=1,2,3……N;
运算单元,将所述指令的j位地址数据中的i位地址数据与第一索引单元获得的所述指令的k位历史模式数据进行异或运算,获得n位运算结果,其中,i=1,2,3……j,n≤MAX{i,k};
第二索引单元,以运算单元获得的n位异或运算结果索引模式历史信息存储器,获得所述指令在所述k位历史模式数据对应的历史模式下的历史信息数据;
预测单元,以第二索引单元获得的历史信息数据对所述指令的下一个取指地址进行预测。
6.如权利要求5所述的分支预测装置,其特征在于,还包括:
第一更新单元,根据指令的执行结果对所述指令对应的历史模式存储器中相应存储单元保存的历史模式数据进行更新;
第二更新单元,根据指令的执行结果对模式历史信息存储器中相应存储单元保存的所述指令在原历史模式下的历史信息数据进行更新。
7.如权利要求6所述的分支预测装置,其特征在于,当执行结果显示跳转不发生时,第一更新单元将所述指令的k位历史模式数据的值左移1位,并在最低位补0;当执行结果显示跳转发生时,第一更新单元将所述指令的k位历史模式数据的值左移1位,并在最低位补1。
8.如权利要求6所述的分支预测装置,其特征在于,当执行结果显示跳转不发生时,第二更新单元将所述指令在原历史模式下的历史信息数据的值-1;当执行结果显示跳转发生时,第二更新单元将所述指令在原历史模式下的历史信息数据的值+1。
9.如权利要求5所述的分支预测装置,其特征在于,所述历史模式存储器中至少包括2j个存储单元,每个存储单元用于保存每条或每组指令的历史模式数据。
10.如权利要求5所述的分支预测装置,其特征在于,所述模式历史信息存储器中至少包括2n个存储单元,每个存储单元用于保存每条或每组指令在特定历史模式下的历史信息数据。
11.如权利要求5所述的分支预测装置,其特征在于,所述历史信息数据为2位数据。
CN200910198355.5A 2009-11-05 2009-11-05 分支预测方法及装置 Active CN102053818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910198355.5A CN102053818B (zh) 2009-11-05 2009-11-05 分支预测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910198355.5A CN102053818B (zh) 2009-11-05 2009-11-05 分支预测方法及装置

Publications (2)

Publication Number Publication Date
CN102053818A CN102053818A (zh) 2011-05-11
CN102053818B true CN102053818B (zh) 2014-07-02

Family

ID=43958179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910198355.5A Active CN102053818B (zh) 2009-11-05 2009-11-05 分支预测方法及装置

Country Status (1)

Country Link
CN (1) CN102053818B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306093B (zh) * 2011-08-04 2014-03-05 北京北大众志微系统科技有限责任公司 实现现代处理器间接转移预测的装置及方法
CN102520914A (zh) * 2011-11-04 2012-06-27 杭州中天微系统有限公司 支持多路并行预测的分支预测装置
US20170060591A1 (en) * 2015-08-26 2017-03-02 Huawei Technologies Co., Ltd. System and method for multi-branch switching
CN109308191B (zh) * 2017-07-28 2021-09-14 华为技术有限公司 分支预测方法及装置
WO2019183877A1 (zh) * 2018-03-29 2019-10-03 深圳市大疆创新科技有限公司 分支预测的方法与装置
CN111176729A (zh) * 2018-11-13 2020-05-19 深圳市中兴微电子技术有限公司 一种信息处理方法、装置及计算机可读存储介质
CN113495674B (zh) 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
CN113495676B (zh) * 2020-04-01 2023-09-29 长鑫存储技术有限公司 读写方法及存储器装置
CN111459549B (zh) 2020-04-07 2022-11-01 上海兆芯集成电路有限公司 具有高度领先分支预测器的微处理器
CN112328306B (zh) * 2020-11-06 2023-11-24 海光信息技术股份有限公司 一种分支预测器的隔离方法、预测方法及分支预测器
CN117389629B (zh) * 2023-11-02 2024-06-04 北京市合芯数字科技有限公司 分支预测方法、装置、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1947093A (zh) * 2004-04-21 2007-04-11 富士通株式会社 分支预测装置、分支预测方法以及处理器
CN101256481A (zh) * 2007-03-02 2008-09-03 富士通株式会社 数据处理器以及存储器读激活控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1947093A (zh) * 2004-04-21 2007-04-11 富士通株式会社 分支预测装置、分支预测方法以及处理器
CN101256481A (zh) * 2007-03-02 2008-09-03 富士通株式会社 数据处理器以及存储器读激活控制方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一种基于综合历史信息的SMT结构分支预测算法;王晶等;《计算机科学》;20080225(第02期);第259-262页 *
基于Alpha的分簇超标量处理器IU单元的设计;甘初晖;《中国优秀硕士学位论文全文数据库》;20081202(第02期);第14-16页 *
王晶等.一种基于综合历史信息的SMT结构分支预测算法.《计算机科学》.2008,(第02期),第259-262页.
甘初晖.基于Alpha的分簇超标量处理器IU单元的设计.《中国优秀硕士学位论文全文数据库》.2008,(第02期),第14-16页.

Also Published As

Publication number Publication date
CN102053818A (zh) 2011-05-11

Similar Documents

Publication Publication Date Title
CN102053818B (zh) 分支预测方法及装置
US11132300B2 (en) Memory hierarchy using page-based compression
US8145985B2 (en) Error detection schemes for a unified cache in a data processing system
US9396119B2 (en) Device for controlling the access to a cache structure
US20120054468A1 (en) Processor, apparatus, and method for memory management
Mittal et al. A survey of encoding techniques for reducing data-movement energy
US20150019813A1 (en) Memory hierarchy using row-based compression
TWI600015B (zh) 用於相變記憶體與開關(pcms)之元資料管理及支援技術
JP2004157593A (ja) 多ポート統合キャッシュ
CN103927270A (zh) 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
US20130159820A1 (en) Dynamic error handling using parity and redundant rows
CN102543209A (zh) 多通道闪存控制器的纠错装置、方法及多通道闪存控制器
CN107180001A (zh) 访问动态随机存储器dram的方法和总线
CN103488585B (zh) 用于实现可重构系统中配置信息缓存更新的控制器
CN105573680A (zh) 副本数据的存储方法及装置
US8902625B2 (en) Layouts for memory and logic circuits in a system-on-chip
US11687407B2 (en) Shared error correction code (ECC) circuitry
US9348766B2 (en) Balanced P-LRU tree for a “multiple of 3” number of ways cache
US8914712B2 (en) Hierarchical error correction
JP6850888B2 (ja) 分岐予測のために分岐履歴を判別する方法及びデバイス
US20060069901A1 (en) Apparatus and method for an address generation circuit
US20080276046A1 (en) Architecture for a Multi-Port Cache Memory
WO2023129813A1 (en) Associative computing for error correction
CN116382888A (zh) 跨平面的冗余计算
KR102516882B1 (ko) 캐시 관리 방법 및 이를 위한 컴퓨팅 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant