CN103294612A - 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 - Google Patents
一种在多级缓存一致性域系统局部域构造Share-F状态的方法 Download PDFInfo
- Publication number
- CN103294612A CN103294612A CN2013100930010A CN201310093001A CN103294612A CN 103294612 A CN103294612 A CN 103294612A CN 2013100930010 A CN2013100930010 A CN 2013100930010A CN 201310093001 A CN201310093001 A CN 201310093001A CN 103294612 A CN103294612 A CN 103294612A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- attitude
- state
- coherency domains
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
-
- 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
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种在多级缓存一致性域系统局部域构造Share-F状态的方法,包括如下步骤:1)请求访问同地址S状态远端数据时,通过查询远端代理目录RDIR,确定访问数据副本,并判断其是否处于节点间S态和节点内F态;2)将数据副本直接转发给请求方,同时将当前请求方数据副本记录设为节点间Cache一致性域S态,节点内Cache一致性域F态;3)当数据转发完成后,在远端数据目录RDIR中将丧失F权限态的节点内处理器记录设为节点间Cache一致性域S态、节点内Cache一致性域F态。本发明可以降低跨节点访问的频度和开销,从而大大提升了两级或多级Cache一致性域CC-NUMA系统性能。
Description
技术领域
本发明涉及计算机体系结构领域, 尤其涉及一种在多级缓存一致性域系统局部域构造Share-F状态的方法。
背景技术
MESIF协议广泛用于分布式共享内存计算机系统中以维护多Cache副本系统的全局Cache一致性。其中:1)M (Modified) 态为修改态,表明该缓存数据在某一CPU中为修改状态,该数据与根内存中的对应数据不一致,为整个系统的唯一最新副本;当CPU对该缓存数据进行替换或其他CPU申请访问该数据时,必然引发全局一致性操作,将该数据写回根内存、更新根内存对应数据。2)E (Exclusive) 态为独占态,表明该缓存数据在某一CPU中为独占状态,其他CPU缓存中均无该数据副本;该数据未被修改,与根内存中的对应数据一致;拥有该数据副本的CPU在运行中可自动将E状态数据降级为S态或直接覆盖替换该数据缓存行(即变为I态)而不通知根内存,该操作不影响全局缓存一致性。3)S (Shared) 态为共享态,表明该数据在一个或多个CPU中有副本,而且副本数据未被修改,与根内存中的对应数据一致;拥有该数据副本的CPU在运行中可自动将S状态数据降级为I态而不通知根内存,该操作不影响全局缓存一致性。4)I (Invalid) 态为无效态,表明CPU中该缓存数据已经失效,对其缓存行可直接覆盖替换而不需要执行缓存一致性操作。5)F (Forwarding) 态为转发态,表明该缓存数据在某一CPU中处于具有转发功能的共享状态,在系统中该数据状态唯一且副本未被修改,与根内存中的对应数据一致;并且在其他CPU中可能具有一个或多个相同的但不具备状态功能的S态数据副本。
F态与S态的唯一区别在于F 态是具有转发能力的S态,而S态没有转发能力。当CPU发出S态类型数据读取请求时,只有状态为F态的缓存数据可以将数据副本转发给数据请求方,而状态位为S态的缓存数据不能转发数据副本。如果状态为F态的数据副本从某一CPU转发到其他CPU,F态位将随之迁移;此时请求方CPU新产生的该缓存数据副本状态将变为F态,而原CPU数据副本状态将改变为S态。
对于基于总线侦听方式维护全局Cache一致性的SMP系统,由于系统规模较小,一致性维护开销不显著,此时MESI状态协议即可满足需求,可以不支持F状态。但对基于目录方式维护全局Cache一致性的分布式共享内存系统,采用支持F态的MESIF协议可以使共享态数据在CPU缓存之间转发而不需要每次请求都从根内存中读取数据并传递给请求CPU,从而降低系统一致性处理开销,因此支持F态尤为必要。
CC-NUMA系统是一种典型的基于目录方式的分布式共享内存多处理器系统。在CC-NUMA计算机系统中,节点控制器承担关键角色,其首先与各个服务器处理器互连,组成节点和节点内Cache一致性域,然后节点控制器之间直连或通过节点路由器互连构成节点间互连系统和节点间Cache一致性域;通过两级域的方式可以克服处理器互连端口数目、Cache一致性维护规模等物理限制,从而组成大规模CC-NUMA计算机系统。
对于基于点到点互连方式的CC-NUMA系统,每个处理器CPU都集成内存控制器并外接内存,都在全系统空间上管理一段Cache一致性内存空间,从而成为这段内存空间的根代理。此时若采用总线侦听方式维护全局Cache一致性,将会使要处理的一致性报文数量随节点、CPU数增加而指数增长,从而使系统一致性维护和处理完全没有效率,因此CC-NUMA系统通常采用多级一致性目录方式实现全局Cache一致性的维护,对某段空间的数据访问或一致性权限请求,都需要从请求端处理器通过直连(如果和管理该段Cache一致性空间的根处理器处于同一节点和Cache一致性域)方式访问或通过节点控制器通过节点间互连网络转发到根节点根处理器(此时需要跨节点和跨Cache一致性域访问)的根代理并更新根代理目录信息。对于跨节点Cache一致性维护,节点控制器主要有两个功能,一是作为远端代理,代理本节点处理器对远端节点的访问(需要完成两级Cache一致性域转换逻辑),此时节点控制器需要维护远端目录来记录本地处理器对远端Cache line数据的访问信息和一致性状态;二是作为本地代理,代理远端节点对本节点内处理器的数据访问(需要完成两级Cache一致性域转换逻辑),此时节点控制器同样需要维护本地目录来记录远端节点对本地缓存Cache line数据的访问信息和一致性状态。显然,该种方式将导致多级跳步访问并需要两级Cache一致性域逻辑转换,大大增加了访问的延迟。尤其是对远端Cache line数据的访问可能需要多次一致性操作才能完成,从而进一步降低跨节点访问的效率。因此,对于两级或多级Cache一致性域组成的CC-NUMA架构计算机系统,节点内域的互连带宽和效率远高于节点间互连带宽和效率,内存访问的非均衡性更加突出。
MESIF协议对F态的支持可以有效缓解CC-NUMA系统节点间Cache一致性域中共享数据节点间互连转发问题,消除了每次都从根节点根处理器内存中读取数据副本的开销,从而提升系统的一致性处理效率。
但必须看到,MESIF协议无法解决节点内处理器间S态数据相互转发问题(假定该节点某缓存数据处于S态),即节点内其他处理器不能从本节点处于S态的处理器直接获得S态缓存数据副本,必须跨节点向该数据的根节点发出请求并从其他具有F态数据节点获得该数据,由此增加了处理器跨节点访问的频度和处理开销。
因此若能在节点控制器与处理器构成的节点内Cache一致性域中构造一个局部Share-F状态,允许同地址S态的缓存数据在域内直接转发而不需要访问根节点,则可大大降低处理器跨节点访问频度和开销。从全系统的角度看,虽然两级域或多级域Cache一致性系统同时存在多个F态,但每个Cache一致性域内仅有一个F态,则在不违反全局Cache一致性协议规则基础上降低处理器跨节点访存频度和开销。
发明内容
为解决上述问题,本发明的目的在于提供一种在多级缓存一致性域系统局部域构造Share-F状态的方法,其主要是针对现有跨节点访问高频度、高开销问题,提供一种新的解决方案,提升两级或多级Cache一致性域CC-NUMA系统性能。
为实现上述目的,本发明的技术方案为:
一种在多级缓存一致性域系统局部域构造Share-F状态的方法,包括如下步骤:
1)请求访问同地址S状态远端数据时,通过查询远端代理目录RDIR,确定访问数据副本,并判断其是否处于节点间S态和节点内F态;
2)根据步骤1)的判断结果,将数据副本直接转发给请求方,同时将当前请求方数据副本记录设为节点间Cache一致性域S态,节点内Cache一致性域F态,即Share-F态,而被请求数据副本在节点间、节点内Cache一致性域均设为S态;
3)当数据转发完成后,在远端数据目录RDIR中将丧失F权限态的节点内处理器记录设为节点间Cache一致性域S态、节点内Cache一致性域F态。
一致性信息记录采用三级目录表达形式,其中第一级目录为远端数据目录RDIR, 位于节点控制器远端数据代理单元RP,第二级目录为本地数据代理目录LDIR,位于节点控制器本地数据代理单元LP,第三级为根目录,位于根处理器内存数据代理单元。
所述的远端数据目录RDIR中S状态采用双向量表示方式,分别用节点内和节点间两个标志信号表示,它们的信息可以不一致,其中节点内Cache一致性域标记为F态而节点间Cache一致性域标记为S态,即为Share-F状态。
允许同地址S状态的数据副本在每个Cache一致性域内均构造一个Share-F状态,则全系统同时存在多个F状态,但每个Cache一致性域内有且仅有一个F状态。
所述的节点控制器可挂接远端数据缓存RDC,被缓存的S态远端数据副本记录为节点间Cache一致性域S态,节点内Cache一致性域F态。
本发明在多级缓存一致性域系统局部域构造Share-F状态的方法可以有效支撑节点远端缓存数据被节点内各处理器使用,降低跨节点访问的频度和开销,从而大大提升了两级或多级Cache一致性域CC-NUMA系统性能。
附图说明
图1 多节点多处理器系统结构示意图;
图2是示出根据本发明第一实施例的访问本地节点内存示意图,其中,没有局部Share-F状态;
图3是示出根据本发明第二实施例的访问远端节点内存示意图,其中,没有局部Share-F状态;
图4是示出根据本发明第三实施例的访问本地节点内存示意图,其中,有局部Share-F状态;
图5是示出根据本发明第四实施例的访问远端节点内存示意图,其中,有局部Share-F状态。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1所示,每个节点由2个处理器CPU和节点NC控制器构成,本地节点内的各个处理器和节点控制器处于节点内cache一致性域,而各节点控制器通过系统互连网络互连组成节点间cache一致性域,处理器可实施节点内跨处理器数据转发及通过节点控制器代理实现跨节点内存访问、数据转发等操作。
请参照图2所示,系统由4个节点NC和节点间互连网络(176)组成,每个节点包含两个CPU,节点NC和节点内的CPU分别组成节点内Cache一致性域,包括:节点NC1内Cache一致性域(109)、节点NC2内Cache一致性域(129)、节点NC3内Cache一致性域(149)和节点NC4内Cache一致性域(169);同时4个节点NC通过域间互连网络构成节点间Cache一致性域(189)。
本实施中,节点NC1(104)内的CPU1(103)对远端节点NC2(124)内CPU2(134)处的某一根内存进行访问,该内存地址为addr1,在访存前节点NC1(104)处的CPU2(114) 拥有addr1内存的数据副本,且一致性状态为S,则其访问过程如下:
1)处理器CPU1(103)发出访存请求操作在本地cache缓存未命中,向节点NC1(104)控制器远端数据代理RP(105)单元的根代理HP(106)发出访问远端根节点NC2处内存数据请求,节点NC1(104)控制器的远端数据根代理HP(106)查询其远端代理目录RDIR,发现本地处理器CPU2(114)处有对应addr1地址的数据副本且一致性状态为S,故远端数据根代理HP(106)保存访存请求信息,包括请求类型、访存地址等后,将该请求转发给NC1(104)节点远端数据缓存代理CP(108);
2)节点NC1(104)远端数据缓存代理CP(108)经过域间互连网络(176)向远端节点NC2(124)的本地数据代理单元LP(130)的本地数据根代理HP(131)发送访问请求消息;
3)节点NC2本地数据代理单元LP(130)的根代理HP(131)保存访存请求信息(包括请求类型、访存地址等),检查本地数据目录LDIR后,发现节点间Cache一致性域(189)内其他节点无该数据副本或仅有一致性状态为S态的数据副本,则将信息转发给本地缓存代理CP(133),本地缓存代理CP(133)向处理器CPU2(134)发送访问请求信息;
4)处理器CPU2(134)接收访问请求信息后,从内存Mem2(135)中地址addr1处提取数据,将数据信息返回给节点NC2(124)控制器本地数据代理单元LP(130)的本地缓存代理CP(133)处,并由其转发给本地数据根代理HP(131);本地数据根代理HP(131)更新本地数据目录LDIR,将节点间Cache一致性域(189)内对应addr1地址的节点NC1(104)数据副本一致性状态信息从I态改为S态;根代理HP(131)通过域间互连网络(176)向节点NC1(104)控制器的远端数据代理单元RP(105)的远端缓存代理CP(108)发送返回信息;
5)节点NC1(104)远端数据代理单元RP(105)的远端缓存代理CP(108)接收到返回信息后将其转发给远端数据根代理HP(106),远端数据根代理HP(106)更新远端数据目录RDIR,在节点NC1内Cache一致性域(109)内将对应addr1地址的CPU1(103)处理器数据副本一致性状态信息从I态改为S态,并将返回数据信息发送给CPU1(103)。
请参照图3所示,系统由4个节点NC和节点间互连网络(276)组成,每个节点NC包含的两个CPU。各个节点NC和节点内的CPU分别组成节点内Cache一致性域,包括节点NC1内Cache一致性域(209)、节点NC2内Cache一致性域(229)、节点NC3内Cache一致性域(249)和节点NC4内Cache一致性域(269);同时4个节点NC通过域间互连网络构成节点间Cache一致性域(289)。
本实施例中,节点NC3(244)内的CPU1(243)对远端节点NC2(224)内CPU2(234)处理器处的某一根内存进行访问,该内存地址为addr2。在访问前节点NC1(204)处的CPU1(203)处理器 拥有对应addr2内存地址的数据副本,且一致性状态为F态。其访问过程如下:
1)处理器CPU1(243)发出访存请求操作在本地cache缓存未命中,向节点NC3(244)控制器远端数据代理单元RP(245)的远端数据根代理HP(246)发送访问远端根节点NC2(224)处内存数据请求,节点NC3(244)控制器的远端数据根代理HP(246)保存访存请求信息(访存类型、访存地址等)后,查询远端数据目录RDIR(247),发现本地其他CPU无该数据副本或有数据副本但一致性状态为S态,则将该请求转发给远端数据缓存代理CP(248),远端数据缓存代理CP(248)将访存请求信息经过域间互连网络发送到远端节点NC2(224)的本地数据代理单元LP(230)处;
2)节点NC2(224)控制器本地数据代理单元LP(230)的根代理HP(231)保存访存请求信息(访存类型、访存地址等),查询本地数据目录LDIR(232)发现对应addr2地址的数据副本在节点NC1处并为F态后,向节点NC1(204)的远端数据代理单元RP(205)发送侦听 addr2报文;
3)节点NC1(204)控制器远端数据代理单元RP(205)的远端数据缓存代理CP(208)接收到根节点NC2(224)发送的侦听请求后,将该请求转发给远端数据根代理HP(206);远端数据根代理HP(206)查询远端数据目录RDIR(207)后发现节点内CPU1处有addr2 内存数据副本,且状态为F态,则向CPU1(203)转发该侦听报文;
4)CPU1(203)接受到侦听报文,将对应addr2地址的缓存数据状态由F改为S态,同时返回带F态的数据信息给节点NC1(204)远端数据代理单元RP(205)的远端数据根代理HP(206),远端数据根代理HP(206)将返回数据信息转发给远端数据缓存代理CP(208),并更新远端数据缓存目录RDIR(207),将CPU1(203)对应addr2 地址的数据副本状态由F改为S态;
5)节点NC1(204)控制器远端数据代理单元RP(205)的远端数据缓存代理CP(208)通过域间互连网络向节点NC2(224)本地数据代理单元LP(230)的根代理HP(231)返回侦听信息,同时将对应addr2地址的数据信息直接转发给节点NC3(244)远端数据代理单元RP(245)的远端数据缓存代理CP(248);
6)节点NC3(244)远端数据代理单元RP(245)的远端数据缓存代理CP(248)接收到节点NC1(204)转发的对应addr2地址的数据信息后,将其转发给远端数据根代理HP(246);根代理HP(246)将该数据信息发送给处理器CPU1(243),同时更新节点远端数据目录RDIR(247),将CPU1(243)对应addr2 地址的数据副本状态由I改为F态;
7)处理器CPU1(243)处接收到返回数据信息后,保存相应数据信息,并在缓存目录中将对应addr2地址的数据副本一致性状态记录记为F态。
请参照图4所示,其中系统由4个节点NC和节点间互连网络(376)组成,每个节点NC包含的两个CPU。各个节点NC和节点内的CPU分别组成节点内Cache一致性域,包括节点NC1内Cache一致性域(309)、节点NC2内Cache一致性域(329)、节点NC3内Cache一致性域(349)和节点NC4内Cache一致性域(369);同时4个节点NC通过域间互连网络构成节点间Cache一致性域(389)。
本实施例中,节点NC3(344)内的CPU1(343)对远端节点NC2(324)内CPU2(334)处的某一根内存进行访问,该内存地址为addr3。在访问前节点NC1(304)处的CPU1(303)处理器拥有addr3地址内存的数据副本,且一致性状态为F态。其访问路径与第二个实施例相似,但在两级域Cache一致性中F态的转发、迁移处理有所不同,具体流程如下:
1)处理器CPU1(343)发出访存请求操作在本地cache缓存未命中,向NC3(344)节点控制器的远端数据代理单元RP(345)的根代理HP(346)发送访问远端节点NC2(324)处内存数据请求,节点NC3(344)控制器的远端数据根代理HP(346)保存访存请求信息(访存类型、访存地址等)后,查询远端数据目录RDIR(347),发现本地其他CPU无该数据副本或有数据副本但一致性状态为S态,则将该请求转发给远端数据缓存代理CP(348),远端数据缓存代理CP(348)将访存请求信息经过域间互连网络发送到节点NC2(324)的本地数据代理单元LP(330)处;
2)节点NC2(324)控制器本地数据代理单元LP(330)处的本地数据根代理HP(331)保存访存请求信息(访存类型、访存地址等),查询本地内存目录LDIR(332)对应addr3 地址内存的数据副本状态,发现节点间Cache一致性域区域(389)内的节点NC1具有该数据副本并且一致性状态为F,则通过域间互连网络向节点NC1(304)远端数据代理单元RP(305)发送侦听addr3报文;
3)节点NC1(304)控制器远端数据代理单元RP(305)的远端缓存代理CP(308)接收到NC2(324)根节点发送的侦听报文后,将该请求转发给远端数据根代理HP(306);根代理HP(306)查询远端数据目录RDIR(307)后发现节点内CPU1(303)有对应addr3地址的数据副本且一致性状态为F态; 则根代理HP(306)向CPU1(303)转发该 侦听报文;
4)CPU1(303)接受到侦听报文,发现为节点NC1(304)转发的域间侦听报文,则将对应addr2地址的数据副本状态保持F态不变,同时返回F态的数据信息给节点NC1(304)远端数据代理单元RP(305)的远端数据根代理HP(306),远端数据根代理HP(306)将返回数据信息转发给远端数据缓存代理CP(308),并更新远端数据缓存目录RDIR(307),将CPU1(303)处理器对应addr2 地址的数据副本状态在节点NC1(304)内Cache一致性域(309)内记为F态,而将节点间Cache一致性域区域(389)中NC1(304)节点对应addr3地址的数据副本状态从F态改为S态;
5)节点NC1(304)远端数据代理单元RP(305)的远端缓存代理CP(308)通过域间互连网络向节点NC2(324)的本地数据代理单元LP(330)的根代理HP(331)发送侦听信息,同时将对应addr3地址的数据信息直接转发给节点NC3(344)远端数据代理单元RP(345)的远端数据缓存代理CP(348);
6)NC2(324)节点的本地数据代理单元LP(330)的根代理HP(331)接受到返回的侦听信息,更新本地内存代理目录LDIR(332)对应addr3 地址的数据副本状态,将节点间Cache一致性域区域(389)中节点NC1(304)对应addr3地址的数据副本状态从F态改为S态,而将节点NC3(344)对应addr3地址数据副本状态从I态改为F态;
7)节点NC3(344)远端数据代理单元RP(345)的远端数据缓存代理CP(348)接收到节点NC1(304)转发的对应addr3地址的数据信息后,将其转发给远端数据根代理HP(346);根代理HP(346)将该数据信息发送给处理器CPU1(343),同时更新节点远端数据代理目录RDIR(347),将节点NC3内Cache一致性域(349)内CPU1(343)处理器对应addr3 地址的缓存状态由I改为F态,并将节点间Cache一致性域区域(389)中节点NC3(344)对应addr3地址的数据副本状态从I态改为F态。
请参照图5所示,其中系统由4个节点NC和节点间互连网络(476)组成,每个节点NC包含的两个CPU。各个NC节点和节点内的CPU分别组成节点内Cache一致性域,包括节点NC1内Cache一致性域(409)、节点NC2内Cache一致性域(429)、节点NC3内Cache一致性域(449)和节点NC4内Cache一致性域(469);同时4个节点NC通过域间互连网络构成节点间Cache一致性域(489)。
本实施例中,节点NC1(404)内的处理器CPU2(414)对远端节点NC2(424)内CPU2(434)处理器处的某一根内存进行访问,该内存地址为addr4。在访问前节点NC1(404)处的CPU1(403)处理器拥有对应addr4地址内存的数据副本,且一致性状态为F态。其访问流程如下:
1)节点NC1(404)内的处理器CPU2(414)发出访存请求操作在本地cache缓存未命中,向节点NC1(404)控制器的远端数据代理单元RP(405)的远端数据根代理HP(406)发送访问远端根节点NC2(424)处内存数据请求;
2)节点NC1(404)控制器远端数据代理单元RP(405)的远端数据根代理HP(406)保存访存请求信息(访存类型、访存地址等)后,查询远端数据目录RDIR(407),发现本地CPU1(403)有该数据副本并且对应addr4 地址的数据副本状态在节点NC1(404)内Cache一致性域(409)内记录为F态,而在节点间Cache一致性域区域(489)中记录为S态,则判定此add4地址数据在节点NC1(404)内为Share-F态;
3)节点NC1(404)控制器远端数据代理单元RP(405)处的远端数据根代理HP(406)向CPU1(403)发送侦听报文。处理器CPU1(403)接受到侦听报文,解析该报文发现为节点NC1(404)内处理器CPU2(414)的请求,则向节点NC1(404)控制器远端数据代理单元RP(405)发送侦听信息,同时向处理器CPU2(414)转发对应addr4 地址的数据信息和一致性状态,并更新CPU1(403)处缓存目录对应addr4地址的数据副本一致性状态信息,将其由F态变为S态;
4)节点NC1(404)控制器远端数据代理单元RP(405)处的远端数据根代理HP(406)接收侦听信息后,更新其远端数据代理目录RDIR(407),将节点NC1内Cache一致性域内(409)中处理器CPU1(403)对应addr4地址的数据副本状态由F态改为S态,而将CPU2(414)对应addr4地址的数据副本状态由I态改为F态;
5)处理器CPU2(414)接收处理器CPU1(403)转发的对应addr4地址的数据信息和一致性状态,将其缓存目录中对应addr4地址的数据副本一致性状态由I态改为F态。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种在多级缓存一致性域系统局部域构造Share-F状态的方法,包括如下步骤:
1)请求访问同地址S状态远端数据时,通过查询远端代理目录RDIR,确定访问数据副本,并判断其是否处于节点间S态和节点内F态;
2)根据步骤1)的判断结果,将数据副本直接转发给请求方,同时将当前请求方数据副本记录设为节点间Cache一致性域S态,节点内Cache一致性域F态,即Share-F态,而被请求数据副本在节点间、节点内Cache一致性域均设为S态;
3)当数据转发完成后,在远端数据目录RDIR中将丧失F权限态的节点内处理器记录设为节点间Cache一致性域S态、节点内Cache一致性域F态。
2.如权利1要求的在多级缓存一致性域系统局部域构造Share-F状态的方法,其特征在于:一致性信息记录采用三级目录表达形式,其中第一级目录为远端数据目录RDIR, 位于节点控制器远端数据代理单元RP,第二级目录为本地数据代理目录LDIR,位于节点控制器本地数据代理单元LP,第三级为根目录,位于根处理器内存数据代理单元。
3.如权利2要求的在多级缓存一致性域系统局部域构造Share-F状态的方法,其特征在于:所述的远端数据目录RDIR中S状态采用双向量表示方式,分别用节点内和节点间两个标志信号表示,它们的信息可以不一致,其中节点内Cache一致性域标记为F态而节点间Cache一致性域标记为S态,即为Share-F状态。
4.如权利3要求的在多级缓存一致性域系统局部域构造Share-F状态的方法,其特征在于:允许同地址S状态的数据副本在每个Cache一致性域内均构造一个Share-F状态,则全系统同时存在多个F状态,但每个Cache一致性域内有且仅有一个F状态。
5.如权利4要求的在多级缓存一致性域系统局部域构造Share-F状态的方法,其特征在于:所述的节点控制器可挂接远端数据缓存RDC,被缓存的S态远端数据副本记录为节点间Cache一致性域S态,节点内Cache一致性域F态。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310093001.0A CN103294612B (zh) | 2013-03-22 | 2013-03-22 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
JP2015527785A JP5833282B2 (ja) | 2013-03-22 | 2013-10-11 | 多階層キャッシュコヒーレンシドメインシステムおよび多階層キャッシュコヒーレンシドメインシステムのローカルドメインにおけるShare−F状態の構成方法 |
PCT/CN2013/085033 WO2014146425A1 (zh) | 2013-03-22 | 2013-10-11 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
EP13878773.4A EP2871579A4 (en) | 2013-03-22 | 2013-10-11 | METHOD FOR PARTIALLY CONSTRUCTING SHARE-F STATE IN MULTI-LEVEL CACHE COHERENCE COHERENCE DOMAIN SYSTEM |
US14/534,480 US20150058570A1 (en) | 2013-03-22 | 2014-11-06 | Method of constructing share-f state in local domain of multi-level cache coherency domain system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310093001.0A CN103294612B (zh) | 2013-03-22 | 2013-03-22 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294612A true CN103294612A (zh) | 2013-09-11 |
CN103294612B CN103294612B (zh) | 2014-08-13 |
Family
ID=49095525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310093001.0A Active CN103294612B (zh) | 2013-03-22 | 2013-03-22 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150058570A1 (zh) |
EP (1) | EP2871579A4 (zh) |
JP (1) | JP5833282B2 (zh) |
CN (1) | CN103294612B (zh) |
WO (1) | WO2014146425A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870395A (zh) * | 2014-03-04 | 2014-06-18 | 华为技术有限公司 | 一种目录维护方法及装置 |
CN103870435A (zh) * | 2014-03-12 | 2014-06-18 | 华为技术有限公司 | 服务器及数据访问方法 |
WO2014146425A1 (zh) * | 2013-03-22 | 2014-09-25 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN104794099A (zh) * | 2015-04-28 | 2015-07-22 | 浪潮电子信息产业股份有限公司 | 一种资源融合的方法、系统及一种远端代理器 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN107077429A (zh) * | 2015-03-20 | 2017-08-18 | 华为技术有限公司 | 数据读取方法、设备和系统 |
CN107634982A (zh) * | 2017-07-27 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种多路服务器互联芯片远端代理目录实现方法 |
CN111241024A (zh) * | 2020-02-20 | 2020-06-05 | 山东华芯半导体有限公司 | 一种全互联axi总线的级联方法 |
CN115514772A (zh) * | 2022-11-15 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248564B2 (en) * | 2016-06-24 | 2019-04-02 | Advanced Micro Devices, Inc. | Contended lock request elision scheme |
US10592465B2 (en) * | 2017-10-26 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Node controller direct socket group memory access |
US11119926B2 (en) | 2017-12-18 | 2021-09-14 | Advanced Micro Devices, Inc. | Region based directory scheme to adapt to large cache sizes |
US10705959B2 (en) | 2018-08-31 | 2020-07-07 | Advanced Micro Devices, Inc. | Region based split-directory scheme to adapt to large cache sizes |
US10922237B2 (en) | 2018-09-12 | 2021-02-16 | Advanced Micro Devices, Inc. | Accelerating accesses to private regions in a region-based cache directory scheme |
CN110417887B (zh) * | 2019-07-29 | 2022-05-20 | 中国电子科技集团公司第二十八研究所 | 一种基于代理的信息资源目录同步方法 |
CN112445413A (zh) * | 2019-08-29 | 2021-03-05 | 华为技术有限公司 | 一种数据存储的方法、装置及相关设备 |
US11321495B2 (en) * | 2020-04-01 | 2022-05-03 | International Business Machines Corporation | Anomalous cache coherence transaction detection in a heterogeneous system |
CN113553274B (zh) * | 2020-04-24 | 2023-09-12 | 江苏华创微系统有限公司 | 用自适应粒度目录表实现片间一致性的方法 |
CN114024714A (zh) * | 2021-09-30 | 2022-02-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种访问请求处理方法、装置、网卡设备及存储计算系统 |
CN114218469B (zh) * | 2021-12-15 | 2022-09-02 | 掌阅科技股份有限公司 | 资源策略处理方法、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149706A (zh) * | 2006-09-19 | 2008-03-26 | 国际商业机器公司 | 支持掷出的一致性管理的处理器、数据处理系统和方法 |
US20080215818A1 (en) * | 2006-06-19 | 2008-09-04 | Kornegay Marcus L | Structure for silent invalid state transition handling in an smp environment |
US20100180084A1 (en) * | 2009-01-13 | 2010-07-15 | Sun Microsystems, Inc. | Cache-coherency protocol with held state |
CN102902631A (zh) * | 2012-09-18 | 2013-01-30 | 杭州中天微系统有限公司 | 一种避免读缺失时数据回写的多处理器核间传输方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1229953A (zh) * | 1998-02-17 | 1999-09-29 | 国际商业机器公司 | 具有全局和局部标记状态的高速缓存相干性协议 |
US6615322B2 (en) * | 2001-06-21 | 2003-09-02 | International Business Machines Corporation | Two-stage request protocol for accessing remote memory data in a NUMA data processing system |
US7394823B2 (en) * | 2001-11-20 | 2008-07-01 | Broadcom Corporation | System having configurable interfaces for flexible system configurations |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7130969B2 (en) * | 2002-12-19 | 2006-10-31 | Intel Corporation | Hierarchical directories for cache coherency in a multiprocessor system |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
US20070150664A1 (en) * | 2005-12-28 | 2007-06-28 | Chris Dombrowski | System and method for default data forwarding coherent caching agent |
US8812793B2 (en) * | 2006-06-19 | 2014-08-19 | International Business Machines Corporation | Silent invalid state transition handling in an SMP environment |
CN103294612B (zh) * | 2013-03-22 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
-
2013
- 2013-03-22 CN CN201310093001.0A patent/CN103294612B/zh active Active
- 2013-10-11 WO PCT/CN2013/085033 patent/WO2014146425A1/zh active Application Filing
- 2013-10-11 JP JP2015527785A patent/JP5833282B2/ja active Active
- 2013-10-11 EP EP13878773.4A patent/EP2871579A4/en not_active Withdrawn
-
2014
- 2014-11-06 US US14/534,480 patent/US20150058570A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215818A1 (en) * | 2006-06-19 | 2008-09-04 | Kornegay Marcus L | Structure for silent invalid state transition handling in an smp environment |
CN101149706A (zh) * | 2006-09-19 | 2008-03-26 | 国际商业机器公司 | 支持掷出的一致性管理的处理器、数据处理系统和方法 |
US20100180084A1 (en) * | 2009-01-13 | 2010-07-15 | Sun Microsystems, Inc. | Cache-coherency protocol with held state |
CN102902631A (zh) * | 2012-09-18 | 2013-01-30 | 杭州中天微系统有限公司 | 一种避免读缺失时数据回写的多处理器核间传输方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014146425A1 (zh) * | 2013-03-22 | 2014-09-25 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN103870395A (zh) * | 2014-03-04 | 2014-06-18 | 华为技术有限公司 | 一种目录维护方法及装置 |
US10204052B2 (en) | 2014-03-04 | 2019-02-12 | Huawei Technologies Co., Ltd. | Directory maintenance method and apparatus |
CN103870395B (zh) * | 2014-03-04 | 2017-08-04 | 华为技术有限公司 | 一种目录维护方法及装置 |
WO2015135385A1 (zh) * | 2014-03-12 | 2015-09-17 | 华为技术有限公司 | 服务器及数据访问方法 |
CN103870435B (zh) * | 2014-03-12 | 2017-01-18 | 华为技术有限公司 | 服务器及数据访问方法 |
CN103870435A (zh) * | 2014-03-12 | 2014-06-18 | 华为技术有限公司 | 服务器及数据访问方法 |
CN107077429A (zh) * | 2015-03-20 | 2017-08-18 | 华为技术有限公司 | 数据读取方法、设备和系统 |
CN107077429B (zh) * | 2015-03-20 | 2019-10-18 | 华为技术有限公司 | 数据读取方法、设备和系统 |
CN104794099A (zh) * | 2015-04-28 | 2015-07-22 | 浪潮电子信息产业股份有限公司 | 一种资源融合的方法、系统及一种远端代理器 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105068786B (zh) * | 2015-07-30 | 2018-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN105045729B (zh) * | 2015-09-08 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与系统 |
CN107634982A (zh) * | 2017-07-27 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种多路服务器互联芯片远端代理目录实现方法 |
CN111241024A (zh) * | 2020-02-20 | 2020-06-05 | 山东华芯半导体有限公司 | 一种全互联axi总线的级联方法 |
CN115514772A (zh) * | 2022-11-15 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2871579A1 (en) | 2015-05-13 |
JP2015525939A (ja) | 2015-09-07 |
WO2014146425A1 (zh) | 2014-09-25 |
CN103294612B (zh) | 2014-08-13 |
US20150058570A1 (en) | 2015-02-26 |
EP2871579A4 (en) | 2016-02-24 |
JP5833282B2 (ja) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294612B (zh) | 在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
US10824565B2 (en) | Configuration based cache coherency protocol selection | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
US7386680B2 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
US6324622B1 (en) | 6XX bus with exclusive intervention | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US8656115B2 (en) | Extending a cache coherency snoop broadcast protocol with directory information | |
CN100592269C (zh) | 用于预测性选择预取操作的范围的数据处理系统和方法 | |
KR100324975B1 (ko) | 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템 | |
US7856535B2 (en) | Adaptive snoop-and-forward mechanisms for multiprocessor systems | |
US20160147659A1 (en) | Nested cache coherency protocol in a tiered multi-node computer system | |
CN103294611B (zh) | 一种基于有限数据一致性状态的服务器节点数据缓存方法 | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US6842828B2 (en) | Methods and arrangements to enhance an upbound path | |
US20130111149A1 (en) | Integrated circuits with cache-coherency | |
US20030154351A1 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
US7725660B2 (en) | Directory for multi-node coherent bus | |
US10901902B2 (en) | Efficient inclusive cache management | |
JP7277075B2 (ja) | スヌープリクエストに対する応答の転送 | |
US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
KR100281465B1 (ko) | 분산된공유메모리구조의다중프로세서장치 | |
US11947418B2 (en) | Remote access array | |
KR19990034359A (ko) | 분산공유 메모리구조를 갖는 시스템의 캐시 동일성 유지 제어기 |
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 |