一种分支预测方法以及相关设备与流程

文档序号:36373235发布日期:2023-12-14 09:38阅读:25来源:国知局
一种分支预测方法以及相关设备与流程

本技术涉及分支预测,具体涉及一种分支预测方法以及相关设备。


背景技术:

1、目前,处理器常常采用多级流水线的方式来执行指令。当通过流水线技术来执行分支指令时,根据分支指令的判定条件的真或假,可能会发生指令跳转。因此,处理器需等到分支指令执行完毕,才能确定该分支指令的下一条指令。而若处理器等到分支指令执行完毕才开始对分支的后续指令进行取指等处理,会导致流水线停顿,使得处理器的资源闲置,执行效率较低。

2、为了减少处理分支指令时的资源闲置的情况,处理器中通过分支预测器(branchpredictor,bp)来对分支判断结果进行预测,从而根据预测的结果选择分支来提前执行。

3、而目前,bp的芯片面积和功耗通常都较大,需要占用处理器中的大量资源,在处理器资源有限的情况下,处理器中部署的bp的执行效率可能不高。


技术实现思路

1、本技术提供一种分支预测方法,以解决在处理器资源有限的情况下,处理器中部署的bp的执行效率可能不高的问题。本技术还提供了相应的装置、设备、计算机可读存储介质和计算机程序产品等。

2、本技术第一方面提供一种分支预测方法,该方法应用于计算机设备,计算机设备包括第一处理器和第二处理器,其中,第一处理器在运行程序的指令为目标分支指令的情况下,向第二处理器发送目标分支指令的上下文信息,上下文信息指示第一历史时间范围内与目标分支指令相关的指令信息;第二处理器接收上下文信息;第二处理器根据上下文信息获得目标分支指令的分支预测信息,分支预测信息用于得到目标分支指令的分支预测结果;第二处理器向第一处理器发送目标分支指令的分支预测信息;第一处理器基于分支预测信息运行程序。

3、在第一方面中,该目标分支指令可以是指令类型为目标类型的指令。该目标类型指示指令属于分支指令中难以预测的(hard-to-predict,h2p)分支指令。例如,h2p分支指令是第一处理器中部署的诸如tage-sc-l分支预测器等传统的分支预测器难以准确预测的分支指令。

4、在第一方面中,可以将对程序中的目标分支指令进行分支预测的功能从第一处理器转移至第二处理器中,而不再受限于第一处理器中面积和功耗的约束,以有效地利用计算机设备中第二处理器的资源来进行高效地分支预测,为第一处理器的分支预测提供支持,从而提升了计算机设备中的分支预测性能。

5、在第一方面的一种可能的实现方式中,上述步骤:向第二处理器发送目标分支指令的上下文信息,包括:第一处理器周期性判断第二历史时间范围内是否存在目标分支指令的上下文信息,在存在目标分支指令的上下文信息的情况下,向第二处理器发送上下文信息。

6、该种可能的实现方式中,为了减少资源开销,避免处理资源的浪费,第一处理器可以周期性地判断第二历史时间范围内是否存在目标分支指令的上下文信息,从而判断需要唤醒第二处理器以进行分支预测。

7、在第一方面的一种可能的实现方式中,周期性判断指分别以至少两个不同的周期进行周期性判断;至少两个不同的周期以至少两个不同时间间隔为周期,或者至少两个不同的周期在不同的时间节点分别以至少两个相同的时间间隔为周期。

8、在第一方面的一种可能的实现方式中,上述步骤:向第二处理器发送目标分支指令的上下文信息,包括:第一处理器向第二处理器发送至少两个不同的目标分支指令的上下文信息,至少两个不同的目标分支指令为至少两个不同的周期内的目标分支指令;分支预测信息根据至少两个不同的目标分支指令的上下文信息得到。

9、该种可能的实现方式中,该至少两个不同的目标分支指令相关联,因此,根据至少两个不同的目标分支指令的上下文信息,可以得到较为准确的分支预测信息。

10、在第一方面的一种可能的实现方式中,上述步骤:第二处理器根据上下文信息获得目标分支指令对应的分支预测信息,包括:第二处理器根据上下文信息获得中间预测结果;第二处理器根据中间预测结果得到目标分支指令的分支预测信息。

11、该种可能的实现方式中,在获得目标分支指令相关的指令信息之后,第一处理器可以对该指令信息进行压缩,从而获得数据量较小的上下文信息以便于高效地进行信息传递,缩短信息交互的时长。

12、在第一方面的一种可能的实现方式中,上下文信息包括压缩与目标分支指令相关的指令信息后得到的信息。

13、在第一方面的一种可能的实现方式中,第一处理器包括训练后的编码器,上下文信息基于训练后的编码器对指令信息进行降维而得到。

14、在第一方面的一种可能的实现方式中,训练后的编码器是训练后的变分自编码器vae中的编码器,vae还包括解码器,vae的训练样本包括预设分支指令相关的指令信息,vae基于解码器的输出与对应的训练样本之间的差异而进行训练。

15、该种可能的实现方式中,对vae的训练过程为无监督的训练过程,而无需花费大量的时间和人力成本来采集大量的带标签的训练数据集。

16、并且,该种可能的实现方式中,训练后的vae中的解码器可以基于训练后的编码器所输出的低维的表示张量生成接近真实的指令信息,因此,可以认为训练后的编码器所输出的低维的表示张量中包含的高维空间中的指令信息的至少大部分的特征,从而可以较为准确地描述对应的指令信息。因此,本技术实施例中,可以通过训练后的编码器对指令信息进行压缩,以获得目标分支指令对应的上下文信息。而由于该上下文信息可以较为准确地描述指令信息,因此,第二处理器中的分支预测器可以根据该上下文信息较为准确地进行分支预测。

17、在第一方面的一种可能的实现方式中,对vae的训练过程包括多次迭代过程;在至少一次迭代过程中:通过编码器对n个训练样本进行处理,获得n个训练样本分别对应的训练表示张量,n为正整数,且n不大于p;获取每个训练表示张量的第一权重;在采样空间中进行采样,获得m个采样张量,采样空间对应的空间分布为预设分布,m不小于n且m为正整数;根据每个训练表示张量对应的胞腔中的采样张量,确定每个胞腔的第二权重,每个胞腔中包含的采样张量与胞腔对应的训练表示张量之间的距离不大于与其他训练表示张量之间的距离;根据第一权重和第二权重进行最优传输计算;根据最优传输计算的结果,获得更新后的每个胞腔的重心;根据更新后的每个胞腔的重心,获得解码器的输入数据;基于输出结果与n个训练样本之间的差异,对vae进行训练,输出结果为解码器对解码器的输入数据进行处理而得到的。

18、该种可能的实现方式中,更新后的胞腔的重心可以映射到对应的训练表示张量上,从而实现采样空间与训练表示张量对应的隐空间之间的最优传输映射,从而可以通过最优传输映射改变隐空间中的特征数据分布,并利用映射后得到的数据输入解码器,使得解码器根据该映射后得到的数据更好地进行特征提取并获得相应的输出,从而提升解码器的解码能力,有效提升vae的训练效率。

19、本技术第二方面提供一种分支预测方法,该方法应用于第一处理器,该方法包括:在运行程序的指令为目标分支指令的情况下,向第二处理器发送目标分支指令的上下文信息,上下文信息指示第一历史时间范围内与目标分支指令相关的指令信息;接收第二处理器发送的目标分支指令的分支预测信息,分支预测信息用于得到目标分支指令的分支预测结果;基于分支预测信息运行程序。

20、在第二方面的一种可能的实现方式中,步骤:向第二处理器发送目标分支指令的上下文信息,包括:周期性判断第二历史时间范围内是否存在目标分支指令的上下文信息,在存在目标分支指令的上下文信息的情况下,向第二处理器发送上下文信息。

21、在第二方面的一种可能的实现方式中,周期性判断指分别以至少两个不同的周期进行周期性判断;至少两个不同的周期以至少两个不同时间间隔为周期,或者至少两个不同的周期在不同的时间节点分别以至少两个相同的时间间隔为周期。

22、在第二方面的一种可能的实现方式中,步骤:向第二处理器发送目标分支指令的上下文信息,包括:向第二处理器发送至少两个不同的目标分支指令的上下文信息,至少两个不同的目标分支指令为至少两个不同的周期内的目标分支指令;分支预测信息根据至少两个不同的目标分支指令的上下文信息得到。

23、在第二方面的一种可能的实现方式中,上下文信息包括压缩与目标分支指令相关的指令信息后得到的信息。

24、在第二方面的一种可能的实现方式中,第一处理器包括训练后的编码器,上下文信息基于训练后的编码器对指令信息进行降维而得到。

25、在第二方面的一种可能的实现方式中,训练后的编码器是训练后的变分自编码器vae中的编码器,vae的训练样本包括预设分支指令相关的指令信息,vae基于解码器的输出与对应的训练样本之间的差异而进行训练。

26、在第二方面的一种可能的实现方式中,对vae的训练过程包括多次迭代过程;在至少一次迭代过程中:通过编码器对n个训练样本进行处理,获得n个训练样本分别对应的训练表示张量,n为正整数,且n不大于p;获取每个训练表示张量的第一权重;在采样空间中进行采样,获得m个采样张量,采样空间对应的空间分布为预设分布,m不小于n且m为正整数;根据每个训练表示张量对应的胞腔中的采样张量,确定每个胞腔的第二权重,每个胞腔中包含的采样张量与胞腔对应的训练表示张量之间的距离不大于与其他训练表示张量之间的距离;根据第一权重和第二权重进行最优传输计算;根据最优传输计算的结果,获得更新后的每个胞腔的重心;根据更新后的每个胞腔的重心,获得解码器的输入数据;基于输出结果与n个训练样本之间的差异,对vae进行训练,输出结果为解码器对解码器的输入数据进行处理而得到的。

27、本技术第三方面提供一种分支预测方法,应用于第二处理器,该方法包括:接收第一处理器发送的上下文信息,上下文信息指示第一历史时间范围内与目标分支指令相关的指令信息;根据上下文信息获得目标分支指令的分支预测信息,分支预测信息用于得到目标分支指令的分支预测结果;向第一处理器发送目标分支指令的分支预测信息。

28、在第三方面的一种可能的实现方式中,步骤:根据上下文信息获得目标分支指令的分支预测信息,包括:根据上下文信息获得中间预测结果;根据中间预测结果得到目标分支指令的分支预测信息。

29、本技术第四方面提供一种分支预测装置,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:包括发送模块、接收模块以及运行模块。

30、本技术第五方面提供一种分支预测装置,该装置具有实现上述第三方面或第三方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:包括接收模块、处理模块以及发送模块。

31、本技术第六方面提供一种处理器,该处理器能够执行如上述第二方面或第二方面任意一种可能的实现方式的方法。

32、本技术第七方面提供一种处理器,该处理器能够执行如上述第三方面或第三方面任意一种可能的实现方式的方法。

33、本技术第八方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面、第三方面、第二方面任意一种可能的实现方式方面或第三方面任意一种可能的实现方式的方法。

34、本技术第九方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第二方面、第三方面、第二方面任意一种可能的实现方式方面或第三方面任意一种可能的实现方式的方法。

35、本技术第十方面提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机设备实现上述第二方面、第三方面、第二方面任意一种可能的实现方式方面或第三方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

36、本技术第十一方面提供一种计算机设备,该计算机设备能够执行如上述第一方面或第一方面任意一种可能的实现方式的方法。

37、其中,第二方面至第十一方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面的相关可能实现方式所带来的技术效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1