本申请涉及计算机,尤其涉及一种分支预测方法、装置、设备及程序产品。
背景技术:
1、分支预测技术是指处理器处理分支指令时,不等待分支指令执行完成,直接预测当前分支跳转方向以及跳转目标。使用分支预测技术可以实现不间断的指令流,分支预测技术可以有效地提升指令执行速度,但是也带来一定的隐患,若预测方向错误,处理器提取了错误的下一条指令,为了纠正这种错误,流水线会将这一条指令之后的所有指令排出流水线,重新读入正确的指令,这将极大程度的降低处理器的性能。
2、通过分支预测模型进行分支预测是具有广阔应用前景的分支预测方案,但是现阶段的分支预测模型的分支预测准确率不高,难以满足准确的流水线分支预测需求。
技术实现思路
1、基于上述技术问题,本申请提出一种分支预测方法、装置、设备及程序产品,能够提高分支预测模型的指令预测准确率。
2、本申请第一方面提出一种分支预测方法,包括:
3、在利用分支预测模型进行在线分支预测的过程中,获取所述分支预测模型对指令流水线中的分支指令进行预测得到的预测结果,并基于所述预测结果以及实际的指令跳转情况,生成预测结果统计数据;
4、利用所述预测结果统计数据对分支预测训练模型进行分支预测训练,得到训练后的分支预测训练模型;其中,在对所述分支预测训练模型进行分支预测训练之前,所述分支预测训练模型的权重与所述分支预测模型的权重相同;
5、在确定所述训练后的分支预测训练模型的分支预测结果优于所述分支预测模型的分支预测结果的情况下,利用所述训练后的分支预测训练模型的权重对所述分支预测模型的权重进行更新。
6、本申请第二方面提出一种分支预测装置,包括:
7、数据获取单元,用于在利用分支预测模型进行在线分支预测的过程中,获取所述分支预测模型对指令流水线中的分支指令进行预测得到的预测结果,并基于所述预测结果以及实际的指令跳转情况,生成预测结果统计数据;
8、模型训练单元,用于利用所述预测结果统计数据对分支预测训练模型进行在线分支预测训练,得到训练后的分支预测训练模型;其中,在对所述分支预测训练模型进行在线分支预测训练之前,所述分支预测训练模型的权重与所述分支预测模型的权重相同;
9、模型更新单元,用于在确定所述训练后的分支预测训练模型的分支预测结果优于所述分支预测模型的分支预测结果的情况下,利用所述训练后的分支预测训练模型的权重对所述分支预测模型的权重进行更新。
10、本申请第三方面提出一种分支预测设备,包括:
11、存储器和处理器;
12、所述存储器与所述处理器连接,用于存储程序;
13、所述处理器用于通过运行所述存储器中的程序,实现上述的分支预测方法。
14、本申请第四方面提出一种计算机程序产品,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行上述的分支预测方法。
15、本申请提出的分支预测方法在利用分支预测模型进行在线分支预测的过程中,获取分支预测模型对指令流水线中的分支指令进行预测得到的预测结果,并基于所述预测结果以及实际的指令跳转情况,生成预测结果统计数据;然后基于预测结果统计数据对分支预测训练模型进行分支预测训练,得到训练后的分支预测训练模型;在确定所述训练后的分支预测训练模型的分支预测结果优于所述分支预测模型的分支预测结果的情况下,利用所述训练后的分支预测训练模型的权重对所述分支预测模型的权重进行更新。上述方案可以在分支预测模型的应用过程中,实时地基于指令流水线中的指令跳转情况,对分支预测模型进行权重更新,从而使得分支预测模型的权重与指令流水线的实时状态相适应,并且能够保持实时更新,从而能够提高分支预测模型的指令预测准确率。
1.一种分支预测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,在获取到被预测分支指令时,对所述被预测分支指令进行分类,包括:
5.根据权利要求4所述的方法,其特征在于,所述分支分类器包括程序计数器、饱和计数器组,以及更新模块;
6.根据权利要求5所述的方法,其特征在于,所述被预测分支指令的地址,包括所述被预测分支指令的后k位地址;
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,将被预测分支指令的历史信息输入预先训练的分支预测模型,包括:
9.根据权利要求8所述的方法,其特征在于,所述分支预测模型包括5个卷积神经网络切片;基于被预测分支指令的历史信息,生成多个历史信息集合,包括:
10.根据权利要求7所述的方法,其特征在于,所述被预测分支指令的历史信息包括所述被预测分支指令所在分支路径的各个历史地址以及对应的跳转方向的编码矩阵,所述编码矩阵包括所述被预测分支指令所在分支路径的各个历史地址以及对应的跳转方向的编码。
11.根据权利要求7所述的方法,其特征在于,卷积神经网络切片包括第一卷积层、第一平均池化层、第一全连接层、第二卷积层、第二平均池化层和输出层,所述第一卷积层中包括注意力机制模块;
12.根据权利要求11所述的方法,其特征在于,所述第一卷积层的输入通道数为1,输出通道数为16,卷积核大小为3×3,步长为1;所述第一平均池化层的池化核大小为2×2,步长为1;所述第二卷积层的输入通道数为16,输出通道数为4,卷积核大小为3×3,步长为1;所述第二平均池化层的池化核大小为2×2,步长为1。
13.根据权利要求1至6中任意一项所述的方法,其特征在于,所述方法还包括:基于设定数据库的测试程序的运行流程记录,训练得到所述分支预测模型;
14.一种分支预测装置,其特征在于,包括:
15.一种分支预测设备,其特征在于,包括:
16.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1至13中任意一项所述的分支预测方法。
