This application involves refreshing in a parallelized processor. One way is to extract program code instructions at runtime when pipelined processors are in different order with the order of instructions in program code. The instructions are divided into segments with a segment identifier (ID). An event that ensures that the instruction begins to be refreshed from the instruction that belongs to the segment. In response to this event, at least some instructions after the instruction in the segment are refreshed from the pipeline based on segment ID, and at least some instructions in one or more subsequent segments after the segment.
【技术实现步骤摘要】
在并行化处理器中的刷新专利
本专利技术大体上涉及处理器设计,特别是用于刷新指令的方法和系统。专利技术背景已经提出了用于在运行时使软件代码动态并行化的各种技术。例如,Marcuellu等人在1998年的第12届国际超级计算会议的论文集“SpeculativeMultithreadedProcessors”中描述了一种处理器微架构,其借助于不需要编译器或用户支持的控制推测技术,同时执行从单个程序获得的多个控制线程,其内容通过引用并入本文。专利技术概述本文中所描述的本专利技术的实施例提供一种方法,其包括在具有流水线的处理器中,以与程序代码中的指令的出现顺序不同的顺序在运行时提取程序代码的指令。指令被划分成具有段标识符(ID)的段。检测保证从属于段的指令开始刷新指令的事件。响应于该事件,段中的在该指令之后的至少一些指令以及在段之后的一个或更多个后续段中的至少一些指令基于段ID被从流水线刷新。在实施例中,检测事件包括检测分支误预测。在另一实施例中,检测事件包括检测未被预测的分支指令。在又一实施例中,检测事件包括检测在储存之前加载的依赖性违规(violation)。在一些实施例中,刷新指令包括基于段ID从流水线的级或从在流水线的级之间缓冲指令的缓冲区刷新指令。在示例实施例中,刷新指令包括通过耦合到级或缓冲区的电路来检查段ID,以及由该电路决定刷新指令中的哪个指令。在另一实施例中,刷新指令包括基于段ID仅刷新在缓冲区被缓冲的指令的部分子集。在公开的实施例中,流水线包括多个并行硬件线程,并且处理单个程序的段包括在多个硬件线程之中分布段。在实施例中,指令由第一硬件线程处 ...
【技术保护点】
一种方法,包括:在具有流水线的处理器中,以与程序代码中的指令的出现顺序不同的顺序,在运行时提取所述程序代码的指令;将所述指令划分成具有段标识符(ID)的段;检测保证从属于段的指令开始刷新指令的事件;以及响应于所述事件,基于所述段ID,从所述流水线刷新在所述段中的所述指令之后的指令中的至少一些指令以及在所述段之后的一个或更多个后续段中的指令中的至少一些指令。
【技术特征摘要】
2016.10.05 US 15/285,5551.一种方法,包括:在具有流水线的处理器中,以与程序代码中的指令的出现顺序不同的顺序,在运行时提取所述程序代码的指令;将所述指令划分成具有段标识符(ID)的段;检测保证从属于段的指令开始刷新指令的事件;以及响应于所述事件,基于所述段ID,从所述流水线刷新在所述段中的所述指令之后的指令中的至少一些指令以及在所述段之后的一个或更多个后续段中的指令中的至少一些指令。2.根据权利要求1所述的方法,其中,检测所述事件包括检测分支误预测。3.根据权利要求1所述的方法,其中,检测所述事件包括检测未被预测的分支指令。4.根据权利要求1所述的方法,其中,检测所述事件包括检测在储存之前加载的依赖性违规。5.根据权利要求1所述的方法,其中,刷新所述指令包括基于所述段ID从所述流水线的级或从在所述流水线的级之间缓冲所述指令的缓冲区来刷新所述指令。6.根据权利要求5所述的方法,其中,刷新所述指令包括通过耦合到所述级或所述缓冲区的电路来检查所述段ID,以及通过所述电路来决定刷新所述指令中的哪个指令。7.根据权利要求5所述的方法,其中,刷新所述指令包括基于所述段ID仅刷新在所述缓冲区中被缓冲的所述指令的部分子集。8.根据权利要求1所述的方法,其中,所述流水线包括多个并行硬件线程,以及其中,处理单个程序的所述段包括在所述多个硬件线程之中分布所述段。9.根据权利要求1所述的方法,其中,所述指令由第一硬件线程处理,以及其中,刷新所述指令包括刷新与所述第一硬件线程不同的第二硬件线程中的至少一个后续段中的一个或更多个指令。10.根据权利要求1所述的方法,其中,检测所述事件包括在同一时钟周期中检测保证刷新在不同的硬件线程中的指令的多个单独的事件。11.根据权利要求10所述的方法,其中,刷新所述指令包括基于所述段ID来识别由于所述多个事件而待刷新的所述指令之中最旧的指令,以及从待刷新的所述指令之中的所述最旧的指令开始刷新所述指令。12.根据权利要求1所述的方法,其中,刷新所述指令包括避免刷新在所述段之后但与所述段独立的段。13.根据权利要求1所述的方法,其中,检测所述事件包括检测保证刷新指令并发生在多个不同的段中的多个单独的事件,以及其中,刷新所述指令包括独立地刷新由所述多个事件保证的所述指令。1...
【专利技术属性】
技术研发人员:乔纳森·弗里德曼,诺姆·米兹拉希,阿尔贝托·曼德勒,
申请(专利权)人:森蒂彼得塞米有限公司,
类型:发明
国别省市:以色列,IL
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。