一种业务报文的处理方法及装置与流程

文档序号:12063609阅读:316来源:国知局
一种业务报文的处理方法及装置与流程

本发明涉及报文处理技术领域,具体涉及一种业务报文的处理方法及装置。



背景技术:

当前,通用的主机总线适配器(HBA,Host Bus Adapter)芯片均会存在两个方向的信息流:一种是上行方向信息流(包括数据流和控制流),其从HBA芯片的业务接口进来,通过板内接口(一般是总线和接口标准PCIE接口)送给中央处理器(CPU,Central Processing Unit)处理;另一种是下行方向信息流(包括数据流和控制流),即HBA芯片通过板内接口(一般是PCIE接口)从CPU获取信息流,然后通过HBA芯片的业务接口将信息流发出去,且两个方向的信息流的传输场景可以如图1所示,图1是现有技术公开的信息流的传输场景示意图。

在大多数业务模型中,宽带型业务要求高带宽性能以及低CPU占用率,而单位时间内的操作次数(OPS,Operation Per Second)型业务则是要求在低时延下达到的OPS数量。在实际应用中,上行方向对于CPU系统而言是信息流的接收方向,CPU系统不能提前预知信息流何时到来以及信息流的数量,必须由HBA芯片通过中断的方式告知CPU系统,即HBA芯片通过PCIE总线与CPU系统连接,HBA芯片可以基于PCIE总线通过MSI-X中断(即将上行方向上的不同信息流映射到不同的中断向量上)的方式通知CPU系统,从而让CPU系统处理信息流。由于CPU系统处理的中断数量是有限的,太过巨大的中断数量会严重拖累CPU系统的处理能力,这限制了带宽型业务的数据带宽。

考虑到CPU系统的中断处理压力问题,目前通用的业务报文的处理方式为:通过软件配置,使得HBA芯片在接收到一定数量N的业务报文后向CPU系统上报一次中断,CPU系统接收到一次中断后,根据中断信息判断报文的 数量,从而进行一次中断处理;或当到达特定的延时门限后,即使HBA芯片接收到的业务报文数量没有到达一定数量N,HBA芯片仍然向CPU系统上报一次中断,以使CPU进行中断处理。但是,N的值较大会导致OPS业务模式下的平均时延增加;N的值较小会导致宽带型业务下较高的CPU占用率且限制了数据带宽。可见,当前的业务报文的处理方式存在无法在低CPU占用率与低延时之间取得均衡的问题。



技术实现要素:

本发明实施例公开了一种业务报文的处理方法及装置,能够降低CPU占用率以及报文处理时延。

本发明实施例公开了一种业务报文的处理方法,所述方法包括:

识别接收到的所有业务报文的目标报文类型;

统计不同的所述目标报文类型的业务报文的报文数量,并获取与不同的所述目标报文类型对应的数量阈值,其中,不同的所述目标报文类型对应不同的数量阈值;

当不同的所述目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号,以使所述CPU根据所述中断信号处理所述所有业务报文。

在本发明实施例第一方面的第一种可能的实现方式中,所述获取与不同的所述目标报文类型对应的数量阈值,包括:

根据预先存储的报文类型与数量阈值的对应关系获取与不同的所述目标报文类型对应的数量阈值。

结合本发明实施例第一方面,在本发明实施例第一方面的第二种可能的实现方式中,所述获取与不同的所述目标报文类型对应的数量阈值,包括:

输出用于获取与不同的所述目标报文类型对应的数量阈值的提示信息;

接收针对所述提示信息输入的响应信息,所述响应信息包括与不同的所述目标报文类型对应的数量阈值。

结合本发明实施例第一方面、本发明实施例第一方面的第一种可能的实 现方式或本发明实施例第一方面的第二种可能的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,所述方法还包括:

按照接收所述所有业务报文的顺序向所述CPU发送所述所有业务报文;

所述CPU根据所述中断信号处理所述所有业务报文,包括:

由所述CPU根据所述中断信号以及所述CPU接收所述所有业务报文的顺序处理所述所有业务报文。

结合本发明实施例第一方面,在本发明实施例第一方面的第四种可能的实现方式中,所述目标报文类型包括数据报文类型和控制报文类型。

本发明实施例第二方面公开一种业务报文的处理装置,所述装置包括识别模块、统计模块、获取模块以及通信模块,其中:

所述识别模块,用于识别接收到的所有业务报文的目标报文类型;

所述统计模块,用于统计不同的所述目标报文类型的业务报文的报文数量;

所述获取模块,用于获取与不同的所述目标报文类型对应的数量阈值,其中,不同的所述目标报文类型对应不同的数量阈值;

所述通信模块,用于当不同的所述目标报文类型中的其中一种目标报文类型的业务报文的报文数量到达与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号,以使所述CPU根据所述中断信号处理所述所有业务报文。

在本发明实施例第二方面的第一种可能的实现方式中,所述获取模块获取与不同的所述目标报文类型对应的数量阈值的具体方式为:

根据预先存储的报文类型与数量阈值的对应关系获取与不同的所述目标报文类型对应的数量阈值。

结合本发明实施例第二方面,在本发明实施例第二方面的第二种可能的实现方式中,所述获取模块获取与不同的所述目标报文类型对应的数量阈值的具体方式为:

输出用于获取与不同的所述目标报文类型对应的数量阈值的提示信息;

接收针对所述提示信息输入的响应信息,所述响应信息包括与不同的所 述目标报文类型对应的数量阈值。

结合本发明实施例第二方面、本发明实施例第二方面的第一种可能的实现方式或本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述通信模块,还用于按照接收所述所有业务报文的顺序向所述CPU发送所述所有业务报文;

所述CPU根据所述中断信号处理所述所有业务报文的具体方式为:

由所述CPU根据所述中断信号以及所述CPU接收所述所有业务报文的顺序处理所述所有业务报文。

结合本发明实施例第二方面,在本发明实施例第二方面的第四种可能的实现方式中,所述目标报文类型包括数据报文类型和控制报文类型。

本发明实施例中,识别接收到的所有业务报文的目标报文类型,统计不同的目标业务类型的业务报文的报文数量并获取与不同的目标业务类型对应的数量阈值,其中,不同的目标报文类型对应不同的数量阈值,当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号,以使CPU根据该中断信号处理上述所有业务报文。可见,本发明实施例能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU进行中断处理,这样可以同时满足带宽型业务的低CPU占用率需求以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术公开的信息流的传输场景示意图;

图2是本发明实施例公开的一种业务报文的处理方法的流程示意图;

图3是本发明实施例公开的另一种业务报文的处理方法的流程示意图;

图4是本发明实施例公开的一种业务报文的处理装置的结构示意图;

图5是本发明实施例公开的另一种业务报文的处理装置的结构示意图;

图6是本发明实施例公开的一种业务报文的处理系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种业务报文的处理方法及装置,能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU进行中断处理,这样可以同时满足带宽型业务的低CPU占用率需求以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。以下分别进行详细说明。

请参阅图2,图2是本发明实施例公开的一种业务报文的处理方法的流程示意图。如图2所示,该业务报文的处理方法可以包括以下步骤:

S201、识别接收到的所有业务报文的目标报文类型。

本发明实施例中,每个业务报文都携带有该业务报文的报文标识,且每当接收到业务报文后,可以根据该业务报文的报文标识识别该业务报文的报文类型。

可选的,识别出的目标报文类型可以包括但不限于数据报文类型和控制报文类型,即接收到的业务报文可以包括业务数据报文以及业务控制报文等,本发明实施例不做限定。

S202、统计不同的目标报文类型的业务报文的报文数量。

本发明实施例中,每当识别出新接收到的业务报文的报文类型后,将该报文类型的业务报文的数量加一。

S203、获取与不同的目标报文类型对应的数量阈值。

本发明实施例中,不同的目标报文类型可以对应不同的数量阈值。

在一个可选的实施例中,获取与不同的目标报文类型对应的数量阈值可以包括:

根据预先存储的报文类型与数量阈值的对应关系获取与不同的目标报文类型对应的数量阈值。

在该可选的实施例中,报文类型与数量阈值的对应关系可以预先存储在本地,且报文类型与数量阈值的对应关系可以根据实际处理业务的业务类型动态更新,这样能够在识别出上行业务的业务报文的报文类型后,自动根据报文类型与数量阈值的对应关系得到不同的目标报文类型对应的数量阈值。

在另一个可选的实施例中,获取与不同的目标报文类型对应的数量阈值也可以包括:

输出用于获取与不同的目标报文类型对应的数量阈值的提示信息;

接收针对上述提示信息输入的响应信息,其中,该响应信息包括与不同的目标报文类型对应的数量阈值。

在该可选的实施例中,当识别出接收到的业务报文的目标报文类型后,输出用于获取与不同的目标报文类型对应的数量阈值的提示信息,这样能够使用户根据实际的业务需求输入包括与不同的目标报文类型对应的数量阈值的响应信息,这样提高了业务报文处理的灵活性。

S204、当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号。

本发明实施例中,当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号可以包括:

判断上述不同的目标报文类型的业务报文中是否存在报文数量达到对应的数量阈值的业务报文,若存在,则向CPU发送中断信号,以使CPU根据该中断信号对CPU接收到的业务报文进行处理。

在另一个可选的实施例中,该业务报文的处理方法还可以包括以下操作:

按照接收所有业务报文的顺序向CPU发送接收到的所有业务报文。

在该可选的实施例中,CPU根据上述中断信号处理所有业务报文可以包括:由CPU根据上述中断信号以及CPU接收所有业务报文的顺序处理所有业务报文,这样能够保证不破坏业务报文的顺序。

在该可选的实施例中,按照接收所有业务报文的顺序向CPU发送接收到的所有业务报文可以发生在识别出接收到业务报文的目标报文类型之后且发生在向CPU发送上述中断信号之前,本发明实施例不做限定。

举例来说,假设上述目标报文类型为数据报文类型以及控制报文类型,即接收到的业务报文为业务数据报文以及业务控制报文,且与数据报文类型对应的数量阈值为M,与控制报文类型对应的的数量阈值为1,且假设上行业务报文为命令1的业务报文以及命令2的业务报文,此时,当接收到的业务数据报文(命令1的业务数据报文以及命令2的业务数据报文)的数量达到M或者当接收到业务控制报文(命令1的业务控制报文或命令2的业务控制报文)时,均会向CPU发送中断信号,以使CPU根据中断信号以及CPU接收业务报文(业务数据报文以及业务控制报文)的顺序处理CPU接收到的业务报文。对于OPS型业务而言,当接收到业务控制报文时立即向CPU发送中断信号能够获得低报文处理时延以及低报文抖动时延;对于带宽型业务而言,由于每个命令均包括大量的业务数据报文(即每个命令的业务数据报文的数量大于其业务控制报文的数量),因此,由业务控制报文触发向CPU发送中断信号的次数就会很少,但是当接收到的业务数据报文的数量达到M时,业务数据报文才能够触发向CPU发送中断信号,即每M个业务数据报文触发一次中断,这大大的降低了宽带型业务的中断数量,有效的降低了CPU占用率。

需要说明的是,步骤S202以及步骤S203可以同时执行,也可以先执行步骤S202再执行步骤S203,还可以先执行步骤S203再执行步骤S202,本发明实施例不做限定。

本发明实施例中,识别接收到的所有业务报文的目标报文类型,统计不同的目标报文类型的业务报文的报文数量并获取与不同的目标业务类型对应的数量阈值,其中,不同的目标报文类型对应不同的数量阈值,当不同的目 标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号,以使CPU根据该中断信号处理上述所有业务报文。可见,本发明实施例能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU对接收到的业务报文进行中断处理,这样可以同时满足带宽型业务的低CPU占用率需求以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。

请参阅图3,图3是本发明实施例公开的另一种业务报文的处理方法的流程示意图。其中,图3所示的方法以应用场景为图1所示的“HBA芯片(HBA控制器)+CPU”的应用场景为例。如图3所示,该业务报文的处理方法可以包括以下步骤:

S301、HBA芯片接收上行业务的业务报文,并识别接收到的所有业务报文的目标报文类型。

S302、HBA芯片统计不同的目标报文类型的业务报文的报文数量,并根据HBA芯片中预先存储的报文类型与数量阈值的对应关系获取不同的目标报文类型对应的数量阈值。

S303、HBA芯片将接收到的所有业务报文按照所有业务报文的接收顺序发送至CPU。

S304、CPU接收HBA芯片发送的所有业务报文。

S305、当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量到达与该其中一种目标报文类型对应的数量阈值时,HBA芯片向CPU发送中断信号。

S306、CPU接收HBA芯片发送的中断信号,并根据该中断信号以及接收上述所有业务报文的接收顺序处理上述所有业务报文。

可见,本发明实施例能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU对接收到的业务报文进行中断处理,这样可以同时 满足带宽型业务的低CPU占用率需求以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。

请参阅图4,图4是本发明实施例公开的一种业务报文的处理装置的结构示意图。如图4所示,该业务报文的处理装置可以包括识别模块401、统计模块402、获取模块403以及通信模块404,其中:

识别模块401用于识别接收到的所有业务报文的目标报文类型。

本发明实施例中,每个业务报文都携带有该业务报文的报文标识,且每当接收到业务报文后,识别模块401可以根据该业务报文的报文标识识别该业务报文的报文类型。

可选的,识别模块401识别出的目标报文类型可以包括但不限于数据报文类型和控制报文类型,即业务报文的处理装置接收到的业务报文可以包括业务数据报文以及业务控制报文等,本发明实施例不做限定。

统计模块402用于统计不同的目标报文类型的业务报文的报文数量。

本发明实施例中,每当识别出新接收到的业务报文的报文类型后,识别模块401均会触发统计模块402将该报文类型的业务报文的数量加一。

获取模块403用于获取与不同的目标报文类型对应的数量阈值。

本发明实施例中,不同的目标报文类型可以对应不同的数量阈值。

在一个可选的实施例中,获取模块403获取与不同的目标报文类型对应的数量阈值的具体方式可以为:

根据预先存储的报文类型与数量阈值的对应关系获取与不同的目标报文类型对应的数量阈值。

在该可选的实施例中,报文类型与数量阈值的对应关系可以预先存储在本地(即业务报文的处理装置),且报文类型与数量阈值的对应关系可以根据实际处理业务的业务类型动态更新,这样能够在识别模块401识别出上行业务的业务报文的报文类型后,获取模块403可以自动根据报文类型与数量阈值的对应关系得到不同的目标报文类型对应数量阈值。

在另一个可选的实施例中,获取模块403获取与不同的目标报文类型对应 的数量阈值具体方式也可以为:

输出用于获取与不同的目标报文类型对应的数量阈值的提示信息;

接收针对上述提示信息输入的响应信息,其中,该响应信息包括与不同的目标报文类型对应的数量阈值。

在该可选的实施例中,当识别模块401识别出接收到的业务报文的目标报文类型后,输出用于获取与不同的目标报文类型对应的数量阈值的提示信息,这样能够使用户根据实际的业务需求输入包括与不同的目标报文类型对应的数量阈值的响应信息,这样提高了业务报文处理的灵活性。

通信模块404用于当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号。

本发明实施例中,通信模块404向CPU发送中断信号的具体方式可以为:

判断上述不同的目标报文类型的业务报文中是否存在报文数量达到对应的数量阈值的业务报文,若存在,则向CPU发送中断信号,以使CPU根据该中断信号对CPU接收到的业务报文进行处理。

在一个可选的实施例中,通信模块404还可以用于按照接收所有业务报文的顺序向CPU发送所有业务报文。

CPU根据中断信号处理所有业务报文的具体方式可以为:

由CPU根据中断信号以及CPU接收所有业务报文的顺序处理所有业务报文。

可见,本发明实施例能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU对接收到的业务报文进行中断处理,这样可以同时满足带宽型业务的低CPU占用率需要以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。

请参阅图5,图5是本发明实施例公开的另一种业务报文的处理装置的结构示意图。如图5所示,该业务报文的处理装置可以包括:存储器501、输入 接口502、输出接口503、至少一个处理器504(如CPU)以及至少一个通信总线505,存储器501可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory),如至少一个磁盘存储器,可选的,存储器501还可以是至少一个位于远离前述处理504的存储装置。其中:

通信总线505用于实现这些组件之间的连接通信。

输入接口502用于接收上行业务的业务报文。

存储器501中存储一组程序代码,处理器504调用存储器501中存储的程序代码,用于执行以下操作:

识别输入接口502接收到的所有业务报文的目标报文类型;

统计不同的目标报文类型的业务报文的报文数量,并获取与不同的目标报文类型对应的数量阈值,其中,不同的目标报文类型对应不同的数量阈值。

输出接口503用于当不同的目标报文类型中的其中一种目标报文类型的业务报文的报文数量达到与该其中一种目标报文类型对应的数量阈值时,向CPU发送中断信号,以使CPU根据中断信号处理所有业务报文。

在一个实施例中,处理器504获取与不同的目标报文类型对应的数量阈值的具体方式可以为:

根据预先存储的报文类型与数量阈值的对应关系获取与不同的目标报文类型对应的数量阈值。

在一个实施例中,处理器504获取与不同的目标报文类型对应的数量阈值的具体方式还可以为:

通过输出接口503输出用于获取与不同的目标报文类型对应的数量阈值的提示信息;

通过输入接口502接收针对上述提示信息输入的响应信息,其中,该响应信息包括与不同的目标报文类型对应的数量阈值。

在一个实施例中,输出接口503还可以用于按照输入接口502接收所有业务报文的顺序向CPU发送上述所有业务报文,此时,CPU根据中断信号处理上述所有业务报文的具体方式可以为:

由CPU根据中断信号以及CPU接收上述所有业务报文的顺序处理上述所 有业务报文。

可选的,上述目标报文类型可以包括但不限于数据报文类型以及控制报文类型。

可见,本发明实施例能够通过识别业务报文的报文类型并在任意一种报文类型的业务报文的数量到达对应的数量阈值(又称“聚合粒度”)时向CPU发送中断信号,以使CPU对接收到的业务报文进行中断处理,这样可以同时满足带宽型业务的低CPU占用率需要以及OPS型业务的低报文处理时延以及低报文抖动时延的要求。

请参阅图6,图6是本发明实施例公开的一种业务报文的处理系统的结构示意图。如图6所示,该业务报文的处理系统可以包括CPU以及如图4或如图5所示的业务报文的处理装置,其中,有关业务报文的处理装置以及CPU的描述请具体参见上述实施例,这里不再赘述。

需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例装置中的模块可以根据实际需要进行合并、划分和删减。

本发明实施例中所述模块可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上对本发明实施例所提供的一种业务报文的处理方法及装置进行了详细介绍,本文中应用了具体实例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1