当前位置: 首页 > 专利查询>孙瑞琛专利>正文

一种分支预测方法及装置制造方法及图纸

技术编号:6530490 阅读:174 留言:0更新日期:2012-04-11 18:40
一种分支预测装置,作为处理器的一个组成部分,按照处理器的操作过程,在指令预取时进行分支预测操作,所述指令预测装置包括:指令存储装置,用来存储将要执行的指令代码;指令预取装置,该装置将指令代码从指令存储装置中读取出来,并传送给指令译码装置;指令译码装置,该装置对指令代码进行译码分析,并发送给相应的执行装置;程序控制指令执行装置,用于执行程序控制指令代码,并将执行结果反馈给指令预取装置;非程序控制指令执行装置,该装置用来执行除程序控制指令之外的其它指令代码。

【技术实现步骤摘要】

本专利技术涉及微处理器和计算机系统领域,具体地说,涉及面向处理器的取指处理装置。
技术介绍
随着处理器技术的进步,处理器的速度不断提高,性能不断增强,同时用户对计算机或者处理器的要求越来越高。由于指令预取的效率对处理器性能影响很大,因此提高计算机的指令预取的效率尤其重要。
技术实现思路
本专利技术提出一种分支预测装置。本专利技术的分支预测装置是作为处理器的一个组成部分,其执行的过程按照处理器的操作过程进行,在具体实现分支预测的过程,体现出本专利技术的内容。本专利技术的分支预测装置包括指令存储装置,用来存储将要执行的指令代码,该装置接收地址,然后输出存储在该地址处的指令代码;指令预取装置,该装置发出地址给指令存储装置,然后获得存储在该地址处的指令代码,并传送给指令译码装置,同时进行分支预测操作,准备好下一次需要输出的地址;指令译码装置,该装置对指令代码进行译码分析,并发送给相应的执行装置;程序控制指令执行装置,该装置属于执行装置的一种,用于执行程序控制指令代码,并将执行结果反馈给指令预取装置;非程序控制指令执行装置,该装置用来执行除程序控制指令之外的其它指令代码。分支历史表单元,该单元存储最近执行过的K条程序控制指令的分支历史信息;选择预测表单元,该单元存储对正向和反向模式历史表单元的进行选择的记录;正向模式历史表单元,该单元存储实际分支的状态记录,其状态倾向于预测发生跳转;反向模式历史表单元,该单元存储实际分支的状态记录,其状态倾向于预测不发生跳转;地址生成逻辑单元,该单元根据分支预测的结果,生成取指的地址。所述指令预取装置向所述指令存储装置发出地址,然后获得存储在该地址出的所述程序控制指令,并传送给所述指令译码装置,同时所述指令预取装置进行分支预测操作, 准备好下一此需要输出的地址;所述指令译码装置将所述程序控制指令分发给所述程序控制指令装置,然后所述程序控制指令装置根据所述程序控制指令执行程序控制操作,并将结果反馈给所述指令预取装置。根据本专利技术的分支预测按操作可以可分为两大阶段,如图1,第一阶段是对分支进行预测。具体方法以及特征,在于包括以下步骤步骤1,向指令存储装置发出程序控制指令I的存储地址A ;步骤2,根据地址A,查询程序控制指令类型表,找出该地址对应的程序控制指令类型;步骤3,根据该类型,查找分支历史表,找出该类型对应的分支历史信息;步骤4,将步骤3中找出的分支历史信息和地址A进行异或,得到一个值;步骤5,根据步骤4中得到的值,查找选择预测表,获得该值对应的选择值;步骤6,根据步骤5中得到的选择值,从正向模式历史表和反向历史模式表中选出一个表;步骤7,根据步骤4中得到的值,查找步骤6中选择出的模式历史表,获得对应的表项内容,根据该内容即可预测出指令I是否会导致跳转,以及新的分支地址值。分支预测中的第二阶段足指令执行结果反馈,以及对分支历史表、选择预测表、模式历史表进行更新。具体方法以及特征,在于包括以下步骤步骤1,从指令存储装置获取存储在地址A的指令I的指令代码,并传送给指令译码装置;步骤2,指令译码装置将程序控制指令I分发给程序控制指令执行装置;步骤3,程序控制指令执行装置执行指令I,将指令I是否导致了跳转、以及新的分支地址值这些信息反馈回指令预取装置;步骤4,根据步骤3的反馈信息,对分支历史表、选择预测表、模式历史表进行更新。本专利技术根据分支历史信息、指令类型、模式历史信息,提升了预测准确率,提高了处理器的效率。附图说明参照如下附图将更加易于理解本专利技术图1所示为本专利技术提出的分支预测方法总体流程图2所示为用于实现本专利技术的分支预测装置的结构框图3所示为分支预测工作原理示意图4选择预测表的格式;图5选择预测表的更新状态图6正向模式历史表的更新状态图7反向模式历史表的更新状态图8正向模式历史表、反向模式历史表的格式;图9分支历史表的格式;图10程序控制指令类型表的格式;图11程序控制指令类型表、选择预测表、分支历史表、正向模式历史表示例; 图12预测正确时,选择预测表、分支历史表、正向模式历史表的更新; 图13预测错误时,选择预测表、分支历史表、正向模式历史表的更新。具体实施例方式本专利技术的分支预测装置(如图2)包括指令存储装置、指令预取装置、指令译码装置、执行装置、程序控制指令执行装置。所述分支预测是按照处理器的操作过程在指令预取装置中完成。在完成一次分支预测过程中(如图3),首先向指令存储装置发出程序控制指令的地址,同时把地址作索引,查找程序控制指令类型表(格式如图10),获得指令类型;然后将该指令类型作索引,查找分支历史表单元(格式如图9),获得分支历史信息,并和地址进行异或,将异或结果作索引,查找选择预测表单元(格式如图4),获得选择预测状态机值;接着,根据选择预测状态机值,从正向模式历史表单元和反向历史模式表单元中选出一个表单元,并用异或结果作索引,查找选出的模式历史表单元(格式如图8),获得对应的表单元项内容,根据该内容即可预测出指令I是否会 导致跳转,以及新的分支地址值;最后,根据程序控制指令实际执行结果的反馈信息,按照图5的方式,更新选择预测表单元的状态机值,如果选用了正向模式历史表单元,则按照图6的方式,更新正向模式历史表单元的状态机值,否则,按照图7的方式,更新反向模式历史表单元的状态机值。这样就完成了一次分支预测操作。举例说明本专利技术的实施过程假定程序控制指令类型表、选择预测表、分支历史表、正向模式历史表如图11所示,首先指令预取装置向指令存储装置发出了地址A2,查找程序控制指令类型表,得到索引 A2对应的程序控制指令类型为T2 ;查找分支历史表,得到索引T2对应的分支历史信息值为 H2 ;将A2和H2进行异或(本例中假定A2和H2的异或值等于X2),得到值X2 ;查找选择预测表,得到索引X2对应的选择预测状态机值为01,根据图5,在选择预测状态机值为01时应选择正向模式历史表;查找正向模式历史表,得到索引X2对应的正向模式历史状态机值为00,同时得到地址M2,根据图6,在正向模式历史状态机值为00时应当预测程序会跳转, 因此指令预取装置的下一次发出的地址应当是地址M2 ;假如程序在地址A2发生了跳转,即预测成功,则选择预测表、分支历史表、正向模式历史表更新为图12 ;假如程序在地址A2没发生跳转,即预测失败,则选择预测表、分支历史表、正向模式历史表更新为图13。本文档来自技高网...

【技术保护点】
1.一种分支预测装置,所述分支预测装置为处理器的一个组成部分,其特征在于所述分支预测装置包括:指令存储装置,用来存储将要执行的指令代码,该装置接收地址,然后输出存储在该地址处的指令代码;指令预取装置,该装置发出地址给指令存储装置,然后获得存储在该地址处的指令代码,并传送给指令译码装置,同时进行分支预测操作,准备好下一次需要输出的地址;指令译码装置,该装置对指令代码进行译码分析,并发送给相应的执行装置;程序控制指令执行装置,用于执行程序控制指令代码,并将执行结果反馈给指令预取装置;非程序控制指令执行装置,该装置用来执行除程序控制指令之外的其它指令代码。

【技术特征摘要】
1.一种分支预测装置,所述分支预测装置为处理器的一个组成部分,其特征在于所述分支预测装置包括指令存储装置,用来存储将要执行的指令代码,该装置接收地址,然后输出存储在该地址处的指令代码;指令预取装置,该装置发出地址给指令存储装置,然后获得存储在该地址处的指令代码,并传送给指令译码装置,同时进行分支预测操作,准备好下一次需要输出的地址; 指令译码装置,该装置对指令代码进行译码分析,并发送给相应的执行装置; 程序控制指令执行装置,用于执行程序控制指令代码,并将执行结果反馈给指令预取装置;非程序控制指令执行装置,该装置用来执行除程序控制指令之外的其它指令代码。2.根据权利要求1所述的分支预测装置,其特征在于,用于在指令预取时,对程序是否会发生分支进行预测;其中,所述指令预取装置包括分支历史表单元,该单元存储最近执行过的K条程序控制指令的分支历史信息; 选择预测表单元,该单元存储对正向和反向模式历史表单元的进行选择的记录; 正向模式历史表单元,该单元记录实际分支的结果和当前预测状态,其状态倾向于预测发生跳转;反向模式历史表单元,该单元记录实际分支的结果和当前预测状态,其状态倾向于预测不发生跳转;地址生成逻辑单元,该单元根据分支预测的结果,生成取指的地址。3.根据权利要求1或2所述的分支预测装置,其特征在于,其中,所述指令预取装置向所述指令存储装置发出地址,然后获得存储在该地址出的所述程序控制指令,并传送给所...

【专利技术属性】
技术研发人员:孙瑞琛
申请(专利权)人:孙瑞琛
类型:发明
国别省市:11

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

1