CN103294611A - 一种基于有限数据一致性状态的服务器节点数据缓存方法 - Google Patents
一种基于有限数据一致性状态的服务器节点数据缓存方法 Download PDFInfo
- Publication number
- CN103294611A CN103294611A CN2013100929901A CN201310092990A CN103294611A CN 103294611 A CN103294611 A CN 103294611A CN 2013100929901 A CN2013100929901 A CN 2013100929901A CN 201310092990 A CN201310092990 A CN 201310092990A CN 103294611 A CN103294611 A CN 103294611A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- cache
- local
- data cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Abstract
本发明公开一种基于有限数据一致性状态的服务器节点数据缓存方法,包括如下步骤:1)发出访存信息,判断访存地址索引匹配是否正确,且数据一致性权限是否满足访问要求;2)从被请求方的节点控制器远端数据缓存或节点控制器本地数据缓存读出一致性独占态、共享态、转发态的远端数据或本地数据;3)仅将一致性独占态、共享态、转发态的远端数据或本地数据写入请求方的节点控制器远端数据缓存或本地数据缓存。本发明可有效降低跨节点访问频度并消除节点数据缓存替换带来的额外开销,此外,可以实现冗余度和性能的均衡控制,避免在统一目录下的替换串扰,从而大大提高了服务器系统性能。
Description
技术领域
本发明涉及计算机体系结构领域,尤其涉及一种基于有限数据一致性状态的服务器节点数据缓存方法。
背景技术
由于服务器处理器的互连端口数量限制,通过处理器直连的方式很难构建大规模的CC-NUMA计算机系统;因此大规模CC-NUMA计算机系统通常以节点簇(clump或node)为基本组成单位。每个节点簇由2-4个服务器处理器和1-2个节点控制器组成,节点控制器首先与各个服务器处理器互连,组成第一级互连域和cache一致性域,然后节点控制器之间直连或通过节点路由器互连构成第二级互连域和cache一致性域;通过两级域的方式可以克服处理器本身限制,从而组成大规模CC-NUMA计算机系统。另外,由于物理尺寸和硬件规模的限制,对于两级域组成的CC-NUMA服务器系统,节点内域的互连带宽和效率远高于节点间互连带宽和效率。
对于基于点到点互连方式的服务器系统,每个服务器处理器都集成内存控制器并外接内存,都在全系统空间上管理一段cache一致性内存空间,从而成为这段内存空间的根代理。根代理基于目录协议,通过目录的方式记录各个处理器对所代理的cache line数据的访问信息和一致性状态;因此对该段空间的数据访问或一致性权限请求,都必须通过以下方式连接:1)直连(如果和管理该段cache一致性空间的根处理器处于同一节点和cache一致性域)方式访问;2)或通过节点控制器、节点路由器转发到目标处理器(此时需要跨节点和跨cache一致性域访问)根代理。显然,后一种方式将导致多级跳步访问并需要两级cache一致性域逻辑转换,大大增加了访问的延迟。尤其是对远端cacheline数据的访问可能需要多次一致性操作才能完成,从而进一步降低跨节点访问的效率。
对于节点控制器,作为维护两级域cache一致性的核心装置,主要有两个功能:一是作为远端代理,代理本节点处理器对远端节点的访问(需要完成两级cache一致性域转换逻辑),此时节点控制器需要维护远端目录来记录本地处理器对远端cache line数据的访问信息和一致性状态;二是作为本地代理,代理远端节点对本节点内处理器的数据访问(需要完成两级cache一致性域转换逻辑),此时节点控制器同样需要维护本地目录来记录远端节点对本地cache line数据的访问信息和一致性状态,因此如果能在节点控制器缓存部分内存数据则可以有效降低跨节点访问的频率或访问跳步的次数,从而提升CC-NUMA架构服务器系统的性能。
对于远端代理单元,如果节点控制器芯片支持远端数据缓存机制,使本节点内处理器对远端数据访问在本地节点控制器内完成(CPU <-> Local NC),而不需要将该请求经过多级跳步发往远端根处理器(CPU<->Local NC<->Network<->Remote Home NC<->Home CPU),从而显著提升远端数据访问性能。而对于本地代理单元,如果节点控制器芯片支持本地数据缓存机制,从而使远端节点处理器对本地根处理器的访问在本地节点控制器内完成而不需要在本地节点跨越cache一致性域到达根处理器,从而降低访问跳步数并消除本地节点跨cache一致性域处理延迟,提升远端处理器对本地数据的访问性能。
同时,节点控制器缓存的数据cache一致性状态情况对节点控制器性能有一定的影响,若缓存的数据状态为修改状态,如果节点内处理器有该修改状态数据副本,则很可能还会再次被修改,从而使得节点数据缓存中该数据不是最新值,导致数据失效问题,这一方面降低节点数据缓存的有效性,另一方面则要求增加额外的逻辑判断缓存的修改状态数据的实效性。另外,由于节点数据缓存容量有限,即使节点缓存的修改状态数据是最新副本,也可能被替换,在替换过程中需要复杂的逻辑确保该修改状态数据被写回根处理器,同时确保新数据被正确写入,此时系统逻辑很可能需要串行执行,从而降低系统的效率。因此,节点控制器需要对缓存数据的一致性状态做出选择,选择合适的cache一致性状态的数据尤为重要。
发明内容
为解决上述问题,本发明的目的在于提供一种基于有限数据一致性状态的服务器节点数据缓存方法,其主要是针对现有跨节点访问内存高延迟问题,提供一种新的解决方案,在多节点CC-NUMA架构服务器系统的应用中有较好的使用效果。
为实现上述目的,本发明的技术方案为:
一种基于有限数据一致性状态的服务器节点数据缓存方法,包括如下步骤:
1)发出访存信息,判断访存地址索引匹配是否正确,且数据一致性权限是否满足访问要求;
2)根据步骤1)的判断结果,从被请求方的节点控制器远端数据缓存或节点控制器本地数据缓存读出一致性独占态、共享态、转发态的远端数据或本地数据;
3)仅将一致性独占态、共享态、转发态的远端数据或本地数据写入请求方的节点控制器远端数据缓存或本地数据缓存。
进一步地,所述的节点控制器不但可以同时挂接远端数据缓存和本地数据缓存,而且也可以单独挂接远端数据缓存或本地数据缓存。
进一步地,远端数据缓存或本地数据缓存不能写入修改态的数据,而且其中数据项生命周期结束后,新数据项可以直接覆盖替换而不影响服务器系统全局一致性。
进一步地,所有节点控制器远端数据缓存组成的集合是所有节点控制器本地数据缓存集合的一个真子集,或者与其等价。
进一步地,各级节点控制器远端数据缓存和本地数据缓存均具有地址索引信息,并且各级节点数据缓存地址索引信息和节点目录信息组织均采用分立模式。
进一步地,在访存过程中,可以把本地节点远端数据缓存与远端节点本地数据缓存视为降级的cache,从而组成两级cache对。
本发明基于有限数据一致性状态的服务器节点数据缓存方法可以解决数据空间局部性和时间局部性受损的问题,有效降低跨节点访问频度并消除节点数据缓存替换带来的额外开销,此外,可以实现冗余度和性能的均衡控制,避免在统一目录下的替换串扰,从而大大提高了服务器系统性能。
附图说明
图1 多节点多处理器系统结构示意图;
图2 是根据本发明第一实施例的访问本地节点内存示意图;
图3 是根据本发明第二实施例的访问远端节点内存示意图;
图4 是根据本发明第三实施例的访问远端节点内存示意图,其中本地节点的远端数据缓存LRDC处缓存S/E态;
图5 是根据本发明第四实施例的访问远端节点内存示意图,其中远端节点的本地数据缓存RLCD处缓存S/E态;
图6是根据本发明第唔实施例的访问远端节点内存示意图,其中本地节点的远端数据缓存LRDC-远端节点的本地数据缓存RLCD处缓存S/E态;
图7 是根据本发明第六实施例的访问远端节点内存示意图,其中调用本地节点的远端数据缓存LRDC处缓存数据;
图8 是根据本发明第七实施例的访问远端节点内存示意图,其中调用远端节点的本地数据缓存RLCD处缓存数据。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1所示,每个节点由2个处理器CPU和节点NC控制器构成,本地节点内的各个处理器和节点控制器处于节点内cache一致性域,而各节点控制器通过系统互连网络互连组成节点间cache一致性域,处理器可实施本处理器内存访问、节点内跨处理器内存访问以及通过节点控制器代理实现跨节点内存访问操作。
请参照图2所示,处理器CPU1(103)、处理器CPU2(117)和节点NC(104)构成一个节点域。CPU1(103)挂接的内存模块为Mem1(102),CPU2(117)挂接内存模块Mem2(118)。节点NC(104)控制器内由远端内存代理引擎RP(105)、本地内存代理引擎LP(111)、远端节点本地数据缓存RLDC(115)和本地节点远端数据缓存块LRDC(109)组成。远端内存代理引擎RP(105)由根代理HP(106) 和缓存代理CP(110) 构成,同时远端内存代理引擎RP(105)内嵌远端代理目录RDIR(107)和远端数据缓存地址索引RDCindex(108)。访问本地节点内存基本处理过程为:
1)处理器CPU1(103)执行访存操作时在处理器内部未命中cache缓存,根据访问地址确定其根内存在处理器CPU2(117)处,因此处理器CPU1(103)向节点内处理器CPU2(117)直接发送访存请求;
2)处理器CPU2(117)在接收处理器CPU1的访存请求后,发现无处理器有该数据副本,于是处理器CPU2(117)读取根内存Mem2(118)数据;
3)内存Mem2(118)向CPU2(117)返回数据,处理器CPU2(117)保存访存请求信息,包括请求类型、访存地址等,并按请求类型记录被请求数据的一致性状态信息;
4)处理器CPU2(117)向处理器CPU1(103)返回带一致性状态信息的数据和访问完成标志等,处理器CPU1(103)根据数据返回情况保存访存结果,并更新其缓存代理单元读写请求的状态。
请参照图3所示,处理器CPU1(203)位于节点NC1(204)控制器所在节点,根内存Mem2(238)模块位于节点NC2(224)控制器所在节点的处理器CPU2(237)处,节点NC1(204)控制器节点内处理器CPU1(203)对节点NC2(224)控制器根内存Mem2(238)的访存操作过程如下:
1)处理器CPU1(203)发出访存请求操作后,在本地cache缓存未命中,在其缓存代理单元保存相关访问信息如访存类型、访存地址等,并将访存请求发送至本地节点控制器NC1(204)的远端内存代理RP(205)的根代理HP(206)处;
2)节点NC1(204)控制器内的根代理HP(206)根据访存信息对远端数据缓存目录RDIR(207)进行查询或更新,判断节点内其他处理器是否有该数据副本,是否需要对节点内其他处理器进行侦听操作;同时查询远端数据缓存块RDC(209)地址索引RDCindex(208)信息; 在远端数据缓存目录RDIR(207)和地址索引RDCindex(208)均未命中情况下根代理HP(206)向远端节点缓存代理CP(210)转发访存请求;
3)节点NC1(204)控制器远端内存代理RP(205)的cache缓存代理CP(210)接收到访存请求,在cache缓存代理CP(210)内部保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,同时根据访存地址确定其根节点位于节点NC2(224)处,故向节点NC2(224)控制器转发请求;
4)域间互连网络将节点NC1(204)发出的请求消息发送到根节点NC2(224),节点NC2(224)控制器处内存代理LP(231)的根代理HP(232)接收访存请求消息;
5)节点NC2(224)控制器处本地代理LP(231)的根代理HP(232)接收访存请求消息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录LDIR(234)确认是否对其他节点发出侦听操作,并通过查询远端节点本地数据缓存地址索引LDCindex(233)确认是否调用远端节点本地数据缓存块RLDC(235)等,在本示例中查询结果表明无需执行该类操作;
6)节点NC2(224)控制器内本地内存代理LP(231)的根代理HP(232)转发访存信息给cache缓存代理CP(236),cache缓存代理CP(236)保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点NC2(224)内根处理器CPU2(237)发出访存请求信息;
7)节点NC2(224)内的根处理器CPU2(237) 保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,在确认节点内其他处理器无该数据副本后,向根内存Mem2(238)某地址发出访存操作,并得到返回信息(包括返回数据、一致性状态等);
8)节点NC2(224)内处理器CPU2(237)接收到返回信息后,向本地内存代理LP(231)cache缓存代理CP(236)发送返回信息,cache缓存代理CP(236)接收返回信息后向本地内存代理LP(231)的根代理HP(232)发送返回信息;
9)节点NC2(224)控制器中本地内存代理LP(231)处的根代理HP(232)进行相应访存信息保存和更新,如访存类型、访存地址等,并更新本地代理目录LDIR(234); 若为独占态、共享态或转发态并为有效数据,可以选择将该数据写入远端节点本地数据缓存LDC(235)并更新远端节点本地数据缓存地址索引LDCindex(233),若仅为访问权限授权而无有效数据则不需要写入远端节点本地数据缓存LDC(235);在本示例中未将该数据信息写入远端节点本地数据缓存LDC(235)和更新远端节点本地数据缓存地址索引LDCindex(233)信息;
10)域间互连网络将返回信息由节点NC2(224)控制器的根代理HP(232)返回到节点NC1(204)控制器的cache 缓存代理CP(210),cache缓存代理CP(236)接收返回信息后向根代理HP(206)转发;
11)节点NC1(204)控制器内远端内存代理RP(205)中根代理HP(206)接收到返回信息后将其发送到处理器CPU1(203),同时查看数据状态,若为独占态、共享态或转发态并为有效数据,可以选择将该数据写入节点远端数据缓存块RDC(209)并更新远端数据缓存地址索引RDCindex(208),若仅为访问权限授权而无有效数据则不需要写入远端数据缓存RDC(209);在本示例中未将该数据信息写入远端数据缓存RDC(209)并未更新远端数据缓存地址索引RDCindex(208)。
请参照图4所示,处理器CPU1(303)位于节点NC1(304)控制器所在节点内,内存Mem2(338)模块属于节点NC2(324)控制器所在节点内处理器CPU2(337)处,节点NC1(304)内处理器CPU1(303)对NC2(324)节点根内存Mem2(338)处某地址的访存操作过程如下:
1)处理器CPU1(303)发出访存请求操作后,在本地cache缓存未命中,保存访问信息如访存类型、访存地址等,将访存请求发送至本地节点控制器NC1(304)的远端内存代理RP(305)的根代理HP(306)处;
2)节点NC1(304)控制器内的根代理HP(306)将访存信息进行保存,对远端数据缓存目录RDIR(307)查询或更新,判断节点内其他处理器是否有该数据副本,是否需要对节点内其他处理器进行侦听操作;查询本地节点远端数据缓存块LRDC(309)地址索引RDCindex(308)信息,在远端数据缓存目录RDIR和地址索引RDCindex(308)均未命中情况下根代理HP(306)根据访信息将向远端节点缓存代理CP(310)转发访存请求;
3)节点NC1(304)控制器远端内存代理RP(305)的cache缓存代理CP(310)接收到访存请求,在cache缓存代理CP(310)内部保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,同时根据访存地址确定其根节点位于节点NC2(224)处,故向节点NC2(224)转发请求;
4)域间互连网络将节点NC1(304)发出的请求消息发送到目的节点控制器NC2(324),节点NC2(324)控制器处本地内存代理LP(331)的根代理HP(332)接收访存请求消息;
5)节点NC2(324)控制器处本地代理LP(331)的根代理HP(332)接收访存请求消息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录LDIR(334)确认是否对其他节点发出侦听操作,并通过查询远端节点本地数据缓存地址索引LDCindex(333)确认是否调用远端节点本地数据缓存块RLDC(335)等, 在本示例中查询结果表明无需执行该类操作;
6)节点NC2(324)控制器内本地内存代理LP(331)的根代理HP(332)转发访存信息给cache缓存代理CP(336),cache缓存代理CP(336)保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点、NC2(324)内根处理器CPU2(337)发出访存请求信息;
7)节点NC2(324)内的根处理器CPU2(337) 保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,在确认节点内其他处理器无该数据副本后,向根内存Mem2(338)某地址进行访存操作,并得到返回信息(包括返回数据、一致性状态等);
8)节点NC2(324)内根处理器CPU2(337)接收到返回信息后,向节点NC2(324)控制器的本地内存代理LP(331)的cache缓存代理CP(336)发送返回信息,cache缓存代理CP(336)接收返回信息,然后向本地内存代理LP(331)的根代理HP(332)发送返回信息;
9)节点NC2(324)控制器中本地内存代理LP(331)处的根代理HP(332)进行相应访存信息保存和更新,如访存类型、访存地址等,将数据返回信息发送为域间互连网络。并更新本地代理目录LDIR(334); 若为独占态、共享态或转发态并为有效数据,可以选择将该数据写入远端节点本地数据缓存LDC(335)并更新远端数据缓存地址索引RDCindex(333),若仅为访问权限授权而无有效数据则不需要写入远端节点本地数据缓存LDC(335);在本示例中未将该数据信息写入远端节点本地数据缓存LDC(335)和更新远端节点本地数据缓存地址索引LDCindex(333)信息;
10)域间互连网络将返回信息返回到节点NC1(304)控制器的cache 缓存代理CP(310),cache缓存代理CP(310)接收返回信息和一致性,并向根代理HP(306)转发;
11)节点NC1控制器内远端内存代理RP(305)中根代理HP(306)接收到返回数据和一致性后,若为独占态、共享态或转发态并为有效数据,可以将该数据写入远端数据缓存 LRDC(309)并更新远端数据缓存地址索引RDCindex(308),另外由根代理HP(306)发送返回信息到请求处理器CPU1(303);在本示例中将该数据信息写入远端数据缓存RDC(309)并更新远端数据缓存地址索引RDCindex(308)。
请参照图5所示,处理器CPU1(403)位于节点NC1(404)控制器所在节点,根内存Mem2(438)模块位于节点NC2(424)控制器所在节点的处理器CPU2(437)处,节点NC1(404)内处理器CPU1(403)对NC2(424)节点根内存Mem2(438)的访存操作过程如下:
1)处理器CPU1(403)发出访存请求操作后,在本地cache缓存未命中,保存访问信息如访存类型、访存地址等,将访存请求发送至本地节点控制器NC1(404)的远端内存代理RP(405)的根代理HP(406)处;
2)节点NC1(404)控制器控制器内的根代理HP(406)将访存信息进行保存,对远端数据缓存目录RDIR(407)查询或更新,判断节点内其他处理器是否有该数据副本,是否需要对节点内其他处理器进行侦听操作;查询本地节点远端数据缓存块LRDC(409)地址索引RDCindex(408)信息,在远端数据缓存目录RDIR(407)和地址索引RDCindex(408)均未命中情况下根代理HP(406)根据访信息将向远端节点缓存代理CP(410)转发访存请求;
3)节点NC1(404)控制器的远端内存代理RP(405)的cache缓存代理CP(410)接收到访存请求,在cache缓存代理CP(410)内部保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点NC2(424)内根处理器CPU2(437)发出访存请求信息;
4)域间互连网络将节点NC1(404)控制器发出的请求消息发送到目的节点NC2(424)控制器,节点NC2(424)控制器处本地内存代理LP(431)的根代理HP(432)接收访存请求消息;
5)节点NC2(424)控制器处本地代理LP(431)的根代理HP(432)接收访存请求消息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录LDIR(434)确认是否对其他节点发出侦听操作,并通过查询远端节点本地数据缓存地址索引LDCindex(433)确认是否调用远端节点本地数据缓存块RLDC(435)等, 在本示例中查询结果表明无需执行该类操作;
6)节点NC2(424)控制器内本地内存代理LP(431)的根代理HP(432)转发访存信息给cache缓存代理CP(436),cache缓存代理CP(436)保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点控制器NC2(424)内根处理器CPU2(437)发出访存请求信息;
7)节点NC2(424)内的根处理器CPU2(437)保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,在确认节点内其他处理器无该数据副本后,向根内存Mem2(438)某地址进行访存操作,并得到返回信息(包括返回数据、一致性状态等);
8)节点NC2(424)内根处理器CPU2(437)接收到返回信息后,向本地内存代理LP(431)cache缓存代理CP(436)发送返回信息,cache缓存代理CP(436)接收返回信息后向本地内存代理LP(431)的根代理HP(432)发送返回信息;
9)节点NC2(424)控制器中本地内存代理LP(431)处的根代理HP(432)接收到返回信息后,LDIR(434)目录更新;若为独占态、共享态或转发态并为有效数据,则将该数据及一致性信息写入远端节点本地数据缓存块(435)中,并记录或更新本地数据缓存地址索引LDCindex(433),在本示例中将该数据信息写入远端节点本地数据缓存LDC(435)并未更新远端节点本地数据缓存地址索引LDCindex(433);
10)域间互连网络将返回信息由节点NC2(424)控制器的根代理HP(432)返回到节点NC1(404)控制器的cache 缓存代理CP(410),cache缓存代理CP(436)接收返回信息和一致性,并向根代理HP(406)转发;
11)节点NC1控制器内远端内存代理RP(405)中根代理HP(406)接收到返回数据和一致性后,若为独占态、共享态或转发态并为有效数据,可以将该数据写入远端数据缓存块 LRDC(409)并更新远端数据缓存地址索引RDCindex(408),同时由根代理HP(406)发送返回信息到请求处理器CPU1(403);在本示例中未将该数据信息写入远端数据缓存RDC(409)并未更新远端数据缓存地址索引RDCindex(408)。
请参照图6所示,处理器CPU1(503)位于节点NC1(504)控制器所在节点,根内存Mem2(538)模块位于节点NC2(524)控制器所在节点的处理器CPU2(537)处,节点NC1(504)内处理器CPU1(503)对节点NC2(524)根内存Mem2(538)的访存操作过程如下:
1)处理器CPU1(503)发出访存请求操作后,在本地cache缓存未命中,保存访问信息如访存类型、访存地址等,将访存请求发送至本地节点控制器NC1(504)的远端内存代理RP(505)的根代理HP(506)处;
2)节点NC1(504)控制器内的根代理HP(506)将访存信息进行保存,对远端数据缓存目录RDIR(507)查询或更新,判断节点内其他处理器是否有该数据副本,是否需要对节点内其他处理器进行侦听操作;查询本地节点远端数据缓存块LRDC(509)地址索引RDCindex(508)信息,在远端数据缓存目录RDIR(507)和地址索引RDCindex(508)均未命中情况下根代理HP(506)根据访信息将向远端节点缓存代理CP(510)转发访存请求;
3)节点NC1(504)控制器的远端内存代理RP(505)的cache缓存代理CP(510)接收到访存请求,在cache缓存代理CP(510)内部保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点NC2(524)内根处理器CPU2(537)发出访存请求信息;
4)域间互连网络将节点NC1(504)控制器发出的请求消息发送到目的节点NC2(524)控制器,节点NC2(524)控制器处本地内存代理LP(531)的根代理HP(532)接收访存请求消息;
5)节点NC2(524)控制器处本地代理LP(531)的根代理HP(532)接收访存请求消息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录LDIR(534)确认是否对其他节点发出侦听操作,并通过查询远端节点本地数据缓存地址索引LDCindex(533)确认是否调用远端节点本地数据缓存块RLDC(535)等, 在本示例中查询结果表明无需执行该类操作;
6)节点NC2(524)控制器内本地内存代理LP(531)的根代理HP(532)转发访存信息给cache缓存代理CP(536),cache缓存代理CP(536)保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点NC2(524)内根处理器CPU2(537)发出访存请求信息;
7)节点NC2(524)内的根处理器CPU2(537) 保存该访存请求的类型、访存地址等信息,并维护读写请求在处理过程中的状态,在确认节点内其他处理器无该数据副本后,向Mem2(538)某地址进行访存操作,并得到返回信息(包括返回数据、一致性状态等);
8)节点NC2(424) 内根处理器CPU2(537)接收到返回信息后,向本地内存代理LP(531)cache缓存代理CP(536)发送返回信息,cache缓存代理CP(536)接收返回信息后向本地内存代理LP(531)的根代理HP(532)发送返回信息;
9)节点NC2(524)控制器中本地内存代理LP(531)处的根代理HP(532)接收到返回信息后,LDIR(534)目录更新;若为独占态、共享态或转发态并为有效数据,则将该数据及一致性信息写入远端节点本地数据缓存块 RLDC(535)数据块中,并记录或更新远端节点本地数据缓存地址索引LDCindex(533),在本示例中将该数据信息写入远端节点本地数据缓存RLDC(535)并更新远端节点本地数据缓存地址索引LDCindex(533);
10)域间互连网络将返回信息由节点NC2(524)控制器的根代理HP(532)返回到节点NC1(504)控制器的cache 缓存代理CP(510),cache缓存代理CP(536)接收返回信息和一致性,并向根代理HP(506)转发;
11)节点NC1控制器内远端内存代理RP(505)中根代理HP(506)接收到返回数据和一致性后,若为为独占态、共享态或转发态并为有效数据,可以将该数据写入远端数据缓存RDC(509)并更新远端数据缓存地址索引RDCindex(508),同时由根代理HP(506)发送返回信息到请求处理器CPU1(503);在本示例中将该数据信息写入远端数据缓存RDC(509)并更新远端数据缓存地址索引RDCindex(508)。
请参照图7所示,处理器CPU2(617)位于节点NC1(604)控制器所在节点,根内存Mem2(638)模块位于节点NC2(624)控制器所在节点的处理器CPU2(637)处,节点NC1(604)内处理器CPU2(617)对节点NC2(624)根内存Mem2(638)的访存操作过程如下:
1)处理器CPU2(617)向节点NC2(624)处内存地址Mem2(638)处发起访存请求,在CPU2(617)处cache未命中情况下根据访存地址信息,发送访存请求给节点NC1(604)处的远端内存代理RP(606);
2)节点NC1(604)控制器远端内存代理RP(606)保存访存信息,如访存类型、访存地址等,查询远端内存代理目录RDIR(607),发现本节点内处理器CPU1(603)有该数据副本,故远端内存代理RP(606)向本地处理器CPU1(603)进行侦听消息;
3)处理器CPU1(603)收到根代理HP(606)发送的侦听消息后,进行相应一致性状态维护后,返回侦听响应给根代理HP(606);
4)根代理HP(606)根据处理器CPU1(603)返回的侦听响应,发现处理器CPU1(603)已无该数据副本(cache自动更替)或该数据副本一致性权限降级(如从独占态降级为共享态)导致该数据副本不可用;
5)根代理HP(606)查询本地节点远端数据缓存地址索引RDCindex(608),发现地址索引RDCindex(608)命中,故远端内存代理RP(606)向本地节点远端数据缓存LRDC(609)发起访存操作;
6)本地节点远端数据缓存LRDC(609)收到根代理HP(606)发送的访存操作后,返回该数据信息(包含一致性状态和数据)给根代理HP(606);
7)根代理HP(606)发现本地节点远端数据缓存LRDC(609)返回的数据信息副本可用而且一致性权限满足需求,则向处理器CPU2(617)返回从本地节点远端数据缓存LRDC(609)得到的数据信息并同时更新远端内存代理目录RDIR(607),而不需要将访问请求发往节点NC2(624)内根处理器CPU2(637)。
请参照图8所示,处理器CPU1(703)位于节点NC1(704)控制器所在节点,根内存Mem2(738)模块位于节点NC2(724)控制器所在节点的处理器CPU2(737)处,节点NC1(704)内处理器CPU1(703)对节点NC2(724)根内存Mem2(738)的访存操作过程如下:
1)处理器CPU1(703)向节点NC2(724)处内存地址Mem2(738)处发起访存请求,在处理器CPU1(703)处cache未命中情况下根据访存地址信息,发送访存请求给节点NC1(704)处的远端内存代理RP(706);
2)节点NC1(704)控制器远端内存代理RP(706)保存访存信息,如访存类型、访存地址等,查询远端内存代理目录RDIR(707),发现本节点内处理器CPU2(717)有该数据副本,故远端内存代理RP(706)向本地处理器CPU2(717)进行侦听消息;
3)处理器CPU2(717)收到根代理HP(706)发送的侦听消息后,进行相应一致性状态维护后,返回侦听响应给根代理HP(706);
4)根代理HP(706)收到处理器CPU2(717)返回的一致性响应信息,发现处理器CPU2(717)已无该数据副本(cache自动更替)或该数据副本一致性权限降级(如从独占态降级为共享态)导致该数据副本不可用;
5)根代理HP(706)查询本地远端数据缓存地址索引RDCindex(708),发现地址索引RDCindex(708)未命中,则在保存访存信息、维护一致性状态后,转发访存请求给cache缓存代理CP(710);
6)域间互连网络(720)将节点NC1(704)控制器远端内存代理RP(705)cache缓存代理CP(710)发出的访存请求消息转发给节点NC2(724)控制器的本地内存代理LP(731)的根代理HP(732);
7)节点NC2(724)控制器本地内存代理LP(731)的根代理HP(732)接收访存信息后保存访存信息(访存类型、访存地址等)、维护一致性状态,并查询节点NC2(724)控制器的本地节点远端数据缓存地址索引LDCindex(733),发现命中则对远端节点本地数据缓存块 RLDC(735)发起访存操作;
8)根代理HP(732)接收到远端节点本地数据缓存块RLDC(735)返回的数据信息、一致性状态后,发现其数据信息副本可用而且一致性权限满足需求,则将该数据信息通过域间互连网络(720)发给节点NC1控制器的远端内存代理RP(705)的cache缓存代理CP(710);
9)Cache缓存代理CP(710)接收到返回数据及一致性状态信息后,发给根代理HP(706)。根代理HP(706)根据该返回数据和一致性信息,更新相应的远端内存代理目录RDIR(707)目录,将该数据信息写入本地节点远端数据缓存LRDC(709)并更新本地节点远端数据缓存地址索引RDCindex(708),然后将返回数据信息发给访存请求者CPU1(703)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于有限数据一致性状态的服务器节点数据缓存方法,包括如下步骤:
1)发出访存信息,判断访存地址索引匹配是否正确,且数据一致性权限是否满足访问要求;
2)根据步骤1)的判断结果,从被请求方的节点控制器远端数据缓存或节点控制器本地数据缓存读出一致性独占态、共享态、转发态的远端数据或本地数据;
3)仅将一致性独占态、共享态、转发态的远端数据或本地数据写入请求方的节点控制器远端数据缓存或本地数据缓存。
2.如权利要求1所述基于有限数据一致性状态的服务器节点数据缓存方法,其特征在于:所述的节点控制器不但可以同时挂接远端数据缓存和本地数据缓存,而且也可以单独挂接远端数据缓存或本地数据缓存。
3.如权利要求2所述基于有限数据一致性状态的服务器节点数据缓存方法,其特征在于:远端数据缓存或本地数据缓存不能写入修改态的数据,而且其中数据项生命周期结束后,新数据项可以直接覆盖替换而不影响服务器系统全局一致性。
4.如权利要求3所述基于有限数据一致性状态的服务器节点数据缓存方法,其特征在于:所有节点控制器远端数据缓存组成的集合是所有节点控制器本地数据缓存集合的一个真子集,或者与其等价。
5.如权利要求3所述基于有限数据一致性状态的服务器节点数据缓存方法,其特征在于:各级节点控制器远端数据缓存和本地数据缓存均具有地址索引信息,并且各级节点数据缓存地址索引信息和节点目录信息组织均采用分立模式。
6.如权利要求5所述基于有限数据一致性状态的服务器节点数据缓存方法,其特征在于:在访存过程中,可以把本地节点远端数据缓存与远端节点本地数据缓存视为降级的cache,从而组成两级cache对。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092990.1A CN103294611B (zh) | 2013-03-22 | 2013-03-22 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
PCT/CN2013/085023 WO2014146424A1 (zh) | 2013-03-22 | 2013-10-11 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310092990.1A CN103294611B (zh) | 2013-03-22 | 2013-03-22 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294611A true CN103294611A (zh) | 2013-09-11 |
CN103294611B CN103294611B (zh) | 2015-06-17 |
Family
ID=49095524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310092990.1A Active CN103294611B (zh) | 2013-03-22 | 2013-03-22 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103294611B (zh) |
WO (1) | WO2014146424A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014146424A1 (zh) * | 2013-03-22 | 2014-09-25 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
CN104199740A (zh) * | 2014-08-28 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 共享系统地址空间的非紧耦合多节点多处理器系统和方法 |
WO2015035891A1 (zh) * | 2013-09-16 | 2015-03-19 | 华为技术有限公司 | 补丁方法、设备及系统 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
WO2017181895A1 (zh) * | 2016-04-22 | 2017-10-26 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
CN109597776A (zh) * | 2017-09-30 | 2019-04-09 | 杭州华为数字技术有限公司 | 一种数据操作方法、内存控制器以及多处理器系统 |
CN111343209A (zh) * | 2020-05-21 | 2020-06-26 | 浙江双视红外科技股份有限公司 | 一种具有温度信息的图片处理方法 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991795A (zh) * | 2005-12-28 | 2007-07-04 | 国际商业机器公司 | 用于信息处理的系统和方法 |
CN102591800A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种弱一致性存储模型的数据访存系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111563A1 (en) * | 2002-12-10 | 2004-06-10 | Edirisooriya Samantha J. | Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors |
US7475195B2 (en) * | 2005-05-24 | 2009-01-06 | International Business Machines Corporation | Data processing system, cache system and method for actively scrubbing a domain indication |
US7631150B2 (en) * | 2006-09-29 | 2009-12-08 | Broadcom Corporation | Memory management in a shared memory system |
CN103294611B (zh) * | 2013-03-22 | 2015-06-17 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
-
2013
- 2013-03-22 CN CN201310092990.1A patent/CN103294611B/zh active Active
- 2013-10-11 WO PCT/CN2013/085023 patent/WO2014146424A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991795A (zh) * | 2005-12-28 | 2007-07-04 | 国际商业机器公司 | 用于信息处理的系统和方法 |
CN102591800A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种弱一致性存储模型的数据访存系统和方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014146424A1 (zh) * | 2013-03-22 | 2014-09-25 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
WO2015035891A1 (zh) * | 2013-09-16 | 2015-03-19 | 华为技术有限公司 | 补丁方法、设备及系统 |
CN104199740A (zh) * | 2014-08-28 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 共享系统地址空间的非紧耦合多节点多处理器系统和方法 |
CN105068786B (zh) * | 2015-07-30 | 2018-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN105045729B (zh) * | 2015-09-08 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN107315694A (zh) * | 2016-04-22 | 2017-11-03 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
WO2017181895A1 (zh) * | 2016-04-22 | 2017-10-26 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
US10691601B2 (en) | 2016-04-22 | 2020-06-23 | Huawei Technologies Co., Ltd. | Cache coherence management method and node controller |
CN107315694B (zh) * | 2016-04-22 | 2020-12-15 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
CN109597776A (zh) * | 2017-09-30 | 2019-04-09 | 杭州华为数字技术有限公司 | 一种数据操作方法、内存控制器以及多处理器系统 |
CN111343209A (zh) * | 2020-05-21 | 2020-06-26 | 浙江双视红外科技股份有限公司 | 一种具有温度信息的图片处理方法 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103294611B (zh) | 2015-06-17 |
WO2014146424A1 (zh) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294611B (zh) | 一种基于有限数据一致性状态的服务器节点数据缓存方法 | |
CN103294612B (zh) | 在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
CN102033715B (zh) | 在本地代理的存储器镜像和迁移 | |
US8631210B2 (en) | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US7386680B2 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
US8504779B2 (en) | Memory coherence directory supporting remotely sourced requests of nodal scope | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
CA2295403A1 (en) | Non-uniform memory access (numa) data processing system having shared intervention support | |
CN103119568A (zh) | 利用目录信息扩展高速缓存一致性监听广播协议 | |
CN111143244B (zh) | 计算机设备的内存访问方法和计算机设备 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
US6973547B2 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
JP2005519391A (ja) | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム | |
US6721852B2 (en) | Computer system employing multiple board sets and coherence schemes | |
TWI502346B (zh) | 根據窺探回應資訊之目錄快取分配技術 | |
US10592465B2 (en) | Node controller direct socket group memory access | |
US10437725B2 (en) | Master requesting missing segments of a cache line for which the master has coherence ownership | |
US20080104333A1 (en) | Tracking of higher-level cache contents in a lower-level cache | |
US6961827B2 (en) | Victim invalidation | |
US20090157978A1 (en) | Target computer processor unit (cpu) determination during cache injection using input/output (i/o) adapter resources | |
WO2019149031A1 (zh) | 应用于节点系统的数据处理方法及装置 | |
JP6631317B2 (ja) | 演算処理装置、情報処理装置および情報処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |