【技术实现步骤摘要】
用于运行时并行化的对于代码段的顺序监测和管理专利
本专利技术总体上涉及处理器设计,特别是涉及用于运行时代码并行化的方法和系统。专利技术背景已经提出了用于在运行时使软件代码动态并行化的各种技术。例如,Marcuellu等人在1998年的Proceedingsofthe12thInternationalConferenceonSupercomputing中发表的“SpeculativeMultithreadedProcessors”中描述了一种处理器微架构,其依靠不需要编译器或用户支持的控制推测(controlspeculation)技术,同时执行从单个程序获得的多个控制线程,其内容通过引用并入本文。Codrescu和Wills在2000年10月的JournalofUniversalComputerScience第10期第6卷第908-927页上的“OnDynamicSpeculativeThreadPartitioningandtheMEM-slicingAlgorithm”中描述了一种动态推测多线程处理器,其在没有软件支持的情况下自动提取来自顺序二进制应用的线程级并行性,其内容通过引用并入本文。专利技术概述在本文中描述的本专利技术的实施例提供了一种包括指令流水线和控制电路的处理器。指令流水线被配置为处理程序代码的指令。控制电路被配置成在运行时监测被处理的指令(instructions),以构建包括多个条目的调用数据结构,其中,每个条目(i)指定作为分支指令(branchinstruction)的目标的初始指令,(ii)指定遵循从初始指令开始的一个或更多 ...
【技术保护点】
一种处理器,包括:指令流水线,所述指令流水线被配置成处理程序代码的指令;以及控制电路,所述控制电路被配置成在运行时监测被处理的指令,以构建包括多个条目的调用数据结构,其中,每个条目(i)指定作为分支指令的目标的初始指令,(ii)指定所述程序代码中的遵循从所述初始指令开始的一个或更多个可能的流控制轨迹的一部分,以及(iii)针对在所述条目中指定的每个可能的流控制轨迹,指定在对所述可能的流控制轨迹进行处理之后将要处理的下一个条目,并且将所述指令流水线配置为通过连续地遍历所述调用数据结构的条目来处理所述程序代码中的段。
【技术特征摘要】
2016.06.29 US 15/196,0711.一种处理器,包括:指令流水线,所述指令流水线被配置成处理程序代码的指令;以及控制电路,所述控制电路被配置成在运行时监测被处理的指令,以构建包括多个条目的调用数据结构,其中,每个条目(i)指定作为分支指令的目标的初始指令,(ii)指定所述程序代码中的遵循从所述初始指令开始的一个或更多个可能的流控制轨迹的一部分,以及(iii)针对在所述条目中指定的每个可能的流控制轨迹,指定在对所述可能的流控制轨迹进行处理之后将要处理的下一个条目,并且将所述指令流水线配置为通过连续地遍历所述调用数据结构的条目来处理所述程序代码中的段。2.根据权利要求1所述的处理器,其中,所述控制电路被配置成对于流过所述流水线的全部的所述指令连续地监测所述指令,使得所述调用数据结构向着覆盖整个程序代码逐渐生长。3.根据权利要求1所述的处理器,其中,所述控制电路被配置成响应于(i)对于当前监测过程的每次终止,(ii)对于尚未指定下一个条目的条目的每次遍历,以及(iii)对于在所述调用数据结构中不存在其指定的下一个条目的每次遍历,触发对于后续指令的监测。4.根据权利要求1所述的处理器,其中,响应于终止对于流控制轨迹的监测,所述控制电路被配置为或者(i)触发对于所述调用数据库中的与继被终止的流控制轨迹之后的指令对应的给定条目的遍历,或者(ii)触发对于继所述被终止的流控制轨迹之后的指令的监测。5.根据权利要求1所述的处理器,其中,所述控制电路被配置成将所述可能的流控制轨迹中的每一个限定为在相应的分支指令中结束。6.根据权利要求1所述的处理器,其中,所述控制电路被配置为通过以下方式构建所述调用数据结构:当所述处理器处理在给定条目中指定的给定流控制轨迹上的指令时,识别针对所述给定流控制轨迹未指定下一个条目;以及监测所述处理器在所述给定流控制轨迹之后处理的所述程序代码的新部分,并将所述新部分添加到所述调用数据库。7.根据权利要求1所述的处理器,其中,所述控制电路被配置成响应于满足预定义的终止准则而决定终止对于新的流控制轨迹的监测,然后将所述新的流控制轨迹添加到所述调用数据库。8.根据权利要求7所述的处理器,其中,所述控制电路被配置成响应于下列各项中的一项或更多项来满足所述终止准则:达到间接分支指令;达到对函数的调用;达到对函数的间接调用;达到从函数的返回;达到反向分支指令;达到预定数量的反向分支指令;遇到分支误预测;达到已经属于所述调用数据库中的现有条目的指令;检测到所述新部分超过预定数量的循环迭代;以及检测到所述新部分超过预定义的大小。9.根据权利要求7所述的处理器,其中,所述终止准则是部分随机的。10.根据权利要求7所述的处理器,其中,所述控制电路被配置成检测所述新的流控制轨迹包含所述调用数据库中已经指定的现有流控制轨迹或者被包含在所述调用数据库中已经指定的现有流控制轨迹中,并且仅保留所述现有流控制轨迹和所述新的流控制轨迹之一。11.根据权利要求1所述的处理器,其中,所述调用数据结构中的每个可能的流控制轨迹包括以下之一:第一类型,所述第一类型通过返回到所述初始指令或返回到继分支到所述初始指令的函数调用之后的指令来结束;以及第二类型,所述第二类型通过分支出所述程序代码中的所述一部分来结束。12.根据权利要求1所述的处理器,其中,所述控制电路被配置成配置所述指令流水线以通过至少部分地并行调用所述段中的两个或更多个...
【专利技术属性】
技术研发人员:莎伊·科伦,阿里·哈科恩·本·波拉特,伊多·戈伦,诺姆·米兹拉希,乔纳森·弗里德曼,
申请(专利权)人:森蒂彼得塞米有限公司,
类型:发明
国别省市:以色列,IL
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。