指令的相依性预测制造技术

技术编号:16307943 阅读:46 留言:0更新日期:2017-09-27 01:52
用于相依性预测的系统和方法包含:执行处理器的指令管线中的指令;以及检测条件性强加控制指令,例如如果‑那么IT指令,其对一或多个相依指令的条件性块大小强加相依行为。在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,做出相依性预测来确定所述第一指令是否为所述条件性强加控制指令的相依指令。基于所述相依性预测来执行所述第一指令。当所述第一指令被相依性误预测时,减轻相关联的相依性误预测惩罚。如果所述第一指令是分支指令,那么所述减轻涉及训练分支预测跟踪机制来正确地相依性预测所述第一指令的将来出现。

Instruction dependency prediction

For systems and methods including dependence prediction: instruction execution processor instructions in the pipeline; and the detection of conditional imposed control instructions, for example if so IT instructions, the one or more dependent instructions conditional block size dependent behavior imposed. Before the execution of the first instruction, one or more parameters of the conditional block size and the instruction pipeline based on dependency make prediction to determine the first instruction on whether dependent instructions control instruction for the conditional. The first instruction is executed based on the dependency prediction. When the first instruction is mistakenly predicted by dependence, the associated dependent false prediction penalty is reduced. If the first instruction is a branch instruction, then the mitigation involves a training branch prediction tracking mechanism to correctly predict the future appearance of the first instruction.

【技术实现步骤摘要】
【国外来华专利技术】指令的相依性预测
所揭示的方面涉及在指令管线中执行的指令的相依性预测。更明确地说,一些方面是针对预测一或多个指令是否为条件性强加控制指令的相依指令,且在相依性的不正确预测的情况下,减轻相关联的惩罚。
技术介绍
指令的条件性执行是处理系统的常规特征。实例是条件性指令,例如条件性分支指令,其中条件性分支指令所采用的方向可取决于条件如何解决。举例来说,条件性分支指令可表示为“if<condition1>jump1”,其中,如果条件1评估为真,那么指令执行的操作流跳到jump1标记所指定的目标地址(此情形还可被称作正“采用”分支指令(jump1))。另一方面,如果条件1评估为假,那么在所述条件性分支指令之后,操作流可继续执行下一循序指令,而不跳到目标地址。(此情形也被称作不采用所述分支指令,或“不被采用”)。在某些指令集架构(ISA)下,不同于分支指令的指令可为条件性的,其中所述指令的行为将取决于相关条件。一般来说,其中将解决条件性指令的条件的方式将是未知的,直到所述条件性指令被执行为止。等待直到所述条件性指令被执行来确定条件为止可在经配置以用于并行和乱序执行的现代处理器中强加非所要的延迟。在条件性分支指令的情况下,所述延迟特别具有破坏性,因为其中分支指令得到解决的方向将决定跟随所述分支指令的指令操作流。为了改进指令级并行度(ILP)且最小化延迟,现代处理器可包含在条件性指令的执行之前预测条件性指令的条件的解决方案的机制。举例来说,实施分支预测机制来预测在执行条件性分支指令之前,将采用还是不采用所述条件性分支指令的方向。如果预测结果是错误的,那么将冲洗基于不正确的预测不当执行的指令。这导致被称为分支误预测惩罚的惩罚。如果预测结果是正确的,那么不会遇到分支误预测惩罚。分支预测机制可为静态或动态的。分支预测本身将等待时间添加到管线,另外被称为分支预测惩罚。当从指令高速缓冲存储器取指令并在指令管线中处理时,分支预测机制必须确定所取的指令是否为条件性指令,以及其是否为分支指令,且接着对条件性分支指令的可能方向做出预测。最小化与指令执行管线中的分支预测过程有关的暂停或气泡是合乎需要的。因此,分支预测机制力求在指令管线中尽可能早地做出预测。有时,与分支指令有关的预解码位或元数据存储在指令高速缓冲存储器中,这实现了分支预测的加速。此类预解码位可包含关于分支类型的信息(例如因为其涉及程序计数器(PC)值、其是直接还是间接分支,其是否是来自子例程的返回等)。预解码位还可包含关于分支指令的条件性的信息。虽然针对条件性指令存在以上预测机制,例如条件性在条件性指令本身内提供的条件性分支指令,但存在另一类较难预测的指令。此类包含行为由条件性强加控制指令控制的一或多个相依指令的块。举例来说,一些处理器ISA包含所谓的如果-那么(IT)类指令。IT指令通过对一或多个相依指令强加条件性来控制一或多个相依指令的IT块的行为。IT块中的相依指令跟随IT控制指令。更具体地说,IT控制指令可具有“如果”条件,基于其解决方案,确定一或多个相依“那么”指令的行为。以此方式,IT指令的使用使得有可能控制一或多个相依指令的块的行为。举例来说,“ITTTT”块可包含具有条件DE“如果”指令,接着是四个“那么”指令,其行为取决于条件性强加“如果”控制指令如何评估。以此方式,可针对其中一或多个指令的块取决于相同条件的情况实现编程效率。这些相依指令难以使用针对常规条件性指令的上述预测机制来预测,因为相依指令的行为由条件性强加控制指令控制。如果构成相依指令的相同指令前面不是条件性强加控制指令,那么其行为是非条件性的。因此,相依指令的可能行为无法存储在相依指令本身的预解码位中。换句话说,例如作为非条件性分支指令的相依指令的可能行为的预测是困难的,因为所述分支指令本身是非条件性的,且应始终预测为“采用”。然而,分支指令的实际方向取决于条件性强加控制指令,且因此,分支指令的行为可有效地为“采用”或“不采用”。此外,有时,不可能事先知晓特定指令是否为条件性强加控制指令的相依指令。这是因为含有条件性强加控制指令和对应相依指令的代码块可跨越指令存储器中的高速缓冲存储线边界。此外,条件性强加控制指令可以许多类型出现,并基于条件性强加控制指令的块大小(即,代码块中的一或多个相依指令的数目)而影响相依指令的不同数目。支持ARM架构的ISA例如包含被称为THUMB指令的一类指令。THUMB指令可为32位或16位。由于THUMB指令以多个指令长度出现,因此不可能知晓何时处理条件性强加控制指令(例如IT指令),对应的相依指令是否将包含在相同高速缓冲存储线内,因为IT指令的代码块中的字节的数目将取决于每一相依指令的长度。处置此类相依指令的执行的常规方法趋向于低效、复杂且费时。常规方法通过降低处理器的执行频率以便允许充分的时间来从条件性强加控制指令确定相依指令的条件性来操作。或者,常规方法引入管线暂停,以便在执行相依指令之前解决条件,或将条件性的解决方案移到后续管线级,从而增加分支预测惩罚。因此,本领域中需要避免常规方法的前述缺点。
技术实现思路
本专利技术的示范性方面是针对用于执行处理器的指令管线中的指令的系统和方法。举例来说,示范性方面是针对一种用于执行处理器的指令管线中的指令的方法,其中所述方法包括:检测条件性强加控制指令,其对一或多个相依指令的条件性块大小数目强加相依行为。在执行第一指令之前,所述方法包含:基于条件性块大小以及指令管线的一个或多个参数,相依性预测第一指令是条件性强加控制指令的相依指令;以及基于所述相依性预测来执行所述第一指令。当第一指令被相依性误预测时,减轻与相依性误预测相关联的惩罚。另一示范性方面是针对处理系统,其包括处理器,所述处理器经配置以执行指令管线中的指令。所述处理系统包含相依性预测逻辑,其经配置以:检测条件性强加控制指令,其对一或多个相依指令的条件性块大小数目强加相依行为;以及在执行第一指令之前,基于所述条件性块大小以及指令管线的一个或多个参数,相依性预测所述第一指令是条件性强加控制指令的相依指令。所述处理器经配置以基于所述相依性预测来执行所述第一指令。所述处理系统进一步包含经配置以在第一指令被相依性误预测时减轻与相依性误预测相关联的惩罚的逻辑。另一示范性方面是针对处理系统,其包括:用于执行指令管线中的指令的装置;用于检测对一或多个相依指令的条件性块大小数目强加相依行为的条件性强加控制指令的的装置;用于在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,相依性预测所述第一指令是条件性强加控制指令的相依指令的装置,其中所述用于执行指令管线中的指令的装置包括:用于基于相依性预测来执行第一指令的装置;以及用于在所述第一指令被相依性误预测时,减轻与相依性误预测相关联的惩罚的装置。另一示范性方面是针对包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时,致使所述处理器实施操作来执行处理器的指令管线中的指令,所述非暂时性计算机可读存储媒体包括:用于检测对一或多个相依指令的条件性块大小数目强加相依行为的条件性强加控制指令的代码;用于在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,相依性预测所述第一本文档来自技高网
...
指令的相依性预测

【技术保护点】
一种执行处理器的指令管线中的指令的方法,所述方法包括:检测对一或多个相依指令的条件性块大小数目强加相依行为的条件性强加控制指令;在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,相依性预测所述第一指令是所述条件性强加控制指令的相依指令;基于所述相依性预测来执行所述第一指令;以及当所述第一指令被相依性误预测时,减轻与所述相依性误预测相关联的惩罚。

【技术特征摘要】
【国外来华专利技术】2014.09.26 US 14/498,9381.一种执行处理器的指令管线中的指令的方法,所述方法包括:检测对一或多个相依指令的条件性块大小数目强加相依行为的条件性强加控制指令;在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,相依性预测所述第一指令是所述条件性强加控制指令的相依指令;基于所述相依性预测来执行所述第一指令;以及当所述第一指令被相依性误预测时,减轻与所述相依性误预测相关联的惩罚。2.根据权利要求1所述的方法,其中所述第一指令和所述条件性强加控制指令属于同一获取群组。3.根据权利要求1所述的方法,其中所述第一指令属于其中获取所述条件性强加控制指令的第一获取群组之后的第二获取群组。4.根据权利要求1所述的方法,其中所述一个或多个参数包括以下各项中的一或多者:所述指令管线的最大宽度;所述处理器中所实施的指令集架构ISA所支持的指令长度;或所述第一指令在所述指令管线的管线级内占用的一或多个预指定通道。5.根据权利要求1所述的方法,其中所述第一指令是分支指令。6.根据权利要求5所述的方法,其进一步包括方向预测所述分支指令以获得所述分支指令的方向的预测。7.根据权利要求6所述的方法,其进一步包括确定所述方向预测不正确,其中所述分支指令是非条件性分支指令,且减轻所述惩罚包括通过用所述不正确方向预测更新分支预测跟踪机制来训练所述分支预测跟踪机制。8.根据权利要求7所述的方法,其进一步包括基于所述经训练的分支预测跟踪机制来正确地方向预测所述第一指令的将来出现。9.根据权利要求1所述的方法,其中减轻所述惩罚包括阻止所述第一指令提交或更新存储器。10.根据权利要求9所述的方法,其进一步包括阻止跟随所述第一指令且具有与所述第一指令的数据相依性的一或多个指令提交或更新所述存储器。11.根据权利要求1所述的方法,其中所述条件性强加控制指令属于如果-那么IT类指令。12.一种处理系统,其包括:处理器,其经配置以执行指令管线中的指令;相依性预测逻辑,其经配置以:检测对一或多个相依指令的条件性块大小数目强加相依行为的条件性强加控制指令;以及在执行第一指令之前,基于所述条件性块大小以及所述指令管线的一个或多个参数,相依性预测所述第一指令是所述条件性强加控制指令的相依指令;其中所述处理器经配置以基于所述相依性预测来执行所述第一指令;以及经配置以在所述第一指令被相依性误预测时减轻与所述相依性误预测相关联的惩罚的逻辑。13.根据权利要求12所述的处理系统,其中所述第一指令和所述条件性强加控制指令属于同一获取群组。14.根据权利要求12所述的处理系统,其中所述第一指令属于其中获取所述条件性强加控制指令的第一获取群组之后的第二获取群组。15.根据权利要求12所述的处理系统,其中所述一个或多个参数包括以下各项中的一或多者:所述指令管线的最大宽度;所述处理器中所实施的指令集架构ISA所支持的指令长度;或所述第一指令在所述指令管线的管线级内占用的一或多个预指定通道。16.根据权利要求12所述的处理系统,其中所述第一指令是分支指令。17.根据权利要求16所述的处理系统,其进一步包括用以方向预测所述分支指令以获得所述分支指令的方向...

【专利技术属性】
技术研发人员:布莱恩·迈克尔·斯坦普尔詹姆斯·诺里斯·迪芬德尔费尔迈克尔·斯科特·麦克勒瓦伊内梅林达·乔伊丝·布朗
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1