分支预测逻辑制造技术

技术编号:10469687 阅读:176 留言:0更新日期:2014-09-24 20:35
一种管理程序和在数据处理系统中驻留并且被管理程序容纳的一个或多个客户操作系统被配置为选择性地通过独立的管理程序模式和客户模式指令来使能或禁止分支预测逻辑。通过如此进行,可以将不同的分支预测策略用于不同的操作系统和由其容纳的用户应用,以提供用于不同的操作情形的分支预测逻辑的更细粒度的优化。

【技术实现步骤摘要】
【国外来华专利技术】分支预测逻辑
本专利技术总体上涉及数据处理,并且具体地说涉及处理器架构和其中使用的分支预测逻辑。
技术介绍
随着半导体技术在时钟速度的增大上持续更接近实际限制,架构越来越多地聚焦于在处理器架构中的并行以获得性能改善。在芯片级处,多个处理核心经常被布置在同一芯片上,以与独立的处理器芯片非常相同的方式来运行,或在一定程度上以与完全独立的计算机非常相同的方式来运行。另外,即使在核心内,通过使用专门处理特定类型的操作的多个执行单元来使用并行化。也在许多情况下使用流水线,使得可能花费多个时钟周期来执行的特定操作被划分为多个阶段,使得在完成较早的操作之前开始其他操作。多线程也用于使得多个指令流并行地被处理,使得在任何给定的时钟周期中执行更多的整体工作。其中已经在处理器设计中作出了进步的另一个领域是分支预测的领域,该分支预测试图在执行条件分支指令之前基于与该分支指令相关联地执行的一些组件的结果来预测那个分支指令是否将分支到不同的代码路径或继续沿着相同的代码路径。分支预测可以用于例如从高速缓存或低级存储器预取指令,以减少当最后解决该分支指令时加载和执行那些指令的延迟。另外,在高度流水线的架构中,可以使用分支预测来启动在解决分支阵列之前从预测的分支执行指令,使得可以在解决分支指令后尽可能快地提交那些指令的结果。当正确地预测分支时,假定在执行分支指令和已经被预测在分支指令后执行的指令之间存在很少的延迟,则可以获得相当大的性能增益。另一方面,当误预测分支时,经常需要将执行的流水线清除,并且,处理器的状态实质上倒回,使得可以执行来自正确的路径的指令。结果,已经在本领域中作出了相当大的努力来改善分支预测的精度,并且因此最小化由分支预测逻辑作出分支误预测的频率。许多分支预测逻辑实现方式例如依赖于历史信息,并且基于下述假设:如果最后一次执行分支指令时获取了分支,则存在下一次执行分支指令时将获取到该分支的可能性。在许多实现方式中,例如,使用分支历史表格来存储与特定分支指令相关联的条目,使得当遇到那些分支指令时,可以基于与这样的分支指令相关联地存储的数据来作出预测。然而,在处理器中的分支预测逻辑的实现提供了多个挑战。例如,改善分支预测逻辑的精度经常要求使用更复杂的逻辑,这回使得分支预测变慢,并且向用于实现该逻辑所需的逻辑电路的数量增加。对于基于历史的分支预测逻辑,精度经常与由该逻辑存储的历史信息的数量直接成正比;然而,增大分支预测表格的存储容量要求另外的逻辑电路。在许多应用中,期望最小化专用于分支预测逻辑的处理器芯片中的逻辑电路的数量,例如,降低功耗和/或成本或者释放另外的空间以实现其他功能。另外,已经发现分支预测算法经常对于特定类型的程序代码不工作良好。诸如二进制树搜索的一些程序代码实际上显示任意的分支特性,并且在分支指令的一次执行期间作出的分支确定不可提供下一次执行该指令时将作出什么确定的洞察力。另外,在其中在处理核心中同时执行多个线程的多线程环境中,由多个线程共享的分支预测表格的有限大小可以导致当遇到新的分支指令时频繁丢弃历史信息,使得用于特定分支指令的历史信息可能在以后执行分支指令的时间之前不再位于分支预测表格中。事实上,已经发现在一些情况下,当误预测的百分比增大到误预测的惩罚超过如果在试图以正确的代码路径执行指令之前处理核心等待解决分支指令则将出现的延迟时分支预测可以实际上降低性能。一些传统处理器设计已经提供了用于选择性地禁止分支预测逻辑的能力。另外,一些传统处理器设计已经提供了保存和恢复辅助执行单元的状态的能力。基于历史的辅助执行单元特别是趋向于当收集更多的历史信息时随着时间在精度上改善;然而,如果多个独立的线程在使用有限数量的存储量访问分支预测逻辑,则用于一个线程的历史信息的收集可以使得丢弃用于其他线程的历史信息。然而,通过保存和恢复分支预测逻辑的状态,经常可以对于不同的代码部分“准备”分支预测逻辑,使得在过去对于那些代码部分收集的历史信息更可能在下一次执行那些代码部分时驻留在分支预测逻辑中。虽然用于选择性地禁止分支预测逻辑和保存/恢复分支预测逻辑的状态的能力可以处理传统分支预测的一些缺点,但是传统设计仍然其特征在于缺少处理不同情况的灵活性,特别是在更复杂和高性能数据处理系统中,其中,可以在这样的系统上执行具有极大不同的操作特性的多个不同类型的应用。例如,许多高性能数据处理系统利用虚拟化来使得多个操作系统在经常被称为管理程序的监督级软件的管理下被容纳于公共硬件平台上。作为管理程序的客户运行的每一个操作系统可以继而容纳在操作系统环境中的独立处理中运行的一个或多个用户应用。运行具有从分支预测视点看不很适合于一般化的特性的不同算法的多个不同应用可以在这样的系统中共存,使得难以提供对于所有情形最佳地工作的分支预测策略。因此,在本领域中持续存在对于以灵活和有效的方式控制在处理核心中的分支预测逻辑的方式的限定的需求。
技术实现思路
本专利技术通过下述方式来处理与现有技术相关联的问题的一个或多个:提供虚拟支持,该虚拟支持允许管理程序和在数据处理系统中驻留和由所述管理程序容纳的一个或多个客户操作系统两者通过独立的管理程序模式和客户模式指令来选择性地使能或禁止分支预测逻辑。通过如此进行,不同的分支预测逻辑可以用于不同的操作系统和由其容纳的用户应用,以提供分支预测逻辑的更细粒度的优化。与本专利技术的一个方面一致,通过下述方式来控制在数据处理系统中的分支预测逻辑:响应于在所述分支预测逻辑上运行的管理程序来选择性地设置在至少一个分支预测逻辑中的分支预测逻辑的使能状态;响应于在所述分支预测逻辑上运行并且由所述管理程序容纳的客户操作系统来选择性地覆盖由所述管理程序设置的所述分支预测逻辑的所述使能状态,使得在所述处理核心在执行所述客户操作系统的同时所述客户操作系统控制所述分支预测逻辑的所述使能状态,并且基于所述分支预测逻辑的所述使能状态来选择性地使能所述分支预测逻辑。在向本专利技术附加并且形成其另一个部分的权利要求中给出了表征本专利技术的这些和其他优点和特征。然而,为了更好的明白本专利技术和通过其使用获得的优点和目标,应当参考附图和所附的描述内容,其中,描述了本专利技术的示例性实施例。附图说明现在参考附图仅通过示例来描述本专利技术的实施例,在附图中:图1是与本专利技术的实施例一致的、包括在数据处理中有益的示例性计算机的示例性自动计算机械的框图。图2是在图1的计算机中实现的示例性NOC的框图。图3是更详细地图示来自图2的NOC的节点的示例性实现的框图。图4是图示来自图2的NOC的IP块的示例性实现的框图。图5是数据处理系统的框图,在该数据处理系统内,可以实现用于与本专利技术一致的分支预测逻辑的精细粒度的虚拟化控制支持。图6是在图5中引用的专用寄存器中的示例性使能模式控制寄存器的框图。图7是在图5的数据处理系统中能够使用的示例性进程相关使能模式数据结构的框图。图8是能够在图5的数据处理系统中使用的顺序来线程特定使能模式数据结构的框图。图9是图示由图5的数据处理系统当使用选择性使能的分支预测逻辑执行在管理程序、客户操作系统和用户模式程序代码之间的环境转换时执行的操作的示例性序列的流程图。图10是在图5中引用的专用寄存器中的示例性保存模式控制寄存器的框图。图11是能够在图5的数据处理系统本文档来自技高网
...
分支预测逻辑

【技术保护点】
一种用于控制在数据处理系统中的分支预测逻辑的方法,所述方法包括:响应在至少一个处理核心上运行的管理程序,设置在所述处理核心中的分支预测逻辑的使能状态;响应于在所述处理核心上运行并且被所述管理程序容纳的客户操作系统,选择性地覆盖由所述管理程序设置的所述分支预测逻辑的所述使能状态,使得在所述处理核心执行所述客户操作系统的同时,所述客户操作系统控制所述分支预测逻辑的所述使能状态;并且基于所述分支预测逻辑的所述使能状态,选择性地使能所述分支预测逻辑。

【技术特征摘要】
【国外来华专利技术】2012.01.23 US 13/355,8631.一种用于控制在数据处理系统中的分支预测逻辑的方法,所述方法包括:响应在至少一个处理核心上运行的管理程序,设置在所述处理核心中的分支预测逻辑的使能状态;响应于在所述处理核心上运行并且被所述管理程序容纳的客户操作系统,选择性地覆盖由所述管理程序设置的所述分支预测逻辑的所述使能状态,使得在所述处理核心执行所述客户操作系统的同时,所述客户操作系统控制所述分支预测逻辑的所述使能状态;并且基于所述分支预测逻辑的所述使能状态,选择性地使能所述分支预测逻辑。2.根据权利要求1所述的方法,其中,所述分支预测逻辑被配置为仅当使能所述分支预测逻辑时在分支预测表格中高速缓存分支预测数据,其中,选择性地使能所述分支预测逻辑包括:禁止所述分支预测逻辑,使得在禁止所述分支预测逻辑的同时所述分支预测表格不高速缓存分支预测数据。3.根据权利要求1所述的方法,其中,选择性地覆盖所述使能状态包括:将用于所述分支预测逻辑的所述使能状态设置为与所述客户操作系统相关联的使能状态,使得在所述处理核心在运行所述客户操作系统的同时,基于与所述客户操作系统相关联的所述使能状态,选择性地使能所述分支预测逻辑。4.根据权利要求1所述的方法,其中,所述客户操作系统是第一客户操作系统,所述方法进一步包括:在所述处理核心在执行第二客户操作系统的同时,将用于所述分支预测逻辑的所述使能状态设置为所述由所述管理程序设置的所述使能状态。5.根据权利要求3所述的方法,进一步包括:在所述处理核心在执行由所述客户操作系统容纳的至少一个用户处理的同时,基于与所述客户操作系统相关联的所述使能状态来选择性地使能所述分支预测逻辑。6.根据权利要求5所述的方法,其中,所述用户处理是第一用户处理,所述方法进一步包括:响应于由所述客户操作系统容纳的第二用户处理,选择性地覆盖由所述客户操作系统设置的所述分支预测逻辑的所述使能状态,使得在所述处理核心执行所述第二用户处理的同时,所述第二用户处理控制所述分支预测逻辑的所述使能状态。7.根据权利要求6所述的方法,进一步包括:使用所述客户操作系统,选择性地禁止通过所述第二用户处理对于所述分支预测逻辑的所述使能状态的覆盖。8.根据权利要求7所述的方法,其中,所述客户操作系统被配置为基于与所述至少一个用户处理相关联的处理标识符,选择性地禁止由所述客户操作系统容纳的至少一个用户处理的所述分支预测逻辑的所述使能状态。9.根据权利要求1所述的方法,进一步包括:使用所述管理程序,选择性地禁止通过所述客户操作系统对于所述分支预测逻辑的所述使能状态的覆盖。10.根据权利要求1所述的方法,其中,基于所述分支预测逻辑的所述使能状态来使能所述分支预测逻辑包括:访问控制寄存器以确定所述分支预测逻辑的所述使能状态。11.根据权利要求10所述的方法,其中,设置所述使能状态包括向所述控制寄存器写入。12.根据权利要求11所述的方法,其中,所述处理核心包括多个硬件线程,其中,所述控制寄存器存储用于每一个硬件线程的线程特定使能状态,并且其中,基于所述控制寄存器对于每一个硬件线程选择性地使能所述分支预测逻辑。13.一种电路布置,包括:处理核心;以及在所述处理核心中布置的分支预测逻辑;其中,所述处理核心被配置为基于所述分支预测逻辑的使能状态...

【专利技术属性】
技术研发人员:P沙特R希勒M塔布斯A穆夫
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1