当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于利用条件所有权请求的智能存储操作的方法和装置制造方法及图纸

技术编号:20929190 阅读:18 留言:0更新日期:2019-04-20 12:32
利用条件所有权请求实现智能存储操作的方法和装置。一个方面包括在多核心处理器中实现的方法,该方法包括:响应于用新值修改目标高速缓存行(CL)的指令的执行,从请求者接收针对所有权的条件读(CondRFO),CondRFO标识目标CL和新值;从本地高速缓存确定与目标CL对应的本地CL;从本地CL确定本地值;将本地值与新值进行比较;当本地值与新值相同时,将本地CL的一致性状态设置成(S)共享;当本地值与新值不同时,将本地CL的一致性状态设置成(I)无效;以及向请求者发送响应和本地CL的副本。其他实施例包括被配置成执行该方法的动作的装置。

Methods and devices for intelligent storage operations using conditional ownership requests

The method and device of intelligent storage operation by using conditional ownership request. One aspect includes methods implemented in a multi-core processor, which include: receiving CondRFO from the requestor in response to the execution of instructions to modify the target cache row (CL) with new values, identifying the target CL and new values, determining the local CL corresponding to the target CL from the local cache, determining the local value from the local CL, and matching the local value with the new value from the local CL. New values are compared; when the local values are the same as the new values, the consistency state of the local CL is set to (S) share; when the local values are different from the new values, the consistency state of the local CL is set to (I) invalid; and a replica of the response and the local CL is sent to the requester. Other embodiments include devices configured to perform actions of the method.

【技术实现步骤摘要】
【国外来华专利技术】用于利用条件所有权请求的智能存储操作的方法和装置
本专利技术的实施例涉及计算机架构领域,并且具体地涉及数据传送。
技术介绍
在软件应用中,代码一再地对相同的存储器位置做出重复更新并不罕见。时常,要写到存储器位置中的值与已存储在该位置处的现有值相同。在这些情况下,利用相同值更新存储器位置是冗余且不必要的。通常这不是严重的问题,并且大多数程序员由于方便或缺乏对性能的关注而仅使用以下代码语法来存储或更新存储器中的值:var=val然而,在其中存储器中的空间局部性低且相同或附近数据的线程之间的共享比率高的实例(诸如常常是利用控制块的情况)中,对存储器的不必要更新可导致显著的性能降级,并且因此应当在可能时避免。在具有用于每个核心的单独高速缓冲存储器的共享存储器多核心处理器系统中,同一高速缓存行的许多副本可以同时存在。例如,高速缓存行的一副本可以驻留在主存储器,而另一副本被缓存在核心中的一个或多个的本地高速缓冲存储器中。当改变高速缓存行的一个副本时,还必须改变或无效同一高速缓存行的其他副本,以便维持不同副本之间的一致性。为了防止在多个核心试图对同一高速缓存行做出重叠改变时发生的冲突,期望修改高速缓存行的核心必须首先拥有它想要修改的高速缓存行。通常,为了建立高速缓存行的所有权,第一核心通过其缓存代理向其他核心广播针对所有权的读或针对所有权的请求消息,以使其他核心中的该高速缓存行的所有副本无效。然后,在其本地高速缓存中拥有该高速缓存行副本的第二核心将在接收到消息时使其副本无效。稍后,如果第二核心希望从其本地高速缓存访问该高速缓存行的副本,则将导致高速缓存未命中,因为其副本不再有效。然后,根据所期望的访问的类型,第二核心将需要发布读、针对所有权的读或针对所有权的请求消息,以获取该高速缓存行的有效副本。第二核心发出的消息可以继而使该高速缓存行的其他副本无效,并且当另一核心在将来试图访问无效的高速缓存行时引起类似的本地高速缓存未命中。即使这样的获取是不必要的,诸如例如当要被写到高速缓存行中的值与已经存储的值相同时,也发生由于写请求而引起的特定高速缓存行的该全局无效。为了减少这些种类的情况的发生,更高级的程序员在向存储器位置进行存储或更新时倾向于使用以下语法:if(var<>val)var=val这确保了存储或更新操作以及跟随的相关联的针对所有权的读或针对所有权的请求消息仅发生在该存储器位置中的值实际上与将要被写的值不同时。虽然在许多情况下有用,但该方法伴随它自己的一组缺点一起发生。例如,它需要额外的代码,所述额外的代码在大量存储的情况下可能导致代码大小中的显著增加。而且,添加的检查使控制流程复杂化,并且可能限制编译器应用代码优化(诸如向量化、循环不变代码移动等)的能力。此外,断言(predicate)条件引入了许多分支并且倾向于污染分支预测表,更不必说在不正确的预测的情况下的高执行和恢复成本。附图说明因为参考以下详细描述,在结合附图理解时,本专利技术的前述方面和许多伴随的优点变得更好理解,所以其将变得更容易领会,其中除非另外指定,否则相似的参考数字贯穿各种视图指代相似的部分:图1是例示主机平台的示例性配置的示意图;图2是例示图1中所示的平台采用的存储器一致性架构的抽象视图的示意图;图3是例示在传统方法下使用针对所有权的读和请求操作的组合的典型存储器读/写访问序列的消息流程图;图4是例示在传统方法下使用将读和无效广播组合的针对所有权的读操作的典型存储器读/写访问序列的消息流程图;图5是例示根据本专利技术的实施例的利用针对所有权的条件读(conditionalread)操作的存储器读/写访问序列的消息流程图,其中所存储的值与要被写的值相同;图6是例示根据本专利技术的实施例的利用针对所有权的条件读操作的存储器读/写访问序列的另一消息流程图,其中所存储的值不同于要被写的值;图7是例示用于处置用来修改高速缓存行的请求的方法的实施例的流程图;图8是例示根据本专利技术的实施例的用于处置针对所有权的条件读(CondRFO)请求的方法的流程图;图9A是例示根据本专利技术的实施例的示例性有序流水线和示例性寄存器重命名、无序发布/执行流水线两者的框图;图9B是例示根据本专利技术的实施例的要包括在处理器中的有序架构核心的示例性实施例和示例性寄存器重命名、无序发布/执行架构核心两者的框图;图10是根据本专利技术的实施例的单核心处理器和具有集成存储器控制器和图形的多核心处理器的框图;图11例示了依照本专利技术的一个实施例的系统的框图;图12例示了依照本专利技术的实施例的第二系统的框图;图13例示了依照本专利技术的实施例的第三系统的框图;图14例示了依照本专利技术的实施例的片上系统(SoC)的框图;以及图15例示了根据本专利技术的实施例的对比将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式本文中描述了实现用于利用条件所有权请求的智能存储操作的方法和装置的实施例。在以下描述中,阐述了许多具体细节以提供对本专利技术的实施例的透彻理解。然而,相关领域技术人员将认识到,可以在没有具体细节中的一个或多个的情况下或者利用其他方法、组件、材料等实践本专利技术。在其他实例中,未详细示出或描述公知的结构、材料或操作以避免模糊本专利技术的各方面。贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”贯穿本说明书在各种地方中的出现不一定都指代同一实施例。此外,所述特定特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。为清楚起见,本文中的各图中的单独组件也可以通过其在各图中的标签而不是通过特定参考数字来指代。此外,指代(与特定组件相对的)特定类型的组件的参考数字可以用后跟意味着“典型”的“(typ)”的参考数字来示出。将理解,这些组件的配置将是可能存在但为简单和清楚起见未在所绘各图中示出的类似组件或者没有用单独的参考数字标记的另外类似的组件的典型特征。相反,不要将“(typ)”解释为意味着组件、元件等通常用于其被公开的功能、实现、目的等。本专利技术的各方面在缓存级别处提供了新的硬件支持,以确保只有在高速缓存行的一部分与特定值不同时才发布针对高速缓存行所有权的请求。本专利技术的另一方面提出了新指令,例如标量指令和向量指令,用来基于新硬件支持来访问条件存储的能力。根据实施例,向现有高速缓存一致性协议添加扩展以用于执行条件存储方案。通过将对不必要的存储的检查卸载到硬件,本文中描述的专利技术减少了不必要的针对所有权的读和针对所有权的请求消息以及核心高速缓存之间的数据移动以改进性能,而不向编程器添加开销。它还通过不向代码显式添加条件断言来保持代码的简单。这避免了对代码大小的增加以及对用于使编译器分析和执行代码优化(诸如向量化和循环不变代码移动)的能力的潜在损害两者。通过消除在每个存储之前对条件断言的需要,本专利技术也不污染或依靠分支预测机制。在一个方面,保持对现有存储指令的使用,因为每个存储变成了条件存储。根据实施例,针对所有权的条件读操作替换针对所有权的传统读操作并且被针对每个存储指令发布。在另一实施例中,新指令被暴露给软件栈以指定使用针对所有权的条件读操作而不本文档来自技高网...

【技术保护点】
1.一种在多核心处理器中实现的方法,所述方法包括:响应于用新值修改目标高速缓存行(CL)的指令的执行,从请求者接收针对所有权的条件读(CondRFO),CondRFO标识目标CL和新值;从本地高速缓存确定与目标CL对应的本地CL;从本地CL确定本地值;将本地值与新值进行比较;当本地值与新值相同时,将本地CL的一致性状态设置成(S)共享;当本地值与新值不同时,将本地CL的一致性状态设置成(I)无效;以及向请求者发送响应,其中响应包括本地CL的副本。

【技术特征摘要】
【国外来华专利技术】1.一种在多核心处理器中实现的方法,所述方法包括:响应于用新值修改目标高速缓存行(CL)的指令的执行,从请求者接收针对所有权的条件读(CondRFO),CondRFO标识目标CL和新值;从本地高速缓存确定与目标CL对应的本地CL;从本地CL确定本地值;将本地值与新值进行比较;当本地值与新值相同时,将本地CL的一致性状态设置成(S)共享;当本地值与新值不同时,将本地CL的一致性状态设置成(I)无效;以及向请求者发送响应,其中响应包括本地CL的副本。2.根据权利要求1所述的方法,还包括:当本地值与新值相同时,将发送给请求者的本地CL的副本的一致性状态设置成(S)共享;以及当本地值与新值不同时,将发送给请求者的本地CL的副本的一致性状态设置成(E)独占。3.根据权利要求1所述的方法,其中CondRFO包括用来标识目标CL的存储器地址。4.根据权利要求1所述的方法,其中CondRFO包括要用于确定本地CL中的本地值的CL偏移。5.根据权利要求4所述的方法,其中从本地CL确定本地值包括:基于CL偏移来标识本地CL中的位置;以及从所标识的位置读值。6.一种在多核心处理器中实现的方法,所述方法包括:解码条件存储指令;执行经解码的条件存储指令以用新值修改目标高速缓存行(CL);确定本地高速缓存是否包含与目标CL对应的有效本地CL;以及响应于确定本地高速缓存不包含有效本地CL,将针对所有权的条件读(CondRFO)发送到多核心处理器中的一个或多个远程核心,其中CondRFO标识目标CL和新值。7.根据权利要求6所述的方法,其中有效本地CL包括(M)修改、(E)独占或(S)共享的一致性状态。8.根据权利要求6所述的方法,其中响应于确定本地高速缓存包含与目标CL对应的有效本地CL,还包括:从有效本地CL确定本地值;将本地值与新值进行比较;响应于确定本地值与新值不同,确定有效本地CL的一致性状态;以及当所确定的一致性状态为(S)共享时,将新值写到有效本地CL。9.根据权利要求8所述的方法,其中响应于确定有效本地CL的一致性状态不是(S)共享,还包括:向多核心处理器中的一个或多个核心发送针对所有权的请求。10.根据权利要求6所述的方法,其中CondRFO包括标识目标CL的存储器地址。11.根据权利要求6所述的方法,其中CondRFO包括CL偏移,所述CL偏移用于标识所述一个或多个远程核心中的一个上的远程CL中的远程值,要将远程值与新值进行比较。12.一种装置,包括:通过互连而通信地耦合的多个硬件处理器核心,每个硬件处理器核心要包括相应的本地高速缓存,其中所述多个硬件处理器核心中的第一处理器核心要包括高速缓存代理电路,所述高速缓存代理逻辑电路要:响应于所述多个处理器核心中的第二处理器核心执行用新值修改目标高速缓存行(CL)的指令,从第二处理器核心接收针对所有权的条件读(Co...

【专利技术属性】
技术研发人员:AD冈萨莱斯FG伯纳特
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1