有序和无序网络的缓存相干握手协议的制作方法

文档序号:8303440阅读:406来源:国知局
有序和无序网络的缓存相干握手协议的制作方法
【专利说明】有序和无序网络的缓存相干握手协议
[0001]相关申请案交叉申请
[0002]本发明要求2013年8月2日由Iulin Lih等人递交的发明名称为“有序和无序网络的缓存相干握手协议(Cache Coherent Handshake Protocol for In-Order andOut-of-Order Networks) ”的第13/958184号美国非临时专利申请案的在先申请优先权,所述申请案要求2012年8月17日由Iulin Lih等人递交的发明名称为“有序和无序网络的缓存相干握手协议(Cache Coherent Handshake Protocol for In-Order and 0ut-of-0rderNetworks) ”的第61/684324号美国临时专利申请案,这些在先申请的内容以全文引入的方式并入本文中。
[0003]关于由联邦政府赞助研宄或开发的声明
[0004]不适用。
[0005]缩微平片附件的引用
[0006]不适用。
【背景技术】
[0007]现代计算机系统可依赖于多个互联处理器来处理数据。每个处理器和/或处理器集群可包含一个或多个缓存存储位置以存储处理指令。一个给定的指令或指令操作数可在多个缓存中复制和定位,以允许该指令或指令操作数在各处理器之间的分布式使用。通过保存结构和/或协议来定位、执行和/或修改这些指令对于处理器和/或处理器集群来说可能是有益的。

【发明内容】

[0008]在一项实施例中,本发明包括一种处理网元(NE),所述处理网元包括至少一个接收器,用于接收来自多个存储节点的多个存储请求消息以及多个响应于来自所述多个存储节点的所述存储请求的响应消息,其中所述每个存储请求指定源节点,目标节点和存储位置,所述每个存储请求指定源节点,目标节点和存储位置;至少一个发射器,用于将所述存储请求和存储响应传输给所述多个存储节点;以及耦合到所述接收器和所述发射器的控制器,用于实施排序,使得所述发射器按照所述接收器接收的顺序传输指定同一存储位置和同一源节点/目标节点对的存储请求和存储响应。
[0009]在另一项实施例中,本发明包括一种在处理网络中实施的方法,所述方法包括接收多个存储请求消息,其中所述每个存储请求消息指定源节点,目标节点和存储位置;接收多个响应于所述存储请求的响应消息,其中所述每个存储请求指定源节点,目标节点和存储位置;以及转发所述存储请求消息和所述存储响应消息,使得指定同一存储位置和同一源节点/目标节点对的存储请求和存储响应按照接收的顺序转发。
[0010]在另一项实施例中,本发明包括处理网络中的归属代理位置,所述归属代理位置包括用于将数据存储到存储块中的存储器和控制器,该控制器用于接收来自请求节点的所述数据的第一缓存相干请求消息;向所述数据的缓存代理所有者传输第一侦听消息,以响应于接收所述第一请求消息;接收响应于所述第一侦听请求的第一侦听响应;以及基于所述第一侦听响应的结果,传输第一消息响应到所述请求节点,其中所述控制器进一步用于为所述数据接收和处理第二缓存相干请求消息,所述第二缓存相干请求消息在所述第一缓存相干请求消息之后接收,而无需等待来自所述请求节点的确认消息。
[0011]结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其他特征。
【附图说明】
[0012]为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表不相同部分。
[0013]图1是多处理器网络架构的实施例的示意图。
[0014]图2是通用计算机系统的实施例的示意图。
[0015]图3是执行缓存相干事务的方法的实施例的流程图。
[0016]图4是执行缓存相干事务的方法的另一项实施例的流程图。
[0017]图5是执行缓存相干事务的方法的另一项实施例的协议图。
[0018]图6是执行缓存相干事务的方法的另一项实施例的协议图。
[0019]图7是执行缓存相干事务的方法的另一项实施例的协议图。
【具体实施方式】
[0020]最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。
[0021]处理器可更改存储器作为执行处理功能的一部分。处理器可通过更新缓存存储器中存储的数据的本地副本进行这些更改。然后这些更改可向主存储器传播。这种系统可能引发多处理器系统错误,因为第一处理器可能对数据的第一本地副本进行更改,而第二处理器可能在不了解第一处理器所进行的更改的情况下几乎同时对该数据的第二本地副本进行更改。缓存相干性方案可减少这些错误,该方案可以是任意协议,用于更新(例如,缓存和/或随机存取存储器(RAM)中存储的)数据的本地副本来支持大致整个系统范围的数据一致性。缓存相干性方案可利用握手协议以及类似机制,基于对同一数据的其他本地副本的更改来更新共享数据和/或数据的本地副本。此类握手协议可通过延迟随后的缓存功能和/或处理器进程直至先前缓存功能相关的数据更新能够得到确认来保持缓存相干性方案的完整性。例如,缓存握手协议可要求相应的节点(例如某缓存)在其他缓存和/或处理器使用更新后的数据之前发送数据更新的确认,防止数据误配。为支持此类处理网络增长后的处理速度,尽可能地减少和/或消除延迟同时保持缓存相干性方案的完整性可能是有利的。
[0022]本文所揭示的是一种缓存相干握手协议,该协议可通过免除确认步骤要求来减少缓存、RAM和/或处理器延迟。为保持无确认情况下的相干性,相关网络可实施消息排序规则来防止数据误配。网络中的网元可检查输入消息的源节点地址,目标节点地址和存储地址。源/目标节点对相同且与同一存储地址相关的消息可按照接收的顺序转发。此规则可通过要求源/目标对和存储地址(例如,缓存线和/或RAM地址线)相同的所有消息沿着同一物理信道在网络中转发来实施。此类消息仍可经由不同的(例如,时分复用创建的)虚拟信道来转发。此规则还可通过交叉投递来实施。交叉投递可包括将接收到的第一消息的副本,此处称为假消息,在第二消息接收之前放置到队列中。确定需传输的第一消息的第一副本(如第一消息的假消息)可被传输,而第一消息的第二副本可被丢弃。在能够提升网络的整体速度的情形下,消息排序规则可被动态停止,且确认步骤可被动态地再引入。
[0023]图1是多处理器网络架构的实施例的示意图。网络100可包含多个处理器110,所述处理器110可经由路由网络150耦合到级别I(Ll)缓存120、级别2 (L2)缓存130以及级别3 (L3)缓存140。每个LI缓存120可包含LI缓存控制器124。每个L2缓存130可包含耦合到侦听过滤器132的L2缓存控制器134。L3缓存140可包含耦合到侦听过滤器142的L3缓存控制器144。其他缓存、缓存层和/或处理器可根据具体实施例的需要进行添加。较高阶缓存可存储数据并且响应较低阶缓存和/或处理器的请求。每个实体都可作为缓存代理和/或归属代理。归属代理可以是响应请求的较高阶实体。缓存代理可以是发起请求的较低阶实体。如下图2所示,每个缓存120、130、140,每个处理器110,以及任意相关的RAM都可视为网络100的节点,路由网络150各部分可视为网络100的链路。出于简洁性考虑,网络100被描述为每个处理器110对应一个LI缓存120,每个较高阶缓存对应两个较低阶缓存。缓存和缓存以及缓存和处理器之间的连接有多种不同的排列/组合。
[0024]处理器110可被称为中央处理器或CPU。处理器110可以是网络100内通过执行网络100的算术、逻辑和/或输入/输出操作来处理程序指令的实体。每个处理器110可包含可执行算术、逻辑和/或其他操作的算术逻辑单元和可向存储器请求指令的控制单元(如缓存120、130和/或140)。该控制单元还可协同算术逻辑单元解码和执行这些指令。
[0025]LI缓存120、L2缓存130和L3缓存140可以是透明存储数据和快速响应请求的部件。出于成本和数据使用效率的原因,缓存120、130和140可包括相对小容量的存储器,并且可紧邻CPU110。较低阶缓存,如LI缓存120,可包含较小的存储空间,并且可离CPUllO较近;而较高阶缓存,如L3缓存140,可包含较大存储空间,并且可离CPUllO较远。缓存120、130和/或140的位置和
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1