System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体涉及一种分支预测处理方法和相关设备。
技术介绍
1、当前的高性能处理器基本都是乱序执行处理器,其主要利用分支预测等方法,来解决乱序执行的指令之间的数据相关性等问题。但是,分支预测并不总是准确的,也有可能会出现分支预测错误。
2、因为错误分支路径上的指令如访存指令的执行会占用访存资源,影响正确分支路径上的指令的执行,所以,通常会释放错误分支路径上的指令占用的访存资源。但是,这样会导致错误分支路径上的指令访问的数据被删除,而这些数据又可能是后续的指令需要访问的数据,导致执行后续的指令时还需要重新从内存中获取这些数据,不利于处理器性能的提升。
技术实现思路
1、本申请公开一种分支预测处理方法和相关设备,以避免处理器重复获取数据,以提升处理器的性能。
2、第一方面,本申请公开了一种分支预测处理方法,包括:获取分支指令的分支预测结果;在所述分支预测结果是分支预测错误的情况下,根据所述分支指令的类型,确定是否执行部分资源释放操作;所述部分资源释放操作至少用于释放错误分支路径上的目标指令占用的一级缓存的资源,保留所述错误分支路径上的所有指令占用的其他缓存的资源;所述目标指令至少包括比所述分支指令年轻的指令中访问的数据不在所述一级缓存中的访存指令。
3、本申请一些实施例中,所述部分资源释放操作用于释放错误分支路径上的目标指令占用的一级缓存的资源,保留所述错误分支路径上的所有指令占用的二级缓存的资源,并控制所述二级缓存不将所述目标指令访问的数
4、本申请一些实施例中,所述根据所述分支指令的类型,确定是否执行部分资源释放操作包括:确定所述分支指令是否是无条件分支指令;若所述分支指令是无条件分支指令,则执行所述部分资源释放操作。
5、本申请一些实施例中,还包括:若所述分支指令不是无条件分支指令,根据所述一级缓存的资源的剩余量和/或所述错误分支路径上的指令访问的数据的可用性,确定是否执行所述部分资源释放操作。
6、本申请一些实施例中,根据所述一级缓存的资源的剩余量,确定是否执行所述部分资源释放操作包括:若所述一级缓存的资源的剩余量小于预设值,则执行所述部分资源释放操作;若所述一级缓存的资源的剩余量大于或等于所述预设值,则不执行所述部分资源释放操作,保留所述错误分支路径上所有指令占用的所述一级缓存的资源。
7、本申请一些实施例中,根据所述错误分支路径上的指令访问的数据的可用性,确定是否执行所述部分资源释放操作包括:在刷新所述分支指令所在的流水线后,记录所述错误分支路径上的指令访问的数据中回填至所述一级缓存中的数据未被访问的次数;若未被访问的次数大于预设次数,则在下一次所述分支预测结果是分支预测错误的情况下,执行所述部分资源释放操作。
8、本申请一些实施例中,所述根据所述分支指令的类型,确定是否执行部分资源释放操作之前,还包括:获取所述错误分支路径上的指令的访存状态和新老标识,所述新老标识用于指示所述指令是否是比所述分支指令年轻的指令,所述访存状态用于指示所述指令是否是访问的数据不在所述一级缓存中的指令。
9、第二方面,本申请公开了一种处理器,被配置为执行如上任一项所述的分支预测处理方法。
10、第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述存储器与所述处理器连接,所述存储器用于存储计算机程序;所述处理器用于通过运行所述存储器中存储的计算机程序,实现如上任一项所述的分支预测处理方法。
11、第四方面,本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上任一项所述的分支预测处理方法。
12、本申请公开的分支预测处理方法和相关设备,在分支指令的分支预测结果是分支预测错误的情况下,根据分支指令的类型,确定是否执行部分资源释放操作,因为部分资源释放操作至少用于释放错误分支路径上的目标指令占用的一级缓存的资源,保留错误分支路径上的所有指令占用的其他缓存的资源,且目标指令包括比分支指令年轻的指令中访问的数据不在一级缓存中的指令,所以,不仅可以通过释放目标指令占用的一级缓存的资源,来避免错误分支路径上的目标指令占用一级缓存的资源,影响正确分支路径上的指令的执行,而且可以通过保留错误分支路径上所有指令占用的其他缓存的资源,来保留错误分支路径上所有指令访问的数据,避免处理器或处理器核重复从内存中获取这些数据,进而可以提升处理器的性能。
本文档来自技高网...【技术保护点】
1.一种分支预测处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述部分资源释放操作用于释放错误分支路径上的目标指令占用的一级缓存的资源,保留所述错误分支路径上的所有指令占用的二级缓存的资源,并控制所述二级缓存不将所述目标指令访问的数据回填至所述一级缓存;所述目标指令包括比所述分支指令年轻的指令中访问的数据不在所述一级缓存中的访存指令。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述分支指令的类型,确定是否执行部分资源释放操作包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,根据所述一级缓存的资源的剩余量,确定是否执行所述部分资源释放操作包括:
6.根据权利要求4所述的方法,其特征在于,根据所述错误分支路径上的指令访问的数据的可用性,确定是否执行所述部分资源释放操作包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述分支指令的类型,确定是否执行部分资源释放操作之前,还包括:
8.一种处理器,其特征在于
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述存储器与所述处理器连接,所述存储器用于存储计算机程序;所述处理器用于通过运行所述存储器中存储的计算机程序,实现如权利要求1-7中任一项所述的分支预测处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-7中任一项所述的分支预测处理方法。
...【技术特征摘要】
1.一种分支预测处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述部分资源释放操作用于释放错误分支路径上的目标指令占用的一级缓存的资源,保留所述错误分支路径上的所有指令占用的二级缓存的资源,并控制所述二级缓存不将所述目标指令访问的数据回填至所述一级缓存;所述目标指令包括比所述分支指令年轻的指令中访问的数据不在所述一级缓存中的访存指令。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述分支指令的类型,确定是否执行部分资源释放操作包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,根据所述一级缓存的资源的剩余量,确定是否执行所述部分资源释放操作包括:
6.根据权利要求4所述的方法,其...
【专利技术属性】
技术研发人员:高军,郭丽丽,
申请(专利权)人:飞腾信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。