CN103294612A - 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 - Google Patents

一种在多级缓存一致性域系统局部域构造Share-F状态的方法 Download PDF

Info

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
Application number
CN2013100930010A
Other languages
English (en)
Other versions
CN103294612B (zh
Inventor
王恩东
陈继承
胡雷钧
甘小伟
公维锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201310093001.0A priority Critical patent/CN103294612B/zh
Publication of CN103294612A publication Critical patent/CN103294612A/zh
Priority to JP2015527785A priority patent/JP5833282B2/ja
Priority to PCT/CN2013/085033 priority patent/WO2014146425A1/zh
Priority to EP13878773.4A priority patent/EP2871579A4/en
Application granted granted Critical
Publication of CN103294612B publication Critical patent/CN103294612B/zh
Priority to US14/534,480 priority patent/US20150058570A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details 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状态的方法
技术领域
本发明涉及计算机体系结构领域, 尤其涉及一种在多级缓存一致性域系统局部域构造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态。
CN201310093001.0A 2013-03-22 2013-03-22 在多级缓存一致性域系统局部域构造Share-F状态的方法 Active CN103294612B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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状态的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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