【技术实现步骤摘要】
分支指令处理方法及装置、设备和介质
[0001]本公开涉及计算机
,尤其涉及芯片技术和分支预测
,具体涉及一种分支指令处理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
技术介绍
[0002]当处理器接收到分支指令时,为避免等待分支指令执行结果以决定分支方向的情况,可以利用分支预测技术来得到包括分支方向的分支预测结果,从而推动处理器继续获取和执行其他指令,避免由于等待分支指令的执行结果而导致的延迟。
[0003]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
[0004]本公开提供了一种分支指令处理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
[0005]根据本公开的一方面,提供了一种应用于多线程处理器的分支指令处理方法,所述多线程处理器包括第一线程和第二线程,所述包括:获取针对所述第一线程和第二线程的第一分支指令;基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第 ...
【技术保护点】
【技术特征摘要】
1.一种应用于多线程处理器的分支指令处理方法,所述多线程处理器包括第一线程和第二线程,所述方法包括:获取针对所述第一线程和第二线程的第一分支指令;基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录。2.如权利要求1所述的方法,还包括:获取针对所述第一线程和第二线程的第二分支指令;基于更新后的所述历史分支指令执行记录以及所述第二分支指令,确定针对所述第二分支指令的第二预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第二预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第二分支指令的第三真实执行结果和第四真实执行结果;以及基于所述第三真实执行结果和第三真实执行结果中的至少一者以及所述第二预测执行结果,再次更新所述历史分支指令执行记录。3.如权利要求1或2所述的方法,其中,所述基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录包括:确定所述第一真实执行结果的生成次序信息和第二真实执行结果的生成次序信息;基于所述生成次序信息,从所述第一真实执行结果和第二真实执行结果中确定目标执行结果;以及基于所述目标执行结果,更新所述历史分支指令执行记录。4.如权利要求3所述的方法,其中,所述基于所述生成次序信息,从所述第一真实执行结果和第二真实执行结果中确定目标执行结果包括:基于所述生成次序信息,更新目标执行结果标识以指示最晚生成的真实执行结果;以及基于所述目标执行结果标识,确定所述目标执行结果。5.如权利要求1
‑
4中任一项所述的方法,其中,所述历史分支指令执行记录包括对应第一历史时长的第一子记录和对应第二历史时长的第二子记录,所述第一历史时长不同于所述第二历史时长,并且其中,所述基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果包括:基于所述第一子记录和所述第一分支指令,确定针对所述第一分支指令的第一子预测结果;基于所述第二子记录和所述第一分支指令,确定针对所述第一分支指令的第二子预测结果;以及基于预设规则,从所述第一子预测结果和第二子预测结果中确定所述第一预测执行结
果。6.如权利要求5所述的方法,其中,所述第一子记录和第二子记录均包括准确度,所述准确度指示每一子记录对应的子预测结果的准确度,并且其中,所述基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录包括:响应于确定所述第一子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,更新所述第一子记录的准确度以使得所述第一子记录的准确度增加;以及响应于确定所述第二子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,更新所述第二子记录的准确度以使得所述第二子记录的准确度增加,并且其中,所述基于预设规则,从所述第一子预测结果和第二子预测结果中确定所述第一预测执行结果包括:确定所述第一子记录和第二子记录中准确度更高的子记录对应的子预测结果为所述第一预测执行结果。7.如权利要求6所述的方法,其中,所述准确度包括计数值,并且其中,响应于确定所述第一子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,对所述第一子记录的准确度执行加一更新;以及响应于确定所述第二子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,对所述第二子记录的准确度执行加一更新。8.如权利要求1
‑
7中任一项所述的方法,其中,所述基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果包括:基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定所述第一分支指令对应的指令标识;基于所述指令标识,从分支预测表中确定所述第一预测执行结果,所述分支预测表中存储有多个指令标识和与所述多个指令标识一一映射的多个第一预测执行结果,并且其中,基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录和所述分支预测表。9.如权利要求8所述的方法,其中,所述分支预测表中还存储有所述多个第一预测执行结果的预测置信度,并且其中,基于所述指令标识,从分支预测表中确定所述第一预测执行结果及其预测置信度。10.一种应用于多线程处理器的分支指令处理装置,所述多线程处理器包括第一线程和第二线程,所述装置包括:第一获取单元,被配置为获取针对所述第一线程和第二线程的第一分支指令;第一确定单元,被配置为基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述...
【专利技术属性】
技术研发人员:马波,肖滔,唐潮,杜学亮,欧阳剑,
申请(专利权)人:昆仑芯北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。