一种内存访问方法、设备和系统的制作方法

文档序号:6504517阅读:129来源:国知局
一种内存访问方法、设备和系统的制作方法
【专利摘要】本发明实施例提供的一种内存访问方法、设备和系统,涉及计算机体系结构领域,解决了集群系统中内存资源的分配问题,并提高了集群内部通信效率。该方法包括:通过接收内存访问命令,判断该内存访问命令的访存地址是否为异地内存地址;如果该内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找外部地址映射表中访存地址对应的参数信息,获得访存地址所在的异地节点的标识;根据参数信息生成内存请求消息,并将内存请求消息发送至异地节点,以便通知异地节点根据内存请求消息访问异地内存获取请求数据完成内存访问并生成响应消息;通过通信模块接收并分析响应消息得到请求数据。本发明的实施例应用于计算机集群系统间内存访问技术。
【专利说明】一种内存访问方法、设备和系统

【技术领域】
[0001] 本发明涉及计算机体系结构领域,尤其涉及一种内存访问方法、设备和系统。

【背景技术】
[0002] 计算机集群系统由数量众多的服务节点组成,这些节点通过软件与硬件之间的协 同处理来完成特定的计算任务。在完成计算任务时计算机集群中不同节点担当的角色不 同,从而有不同的资源需求,其中,在主从式集群系统中,主节点负责任务的分发,从节点负 责计算,并将计算结果发至主节点。这里从节点具有较高的计算能力需求和内存需求,但是 由于对于内存需求的不同往往主从节点间会发生内存分配不均,从而导致集群系统中资源 利用的不均衡。
[0003] 在现有解决内训需求问题上,现有技术提供了 一种通过在最高内存区的内存条插 槽中安装内存通信网卡的方式,即将内存通信网卡插入最高内存区的内存条插槽中,根据 通信协议,用户预先将内存的最高内存区注册预留为计算机与网卡的共享区。这里当用户 通过把数据写入共享区中时,内存通信网卡将自动将数据发送至对方内存通信网卡,并自 动写入对方本地共享区中,直至对方计算机中央处理器CPU(Central Processing Unit)从 共享区读取数据,从而实现计算机内存之间的直接通信。
[0004] 发明人发现现有技术中至少存在如下问题:由于现有技术中提出了一种内存直接 互联的通信方式,但是在实现的过程中仅实现了内存的直接互连通信,而且不适用于大规 模集群的内存通信方式。在现有问题的基础上依旧存在集群系统中内存资源利用不均衡的 问题,从而导致集群系统资源浪费。


【发明内容】

[0005] 本发明的实施例提供一种内存访问方法、设备和系统,解决了集群系统中内存资 源的分配问题,并提高了集群内部通信效率。
[0006] 为达到上述目的,本发明的实施例采用如下技术方案:
[0007] 第一方面,提供一种内存访问方法,包括:
[0008] 通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地 址;
[0009] 如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找 所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点 的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标识;
[0010] 根据所述参数信息生成内存请求消息,并将所述内存请求消息发送至所述异地节 点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求数据完成内存访 问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求数据;
[0011] 通过通信模块接收并分析所述响应消息得到请求数据。
[0012] 在第一种可能的实现方式中,结合第一方面具体包括,所述通过接收内存访问命 令,判断所述内存访问命令的访问地址是否为异地节点的内存地址,包括:
[0013] 根据所述内存访问命令中的访问地址查询所述外部地址映射表中的本地起始地 址;
[0014] 如果在所述外部地址映射表中查询到与所述访问地址对应的异地节点的标识,则 确定所述内存访问命令的访问地址为异地节点的内存地址;否则不是异地节点的内存地 址。
[0015] 在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式具体包括, 所述如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找所述 外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点的标 识,包括:
[0016] 通过查找所述外部地址映射表得到所述内存访问命令中所述异地节点的访问内 存的起始地址和所述异地节点的标识,并根据所述异地节点访问的内存地址计算至所述内 存地址所在的所述内存的起始地址的偏移量。
[0017] 在第三种可能的实现方式中,结合第一方面具体包括,所述方法还包括:
[0018] 当本地内存使用率超过阈值时,通过解析所述内存访问命令得到可提供空余内存 空间的异地节点;
[0019] 向所述异地节点发送内存请求消息,请求所述异地内存节点可提供的内存;
[0020] 接收所述异地节点的内存请求响应消息,所述响应消息包含异地内存节点可提供 的内存的起始地址和结束地址;
[0021] 将所述异地节点的标识和异地节点的内存起始地址写入所述外部地址映射表。
[0022] 在第四种可能的实现方式中,结合第一方面具体包括,所述通过通信模块接收并 分析所述响应消息得到请求数据,包括:
[0023] 所述响应消息包括所述异地节点地址,请求节点地址,请求数据和响应消息序列 号。
[0024] 在第五种可能的实现方式中,结合第一方面具体包括,所述外部地址映射表包括: 本地起始地址,本地结束地址,异地起始地址及异地节点的标识。
[0025] 在第六种可能的实现方式中,结合第一方面具体包括,所述通信模块通过互联网 络将至少一个请求节点与至少一个所述异地节点进行互联,构成内存网络。
[0026] 第二方面,提供一种内存访问方法,包括:
[0027] 接收并解析内存请求消息,通过解析所述内存请求消息获取异地内存访问地址, 使得根据所述异地内存访问地址获取请求数据;
[0028] 封装所述请求数据为响应消息,并通过通信模块发送至所述请求节点。
[0029] 在第一种可能的实现方式中,结合第二方面具体包括,所述内存请求消息,包括: 所述异地节点的地址,所述请求节点的地址,所述异地节点的内存段的起始地址,内存地址 偏移量和所述请求消息的序列号。
[0030] 在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式具体包括, 所述根据所述异地内存访问地址获取请求数据,包括:
[0031] 所述异地节点通过解析所述内存请求消息得到所述请求节点请求所需内存段的 起始地址以及内存地址偏移量,并根据所述内存段的起始地址和所述内存地址偏移量获取 所述请求节点所需的内存数据。
[0032] 第三方面,提供一种请求节点,包括:
[0033] 判断模块,用于通过接收内存访问命令,判断所述内存访问命令的访判断模块,用 于通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地址;
[0034] 查询模块,用于如果所述内存访问命令的访存地址为异地内存地址,则根据外部 地址映射表查找所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址 所在的异地节点的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标 识;
[0035] 通信模块,用于根据所述参数信息生成内存请求消息,并将所述内存请求消息发 送至所述异地节点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求 数据完成内存访问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求 数据;
[0036] 分析模块,用于通过所述通信模块接收并分析所述响应消息得到请求数据。
[0037] 在第一种可能的实现方式中,结合第三方面具体包括,所述判断模块包括:
[0038] 查询子模块,用于根据所述内存访问命令中的访问地址查询所述外部地址映射表 中的本地起始地址;
[0039] 判断子模块,用于如果在所述外部地址映射表中查询到与所述访问地址对应的异 地节点的标识,则确定所述内存访问命令的访问地址为异地节点的内存地址;否则不是异 地节点的内存地址。
[0040] 在第二种可能的实现方式中,结合第三方面或第一种可能的实现方式具体包括, 所述判断模块还包括:
[0041] 查询子模块,用于通过查找所述外部地址映射表得到所述内存访问命令中所述异 地节点的访问内存的起始地址和所述异地节点的标识,并根据所述异地节点访问的内存地 址计算至所述内存地址所在的所述内存的起始地址的偏移量。
[0042] 在第三种可能的实现方式中,结合第三方面具体包括,所述设备还包括:
[0043] 所述分析模块,还用于当本地内存使用率超过阈值时,通过解析所述内存访问命 令得到可提供空余内存空间的异地节点;
[0044] 所述通信模块,还用于向所述异地节点发送内存请求消息,请求所述异地内存节 点可提供的内存;
[0045] 所述通信模块,还用于接收所述异地节点的内存请求响应消息,所述响应消息包 含异地内存节点可提供的内存的起始地址和结束地址;
[0046] 写入模块,用于将所述异地节点的标识和异地节点的内存起始地址写入所述外部 地址映射表。
[0047] 在第四种可能的实现方式中,结合第三方面具体包括,所述响应消息,包括:所述 异地节点地址,请求节点地址,请求数据和响应消息序列号。
[0048] 在第五种可能的实现方式中,结合第三方面具体包括,所述外部地址映射表包括: 本地起始地址,本地结束地址,异地起始地址及异地节点的标识。
[0049] 在第六种可能的实现方式中,结合第三方面具体包括,所述通信模块通过互联网 络将至少一个请求节点与至少一个所述异地节点进行互联,构成内存网络。
[0050] 第四方面,通过一种异地节点,包括:
[0051] 分析模块,用于接收并解析所述内存请求消息,通过解析所述内存请求消息获取 异地内存访问地址,使得根据所述异地内存访问地址获取请求数据;
[0052] 封装模块,用于封装所述分析模块获取的所述请求数据为响应消息,并通过通信 模块发送至所述请求节点。
[0053] 在第一种可能的实现方式中,结合第四方面具体包括,所述内存请求消息,包括: 所述异地节点的地址,所述请求节点的地址,所述异地节点的内存段的起始地址,内存地址 偏移量和所述请求消息的序列号。
[0054] 在第二种可能的实现方式中,结合第四方面或第一种可能的实现方式具体包括, 所述分析模块,具体用于通过解析所述内存请求消息得到所述请求节点请求所需内存段的 起始地址以及内存地址偏移量,并根据所述内存段的起始地址和所述内存地址偏移量获取 所述请求节点所需的内存数据。
[0055] 第五方面,提供一种集群通信系统,包括:至少一个请求节点和至少一个异地节 点,其中,
[0056] 所述至少一个请求节点为第三方面或第三方面中任一可能的实现方式中任一所 述的请求节点,所述至少一个异地节点为第四方面或第四方面中任一种可能的实现方式中 任一所述的异地节点;
[0057] 其中,当所述至少一个请求节点在作为请求节点时,也可以作为其他异地节点的 请求节点;
[0058] 或者,
[0059] 当所述至少一个异地节点在作为异地节点时,也可以作为其他异地节点的请求节 点。
[0060] 在第一种可能的实现方式中,结合第五方面具体包括,所述至少一个请求节点通 过内部的通信模块与所述至少一个异地节点进行互联构成内存网络,以便在所述内存网络 中进行集群通信系统范围的数据传输。
[0061] 本发明实施例提供的内存访问方法、设备和系统,通过判断接收的内存访存命令 的访存地址是否为异地节点的异地内存地址,若是异地节点的异地内存地址,则根据外部 地址映射表查询接收的内存访存命令的异地内存地址所对应的的参数消息,进而能够从该 异地节点获取部分内存数据以满足本地内存的数据需求,从而解决了集群系统中内存资源 的分配问题,并提高了集群内部通信效率。

【专利附图】

【附图说明】
[0062] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0063] 图1为本发明实施例提供的一种内存访问方法的流程示意图;
[0064] 图2为本发明实施例提供的一种内存请求消息的结构示意图;
[0065] 图3为本发明实施例提供的另一种内存访问方法的流程示意图;
[0066] 图4为本发明实施例提供的一种响应消息的结构示意图;
[0067] 图5为本发明实施例提供的又一种内存访问方法的流程示意图;
[0068] 图6为本发明实施例提供的一种请求节点的结构示意图;
[0069] 图7为本发明实施例提供的另一种请求节点的结构示意图;
[0070] 图8为本发明实施例提供的又一种请求节点的结构示意图;
[0071] 图9为本发明实施例提供的一种异地节点的结构示意图;
[0072] 图10为本发明实施例提供的一种集群通信系统的结构示意图;
[0073] 图11为本发明实施例提供的一种通信模块的结构示意图;
[0074] 图12为本发明实施例提供的一种通信模块的内部功能结构示意图。

【具体实施方式】
[0075] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0076] 本发明实施例提供了一种内存访问方法,参照图1所示,具体步骤如下所示:
[0077] 101、请求节点通过接收内存访问命令,判断该内存访问命令的访存地址是否为异 地内存地址。
[0078] 具体的,在请求节点通过接收访问内存命令之前,内存网络监控本地请求节点的 内存利用率,若该请求节点的内存利用率超过预定阈值,通过接收的内存访问命令的访存 地址判断是否为异地节点的访存地址,其中内存访问命令由本地请求节点的中央处理器 CPU(Central Process Unit)发送,该内存访问命令用于指示请求节点中的内存控制器 MC (Memory Contro 11 er)判断该内存访问命令中的访存地址为本地地址或是异地地址。
[0079] 这里请求节点通过接收到的内存访问命令能够判断该内存访问命令的访存地址 是本地内存地址或是异地内存地址,若是本地内存访问,请求节点可以直接通过内存系统 获取访问本地内存数据;若是异地节点,请求节点能够根据外部地址映射表查找异地节点 的内存信息。
[0080] 其中,内存访问命令在计算机系统架构中请求节点部分一直会收到内存访问命 令,在收到的内存访问命令中主要由本地内存和异地节点发送的内存访问消息组成,操作 系统通过监测本地内存空间,以及接收异地节点的内存访问命令判断本地的请求节点是否 需要从异地节点获取异地节点空闲的内存空间,以便当本地内存空间不足时通过异地节点 提供异地空闲的内存空间供本地请求节点使用。
[0081] 102、如果内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找 外部地址映射表中访存地址对应的参数信息,获得访存地址所在的异地节点的标识。
[0082] 其中,外部地址映射表存储有异地节点内存地址及异地节点的标识。
[0083] 这里请求节点会根据查找本地的外部地址映射表,得到内存访问命令的访存地址 的异地起始内存的起始地址start,内存地址偏移量offset (要访问的地址在该起始地址 内存段的偏移)和异地节点的属主标识ID(IDentity,ID),其中,根据不同的网络环境外部 地址映射表中的属主ID还可以为异地节点的网际互连协议IP(Internet Protocol)地址。
[0084] 其中,在本发明实施例提供的请求节点中可以以计算机为例,这里外部地址映射 表存储于计算机的内存控制器中(Memory Controller, MC)。
[0085] 103、请求节点根据参数信息生成内存请求消息,并将内存请求消息发送至异地节 点,以便通知异地节点根据内存请求消息访问异地内存获取请求数据完成内存访问并生成 响应消息。
[0086] 其中,该响应消息中包含内存访问命令所请求的请求数据。
[0087] 这里请求节点通过查询外部地址映射表获取到异地节点能够提供的内存空间,此 时根据异地节点的内存起始地址和属主标识发送内存请求消息,使得异地节点能够通过该 内存请求消息获取请求的数据。
[0088] 其中内存请求消息结构如图2所示,包含了内存请求消息将要发送至的目的地址 dst,即异地节点的地址,以及请求节点的地址src,异地节点的内存段起始地址、内存地址 偏移量和请求消息的序号。
[0089] 104、请求节点通过通信模块接收并分析该响应消息得到请求数据。
[0090] 这里请求节点在通过通信模块接收响应消息后,根据分析该响应消息获取请求数 据。
[0091] 本发明实施例提供的内存访问方法,通过判断接收的内存访存命令的访存地址是 否为异地节点的异地内存地址,若是异地节点的异地内存地址,则根据外部地址映射表查 询接收的内存访存命令的异地内存地址所对应的参数消息,进而能够从该异地节点获取部 分内存数据以满足本地内存的数据需求,从而解决了集群系统中内存资源的分配问题,并 提高了集群内部通信效率。
[0092] 本发明实施例提供了一种内存访问方法,参照图3所示,具体步骤如下所示:
[0093] 201、异地节点接收并解析内存请求消息,通过解析该内存请求消息获取异地内存 访问地址,使得根据该异地内存访问地址获取请求数据。
[0094] 这里异地节点通过通信模块接收到请求节点发送的内存请求消息后,对该内存请 求消息进行解析,得到内存请求消息中的请求节点内存不足所需的内存段访问地址。
[0095] 其中,异地节点通过内存请求消息中获取请求节点所需的内存访问地址,其中异 地节点得到请求节点的地址src,内存段的起始地址和内存地址偏移量,并根据起始地址和 内存地址偏移量计算得到请求节点的请求数据的内存地址从而得到请求数据。
[0096] 202、异地节点封装该请求数据为响应消息,并通过通信模块发送至该请求节点。
[0097] 这里异地节点通过将步骤201中计算得到的请求数据封装为响应消息,并将该响 应消息通过通信模块发送至请求节点。
[0098] 其中,异地节点向请求节点发送的响应消息结构如图4所示,响应消息包括目的 地址dst (即请求节点的地址)、源地址src (即异地节点的地址)、序号(对应于请求节点 发送的请求消息序号的响应消息的序号)和内存数据
[0099] 本发明实施例提供的内存访问方法,通过判断接收的内存访存命令的访存地址是 否为异地节点的异地内存地址,若是异地节点的异地内存地址,则根据外部地址映射表查 询接收的内存访存命令的异地内存地址所对应的参数消息,进而能够从该异地节点获取部 分内存数据以满足本地内存的数据需求,从而解决了集群系统中内存资源的分配问题,并 提高了集群内部通信效率。
[0100] 具体的,以下结合具体的实施例进行说明。本发明实施例提到的请求节点与异 地节点在具体实施过程中设备结构相同,可以为移动通信设备中任一终端,例如私人计算 机PC,笔记本电脑等具备内存的智能终端,其中由于内存模块上扩展了通信模块,使得在集 群节点间的内存系统通过内存模块中的通信模块和下层的网络互连,构成内存网络,以便 集群节点间能够在本地内存不足时,通过内存网络使得本地节点对异地节点实现内存"借 用"。
[0101] 可以在图1和图3的实施例的基础上,参照图5所示,本发明的实施例提供了一种 内存访问方法,参照图5所示,为请求节点通过查询外部内存地址映射表请求异地节点内 存数据的过程,具体步骤如下:
[0102] 301、请求节点通过接收内存访问命令,判断该内存访问命令的访存地址是否为异 地内存地址。
[0103] 进一步的,请求节点根据内存访问命令中的访问地址查询外部地址映射表中的本 地起始地址;
[0104] 如果在外部地址映射表中查询到与访问地址对应的异地节点的标识,则确定内存 访问命令的访问地址为异地节点的内存地址;否则不是异地节点的内存地址。
[0105] 具体的,在请求节点通过接收访问内存命令之前,内存网络监控本地请求节点的 内存利用率,若该请求节点的内存利用率超过预定阈值,通过接收的内存访问命令的访存 地址判断是否为异地节点的访存地址,其中内存访问命令由本地请求节点的中央处理器 CPU(Central Process Unit)发送,该内存访问命令用于指示请求节点中的内存控制器 MC (Memory Contro 11 er)判断该内存访问命令中的访存地址为本地地址或是异地地址。
[0106] 这里请求节点通过接收到的内存访问命令能够判断该内存访问命令的访存地址 是本地内存地址或是异地内存地址,若是本地内存访问,请求节点可以直接通过内存系统 获取访问本地内存数据;若是异地节点,请求节点能够根据外部地址映射表查找异地节点 的内存信息。
[0107] 其中,内存访问消息在计算机系统架构中请求节点侧一直会收到内存访问命令, 该内存访问命令中主要由本地内存和异地节点发送的内存访问消息组成,操作系统通过监 测本地内存空间,以及接收异地节点的内存访问命令判断本地的请求节点是否需要从异地 节点获取异地节点空闲的内存空间。
[0108] 302、如果内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找 外部地址映射表中访存地址对应的参数信息,获得访存地址所在的异地节点的标识。
[0109] 进一步的,通过查找外部地址映射表得到内存访问命令中异地节点的访问内存的 起始地址和异地节点的标识,并根据异地节点访问的内存地址计算至内存地址所在的内存 的起始地址的偏移量。
[0110] 这里请求节点会根据查找本地的外部地址映射表,得到内存访问命令的访存地址 的异地起始内存的起始地址start,内存地址偏移量offset(要访问的地址在该起始地址 内存段的偏移)和异地节点的属主标识ID(IDentity,ID),其中,根据不同的网络环境外部 地址映射表中的属主ID还可以为异地节点的网际互连协议IP(Internet Protocol)地址。
[0111] 其中,在本发明实施例提供的请求节点中可以以计算机为例,这里外部地址映射 表存储于计算机的内存控制器中(Memory Controller, MC)。
[0112] 具体查询外部地址映射表如下,若异地节点要访问内存地址为6G(0xl80000000) 处的数据,则请求节点通过查找表1的外部地址映射表,得到异地起始地址为 3G (OxCOOOOOOO),偏移量为0,属主ID为3的异地节点。
[0113] 表 1
[0114]

【权利要求】
1. 一种内存访问方法,其特征在于,包括: 通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地址; 如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找所述 外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点的标 识;所述外部地址映射表存储有异地节点内存地址及异地节点的标识; 根据所述参数信息生成内存请求消息,并将所述内存请求消息发送至所述异地节点, 以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求数据完成内存访问 并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求数据; 通过通信模块接收并分析所述响应消息得到请求数据。
2. 根据权利要求1所述的方法,其特征在于,所述通过接收内存访问命令,判断所述内 存访问命令的访问地址是否为异地节点的内存地址,包括: 根据所述内存访问命令中的访问地址查询所述外部地址映射表中的本地起始地址; 如果在所述外部地址映射表中查询到与所述访问地址对应的异地节点的标识,则确定 所述内存访问命令的访问地址为异地节点的内存地址;否则不是异地节点的内存地址。
3. 根据权利要求1或2所述的方法,其特征在于,所述如果所述内存访问命令的访存地 址为异地内存地址,则根据外部地址映射表查找所述外部地址映射表中所述访存地址对应 的参数信息,获得所述访存地址所在的异地节点的标识,包括: 通过查找所述外部地址映射表得到所述内存访问命令中所述异地节点的访问内存的 起始地址和所述异地节点的标识,并根据所述异地节点访问的内存地址计算至所述内存地 址所在的所述内存的起始地址的偏移量。
4. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 当本地内存使用率超过阈值时,通过解析所述内存访问命令得到可提供空余内存空间 的异地节点; 向所述异地节点发送内存请求消息,请求所述异地内存节点可提供的内存; 接收所述异地节点的内存请求响应消息,所述响应消息包含异地内存节点可提供的内 存的起始地址和结束地址; 将所述异地节点的标识和异地节点的内存起始地址写入所述外部地址映射表。
5. 根据权利要求1所述的方法,其特征在于,所述通过通信模块接收并分析所述响应 消息得到请求数据,包括: 所述响应消息包括所述异地节点地址,请求节点地址,请求数据和响应消息序列号。
6. 根据权利要求1所述的方法,其特征在于,所述外部地址映射表包括:本地起始地 址,本地结束地址,异地起始地址及异地节点的标识。
7. 根据权利要求1所述的方法,其特征在于,所述通信模块通过互联网络将至少一个 请求节点与至少一个所述异地节点进行互联,构成内存网络。
8. -种内存访问方法,其特征在于,包括: 接收并解析内存请求消息,通过解析所述内存请求消息获取异地内存访问地址,使得 根据所述异地内存访问地址获取请求数据; 封装所述请求数据为响应消息,并通过通信模块发送至所述请求节点。
9. 根据权利要求8所述的方法,其特征在于,所述内存请求消息,包括:所述异地节点 的地址,所述请求节点的地址,所述异地节点的内存段的起始地址,内存地址偏移量和所述 请求消息的序列号。
10. 根据权利要求8或9所述的方法,其特征在于,所述根据所述异地内存访问地址获 取请求数据,包括: 所述异地节点通过解析所述内存请求消息得到所述请求节点请求所需内存段的起始 地址以及内存地址偏移量,并根据所述内存段的起始地址和所述内存地址偏移量获取所述 请求节点所需的内存数据。
11. 一种请求节点,其特征在于,包括: 判断模块,用于通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异 地内存地址; 查询模块,用于如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址 映射表查找所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在 的异地节点的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标识; 通信模块,用于根据所述参数信息生成内存请求消息,并将所述内存请求消息发送至 所述异地节点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求数据 完成内存访问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求数 据; 分析模块,用于通过所述通信模块接收并分析所述响应消息得到请求数据。
12. 根据权利要求11所述的设备,其特征在于,所述判断模块包括: 查询子模块,用于根据所述内存访问命令中的访问地址查询所述外部地址映射表中的 本地起始地址; 判断子模块,用于如果在所述外部地址映射表中查询到与所述访问地址对应的异地节 点的标识,则确定所述内存访问命令的访问地址为异地节点的内存地址;否则不是异地节 点的内存地址。
13. 根据权利要求11或12所述的设备,其特征在于,所述判断模块还包括: 查询子模块,用于通过查找所述外部地址映射表得到所述内存访问命令中所述异地节 点的访问内存的起始地址和所述异地节点的标识,并根据所述异地节点访问的内存地址计 算至所述内存地址所在的所述内存的起始地址的偏移量。
14. 根据权利要求11所述的设备,其特征在于,所述设备还包括: 所述分析模块,还用于当本地内存使用率超过阈值时,通过解析所述内存访问命令得 到可提供空余内存空间的异地节点; 所述通信模块,还用于向所述异地节点发送内存请求消息,请求所述异地内存节点可 提供的内存; 所述通信模块,还用于接收所述异地节点的内存请求响应消息,所述响应消息包含异 地内存节点可提供的内存的起始地址和结束地址; 写入模块,用于将所述异地节点的标识和异地节点的内存起始地址写入所述外部地址 映射表。
15. 根据权利要求11所述的设备,其特征在于,所述响应消息,包括:所述异地节点地 址,请求节点地址,请求数据和响应消息序列号。
16. 根据权利要求11所述的设备,其特征在于,所述外部地址映射表包括:本地起始地 址,本地结束地址,异地起始地址及异地节点的标识。
17. 根据权利要求11所述的设备,其特征在于,所述通信模块通过互联网络将至少一 个请求节点与至少一个所述异地节点进行互联,构成内存网络。
18. -种异地节点,其特征在于,包括: 分析模块,用于接收并解析内存请求消息,通过解析所述内存请求消息获取异地内存 访问地址,使得根据所述异地内存访问地址获取请求数据; 封装模块,用于封装所述分析模块获取的所述请求数据为响应消息,并通过通信模块 发送至所述请求节点。
19. 根据权利要求18所述的设备,其特征在于,所述内存请求消息,包括:所述异地节 点的地址,所述请求节点的地址,所述异地节点的内存段的起始地址,内存地址偏移量和所 述请求消息的序列号。
20. 根据权利要求18或19所述的设备,其特征在于, 所述分析模块,具体用于通过解析所述内存请求消息得到所述请求节点请求所需内存 段的起始地址以及内存地址偏移量,并根据所述内存段的起始地址和所述内存地址偏移量 获取所述请求节点所需的内存数据。
21. -种集群通信系统,其特征在于,包括:至少一个请求节点和至少一个异地节点, 其中, 所述至少一个请求节点为权利要求11?17任一所述的请求节点,所述至少一个异地 节点为权利要求18?20任一所述的异地节点; 其中,当所述至少一个请求节点在作为请求节点时,也可以作为其他异地节点的请求 节点; 或者, 当所述至少一个异地节点在作为异地节点时,也可以作为其他异地节点的请求节点。
22. 根据权利要求21所述的集群通信系统,其特征在于,所述至少一个请求节点通过 内部的通信模块与所述至少一个异地节点进行互联构成内存网络,以便在所述内存网络中 进行集群通信系统范围的数据传输。
【文档编号】G06F12/02GK104239222SQ201310247458
【公开日】2014年12月24日 申请日期:2013年6月20日 优先权日:2013年6月20日
【发明者】李龙, 张立新 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1