分支指令处理方法及装置、设备和介质制造方法及图纸

技术编号:36774282 阅读:16 留言:0更新日期:2023-03-08 21:56
本公开提供了一种应用于多线程处理器的分支指令处理方法及装置、设备和介质,涉及计算机技术领域,尤其涉及芯片技术和分支预测技术领域。实现方案为:获取针对所述第一线程和第二线程的第一分支指令;基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录。执行记录。执行记录。

【技术实现步骤摘要】
分支指令处理方法及装置、设备和介质


[0001]本公开涉及计算机
,尤其涉及芯片技术和分支预测
,具体涉及一种分支指令处理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。

技术介绍

[0002]当处理器接收到分支指令时,为避免等待分支指令执行结果以决定分支方向的情况,可以利用分支预测技术来得到包括分支方向的分支预测结果,从而推动处理器继续获取和执行其他指令,避免由于等待分支指令的执行结果而导致的延迟。
[0003]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

技术实现思路

[0004]本公开提供了一种分支指令处理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
[0005]根据本公开的一方面,提供了一种应用于多线程处理器的分支指令处理方法,所述多线程处理器包括第一线程和第二线程,所述包括:获取针对所述第一线程和第二线程的第一分支指令;基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录。
[0006]根据本公开的另一方面,提供了一种应用于多线程处理器的分支指令处理装置,所述多线程处理器包括第一线程和第二线程,所述包括:第一获取单元,被配置为获取针对所述第一线程和第二线程的第一分支指令;第一确定单元,被配置为基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;第二获取单元,被配置为从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及更新单元,被配置为基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录。
[0007]根据本公开的另一方面,还提供一种芯片,包括如上所述的分支指令处理装置。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述
分支指令处理方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述分支指令处理方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时能够实现上述分支指令处理方法。
[0011]根据本公开的一个或多个实施例,可以减少分支指令处理所占用的资源,提升硬件利用率。
[0012]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0013]附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
[0014]图1示出了根据本公开示例性实施例的可以在其中实施本文描述的各种方法的示例性系统的示意图;
[0015]图2示出了根据本公开示例性实施例的应用于多线程处理器的分支指令处理方法的流程图;
[0016]图3示出了根据本公开示例性实施例的目标执行结果的确定过程的示意图;
[0017]图4示出了根据本公开示例性实施例的分支指令处理过程的示意图;
[0018]图5示出了根据本公开示例性实施例的应用于多线程处理器的分支指令处理方法的流程图;
[0019]图6示出了根据本公开示例性实施例的应用于多线程处理器的分支指令处理装置的结构框图;
[0020]图7示出了能够用于实现本公开实施例的示例性电子设备的结构框图。
具体实施方式
[0021]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0022]在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
[0023]在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
[0024]当分支预测技术应用于多线程处理器时,相关技术中通常是针对多个线程中的每一线程,基于该线程的历史分支记录独立执行分支预测,资源占用较高且效率较低。
[0025]申请人注意到,在一些应用场景中,多线程处理器中的多个线程是获取相同的数据处理指令和不同的待处理数据,以基于不同的数据来分别进行数据处理。基于此,本公开提供了一种分支指令处理方法,令多个线程共享同一份历史分支指令执行记录,通过获取针对多个线程的待处理分支指令,基于历史分支指令执行记录来得到分支预测结果,使得各个线程能够基于分支预测结果继续执行数据处理任务,再在得到真实执行结果后基于真实执行结果来更新历史分支指令执行记录,以利用更新后的历史分支指令执行记录来提升后续的分支预测准确度。
[0026]下面将结合附图详细描述本公开的实施例。
[0027]图1示出了根据本公开的实施例可以将本文描述的各种方法和装置在其中实施的示例性系统100的示意图。参考图1,该系统100包括一个或多个客户端设备101、102、103、104、105和106、服务器120以及将一个或多个客户端设备耦接到服务器120的一个或多个通信网络110。客户端设备101、102、103、104、105和106可以被配置为执行一个或多个应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于多线程处理器的分支指令处理方法,所述多线程处理器包括第一线程和第二线程,所述方法包括:获取针对所述第一线程和第二线程的第一分支指令;基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第一预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第一分支指令的第一真实执行结果和第二真实执行结果;以及基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录。2.如权利要求1所述的方法,还包括:获取针对所述第一线程和第二线程的第二分支指令;基于更新后的所述历史分支指令执行记录以及所述第二分支指令,确定针对所述第二分支指令的第二预测执行结果,以使得所述第一线程和所述第二线程能够基于所述第二预测执行结果来控制指令执行;从所述第一线程和所述第二线程分别获取所述第二分支指令的第三真实执行结果和第四真实执行结果;以及基于所述第三真实执行结果和第三真实执行结果中的至少一者以及所述第二预测执行结果,再次更新所述历史分支指令执行记录。3.如权利要求1或2所述的方法,其中,所述基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录包括:确定所述第一真实执行结果的生成次序信息和第二真实执行结果的生成次序信息;基于所述生成次序信息,从所述第一真实执行结果和第二真实执行结果中确定目标执行结果;以及基于所述目标执行结果,更新所述历史分支指令执行记录。4.如权利要求3所述的方法,其中,所述基于所述生成次序信息,从所述第一真实执行结果和第二真实执行结果中确定目标执行结果包括:基于所述生成次序信息,更新目标执行结果标识以指示最晚生成的真实执行结果;以及基于所述目标执行结果标识,确定所述目标执行结果。5.如权利要求1

4中任一项所述的方法,其中,所述历史分支指令执行记录包括对应第一历史时长的第一子记录和对应第二历史时长的第二子记录,所述第一历史时长不同于所述第二历史时长,并且其中,所述基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果包括:基于所述第一子记录和所述第一分支指令,确定针对所述第一分支指令的第一子预测结果;基于所述第二子记录和所述第一分支指令,确定针对所述第一分支指令的第二子预测结果;以及基于预设规则,从所述第一子预测结果和第二子预测结果中确定所述第一预测执行结
果。6.如权利要求5所述的方法,其中,所述第一子记录和第二子记录均包括准确度,所述准确度指示每一子记录对应的子预测结果的准确度,并且其中,所述基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录包括:响应于确定所述第一子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,更新所述第一子记录的准确度以使得所述第一子记录的准确度增加;以及响应于确定所述第二子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,更新所述第二子记录的准确度以使得所述第二子记录的准确度增加,并且其中,所述基于预设规则,从所述第一子预测结果和第二子预测结果中确定所述第一预测执行结果包括:确定所述第一子记录和第二子记录中准确度更高的子记录对应的子预测结果为所述第一预测执行结果。7.如权利要求6所述的方法,其中,所述准确度包括计数值,并且其中,响应于确定所述第一子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,对所述第一子记录的准确度执行加一更新;以及响应于确定所述第二子预测结果为所述第一预测执行结果,并且响应于确定所述第一预测执行结果与真实执行结果相同,对所述第二子记录的准确度执行加一更新。8.如权利要求1

7中任一项所述的方法,其中,所述基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果包括:基于所述第一线程和第二线程的历史分支指令执行记录以及所述第一分支指令,确定所述第一分支指令对应的指令标识;基于所述指令标识,从分支预测表中确定所述第一预测执行结果,所述分支预测表中存储有多个指令标识和与所述多个指令标识一一映射的多个第一预测执行结果,并且其中,基于所述第一真实执行结果和第二真实执行结果中的至少一者以及所述第一预测执行结果,更新所述历史分支指令执行记录和所述分支预测表。9.如权利要求8所述的方法,其中,所述分支预测表中还存储有所述多个第一预测执行结果的预测置信度,并且其中,基于所述指令标识,从分支预测表中确定所述第一预测执行结果及其预测置信度。10.一种应用于多线程处理器的分支指令处理装置,所述多线程处理器包括第一线程和第二线程,所述装置包括:第一获取单元,被配置为获取针对所述第一线程和第二线程的第一分支指令;第一确定单元,被配置为基于所述第一线程和第二线程共同的历史分支指令执行记录以及所述第一分支指令,确定针对所述第一分支指令的第一预测执行结果,以使得所述...

【专利技术属性】
技术研发人员:马波肖滔唐潮杜学亮欧阳剑
申请(专利权)人:昆仑芯北京科技有限公司
类型:发明
国别省市:

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

1