CN104935530B - 一种计算机间数据交换的方法、交换机和系统 - Google Patents
一种计算机间数据交换的方法、交换机和系统 Download PDFInfo
- Publication number
- CN104935530B CN104935530B CN201510211577.1A CN201510211577A CN104935530B CN 104935530 B CN104935530 B CN 104935530B CN 201510211577 A CN201510211577 A CN 201510211577A CN 104935530 B CN104935530 B CN 104935530B
- Authority
- CN
- China
- Prior art keywords
- computer
- address space
- sub
- port
- qpi
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种计算机间数据交换的方法、交换机和系统,该计算机间数据交换的方法包括:利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口;所述交换机接收所述至少两个计算机中的第一计算机发送到支持QPI协议的第一端口的QPI协议数据;所述交换机查找所述至少两个计算机中的接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机,使得计算机间的数据交换不再受网络带宽的制约,从而,有效地提高了计算机间数据传输效率。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种计算机间数据交换的方法、交换机和系统。
背景技术
随着计算机的快速发展,服务器型计算机在企业中应用越来越广泛。该服务器型计算机一般包含多台计算机,比如计算机集群等,在运行过程中,这多台计算机间会进行数据交换。目前,主要通过网络传输数据来实现这种多台计算机间的数据交换,而由于网络带宽的限制,使计算机间数据传输效率较低。
发明内容
本发明提供一种计算机间数据交换的方法、交换机和系统,以提高计算机间数据传输效率。
一种计算机间数据交换的方法,利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口;还包括:
所述交换机接收所述至少两个计算机中的第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
所述交换机查找所述至少两个计算机中的接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机。
优选地,该方法进一步包括:
建立每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系;
在每一个计算机中划分发送地址空间,并在每一个计算机中将发送地址空间划分为分别对应于其他每一个计算机的子发送地址空间;
在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子发送地址空间对应的计算机的标识;
所述发送到支持QPI协议的第一端口的QPI协议数据中携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间的信息;
所述交换机查找所述至少两个计算机中的接收数据的第二计算机包括:所述交换机根据所述第二子发送地址空间,查找所述第二子发送地址空间对应的所述第二计算机标识;
所述确定所述第二计算机连接的支持QPI协议的第二端口,包括:所述交换机根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口。
优选地,该方法进一步包括:
在每一个计算机中划分接收地址空间,并在每一个计算机中将接收地址空间划分为分别对应于其他每一个计算机的子接收地址空间;
在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;
在所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机之前,进一步包括:将在所述第二计算机中所述第一计算机标识对应的第一子接收地址空间的信息写入所述QPI协议数据;
所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机,包括:所述交换机从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间;
在所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机之后,进一步包括:从所述第二计算机为所述第一计算机划分的第一子接收地址空间中,读取所述QPI协议数据。
优选地,该方法进一步包括:在每一个计算机中建立ACPI模拟设备;
所述划分发送地址空间包括:在所述ACPI模拟设备中划分出发送地址空间。
优选地,该方法进一步包括:在每一个计算机中建立ACPI模拟设备;
所述划分接收地址空间包括:在所述ACPI模拟设备中划分出接收地址空间。
一种交换机,包括支持QPI协议的至少两个端口,包括:
每一个支持QPI协议的端口,利用QPI总线与一个计算机连接;
接收单元,用于接收外部第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
确定单元,用于查找接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
发送单元,用于从所述第二端口将QPI协议数据发送给所述第二计算机。
优选地,该装置进一步包括:第一保存单元,其中,
所述第一保存单元,用于保存建立的每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系以及在每一个计算机中划分的分别对应于其他每一个计算机的子发送地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子发送地址空间对应的计算机的标识;
所述接收单元,进一步用于:接收外部第一计算机发送到支持QPI协议的第一端口的携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间信息的QPI协议数据;
所述确定单元,进一步用于:根据所述第二子发送地址空间,查找所述第一保存单元中所述第二子发送地址空间对应的所述第二计算机标识,并根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口。
优选地,该装置进一步包括:第二保存单元、写入单元,其中,
所述第二保存单元,用于保存在每一个计算机中划分的分别对应于其他每一个计算机的子接收地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;
所述写入单元,用于将所述第二保存单元中的所述第二计算机划分的所述第一计算机对应的第一子接收地址空间的信息写入所述QPI协议数据;
所述发送单元,进一步用于:从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间。
一种计算机间数据交换的系统,包括:上述任意一种交换机和至少两个计算机,其中,
所述至少两个计算机,通过QPI总线分别连接到交换机的支持QPI协议的各个端口,其中,
所述至少两个计算机中的每一个计算机,用于发送QPI协议数据给交换机的支持QPI协议的对应于该每一个计算机的端口,接收交换机的支持QPI协议的对应于该每一个计算机的端口发送的QPI协议数据。
优选地,所述至少两个计算机中的每一个计算机包括发送地址空间,该发送地址空间具有对应于其他每一个计算机的子发送地址空间,进一步用于向所述交换机提供子发送地址空间信息;
和/或,
所述至少两个计算机中的每一个计算机包括接收地址空间,该接收地址空间具有对应于其他每一个计算机的子接收地址空间,进一步用于根据QPI协议数据携带的所述子接收地址空间信息,将所述QPI协议数据存入所述子接收地址空间信息对应的所述子接收地址空间。
优选地,所述至少两个计算机中的每一个计算机均包括ACPI模拟设备,所述发送地址空间存在于所述ACPI模拟设备中;
和/或,
所述至少两个计算机中的每一个计算机均包括ACPI模拟设备,所述接收地址空间存在于所述ACPI模拟设备中。
本发明实施例提供了一种计算机间数据交换的方法、交换机和系统,可以利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口,这使得交换机可直接通过支持QPI协议的各个端口接收到该支持QPI协议的各个端口连接的计算机发送的QPI协议数据,另外,该交换机通过支持QPI协议的端口将QPI协议数据发送给接收该QPI协议数据的计算机,即实现了计算机间的数据交换,在该数据交换过程中,所采用的QPI协议为高速点对点连接的协议,其在发送的同时也可以接收另一端传输来的数据,而且,QPI连接具有较高的带宽如20位宽的QPI连接其带宽可达惊人的每秒25.6GB。那么,在该交换机采用QPI使得计算机间的数据交换不再受网络带宽的制约,从而,有效地提高了计算机间数据传输效率。
附图说明
图1为本发明一个实施例中计算机间数据交换方法的流程图;
图2为本发明另一个实施例中计算机间数据交换方法的流程图;
图3为本发明一个实施例中交换机的结构示意图;
图4为本发明另一个实施例中交换机的结构示意图;
图5为本发明又一个实施例中交换机的结构示意图;
图6是本发明一个实施例中计算机间数据交换系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
QPI是一种基于包传输的串行式高速点对点连接协议,采用差分信号与专门的时钟进行传输,可以提升更高的访问带宽。一组QPI可以具有20条数据传输线,以及发送(TX)和接收方(RX)的时钟信号。
一个QPI数据包包含80位,需要两个时钟周期或四次传输完成整个数据包的传送(QPI的时钟信号速率是传输速率的一半)。在每次传输的20bit数据中,有16bit是真实有效的数据,其余四位用于循环冗余校验,以提高系统的可靠性。另外,QPI是双向的,在发送的同时也可以接收另一端传输来的数据,这样,每个QPI总线总带宽=每秒传输次数(即QPI频率)×每次传输的有效数据(即16bit/8=2Byte)×双向。所以QPI的效率更高。
此外,QPI另一个亮点就是支持多条系统总线连接,系统总线将会被分成多条连接,并且频率不再是单一固定的。根据系统各个子系统对数据吞吐量的需求,每条系统总线连接的速度也可不同,更具弹性。
如图1所示,本发明实施例提供了一种计算机间数据交换的方法,该方法可以包括以下步骤:
步骤101:利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口;
步骤102:所述交换机接收所述至少两个计算机中的第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
步骤103:所述交换机查找所述至少两个计算机中的接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
步骤104:所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机。
在本发明一个实施例中,为了提高交换机传输数据的准确性,在步骤101之后,进一步包括:建立每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系,使得交换机能够准确的定位计算机;在每一个计算机中划分发送地址空间,并在每一个计算机中将发送地址空间划分为分别对应于其他每一个计算机的子发送地址空间;在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子发送地址空间对应的计算机的标识,通过该过程可使计算机为交换机提供更加准确的数据发送方的信息和数据接收方的信息,以使交换机能够准确的传输数据,而且计算机也可获知该数据是由哪一台计算机提供。那么,在步骤102中所述发送到支持QPI协议的第一端口的QPI协议数据中携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间的信息;步骤103的具体实现方式则可以为所述交换机根据所述第二子发送地址空间,查找所述第二子发送地址空间对应的所述第二计算机标识,然后根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口。
在本发明一个实施例中,为了提高交换机传输数据的准确性,在步骤101之后,进一步包括:在每一个计算机中划分接收地址空间,并在每一个计算机中将接收地址空间划分为分别对应于其他每一个计算机的子接收地址空间,在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;在步骤104之前,进一步包括:将在所述第二计算机中所述第一计算机标识对应的第一子接收地址空间的信息写入所述QPI协议数据。那么,步骤104的具体实现方式可以为:所述交换机从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间。另外,在步骤104之后,可进一步包括:从所述第二计算机为所述第一计算机划分的第一子接收地址空间中,读取所述QPI协议数据。
在本发明一个实施例中,为了便于管理发送地址空间,在每一个计算机中建立ACPI模拟设备,所述划分发送地址空间包括:在所述ACPI模拟设备中划分出发送地址空间。
在本发明一个实施例中,为了便于管理接收地址空间,在每一个计算机中建立ACPI模拟设备;
所述划分接收地址空间包括:在所述ACPI模拟设备中划分出接收地址空间。
在本发明另一实施例中也提出了一种计算机间数据交换的方法,如图2所示,该方法可以包括步骤如下:
步骤201:利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口;
步骤202:建立每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系;
在该过程中,交换机可为其自身存在的支持QPI协议的各个端口进行编号,如编号可以为端口1,端口2,端口3,端口4,然后,为各个端口对应的计算机建立标识,如:将端口1连接的计算机标识为001,端口2连接的计算机标识为002,端口3连接的计算机标识为003,端口4连接的计算机标识为004,并可为端口与计算机的标识生成信息表,如表1所示。同时,交换机可将该信息表反馈给各个计算机。通过该信息表,交换机可以清楚地定位每个计算机所连接的端口,以能够准确的对数据进行传输。
表1交换机生成的信息表
端口 | 所连接计算机编号 |
1 | 001 |
2 | 002 |
3 | 003 |
4 | 004 |
步骤203:在每一个计算机建立ACPI模拟设备,并在该ACPI模拟设备中划分发送地址空间和接收地址空间;
通过在计算机中建立ACPI模拟设备,可通过访问计算机中ACPI模拟设备,来实现计算机与交换机的信息交互,使计算机内存管理更加规范。在该步骤中,可在每一个计算机建立的ACPI模拟设备划分出两个空间记为空间A和空间B,其中,空间A作为发送地址空间映射到交换机,空间B为接收地址空间对应物理内存,那么,计算机通过触发空间A即可通过交换机发送信息,通过触发空间B即可访问其获取到的其他计算机发送的消息,即计算机通过操作该ACPI设备可实现与远程计算机的信息交互。
值得说明的是,本步骤是发明实施例的最优选择,在该步骤中,可只建立发送地址空间,而接收报文数据仍可采用现有技术完成,或者,可只建立接收地址空间,而发送报文数据仍可采用现有技术完成。当仅建立发送地址空间时,步骤204则仅涉及到对发送地址空间的进一步划分,步骤205也就仅建立了子发送地址空间与计算机编号的对应关系。当仅建立接收地址空间时,步骤204则仅涉及到对接收地址空间的进一步划分,步骤205也就仅建立了子接收地址空间与计算机编号的对应关系。
步骤204:在每一个计算机的ACPI模拟设备中将发送地址空间划分为分别对应于其他每一个计算机的子发送地址空间,将接收地址空间划分为分别对应于其他每一个计算机的子接收地址空间;
该步骤主要是与交换机连接的各个计算机通过获取连接在交换机上的计算机的个数、各个计算机的编号范围以及计算机自身的编号,并根据获取的这些内容,在空间A和空间B中,为其他计算机划分出一定的空间,即将空间A进一步划分为对应于其他计算机的子发送地址空间例如:计算机001为计算机002划分出的子发送地址空间为C-D,为计算机003划分出的子发送地址空间为E-F,为计算机004划分出的子发送地址空间为G-H,将空间B进一步划分为对应于其他计算机的子接收地址空间,例如:计算机001为计算机002划分出的子接收地址空间为O-P,为计算机003划分出的子接收地址空间为Q-R,为计算机004划分出的子接收地址空间为S-T。那么,如果计算机001向计算机002发送报文数据时,将会将自发送空间C-D对应的地址信息放入报文数据中,如果计算机001访问子接收空间地址O-P即可获取到计算机002发送给计算机001的报文数据。值得说明的是,这两个空间A和B的总和占总地址空间的比重很小,使用该空间不会影响到计算机的性能。
步骤205:在每一个支持QPI协议的端口上,设置该端口对应的计算机的ACPI模拟设备中的每一个子发送地址空间和子接收地址空间对应的计算机的标识;
在该步骤中,交换机获取到每个计算机划分空间的信息,并通过这些信息为各个计算机对应的端口生成映射表,如表2所示,交换机为端口1生成的空间地址映射表,即与端口1连接的计算机001为其他计算机划分的地址空间。那么,通过该映射表,交换机能准确的定位报文数据的发送方和接收方的计算机。例如:端口1接收到计算机1的访问请求,该访问请求中包含有地址信息C-D,那么交换机通过解析获取到C-D地址信息,则通过对比映射表可知该地址信息对应计算机002,在端口2,3和4也将分别根据计算机002,003和004的实际分配情况建立类似于表2的表格。
表2交换机为端口1生成的空间地址映射表
步骤206:交换机接收所述至少两个计算机中的第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
交换机可通过与计算机连接的端口接收计算机发送的报文数据,例如:端口1可接收到计算机001发送的报文数据,值得说明的是,该发送到支持QPI协议的第一端口的QPI协议数据中携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间的信息,例如:端口1接收到计算机1的访问请求,该访问请求中包含有地址信息C-D。
步骤207:所述交换机根据所述第二子发送地址空间,查找所述第二子发送地址空间对应的所述第二计算机标识;
也就是说,交换机中的端口1通过解析报文数据,获取到C-D地址信息,则通过对比端口1的映射表可知该地址信息对应计算机002。
步骤208:交换机根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口;
那么,交换机通过信息表知道,该计算机002对应的端口为端口2,那么,该交换机将该报文数据发送给端口2。
步骤209:将在所述第二计算机中所述第一计算机标识对应的第一子接收地址空间的信息写入所述QPI协议数据;
例如:端口2从端口1处获取到报文数据后,端口2将根据端口2的空间地址映射表,将计算机002为计算机001分配的接收地址空间信息写入到报文数据中,同时,可将该报文中原有的地址空间信息删除。
步骤210:所述交换机从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间;
例如:计算机002将根据该修改后的地址空间信息,将该报文数据存入对应的地址空间中,以供后续读取。
步骤211:从所述第二计算机为所述第一计算机划分的第一子接收地址空间中,读取所述QPI协议数据。
在本发明实施例中,所述第一计算机也可以接收其他计算机发送的报文数据,所述第二计算机也可以发送其他计算机发送的报文数据。
另外,值得说明的是,当计算机访问空间A即发送地址空间时,请求会发送到交换机,即空间A与交换机形成映射;当计算机访问空间B即接收地址空间时,请求会发送到该计算机的实际内存,也就是说,计算机通过访问空间B可以直接读取该计算机从其他计算机获取到的报文数据。
如图3所示,本发明实施例提出了一种包括支持QPI协议的至少两个端口的交换机,该交换机包括:
每一个支持QPI协议的端口301,利用QPI总线与一个计算机连接;
接收单元302,用于接收外部第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
确定单元303,用于查找接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
发送单元304,用于从所述第二端口将QPI协议数据发送给所述第二计算机。
在本发明另一实施例中,如图4所示,该交换机进一步包括:第一保存单元401,其中,
所述第一保存单元401,用于保存建立的每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系以及在每一个计算机中划分的分别对应于其他每一个计算机的子发送地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子发送地址空间对应的计算机的标识;
所述接收单元302,进一步用于:接收外部第一计算机发送到支持QPI协议的第一端口的携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间信息的QPI协议数据;
所述确定单元303,进一步用于:根据所述第二子发送地址空间,查找所述第一保存单元中所述第二子发送地址空间对应的所述第二计算机标识,并根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口。
在本发明又一个实施例中,如图5所示,该交换机进一步包括:第二保存单元501、写入单元502,其中,
所述第二保存单元501,用于保存在每一个计算机中划分的分别对应于其他每一个计算机的子接收地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;
所述写入单元502,用于将所述第二保存单元中的所述第二计算机划分的所述第一计算机对应的第一子接收地址空间的信息写入所述QPI协议数据;
所述发送单元304,进一步用于:从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间。
在本发明一个实施例提供了一种计算机间数据交换的系统,如图6所示,该系统包括:交换机601和至少两个计算机602,其中,
所述至少两个计算机,通过QPI总线分别连接到交换机的支持QPI协议的各个端口,其中,
所述至少两个计算机中的每一个计算机,用于发送QPI协议数据给交换机的支持QPI协议的对应于该每一个计算机的端口,接收交换机的支持QPI协议的对应于该每一个计算机的端口发送的QPI协议数据。
在本发明另一实施例中,该计算机数据交换系统中,所述至少两个计算机中的每一个计算机包括发送地址空间(未在图中标示出),该发送地址空间具有对应于其他每一个计算机的子发送地址空间,进一步用于向所述交换机提供子发送地址空间信息。
在本发明另一实施例中,该计算机数据交换系统中,所述至少两个计算机中的每一个计算机包括接收地址空间(未在图中标示出),该接收地址空间具有对应于其他每一个计算机的子接收地址空间,进一步用于根据QPI协议数据携带的所述子接收地址空间信息,将所述QPI协议数据存入所述子接收地址空间信息对应的所述子接收地址空间。
在本发明一个实施例中,该计算机数据交换系统中,所述至少两个计算机中的每一个计算机均包括ACPI模拟设备(未在图中标示出),所述发送地址空间存在于所述ACPI模拟设备中。
在本发明一个实施例中,该计算机数据交换系统中,所述至少两个计算机中的每一个计算机均包括ACPI模拟设备(未在图中标示出),所述接收地址空间存在于所述ACPI模拟设备中。
通过本发明实施例至少达到如下有益效果:
1.可以利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口,这使得交换机可直接通过支持QPI协议的各个端口接收到该支持QPI协议的各个端口连接的计算机发送的QPI协议数据,另外,该交换机通过支持QPI协议的端口将QPI协议数据发送给接收该QPI协议数据的计算机,即实现了计算机间的数据交换,在该数据交换过程中,所采用的QPI协议为高速点对点连接的协议,其在发送的同时也可以接收另一端传输来的数据,而且,QPI连接具有较高的带宽如20位宽的QPI连接其带宽可达惊人的每秒25.6GB。那么,在该交换机采用QPI使得计算机间的数据交换不再受网络带宽的制约,从而,有效地提高了计算机间数据传输效率。
2.本发明实施例建立了计算机标识,并为该计算机标识与所连接的端口建立了对应关系,同时,在每一个计算机上为其他计算机建立了子发送地址空间,另外,该子发送地址与计算机的映射关系也可被交换机的端口获知,那么,在交换机进行数据接收和发送时,其可根据上述两种对应关系准确的找到要发送的目标端口和目标计算机,因此,增加了数据传输的准确性。
3.通过ACPI模拟设备建立的发送地址空间或接收地址空间占用计算机总内存中很小的一部分,计算机可通过访问本发明实施例为其建立的ACPI模拟设备,即可发送或接收数据,因此,该过程不仅不会影响计算机的运行性能,而且可以进一步提高计算机访问请求的效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种计算机间数据交换的方法,其特征在于,利用QPI总线将至少两个计算机分别连接到交换机的支持QPI协议的各个端口;还包括:
所述交换机接收所述至少两个计算机中的第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
所述交换机查找所述至少两个计算机中的接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机;
进一步包括:
建立每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系;
在每一个计算机中划分发送地址空间,并在每一个计算机中将发送地址空间划分为分别对应于其他每一个计算机的子发送地址空间;
在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子发送地址空间对应的计算机的标识;
所述发送到支持QPI协议的第一端口的QPI协议数据中携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间的信息;
所述交换机查找所述至少两个计算机中的接收数据的第二计算机包括:所述交换机根据所述第二子发送地址空间,查找所述第二子发送地址空间对应的所述第二计算机标识;
所述确定所述第二计算机连接的支持QPI协议的第二端口,包括:所述交换机根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口。
2.根据权利要求1所述方法,其特征在于,进一步包括:
在每一个计算机中划分接收地址空间,并在每一个计算机中将接收地址空间划分为分别对应于其他每一个计算机的子接收地址空间;
在每一个支持QPI协议的端口上,设置该端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;
在所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机之前,进一步包括:将在所述第二计算机中所述第一计算机标识对应的第一子接收地址空间的信息写入所述QPI协议数据;
所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机,包括:所述交换机从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间;
在所述交换机从所述第二端口将QPI协议数据发送给所述第二计算机之后,进一步包括:从所述第二计算机为所述第一计算机划分的第一子接收地址空间中,读取所述QPI协议数据。
3.根据权利要求1所述方法,其特征在于,进一步包括:在每一个计算机中建立ACPI模拟设备;
所述划分发送地址空间包括:在所述ACPI模拟设备中划分出发送地址空间。
4.根据权利要求2所述方法,其特征在于,进一步包括:在每一个计算机中建立ACPI模拟设备;
所述划分接收地址空间包括:在所述ACPI模拟设备中划分出接收地址空间。
5.一种交换机,其特征在于,包括支持QPI协议的至少两个端口,包括:
每一个支持QPI协议的端口,利用QPI总线与一个计算机连接;
接收单元,用于接收外部第一计算机发送到支持QPI协议的第一端口的QPI协议数据;
确定单元,用于查找接收数据的第二计算机,确定所述第二计算机连接的支持QPI协议的第二端口;
发送单元,用于从所述第二端口将QPI协议数据发送给所述第二计算机;
进一步包括:第一保存单元,其中,
所述第一保存单元,用于保存建立的每一个计算机的标识与该计算机连接的支持QPI协议的端口的对应关系以及在每一个计算机中划分的分别对应于其他每一个计算机的子发送地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子发送地址空间对应的计算机的标识;
所述接收单元,进一步用于:接收外部第一计算机发送到支持QPI协议的第一端口的携带有对应于所述第一计算机为所述第二计算机划分的第二子发送地址空间信息的QPI协议数据;
所述确定单元,进一步用于:根据所述第二子发送地址空间,查找所述第一保存单元中所述第二子发送地址空间对应的所述第二计算机标识,并根据所述第二计算机的标识,确定所述第二计算机连接的支持QPI协议的第二端口;
和/或,
进一步包括:第二保存单元、写入单元,其中,
所述第二保存单元,用于保存在每一个计算机中划分的分别对应于其他每一个计算机的子接收地址空间信息和每一个支持QPI协议的端口对应的计算机中的每一个子接收地址空间对应的计算机的标识;
所述写入单元,用于将所述第二保存单元中的所述第二计算机划分的所述第一计算机对应的第一子接收地址空间的信息写入所述QPI协议数据;
所述发送单元,进一步用于:从所述第二端口将携带有所述第一子接收地址空间信息的所述QPI协议数据发送给所述第二计算机为所述第一计算机划分的第一子接收地址空间。
6.一种计算机间数据交换的系统,其特征在于,包括:权利要求5所述的一种交换机和至少两个计算机,其中,
所述至少两个计算机,通过QPI总线分别连接到交换机的支持QPI协议的各个端口,其中,
所述至少两个计算机中的每一个计算机,用于发送QPI协议数据给交换机的支持QPI协议的对应于该每一个计算机的端口,接收交换机的支持QPI协议的对应于该每一个计算机的端口发送的QPI协议数据;
所述至少两个计算机中的每一个计算机包括发送地址空间,该发送地址空间具有对应于其他每一个计算机的子发送地址空间,进一步用于向所述交换机提供子发送地址空间信息;
和/或,
所述至少两个计算机中的每一个计算机包括接收地址空间,该接收地址空间具有对应于其他每一个计算机的子接收地址空间,进一步用于根据QPI协议数据携带的所述子接收地址空间信息,将所述QPI协议数据存入所述子接收地址空间信息对应的所述子接收地址空间。
7.根据权利要求6所述的一种计算机间数据交换的系统,其特征在于,至少包含两个计算机,
所述至少两个计算机中的每一个计算机均包括ACPI模拟设备,所述发送地址空间存在于所述ACPI模拟设备中;
和/或,
所述至少两个计算机中的每一个计算机均包括ACPI模拟设备,所述接收地址空间存在于所述ACPI模拟设备中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510211577.1A CN104935530B (zh) | 2015-04-29 | 2015-04-29 | 一种计算机间数据交换的方法、交换机和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510211577.1A CN104935530B (zh) | 2015-04-29 | 2015-04-29 | 一种计算机间数据交换的方法、交换机和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104935530A CN104935530A (zh) | 2015-09-23 |
CN104935530B true CN104935530B (zh) | 2017-12-19 |
Family
ID=54122504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510211577.1A Active CN104935530B (zh) | 2015-04-29 | 2015-04-29 | 一种计算机间数据交换的方法、交换机和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104935530B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389288A (zh) * | 2015-12-30 | 2016-03-09 | 山东海量信息技术研究院 | 一种支持多分区计算机系统中的数据交互方法 |
CN112260866B (zh) * | 2020-10-20 | 2023-04-07 | 广东工业大学 | 一种类脑计算机专用网络拓扑结构设计方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318275A (zh) * | 2011-08-02 | 2012-01-11 | 华为技术有限公司 | 基于cc-numa的报文处理方法、装置和系统 |
CN102395958A (zh) * | 2011-08-26 | 2012-03-28 | 华为技术有限公司 | 一种数据包的并发处理方法及设备 |
CN103488436A (zh) * | 2013-09-25 | 2014-01-01 | 华为技术有限公司 | 内存扩展系统及方法 |
CN104303174A (zh) * | 2012-06-25 | 2015-01-21 | 英特尔公司 | 通过处理器间互连来隧道传输平台管理消息 |
CN104333500A (zh) * | 2013-07-22 | 2015-02-04 | 华为技术有限公司 | 一种信号转换方法、装置及系统 |
-
2015
- 2015-04-29 CN CN201510211577.1A patent/CN104935530B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318275A (zh) * | 2011-08-02 | 2012-01-11 | 华为技术有限公司 | 基于cc-numa的报文处理方法、装置和系统 |
CN102395958A (zh) * | 2011-08-26 | 2012-03-28 | 华为技术有限公司 | 一种数据包的并发处理方法及设备 |
CN104303174A (zh) * | 2012-06-25 | 2015-01-21 | 英特尔公司 | 通过处理器间互连来隧道传输平台管理消息 |
CN104333500A (zh) * | 2013-07-22 | 2015-02-04 | 华为技术有限公司 | 一种信号转换方法、装置及系统 |
CN103488436A (zh) * | 2013-09-25 | 2014-01-01 | 华为技术有限公司 | 内存扩展系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104935530A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12341686B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US9672143B2 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
US11061850B2 (en) | Multiple transaction data flow control unit for high-speed interconnect | |
CN108984465A (zh) | 一种消息传输方法及设备 | |
WO2015027806A1 (zh) | 一种内存数据的读写处理方法和装置 | |
WO2016074619A1 (zh) | 基于PCIe总线的数据传输方法和装置 | |
CN114556881B (zh) | 一种地址翻译方法及装置 | |
WO2022141250A1 (zh) | 数据传输方法和相关装置 | |
CN107423180A (zh) | 一种固态硬盘及其诊断方法 | |
CN109478171A (zh) | 提高openfabrics环境中的吞吐量 | |
CN104598430B (zh) | 一种cpu互联扩展系统的网络接口互联设计与控制系统 | |
CN104935530B (zh) | 一种计算机间数据交换的方法、交换机和系统 | |
WO2024174121A1 (zh) | 一种写数据通路结构和芯片 | |
US10664420B2 (en) | System and method for port-to-port communications using direct memory access | |
CN113923061B (zh) | 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备 | |
CN117792751A (zh) | 一种源mac地址的学习限制方法、装置、计算设备及存储介质 | |
CN115190102B (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN103986798B (zh) | 一种实现系统地址映射的方法及装置 | |
CN112764666B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN119854394B (zh) | 一种响应报文处理方法及系统 | |
CN114793234B (zh) | 消息处理方法、装置、设备和存储介质 | |
CN116756078B (zh) | pcie数据包的通知方法、装置及存储介质 | |
WO2020118721A1 (zh) | 一种多处理器系统及处理器间通信方法 | |
CN107526701A (zh) | 热插拔存储设备及系统 | |
CN119182755A (zh) | 一种确定网络地址的方法和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |