首页> 中国专利> 访问高速缓冲存储器的方法及非真实缓存代理

访问高速缓冲存储器的方法及非真实缓存代理

摘要

本发明实施例公开了一种访问高速缓冲存储器的方法及非真实缓存代理,涉及计算机技术领域,能够在提高本地数据命中率和Cache访问效率的基础上,降低节点控制器的开发成本。本发明的方法应用于多处理器系统中,该系统包含至少一个节点控制器NC,NC内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,FCA连接有至少一个FCA存储器,FCA存储器存有该多处理系统中内存间共享的数据,本发明的方法包括:当NC接收到数据请求时,FCA从与其连接的FCA存储器中获取数据请求中所需的目标数据;将目标数据发送给数据请求的发出方。本发明实施例主要用于多处理器系统中访问高速缓存数据的过程中。

著录项

  • 公开/公告号CN102388373A

    专利类型发明专利

  • 公开/公告日2012-03-21

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201180001881.3

  • 发明设计人 郑伟;刘建根;刘钢;蔡卫光;

    申请日2011-09-30

  • 分类号G06F12/08(20060101);

  • 代理机构11274 北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 518129 中国广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 04:47:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-20

    授权

    授权

  • 2012-05-02

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20110930

    实质审查的生效

  • 2012-03-21

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种访问高速缓冲存储器的方法及 非真实缓存代理。

背景技术

在计算机中,一般都会在处理器与内存之间设计一个或多个容量较小而访 问速度快的高速缓存存储器(Cache),用于暂时保存内存中的部分数据,以便 处理器快速访问Cache中的数据。

近来,随着计算机技术的发展,多处理器系统得到广泛的应用。在一致性 高速缓存非均匀存储访问体系结构(Cache-Coherent Non Uniform  Memory-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存储器中存储有部分内存数据;

将所述目标数据发送给所述数据请求的发出方。

一种非真实缓存代理FCA,应用于多处理器系统中,该系统包含至少一个节 点控制器NC以及与节点控制器NC连接的至少一个处理器,所述节点控制器NC 内嵌有至少一个符合处理器微结构级互连协议的非真实缓存代理FCA,所述非真 实缓存代理FCA与至少一个非真实缓存代理FCA存储器连接,所述FCA存储器 存有该多处理系统中内存间共享的数据,所述非真实缓存代理FCA包括:

数据获取模块,用于在节点控制器NC接收到数据请求时,从与所述非真实 缓存代理FCA连接的非真实缓存代理FCA存储器中获取所述数据请求中所需的 目标数据;

发送模块,用于将所述数据获取模块获取的所述目标数据发送给所述数据 请求的发出方。

一种节点控制器NC,包括:至少一个非真实缓存代理FCA;以及与所述非 真实缓存代理FCA相连的非真实缓存代理FCA存储器。

本发明实施例提供的访问高速缓冲存储器的方法及非真实缓存代理,通过 在NC上添加至少一个符合处理器微结构级互连协议的非真实缓存代理(Fake  Cache 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具有相同的外在表现,能重复使用协议接口模块, 无需独立设计接口,降低了开发成本。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或 者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软 件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若 干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备 等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号