当前位置: 首页 > 专利查询>英特尔公司专利>正文

对基于高性能串的循环加速器中的加载做控制推测的方法技术

技术编号:18367175 阅读:82 留言:0更新日期:2018-07-05 08:10
本发明专利技术涉及一种对基于高性能串的循环加速器中的加载做控制推测的方法。一种装置包括二进制翻译器,用以将条件语句的分支中的加载指令提升超过条件语句并且在条件语句的补充分支中插入加载的推测控制(SCL)指令,其中SCL指令提供对在加载指令被提升之前的加载指令的真实程序顺序(RPO)的指示。装置进一步包括执行电路,用以执行加载指令以实行加载并且使得针对加载指令的条目被插入在排序缓冲器中,并且其中执行电路要执行SCL指令以使用由SCL指令提供的加载指令的RPO来定位排序缓冲器中的针对加载指令的条目并且从排序缓冲器丢弃针对加载指令的条目。

Method of controlling inference for loading based on high performance string accelerator

The present invention relates to a method of controlling speculation in a cyclic accelerator based on high performance strings. A device that includes a binary translator to elevate the loading instruction in the branch of a conditional statement beyond the conditional statement and inserts a loaded speculative control (SCL) instruction in the supplementary branch of the conditional statement, in which the SCL instruction provides a real program order (RPO) for the loading instruction before the loading instruction is promoted. Instructions. The device further includes an executive circuit for executing loading instructions to load and inserting an entry for the loading instruction in the sorted buffer, and in which the execution circuit executes the SCL instruction to locate the entry for the loading instruction in the sort buffer by using the RPO of the loading instruction provided by the SCL instruction. And discard entries for loading instructions from the sorted buffer.

【技术实现步骤摘要】
对基于高性能串的循环加速器中的加载做控制推测的方法
本专利技术的实施例涉及计算领域;并且更具体地,涉及对基于串(strand)的循环加速器中的加载执行控制推测的领域。
技术介绍
推测性执行是一种优化技术,其中计算机系统在知道一些任务是否将被需要之前提前执行所述任务,以便防止将由在已经知道需要所述任务之后执行该任务所招致的任何延迟。现代流水线化微处理器采用推测性执行来使用基于分支执行的历史行为而预测程序的执行路径的方案减小条件分支指令的成本。例如,可以将加载指令提升(hoist)超过包括条件语句(例如,If-语句或if-then-else语句)的一些在前指令,来隐藏存储器访问等待时间。通过将加载指令提升超过条件语句,在知道是否将需要加载之前执行与加载指令对应的加载。将加载指令提升超过条件语句的这样的技术被称为控制推测。为了确保在采用控制推测时的恰当的程序执行,需要解决以下问题以便确保正确的程序执行:(1)牢记加载指令在提升之前的原始位置;(2)在执行推测性加载时,保持包括潜在异常的所有结果达一些时间;(3)在控制流经过加载的原始位置时向架构状态公开推测性加载的结果;以及(4)如果控制流没有经过加载的原始位置,则丢弃推测性加载的结果。附图说明通过参考以下描述和用来图示本专利技术的实施例的附图,可以最好地理解本专利技术。在各图中:图1是图示根据一些实施例的处理器的示意图,所述处理器实现控制推测以使能基于高度并行的串的架构中的高水平的迭代间并行性;图2是图示根据一些实施例的系统的示意图,所述系统实现控制推测以使能基于高度并行的串的架构中的高水平的迭代间并行性;图3是图示根据一些实施例的排序缓冲器的示意图;图4A是图示根据一些实施例的可以应用控制推测的示例性源代码的示意图;图4B是图示根据一些实施例的针对在应用控制推测之前的在图4A中示出的源代码的示例性汇编代码的示意图;图4C是图示根据一些实施例的针对在应用控制推测之后的在图4A中示出的源代码的示例性汇编代码的示意图;图5是根据一些实施例的用以实现控制推测的过程的流程图,所述控制推测使能基于高度并行的串的架构中的高水平的迭代间并行性;图6A-6B是图示根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图;图6A是图示根据本专利技术的实施例的通用向量友好指令格式及其类别A指令模板的框图;图6B是图示根据本专利技术的实施例的通用向量友好指令格式及其类别B指令模板的框图;图7A是图示根据本专利技术的实施例的示例性特定向量友好指令格式的框图;图7B是图示根据本专利技术的一个实施例的组成全操作码字段674的特定向量友好指令格式700的字段的框图;图7C是图示根据本专利技术的一个实施例的组成寄存器索引字段644的特定向量友好指令格式700的字段的框图;图7D是图示根据本专利技术的一个实施例的组成扩增操作字段650的特定向量友好指令格式700的字段的框图;图8是根据本专利技术的一个实施例的寄存器架构800的框图;图9A是图示根据本专利技术的实施例的示例性有序流水线和示例性寄存器重命名、无序发出/执行流水线二者的框图;图9B是图示根据本专利技术的实施例的要被包括在处理器中的示例性寄存器重命名、无序发出/执行架构核心和有序架构核心的示例性实施例二者的框图;图10A-B图示了更具体的示例性有序核心架构的框图,所述核心将是芯片中的(包括相同类型和/或不同类型的其它核心的)若干逻辑块中的一个;图10A是根据本专利技术的实施例的单个处理器核心连同其到管芯上互连网络1002的连接并且连同其级别2(L2)高速缓存1004的本地子集的框图;图10B是根据本专利技术的实施例的图10A中的处理器核心的部分的展开图;图11是根据本专利技术的实施例的处理器1100的框图,所述处理器1100可能具有不止一个核心,可能具有集成存储器控制器,并且可能具有集成图形;图12-15是示例性计算机架构的框图;图12示出了依照本专利技术的一个实施例的系统的框图;图13是依照本专利技术的实施例的第一个更具体的示例性系统的框图;图14是依照本专利技术的实施例的第二个更具体的示例性系统的框图;图15是依照本专利技术的实施例的SoC的框图;以及图16是根据本专利技术的实施例的对比软件指令转换器的使用的框图,所述软件指令转换器用以将源指令集中的二进制指令转换成目标指令集中的二进制指令。具体实施方式在以下详细描述中,参考形成本申请的一部分的附图,其中相同的数字自始至终指定相同的部分,并且在所述附图中通过图示的方式示出了可以实践的实施例。要理解,在不脱离本公开的范围的情况下,可以利用其它实施例并且可以做出结构的或逻辑的改变。因此,将不在限制性的意义上理解以下详细描述,并且实施例的范围由所附权利要求及其等同物限定。可以以最有助于理解所要求保护的主题的方式将各种操作依次描述为多个离散的动作或操作。然而,不应当将描述的顺序解释为暗示这些操作必然是依赖顺序的。特别地,这些操作可以不以呈现的顺序执行。所描述的操作可以以与所描述的实施例不同的顺序来执行。在附加实施例中,可以执行各种附加操作和/或可以省略所描述的操作。出于本公开的目的,短语“A和/或B”意味着(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。描述可以使用短语“在一个实施例中”或“在多个实施例中”,其每个可以表示相同或不同实施例中的一个或多个。此外,如关于本公开的实施例所使用的术语“包括”、“包含”、“具有”等是同义的。为了确保在采用控制推测时的恰当的程序执行,需要解决以下问题:(1)牢记加载指令在提升之前的原始位置;(2)在执行推测性加载时,保持包括潜在异常的所有结果达一些时间;(3)在控制流经过加载的原始位置时向架构状态公开推测性加载的结果;以及(4)如果控制流没有经过加载的原始位置,则丢弃推测性加载的结果。可以以若干不同的方式实现控制推测。在常规的具有单个指令流的通用处理器中,加载指令被分成两个指令:推测性加载(ld.s)和推测检查(chk.s)。ld.s指令被提升并且提前执行加载。作为结果,ld.s指令将正确的存储器值或异常令牌加载到架构寄存器(但不像常规加载指令将会的那样递送异常)。chk.s指令验证推测被确认,并且如果推测被确认,则向加载客户递送异常或正确的结果。在本文中公开的实施例提供了二进制翻译器辅助的控制推测方案,其使能多串循环处理器中的高水平的迭代间并行性。根据一些实施例,二进制翻译器将条件语句的分支中的加载指令提升超过条件语句并且在条件语句的赠送分支(complimentarybranch)中插入特殊指令,所述特殊指令被称作加载的推测控制(SCL)指令。(与经提升的加载指令对应的)加载的结果被保存在排序缓冲器中直到要有序地执行的引退。在推测被确认(控制流进入条件语句的包括原始加载指令的分支)的情况下,不需要采取其它动作。在推测不正确(控制流进入条件语句的赠送分支)的情况下,执行插入在赠送分支中的SCL指令以从排序缓冲器丢弃加载的结果,这有效地取消了经提升的加载的结果,好像没有执行过加载一样。在本文中公开的实施例的优点是在推测被确认时其没有向控制流路径中引入额外的指令(这与潜在地使关键路径不利的插入chk.s指令或本文档来自技高网...
对基于高性能串的循环加速器中的加载做控制推测的方法

【技术保护点】
1.一种装置,包括:二进制翻译器,用以将条件语句的分支中的加载指令提升超过条件语句并且在条件语句的补充分支中插入加载的推测控制(SCL)指令,其中SCL指令提供对在加载指令被提升之前的加载指令的真实程序顺序(RPO)的指示;排序缓冲器;以及执行电路,用以执行加载指令以实行加载并且在排序缓冲器中插入针对加载指令的条目,其中针对加载指令的条目包括加载指令的RPO和加载的结果,并且其中执行电路要执行SCL指令以使用由SCL指令提供的加载指令的RPO来定位排序缓冲器中的针对加载指令的条目并且从排序缓冲器丢弃针对加载指令的条目。

【技术特征摘要】
2016.12.27 US 15/3917891.一种装置,包括:二进制翻译器,用以将条件语句的分支中的加载指令提升超过条件语句并且在条件语句的补充分支中插入加载的推测控制(SCL)指令,其中SCL指令提供对在加载指令被提升之前的加载指令的真实程序顺序(RPO)的指示;排序缓冲器;以及执行电路,用以执行加载指令以实行加载并且在排序缓冲器中插入针对加载指令的条目,其中针对加载指令的条目包括加载指令的RPO和加载的结果,并且其中执行电路要执行SCL指令以使用由SCL指令提供的加载指令的RPO来定位排序缓冲器中的针对加载指令的条目并且从排序缓冲器丢弃针对加载指令的条目。2.权利要求1的装置,其中执行电路要基于确定排序缓冲器是否包括具有与由SCL指令提供的加载指令的RPO匹配的RPO的条目来确定针对加载指令的条目是否在排序缓冲器中。3.权利要求1的装置,其中由SCL指令提供的对加载指令的RPO的指示是增量值,其指示SCL指令的RPO与加载指令的RPO之间的差异。4.权利要求3的装置,其中执行电路要基于将增量值添加到SCL指令的RPO来确定加载指令的RPO。5.权利要求4的装置,其中执行电路要在SCL指令的解码阶段期间确定SCL指令的RPO。6.权利要求1-3中的任一个的装置,其中执行电路要以RPO顺序来处理排序缓冲器中的条目以用于加载指令引退。7.权利要求1-3中的任一个的装置,其中SCL指令进一步提供对加载指令的目的地寄存器的模式的指示,其中执行电路要根据由SCL指令提供的对模式的指示将目的地寄存器设置成空状态或满状态。8.一种方法,包括:将条件语句的分支中的加载指令提升超过条件语句;在条件语句的补充分支中插入加载的推测控制(SCL)指令,其中SCL指令提供对在加载指令被提升之前的加载指令的真实程序顺序(RPO)的指示;执行加载指令以实行加载并且在排序缓冲器中插入针对加载指令的条目,其中针对加载指令的条目包括加载指令的RPO和加载的结果;以及执行SCL指令以使用由SCL指令提供的加载指令的RPO来定位排序缓冲器中的针对加载指令的条目并且从排序缓冲器丢弃针对加载指令的条目。9.权利要求8的方法,进一步包括:基于确定排序缓冲器是否包括具有与由SCL指令提供的加载指令的RPO匹配的RPO的条目来确定针对加...

【专利技术属性】
技术研发人员:AY奥斯塔内维奇SP舍尔比宁J伊耶尔DM马斯伦尼科夫DG莫廷AV埃尔莫洛维奇A楚德诺韦茨SA罗兹科夫BA巴巴彦
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1