CN107168810A - 一种计算节点内存共享系统及读、写操作内存共享方法 - Google Patents
一种计算节点内存共享系统及读、写操作内存共享方法 Download PDFInfo
- Publication number
- CN107168810A CN107168810A CN201710326875.4A CN201710326875A CN107168810A CN 107168810 A CN107168810 A CN 107168810A CN 201710326875 A CN201710326875 A CN 201710326875A CN 107168810 A CN107168810 A CN 107168810A
- Authority
- CN
- China
- Prior art keywords
- local
- calculate node
- accessed
- internal memory
- pcie message
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明公开一种计算节点内存共享系统及读、写操作内存共享方法,计算节点有至少两个,每个计算节点均包括:对读写操作进行计算处理的核心处理模块;对cache和内存进行控制的内存控制器模块;实现各个计算节点内存互访的共享内存控制模块;对pcie消息进行封装和解析的pcie消息处理模块;核心处理模块通过内存控制器模块与cache连接,cache与内存连接;核心处理模块还通过pcie总线与共享内存控制模块连接;共享内存控制模块通过pcie消息处理模块与其他计算节点连接。本发明实现不同计算节点的内存共享使用,不同类型的计算节点处理数据不需要在各自内存中把数据搬来搬去,减少传输带宽的使用,降低处理数据的延时。
Description
技术领域
本发明涉及通用计算节点和异构计算节点间共享内存领域,尤其涉及一种基于PCI-E实现不同类型计算节点内存共享的系统及方法。
背景技术
出于功耗及空间方面的考虑,数据中心的一些应用中已经开始使用异构计算(GPU、FPGA等)加速器,许多应用已经受益于可在不同系统架构中无缝移动数据的加速器引擎。目前的加速器大多数是基于PCI-E总线,但PCI-E总线在不同类型计算节点中通信存在带宽低、延时高的问题,如何基于PCI-E接口和交换机实现不同类型计算节点之间高带宽、低延时互访是一个需要解决的技术难题。
发明内容
为解决上述问题,本发明提供一种不同计算节点的内存可以共享使用的计算节点内存共享系统及读、写操作内存共享方法。
本发明的技术方案是:一种计算节点内存共享系统,所述计算节点有至少两个,每个计算节点均包括:
对读写操作进行计算处理的核心处理模块;
对cache和内存进行控制的内存控制器模块;
实现各个计算节点内存互访的共享内存控制模块;
对pcie消息进行封装和解析的pcie消息处理模块;
所述核心处理模块通过内存控制器模块与cache连接,cache与内存连接;
所述核心处理模块还通过pcie总线与共享内存控制模块连接;所述共享内存控制模块通过pcie消息处理模块与其他计算节点连接。
进一步地,各个计算节点通过pcie switch互联。
进一步地,计算节点的类型包括各种架构的CPU、GPU和FPGA。
一种实现计算节点读操作内存共享方法,计算节点包括本地计算节点和被访问计算节点,本地计算节点进行读操作处理包括以下操作:
S1:判断所读地址是否在本地cache中;
S2:如果所读地址在本地cache中,且本地cache状态表明数据有效,则从本地cache中读取数据;
S3:如果所读地址不在本地cache中或本地cache状态表明数据无效,则进入步骤S4:
S4:判断是否是读本地内存;
S5:如果是读本地内存,则通过内存控制器模块访问本地内存,然后刷新本地cache内容为本地内存中的内容;
S6:如果不是读本地内存,则调用本地共享内存控制模块;
S7:本地共享内存控制模块通过本地pcie消息处理模块把访问地址封装成pcie消息发送给被访问计算节点;
S8:被访问计算节点访问目标内存,并将访问结果发回本地计算节点进行处理。
进一步地,步骤S8具体包括以下步骤:
S8.1:被访问pcie消息处理模块接收并解析pcie消息,发给被访问共享内存控制模块;
S8.2:被访问共享内存控制模块访问目标内存;
S8.3:被访问共享内存控制模块调用pcie消息处理模块把访问结果封装成pcie消息发回本地计算节点;
S8.4:本地pcie消息处理模块解析pcie消息中的结果传给本地共享内存控制模块;
S8.5:本地共享内存控制模块把访问结果返回本地核心处理模块;
S8.6:本地内存控制器模块刷新本地cache内容为新的访问结果。
一种实现计算节点写操作内存共享方法,计算节点包括本地计算节点和被访问计算节点,本地计算节点进行写操作处理包括以下操作:
S1:判断是否是写本地内存;
S2:如果是写本地内存,则通过本地内存控制器模块访问本地cache和本地内存;如果不是写本地内存,则进入步骤S7;
S3:写内存操作完成后,通过本地共享内存控制模块调用本地pcie消息处理模块;
S4:pcie消息处理模块封装pcie消息发给其他所有计算节点;
S5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S6:其他所有计算节点各自的共享内存控制模块更新本地cache状态;
S7:调用本地共享内存控制模块;
S8:调用本地pcie消息处理模块把访问地址封装成pcie消息发给被访问计算节点;
S9:被访问计算节点访问目标内存,并将被访问内存有变化消息发送给其他所有计算节点。
进一步地,步骤S9具体包括以下步骤:
S9.1:被访问pcie消息处理模块接收pcie消息解析后发给被访问共享内存控制模块;
S9.2:被访问共享内存控制模块访问目标内存;
S9.3:被访问共享内存控制模块调用被访问pcie消息处理模块;
S9.4:被访问pcie消息处理模块封装pcie消息发给其他所有计算节点,以通知给其他所有计算节点被访问内存内容有变化;
S9.5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S9.6:其他所有计算节点的共享内存控制模块更新本地cache状态。
本发明提供的计算节点内存共享系统及读、写操作内存共享方法,实现不同计算节点的内存共享使用,不同类型的计算节点处理数据就不需要在各自内存中把数据搬来搬去,这样就能减少传输带宽的使用,降低处理数据的延时。
附图说明
图1是本发明系统连接部署示意图。
图2是本发明系统模块关系示意图。
图3是本发明具体实施例一读操作处理流程图。
图4是本发明具体实施例二写操作处理流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1和2所示,本发明提供的计算节点内存共享系统,计算节点有多个,可设置至少两个。计算节点的类型有多种,可包括各种结构的CPU、GPU和FPGA。各种类型的计算节点通pcie总线连接,连接的计算节点比较多时可采用pcie switch互联。可以是相同类型的计算节点互联,也可以是不同类型的计算节点互联。
每个计算节点均包括:
对读写操作进行计算处理的核心处理模块;
对cache和内存进行控制的内存控制器模块;
实现各个计算节点内存互访的共享内存控制模块;
对pcie消息进行封装和解析的pcie消息处理模块。
核心处理模块通过内存控制器模块与cache连接,cache与内存连接;核心处理模块还通过pcie总线与共享内存控制模块连接;共享内存控制模块通过pcie消息处理模块与其他计算节点连接。
实施例一:
计算节点包括本地计算节点和被访问计算节点,如图3所示,本地计算节点进行读操作处理包括以下操作:
S1:判断所读地址是否在本地cache中;
S2:如果所读地址在本地cache中,且本地cache状态表明数据有效,则从本地cache中读取数据;
S3:如果所读地址不在本地cache中或本地cache状态表明数据无效,则进入步骤S4:
S4:判断是否是读本地内存;
S5:如果是读本地内存,则通过内存控制器模块访问本地内存,然后刷新本地cache内容为本地内存中的内容;
S6:如果不是读本地内存,则调用本地共享内存控制模块;
S7:本地共享内存控制模块通过本地pcie消息处理模块把访问地址封装成pcie消息发送给被访问计算节点;
S8:被访问计算节点访问目标内存,并将访问结果发回本地计算节点进行处理。
其中,步骤S8具体包括以下步骤:
S8.1:被访问pcie消息处理模块接收并解析pcie消息,发给被访问共享内存控制模块;
S8.2:被访问共享内存控制模块访问目标内存;
S8.3:被访问共享内存控制模块调用pcie消息处理模块把访问结果封装成pcie消息发回本地计算节点;
S8.4:本地pcie消息处理模块解析pcie消息中的结果传给本地共享内存控制模块;
S8.5:本地共享内存控制模块把访问结果返回本地核心处理模块;
S8.6:本地内存控制器模块刷新本地cache内容为新的访问结果。
实施例二:
计算节点包括本地计算节点和被访问计算节点,如图4所示,本地计算节点进行写操作处理包括以下操作:
S1:判断是否是写本地内存;
S2:如果是写本地内存,则通过本地内存控制器模块访问本地cache和本地内存;如果不是写本地内存,则进入步骤S7;
S3:写内存操作完成后,通过本地共享内存控制模块调用本地pcie消息处理模块;
S4:pcie消息处理模块封装pcie消息发给其他所有计算节点;
S5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S6:其他所有计算节点各自的共享内存控制模块更新本地cache状态;
S7:调用本地共享内存控制模块;
S8:调用本地pcie消息处理模块把访问地址封装成pcie消息发给被访问计算节点;
S9:被访问计算节点访问目标内存,并将被访问内存有变化消息发送给其他所有计算节点。
其中,步骤S9具体包括以下步骤:
S9.1:被访问pcie消息处理模块接收pcie消息解析后发给被访问共享内存控制模块;
S9.2:被访问共享内存控制模块访问目标内存;
S9.3:被访问共享内存控制模块调用被访问pcie消息处理模块;
S9.4:被访问pcie消息处理模块封装pcie消息发给其他所有计算节点,以通知给其他所有计算节点被访问内存内容有变化;
S9.5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S9.6:其他所有计算节点的共享内存控制模块更新本地cache状态。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种计算节点内存共享系统,其特征在于,所述计算节点有至少两个,每个计算节点均包括:
对读写操作进行计算处理的核心处理模块;
对cache和内存进行控制的内存控制器模块;
实现各个计算节点内存互访的共享内存控制模块;
对pcie消息进行封装和解析的pcie消息处理模块;
所述核心处理模块通过内存控制器模块与cache连接,cache与内存连接;
所述核心处理模块还通过pcie总线与共享内存控制模块连接;所述共享内存控制模块通过pcie消息处理模块与其他计算节点连接。
2.根据权利要求1所述的计算节点内存共享系统,其特征在于,各个计算节点通过pcieswitch互联。
3.根据权利要求1或2所述的计算节点内存共享系统,其特征在于,计算节点的类型包括各种架构的CPU、GPU和FPGA。
4.一种根据权利要求1所述系统实现计算节点读操作内存共享方法,其特征在于,计算节点包括本地计算节点和被访问计算节点,本地计算节点进行读操作处理包括以下操作:
S1:判断所读地址是否在本地cache中;
S2:如果所读地址在本地cache中,且本地cache状态表明数据有效,则从本地cache中读取数据;
S3:如果所读地址不在本地cache中或本地cache状态表明数据无效,则进入步骤S4:
S4:判断是否是读本地内存;
S5:如果是读本地内存,则通过内存控制器模块访问本地内存,然后刷新本地cache内容为本地内存中的内容;
S6:如果不是读本地内存,则调用本地共享内存控制模块;
S7:本地共享内存控制模块通过本地pcie消息处理模块把访问地址封装成pcie消息发送给被访问计算节点;
S8:被访问计算节点访问目标内存,并将访问结果发回本地计算节点进行处理。
5.根据权利要求4所述的计算节点读操作内存共享方法,其特征在于,步骤S8具体包括以下步骤:
S8.1:被访问pcie消息处理模块接收并解析pcie消息,发给被访问共享内存控制模块;
S8.2:被访问共享内存控制模块访问目标内存;
S8.3:被访问共享内存控制模块调用pcie消息处理模块把访问结果封装成pcie消息发回本地计算节点;
S8.4:本地pcie消息处理模块解析pcie消息中的结果传给本地共享内存控制模块;
S8.5:本地共享内存控制模块把访问结果返回本地核心处理模块;
S8.6:本地内存控制器模块刷新本地cache内容为新的访问结果。
6.一种根据权利要求1所述系统实现计算节点写操作内存共享方法,其特征在于,计算节点包括本地计算节点和被访问计算节点,本地计算节点进行写操作处理包括以下操作:
S1:判断是否是写本地内存;
S2:如果是写本地内存,则通过本地内存控制器模块访问本地cache和本地内存;如果不是写本地内存,则进入步骤S7;
S3:写内存操作完成后,通过本地共享内存控制模块调用本地pcie消息处理模块;
S4:pcie消息处理模块封装pcie消息发给其他所有计算节点;
S5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S6:其他所有计算节点各自的共享内存控制模块更新本地cache状态;
S7:调用本地共享内存控制模块;
S8:调用本地pcie消息处理模块把访问地址封装成pcie消息发给被访问计算节点;
S9:被访问计算节点访问目标内存,并将被访问内存有变化消息发送给其他所有计算节点。
7.根据权利要求6所述计算节点写操作内存共享方法,其特征在于,步骤S9具体包括以下步骤:
S9.1:被访问pcie消息处理模块接收pcie消息解析后发给被访问共享内存控制模块;
S9.2:被访问共享内存控制模块访问目标内存;
S9.3:被访问共享内存控制模块调用被访问pcie消息处理模块;
S9.4:被访问pcie消息处理模块封装pcie消息发给其他所有计算节点,以通知给其他所有计算节点被访问内存内容有变化;
S9.5:其他所有计算节点各自的pcie消息处理模块解析pcie消息;
S9.6:其他所有计算节点的共享内存控制模块更新本地cache状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326875.4A CN107168810A (zh) | 2017-05-10 | 2017-05-10 | 一种计算节点内存共享系统及读、写操作内存共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326875.4A CN107168810A (zh) | 2017-05-10 | 2017-05-10 | 一种计算节点内存共享系统及读、写操作内存共享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168810A true CN107168810A (zh) | 2017-09-15 |
Family
ID=59813857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710326875.4A Pending CN107168810A (zh) | 2017-05-10 | 2017-05-10 | 一种计算节点内存共享系统及读、写操作内存共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168810A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408451A (zh) * | 2018-11-05 | 2019-03-01 | 英业达科技有限公司 | 一种图形处理器系统 |
CN109410117A (zh) * | 2018-11-05 | 2019-03-01 | 英业达科技有限公司 | 图形处理器系统 |
CN113014631A (zh) * | 2021-02-19 | 2021-06-22 | 浙江曲速科技有限公司 | 基于Hlink的设备缓存推送系统及方法 |
CN113672413A (zh) * | 2021-10-25 | 2021-11-19 | 摩尔线程智能科技(北京)有限责任公司 | 独立显卡的数据流控制方法、装置和独立显卡 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN103455468A (zh) * | 2012-11-06 | 2013-12-18 | 深圳信息职业技术学院 | 一种多gpu运算卡及多gpu之间的数据传输方法 |
CN103858111A (zh) * | 2013-10-08 | 2014-06-11 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
CN104156332A (zh) * | 2014-08-11 | 2014-11-19 | 济南曼维信息科技有限公司 | 基于外部pci-e连接的高性能并行计算方法 |
CN106569904A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 一种信息存储方法和装置、及服务器 |
-
2017
- 2017-05-10 CN CN201710326875.4A patent/CN107168810A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN103455468A (zh) * | 2012-11-06 | 2013-12-18 | 深圳信息职业技术学院 | 一种多gpu运算卡及多gpu之间的数据传输方法 |
CN103858111A (zh) * | 2013-10-08 | 2014-06-11 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
CN104156332A (zh) * | 2014-08-11 | 2014-11-19 | 济南曼维信息科技有限公司 | 基于外部pci-e连接的高性能并行计算方法 |
CN106569904A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 一种信息存储方法和装置、及服务器 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408451A (zh) * | 2018-11-05 | 2019-03-01 | 英业达科技有限公司 | 一种图形处理器系统 |
CN109410117A (zh) * | 2018-11-05 | 2019-03-01 | 英业达科技有限公司 | 图形处理器系统 |
CN109408451B (zh) * | 2018-11-05 | 2022-06-14 | 英业达科技有限公司 | 一种图形处理器系统 |
CN109410117B (zh) * | 2018-11-05 | 2022-12-20 | 英业达科技有限公司 | 图形处理器系统 |
CN113014631A (zh) * | 2021-02-19 | 2021-06-22 | 浙江曲速科技有限公司 | 基于Hlink的设备缓存推送系统及方法 |
CN113672413A (zh) * | 2021-10-25 | 2021-11-19 | 摩尔线程智能科技(北京)有限责任公司 | 独立显卡的数据流控制方法、装置和独立显卡 |
CN113672413B (zh) * | 2021-10-25 | 2022-02-11 | 摩尔线程智能科技(北京)有限责任公司 | 独立显卡的数据流控制方法、装置和独立显卡 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168810A (zh) | 一种计算节点内存共享系统及读、写操作内存共享方法 | |
DE112010001824B4 (de) | Paketierte Schnittstelle zur Kopplung von Agenten | |
CN111190553B (zh) | 使用混合存储器立方体链路的互连系统及方法 | |
US20180227146A1 (en) | Network-on-chip, data transmission method, and first switching node | |
CN103546467B (zh) | 在TCP/IP网络上应用Modbus RTU协议的方法 | |
US20220121603A1 (en) | Network-on-chip data processing method and device | |
CN103180817B (zh) | 存储扩展装置及服务器 | |
US9703697B2 (en) | Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment | |
US10019399B2 (en) | System for designing network on chip interconnect arrangements | |
CN105917312B (zh) | 动态随机存取存储器(dram)反向通道通信系统和方法 | |
CN1499389A (zh) | 经超高速缓冲存储器注入加速输入输出处理的方法及装置 | |
CN102855214B (zh) | 实现数据一致性的方法和一种多核系统 | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
US20140164689A1 (en) | System and method for managing performance of a computing device having dissimilar memory types | |
CN102314400B (zh) | 一种分散聚合式dma方法及装置 | |
CN109308030A (zh) | 一种基于EtherCAT总线的伺服驱动控制系统 | |
US11784946B2 (en) | Method for improving data flow and access for a neural network processor | |
CN105874758A (zh) | 内存访问方法、交换机及多处理器系统 | |
CN105359122B (zh) | 多cpu系统中的增强型数据传输 | |
CN105653476B (zh) | 一种数据处理器件与内存设备的通信方法及相关装置 | |
CN105677605A (zh) | 一种高效的可配置片上互联系统及其实现方法、装置 | |
US9830283B2 (en) | Multi-mode agent | |
CN111464447B (zh) | 一种超带宽多核心以太网交换芯片转发表同步的方法及装置 | |
US7529953B1 (en) | Communication bus power state management | |
US20240021239A1 (en) | Hardware Acceleration System for Data Processing, and Chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170915 |