通过对指令序列的近似监控的运行时代码并行化制造技术

技术编号:16388410 阅读:22 留言:0更新日期:2017-10-16 08:45
一种方法包括在执行程序代码的指令的处理器(20)中,识别包含至少部分重复的一个或更多个指令段的代码区域。监控该区域中的指令,并为该区域构建所监控的指令的寄存器访问的近似规范。使用规范来将对区域中的段的执行并行化。

【技术实现步骤摘要】
【国外来华专利技术】通过对指令序列的近似监控的运行时代码并行化专利
本专利技术总体上涉及处理器设计,并具体地涉及用于运行时代码并行化的方法和系统。专利技术背景已经提出了用于在运行时动态地并行化软件代码的各种技术。例如,Akkary和Driscoll在1998年12月的第31届微体系结构年度国际研讨会的论文集“ADynamicMultithreadingProcessor”中描述了实现单个程序的动态多线程执行的处理器架构,该文章通过引用并入本文。Marcuellu等人在1998年的第12届国际超级计算会议的论文集“SpeculativeMultithreadedProcessors”中描述了一种处理器微架构,该微架构通过不需要编译器或用户支持的控制推测技术来同时执行从单个程序获得的多个控制线程,该文章通过引用并入本文。Marcuello和Gonzales在1999年的13届国际超级计算会议的论文集“ClusteredSpeculativeMultithreadedProcessors”中提出了在运行时从单线程应用中产生推测性线程的微架构,该文章通过引用并入本文。在2000年的第14届并行与分布式处理国际研讨会的论文集“AQuantitativeAssessmentofThread-LevelSpeculationTechniques”(其通过引用并入本文)中,Marcuello和Gonzales分析了不同线程推测技术的益处以及线程单元中的值预测、分支预测、线程初始化开销和连接的影响。Ortiz-Arroyo和Lee在2003年的第16届并行与分布式计算系统的国际会议(PDCS'03)的论文集“DynamicSimultaneousMultithreadedArchitecture”中描述了被称为动态同时多线程(DSMT)的多线程架构,该多线程架构在同时多线程处理器核上执行来自单个程序的多个线程,该文章通过引用并入本文。美国专利申请公开2014/0282601(其公开内容通过引用并入本文)描述了用于通过块组织的源视图数据结构的依赖性广播的方法。该方法包括使用全局前端来接收输入指令序列,并将指令分组以形成指令块。多个寄存器模板被用于通过用对应于指令块的块号填充寄存器模板来跟踪指令目的地和指令源,其中,对应于指令块的块号指示指令块之间的相互依赖关系。填充块组织的源视图数据结构,其中,源视图数据结构存储如由多个寄存器模板所记录的与指令块相对应的源。在分派指令块的一个块时,属于一个块的数字被广播到源视图数据结构中的与该块相关的列,并相应地标记该列。根据广播来更新剩余指令块的依赖性信息。专利技术概述本文描述的本专利技术的实施例提供了一种方法,其包括在执行程序代码的指令的处理器中,识别包含至少部分重复的一个或更多个指令段的代码区域。监控该区域中的指令,并为该区域构建所监控的指令的寄存器访问的近似规范。使用该规范来将对区域中的段的执行并行化。在一些实施例中,识别区域包括选择在代码中具有公共起始点和公共结束点中的至少一个的多个段,并且构建近似规范包括构建相同的规范,以指定多个选定段中的寄存器访问。在实施例中,识别区域包括识别程序循环或函数。在公开的实施例中,近似规范与由段中的指令遍历的流控制轨迹相关联。在另一个实施例中,近似规范与由段中的指令遍历的多个替代流控制轨迹相关联。在示例实施例中,构建近似规范包括在规范中指示由指令访问的寄存器的标识,但不指示对寄存器的最后写入操作的位置。在另一个实施例中,构建近似规范包括:对于一个或更多个第一寄存器,指定对第一寄存器的相应最后写入操作在代码中的位置;以及对于一个或更多个第二寄存器,指定第二寄存器是否被写入,而不是对第二寄存器的最后写入操作的位置。在实施例中,第一寄存器包括被写入多达预定义的次数的寄存器,并且第二寄存器包括被写入多于预定义的次数的寄存器。在又一个实施例中,构建近似规范包括基于嵌入在程序代码中的指示来选择至少第一寄存器和至少第二寄存器,对于至少第一寄存器,规范将是近似的,对于至少第二寄存器,规范将是精确的。在又一个实施例中,构建近似规范包括将被监控的段划分为节段,并且对于每个节段,指定在该节段中被写入并且未在随后的节段中写入的寄存器。在实施例中,构建近似规范包括将被监控的段划分为节段,并且使用两个或更多个硬件线程来监控该节段。在一些实施例中,构建近似规范包括在规范中对于每个寄存器指定对寄存器的最后写入操作在代码中的近似位置,该近似位置不早于最后写入操作的精确位置。指定所述近似位置可以包括指定对寄存器的写入命令的近似数量,该近似数量不小于对寄存器的写入命令的精确数量。另外地或可替代地,指定近似位置可以包括基于在对指令的监控期间误预测的分支之后的一个或更多个指令来确定近似位置。在公开的实施例中,构建近似规范包括收集寄存器访问,而不管区域中的段之间可能的重叠。在另一个实施例中,构建近似规范包括将寄存器访问与一个或更多个先前收集的规范进行合并。在一些实施例中,构建近似规范包括将在两个或更多个段中收集的寄存器访问信息进行合并。在示例实施例中,合并寄存器访问信息包括对来自两个或更多个段的写入操作的相应的计数进行求和或者取其最大值。另外地或可替代地,合并寄存器访问信息可以包括合并来自两个或更多个段的寄存器的相应的分类。在实施例中,该方法包括对近似规范进行校正以补偿在所监控的指令中发生的分支误预测。在另一实施例中,构建近似规范包括基于以下项中的至少一个来收集寄存器访问:处理器的执行流水线中被解码的指令;在执行流水线中执行的指令;以及在执行流水线中提交的指令。在又一个实施例中,监控指令包括基于以下项中的至少一个来生成所监控的指令的至少一个流控制轨迹:在处理器的执行流水线中从存储器提取的指令;在执行流水线中被解码的指令;以及在执行流水线中执行的指令,或者基于在执行流水线中提交的指令。根据本专利技术的实施例,另外提供了包括执行流水线和监控单元的处理器。执行流水线被配置为执行程序代码的指令。监控单元被配置为识别包含至少部分重复的一个或更多个指令段的代码区域,监控该区域中的指令并且为该区域构建由所监控的指令的寄存器访问的近似规范,并使用规范来并行化对区域中的段的执行。根据结合附图进行的本专利技术的实施例的以下详细描述,本专利技术将得到更完全地理解,其中:附图简述图1是根据本专利技术的实施例示意性地示出了执行运行时代码并行化的处理器的框图;图2A-2C是根据本专利技术的实施例示意性地示出包含至少部分重复的段的代码区域的图;以及图3是根据本专利技术的实施例示意性地示出用于使用不精确的指令监控来进行运行时代码并行化的方法的流程图。实施例的详细描述综述本文描述的本专利技术的实施例提供了用于在处理器中对代码的运行时并行化的改进的方法和设备。在所公开的实施例中,处理器识别包含至少部分重复的一个或更多个指令段的代码区域。处理器使用“记分板”(由该区域中的指令对寄存器的访问的规范)来对所识别的区域的执行进行并行化。例如,处理器可以调用多个硬件线程来执行相应的段,并且决定如何以及何时基于记分板并行化线程。在一些实施例中,处理器在记分板中指定近似而不是精确的寄存器访问信息。在各种实施例中,对于至少一个寄存器,在可以省略一些寄存器访问信息的意义上,规范是近似的本文档来自技高网...
通过对指令序列的近似监控的运行时代码并行化

【技术保护点】
一种方法,包括:在执行程序代码的指令的处理器中,识别所述代码中的包含至少部分重复的一个或更多个指令段的区域;监控所述区域中的指令,以及在运行时为所述区域构建近似规范,所述近似规范至少指定被所监控的指令写入的一个或更多个寄存器的标识;以及至少基于如在所述近似规范中的指定的被写入的所述寄存器的标识,将对所述区域中的段的执行并行化。

【技术特征摘要】
【国外来华专利技术】2015.03.04 US 14/637,4181.一种方法,包括:在执行程序代码的指令的处理器中,识别所述代码中的包含至少部分重复的一个或更多个指令段的区域;监控所述区域中的指令,以及在运行时为所述区域构建近似规范,所述近似规范至少指定被所监控的指令写入的一个或更多个寄存器的标识;以及至少基于如在所述近似规范中的指定的被写入的所述寄存器的标识,将对所述区域中的段的执行并行化。2.根据权利要求1所述的方法,其中,识别所述区域包括选择在所述代码中具有公共起始点和公共结束点中的至少一个的多个段,并且其中,构建所述近似规范包括构建相同的规范,以指定多个选定段中的寄存器访问信息。3.根据权利要求1所述的方法,其中,识别所述区域包括识别程序循环或函数。4.根据权利要求1所述的方法,其中,所述近似规范与由所述段中的指令遍历的流控制轨迹相关联。5.根据权利要求1所述的方法,其中,所述近似规范与由所述段中的指令遍历的多个替代的流控制轨迹相关联。6.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括在所述规范中指示由所述指令访问的寄存器的标识,但不指示对所述寄存器的最后写入操作的位置。7.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括:对于一个或更多个第一寄存器,指定对所述第一寄存器的相应最后写入操作在所述代码中的位置;以及对于一个或更多个第二寄存器,指定所述第二寄存器是否被写入,但不指定对所述第二寄存器的最后写入操作的位置。8.根据权利要求7所述的方法,其中,所述第一寄存器包括被写入多达预定义的次数的寄存器,并且其中,所述第二寄存器包括被写入多于所述预定义的次数的寄存器。9.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括基于嵌入在所述程序代码中的指示来选择至少第一寄存器和至少第二寄存器,对于所述至少第一寄存器,所述规范将是近似的,对于所述至少第二寄存器,所述规范将是精确的。10.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括将被监控的段划分为节段,并且对于每个节段,指定在所述节段中被写入并且未在随后的节段中写入的寄存器。11.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括将被监控的段划分为节段,并且使用两个或更多个硬件线程来监控所述节段。12.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括在所述规范中对于每个寄存器指定对所述寄存器的最后写入操作在所述代码中的近似位置,所述近似位置不早于所述最后写入操作的精确位置。13.根据权利要求12所述的方法,其中,指定所述近似位置包括指定对所述寄存器的写入命令的近似数量,所述近似数量不小于对所述寄存器的写入命令的精确数量。14.根据权利要求12所述的方法,其中,指定所述近似位置包括基于在对所述指令的监控期间误预测的分支之后的一个或更多个指令来确定所述近似位置。15.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范包括收集寄存器访问信息,而不管所述区域中的段之间的可能的重叠。16.根据权利要求1-5中任一项所述的方法,其中,构建所述近似规范...

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

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

1