CN103491079B - 一种报文生成装置、服务器以及方法 - Google Patents
一种报文生成装置、服务器以及方法 Download PDFInfo
- Publication number
- CN103491079B CN103491079B CN201310416648.2A CN201310416648A CN103491079B CN 103491079 B CN103491079 B CN 103491079B CN 201310416648 A CN201310416648 A CN 201310416648A CN 103491079 B CN103491079 B CN 103491079B
- Authority
- CN
- China
- Prior art keywords
- message
- feedback
- unit
- address
- generating means
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明适用于备份领域,提供了一种报文生成装置、服务器以及方法,所述报文生成装置包括:接收单元,用于接收报文;分配单元,用于将所述报文进行镜像以发送至至少两个第二节点控制器NC;报文反馈单元,用于接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;输出单元,用于输出所述反馈报文。从而,所述报文生成装置采用镜像技术将报文分配给多个用于协议处理的第二NC以完成协议处理,有效地实现了用于协议处理的NC之间的相互备用。
Description
技术领域
本发明属于备份领域,尤其涉及一种报文生成装置、服务器以及方法。
背景技术
至强(Xeon)作为一种高性能的处理器,受到了服务器领域的青睐。对于一些对可靠性、可用性、服务性(Reliability,Availability,Serviceability,RAS)要求较高的服务器,例如电信、金融等行业,业务基础架构(服务器)一旦出现问题,哪怕只是几分钟的服务中断,所带来的损失也是非常巨大,甚至是不可接受的;因此,对至强的RAS要求越来越高,以搭建一种高效、节能、可靠的业务基础架构。
与此同时,针对包括多个节点控制器(Node Controller,NC)和多个处理器(Central Processing Unit,CPU)组成的服务器,对处理器的RAS要求仅是其中一部分,还要求互联的NC满足RAS;若服务器中的用于协议处理的NC出错,同样导致巨大的损失。图1和图2分别为两种传统的服务器的***架构;从图1看出,该服务器采用单NC互联(因此CPU仅能通过前端总线向一个用于协议处理的NC输出报文),若该用于协议处理的NC出错,将导致整个服务器挂死;从图2示出的服务器看出,该服务器的每个CPU均外接两个前端总线分别与两个NC互联,但是,CPU不支持前端总线的镜像以同时向两个用于协议处理的NC输出报文(即在同一时间,仅能从一条前端总线输出报文,而另一条则不能同时输出报文),因此,无法双用于协议处理的NC的相互备用。
因此,当服务器中的一个处理器需要从其它的某个处理器获取数据时,若经过的某个用于协议处理的NC出错,则无法实现上述两个处理器之间的数据通信。
发明内容
本发明实施例的目的在于提供一种报文生成装置、服务器以及方法,以解决处理器无法通过前端总线向多个用于协议处理的NC发送报文以实现多个用于协议处理的NC之间互备的问题。
第一方面,一种报文生成装置,所述报文生成装置包括:
接收单元,用于接收报文;
分配单元,用于将所述报文进行镜像以发送至至少两个第二节点控制器NC;
报文反馈单元,用于接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
输出单元,用于输出所述反馈报文。
结合第一方面,在第一方面的第一种可能的实现方式中,所述报文生成装置还包括:
地址列表单元,用于保存所述报文的操作地址,所述操作地址为对所述报文进行协议处理所需访问的地址;
判断单元,用于若所述地址列表单元未存储有所述接收单元接收到的所述报文的操作地址,则由所述分配单元将所述报文进行镜像以发送至至少两个第二NC,并在所述地址列表单元中保存所述接收到的所述报文的操作地址。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述报文生成装置还包括:
等待单元,用于在等待队列中添加所述接收单元接收到的所述报文;
所述判断单元,还用于:
若所述地址列表单元已存储有所述接收单元接收到的所述报文的操作地址,则由所述等待单元在等待队列中添加所述接收单元接收到的所述报文。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二 种可能的实现方式,在第一方面的第三种可能的实现方式中,所述分配单元,还用于:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述报文生成装置还包括:
过滤单元,用于若所述报文反馈单元第一次接收到所述反馈报文,则由所述输出单元输出所述反馈报文,并记录所述反馈报文的报文特征值,删除所述资源号,若所述报文反馈单元最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表单元中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述接收单元包括:
快速通道互联QPI接口,用于接收来自所述处理器的报文;
一个或多个节点互联NI接口,每个所述NI接口接收来自对应的一个所述第一NC的报文;
结合第一方面或者第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述输出单元,具体用于:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
第二方面,一种服务器,所述服务器包括第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式或者第一方面的第五种可能的实现方式或者第一方面的第六种可能的实现方式提供的报文生成装置。
第三方面,一种报文生成方法,所述报文生成方法包括:
接收报文;
将所述报文进行镜像以发送至至少两个第二NC;
接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
输出所述反馈报文。
结合第三方面,在第三方面的第一种可能的实现方式中,所述报文生成方法还包括:
判断地址列表中是否存储有接收到的所述报文的操作地址,若否,则将所述报文进行镜像以发送至至少两个所述第二NC,并在所述地址列表中保存所述报文的操作地址。
结合第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述报文生成方法还包括:
若所述地址列表已存储有接收到的所述报文的操作地址,则在等待队列中添加所述报文。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述将所述报文进行镜像以发送至至少两个第二NC的步骤,还包括:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述报文生成方法还包括:
若第一次接收到所述反馈报文,则输出所述反馈报文,并记录所述反馈报文的报文特征值,删除所述资源号;
若最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表中删除在执行协议处理并生成所述反馈报文前的报文的操作地 址。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式或者第三方面的第三种可能的实现方式或者第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述接收报文的步骤包括:
从QPI接口接收来自处理器的报文;
从一个或多个NI接口接收来自一个或多个对应的第一NC的报文;
结合第三方面或者第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述输出所述反馈报文的步骤,具体为:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
在本发明中,报文生成装置采用镜像技术将报文分配给多个用于协议处理的第二NC以完成协议处理,有效地实现了用于协议处理的NC之间的相互备用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是背景技术提供的服务器的网络架构图;
图2是背景技术提供的另一服务器的网络架构图;
图3是本发明实施例一提供的一种报文生成装置的组成结构图;
图4是本发明实施例二提供的另一种报文生成装置的组成结构图;
图5是本发明实施例二提供的基于报文生成装置的服务器的组成结构图;
图6是本发明实施例二提供的基于实施例一提供的报文生成装置可能引发 的一种两个第二NC对同一报文进行协议处理时的报文处理流程图;
图7是发明实施例三提供的一种报文生成装置的具体结构图;
图8是发明实施例四提供的一种报文生成方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
需要说明的是,本发明实施例提供一种报文生成装置,适用于服务器,其中,服务器包括多个处理器和多个NC,其中,每个处理器均通过一个报文生成装置与多个NC通信。其中,NC包括至少两个用于协议处理的第二NC,并且该报文生成装置连接在每个第二NC与处理器之间。与此同时,所述NC包括与所述报文生成装置连接的一个或多个第一NC;其中,所述第一NC可以为所述第二NC,也可以不为所述第二NC。
值得说明的是,对于所述报文生成装置接收到的报文,所述报文生成装置会确定至少两个用于协议处理的第二NC;并且,针对接收到的不同报文,可能是同一所述第二NC进行协议处理。
从而,当所述报文生成装置接收到来自处理器的报文或来自第一NC的报文时,所述报文生成装置能够实现对报文的镜像并分发至至少两个用于协议处理的NC以对该报文进行协议处理,根据所述反馈报文包括的反馈地址和报文类型以向第一NC或处理器反馈。从而,在包括多个处理器和多个NC的服务器中,有效地提高了处理器与其它的处理器之间的数据通信的RAS。
实施例一:
图3示出了本实施例提供的报文生成装置的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分,详述如下:
一种报文生成装置,所述报文生成装置包括:
接收单元31,用于接收报文;
分配单元32,用于将所述报文进行镜像以发送至至少两个第二NC;
报文反馈单元33,用于接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
输出单元34,用于输出所述反馈报文。
在本实施例中,接收单元31接收所述报文;由于用于协议处理的第二NC为多个,则将所述报文进行镜像以同时向多个第二NC发送;所述第二NC完成协议处理后会生成所述反馈报文并实时向报文生成装置反馈;待输出单元34接收到反馈的报文后,实时向指定的处理器或所述第一NC反馈。
作为本发明另一实施例,接收单元31接收所述报文;当用于协议处理的第二NC为一个时,向该个第二NC发送所述报文;待输出单元34接收到该个第二NC反馈的报文后,实时向指定的处理器或第二NC反馈。
作为本发明一实施例,所述报文包括:来自与所述报文生成装置连接的所述处理器的报文,或来自与所述报文生成装置连接的一个或多个第一NC的报文。
需要说明的是,所述来自第一NC的报文包括所述反馈报文。
图5示出了本实施例提供的基于报文生成装置的服务器的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分,
优选的是,针对上述两种报文,分别从不同的接口接收,因此所述接收单元31包括:
快速通道互联(QuickPath Interconnect,QPI)接口,用于接收来自处理器的报文;
一个或多个节点互联(Node Interconnect,NI)接口,每个所述NI接口接收来自对应的一个所述第一NC的报文。
需要说明的是,一个所述NI接口与一个所述第一NC连接,因此,一个所 述NI接口接收来自对应的该第一NC的报文。
这样,由于来自处理器的报文的报文类型与来自所述第一NC的报文的报文类型存在不同,和/或由于来自处理器的报文的数据通信格式与来自所述第一NC的报文的数据通信格式可能存在不同,因此,报文生成装置采用QPI接口对来自处理器的报文进行报文的匹配接收,采用NI接口对来自对应的所述第一NC的报文进行匹配接收。
优选的是,所述输出单元34,具体用于:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
需要说明的是,所述反馈地址为:处理器用于接收所述反馈报文的地址或所述第一NC用于接收所述反馈报文的地址;待获取到所述反馈报文的所述反馈地址,通过所述QPI接口发送所述反馈报文至所述处理器,或通过某个NI接口发送所述反馈报文至对应的所述第一NC。
需要说明的是,所述QPI接口接收/发送报文的报文类型与所述NI接口接收/发送报文的报文类型不同。这样,需要根据所述反馈报文包括的反馈地址和报文类型,确定是通过所述QPI接口向处理器发送所述反馈报文,或确定通过哪个所述NI接口向对应的所述第一NC发送所述反馈报文。
实施例二:
在本实施例中,基于实施例一提供的报文生成装置,对于接收单元31接收到的一份所述报文,报文生成装置包含的输出单元34仅输出一份所述反馈报文。
正常情况下,同一所述报文经过多个所述第二NC进行协议处理后生成的所述反馈报文应该是一样的,因此本实施的输出单元34可以仅输出一份所述报文对应的所述反馈报文。
需要说明的是,一个所述第二NC对多个所述报文进行协议处理时,采用轮询方式决定多个所述报文之间的处理顺序。当接收单元31接收到的多份报文 是使用不同的操作地址的数据以完成协议处理时,多份所述报文在每个所述第二NC中仅对对应的操作地址进行读/写操作,从而待报文反馈单元33接收到所述反馈报文后,输出单元34输出的所述反馈报文会是一样的。
但是,当接收单元31接收到的多份报文中存在对同一操作地址进行读/写操作的至少两份报文时,由于对同一操作地址进行读/写操作的报文的处理顺序不同,可能会产生异常(同一所述报文经过协议处理后生成不同的所述反馈报文);以图6所示的报文处理流程为例,详述如下:
其中,CPU0、CPU1为不同的处理器;HA为存储器;NC0为所述第一NC,NC1和NC2为不同的所述第二NC。报文生成装置的NI接口和QPI接口分别外接NC0和CPU0,RdInvOwn、SnpInvOwn、WbMtoI、WbIData、SnpInvOwn、Cmp、RspI、RSPFwdI_DataM、DataC_M、RspFwdI、Cmp、WBIData、WBCmp、DataC_E_Cmp均为报文;CPU1为了从CPU0的某个地址读取数据(CPU1从CPU0的某个地址读取数据的操作的报文流向如图6中的虚线所示),向存储器发送RdInvOwn,然后存储器向NC0发送SnpInvOwn,然后报文生成装置的接收单元31从NI接口接收NC0发送的SnpInvOwn。CPU0为了向HA写数据(CPU0向HA写数据的操作的报文流向如图6中的实线所示),向报文生成装置发送WbIData、WbMtoI;报文生成装置的接收单元31从QPI接口接收CPU0发送的WbIData、WbMtoI;
若分配单元32同时将SnpInvOwn、WbIData和WbMtoI都分别分配给NC1和NC2后,无论是在NC1或NC2中,来自CPU0的WbIData和来自NC0的SnpInvOwn都是需要使用同一操作地址完成协议处理;与此同时,NC1或NC2都是采用轮询方式决定WbIData和SnpInvOwn的处理顺序。由于NC1先处理来自NC0的SnpInvOwn后处理来自CPU0的WbIData,则NC1向报文生成装置反馈SnpInvOwn,输出单元34根据SnpInvOwn的报文类型和反馈地址(CPU0)通过QPI接口向CPU0输出SnpInvOwn以从该某个地址读取数据,待NC1处理完WbIData后,直接通过QPI接口向CPU0输出Cmp(即结束CPU0 向HA写数据的操作,但未实现该操作)以;然后,CPU0通过QPI接口向报文生成装置发送RspI,报文生成装置将NC1完成协议处理后生成的RSPFwdI_DataM通过NI接口反馈至NC0,然后,NC0向CPU1反馈DataC_M(即结束CPU1向CPU0的某个地址读取数据的操作,并实现了该操作)。由于NC2先处理来自CPU0的WbIData后处理来自NC0的SnpInvOwn,则NC2向报文生成装置反馈WBIData;输出单元34根据WBIData的报文类型和反馈地址(NC0),通过NI接口向NC0发送WBIData,然后,NC0向HA发送WbMtoI和WbIData以实现向HA中的指定地址写数据,然后HA向NC0反馈Cmp,然后报文生成装置的NI接口接收到NC0发送的WBCmp,报文生成装置将NC2完成协议处理后生成的Cmp反馈CPU0,然后报文生成装置将NC2完成协议处理来自NC0的SnpInvOwn后生成的RspI通过NI接口反馈NC0,然后NC0向HA反馈RspI,然后HA向CPU1反馈DataC_E_Cmp(即结束CPU1向CPU0的某个地址读取数据的操作,但未实现该操作)。
由于NC1先处理来自NC0的SnpInvOwn后处理来自CPU0的WbIData,对SnpInvOwn完成协议处理后生成的报文为SnpInvOwn,对WbIData完成协议处理后生成的报文为Cmp;由于NC2先处理来自CPU0的WbIData后处理来自NC0的SnpInvOwn,对SnpInvOwn完成协议处理后生成的报文为RspI,对WbIData完成协议处理后生成的报文为WBIData。从而导致CPU1向CPU0的某个地址读取数据的操作失败或CPU0向HA写数据的操作失败。
从而,当接收单元31接收到的多份报文中存在对同一操作地址进行读/写操作的至少两份报文时,输出单元34可能会输出不同的所述反馈报文,导致服务器无法识别,也无法实现同一服务器中的多个用于协议处理的第二NC之间实现相互备份。
为此,为了保证输出单元34仅输出一份所述反馈报文,并且为了避免需要访问同一操作地址以完成协议处理的多个报文同时被分配单元32分配到第二NC,图4示出了本实施例提供的另一报文生成装置的组成结构,为了便于描述, 仅示出了与本发明实施例相关的部分。
作为本发明一实施例,所述报文生成装置还包括:
地址列表单元41,用于保存所述报文的操作地址,所述操作地址为对所述报文进行协议处理所需访问的地址;
判断单元42,用于若所述地址列表单元41未存储有所述接收单元31接收到的所述报文的操作地址,则由所述分配单元32将所述报文进行镜像以发送至至少两个第二NC,并在所述地址列表单元41中保存所述接收到的所述报文的操作地址。
优选的是,所述操作地址,具体为:所述报文中记载的、进行协议处理时需要访问的内存地址。
需要说明的是,针对分配单元32分配给至少两个所述第二NC以进行协议处理的所有所述报文,直到每个所述第二NC均反馈所述反馈报文之前,所述地址列表单元41一直存储有所述报文对应的操作地址;即,当所有的所述第二NC都反馈了所述反馈报文以后,才会在地址列表单元41中删除所述反馈报文对应的未进行协议处理前的所述报文的操作地址。
这样,对于接收单元31刚接收到的所述报文,从所述报文中提取出所述报文的操作地址;若判断单元42在地址列表单元41中遍历查找后,未查找到与接收到的所述报文的操作地址相同的操作地址,则在地址列表单元41中添加接收到的所述报文的操作地址;与此同时,执行分配单元32以让多个所述第二NC同时对所述报文进行协议处理。
优选的是,与此同时,所述报文生成装置还包括:
所述等待单元43,用于在等待队列中添加所述接收单元31接收到的所述报文;
所述判断单元42,还用于:
若所述地址列表单元41已存储有所述接收单元31接收到的所述报文的操作地址,则由所述等待单元43在等待队列中添加所述接收单元接收到的所述报 文。
需要说明的是,待所述等待队列中的所述报文的操作地址在所述地址列表单元41中删除时,则执行分配单元32以使得所述第二NC对所述报文进行协议处理。
这样,针对刚接收到的所述报文对应的操作地址已在所述地址列表单元41中有相同记录的情况,判断单元42跳转到等待单元43执行,同时将接收到的所述报文添加入等待队列中。
优选的是,在分配单元32将所述报文分配给多个第二NC进行协议处理时,为了保证每个所述第二NC反馈的所述反馈报文均是一样的,所述分配单元32,还用于:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
需要说明的是,所述用于执行协议处理的资源包括需要访问的操作地址、存储资源、缓存资源等用于执行协议处理过程中所需的软硬件资源。分配单元32中记录的所述资源号,用于标识所述第二NC执行协议处理时所需的资源。
这样,待所述分配单元32完成所述资源的指定后,每个所述第二NC用于执行协议处理的资源(尤其是执行协议处理过程中需要访问的操作地址)是一样的,从而生成的所述反馈报文也是一样的。
优选的是,由于每个所述第二NC产生的所述反馈报文是一样的,所述报文生成装置还包括:
过滤单元44,用于若所述报文反馈单元33第一次接收到所述反馈报文,则由所述输出单元34输出所述反馈报文,并记录所述反馈报文的报文特征值,删除所述资源号。
需要说明的是,同一所述报文经过所述第二NC进行协议处理后生成的所述反馈报文具有同样的报文特征值;并且,所述报文特征值记载在所述反馈报文中。
这样,对于对同一所述报文,虽然上述的所有的所述第二NC反馈所述反馈报文至报文反馈单元33的到达时间不一样,但是,输出单元34仅发送所述报文反馈单元33最先一次(第一次)接收到的所述反馈报文;于此同时,过滤单元44记录最先一次到达的所述反馈报文的报文特征值,以便于滤除掉后面接收到的、同一所述报文经过协议处理生成的所述反馈报文。
优选的是,所述过滤单元44,还用于:
若所述报文反馈单元33最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表单元41中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
这样,对于对同一所述报文进行协议处理的所有所述第二NC,报文反馈单元33都收到了每个所述第二NC反馈的反馈报文,从而删除所述反馈报文的报文特征值;与此同时,在所述地址列表单元41中删除所述反馈报文对应的在执行协议处理前的报文的操作地址。
与此同时,当等待队列中存在与所述报文需要同一操作地址以完成协议转换的报文时,分配单元32将该等待队列中的、使用同一操作地址的报文进行镜像后发送多个第二NC以执行协议处理;从而,有效地避免了第二NC对使用同一地址的多个报文同时进行协议处理,保证了同一报文进行协议处理后生成的反馈报文是一样的。
作为本发明一实施例,经过预设时间,删除所述反馈报文的报文特征值,从所述地址列表单元41中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
为了避免某个用于协议处理的第二NC出错而未及时向报文反馈单元33反馈所述反馈报文,预先设定所述预设时间。预先设定所述预设时间的另一目的在于:经过所述预设时间后,则表示本次的报文的协议处理已结束,为了避免影响等待队列中使用与所述报文需要同一操作地址的报文,分配单元32及时将该等待队列中的、使用同一操作地址的报文进行镜像后发送多个第二NC以执 行协议处理。
实施例三:
本实施例提供的报文生成装置作为实施例二提供的报文生成装置的一种具体实施例,如图7所示,为了便于描述,仅示出了与本发明实施例相关的部分。其中,需要说明的是,为了示意报文生成装置和多个第二NC之间的报文处理流程,仅以两个第二NC为例。
其中,本实施例提供的报文生成装置包括:
QPI PHY Rx为:通过QPI接口接收来自处理器的报文的物理层接收端;
QPI Link Rx为:通过QPI接口接收来自处理器的报文的数据链路层接收端;
QPI PHY Tx为:通过QPI接口发送反馈报文至处理器的物理层发送端;
QPI Link Tx为:通过QPI接口发送反馈报文至处理器的数据链路层发送端;
NI PHY Rx为:通过NI接口接收来自第一NC的报文的物理层接收端;
NI Link Rx为:通过NI接口接收来自第一NC的报文的数据链路层接收端;
NI PHY Tx为:通过NI接口发送反馈报文至第一NC的物理层发送端;
NI Link Tx为:通过NI接口发送反馈报文至第一NC的数据链路层发送端;
H PHY Rx为:接收第二NC反馈的反馈报文的物理层接收端;
H Link Rx为:接收第二NC反馈的反馈报文的数据链路层接收端;
H PHY Tx为:向第二NC发送报文的物理层发送端;
H Link Tx为:向第二NC发送报文的数据链路层发送端;
地址列表管理模块(Addr Table Management,ATM),用于保存第二NC正在进行协议处理的报文需要访问的操作地址,以及保存等待队列中的报文的地址。
ID管理模块(ID Management,IDM),用于保存资源号,所述资源号与所述第二NC用于执行协议处理的资源具有映射关系。
报文过滤模块(Packet Filter,PF),用于对多份反馈报文进行筛选和排序,并且同样的反馈报文仅向QPI Link Tx或NI Link Tx发送一份;
报文路由(H ROUT),用于对报文进行镜像以发送至多个第二NC。
需要说明的是,实施例二提供的接收单元31与本实施例提供的QPI PHY Rx、QPILink Rx、QPI接口、NI PHY Rx、NI Link Rx以及NI接口的组合具有相同功能;实施例二提供的发送单元与本实施例提供的QPI PHY Tx、QPI LinkTx、QPI接口、NI PHY Tx、NI Link Tx以及NI接口的组合具有相同功能;实施例二提供的分配单元32与本实施例提供的IDM、HROUT、H PHY Tx以及H Link Tx的组合具有相同功能;实施例二提供的报文反馈单元33与本实施例提供的H PHY Rx和H Link Rx的组合具有相同功能;实施例二提供的过滤单元44与本实施例提供的PF具有相同功能;实施例二提供的第二NC与本实施例提供的第二NC具有相同功能;实施例二提供的地址列表单元41、判断单元42、以及等待单元43与本实施例提供的ATM具有相同功能。
在本实施例中,QPI接口接收到来自处理器的报文,该报文经过QPI PHY Rx和QPILink Rx到达H ROUT;NI接口接收来自所述第一NC的报文,该报文经过NI PHY Rx和NI LinkRx到达H ROUT。
若ATM中已记载对H ROUT接收到的报文进行协议处理所需的操作地址,则ATM将所述报文的地址添加到等待队列中。
若ATM中未记载对H ROUT接收到的报文进行协议处理所需的操作地址,则ATM记录所述报文的操作地址;然后,IDM为每个第二NC指定资源,并记录对应的资源号;然后,IDM将资源号发送至H ROUT,H ROUT将资源号和镜像生成的报文一起发送至多个第二NC(其中,报文和资源号由H ROUT分发后,分别经过H Link Tx、H PHY Tx后发送至对应的第二NC)。
每个第二NC反馈的反馈报文经过对应的H PHY Rx和H Link Rx发送至PF。若PF是第一次接收到所述反馈报文,则记录所述反馈报文的报文特征值,同时,与PF保持通信的IDM删除协议处理生成所述反馈报文对应的资源号; 同时,根据所述反馈报文的反馈地址和报文类型,确定是经过QPI PHY Tx、QPI LinkTx、QPI接口向处理器发送所述反馈报文,还是经过NI PHY Tx、NI Link Tx、NI接口向所述第一NC发送所述反馈报文。PF继续接收另外的、第二NC反馈的反馈报文,直到最后一次接收到所述反馈报文(由于在H ROUT分发所述报文时,已经确定了第二NC的个数,一个第二NC会生成一份所述反馈报文,因此,根据第二NC的个数可以确定是否为最后接收的一份反馈报文),删除所述反馈报文的报文特征值,与PF保持通信的ATM删除执行协议处理并生成所述反馈报文前的报文的操作地址。由于PF仅对第一次接收到的所述反馈报文通过QPI接口或NI接口反馈,对后面接收到的相同的反馈报文进行滤除而并不通过QPI接口或NI接口反馈。从而实现了多个第二NC之间的互备的,保证了对于一份报文仅反馈一份反馈报文以最终保证同一服务器中的处理器之间的通信不存在多余的报文。
实施例四:
本实施例提供的报文生成方法与实施例一提供的报文生成装置相互适用;图8示出了本实施例提供的报文生成方法的实现流程,为了便于描述,仅示出了与本发明实施例相关的部分,其实现流程详述如下:
步骤S11、接收报文;
步骤S12、将所述报文进行镜像以发送至至少两个第二NC;
步骤S13、接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
步骤S14、输出所述反馈报文。
这样,步骤S12对所述报文进行镜像后可以发送给多个第二NC同时进行协议处理,从而实现多个用于协议处理的第二NC之间的互备。
报文生成装置接收所述报文后,依次执行步骤S11、步骤S12、步骤S13、步骤S14,报文生成装置将输出所述反馈报文。
作为本发明一实施例,所述报文包括:来自与报文生成装置连接的处理器 的报文,或来自与所述报文生成装置连接的一个或多个第一NC的报文。
需要说明的是,所述来自所述第一NC的报文包括所述反馈报文。具体地,服务器包括多个NC、多个处理器和对应个数的报文生成装置,其中一处理器与另一处理器之间的通信可能需要经过其中的多个NC进行报文传输,因此,可能存在以下情况:一处理器向一报文生成装置发送的报文,该报文生成装置分配给多个第二NC进行协议处理生成的所述反馈报文,在进入另一处理器之前,需要将所述反馈报文作为所述报文从NI接口发送至与所述另一处理器连接的另一报文生成装置,该另一报文生成装置对所述反馈报文进行再一次协议处理后发送至所述另一处理器。
与此同时,所述步骤S11包括:
从QPI接口接收来自处理器的报文;
从一个或多个NI接口接收来自一个或多个对应的第一NC的报文。
需要说明的是,一个所述NI接口与一个所述第一NC连接,因此,一个所述NI接口接收来自对应的该第一NC的报文。
优选的是,所述步骤S14,具体为:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
实施例五:
基于实施例四提供的报文生成方法,本实施例做了进一步优化:对于步骤S11接收到的一份所述报文,执行步骤S14时仅输出一份对应的所述反馈报文。
需要说明的是,本实施例提供的报文生成方法与实施例二提供的报文生成装置相互适用;
作为本发明一实施例,为了保证仅输出一份所述反馈报文,并且为了避免需要访问同一操作地址以完成协议处理的多个报文同时被分配到第二NC,所 述报文生成方法还包括:
判断地址列表中是否存储有接收到的所述报文的操作地址,若否,则将所述报文进行镜像以发送至至少两个所述第二NC(即执行步骤S12),并在所述地址列表中保存所述报文的操作地址。
优选的是,所述报文生成方法还包括:
若所述地址列表已存储有接收到的所述报文的操作地址,则在等待队列中添加所述报文。
作为本发明一实施例,在步骤S12将所述报文分配给多个第二NC进行协议处理之前,为了保证每个所述第二NC反馈的所述反馈报文均是一样的,所述步骤S12,还包括:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
作为本发明一实施例,由于每个所述第二NC产生的所述反馈报文是一样的,而本实施例希望仅执行一次步骤S14以输出一份所述反馈报文,因此,所述报文生成方法还包括:
若第一次接收到所述反馈报文,则输出所述反馈报文(即执行步骤S14),并记录所述反馈报文的报文特征值,删除所述资源号。
优选的是,所述报文生成方法还包括:
若最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
在发明本实施例中,服务器包括多个处理器和多个NC,其中,每个处理器均通过一个报文生成装置与多个NC(所述NC包括至少两个第二NC)通信;因此,服务器中的一处理器与另一处理器进行数据通信时,与处理器连接的报文生成装置,通过接收单元从QPI接口接收来自处理器的报文;分配单元将所述报文进行镜像以发送至至少两个第二NC;报文反馈单元接收所述第二NC反 馈的反馈报文;输出单元输出所述反馈报文;与此同时,对于输入单元接收的一份报文,通过地址列表单元、判断单元、等待单元以及过滤单元的协助处理,保证每个用于协议处理的第二NC输出的反馈报文都一样,然后输出单元仅输出一份反馈报文;根据反馈报文的反馈地址和报文类型,从QPI接口向处理器输出反馈报文,或从NI接口向第一NC输出反馈报文。从而实现一处理器的报文经过报文生成装置向第一NC发送报文(反馈报文),该报文经过一个或多个第一NC之间的转发到达与另一处理器相邻的第一NC,该相邻的第一NC将该转发的报文经过报文生成装置生成的报文(反馈报文)向该另一处理器发送以完成一次数据通信;如若该另一处理器需要向该一处理器反馈,则可以通过上述数据通信方式进行反向通信。
在本发明实施例中,报文生成装置采用镜像技术将报文分配给多个第二NC以完成协议处理,有效地实现了用于协议处理的第二NC之间的相互备用。
本领域技术人员可以理解:实施例一和实施例二提供的报文生成装置,可以是运行于服务器的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到或者运行于服务器中。
本领域技术人员可以理解为上述实施例一和实施例二包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本发明实施例还提供一种服务器,所述服务器包括实施例一、实施例二或实施例三提供的报文生成装置。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通 技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (11)
1.一种报文生成装置,其特征在于,所述报文生成装置包括:
接收单元,用于接收报文;
分配单元,用于将所述报文进行镜像以发送至至少两个第二节点控制器NC;
报文反馈单元,用于接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
输出单元,用于输出所述反馈报文;
所述接收单元包括:
快速通道互联QPI接口,用于接收来自处理器的报文;
一个或多个节点互联NI接口,每个所述NI接口接收来自对应的一个第一NC的报文;
所述输出单元,具体用于:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
2.如权利要求1所述的报文生成装置,其特征在于,所述报文生成装置还包括:
地址列表单元,用于保存所述报文的操作地址,所述操作地址为对所述报文进行协议处理所需访问的地址;
判断单元,用于若所述地址列表单元未存储有所述接收单元接收到的所述报文的操作地址,则由所述分配单元将所述报文进行镜像以发送至至少两个第二NC,并在所述地址列表单元中保存所述接收到的所述报文的操作地址。
3.如权利要求2所述的报文生成装置,其特征在于,所述报文生成装置还包括:
等待单元,用于在等待队列中添加所述接收单元接收到的所述报文;
所述判断单元,还用于:
若所述地址列表单元已存储有所述接收单元接收到的所述报文的操作地址,则由所述等待单元在等待队列中添加所述接收单元接收到的所述报文。
4.如权利要求3所述的报文生成装置,其特征在于,所述分配单元,还用于:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
5.如权利要求4所述的报文生成装置,其特征在于,所述报文生成装置还包括:
过滤单元,用于若所述报文反馈单元第一次接收到所述反馈报文,则由所述输出单元输出所述反馈报文,并记录所述反馈报文的报文特征值,删除所述资源号,若所述报文反馈单元最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表单元中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
6.一种服务器,其特征在于,所述服务器包括权利要求1至5任一项所述的报文生成装置。
7.一种报文生成方法,其特征在于,所述报文生成方法包括:
接收报文;
将所述报文进行镜像以发送至至少两个第二节点控制器NC;
接收所述第二NC反馈的反馈报文,所述反馈报文由所述第二NC对所述报文进行协议处理后生成;
输出所述反馈报文;
所述接收报文的步骤包括:
从快速通道互联QPI接口接收来自处理器的报文;
从一个或多个节点互联NI接口接收来自一个或多个对应的第一NC的报文;
所述输出所述反馈报文的步骤,具体为:
根据所述反馈报文包括的反馈地址和报文类型,从所述NI接口输出所述反馈报文或从所述QPI接口输出所述反馈报文。
8.如权利要求7所述的报文生成方法,其特征在于,所述报文生成方法还包括:
判断地址列表中是否存储有接收到的所述报文的操作地址,若否,则将所述报文进行镜像以发送至至少两个所述第二NC,并在所述地址列表中保存所述报文的操作地址。
9.如权利要求8所述的报文生成方法,其特征在于,所述报文生成方法还包括:
若所述地址列表已存储有接收到的所述报文的操作地址,则在等待队列中添加所述报文。
10.如权利要求9所述的报文生成方法,其特征在于,所述将所述报文进行镜像以发送至至少两个第二NC的步骤,还包括:
指定每个所述第二NC用于执行协议处理的资源,记录所述资源对应的资源号。
11.如权利要求10所述的报文生成方法,其特征在于,所述报文生成方法还包括:
若第一次接收到所述反馈报文,则输出所述反馈报文,并记录所述反馈报文的报文特征值,删除所述资源号;
若最后一次接收到所述反馈报文,则删除所述反馈报文的报文特征值,从所述地址列表中删除在执行协议处理并生成所述反馈报文前的报文的操作地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310416648.2A CN103491079B (zh) | 2013-09-12 | 2013-09-12 | 一种报文生成装置、服务器以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310416648.2A CN103491079B (zh) | 2013-09-12 | 2013-09-12 | 一种报文生成装置、服务器以及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103491079A CN103491079A (zh) | 2014-01-01 |
CN103491079B true CN103491079B (zh) | 2017-01-18 |
Family
ID=49831038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310416648.2A Active CN103491079B (zh) | 2013-09-12 | 2013-09-12 | 一种报文生成装置、服务器以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103491079B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615564A (zh) * | 2015-02-05 | 2015-05-13 | 浪潮电子信息产业股份有限公司 | 一种基于qpi总线的数据传输方法及计算机*** |
CN109309615B (zh) * | 2017-07-27 | 2020-07-07 | 华为技术有限公司 | 传输数据的方法和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216815A (zh) * | 2008-01-07 | 2008-07-09 | 浪潮电子信息产业股份有限公司 | 一种双翼可扩展多处理器紧耦合共享存储器体系结构 |
CN102301363A (zh) * | 2011-06-30 | 2011-12-28 | 华为技术有限公司 | 数据处理节点、***及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5550089B2 (ja) * | 2009-03-30 | 2014-07-16 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム、ノードコントローラ、障害回復方式 |
-
2013
- 2013-09-12 CN CN201310416648.2A patent/CN103491079B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216815A (zh) * | 2008-01-07 | 2008-07-09 | 浪潮电子信息产业股份有限公司 | 一种双翼可扩展多处理器紧耦合共享存储器体系结构 |
CN102301363A (zh) * | 2011-06-30 | 2011-12-28 | 华为技术有限公司 | 数据处理节点、***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103491079A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101873339B (zh) | 灵活地将终端逻辑集成到各种平台 | |
CN1316366C (zh) | 网络应用设备的流调度和结构 | |
CN107078969A (zh) | 实现负载均衡的计算机设备、***和方法 | |
JP4763405B2 (ja) | データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ | |
CN101454763B (zh) | 用于在串行总线之间传输数据的网关 | |
CN102291455B (zh) | 分布式集群处理***及其报文处理方法 | |
CN108733604A (zh) | 一种基于modbus通讯协议的485总线智能扩展方法及装置 | |
CN106484322A (zh) | 一种挂载文件***的方法、装置及设备 | |
CN108600045A (zh) | 一种服务链路监控方法及装置 | |
CN106686129A (zh) | 一种负载均衡方法及*** | |
CN101257457A (zh) | 网络处理器复制报文的方法和网络处理器 | |
CN115913937B (zh) | 一种容器多网卡网络配置方法、装置、设备及存储介质 | |
US9275415B2 (en) | System for latency reduction in high frequency trading networks | |
WO2022170790A1 (zh) | 一种数据通信方法及装置 | |
CN113259268A (zh) | 一种支持冗余架构的网口与串口数据转发网关及方法 | |
CN107947950A (zh) | 一种硬件组播出接口表项的下发方法和np线卡板 | |
CN106789287A (zh) | 前端负载均衡器、后端服务器及注册方法 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN108259595A (zh) | 一种服务间异步调用的方法及*** | |
CN103491079B (zh) | 一种报文生成装置、服务器以及方法 | |
CN101808037B (zh) | 交换网中流量管理的方法和装置 | |
CN106713010B (zh) | 一种航电网络***的通信方法及*** | |
CN110290163A (zh) | 一种数据处理方法及装置 | |
CN109446200A (zh) | 一种数据处理的方法及装置 | |
WO2021148014A1 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310000, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |