CN106406745B - 根据目录信息维护Cache数据一致性的方法及装置 - Google Patents

根据目录信息维护Cache数据一致性的方法及装置 Download PDF

Info

Publication number
CN106406745B
CN106406745B CN201510447072.5A CN201510447072A CN106406745B CN 106406745 B CN106406745 B CN 106406745B CN 201510447072 A CN201510447072 A CN 201510447072A CN 106406745 B CN106406745 B CN 106406745B
Authority
CN
China
Prior art keywords
data block
cache
directory information
directory
target processor
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.)
Active
Application number
CN201510447072.5A
Other languages
English (en)
Other versions
CN106406745A (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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510447072.5A priority Critical patent/CN106406745B/zh
Priority to PCT/CN2016/090778 priority patent/WO2017016427A1/zh
Publication of CN106406745A publication Critical patent/CN106406745A/zh
Application granted granted Critical
Publication of CN106406745B publication Critical patent/CN106406745B/zh
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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means

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

本发明公开了根据目录信息维护Cache数据一致性的方法及装置。所述方法包括:接收数据块状态变更请求;根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。采用本发明所提供的方法及装置,目录信息存储在主存储器中,从而可以避免使用互联芯片的目录存储空间,降低NUMA***设计和实现的难度。

Description

根据目录信息维护Cache数据一致性的方法及装置
技术领域
本发明涉及数据块处理领域,尤其涉及根据目录信息维护Cache数据一致性的方法及装置。
背景技术
分布共享存储多处理器***指由一个公共存储器和多个处理器所构成的数据块处理***。在众多类型的分布共享存储多处理器***中,非一致性内存架构(Non UniformMemory Access Architecture,简称NUMA)***以其方便的编程环境和较好的可扩展性,成为最常用的分布共享存储多处理器***。
NUMA***通常由多个多处理器***构成,其中每一个子***中可以由主存储器(Main Memory)和若干处理器(Processer)构成,各个子处理***之间可以共享主存储器的空间。由于NUMA***中各个处理器共享主存储器,各个处理器都可以改写主存储器中的任意数据块,而各个处理器高速缓冲存储器(Cache)也可以缓存主存储器中的任意数据块,从而可能会出现第一处理器Cache缓存了主存储器中某个数据块后,该数据块又被第二处理器改写的情况,导致第一处理器Cache所缓存的数据与主存储器中的数据不一致。由于在NUMA***中处理器的数量越多,出现处理器Cache所缓存的数据与主存储器中的数据不一致的可能性越大,因此处理器高速缓冲存储器(Cache)数据的一致性问题,成为限制NUMA***规模及可扩展性的关键问题。
现有技术中,NUMA***通常会利用保存在互连芯片上的目录信息来保证Cache数据的一致性。具体来说,现有NUMA***中通常会设有一个互连芯片,该互连芯片中开辟有目录存储空间,该目录存储空间用于保存目录信息,所述目录信息用于记录主存储器中各个数据块是否被处理器Cache所缓存,以及被哪个处理器Cache所缓存等。当某个指定处理器需要修改主存储器中某个数据块时,首先根据目录信息确定是否有处理器Cache中已经缓存了该数据块;当发现目标处理器Cache中缓存有该数据块时,该指定处理器可以向该目标处理器发送点对点的消息,以使其目标处理器Cache中已缓存的该数据块失效,在发送完所述点对点消息之后,所述指定处理器才能修改该数据块。采用此方式,可以确保***中各个处理器Cache中已缓存的数据块与主存储器中数据块一致,从而解决处理器Cache数据的一致性问题。
在利用目录信息来保证处理器Cache数据的一致性时,NUMA***的扩展和处理器个数的增加会导致目录信息的数据量随之增加,目录存储器的存储空间也需要随着目录信息的数据量的增加而加大。因此,采用现有方法解决处理器Cache数据的一致性问题,在NUMA***规模较大时,因此需要使用较的目录存储空间来存储目录信息互联芯片具有较大存储,而目录存储空间加大伴随的代价是互连芯片结构复杂化及芯片面积大幅增加。而互连芯片结构复杂化及芯片面积大幅增加,则会增加NUMA***设计和实现的难度。
发明内容
本发明实施例提供了根据目录信息维护Cache数据一致性的方法及装置,可以降低NUMA***设计和实现的难度。
第一方面,本发明实施例提供了一种根据目录信息维护Cache数据一致性的方法,目录信息保存在主存储器中,所述目录信息用于记录主存储器***区域中数据块被各个处理器高速缓冲存储器所缓存的状况,所述方法包括:接收数据块状态变更请求;根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。
结合第一方面,在第一方面第一种可能的实现方式中,所述根据保存在所述主存储器中的目录信息确定目标处理器包括:检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息,所述主存储器的目录区域用于保存所述目录信息;当所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第一方面,在第一方面第二种可能的实现方式中,所述根据保存在所述主存储器中的目录信息确定目标处理器包括:检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;当互连芯片的目录缓存中不存在所述指定目录信息时,检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;当所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第一方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述方法还包括:当互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第一方面第二种可能的实现方式,在第二方面第四种可能的实现方式中,所述方法还包括:当互连芯片的目录缓存中不存在所述指定目录信息时,更新所述目录缓存中的目录信息。
结合第一方面第二至四种可能的实现方式中任意一种,在第二方面第五种可能的实现方式中,所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。
结合第一方面或第一方面第一至五种可能的实现方式中任意一种,在第一方面第六种可能的实现方式中,其特征在于,所述向目标处理器发送状态变更指示包括:当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。
结合第一方面或第一方面第一至六种可能的实现方式中任意一种,在第一方面第七种可能的实现方式中,所述目录信息包括访问状态字段、信息状态字段及缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。
第二方面,本发明实施例提供了一种根据目录信息维护Cache数据一致性的装置,目录信息保存在主存储器中,所述目录信息用于记录主存储器***区域中数据块被各个处理器高速缓冲存储器所缓存的状况,所述装置包括:接收单元,用于接收数据块状态变更请求;指定数据块确定单元,用于根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;目标处理器确定单元,用于根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;发送单元,用于向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。
结合第二方面,在第二方面第一种可能的实现方式中,所述目标处理器确定单元,包括:第一检测子单元,用于检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息,所述主存储器的目录区域用于保存所述目录信息;第一确定子单元,用于在所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第二方面,在第二方面第二种可能的实现方式中,所述目标处理器确定单元,包括:第二检测子单元,用于检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;第三检测子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;第二确定子单元,用于在所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述第二确定子单元,还用于在互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
结合第二方面第二种可能的实现方式,在第二方面第四种可能的实现方式中,所述目标处理器确定单元,还包括:更新子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,更新所述目录缓存中的目录信息
结合第二方面第二至四种可能的实现方式中任意一种,在第二方面第五种可能的实现方式中,所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。
结合第二方面或第二方面第一至五种可能的实现方式中任意一种,在第二方面第六种可能的实现方式中,所述发送单元,用于当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,用于当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。
结合第二方面或第二方面第一至六种可能的实现方式中任意一种,在第二方面第七种可能的实现方式中,所述目录信息包括访问状态字段、信息状态字段及缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。
在本发明实施例中,接收数据块状态变更请求;根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目录信息用于记录主存储器***区域中数据块被各个处理器Cache所缓存的状况,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。采用本发明实施例,目录信息存储在主存储器中,从而可以避免使用互联芯片的目录存储空间来存储目录信息,降低NUMA***设计和实现的难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明根据目录信息维护Cache数据一致性的方法一个实施例的流程图;
图2为本发明目录信息的结构示意图;
图3为本发明根据目录信息维护Cache数据一致性的装置一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在此需要说明的是,其本发明的该非一致内存访问架构***,可以由至少一个多处理器***(Multiprocessor Systems)构成,其中每一个多处理器***可以包含主存储器(Main Memory)和至少两个处理器,目录信息可以保存在主存储器中。其中,主存储器包含目录区域及***区域,所述目录区域中用于保存目录信息,而***区域用于保存主存储器所需保存的数据块,每一个目录区域既可以用于存储其所属主存储器***区域中数据块的目录信息,也可以用于存储其他主存储器***区域中数据块的目录信息。
参见图1,为本发明根据目录信息维护Cache数据一致性的方法一个实施例的流程示意图。该方法包括如下步骤:
步骤101,接收数据块状态变更请求。
NUMA***中的处理器首先接收数据块状态变更请求,其中所述数据块状态变更请求可以由***中的应用发送。其中,所述数据块状态变更请求可以是数据块改写请求、数据块共享请求等,其中,数据块改写请求用于请求改写主存储器中的某数据块,而数据块共享请求用于请求共享主存储器中某数据块。
步骤102,根据所述数据块状态变更请求确定主存储器***区域中的指定数据块。
处理器在接收到数据块状态变更请求后,首先根据该数据块状态变更请求确定需要改写主存储器***区域中的哪一个数据块。
例如,在所述数据块状态变更请求中携带有指定数据块的地址范围时,可以认为该地址范围内的数据块即为指定数据块。在所述数据块状态变更请求中携带有指定数据块的起始地址,并能够根据数据块状态变更请求确定指定数据块的大小时,可以根据所述指定数据块的起始地址及指定数据块的大小确定指定数据块。
步骤103,根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目录信息用于记录主存储器***区域中数据块被各个处理器Cache所缓存的状况,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器。
在指定数据块被确定之后,处理器可以检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;当所述主存储器目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
所述主存储器目录区域中每一条目录信息可以与主存储器中一个固定大小的数据块相对应,该数据块的大小可以根据需要预先设置,例如,可以与处理器Cache中每一个缓存行(Cacheline)的大小相同。
目录区域中的目录信息可以采用局部性原理以多路组相联方式映射生成。采用局部性原理,并以多路组相联的方式映射生成目录信息,可以仅生成主存储器中可能被处理器Cache缓存的数据块对应的目录信息,而不必生成主存储器中所有数据块对应的目录信息,从而可以大大减小目录信息的数据量,减小目录区域所占用的空间;并且***区域中固定地址的数据块对应的信息会被保存在目录区域的固定地址,根据数据块的地址可以很容忍确定该数据块对应目录信息的保存地址,从而可以加快目录信息的查找速度。
其中,所述目录信息的结构可以如图2所示,所述目录信息包括访问状态字段、信息状态字段、缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。通常情况下,所述访问状态字段的长度可以为1bit,所述信息状态字段的长度可以为3bit,而缓存指示字段的长度可以为4bit。其中,所述目录信息所对应数据块被处理器Cache所缓存的状况是指,所述目录信息对应的数据块是否被处理器Cache所缓存以及被哪一个处理器Cache所缓存等。
为加快数据块改写的处理速度,所述NUMA***也可以包括一个互连芯片,该互连芯片上设置有目录缓存,该目录缓存用于以缓存方式存储主存储器目录区域中目录信息。为减少目录缓存的空间,所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。
因此在指定数据块确定之后,处理器也可以先检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;当互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。当互连芯片的目录缓存中不存在所述指定目录信息时,处理器再检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;当所述主存储器目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
如果所述目录信息包括访问状态字段、信息状态字段、缓存指示字段,在根据指定目录信息确定目标处理器时,可以分析所述指定目录信息的缓存指示字段的内容,根据缓存指示字段的内容确定目标处理器。例如,在根据缓存指示字段确定第一处理器Cache中缓存有该指定数据块时,可以确定第一处理器为目标处理器。在根据缓存指示字段确定第二处理器Cache及第三处理器Cache中均缓存有该指定数据块时,可以确定第二处理器及第三处理器均为目标处理器。
如果互连芯片的目录缓存及所述主存储器目录区域中均不存在指定目录信息,则可以认为指定数据块未被任何一个处理器Cache所缓存,处理器可以根据所述数据块状态变更请求直接变更所述指定数据块的状态。
步骤104,向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。
如果根据所述目录信息确定存在目标处理器,那么处理器可以向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。目标处理器可以根据所述数据块状态变更请求修改所述指定数据块的状态,从而可以保证各个处理器Cache中数据的一致性。
根据数据块状态变更请求类型的不同,所述状态变更指示的可以不相同。例如,当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。
目标处理器在接收到所述状态变更指示之后,可以根据状态变更指示改变指定数据块的状态。例如,当目标处理器接收到失效指示时,可以使目标处理器Cache中该失效指示对应的指定数据块失效;而当目标处理器接收到共享指示时,则可以共享目标处理器Cache中该共享指示对应的指定数据块。
在本实施例中,接收数据块状态变更请求;根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目录信息用于记录主存储器***区域中数据块被各个处理器Cache所缓存的状况,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。采用本实施例,目录信息存储在主存储器中,从而可以避免使用互联芯片的目录存储空间来存储目录信息,降低NUMA***设计和实现的难度。
与根据目录信息维护Cache数据一致性的方法的实施例相对应,本发明实施例还提供了根据目录信息维护Cache数据一致性的装置的实施例。
参见图3,为本发明根据目录信息维护Cache数据一致性的装置一个实施例的结构示意图,其中,目录信息保存在主存储器中,所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。该装置可以用于执行前述实施例中根据目录信息维护Cache数据一致性的方法。
如图3所示,所述装置可以包括:接收单元301,指定数据块确定单元302,目标处理器确定单元303及发送单元304。
其中,接收单元301,用于接收数据块状态变更请求;指定数据块确定单元302,用于根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;目标处理器确定单元303,用于根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;发送单元304,用于向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态。
可选的,所述目标处理器确定单元303,包括:第一检测子单元,用于检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息,所述主存储器的目录区域用于保存所述目录信息;第一确定子单元,用于在所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
可选的,所述目标处理器确定单元303,包括:第二检测子单元,用于检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;第三检测子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;第二确定子单元,用于在所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。其中,所述第二确定子单元,还可以用于在互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。所述目标处理器确定单元303,还可以包括:更新子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,更新所述目录缓存中的目录信息。
可选的,所述发送单元304,用于当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,用于当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。其中,所述目录信息可以包括访问状态字段、信息状态字段及缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。
在本实施例中,根据目录信息维护Cache数据一致性的装置包括:接收单元,用于接收数据块状态变更请求;指定数据块确定单元,用于根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;目标处理器确定单元,用于根据保存在所述主存储器中的目录信息确定目标处理器,发送单元,用于向所述目标处理器发送状态变更指示。采用本实施例,目录信息存储在主存储器中,从而可以避免使用互联芯片的目录存储空间来存储目录信息,降低NUMA***设计和实现的难度。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种根据目录信息维护高速缓冲存储器Cache数据一致性的方法,其特征在于,目录信息保存在主存储器中,所述目录信息用于记录主存储器***区域中数据块被各个处理器高速缓冲存储器所缓存的状况,所述方法包括:
接收数据块状态变更请求;
根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;
根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;
向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态;
其中,所述根据保存在所述主存储器中的目录信息确定目标处理器包括:
检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;
当互连芯片的目录缓存中不存在所述指定目录信息时,检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;
当所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当互连芯片的目录缓存中不存在所述指定目录信息时,更新所述目录缓存中的目录信息。
4.如权利要求1至3任一项所述的方法,其特征在于,
所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。
5.如权利要求1至3任一项所述的方法,其特征在于,所述向目标处理器发送状态变更指示包括:
当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,
当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。
6.如权利要求1至3任意一项所述的方法,其特征在于,
所述目录信息包括访问状态字段、信息状态字段及缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。
7.一种根据目录信息维护高速缓冲存储器Cache数据一致性的装置,其特征在于,目录信息保存在主存储器中,所述目录信息用于记录主存储器***区域中数据块被各个处理器高速缓冲存储器所缓存的状况,所述装置包括:
接收单元,用于接收数据块状态变更请求;
指定数据块确定单元,用于根据所述数据块状态变更请求确定主存储器***区域中的指定数据块;
目标处理器确定单元,用于根据保存在所述主存储器中的目录信息确定目标处理器,其中,所述目标处理器是指已将指定数据块存储至处理器Cache中的处理器;
发送单元,用于向所述目标处理器发送状态变更指示,所述数据块状态变更请求用于请求所述目标处理器变更目标处理器Cache中已缓存所述指定数据块的状态;
其中,所述目标处理器确定单元,包括:
第二检测子单元,用于检测互连芯片的目录缓存中是否存在与所述指定数据块对应的指定目录信息;
第三检测子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,检测所述主存储器的目录区域中是否存在与所述指定数据块对应的指定目录信息;
第二确定子单元,用于在所述主存储器的目录区域中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
8.如权利要求7所述的装置,其特征在于,
所述第二确定子单元,还用于在互连芯片的目录缓存中存在所述指定目录信息时,根据所述指定目录信息确定所述目标处理器。
9.如权利要求7所述的装置,其特征在于,所述目标处理器确定单元,还包括:
更新子单元,用于在互连芯片的目录缓存中不存在所述指定目录信息时,更新所述目录缓存中的目录信息。
10.如权利要求7至9任一项所述的装置,其特征在于,
所述目录缓存中保存的目录信息由所述主存储器目录区域中的目录信息以多路组相联方式映射生成。
11.如权利要求7至9任一项所述的装置,其特征在于,
所述发送单元,用于当所述数据块状态变更请求为数据块改写请求时,向所述目标处理器发送失效指示,所述失效指示用于指示所述目标处理器失效目标处理器Cache中已缓存的所述指定数据块;或者,用于当所述数据块状态变更请求为数据块共享请求时,向所述目标处理器发送共享指示,所述共享指示用于指示所述目标处理器将目标处理器Cache中已缓存的所述指定数据块修改为共享模式。
12.如权利要求7至9任一项所述的装置,其特征在于,
所述目录信息包括访问状态字段、信息状态字段及缓存指示字段,其中所述访问状态字段用于指示所述目录信息是否正在被访问,所述信息状态字段用于指示所述目录信息的状态,所述缓存指示字段用于指示所述目录信息所对应数据块被处理器Cache所缓存的状况。
CN201510447072.5A 2015-07-27 2015-07-27 根据目录信息维护Cache数据一致性的方法及装置 Active CN106406745B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510447072.5A CN106406745B (zh) 2015-07-27 2015-07-27 根据目录信息维护Cache数据一致性的方法及装置
PCT/CN2016/090778 WO2017016427A1 (zh) 2015-07-27 2016-07-20 根据目录信息维护Cache数据一致性的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510447072.5A CN106406745B (zh) 2015-07-27 2015-07-27 根据目录信息维护Cache数据一致性的方法及装置

Publications (2)

Publication Number Publication Date
CN106406745A CN106406745A (zh) 2017-02-15
CN106406745B true CN106406745B (zh) 2020-06-09

Family

ID=57884107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510447072.5A Active CN106406745B (zh) 2015-07-27 2015-07-27 根据目录信息维护Cache数据一致性的方法及装置

Country Status (2)

Country Link
CN (1) CN106406745B (zh)
WO (1) WO2017016427A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664417B (zh) * 2017-03-31 2022-10-25 华为技术有限公司 一种目录更新方法及装置
CN113703958B (zh) * 2021-07-15 2024-03-29 山东云海国创云计算装备产业创新中心有限公司 多架构处理器间的数据访问方法、装置、设备及存储介质
CN114238165B (zh) * 2021-12-21 2023-03-24 海光信息技术股份有限公司 数据处理方法、数据处理装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706755A (zh) * 2009-11-24 2010-05-12 中国科学技术大学苏州研究院 片上多核处理器的高速缓存协作***及其协作处理方法
CN102063406A (zh) * 2010-12-21 2011-05-18 清华大学 用于多核处理器的网络共享Cache及其目录控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8606997B2 (en) * 2008-12-23 2013-12-10 Oracle America, Inc. Cache hierarchy with bounds on levels accessed
US9135175B2 (en) * 2012-12-21 2015-09-15 Oracle International Corporation Distributed cache coherency directory with failure redundancy

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706755A (zh) * 2009-11-24 2010-05-12 中国科学技术大学苏州研究院 片上多核处理器的高速缓存协作***及其协作处理方法
CN102063406A (zh) * 2010-12-21 2011-05-18 清华大学 用于多核处理器的网络共享Cache及其目录控制方法

Also Published As

Publication number Publication date
CN106406745A (zh) 2017-02-15
WO2017016427A1 (zh) 2017-02-02

Similar Documents

Publication Publication Date Title
KR101814577B1 (ko) 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
US7814279B2 (en) Low-cost cache coherency for accelerators
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US10078587B2 (en) Mirroring a cache having a modified cache state
TW201432457A (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
US7574566B2 (en) System and method for efficient software cache coherence
CN104899160A (zh) 一种缓存数据控制方法、节点控制器和***
US20200334168A1 (en) Virtual memory pool within a network which is accessible from multiple platforms
TWI380173B (en) Data processing system, cache memory and method for providing cache coherency
US8352646B2 (en) Direct access to cache memory
JP2000250884A (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
CN106406745B (zh) 根据目录信息维护Cache数据一致性的方法及装置
KR20050074310A (ko) 캐시 라인 소유권 이전 방법 및 장치
CN107368435B (zh) 一种精简目录及利用该精简目录实现Cache一致性监听的方法
US7725660B2 (en) Directory for multi-node coherent bus
US7669013B2 (en) Directory for multi-node coherent bus
KR20070084441A (ko) 로컬 메모리 데이터의 가간섭성 캐싱
US10503643B1 (en) Cache coherence with functional address apertures
CN110928890A (zh) 数据存储方法、装置、电子设备及计算机可读介质
US8848576B2 (en) Dynamic node configuration in directory-based symmetric multiprocessing systems
KR101303079B1 (ko) 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
KR102403063B1 (ko) 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
CN111788562A (zh) 原子操作的执行方法及装置
US11379370B1 (en) System and methods for reducing global coherence unit snoop filter lookup via local memories

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200420

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Applicant before: Hangzhou Huawei Digital Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211222

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right