一种内存访问方法、设备和系统技术方案

技术编号:10804847 阅读:59 留言:0更新日期:2014-12-24 11:50
本发明专利技术实施例提供的一种内存访问方法、设备和系统,涉及计算机体系结构领域,解决了集群系统中内存资源的分配问题,并提高了集群内部通信效率。该方法包括:通过接收内存访问命令,判断该内存访问命令的访存地址是否为异地内存地址;如果该内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找外部地址映射表中访存地址对应的参数信息,获得访存地址所在的异地节点的标识;根据参数信息生成内存请求消息,并将内存请求消息发送至异地节点,以便通知异地节点根据内存请求消息访问异地内存获取请求数据完成内存访问并生成响应消息;通过通信模块接收并分析响应消息得到请求数据。本发明专利技术的实施例应用于计算机集群系统间内存访问技术。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例提供的一种内存访问方法、设备和系统,涉及计算机体系结构领域,解决了集群系统中内存资源的分配问题,并提高了集群内部通信效率。该方法包括:通过接收内存访问命令,判断该内存访问命令的访存地址是否为异地内存地址;如果该内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找外部地址映射表中访存地址对应的参数信息,获得访存地址所在的异地节点的标识;根据参数信息生成内存请求消息,并将内存请求消息发送至异地节点,以便通知异地节点根据内存请求消息访问异地内存获取请求数据完成内存访问并生成响应消息;通过通信模块接收并分析响应消息得到请求数据。本专利技术的实施例应用于计算机集群系统间内存访问技术。【专利说明】一种内存访问方法、设备和系统
本专利技术涉及计算机体系结构领域,尤其涉及一种内存访问方法、设备和系统。
技术介绍
计算机集群系统由数量众多的服务节点组成,这些节点通过软件与硬件之间的协 同处理来完成特定的计算任务。在完成计算任务时计算机集群中不同节点担当的角色不 同,从而有不同的资源需求,其中,在主从式集群系统中,主节点负责任务的分发,从节点负 责计算,并将计算结果发至主节点。这里从节点具有较高的计算能力需求和内存需求,但是 由于对于内存需求的不同往往主从节点间会发生内存分配不均,从而导致集群系统中资源 利用的不均衡。 在现有解决内训需求问题上,现有技术提供了 一种通过在最高内存区的内存条插 槽中安装内存通信网卡的方式,即将内存通信网卡插入最高内存区的内存条插槽中,根据 通信协议,用户预先将内存的最高内存区注册预留为计算机与网卡的共享区。这里当用户 通过把数据写入共享区中时,内存通信网卡将自动将数据发送至对方内存通信网卡,并自 动写入对方本地共享区中,直至对方计算机中央处理器CPU(Central Processing Unit)从 共享区读取数据,从而实现计算机内存之间的直接通信。 专利技术人发现现有技术中至少存在如下问题:由于现有技术中提出了一种内存直接 互联的通信方式,但是在实现的过程中仅实现了内存的直接互连通信,而且不适用于大规 模集群的内存通信方式。在现有问题的基础上依旧存在集群系统中内存资源利用不均衡的 问题,从而导致集群系统资源浪费。
技术实现思路
本专利技术的实施例提供一种内存访问方法、设备和系统,解决了集群系统中内存资 源的分配问题,并提高了集群内部通信效率。 为达到上述目的,本专利技术的实施例采用如下技术方案: 第一方面,提供一种内存访问方法,包括: 通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地 址; 如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找 所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点 的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标识; 根据所述参数信息生成内存请求消息,并将所述内存请求消息发送至所述异地节 点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求数据完成内存访 问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求数据; 通过通信模块接收并分析所述响应消息得到请求数据。 在第一种可能的实现方式中,结合第一方面具体包括,所述通过接收内存访问命 令,判断所述内存访问命令的访问地址是否为异地节点的内存地址,包括: 根据所述内存访问命令中的访问地址查询所述外部地址映射表中的本地起始地 址; 如果在所述外部地址映射表中查询到与所述访问地址对应的异地节点的标识,则 确定所述内存访问命令的访问地址为异地节点的内存地址;否则不是异地节点的内存地 址。 在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式具体包括, 所述如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找所述 外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点的标 识,包括: 通过查找所述外部地址映射表得到所述内存访问命令中所述异地节点的访问内 存的起始地址和所述异地节点的标识,并根据所述异地节点访问的内存地址计算至所述内 存地址所在的所述内存的起始地址的偏移量。 在第三种可能的实现方式中,结合第一方面具体包括,所述方法还包括: 当本地内存使用率超过阈值时,通过解析所述内存访问命令得到可提供空余内存 空间的异地节点; 向所述异地节点发送内存请求消息,请求所述异地内存节点可提供的内存; 接收所述异地节点的内存请求响应消息,所述响应消息包含异地内存节点可提供 的内存的起始地址和结束地址; 将所述异地节点的标识和异地节点的内存起始地址写入所述外部地址映射表。 在第四种可能的实现方式中,结合第一方面具体包括,所述通过通信模块接收并 分析所述响应消息得到请求数据,包括: 所述响应消息包括所述异地节点地址,请求节点地址,请求数据和响应消息序列 号。 在第五种可能的实现方式中,结合第一方面具体包括,所述外部地址映射表包括: 本地起始地址,本地结束地址,异地起始地址及异地节点的标识。 在第六种可能的实现方式中,结合第一方面具体包括,所述通信模块通过互联网 络将至少一个请求节点与至少一个所述异地节点进行互联,构成内存网络。 第二方面,提供一种内存访问方法,包括: 接收并解析内存请求消息,通过解析所述内存请求消息获取异地内存访问地址, 使得根据所述异地内存访问地址获取请求数据; 封装所述请求数据为响应消息,并通过通信模块发送至所述请求节点。 在第一种可能的实现方式中,结合第二方面具体包括,所述内存请求消息,包括: 所述异地节点的地址,所述请求节点的地址,所述异地节点的内存段的起始地址,内存地址 偏移量和所述请求消息的序列号。 在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式具体包括, 所述根据所述异地内存访问地址获取请求数据,包括: 所述异地节点通过解析所述内存请求消息得到所述请求节点请求所需内存段的 起始地址以及内存地址偏移量,并根据所述内存段的起始地址和所述内存地址偏移量获取 所述请求节点所需的内存数据。 第三方面,提供一种请求节点,包括: 判断模块,用于通过接收内存访问命令,判断所述内存访问命令的访判断模块,用 于通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地址; 查询模块,用于如果所述内存访问命令的访存地址为异地内存地址,则根据外部 地址映射表查找所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址 所在的异地节点的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标 识; 通信模块,用于根据所述参数信息生成内存请求消息,并将所述内存请求消息发 送至所述异地节点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求 数据完成内存访问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求 数据; 分析模块,用于通过所述通信模块接收并分析所述响应消息得到请求数据。 在第一种可能的实现方式中,结合第三方面具体包括本文档来自技高网
...
一种内存访问方法、设备和系统

【技术保护点】
一种内存访问方法,其特征在于,包括:通过接收内存访问命令,判断所述内存访问命令的访存地址是否为异地内存地址;如果所述内存访问命令的访存地址为异地内存地址,则根据外部地址映射表查找所述外部地址映射表中所述访存地址对应的参数信息,获得所述访存地址所在的异地节点的标识;所述外部地址映射表存储有异地节点内存地址及异地节点的标识;根据所述参数信息生成内存请求消息,并将所述内存请求消息发送至所述异地节点,以便通知所述异地节点根据所述内存请求消息访问异地内存获取请求数据完成内存访问并生成响应消息,所述响应消息中包含所述内存访问命令所请求的请求数据;通过通信模块接收并分析所述响应消息得到请求数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:李龙张立新
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1