多线程处理器中分支预测资源的调度方法、设备和系统技术方案

技术编号:11171781 阅读:116 留言:0更新日期:2015-03-19 13:07
本发明专利技术实施例涉及计算机技术领域,公开了一种多线程处理器中分支预测资源的调度方法、系统和多线程处理器。其中,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,该方法包括:设置所述至少二个线程与所述至少一个分支预测部件的对应关系;将第一分支预测部件分配给第一线程独享使用;所述至少一个分支预测部件的数量小于所述至少二个线程的数量,所述至少一个分支预测部件包括所述第一分支预测部件,所述至少二个线程包括所述第一线程。实施本发明专利技术实施例,可以减少分支预测资源的硬件开销,提高分支预测的准确性。

【技术实现步骤摘要】
多线程处理器中分支预测资源的调度方法、设备和系统
本专利技术涉及计算机
,具体涉及一种多线程处理器中分支预测资源的调度方法、设备和系统。
技术介绍
目前,多数处理器都使用流水线方式使指令的执行可以重叠以提高效率,当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令程序中。分支预测技术便是为解决这一问题而出现的,分支预测可包括对条件分支指令的目标跳转方向的预测以及对子程序返回地址的预测。 现有技术中存在一种多线程处理器的分支预测方法,在该方法中每个线程独自占有一个子程序RAS(Return Address Stack,返回地址栈)用于子程序返回地址的预测。RAS采用LIFO (Last In First Out,后进先出)结构,Control Logic (控制逻辑)控制返回地址的入栈与出栈逻辑。在指令对call/ret (请求/返回)中,call指令在fetch (取指令)流水级时将返回地址push (入栈)到RAS中,子程序结束时ret指令在fetch流水级时将返回地址从RAS中pop (出栈)。以32个线程的多线程处理器为例,则需要32个RAS,若每个RAS中有4个entry (条目),则共有128个entry,同时每个RAS还需要一个控制逻辑,这样导致硬件开销太大。但如果将每个RAS中的entry减少为2个,开销虽然降低,但每个线程独自享有的资源变少了,可能经常发生溢出而影响性能。 现有技术中还存在一种多线程处理器的分支预测方法,在该方法中,每个线程有自己独立的GHR(Global History Register,全局历史寄存器),多个线程共享PHT(patternhistory table,模式历史表)进行分支跳转方向的预测。该方法中,虽然每个线程之间共享PHT,减少了一定的硬件开销,但也会导致线程间的相互干扰,降低分支预测的准确性。
技术实现思路
本专利技术实施例提供一种多线程处理器中分支预测资源的调度方法、设备和系统,用于减少分支预测资源的硬件开销,提高分支预测的准确性。 本专利技术实施例提供一种多线程处理器中分支预测资源的调度方法,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,所述方法包括: 设置所述至少二个线程与所述至少一个分支预测部件的对应关系; 将第一分支预测部件分配给第一线程独享使用;所述至少一个分支预测部件的数量小于所述至少二个线程的数量,所述至少一个分支预测部件包括所述第一分支预测部件,所述至少二个线程包括所述第一线程。 相应的,本专利技术实施例还提供一种多线程处理器中分支预测资源的调度系统,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,所述系统包括: 设置单元,用于设置所述至少二个线程与所述至少一个分支预测部件的对应关系;所述至少一个分支预测部件的数量小于所述至少二个线程的数量; 分配单元,用于将第一分支预测部件分配给第一线程独享使用;所述至少一个分支预测部件包括所述第一分支预测部件,所述至少二个线程包括所述第一线程。 相应的,本专利技术实施例还提供一种多线程处理器,所述多线程处理器包括: 至少一个分支预测部件以及如前所述的分支预测资源的调度系统。 本专利技术实施例中提供的多线程处理器中分支预测资源的调度方法、系统和多线程处理器,该多线程处理器中分支预测部件的数量小于多线程处理器的线程的数量,可节约硬件开销,另外,将一个分支预测部件分配给多线程处理器可执行的多个线程中的其中一个线程独享使用,也克服了现有技术中共享分支预测资源所带来的线程间的相互干扰的问题,提高了分支预测的准确性。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1是本专利技术实施例一提供的多线程处理器中分支预测资源的调度方法的流程示意图; 图2是本专利技术实施例二提供的多线程处理器中分支预测资源的调度方法的流程示意图; 图3是本专利技术实施例三提供的多线程处理器中分支预测资源的调度方法的流程示意图; 图4本专利技术实施例四提供的多线程处理器中分支预测资源的调度系统的结构示意图; 图5是本专利技术实施例五提供的多线程处理器中分支预测资源的调度系统的结构示意图; 图6是本专利技术实施例六提供的多线程处理器中分支预测资源的调度系统的结构示意图。 【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。 本专利技术实施例中提供了一种多线程处理器中分支预测资源的调度方法、系统和多线程处理器,用于节约分支预测资源的硬件开销,提高分支预测的准确性。以下分别进行详细说明。 本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。 实施例一: 参考图1,本专利技术提供一种多线程处理器中分支预测资源的调度方法,该多线程处理器能够同时执行至少二个线程,该多线程处理器包括至少一个分支预测部件,如图1所示,该方法包括: 101、设置上述至少二个线程与上述至少一个分支预测部件的对应关系; 本实施例中,分支预测部件可以为模式历史表PHT或返回地址栈RAS ; 102、将第一分支预测部件分配给第一线程独享使用; 其中,上述至少一个分支预测部件的数量小于上述至少二个线程的数量,上述至少一个分支预测部件包括上述第一分支预测部件,上述至少二个线程包括上述第一线程,且上述第一线程与上述第一分支预测部件存在对应关系。 本实施例中,多线程处理器中分支预测部件的数量小于多线程处理器的可同时执行的线程的数量,可节约硬件开销,另外,将一个分支预测部件分配给多个线程中的其中一个线程独享使用,也克服了现有技术中共享分支预测资源所带来的线程间的相互干扰的问题,提高了分支预测的准确性。 实施例二: 本专利技术还提供一种多线程处理器中分支预测资源的调度方法,该多线程处理器能够同时执行至少二个线程,该多线程处理器包括本文档来自技高网
...

【技术保护点】
一种多线程处理器中分支预测资源的调度方法,其特征在于,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,所述方法包括:设置所述至少二个线程与所述至少一个分支预测部件的对应关系;将第一分支预测部件分配给第一线程独享使用;所述至少一个分支预测部件的数量小于所述至少二个线程的数量,所述至少一个分支预测部件包括所述第一分支预测部件,所述至少二个线程包括所述第一线程。

【技术特征摘要】
1.一种多线程处理器中分支预测资源的调度方法,其特征在于,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,所述方法包括: 设置所述至少二个线程与所述至少一个分支预测部件的对应关系; 将第一分支预测部件分配给第一线程独享使用;所述至少一个分支预测部件的数量小于所述至少二个线程的数量,所述至少一个分支预测部件包括所述第一分支预测部件,所述至少二个线程包括所述第一线程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将所述第一分支预测部件的所有条目置为无效; 保存指示所述第一分支预测部件被分配给所述第一线程独享使用的分配信息。3.根据权利要求2所述的方法,其特征在于,在所述将第一分支预测部件分配给第一线程独享使用之前,所述方法还包括: 检测所述至少二个线程中各个线程的优先级; 所述第一线程为与所述第一分支预测部件对应的线程中优先级最高的线程。4.根据权利要求2所述的方法,其特征在于,所述第一线程为与所述第一分支预测部件对应的线程中的其中一个; 在所述将第一分支预测部件分配给第一线程独享使用之后,所述方法还包括: 将第二线程中需要进行分支预测的任务调度到所述第一线程进行执行;所述第二线程为与所述第一分支预测部件对应的线程中的任意一个,且与所述第一线程不同。5.根据权利要求1-4任一项所述的方法,其特征在于,所述分支预测部件为返回地址栈或模式历史表。6.一种多线程处理器中分支预测资源的调度系统,其特征在于,所述多线程处理器能够同时执行至少二个线程,所述多线程处理器包括至少一个分支预测部件,...

【专利技术属性】
技术研发人员:侯锐冯煜晶郭旭斌苏东锋
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1