CN102388373B - 访问高速缓冲存储器的方法及非真实缓存代理 - Google Patents
访问高速缓冲存储器的方法及非真实缓存代理 Download PDFInfo
- Publication number
- CN102388373B CN102388373B CN2011800018813A CN201180001881A CN102388373B CN 102388373 B CN102388373 B CN 102388373B CN 2011800018813 A CN2011800018813 A CN 2011800018813A CN 201180001881 A CN201180001881 A CN 201180001881A CN 102388373 B CN102388373 B CN 102388373B
- Authority
- CN
- China
- Prior art keywords
- data
- true
- fca
- caching agent
- storer
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 9
- 235000012308 Tagetes Nutrition 0.000 abstract 2
- 241000736851 Tagetes Species 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 3
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/1012—Design facilitation
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种访问高速缓冲存储器的方法及非真实缓存代理,涉及计算机技术领域,能够在提高本地数据命中率和Cache访问效率的基础上,降低节点控制器的开发成本。本发明的方法应用于多处理器系统中,该系统包含至少一个节点控制器NC,NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,FCA连接有至少一个FCA存储器,FCA存储器存有该多处理系统中内存间共享的数据,本发明的方法包括:当NC接收到数据请求时,FCA从与其连接的FCA存储器中获取数据请求中所需的目标数据;将目标数据发送给数据请求的发出方。本发明实施例主要用于多处理器系统中访问高速缓存数据的过程中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种访问高速缓冲存储器的方法及非真实缓存代理。
背景技术
在计算机中,一般都会在处理器与内存之间设计一个或多个容量较小而访问速度快的高速缓存存储器(Cache),用于暂时保存内存中的部分数据,以便处理器快速访问Cache中的数据。
近来,随着计算机技术的发展,多处理器系统得到广泛的应用。在一致性高速缓存非均匀存储访问体系结构(Cache-Coherent Non UniformMemory-access Architectures,CC-NUMA)等多处理器系统中,多个处理器通过节点控制器(Node Controller,NC)联接在一起,实现了内存的共享。具体的,当某个处理器X需要特定的数据时,首先访问本地Cache,若本地Cache不命中,即本地Cache中没有该处理器需要的特定数据,则通过本地NC向远程地址发送传输特定数据的请求。由于多处理器实现了内存的共享,远程Cache中可能保存有处理器X需要的数据,若对某个远程Cache的读访问命中,及远程Cache中保存有处理器X需要的特定数据,则将该数据发送给最初发出数据请求的处理器X。因此,若处理器所需数据在网络拓扑中传输路径较远的远程Cache中,则访问远程cache的时延较长,降低了访问Cache的效率。
为了提高本地数据命中率和访问Cache的效率,现有技术中在节点控制器上添加一个远程专用缓存,用于暂时存储远程地址的数据。具体的,处理器在访问本地Cache不命中的情况下,访问该远程专用缓存,若远程专用缓存依然不命中,才访问远程地址对应的远程Cache。通过将远程内存的数据存储在本地的远程专用缓存中,缩短了处理器访问远程内存数据的时间,提高了本地数据命中率和访问Cache的效率。
在实现上述高速缓冲存储器的访问过程中,发明人发现现有技术中至少存在如下问题:由于远程专用缓存为本地物理层添加的底层硬件,协议层的节点控制器无法识别该远程专用缓存,因此需要对远程专用缓存的接口模块进行单独设计,导致开发成本较高的问题。
发明内容
本发明的实施例提供一种访问高速缓冲存储器的方法及非真实缓存代理,能够在提高本地数据命中率和Cache访问效率的基础上,降低节点控制器的开发成本。
本发明的实施例采用如下技术方案:
一种访问高速缓冲存储器的方法,应用于多处理器系统中,该系统包含至少一个节点控制器NC,所述节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真实缓存代理FCA连接有至少一个非真实缓存代理FCA存储器,该方法包括:
若节点控制器NC接收到数据请求,非真实缓存代理FCA从与其连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据,所述非真实缓存代理FCA存储器中存储有部分内存数据;
将所述目标数据发送给所述数据请求的发出方;
其中,在所述节点控制器NC接收到数据请求之前,该方法还包括:
所述非真实缓存代理FCA根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态;
将所述目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
一种非真实缓存代理FCA,应用于多处理器系统中,该系统包含至少一个节点控制器NC以及与节点控制器NC连接的至少一个处理器,所述节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真实缓存代理FCA与至少一个非真实缓存代理FCA存储器连接,所述FCA存储器存有该多处理系统中内存间共享的数据,所述非真实缓存代理FCA包括:
数据获取模块,用于在节点控制器NC接收到数据请求时,从与所述非真实缓存代理FCA连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据;
发送模块,用于将所述数据获取模块获取的所述目标数据发送给所述数据请求的发出方;
查询模块,用于在所述节点控制器NC接收到数据请求之前,根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态
状态反馈模块,用于将所述查询模块查询的目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
一种节点控制器NC,包括:至少一个非真实缓存代理FCA;以及与所述非真实缓存代理FCA相连的非真实缓存代理FCA存储器。
本发明实施例提供的访问高速缓冲存储器的方法及非真实缓存代理,通过在NC上添加至少一个符合处理器微结构级互连协议的非真实缓存代理(FakeCache Agent,FCA),以及与FCA相连的FCA存储器,并和Cache一样将处理器所需的部分数据暂时保存在FCA存储器中,提高了处理器在本地域的命中率和Cache访问效率;由于FCA符合处理器微结构级互连协议,与普通的Cache具有相同的外在表现,能重复使用协议接口模块,无需独立设计接口,降低了开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的Cache访问方法流程图;
图2为本发明实施例2中的一种Cache访问方法流程图;
图3为本发明实施例2中的另一种Cache访问方法流程图;
图4为本发明实施例2中的另一种Cache访问方法流程图;
图5为本发明实施例3中的多处理器系统组成示意图;
图6为本发明实施例4中的一种FCA组成示意图;
图7为本发明实施例4中的另一种FCA组成示意图;
图8为本发明实施例4中的一种节点控制器组成示意图;
图9为本发明实施例4中的一种多处理器系统组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供了一种访问高速缓冲存储器的方法,该方法应用于多处理器系统中,包含至少一个节点控制器NC,节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,非真实缓存代理FCA连接有至少一个非真实缓存代理FCA存储器,如图1所示,包括:
101、若节点控制器NC接收到数据请求,非真实缓存代理FCA从与其连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据。
其中,所述NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述FCA连接有至少一个FCA存储器。FCA存储器和现有的Cache一样,具有访问速度较快的特点,暂时保存有多处理系统中内存间共享的数据,以便处理器快速访问。
102、将所述目标数据发送给所述数据请求的发出方。
本发明实施例提供的访问高速缓冲存储器的方法,通过在NC上添加至少一个符合处理器微结构级互连协议的FCA,以及与FCA相连的FCA存储器,并和Cache一样将处理器所需的部分数据暂时保存在FCA存储器中,提高了处理器在本地域的命中率和Cache访问效率;由于FCA符合处理器微结构级互连协议,与普通的Cache具有相同的外在表现,能重复使用协议接口模块,无需独立设计接口,降低了开发成本。
实施例2
本发明实施例提供了一种访问高速缓冲存储器的方法,该方法应用于多处理器系统中,包含至少一个节点控制器NC,节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,非真实缓存代理FCA连接有至少一个非真实缓存代理FCA存储器,所述FCA存储器存有该多处理系统中内存间共享的数据,如图2所示,包括:
201、所述非真实缓存代理FCA根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态。
在本实施例中,处理器需要特定的内存数据时,先会在与本处理器相连的内存和cache中查找,若本处理器的内存和cache均未命中,则向多处理器系统组播或广播数据查询请求。
202、将所述目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
其中,由于多处理器系统的内存共享,目标数据可能被多个处理器使用过,并保存在不同的cache或FCA存储器中,并且可能在某次使用后对目标数据进行了修改,因此,需要在系统中查找最新版本的目标数据。具体的,在各个FCA和cache接收到数据查询请求时,将各自存储器中是否保存有目标数据,以及目标数据的修改情况以更新状态消息的形式反馈给所述数据查询请求的发出方。然后,所述数据查询请求的发出方根据各个FCA和cache反馈回来的目标数据的更新状态消息,判断最新版本的目标数据所在的存储位置。处理器在确定了最新版本的目标数据所在的存储位置之后,向所述存储位置发出指向明确的数据请求,以获取最新版本的目标数据。
203、若节点控制器NC接收到数据请求,非真实缓存代理FCA从与其连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据。
其中,若在步骤202中通过对目标数据的更新状态确定在FCA存储器中保存有最新版本的目标数据,则处理器向所述FCA发出对目标数据的数据请求。当NC接收到数据请求时,FCA从与其连接的FCA存储器中获取所述数据请求中所需的目标数据。
在本实施例中,FCA为内嵌于NC上的符合处理器微结构级互连协议的非真实缓存代理,所述FCA连接有至少一个FCA存储器。FCA存储器和cache一样具有访问速度较快的特点,用于暂时保存内存中的部分数据,却不专属于任何一个处理器,而是在节点控制器上进行自身的数据查询、发送和更新,因此叫做非真实的cache。
204、将所述目标数据发送给所述数据请求的发出方。
其中,FCA在获取到目标数据后,将目标数据发送给所述数据请求的发出方。所述数据请求可以由与该NC直接相连的处理器发出,也可以是其他的NC通过网络转发的远端数据请求,还可以是其他FCA发出的预取数据的数据请求。
进一步的,如图3所示,为了实现FCA存储器中的本地数据更新,提高远端处理器在FCA上的命中率,将通过本地NC更新出去的数据保存到FCA存储器中,该方法还包括:
205、如果所述节点控制器NC从与所述节点控制器NC相连的除所述非真实缓存代理FCA存储器之外的存储器中获取所述目标数据并发送至其他节点控制器NC,所述非真实缓存代理FCA获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
其中,由于FCA存储器位于节点控制器上,而不是与节点控制器相连的处理器上,在远端处理器访问本地cache和FCA存储器时,FCA存储器的访问路径相对比Cache的访问路径短,访问速度快。因此,将本地处理器使用并更新的数据保存在FCA存储器中,可以提高访问效率。
进一步的,为了实现FCA存储器中的远端数据更新,提高本地处理器在FCA上的命中率,将本地NC接收到的数据保存到FCA存储器中,该方法还包括:
206、如果所述节点控制器NC接收其他节点控制器NC发送过来的目标数据时,所述非真实缓存代理FCA获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
其中,由于FCA存储器位于节点控制器上,而不是与节点控制器相连的处理器上,在本地处理器访问本地cache和FCA存储器时,FCA存储器的访问路径相对比Cache的访问路径短,访问速度快。因此,在与本地NC相连的处理器获取并使用的数据保存在FCA存储器中,以便与本地NC相连的其他处理器再次使用该数据时,在访问路径较短的FCA中命中。
进一步的,为了防止FCA存储器中的数据溢出,在FCA上设置预定的数据替换策略,将FCA存储器中部分已有的数据替换为所述目标数据,该方法还包括:
207、若所述非真实缓存代理FCA存储器的存储空间已满,则根据数据替换策略,将所述非真实缓存代理FCA存储器中的部分数据替换为所述目标数据。
其中,数据替换策略的目的为根据空间和时间的局部性,将最可能被使用的数据保存在FCA中,该替换策略可以为最近最少使用(Least Recently Used,LRU)算法,或其他替换算法,本发明实施例不做限定。
进一步的,如图4所示,为了进一步的提高处理器在本地FCA中的数据命中率,将本地处理器较可能使用的数据预先读取到FCA存储器中,所述NC还内嵌有一个流量监控单元,该方法包括:
208、所述非真实缓存代理FCA接收所述流量监控单元发送过来的网络带宽使用率。
209、根据所述网络带宽使用率判断网络是否空闲。
210、若网络空闲,则根据数据预取策略发出数据请求,以便预先更新所述非真实缓存代理FCA存储器中存储的部分内存数据。
其中,数据的预取策略可以为根据特定的应用统计规律,向至少一个内存或缓存发出对特定数据的数据请求,目的是提高FCA存储器中的数据命中率。具体的预取策略可以根据多处理器系统的数据使用情况确定,本发明实施例不做限定。
本发明实施例提供的访问高速缓冲存储器的方法,通过在NC上添加至少一个符合处理器微结构级互连协议的FCA,以及与FCA相连的FCA存储器,并和Cache一样将处理器所需的部分数据暂时保存在FCA存储器中,提高了处理器在本地域的命中率和Cache访问效率;由于FCA符合处理器微结构级互连协议,与普通的Cache具有相同的外在表现,能重复使用协议接口模块,无需独立设计接口,降低了开发成本。
实施例3
为了便于所属领域的技术人员理解本发明的技术方法,本实施例提供一种基于快速通道互连(QuickPath Interconnect,QPI)协议的多处理器系统中的应用实例。
如图5所示,在该多处理器系统中,包含至少一个节点控制器NC以及与NC连接的至少一个处理器(处理器A和处理器B)。所述NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述FCA与至少一个FCA存储器连接。
当处理器A需要特定的数据时,首先在处理器A上的cache中查找,若在cache中不命中,则向多处理器系统中的其他cache和FCA发出数据查询请求。然后由各个cache和FCA反馈目标数据的更新状态给处理器A,处理器A根据反馈回来的目标数据的更新状态判断最新版本的目标数据所在的存储位置。
若FCA存储器中保存有最新版本的目标数据,处理器会向FCA发出对目标数据的数据请求。FCA根据数据请求从FCA存储器中获取目标数据,并将目标数据发送给处理器A。
进一步的,为了实现FCA存储器的数据更新,提高FCA存储器中的数据命中率,FCA可以将处理器A和处理器B使用并更新的数据保存在FCA存储器中,也可以将其他NC发送过来的数据保存在FCA存储器中,以便处理器再次使用这些数据时可以在FCA中获取。
进一步的,为了防止FCA存储器中的数据溢出,可以采用预定的数据替换策略,将FCA存储器中已有的数据替换为最新版本的目标数据。
进一步的,为了进一步提高本地处理器在FCA存储器中的数据命中率,在NC上添加了一个流量监控单元,用于将网络带宽使用率发送给FCA。当FCA接收到网络带宽使用率,并判断网络处于空闲状态时,FCA可以根据预定的预取策略主动发出预取数据的数据请求,从本地或远端的存储单元中获取数据,以提高处理器的访问命中率。
本发明实施例提供的访问高速缓冲存储器的方法,通过在NC上添加至少一个符合处理器微结构级互连协议的FCA,以及与FCA相连的FCA存储器,并和Cache一样将处理器所需的部分数据暂时保存在FCA存储器中,提高了处理器在本地域的命中率和Cache访问效率;由于FCA符合处理器微结构级互连协议,与普通的Cache具有相同的外在表现,能重复使用协议接口模块,无需独立设计接口,降低了开发成本。
实施例4
本发明实施例提供了一种非真实缓存代理FCA,应用于多处理器系统中,该系统包含至少一个节点控制器NC以及与节点控制器NC连接的至少一个处理器,其特征在于,所述节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真实缓存代理FCA与至少一个非真实缓存代理FCA存储器连接,所述FCA存储器存有该多处理系统中内存间共享的数据。
如图6所示,所述非真实缓存代理FCA包括:
数据获取模块301,用于在节点控制器NC接收到数据请求时,从与所述非真实缓存代理FCA连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据。
发送模块302,用于将所述数据获取模块301获取的所述目标数据发送给所述数据请求的发出方。
所述非真实缓存代理FCA存储器为内嵌于节点控制器NC上的存储单元或外接于节点控制器NC上的存储单元。
进一步的,所述非真实缓存代理FCA还包括:
查询模块303,用于在所述节点控制器NC接收到数据请求之前,根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态。
状态反馈模块304,用于将所述查询模块303查询的目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
进一步的,如图7所示,为了实现FCA存储器中的本地数据更新,提高FCA存储器中的数据命中率,所述非真实缓存代理FCA还包括:
第一更新模块305,用于在所述节点控制器NC从与所述节点控制器NC相连的除所述非真实缓存代理FCA存储器之外的存储器中获取所述目标数据并发送至其他节点控制器NC时,获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
进一步的,所述非真实缓存代理FCA还包括:
第二更新模块306,用于在所述节点控制器NC接收其他节点控制器NC发送过来的目标数据时,获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
进一步的,为了防止FCA存储器中数据溢出,所述非真实缓存代理FCA还包括:
替换模块307,用于在所述非真实缓存代理FCA存储器的存储空间已满时,根据预定的数据替换策略,将所述非真实缓存代理FCA存储器中的部分数据替换为所述目标数据。
进一步的,如图8所示,所述节点控制器NC还内嵌有一个流量监控单元308,所述非真实缓存代理FCA还包括:
接收模块309,用于接收所述流量监控单元308发送过来的网络带宽使用率。
判断模块310,用于根据所述接收模块309接收的所述网络带宽使用率判断网络是否空闲。
预取模块311,用于在所述判断模块310判断网络空闲时,根据数据预取策略发出数据请求,以便预先更新所述非真实缓存代理FCA存储器中存储的部分内存数据。
需要说明的是,该非真实缓存代理FCA的部分功能模块的描述,可以参考实施例1-3中的对应内容,本发明实施例这里不再赘述。
本发明实施例还提供一种节点控制器NC,应用于多处理器系统中,如图9所示,包括:至少一个非真实缓存代理FCA 41,以及与非真实缓存代理FCA相连的非真实缓存代理FCA存储器42。
需要说明的是,该节点控制器NC中的部分功能模块的描述,可以参考实施例1-3以及实施例4中非真实缓存代理FCA部分的对应内容,本发明实施例这里不再一一赘述。
本发明实施例提供的非真实缓存代理FCA及节点控制器NC,通过在NC上添加至少一个符合处理器微结构级互连协议的FCA,以及与FCA相连的FCA存储器,并和Cache一样将处理器所需的部分数据暂时保存在FCA存储器中,提高了处理器在本地域的命中率和Cache访问效率;由于FCA符合处理器微结构级互连协议,与普通的Cache具有相同的外在表现,能重复使用协议接口模块,无需独立设计接口,降低了开发成本。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种访问高速缓冲存储器的方法,应用于多处理器系统中,该系统包含至少一个节点控制器NC,其特征在于,所述节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真实缓存代理FCA连接有至少一个非真实缓存代理FCA存储器,所述FCA存储器存有该多处理系统中内存间共享的数据,该方法包括:
若节点控制器NC接收到数据请求,非真实缓存代理FCA从与其连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据;
将所述目标数据发送给所述数据请求的发出方;
其中,在所述节点控制器NC接收到数据请求之前,该方法还包括:
所述非真实缓存代理FCA根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态;
将所述目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
2.根据权利要求1所述的访问高速缓冲存储器的方法,其特征在于,还包括:
如果所述节点控制器NC从与所述节点控制器NC相连的除所述非真实缓存代理FCA存储器之外的存储器中获取所述目标数据并发送至其他节点控制器NC,所述非真实缓存代理FCA获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
3.根据权利要求1所述的访问高速缓冲存储器的方法,其特征在于,还包括:
如果所述节点控制器NC接收其他节点控制器NC发送过来的目标数据,所述非真实缓存代理FCA获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
4.根据权利要求2或3所述的访问高速缓冲存储器的方法,其特征在于,还包括:
若所述非真实缓存代理FCA存储器的存储空间已满,则根据数据替换策略,将所述非真实缓存代理FCA存储器中的部分数据替换为所述目标数据。
5.根据权利要求4所述的访问高速缓冲存储器的方法,其特征在于,所述节点控制器NC还内嵌有一个流量监控单元,在所述节点控制器NC接收到数据请求之前,该方法包括:
所述非真实缓存代理FCA接收所述流量监控单元发送的网络带宽使用率;
根据所述网络带宽使用率判断网络是否空闲;
若网络空闲,则根据数据预取策略发出数据请求,以便预先更新所述非真实缓存代理FCA存储器中存储的部分内存数据。
6.一种非真实缓存代理FCA,应用于多处理器系统中,该系统包含至少一个节点控制器NC以及与节点控制器NC连接的至少一个处理器,其特征在于,所述节点控制器NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真实缓存代理FCA与至少一个非真实缓存代理FCA存储器连接,所述FCA存储器存有该多处理系统中内存间共享的数据,所述非真实缓存代理FCA包括:
数据获取模块,用于在节点控制器NC接收到数据请求时,从与所述非真实缓存代理FCA连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的目标数据;
发送模块,用于将所述数据获取模块获取的所述目标数据发送给所述数据请求的发出方;
查询模块,用于在所述节点控制器NC接收到数据请求之前,根据数据查询请求在与其连接的非真实缓存代理FCA存储器中查询所述目标数据的更新状态;
状态反馈模块,用于将所述查询模块查询的目标数据的更新状态发送至所述数据查询请求的发出方,以便所述数据查询请求的发出方根据所述目标数据的更新状态确定最新目标数据的存储位置并向所述最新目标数据的存储位置发出数据请求。
7.根据权利要求6所述的非真实缓存代理FCA,其特征在于,所述非真实缓存代理FCA存储器为内嵌于节点控制器NC上的存储单元或外接于节点控制器NC上的存储单元。
8.根据权利要求7所述的非真实缓存代理FCA,其特征在于,还包括:
第一更新模块,用于在所述节点控制器NC从与所述节点控制器NC相连的除所述非真实缓存代理FCA存储器之外的存储器中获取所述目标数据并发送至其他节点控制器NC时,获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
9.根据权利要求7所述的非真实缓存代理FCA,其特征在于,还包括:
第二更新模块,用于在所述节点控制器NC接收其他节点控制器NC发送过来的目标数据时,获取所述目标数据,并将所述目标数据保存至与其连接的非真实缓存代理FCA存储器中。
10.根据权利要求8或9所述的非真实缓存代理FCA,其特征在于,还包括:
替换模块,用于在所述非真实缓存代理FCA存储器的存储空间已满时,根据预定的数据替换策略,将所述非真实缓存代理FCA存储器中的部分数据替换为所述目标数据。
11.根据权利要求10所述的非真实缓存代理FCA,其特征在于,所述节点控制器NC还内嵌有一个流量监控单元,所述非真实缓存代理FCA还包括:
接收模块,用于接收所述流量监控单元发送的网络带宽使用率;
判断模块,用于根据所述接收模块接收的所述网络带宽使用率判断网络是否空闲;
预取模块,用于在所述判断模块判断网络空闲时,根据数据预取策略发出数据请求,以便预先更新所述非真实缓存代理FCA存储器中存储的部分内存数据。
12.一种节点控制器NC,其特征在于,包括:
至少一个如权利要求6-11中任一项所述的非真实缓存代理FCA;以及
与所述非真实缓存代理FCA相连的非真实缓存代理FCA存储器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/080489 WO2012109906A1 (zh) | 2011-09-30 | 2011-09-30 | 访问高速缓冲存储器的方法及非真实缓存代理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102388373A CN102388373A (zh) | 2012-03-21 |
CN102388373B true CN102388373B (zh) | 2013-03-20 |
Family
ID=45826494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800018813A Active CN102388373B (zh) | 2011-09-30 | 2011-09-30 | 访问高速缓冲存储器的方法及非真实缓存代理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9465743B2 (zh) |
EP (1) | EP2568386A4 (zh) |
CN (1) | CN102388373B (zh) |
WO (1) | WO2012109906A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902630B (zh) * | 2012-08-23 | 2016-12-21 | 深圳市同洲电子股份有限公司 | 一种访问本地文件的方法和装置 |
CN103092807B (zh) * | 2012-12-24 | 2015-09-09 | 杭州华为数字技术有限公司 | 节点控制器、并行计算服务器系统以及路由方法 |
CN105335217B (zh) * | 2014-06-26 | 2018-11-16 | 华为技术有限公司 | 一种服务器静默方法与系统 |
CN104809179B (zh) * | 2015-04-16 | 2018-10-02 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN109639796A (zh) * | 2018-12-11 | 2019-04-16 | 浪潮电子信息产业股份有限公司 | 一种负载均衡实现方法、装置、设备及可读存储介质 |
CN110661862A (zh) * | 2019-09-20 | 2020-01-07 | 网宿科技股份有限公司 | 一种预热资源文件的方法和中心管理系统 |
CN112540941B (zh) * | 2019-09-21 | 2024-09-20 | 华为技术有限公司 | 一种数据转发芯片及服务器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075907A (zh) * | 2011-01-26 | 2011-05-25 | 北京交通大学 | 一种虚拟接口支持异构切换的方法 |
CN102137167A (zh) * | 2011-04-29 | 2011-07-27 | 中国人民解放军国防科学技术大学 | 不间断运行的虚拟机迁移方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829052A (en) * | 1994-12-28 | 1998-10-27 | Intel Corporation | Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system |
US6253292B1 (en) * | 1997-08-22 | 2001-06-26 | Seong Tae Jhang | Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme |
US6108764A (en) * | 1998-12-17 | 2000-08-22 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention |
US6662276B2 (en) * | 2000-12-29 | 2003-12-09 | Intel Corporation | Storing directory information for non uniform memory architecture systems using processor cache |
US6901485B2 (en) * | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
US20080140942A1 (en) * | 2006-12-12 | 2008-06-12 | Kornegay Marcus L | Implementing a hot coherency state to a cache coherency protocol in a symmetric multi-processor environment |
KR101375299B1 (ko) * | 2007-01-22 | 2014-03-17 | 삼성전자주식회사 | 음성/데이터 통합 시스템 및 그 시스템의 대역폭 관리방법 |
US7809818B2 (en) * | 2007-03-12 | 2010-10-05 | Citrix Systems, Inc. | Systems and method of using HTTP head command for prefetching |
US9361229B2 (en) | 2008-08-25 | 2016-06-07 | International Business Machines Corporation | Distributed shared caching for clustered file systems |
US8140817B2 (en) * | 2009-02-24 | 2012-03-20 | International Business Machines Corporation | Dynamic logical partition management for NUMA machines and clusters |
CN101510191B (zh) * | 2009-03-26 | 2010-10-06 | 浙江大学 | 具备缓存窗口的多核体系架构的实现方法 |
US8509185B2 (en) * | 2010-02-26 | 2013-08-13 | Telefonaktiebolaget Lm Ericsson | Enabling IPV6 mobility with NAT64 |
CN102063406B (zh) * | 2010-12-21 | 2012-07-25 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
CN102103568B (zh) * | 2011-01-30 | 2012-10-10 | 中国科学院计算技术研究所 | 片上多核处理器系统的高速缓存一致性协议的实现方法 |
-
2011
- 2011-09-30 CN CN2011800018813A patent/CN102388373B/zh active Active
- 2011-09-30 WO PCT/CN2011/080489 patent/WO2012109906A1/zh active Application Filing
- 2011-09-30 EP EP11858865.6A patent/EP2568386A4/en not_active Withdrawn
-
2012
- 2012-12-19 US US13/719,626 patent/US9465743B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075907A (zh) * | 2011-01-26 | 2011-05-25 | 北京交通大学 | 一种虚拟接口支持异构切换的方法 |
CN102137167A (zh) * | 2011-04-29 | 2011-07-27 | 中国人民解放军国防科学技术大学 | 不间断运行的虚拟机迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2568386A4 (en) | 2013-07-24 |
WO2012109906A1 (zh) | 2012-08-23 |
US9465743B2 (en) | 2016-10-11 |
EP2568386A1 (en) | 2013-03-13 |
US20130111142A1 (en) | 2013-05-02 |
CN102388373A (zh) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102388373B (zh) | 访问高速缓冲存储器的方法及非真实缓存代理 | |
CN113906384B (zh) | 人工神经网络(ann)应用程序中的存储器即服务 | |
US6883070B2 (en) | Bandwidth-adaptive, hybrid, cache-coherence protocol | |
US8463788B2 (en) | Balancing caching load in a peer-to-peer based network file system | |
CN103294612A (zh) | 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
US7386680B2 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
US20150067269A1 (en) | Method for building multi-processor system with nodes having multiple cache coherency domains | |
CN101162442A (zh) | 支持共享全局一致性状态的处理器、数据处理系统和方法 | |
CN103294611B (zh) | 一种基于有限数据一致性状态的服务器节点数据缓存方法 | |
US20100235581A1 (en) | Cooperative Caching Technique | |
CN114153754B (zh) | 用于计算集群的数据传输方法、装置及存储介质 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
US6973547B2 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
CN101997901B (zh) | P2p文件传输管理方法与系统 | |
EP3835959B1 (en) | Data pre-fetching method and device | |
US20210240625A1 (en) | Management of coherency directory cache entry ejection | |
CN106940696B (zh) | 一种用于sdn多层控制器的信息查询方法及系统 | |
CN102404372A (zh) | Web缓存中内容分布式存储的方法、系统及节点设备 | |
US8510513B2 (en) | Network load reducing method and node structure for multiprocessor system with distributed memory | |
JP4573732B2 (ja) | サーバント装置 | |
CN115225490A (zh) | 一种网关配置方法、装置及电子设备 | |
US11947418B2 (en) | Remote access array | |
JP2008152571A (ja) | キャッシュメモリ装置およびマルチプロセッサシステム | |
JP2005038339A (ja) | グリッドコンピューティングシステム、及びグリッドコンピューティングシステムにおける計算資源収集方法 | |
US20240202129A1 (en) | Swtiching controller, storage device and computing system for improving difference of access latency between 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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211224 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 |