CN106484626B - 内存访问的方法、系统及本地节点 - Google Patents

内存访问的方法、系统及本地节点 Download PDF

Info

Publication number
CN106484626B
CN106484626B CN201510548719.3A CN201510548719A CN106484626B CN 106484626 B CN106484626 B CN 106484626B CN 201510548719 A CN201510548719 A CN 201510548719A CN 106484626 B CN106484626 B CN 106484626B
Authority
CN
China
Prior art keywords
distant
node
address
end node
local
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
CN201510548719.3A
Other languages
English (en)
Other versions
CN106484626A (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201510548719.3A priority Critical patent/CN106484626B/zh
Publication of CN106484626A publication Critical patent/CN106484626A/zh
Application granted granted Critical
Publication of CN106484626B publication Critical patent/CN106484626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种内存访问的方法、系统及本地节点,涉及通信领域,解决了访存带宽受限于本地节点与远端节点间的链路带宽的问题。其方法包括:对数据对应的,本地节点的地址和多个远端节点的地址之间用交叉编址的方式建立映射关系;基于所述建立的映射关系,将所述数据分别路由给所述多个远端节点。本发明用于数据访存的过程中。

Description

内存访问的方法、系统及本地节点
技术领域
本发明涉及计算机领域,尤其涉及内存访问的方法、系统及本地节点。
背景技术
常用的内存访问机制之一为远端直接内存访问(Remote Direct Memory Access,RDMA)访问机制。该机制是在传统直接内存访问(Direct Memory Access,DMA)访问机制基础上,添加本地内存和远端内存交换控制功能的工作方式。即,RDMA控制器完全接管CPU以实现对总线的控制,内存数据交换不经过CPU,而直接在本地内存和远端内存之间进行,以中断方式向CPU报告传送操作的结束。其中,本地内存位于本地节点中,远端内存位于多个远端节点中。
现有技术中,先申请分配一定数量的远端内存给本地节点使用。该情况下,一般会将每个远端节点内的一大段连续地址空间分配给本地节点使用。举例而言,本地节点申请0x0000_0000-0xFFFF_FFFF共4G的地址空间,这4G的地址空间可以分布在远端节点1-4上。其中,若远端节点1-4每个为1G,则,0x0000_0000-0x3FFFF_FFFF这1G的连续地址空间集中在远端节点1上,0x4000_0000-0x7FFF_FFFF这1G的地址空间集中在远端节点2上,0x8000_0000-0xBFFF_FFFF这1G的地址空间集中在远端节点3上,0xC000_0000-0xFFFF_FFFF这1G的地址空间集中在远端节点4上。
然而,在上述过程中,发明人发现至少存在如下问题:将每个远端节点内的一大段连续地址空间分配给本地节点使用,当访问的数据集中在某一远端节点时,就会导致访存带宽受限于本地节点与该远端节点间的链路带宽。
发明内容
本发明的实施例提供一种内存访问的方法、系统及本地节点,能够避免访存带宽受限于本地节点与远端节点间的链路带宽的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种内存访问的方法,包括:
对数据对应的,本地节点的地址和多个远端节点的地址之间用交叉编址的方式建立映射关系;
基于所述建立的映射关系,将所述数据分别路由给所述多个远端节点。
结合第一方面,在第一种可能的实现方式中,所述映射关系包括以下信息:本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;
其中,所述本地节点的地址和所述远端节点的地址形成映射关系;所述远端节点的循环距离表示所述本地节点所映射的所述远端节点的个数;所述远端节点ID表示映射的所述远端节点的起始节点号;所述粒度表示每次分配给所述映射的远端节点的连续地址的长度。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系具体包括:
确定所述本地节点的地址;
设置所述节点循环距离及所述粒度;
根据所述确定的本地节点的地址、所述设置的节点循环距离及粒度,利用内存分割公式确定所述远端节点ID以及所述远端节点的地址。
结合第一方面,在第三种可能的实现方式中,在所述基于所述建立的映射关系,将所述数据分别路由给所述多个远端节点之后,所述方法还包括:
当访问所述数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
根据所述确定的本地节点的地址,基于所述建立的映射关系,获取所述远端节点的信息,所述远端节点的信息包含所述远端节点ID和所述远端节点的地址;
将所述远端节点ID和所述远端节点的地址封装到数据报文中。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,根据缓存线cache line或页page确定所述粒度的大小。
第二方面,本发明实施例提供一种本地节点,包括:
建立单元,用于对数据对应的,本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系;
路由单元,用于基于所述建立单元建立的映射关系,将所述数据分别路由给所述多个远端节点。
结合第二方面,在第一种可能的实现方式中,所述映射关系包括以下信息:本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;
其中,所述本地节点的地址和所述远端节点的地址形成映射关系;所述远端节点的循环距离表示所述本地节点所映射的所述远端节点的个数;所述远端节点ID表示映射的所述远端节点的起始节点号;所述粒度表示每次分配给所述映射的远端节点的连续地址的长度。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述建立单元具体包括:
确定模块,用于确定所述本地节点的地址;
设置模块,用于设置所述节点循环距离及所述粒度;
所述确定模块还用于,根据所述确定模块确定的本地节点的地址、所述设置模块设置的节点循环距离及粒度,利用内存分割公式确定所述远端节点ID以及所述远端节点的地址。
结合第二方面,在第三种可能的实现方式中,所述路由单元还用于:
当访问所述数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
根据所述确定的本地节点的地址,基于所述建立的映射关系,获取所述远端节点的信息,所述远端节点的信息包含所述远端节点ID和所述远端节点的地址;
将所述远端节点ID和所述远端节点的地址封装到数据报文中。
第三方面,本发明实施例提供一种内存访问的系统,所述系统包括多个远端节点以及第二方面中任一方面所述的本地节点。
本发明实施例提供的内存访问的方法、系统及本地节点,该方法包括:对数据对应的,本地节点和多个远端节点之间用交叉编址的方式建立映射关系;基于建立的映射关系,将数据分别路由给多个远端节点。这种基于用交叉编址的方式建立的映射关系将数据分别分配在多个远端节点内的方式,与现有技术中将数据的一大段连续地址分配到每一个远端节点的方式相比,在访问数据时不会出现集中访问某一远端节点进而导致访存带宽受限于链路带宽的问题,而是可以从多个远端节点分别、并行地访问,充分利用各个远端节点与本地节点之间的链路带宽,进而提高了链路带宽的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的内存访问的方法的一种流程示意图;
图2为本发明的实施例二提供的本地节点的一种结构示意图;
图3为本发明的实施例二提供的本地节点的另一种结构示意图;
图4为本发明的实施例三提供的内存访问的系统的一种系统架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一提供一种内存访问的方法,如图1所示,该方法包括以下步骤:
步骤S101,本地节点对数据对应的,本地节点的地址和多个远端节点的地址之间用交叉编址的方式建立映射关系。
具体地,对数据对应的,本地节点的地址和多个远端节点的地址之间用交叉编址的方式建立映射关系,以便在接收访问该数据的指令后,从映射的多个远端节点的地址中获取所述数据。在本发明实施例中,交叉编址的方式可以将数据的连续地址分割成多个小段的连续地址,每小段的连续地址的大小可以以单位“KB”或“B”衡量。
可选地,本步骤中的映射关系包括以下信息:
本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;
其中,本地节点的地址和远端节点的地址形成映射关系,其中远端节点的地址为物理地址;远端节点的循环距离表示本地节点所映射的远端节点的个数;远端节点ID表示映射的远端节点的起始节点号;粒度表示每次分配给所述映射的远端节点的连续地址的长度。
具体而言,远端节点的循环距离可以取的数值为不大于可以与本地节点形成映射的远端节点个数的最大值。例如,可以与本地节点形成映射的远端节点个数的最大值为4时,则远端节点的循环距离可设置为1,2,3或4。其中当设置为4时,这表示4个远端节点与本地节点形成映射关系。
以及,远端节点ID表示在本地节点与至少一个远端节点形成映射关系后,该本地节点映射的至少一个远端节点中的第一个远端节点的编号。当访问的数据根据该本地节点的地址并通过该本地节点的地址与多个远端节点的地址的映射关系,找到多个远端节点的地址时,然后在访问过程中根据远端节点ID,从第一个远端节点的地址开始访问。
以及,粒度表示每次分配给映射的远端节点的连续地址的长度单位。例如,当粒度取值10Kbyte时,则表示以10Kbyte的单位向映射的每个远端节点依次、循环地分配地址。例如,当需要将1G内存的数据分配到映射的2个远端节点(编号为1和2)时,则可以将1G中的第一个10Kbyte分配给远端节点1,将1G中的第二个10Kbyte分配给远端节点2,然后将1G中的第三个10Kbyte分配给远端节点1,依次循环,直至该1G内存被完全分配到这2个远端节点上。
进一步地,对于如何确定粒度的大小,可以根据缓存线cache line或页page来确定。
具体地,cache line的长度一般为32Byte或者64Byte,当粒度按照cache line的长度作为分配给映射的远端节点的连续地址的长度单位时,能够避免缓存cache从内存取数据时,该数据的内存却被分配到两个不同的远端节点的情况,也即当粒度的长度小于cache line的长度时容易产生数据的内存却被分配到两个不同的远端节点的情况。当然,还可以以比cache line的长度更大的长度作为粒度。例如按照page的长度。Page的长度一般为4KByte,当粒度按照Page的长度作为分配给映射的远端节点的连续地址的长度单位时,能够避免跨页而引起的多次进行内存访问的问题。
需说明的是,粒度还能根据其他方式确定其大小。这可以由本领域技术人员根据数据内存的大小及实际应用来设置。例如,可对应用在不同粒度下多次运行,挑选出最优粒度,以期实现最快完成应用的执行,对此本发明并不做限定。
此外,建立的映射关系中还可以包括信息:标识。标识用于表示远端节点的地址映射是否有效。当标识设置为1时,表示设置为“1”的标识对应的地址映射是有效的;当标识设置为0时,表示设置为“0”的标识对应的地址映射是无效的。其中,该标识可被设置为允许更改。标识是否允许更改可根据本领域技术人员的经验和具体情况确定。
可选地,在本发明一个具体实施例中,本地节点的地址和多个远端节点的地址之间采用交叉编址的方式建立映射关系具体包括:
确定本地节点的地址;
设置节点循环距离及粒度;
根据确定的本地节点的地址、设置的节点循环距离及粒度,利用内存分割公式确定要访问的远端节点ID以及该远端节点的地址。
上述步骤中,确定本地节点的地址的步骤和设置节点循环距离及粒度的步骤并无先后顺序,也即,可以先确定本地节点的地址,再设置节点循环距离及粒度;也可以先设置节点循环距离及粒度,再确定本地节点的地址;还可以同时执行这两个步骤。
在本发明实施例中,内存分割公式例如可以通过以下程序实现,以被分配的数据内存为4G、设置的粒度为4KB且节点循环距离为4为例:
以及,远端节点的地址=32’b{2’b00,addr_local[31:14],addr_local[11:0]};
其中,32’b代表为远端的32位地址;addr_local[31:14]代表当前4kB应该放到远端节点的哪个位置。
在上述程序中实现如下过程:若数据内存为4G,则按照现有技术的实施方式为将整个4G内存分成4大块内存,所以每大块内存的编址为0-1G,故最高位设为2’b00。而在本发明实施例中,可以根据设置为4KB大小的粒度,将4G分割成多个小块内存,其中每个小块内存对应4KB的小段地址,而每一小块内存的访问地址和本地地址的低12位地址相比是不变的,所以低12位保持不变,而addr_local[13:12]将由远端内存nodeID来体现,所以此处去掉addr_local[13:12]两位。然后,将addr_local[31:14]后移两位,用来表示4G中的4KB分配到某一远端节点后,该4KB在远端节点中的位置。举例而言,4G中的第1个4KB地址{000,addr_local[11:0]}应该放到远端节点1的第1个4KB内存地址中,对应地,在程序中,去掉addr_local[13:12],addr_local[14]=0,正好能够代表远端节点1的第一个地址;4G中的第5个4KB地址{100,addr_local[11:0]}应该放到远端节点1的第二个4KB内存地址中,对应地,在程序中,去掉addr_local[13:12],addr_local[14]=1,正好能够代表远端节点1的第二个地址。
可理解的,上述过程可由软件实现,该软件用于在将地址发往内存资源控制器之前完成地址转换。而且,上述程序的功能可通过升级软件的方式实现。另外,在硬件层面上,需要对本地节点的内存资源控制器进行修改,如在内存资源控制器上增加类似译码器的功能,用于查寻访存所在的远端节点,然后进行运算得到远端内存地址。
需说明的是,本发明实施例中的本地节点和多个远端节点之间建立的映射关系可以以映射表的形式存在。而且该映射表可以存储在本地节点的内存资源控制器中。
步骤S102,本地节点基于建立的映射关系,将数据分别路由在多个远端节点内。
具体地,由于用交叉编址的方式建立映射关系,因此基于该建立的映射关系,数据可被分成若干小块分别路由在多个远端节点内。
可选地,在本发明一个具体实施例中,在步骤S102之后,方法还包括以下步骤:
步骤1021,当访问数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
步骤1022,根据确定的本地节点的地址,基述建立的映射关系,获取远端节点的信息,远端节点的信息包含远端节点ID和远端节点的地址;
步骤1023,本地节点将远端节点ID和远端节点的地址封装到数据报文中。
在步骤1021中,访问的数据可以是之前被路由的数据中的全部数据,也可以是之前被路由的数据中的一部分数据。
在步骤1023中,远端节点的地址为所访问的数据在远端节点的地址。另外,在本地节点在完成封装后,将该封装的报文传输给本地节点的高速串行通信协议,高速串行通信协议的路由机制根据远端节点ID确定本地物理层的端口。通过该端口将报文发送给远端节点,从而远端节点根据该报文信息进行读写内存操作。
远端节点可通过端口将读写内存的结果发送给本地节点。
需指出,上述步骤1021至1023可由本地节点中的内存资源控制器执行。
本发明实施例提供一种内存访问的方法,该方法包括:对数据对应的,本地节点和多个远端节点之间用交叉编址的方式建立映射关系;基于建立的映射关系,将数据分别存储在多个远端节点内。这种基于用交叉编址的方式建立的映射关系将数据分别存储在多个远端节点内的方式,与现有技术中将数据的一大段连续地址分配到每一个远端节点的方式相比,在访问数据时不会出现集中访问某一远端节点进而导致访存带宽受限于链路带宽的问题,而是可以从多个远端节点分别、并行地访问,充分利用各个远端节点与本地节点之间的链路带宽,进而提高了链路带宽的利用率。
本发明实施例二还提供一种本地节点,如图2所示,本地节点20包括:
建立单元201,用于对数据对应的,本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系;
路由单元202,用于基于建立单元201建立的映射关系,将数据分别路由给所述多个远端节点。
本发明实施例提供一种本地节点,本地节点包括:建立单元,用于对数据对应的,本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系;存储单元,基于建立单元建立的映射关系,将数据分别路由给所述多个远端节点。这种基于用交叉编址的方式建立的映射关系从而将数据分别分配在多个远端节点内的本地节点,与现有技术中将数据的一大段连续地址分配到每一个远端节点的本地节点相比,在访问数据时不会出现集中访问某一远端节点进而导致访存带宽受限于链路带宽的问题,而是能够从多个远端节点分别、并行地访问,从而充分利用各个远端节点与本地节点之间的链路带宽,进而提高了链路带宽的利用率。
可选地,映射关系包括以下信息:本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;
其中,本地节点的地址和远端节点的地址形成映射关系;远端节点的循环距离表示本地节点所映射的远端节点的个数;远端节点ID表示映射的远端节点的起始节点号;粒度表示每次分配给所述映射的远端节点的连续地址的长度。
可选地,在本发明的一个具体实施例中,如图3所示,建立单元201具体包括:
确定模块2011,用于确定本地节点的地址;
设置模块2012,用于设置节点循环距离及粒度;
确定模块2011还用于,根据确定模块2011确定的本地节点的地址、设置模块2012设置的节点循环距离及粒度,利用内存分割公式确定远端节点ID以及远端节点的地址。
可选地,在本发明的一个具体实施例中,路由单元202还用于:
当访问数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
根据确定的本地节点的地址,基于建立的映射关系,获取远端节点的信息,所述远端节点的信息包含远端节点ID和远端节点的地址;
将远端节点ID和远端节点的地址封装到数据报文中。
需要说明的是,本发明实施例提供的本地节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例三还提供一种内存访问的系统30,如图4所示,该系统包括多个远端节点以及上述实施例中的任意具体实施例所述的本地节点20,在图4中,多个远端节点用远端节点“1”、远端节点“2”、远端节点“N”表示。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种内存访问的方法,其特征在于,包括:
对数据对应的,本地节点的地址和多个远端节点的地址之间用交叉编址的方式建立映射关系;所述映射关系包括以下信息:本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;其中,所述本地节点的地址和所述远端节点的地址形成映射关系;所述远端节点的循环距离表示所述本地节点所映射的所述远端节点的个数;所述远端节点ID表示映射的所述远端节点的起始节点号;所述粒度表示每次分配给所述映射的远端节点的连续地址的长度;
基于所述建立的映射关系,将所述数据分别路由给所述多个远端节点。
2.根据权利要求1所述的内存访问的方法,其特征在于,所述本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系具体包括:
确定所述本地节点的地址;
设置所述节点循环距离及所述粒度;
根据所述确定的本地节点的地址、所述设置的节点循环距离及粒度,利用内存分割公式确定所述远端节点ID以及所述远端节点的地址。
3.根据权利要求1所述的内存访问的方法,其特征在于,在所述基于所述建立的映射关系,将所述数据分别路由给所述多个远端节点之后,所述方法还包括:
当访问所述数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
根据所述确定的本地节点的地址,基于所述建立的映射关系,获取所述远端节点的信息,所述远端节点的信息包含所述远端节点ID和所述远端节点的地址;
将所述远端节点ID和所述远端节点的地址封装到数据报文中。
4.根据权利要求1所述的内存访问的方法,其特征在于,根据缓存线cacheline或页page确定所述粒度的大小。
5.一种本地节点,其特征在于,包括:
建立单元,用于对数据对应的,本地节点内的地址和多个远端节点内的地址之间用交叉编址的方式建立映射关系;所述映射关系包括以下信息:本地节点的地址、远端节点的循环距离、远端节点识别码ID、远端节点的地址以及粒度;其中,所述本地节点的地址和所述远端节点的地址形成映射关系;所述远端节点的循环距离表示所述本地节点所映射的所述远端节点的个数;所述远端节点ID表示映射的所述远端节点的起始节点号;所述粒度表示每次分配给所述映射的远端节点的连续地址的长度;
路由单元,用于基于所述建立单元建立的映射关系,将所述数据分别路由给所述多个远端节点。
6.根据权利要求5所述的本地节点,其特征在于,所述建立单元具体包括:
确定模块,用于确定所述本地节点的地址;
设置模块,用于设置所述节点循环距离及所述粒度;
所述确定模块还用于,根据所述确定模块确定的本地节点的地址、所述设置模块设置的节点循环距离及粒度,利用内存分割公式确定所述远端节点ID以及所述远端节点的地址。
7.根据权利要求5所述的本地节点,其特征在于,所述路由单元还用于:
当访问所述数据的至少一部分时,确定所述至少一部分数据的本地节点的地址;
根据所述确定的本地节点的地址,基于所述建立的映射关系,获取所述远端节点的信息,所述远端节点的信息包含所述远端节点ID和所述远端节点的地址;
将所述远端节点ID和所述远端节点的地址封装到数据报文中。
8.一种内存访问的系统,其特征在于,所述系统包括多个远端节点以及权利要求5-7中任一项所述的本地节点。
CN201510548719.3A 2015-08-31 2015-08-31 内存访问的方法、系统及本地节点 Active CN106484626B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510548719.3A CN106484626B (zh) 2015-08-31 2015-08-31 内存访问的方法、系统及本地节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510548719.3A CN106484626B (zh) 2015-08-31 2015-08-31 内存访问的方法、系统及本地节点

Publications (2)

Publication Number Publication Date
CN106484626A CN106484626A (zh) 2017-03-08
CN106484626B true CN106484626B (zh) 2019-11-26

Family

ID=58235480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510548719.3A Active CN106484626B (zh) 2015-08-31 2015-08-31 内存访问的方法、系统及本地节点

Country Status (1)

Country Link
CN (1) CN106484626B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014118652A1 (en) * 2013-02-01 2014-08-07 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
CN104199740A (zh) * 2014-08-28 2014-12-10 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合多节点多处理器系统和方法
CN104426971A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 一种远程内存交换分区方法、装置及系统
CN104603739A (zh) * 2012-08-30 2015-05-06 微软公司 对并行存储的块级访问

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521919B2 (en) * 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
US20120331243A1 (en) * 2011-06-24 2012-12-27 International Business Machines Corporation Remote Direct Memory Access ('RDMA') In A Parallel Computer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104603739A (zh) * 2012-08-30 2015-05-06 微软公司 对并行存储的块级访问
WO2014118652A1 (en) * 2013-02-01 2014-08-07 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
CN104426971A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 一种远程内存交换分区方法、装置及系统
CN104199740A (zh) * 2014-08-28 2014-12-10 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合多节点多处理器系统和方法

Also Published As

Publication number Publication date
CN106484626A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
US10042804B2 (en) Multiple protocol engine transaction processing
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
US8521967B1 (en) Network computing systems having shared memory clouds with addresses of disk-read-only memories mapped into processor address spaces
CN1277216C (zh) 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备
CN103870435B (zh) 服务器及数据访问方法
US10156890B2 (en) Network computer systems with power management
CN105745640B (zh) 访问文件的方法、系统和主机
JP2004192620A (ja) マルチプロセッサ・システムでのプロセッサ相互接続を使用するマイクロプロセッサ通信の方法およびデータ処理システム
CN107851078B (zh) 一种PCIe设备的聚合友好型地址分配的方法和系统
CN105765545A (zh) PCIe I/O设备共享方法及设备与互联系统
CN106951390A (zh) 一种可降低跨节点访存延时的numa系统构建方法
CN104571934B (zh) 一种内存访问的方法、设备和系统
US20230394000A1 (en) Interconnection system, data transmission method, and chip
CN104750614B (zh) 用于管理存储器的方法和装置
CN108471384A (zh) 用于端到端通信的报文转发的方法和装置
CN106484626B (zh) 内存访问的方法、系统及本地节点
US9411763B2 (en) Allocation of flow control credits for high performance devices
CN109324899B (zh) 基于PCIe池化硬件资源的编址方法、装置及主控节点
CN103412849A (zh) ARM处理器的NoC资源网络接口及其驱动方法
US20230244626A1 (en) Parallel dataflow routing scheme systems and methods
JP2004192621A (ja) クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
CN106326143A (zh) 一种缓存分配、数据访问、数据发送方法、处理器及系统
CN106557429B (zh) 一种内存数据的迁移方法和节点控制器
CN105745900B (zh) 访问文件的方法、分布式存储系统和网络设备
CN107402895A (zh) 一种数据传输方法、电子设备及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant