通过连续监控重复指令序列的运行时代码并行化制造技术

技术编号:15919195 阅读:33 留言:0更新日期:2017-08-02 04:25
一种方法包括,在执行程序代码的指令的处理器(20)中,监控遍历流控制轨迹的指令的重复序列中的指令,以构造所监控的指令进行的寄存器访问的规范。基于该规范,调用多个硬件线程以至少部分地并行地执行重复指令序列的相应段。在执行期间,在段的至少一个中继续进行对指令的监控。

【技术实现步骤摘要】
【国外来华专利技术】通过连续监控重复指令序列的运行时代码并行化专利
本专利技术总体上涉及处理器设计,并具体地涉及用于运行时代码并行化的方法和系统。专利技术背景已经提出了用于在运行时动态地并行化软件代码的各种技术。例如,Akkary和Driscoll在1998年12月的第31届微体系结构年度国际研讨会的论文集“ADynamicMultithreadingProcessor”中描述了实现单个程序的动态多线程执行的处理器架构,该文章通过引用并入本文。Marcuellu等人在1998年的第12届国际超级计算会议的论文集“SpeculativeMultithreadedProcessors”中描述了一种处理器微架构,该微架构通过不需要编译器或用户支持的控制推测技术来同时执行从单个程序获得的多个控制线程,该文章通过引用并入本文。Marcuello和Gonzales在1999年的第13届国际超级计算会议的论文集“ClusteredSpeculativeMultithreadedProcessors”中提出了在运行时从单线程应用中产生推测性线程的微架构,该文章通过引用并入本文。在2000年的第14届并行与分布式处理本文档来自技高网...
通过连续监控重复指令序列的运行时代码并行化

【技术保护点】
一种方法,包括:在执行程序代码的指令的处理器中,监控遍历流控制轨迹的指令的重复序列中的指令,以构造由所监控的指令进行的寄存器访问的规范;基于所述规范,调用多个硬件线程以至少部分并行地执行所述重复指令序列的相应段;以及在执行期间继续监控所述段中的至少一个中的指令。

【技术特征摘要】
【国外来华专利技术】2014.12.22 US 14/578,516;2014.12.22 US 14/578,5181.一种方法,包括:在执行程序代码的指令的处理器中,监控遍历流控制轨迹的指令的重复序列中的指令,以构造由所监控的指令进行的寄存器访问的规范;基于所述规范,调用多个硬件线程以至少部分并行地执行所述重复指令序列的相应段;以及在执行期间继续监控所述段中的至少一个中的指令。2.根据权利要求1所述的方法,其中,继续监控所述指令包括响应于在给定段中检测到对不同流控制轨迹的变化,通过监控沿着所述不同流控制轨迹的指令来创建并构造用于所述不同流控制轨迹的不同规范。3.根据权利要求2所述的方法,并且包括在监控所述不同流控制轨迹之后,保存所述不同规范或所述不同流控制轨迹。4.根据权利要求1或2所述的方法,其中,所述重复序列包括循环或函数。5.根据权利要求1或2所述的方法,其中,继续监控所述指令包括继续监控所有段。6.根据权利要求1或2所述的方法,其中,继续监控所述指令包括继续监控跟随所述流控制轨迹的所述段中的至少一个子集。7.根据权利要求1或2所述的方法,其中,继续监控所述指令包括选择所述段的部分子集,并且继续监控所选择的子集中的段。8.根据权利要求7所述的方法,其中,选择所述子集包括以下操作中的至少一个:选择用于继续监控的被创建的每第N个段;根据预定义的周期模式,选择用于继续监控的段;以及随机选择用于继续监控的段。9.根据权利要求1或2所述的方法,并且包括在中止所述重复序列之后的给定数量的周期、指令或微操作内终止对给定段中的指令的监控。10.根据权利要求9所述的方法,并且包括基于为具有不同控制流轨迹的不同段设置的所述给定数量,设置所述给定段的所述给定数量。11.一种处理器,包括:执行流水线,所述执行流水线被配置为执行程序代码的指令;以及监控单元,所述监控单元被配置为监控识别的遍历流控制轨迹的重复指令序列的指令,以便构造所监控的指令进行的寄存器访问的规范,基于所述规范,调用所述执行流水线中的多个硬件线程以至少部分并行地执行所述重复指令序列的相应段,并且在执行期间继续监控所述段中的至少一个中的指令。12.根据权利要求11所述的处理器,其中,响应于在给定段中检测到对不同流控制轨迹的变化,所述监控单元被配置为通过监控沿着所述不同流控制轨迹的指令来创建并构造用于所述不同流控制轨迹的不同规范。13.根据权利要求12所述的处理器,其中,在监控所述不同流控制轨迹之后,所述监控单元被配置为保存所述不同规范或所述不同流控制轨迹。14.根据权利要求11或12所述的处理器,其中,所述重复序列包括循环或函数。15.根据权利要求11或12所述的处理器,其中,所述监控单元被配置为继续监控所有段。16.根据权利要求11或12所述的处理器,其中,所述监控单元被配置为继续监控跟随所述流控制轨迹的所述段中的至少一个子集。17.根据权利要求11或12所述的处理器,其中,所述监控单元被配置为选择所述段的部分子集,并且继续监控所选择的子集中的段。18.根据权利要求17所述的处理器,其中,所述监控单元被配置为通过执行以下操作中的至少一个来选择所述子集:选择用于继续监控的被创建的每第N个段;根据预定义的周期模式,选择用于继续监控的段;以及随机选择用于继续监控的段。19.根据权利要求11或12所述的处理器,其中,所述监控单元被配置为在中止所述重复序列之后的给定数量的周期、指令或微操作内终止对给定段中的指令的监控。20.根据权利要求19所述的处理器,其中,所述监控单元被配置为基于为具有不同控制流轨迹的不同段设置的所述给定数量来设置所述给定段的所述给定数量。21.一种方法,包括:在执行程序代码的指令的处理器中,监控指令的重复序列中的指令,以构造所监控的指令进行的寄存器访问的规范;基于所监控的指令,对终止标准进行评估;如果满足所述终止标准,则终止对所述指令的监控;以及如果对所述指令的所述监控在不满足所述终止标准的情况下结束,则基于所述规范来将所述重复指令序列的多个段的执行并行化。22.根据权利要求21所述的方法,其中,所述终止标准取决于以下项中的至少一个:对寄存器的最后写入的位置、被写入的寄存器的数目、指令或微操作的计数、执行周期的计数或分支指令的数目超过阈值;所述监控到达先前监控的所述程序代码中的位置;所述监控到达被识别为重复的所述程序代码中的位置;分支误预测发生在所述监控期间或之前;以及所述处理器的一个或更多个标志作为全局或全局-局部的分类。23.根据权利要求21所述的方法,其中,所述规范与由所监控的指令遍历的流控制轨迹唯一地相关联。24.根据权利要求21所述的方法,其中,所述规范与由所监控的指令遍历的两个或更多个流控制轨迹相关联。25.根据权利要求21-24中任一项所述的方法,其中,在所述处理器的执行流水线中对所述指令进行解码之后立即执行对所述指令的监控。26.根据权利要求21-24中任一项所述的方法,其中,在所述处理器的执行流水线中执行所述指令之前执行对所述指令的监控,包括监控随后将被清除的推测性指令。27.根据权利要求21-24中任一项所述的方法,并且包括在整个所述监控期间保留所述寄存器的相应名称。28.一种方法,包括:在执行程序代码的指令的处理器中,监控指令的重复序列,并且对由所监控的指令访问的寄存器根据其中每个寄存器被所述指令用作操作数或目的地的相应顺序来进行分类;以及基于所述寄存器的分类,将所述重复序列的多个段的执行并行化。29.根据权利要求28所述的方法,其中,对所述寄存器进行分类包括将所述寄存器中的至少一些分类为以下寄存器中的一个:局部寄存器,所述局部寄存器在所监控的序列中的第一次出现是作为目的地;全局寄存器,所述全局寄存器在所监控的序列中仅用作操作数;以及全局-局部寄存器,所述全局-局部寄存器在所监控的序列中的第一次出现是作为操作数,并且随后在所监控的序列中被用作目的地。30.根据权利要求28所述的方法,其中,对所述寄存器进行分类包...

【专利技术属性】
技术研发人员:诺姆·米兹拉希阿尔贝托·曼德勒莎伊·科伦乔纳森·弗里德曼
申请(专利权)人:森蒂彼得塞米有限公司
类型:发明
国别省市:以色列,IL

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

1