消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体的制作方法

文档序号:9291635阅读:303来源:国知局
消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体的制作方法
【专利说明】消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体
[0001]优先权串请
[0002]本申请要求提交于2013年3月14日且标题为“消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体(EUMINATING REDUNDANTSYNCHRONIZAT1N BARRIERS IN INSTRUCT1N PROCESSING CIRCUITS,AND RELATEDPROCESSOR SYSTEMS, METHODS, AND COMPUTER-READABLE MEDIA) ” 的美国专利申请序列号13/829,315的优先权,所述专利申请的全部内容通过引用并入本文。
技术领域
[0003]本发明的技术涉及基于中央处理单元(CPU)的系统中的管线化计算机指令的处理。
【背景技术】
[0004]现代计算机架构中“指令管线”的出现已得到改善的中央处理单元(CPU)资源的利用率和更快的计算机应用程序的执行时间。指令管线是一种处理技术,凭藉该处理技术,通过将每个指令的处理分离为一系列步骤来增加由CPU处理的计算机指令的吞吐率。所述指令在由多级组成的“执行管线”中执行,其中每级完成用于一系列指令中每个指令的步骤中的一个步骤。结果,在每个CPU时钟循环中,可以并行评估用于多个指令的步骤。CPU可以采用多条执行管线以进一步提高性能。
[0005]实施指令管线化的一些计算机架构可以允许处理器优化,诸如程序指令的推理性数据读取和乱序执行。在提供CPU性能的进一步改善时,如果例如执行的程序取决于以指定顺序访问的数据或以指定顺序执行的指令,则这些优化可导致意料不到和/或不合需要的程序行为。另外,执行指令可能影响在允许执行后续指令之前必须成功完成的CPU状态的变化。例如,CPU状态的变化可以包括影响后续指令如何访问资源的变化,诸如处理器模式的变化或页表的更改。
[0006]为确保程序的正确执行,可以在软件中使用“同步屏障”以确保在允许继续执行代码之前完成先前的操作(即,数据访问或指令执行)。同步屏障可以通过指令明确地提供,诸如ARM架构的ISB (指令同步屏障)指令,或可被实施为另一指令或操作的一部分。计算机的体系架构可以提供的是,需要同步屏障的具体操作可以具有由计算机的硬件自动处理的同步,而其它操作需要软件以明确地包括同步屏障。不过需要指出的是,对于其中存在软件同步屏障的情况,如果在执行软件同步屏障之前立即发生另一同步操作,则可以证明该软件同步屏障是冗余的。

【发明内容】

[0007]本发明的实施例包括从指令处理电路中的执行管线消除冗余同步屏障,以及相关的处理器系统、方法和计算机可读媒体。对于一些操作,计算机的体系架构可需要采用软件同步屏障,即使在执行软件同步屏障之前也可立即发生同步操作。通过跟踪同步事件的发生,不必要的软件同步屏障可以被识别并消除,从而改善中央处理单元(CPU)的性能。
[0008]在这方面,在一个实施例中,提供用于消除指令流中的冗余同步屏障的方法。所述方法包括检测第一同步事件。所述方法还包括检测指令流中的下一个指令。所述方法另外包括确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障。所述方法还包括响应于确定所述下一个指令包括类型对应于所述第一同步事件的同步屏障,而从所述指令流消除所述下一个指令。以此方式,可以通过避免不必要的同步操作而增加在每一 CPU时钟循环期间执行的指令的平均数目。
[0009]在另一个实施例中,提供了指令处理电路。所述指令处理电路包括同步事件检测电路和优化电路。所述同步事件检测电路经配置以检测第一同步事件。所述优化电路经配置以检测指令流中的下一个指令,并且确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障。所述优化电路进一步经配置以响应于确定所述下一个指令包括类型对应于所述第一同步事件的同步屏障,而从所述指令流消除所述下一个指令。
[0010]在另一个实施例中,提供了指令处理电路。所述指令处理电路包括用于检测第一同步事件的装置。所述指令处理电路进一步包括用于检测指令流中的下一个指令的装置。所述指令处理电路另外包括用于确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障的装置。所述指令处理电路还包括用于响应于确定所述下一个指令包括类型对应于所述第一同步事件的同步屏障,而从所述指令流消除所述下一个指令的装置。
[0011]在另一个实施例中,提供非暂时性计算机可读媒体,其具有存储于其上的计算机可读指令以致使处理器实施一种方法。由所述计算机可执行指令实施的所述方法包括检测第一同步事件。由所述计算机可执行指令实施的所述方法还包括检测指令流中的下一个指令。由所述计算机可执行指令实施的所述方法另外包括确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障。由所述计算机可执行指令实施的所述方法还包括响应于确定所述下一个指令包括类型对应于所述第一同步事件的同步屏障,而从所述指令流消除所述下一个指令。
【附图说明】
[0012]图1是在基于处理器的系统中提供的示范性组件的框图,所述示范性组件包括示范性经配置以检测并消除指令流中的冗余同步屏障的示范性指令处理电路;
[0013]图2是示出基于检测并消除冗余同步屏障的示范性经优化指令的示意图;
[0014]图3是示出用于检测并消除冗余同步屏障的指令处理电路的示范性过程的流程图;
[0015]图4是示出用于消除冗余同步屏障的指令处理电路的更详细示范性过程的流程图;
[0016]图5是示出优化包含触发同步事件和冗余同步屏障的指令的示范性指令流的示意图;
[0017]图6是示出可以从消除冗余同步屏障得到的示范性经优化指令流的示意图;
[0018]图7是示出优化包含冗余同步屏障的示范性指令流的示意图;以及
[0019]图8是可以包括指令处理电路的示范性的基于处理器的系统的框图,所述指令处理电路包括经配置以检测并消除冗余同步屏障的图1的指令处理电路。
【具体实施方式】
[0020]现参考附图描述本发明的几个示范性实施例。本文使用的词“示范性的”意指“用作实例、实例或例证”。本文中被描述为“示范性的”的任何实施例不必须被理解为比其它实施例优选或有利。还应当理解,虽然术语“第一”、“第二”等可以在本文用于描述各种元件,但是这些术语仅用于将一个元件与另一个元件区分开,并且因此而区分的各元件不应被这些术语限制。例如,在没有偏离本发明的教义的情况下,第一指令可被称为第二指令,并且类似地,第二指令可被称为第一指令。
[0021]本发明的实施例包括从执行指令处理电路中的执行管线消除冗余同步屏障,以及相关的处理器系统、方法和计算机可读媒体。对于一些操作,计算机的体系架构可需要采用软件同步屏障,即使在执行软件同步屏障之前也可立即发生同步操作。通过跟踪同步事件的发生,不必要的软件同步屏障可以被识别并消除,从而改善中央处理单元(CPU)的性能。
[0022]在这方面,在一个实施例中,提供用于消除指令流中的冗余同步屏障的方法。该方法包括检测第一同步事件。该方法进一步包括检测指令流中的下一个指令。该方法另外包括确定下一个指令是否包括类型对应于第一同步事件的同步屏障。该方法还包括响应于确定下一个指令包括类型对应于第一同步事件的同步屏障,而从指令流消除下一个指令。以此方式,可以通过避免不必要的同步操作而增加在每一 CPU时钟循环期间执行的指令的平均数目。
[0023]在这方面,图1是用于检索和处理将被放置在一或多个执行管线12 (O)-12 (Q)中的计算机指令的示范性的基于处理器的系统10的框图。所述基于处理器的系统10提供经配置以检测并消除冗余同步屏障的指令处理电路14。如本文所使用的,“指令”可指由指示计算机处理器以完成特定的一或多个任务的指令集架构所定义的位的组合。例如,指令可以指示用于从寄存器16(0)-16(M)读取数据和/或向寄存器16 (O)-16 (M)写入数据的操作,这些操作提供可由基于处理器的系统10访问的本地存储。示范性指令集架构包括但不限于ARM、Thumb和A64架构。
[0024]继续参考图1,各指令在基于处理器的系统10中在由指令流18表示的连续流中被处理。当基于处理器的系统10在运行并执行各指令时,指令流18可被连续地处理。在该所示实例中,指令流18开始于指令存储器20,该指令存储器20提供用于计算机可执行程序中各指令的永久存储。指令提取电路22从指令存储器20和/或任选地从指令
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1