CN105337896A - 报文处理方法和装置 - Google Patents
报文处理方法和装置 Download PDFInfo
- Publication number
- CN105337896A CN105337896A CN201410360849.XA CN201410360849A CN105337896A CN 105337896 A CN105337896 A CN 105337896A CN 201410360849 A CN201410360849 A CN 201410360849A CN 105337896 A CN105337896 A CN 105337896A
- Authority
- CN
- China
- Prior art keywords
- message
- buffer queue
- queue
- looking ahead
- buffer
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种报文处理方法和装置,该报文处理方法包括:将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列;其中,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,有效解决了报文的处理过程中调度的阻塞,多个处理器核闲置,造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种报文处理方法和装置。
背景技术
中央处理器(英文:CentralProcessingUnit,简称CPU)包括多个处理器核,可以并发处理多个报文,对于多个不同的流报文一般使用保序控制单元进行多个报文的处理顺序的控制。
现有技术中,对于多个流的报文的处理方式为顺序处理。例如:在任务缓存中包括两个缓存队列Q0、Q1,队列Q0中依次加入了T流报文T1、T2以及K流报文K1、K2;队列Q1中依次加入了G流报文G1、G2,在当前保序控制单元的保序模式配置为原子操作(英文:ATOMIC)时,队列Q0中的报文T1被取出给其中一个处理器核进行处理,并将处理信息记录在保序队列中,在报文T1没有被处理完成时,保序队列会阻止报文T2被其他处理器核进行处理,进而导致后续报文K1、K2不能被别的处理器核进行处理,另外,若队列Q0和队列Q1配置了严格的优先级关系,则在队列Q0的所有报文没有全部处理完成时,队列Q1中的G流的报文也不能被处理。
但是,上述的处理方法中,处理器核对报文T1没有处理完成时,同一队列中的其他流的报文不能进行处理,且在队列之间有优先级关系时,别的队列中的报文也不能进行处理,导致调度处理的阻塞,造成整个CPU对报文的处理的效率较低。
发明内容
本发明实施例提供一种报文处理方法和装置,以克服报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题。
本发明实施例第一方面提供一种报文处理方法,包括:
将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列;其中,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;
将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
结合第一方面,在第一方面的第一种可能的实施方式中,所述将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理之后,还包括:
在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述预取缓存队列的数量大于或等于一个。
结合第一方面、第一方面的第一种和第二种中的任一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述待处理的报文的流类别包括第一类流和第二类流,则所述将缓存队列中的待处理的报文取出并按照所述报文的流类别将所述报文分别放入不同的预取缓存队列,包括:
将所述缓存队列中的报文取出;
将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述将每个所述预取缓存队列中的报文分别分配不同的处理器核进行处理,并在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息,包括:
将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,在所述保序队列中记录所述第一类流的报文处理信息,并将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,在所述保序队列中记录所述第二类流的报文处理信息。
本发明实施例第二方面提供一种报文处理装置,包括:
处理模块,用于将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;
分配模块,用于将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
结合第二方面,在第二方面的第一种可能的实施方式中,还包括:
记录模块,用于在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述处理模块建立的所述预取缓存队列的数量大于等于一个。
结合第二方面、第二方面的第一种和第二种中的任一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述待处理的报文的流类别包括第一类流和第二类流,则所述处理模块具体用于:
将所述缓存队列中的报文取出;
将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,包括:
所述分配模块还用于将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,所述记录模块在所述保序队列中记录所述第一类流的报文处理信息;
所述分配模块还用于将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,所述记录模块在所述保序队列中记录所述第二类流的报文处理信息。
本发明实施例第三方面提供一种中央处理器CPU,包括:第二方面、第二方面的第一种、第二种、第三种至第四种实施方式中的任一实施方式提供的报文处理装置和至少两个处理器核。
本发明实施例提供的报文处理方法和装置,通过将缓存队列中的待处理的报文取出并按照报文的流类别将报文分别存入不同的预取缓存队列,再将每个预取缓存队列中的报文分别分配给不同的处理器核进行处理,相较于现有技术直接从缓存队列中取出报文处理,在没有处理完成上一个流的报文时,不能处理同一缓存队列的其他流的报文,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,解决了报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的报文处理方法实施例一的流程图;
图2为本发明提供的报文处理方法实施例二的流程图;
图3为本发明提供的报文处理方法实施例二的处理示意图;
图4为本发明提供的报文处理装置实施例一的结构示意图;
图5为本发明提供的报文处理装置实施例二的结构示意图;
图6为本发明提供的保序控制单元的实施例的结构示意图;
图7为本发明提供的CPU的实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的报文处理方法适用于所有需要进行报文处理或者交互的通信***,可以适用于通信***中的各种设备,例如各类终端设备、各种网元节点例如基站、基站控制器等,该方法具体可以由上述设备中的CPU执行。本发明实施例中出现的CPU为多核CPU。
本发明实施例中出现的任务缓存为CPU中的临时存储器,它的容量比内存小,但是交换速度非常快,在任务缓存中存储的数据是内存中的一小部分,是短时间内CPU即将访问的,当CPU调用大量数据时,可直接从任务缓存中调用,从而加快读取速率。
本发明实施例中出现的缓存队列为设置在任务缓存中的逻辑单元,用于将待处理任务的报文进行缓存。本发明实施例中出现的保序队列为保序控制单元中设置的缓冲待处理的报文的逻辑单元,预取缓存队列为本发明实施例中在上述缓存队列和保序队列之间建立的逻辑单元。
本发明实施例中出现的保序控制单元为一种多核CPU内部用于完成流保序功能的硬件加速器,保序控制单元能控制CPU内的多个处理器核处理同一条流的多个报文时的先后顺序,保证报文按进入顺序完成,不会发生乱序;且属于不同流的报文间可以并发处理,不需要保证不同的流的进入顺序和处理完成顺序一致。
图1为本发明提供的报文处理方法实施例一的流程图,本实施例的执行主体可以是CPU中的保序控制单元,如图1所示,该保序控制单元执行该报文处理方法的具体步骤为:
S101:将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列;其中,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存。
在本实施例中,上述待处理的报文为缓存队列中所有等待处理的报文的统称,该待处理的报文可以为不同流类别的多个报文。保序控制单元在缓存队列和保序队列之间预先建立了预取缓存队列,该预取缓存队列用来将缓存队列中的待处理的报文按照流类别分别分开放置,其中,每个预取缓存队列中可以放置一种流类别的报文,也可以放置多种流类别的报文,对此本发明不做限制。
保序控制单元将缓存队列中的待处理的报文按照缓存队列中当前的报文顺序依次取出,并将所有的待处理的报文按照流类别分别放置在预取缓存队列中。
S102:将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
在本实施例中,保序控制单元调用相应的电路分别将每个预取缓存队列中的报文并行的分配给不同的处理器核进行处理,具体的:可以将每个预取缓存队列中的报文随机分配给不同的处理器核进行处理,也可以根据当前处理器核的闲置情况进行分配,优先分配给闲置的处理器核,本发明实施例对此不做特别限定。
本实施例提供的报文处理方法,通过将缓存队列中的待处理的报文按照报文的流类别将报文分别存入不同的预取缓存队列,再将每个预取缓存队列中的报文分别分配给不同的处理器核进行处理,相较于现有技术直接从缓存队列中取出报文处理,在没有处理完成上一个流的报文时,不能处理同一缓存队列的其他流的报文,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,解决了报文的处理过程中调度的阻塞造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
图2为本发明提供的报文处理方法实施例二的流程图,在上述图1所示的实施例的基础上,所述将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理之后,还包括:在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。在本实施例中,通过记录每个预取缓存队列中的报文处理信息,可供后续查询报文的处理进度,以及处理器核的空闲状态,便于在进行新的报文的处理过程中,能够根据处理器核的空闲状态将新的报文分配给不同的处理器核进行处理,降低处理器核的空闲度,提高报文处理效率。
如图2所示,实际情况下,待处理的报文的流类别可能有很多,本实施例中假设有两种类别的流在缓存队列中,若所述待处理的报文的流类别包括第一类流和第二类流,且这两类流的报文缓存在同一缓存队列中,则具体的报文的处理方法的步骤为:
S201:将缓存队列中的报文取出。
S202:将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
在本实施例中,所述预取缓存队列的数量大于等于一个,具体的个数按照CPU的配置而定,主要考量硬件资源和数据并发要求,可选地,预取缓存队列的数量与处理器核的数量相同。
本实施例中可选择至少有两个预取缓存队列,将第一类流的报文按顺序放入其中一个预取缓存队列,将第二类流的报文按顺序放入与第一类流不同的另一个预取缓存队列,以被保序控制单元调用,并发处理报文。
S203:将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,在所述保序队列中记录所述第一类流的报文处理信息,并将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,在所述保序队列中记录所述第二类流的报文处理信息。
在本实施例中,将分别放置在两个预取缓存队列中的待处理的报文,分别分配给两个不同的处理器核进行处理,并记录每个报文的处理信息,完成保序控制单元对报文的处理。
在上述实施例一和实施例二中,保序控制单元至少包括了:至少一个缓存队列、至少一个预取缓存队列和保序队列,以便对于进入该CPU的报文进行保序处理。
本实施例提供的报文处理方法,通过将缓存队列中的待处理的报文取出,将第一类流报文放入一个预取缓存队列,并将另一类流报文放入另一个预取缓存队列中,再将两个预取缓存队列中的报文分别分配给不同的处理器核进行处理,并在保序队列中分别记录每个预取缓存队列中的报文的处理信息,相较于直接从缓存队列中取出报文处理,在没有处理完成上一个流的报文时,不能处理同一缓存队列的其他流的报文的现有技术,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,有效解决了报文的处理过程中同一缓存队列中调度的阻塞,以及多个处理器核闲置的问题,有效提高了CPU对报文的处理的效率。
在上述实施例的基础上,下面特举一实例,对本发明提供的报文的处理方法进行详细的说明。
图3为本发明提供的报文处理方法实施例二的处理示意图。如图3所示,其中,下面以保序控制单元中的缓存队列、预取缓存队列和保序队列的实例来说明被发明的报文的处理方法,具体处理过程如下:
任务缓存中包括两个缓存队列Q_0、Q_1,其中,Q_0和Q_1之间设置为优先级队列(英文:PriorityQueue,简称:PQ)机制进行调度处理,待处理的报文包括三种类别的流,假设为T流、K流和G流报文,可以理解,T流、K流和G流仅是为了区分报文种类而作的示例性的说明,可以表示现有技术中的任意种类的报文,不构成对本发明实施例的任何限定。在缓存队列Q_0中依次加入了T流报文T1、T2以及K流报文K1、K2;队列Q_1中依次加入了G流报文G1、G2,且当前的保序控制单元的保序模式配置为原子操作。
在本实施例中,保序控制单元建立的预取缓存队列为三个,每个预取缓存队列之间可以为轮询调度(英文:Round-Robin,简称:RR)机制,保序控制单元将缓存队列Q_0和缓存队列Q_1中的待处理的报文全部取出,并根据待处理的报文的流类别将T流报文T1、T2放入第一个预取缓存队列;将K流报文K1、K2放入第二个预取缓存队列;将G流报文G1、G2放入第三个预取缓存队列。
完成上述操作过程后,任务缓存中的所有的待处理报文按流类别分类放入不同的预取缓存队列中,即T、K、G流分别放入对应的第一、第二、第三个预取缓存队列。
可选地,该CPU可以至少包括:第一处理器核、第二处理器核和第三处理器核,则保序控制单元可以将第一个预取缓存队列中的T流报文分配给第一处理器核进行处理;将第二个预取缓存队列中的K流报文分配给第二处理器核进行处理;将第三个预取缓存队列中的G流报文分配给第三处理器核进行处理。
即在处理过程中,若报文T1被阻塞时,K流的报文K1可以并发的被第二处理器核进行处理,并在保序队列中记录报文K1的处理信息,解决了同一缓存队列内的流阻塞问题。
若T1被阻塞处理时,G流的报文G1可以并发被第三处理器核进行处理,并在保序队列中记录报文G1的处理信息,解决了不同缓存队列之间的调度阻塞问题。
特别的,在每个缓存队列之间设置有严格优先级时(Q_0的优先级大于Q_1优先级),在解决不同缓存队列之间的调度阻塞时,并不需要等待T流、K流的报文全部取出后再取出G流报文,G流报文的可以提前取出并分配空闲的处理器核进行处理,充分利用空闲处理器核以处理低优先级队列Q_1中的G流,可提高CPU并发处理能力,而并未抢占在高优先级队列中被阻塞的T流的处理器核的资源。
可以理解,上述第一、第二和第三并不表示处理器核的次序,只用于将每个处理器核进行区分,不构成对本发明实施例的任何限定。
本实施例提供的报文处理方法,通过将缓存队列Q_0、Q_1中的待处理的报文取出,将T流报文放入第一个预取缓存队列,并将K流报文放入第二个预取缓存队列中、将G流报文放入第三个预取缓存队列中,再将三个预取缓存队列中的报文分别分配给不同的处理器核进行处理,通过在任务缓存、保序队列之间增加预取缓存队列,将不同的流报文分开并分配不同的处理器核并发处理,提高多个流并发处理效率,解决了流阻塞问题和调度阻塞问题,特别是在出现阻塞时,可以提高任务并发度,提升CPU对保序并发流的处理能力,有效提高了CPU对报文的处理的效率。
特别的,在上述所有实施例的中,在处理过程中,从任务缓存的缓存队列中预取若干报文,并按流类别区分放入不同的预取缓存队列中,并不是直接从任务缓存的缓存队列的队头依次开始取出并放入预取缓存队列,而是可以从多个缓存队列中并行的取出报文或者将所有缓存队列中的报文全部取出后根据流类别放入不同的预取缓存队列。
进一步的,按流类别从多个预取缓存队列中分别获取每个流的报文,并随机分配或者按照当前处理器核的空闲状态将每个流的报文分配给各个处理器核进行处理,然后记录在保序队列中,既可以继续保持流保序,也可以防止流阻塞及调度阻塞。
在预取缓存队列中,既是按流的类别划分也是按照先入先出(英文:FirstInputFirstOutput,简称:FIFO)原则保序的,因此,按照本申请的处理方法并未破坏同一条流内的报文保序。
在CPU中的保序控制单元中建立预取缓存队列的个数,根据CPU的配置而定,主要考量硬件资源与并发度要求的权衡,不限定为一个流的报文对应一个预取缓存队列,即在同一个预取缓存队列中可以包括几个类型的流的报文,只是在同等条件下,预取缓存队列数量越多,将不同的流的报文越分散,流的报文的并发处理能力越好。
可选地,作为本发明的另一个实施例,若任务缓存中包括两个缓存队列Q_0、Q_1,其中,缓存队列Q_0中依次加入了T流报文T1、T2以及K流报文K1、K2;队列Q_1中依次加入了G流报文G1、G2和H流报文H1、H2,且当前的保序控制单元的保序模式配置为原子操作。
可选的,保序控制单元建立的预取缓存队列为三个,保序控制单元将缓存队列Q_0和缓存队列Q_1中的待处理的报文全部取出,并根据待处理的报文的流类别将T流报文T1、T2放入第一个预取缓存队列;将K流报文K1、K2放入第二个预取缓存队列;将G流报文G1、G2和H流报文H1、H2放入第三个预取缓存队列,即T、K、G和H流分别放入对应的第一、第二、第三个预取缓存队列。
若CPU至少包括三个处理器核,则保序控制单元可以将第一个预取缓存队列中的T流报文分配给一个处理器核进行处理;将第二个预取缓存队列中的K流报文分配给另一个处理器核进行处理;将第三个预取缓存队列中的G流和H流报文分配给第三个处理器核进行处理。
图4为本发明提供的报文处理装置实施例一的结构示意图,如图4所示,该报文处理装置40,包括:处理模块41、分配模块42,其中,处理模块41,用于将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;分配模块42,用于将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
本实施例提供的报文处理装置,用于执行图1所示的方法实施例的技术方案,通过处理模块将缓存队列中的待处理的报文取出并按照报文的流类别将报文分别存入不同的预取缓存队列,分配模块将每个预取缓存队列中的报文分别分配给不同的处理器核进行处理,相较于现有技术直接从缓存队列中取出报文处理,在没有处理完成上一个流的报文时,不能处理同一缓存队列的其他流的报文,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,解决了报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
图5为本发明提供的报文处理装置实施例二的结构示意图,如图5所示,在本发明报文的处理装置的实施例二中,在上述实施例的基础上,该装置40还包括;记录模块43,用于在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
所述处理模块41建立的所述预取缓存队列的数量大于等于一个。
进一步的,所述待处理的报文的流类别包括第一类流和第二类流,则所述处理模块41具体用于:将所述缓存队列中的报文取出;将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
所述分配模块42还用于将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,所述记录模块43在所述保序队列中记录所述第一类流的报文处理信息;
所述分配模块42还用于将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,所述记录模块43在所述保序队列中记录所述第二类流的报文处理信息。
本实施例提供的报文处理装置,用于执行图1至图3所示的任一方法实施例的技术方案,其执行原理和技术效果类似,在此不作赘述。
图6为本发明提供的保序控制单元的实施例的结构示意图,如图6所示,该保序控制单元50包括:处理器51和存储器52。其中,处理器51用于将缓存队列中的待处理的报文取出并按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为所述处理器51在任务缓存和保序队列之间建立的缓存;处理器51还用于将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
可选的,还包括:存储器52,用于在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
本实施例提供的保序控制单元,用于执行图1所示的方法的技术方案,其实现原理和技术效果类似,通过处理器将缓存队列中的待处理的报文取出并按照报文的流类别将报文分别存入不同的预取缓存队列,并将每个预取缓存队列中的报文分别分配给不同的处理器核进行处理,存储器在保序队列中分别记录每个预取缓存队列中的报文的处理信息,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,有效解决了报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
在上述实施例的基础上,所述处理器51建立的所述预取缓存队列的数量大于等于一个。
可选的,若所述待处理的报文的流类别包括第一类流和第二类流,则所述处理器51具体用于:将所述缓存队列中的报文取出;将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
所述处理器51还用于将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,所述存储器52在所述保序队列中记录所述第一类流的报文处理信息;
所述处理器51还用于将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,所述存储器52在所述保序队列中记录所述第二类流的报文处理信息。
本实施例提供的保序控制单元,用于执行图1至图3任一项所示的方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
图7为本发明提供的CPU的实施例的结构示意图,如图7所示,该CPU60包括:图4、图5中任一实施例提供的报文处理装置61和至少两个处理器核62。
本实施例提供的CPU用于执行图1至图3所示的任一实施例提供的报文处理方法,其实现原理和技术效果类似,可以参照本发明的其他实施例,在此不做赘述。
采用本发明实施例提供的CPU,通过报文处理装置61将缓存队列中的待处理的报文取出并按照报文的流类别将报文分别存入不同的预取缓存队列,再将每个预取缓存队列中的报文分别分配给不同的处理器核62进行处理,相较于现有技术直接从缓存队列中取出报文处理,预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,解决了报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题,有效提高了CPU对报文的处理的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种报文处理方法,其特征在于,包括:
将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列;其中,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;
将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理之后,还包括:
在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
3.根据权利要求2所述的方法,其特征在于,所述预取缓存队列的数量大于或等于一个。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述待处理的报文的流类别包括第一类流和第二类流,则所述将缓存队列中的待处理的报文取出并按照所述报文的流类别将所述报文分别放入不同的预取缓存队列,包括:
将所述缓存队列中的报文取出;
将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
5.根据权利要求4所述的方法,其特征在于,所述将每个所述预取缓存队列中的报文分别分配不同的处理器核进行处理,并在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息,包括:
将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,在所述保序队列中记录所述第一类流的报文处理信息,并将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,在所述保序队列中记录所述第二类流的报文处理信息。
6.一种报文处理装置,其特征在于,包括:
处理模块,用于将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;
分配模块,用于将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
7.根据权利要求6所述的装置,其特征在于,还包括:
记录模块,用于在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
8.根据权利要求7所述的装置,其特征在于,所述处理模块建立的所述预取缓存队列的数量大于等于一个。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述待处理的报文的流类别包括第一类流和第二类流,则所述处理模块具体用于:
将所述缓存队列中的报文取出;
将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
10.根据权利要求9所述的装置,其特征在于,包括:
所述分配模块还用于将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,所述记录模块在所述保序队列中记录所述第一类流的报文处理信息;
所述分配模块还用于将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,所述记录模块在所述保序队列中记录所述第二类流的报文处理信息。
11.一种中央处理器CPU,其特征在于,包括权利要求6-10任一所述的报文处理装置和至少两个处理器核。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360849.XA CN105337896A (zh) | 2014-07-25 | 2014-07-25 | 报文处理方法和装置 |
PCT/CN2015/083601 WO2016011894A1 (zh) | 2014-07-25 | 2015-07-08 | 报文处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410360849.XA CN105337896A (zh) | 2014-07-25 | 2014-07-25 | 报文处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105337896A true CN105337896A (zh) | 2016-02-17 |
Family
ID=55162501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410360849.XA Pending CN105337896A (zh) | 2014-07-25 | 2014-07-25 | 报文处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105337896A (zh) |
WO (1) | WO2016011894A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329813A (zh) * | 2017-06-09 | 2017-11-07 | 北京中科睿芯科技有限公司 | 一种面向众核处理器的全局感知数据主动预取方法及*** |
CN107454016A (zh) * | 2017-09-29 | 2017-12-08 | 湖南恒茂高科股份有限公司 | 报文处理装置及方法 |
CN109391559A (zh) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | 网络设备 |
CN109617832A (zh) * | 2019-01-31 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 报文缓存方法及装置 |
CN110532067A (zh) * | 2018-05-25 | 2019-12-03 | 杭州海康威视数字技术股份有限公司 | 事件处理方法、装置、设备及存储介质 |
CN110661731A (zh) * | 2019-09-26 | 2020-01-07 | 光大兴陇信托有限责任公司 | 一种报文处理方法及其装置 |
CN110855528A (zh) * | 2019-11-22 | 2020-02-28 | 新华三技术有限公司 | 报文处理方法及测试设备 |
CN111083075A (zh) * | 2019-12-20 | 2020-04-28 | 盛科网络(苏州)有限公司 | 多核SoC处理报文的方法及应用其的SoC |
CN111294291A (zh) * | 2020-01-16 | 2020-06-16 | 新华三信息安全技术有限公司 | 一种协议报文的处理方法和装置 |
CN112152940A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 报文处理方法、装置以及*** |
CN112187665A (zh) * | 2020-09-28 | 2021-01-05 | 杭州迪普科技股份有限公司 | 一种报文处理的方法及装置 |
WO2021135810A1 (zh) * | 2019-12-30 | 2021-07-08 | 上海商汤智能科技有限公司 | 数据处理方法及装置、计算机设备、存储介质、计算机程序 |
CN113630318A (zh) * | 2020-05-06 | 2021-11-09 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
CN115086248A (zh) * | 2022-06-15 | 2022-09-20 | Oppo广东移动通信有限公司 | 数据包处理方法、通信芯片及计算机设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958953A (zh) * | 2018-06-29 | 2018-12-07 | 南京南瑞继保电气有限公司 | 一种基于多核处理器的消息交互方法 |
CN110177054B (zh) * | 2019-05-22 | 2022-08-19 | 新华三技术有限公司 | 一种端口队列调度方法、装置、网络控制器及存储介质 |
CN111262792B (zh) * | 2020-01-17 | 2022-04-01 | 新华三信息安全技术有限公司 | 报文转发方法、装置、网络设备及存储介质 |
CN111865811B (zh) * | 2020-06-24 | 2022-06-17 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备及介质 |
CN113032798A (zh) * | 2021-01-29 | 2021-06-25 | 新华三信息安全技术有限公司 | 一种文件加解密的方法、设备和存储介质 |
CN113098580B (zh) * | 2021-02-25 | 2022-11-08 | 深圳震有科技股份有限公司 | 卫星空口报文缓存与限速处理方法、装置、设备及介质 |
CN113824651B (zh) * | 2021-11-25 | 2022-02-22 | 上海金仕达软件科技有限公司 | 行情数据缓存处理方法、装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090225771A1 (en) * | 2008-03-06 | 2009-09-10 | Nec Corporation | Apparatus and method for tcp buffer copy distributed parallel processing |
CN101616083A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
CN101699788A (zh) * | 2009-10-30 | 2010-04-28 | 清华大学 | 模块化的网络入侵检测*** |
CN102521047A (zh) * | 2011-11-15 | 2012-06-27 | 重庆邮电大学 | 实现多核处理器间中断负载均衡的方法 |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及*** |
CN103218455A (zh) * | 2013-05-07 | 2013-07-24 | 中国人民解放军国防科学技术大学 | Key-Value数据库用户请求的高速并发处理方法 |
US8693490B1 (en) * | 2012-12-20 | 2014-04-08 | Unbound Networks, Inc. | Parallel processing using multi-core processor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761619B2 (en) * | 2005-05-13 | 2010-07-20 | Microsoft Corporation | Method and system for parallelizing completion event processing |
CN101304322B (zh) * | 2008-06-30 | 2010-07-28 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
CN102780616B (zh) * | 2012-07-19 | 2015-06-17 | 北京星网锐捷网络技术有限公司 | 基于多核处理器的报文处理方法、装置和网络设备 |
-
2014
- 2014-07-25 CN CN201410360849.XA patent/CN105337896A/zh active Pending
-
2015
- 2015-07-08 WO PCT/CN2015/083601 patent/WO2016011894A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090225771A1 (en) * | 2008-03-06 | 2009-09-10 | Nec Corporation | Apparatus and method for tcp buffer copy distributed parallel processing |
CN101616083A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
CN101699788A (zh) * | 2009-10-30 | 2010-04-28 | 清华大学 | 模块化的网络入侵检测*** |
CN102521047A (zh) * | 2011-11-15 | 2012-06-27 | 重庆邮电大学 | 实现多核处理器间中断负载均衡的方法 |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及*** |
US8693490B1 (en) * | 2012-12-20 | 2014-04-08 | Unbound Networks, Inc. | Parallel processing using multi-core processor |
US20140177643A1 (en) * | 2012-12-20 | 2014-06-26 | Unbound Networks, Inc. | Parallel processing using multi-core processor |
CN103218455A (zh) * | 2013-05-07 | 2013-07-24 | 中国人民解放军国防科学技术大学 | Key-Value数据库用户请求的高速并发处理方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329813A (zh) * | 2017-06-09 | 2017-11-07 | 北京中科睿芯科技有限公司 | 一种面向众核处理器的全局感知数据主动预取方法及*** |
CN107329813B (zh) * | 2017-06-09 | 2020-08-04 | 北京中科睿芯科技有限公司 | 一种面向众核处理器的全局感知数据主动预取方法及*** |
CN109391559A (zh) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | 网络设备 |
US11165710B2 (en) | 2017-08-10 | 2021-11-02 | Huawei Technologies Co., Ltd. | Network device with less buffer pressure |
CN107454016A (zh) * | 2017-09-29 | 2017-12-08 | 湖南恒茂高科股份有限公司 | 报文处理装置及方法 |
CN110532067A (zh) * | 2018-05-25 | 2019-12-03 | 杭州海康威视数字技术股份有限公司 | 事件处理方法、装置、设备及存储介质 |
CN109617832A (zh) * | 2019-01-31 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 报文缓存方法及装置 |
CN109617832B (zh) * | 2019-01-31 | 2022-07-08 | 新华三技术有限公司合肥分公司 | 报文缓存方法及装置 |
CN112152940A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 报文处理方法、装置以及*** |
CN112152940B (zh) * | 2019-06-28 | 2022-08-09 | 华为云计算技术有限公司 | 报文处理方法、装置以及*** |
CN110661731A (zh) * | 2019-09-26 | 2020-01-07 | 光大兴陇信托有限责任公司 | 一种报文处理方法及其装置 |
CN110855528A (zh) * | 2019-11-22 | 2020-02-28 | 新华三技术有限公司 | 报文处理方法及测试设备 |
CN111083075B (zh) * | 2019-12-20 | 2022-01-11 | 苏州盛科通信股份有限公司 | 多核SoC处理报文的方法及应用其的SoC |
CN111083075A (zh) * | 2019-12-20 | 2020-04-28 | 盛科网络(苏州)有限公司 | 多核SoC处理报文的方法及应用其的SoC |
WO2021135810A1 (zh) * | 2019-12-30 | 2021-07-08 | 上海商汤智能科技有限公司 | 数据处理方法及装置、计算机设备、存储介质、计算机程序 |
CN111294291A (zh) * | 2020-01-16 | 2020-06-16 | 新华三信息安全技术有限公司 | 一种协议报文的处理方法和装置 |
CN113630318A (zh) * | 2020-05-06 | 2021-11-09 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
CN112187665A (zh) * | 2020-09-28 | 2021-01-05 | 杭州迪普科技股份有限公司 | 一种报文处理的方法及装置 |
CN112187665B (zh) * | 2020-09-28 | 2023-04-07 | 杭州迪普科技股份有限公司 | 一种报文处理的方法及装置 |
CN115086248A (zh) * | 2022-06-15 | 2022-09-20 | Oppo广东移动通信有限公司 | 数据包处理方法、通信芯片及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2016011894A1 (zh) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105337896A (zh) | 报文处理方法和装置 | |
CN105577567B (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN107241281B (zh) | 一种数据处理方法及其装置 | |
US8155134B2 (en) | System-on-chip communication manager | |
CN103370691B (zh) | 管理缓冲器溢出状况 | |
CN102301664B (zh) | 多核处理器的流分发方法及装置 | |
CN107729135B (zh) | 按序进行并行数据处理的方法和装置 | |
CN107579926A (zh) | 基于令牌桶算法的Ceph云存储***的QoS设置方法 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
US9507633B2 (en) | Scheduling method and system | |
JP2019071108A (ja) | コンカレントプライオリティキューにおいてシーケンサを用いるためのシステムおよび方法 | |
EP1346549B1 (en) | Intercommunication preprocessor | |
CN110011936B (zh) | 基于多核处理器的线程调度方法及装置 | |
CN102521057A (zh) | 资源调度方法和装置 | |
CN113127170A (zh) | 用于在联系人中心***中配对的方法、***和制品 | |
CN109710414A (zh) | 一种作业调度方法、装置、设备及存储介质 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN112272933B (zh) | 队列控制方法、装置及存储介质 | |
CN114500401A (zh) | 一种应对突发流量的资源调度方法和*** | |
CN104281587B (zh) | 一种建立连接的方法及装置 | |
CN113835611A (zh) | 存储调度方法、设备和存储介质 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN113010464A (zh) | 数据处理装置及设备 | |
CN108139969A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160217 |
|
RJ01 | Rejection of invention patent application after publication |