报文处理方法和装置的制造方法_3

文档序号:9581655阅读:来源:国知局
0和缓存队列Q_1中的待处理的报文全部取出,并根据待处理的报文的流类别将T流报文Tl、T2放入第一个预取缓存队列;将K流报文Κ1、Κ2放入第二个预取缓存队列;将G流报文G1、G2放入第三个预取缓存队列。
[0065]完成上述操作过程后,任务缓存中的所有的待处理报文按流类别分类放入不同的预取缓存队列中,即T、K、G流分别放入对应的第一、第二、第三个预取缓存队列。
[0066]可选地,该CPU可以至少包括:第一处理器核、第二处理器核和第三处理器核,则保序控制单元可以将第一个预取缓存队列中的T流报文分配给第一处理器核进行处理;将第二个预取缓存队列中的K流报文分配给第二处理器核进行处理;将第三个预取缓存队列中的G流报文分配给第三处理器核进行处理。
[0067]即在处理过程中,若报文Tl被阻塞时,K流的报文Kl可以并发的被第二处理器核进行处理,并在保序队列中记录报文Kl的处理信息,解决了同一缓存队列内的流阻塞问题。
[0068]若Tl被阻塞处理时,G流的报文Gl可以并发被第三处理器核进行处理,并在保序队列中记录报文Gl的处理信息,解决了不同缓存队列之间的调度阻塞问题。
[0069]特别的,在每个缓存队列之间设置有严格优先级时(Q_0的优先级大于Q_1优先级),在解决不同缓存队列之间的调度阻塞时,并不需要等待T流、K流的报文全部取出后再取出G流报文,G流报文的可以提前取出并分配空闲的处理器核进行处理,充分利用空闲处理器核以处理低优先级队列Q_1中的G流,可提高CPU并发处理能力,而并未抢占在高优先级队列中被阻塞的T流的处理器核的资源。
[0070]可以理解,上述第一、第二和第三并不表示处理器核的次序,只用于将每个处理器核进行区分,不构成对本发明实施例的任何限定。
[0071]本实施例提供的报文处理方法,通过将缓存队列Q_0、Q_1中的待处理的报文取出,将T流报文放入第一个预取缓存队列,并将K流报文放入第二个预取缓存队列中、将G流报文放入第三个预取缓存队列中,再将三个预取缓存队列中的报文分别分配给不同的处理器核进行处理,通过在任务缓存、保序队列之间增加预取缓存队列,将不同的流报文分开并分配不同的处理器核并发处理,提高多个流并发处理效率,解决了流阻塞问题和调度阻塞问题,特别是在出现阻塞时,可以提高任务并发度,提升CPU对保序并发流的处理能力,有效提高了 CPU对报文的处理的效率。
[0072]特别的,在上述所有实施例的中,在处理过程中,从任务缓存的缓存队列中预取若干报文,并按流类别区分放入不同的预取缓存队列中,并不是直接从任务缓存的缓存队列的队头依次开始取出并放入预取缓存队列,而是可以从多个缓存队列中并行的取出报文或者将所有缓存队列中的报文全部取出后根据流类别放入不同的预取缓存队列。
[0073]进一步的,按流类别从多个预取缓存队列中分别获取每个流的报文,并随机分配或者按照当前处理器核的空闲状态将每个流的报文分配给各个处理器核进行处理,然后记录在保序队列中,既可以继续保持流保序,也可以防止流阻塞及调度阻塞。
[0074]在预取缓存队列中,既是按流的类别划分也是按照先入先出(英文:First InputFirst Output,简称:FIF0)原则保序的,因此,按照本申请的处理方法并未破坏同一条流内的报文保序。
[0075]在CPU中的保序控制单元中建立预取缓存队列的个数,根据CPU的配置而定,主要考量硬件资源与并发度要求的权衡,不限定为一个流的报文对应一个预取缓存队列,即在同一个预取缓存队列中可以包括几个类型的流的报文,只是在同等条件下,预取缓存队列数量越多,将不同的流的报文越分散,流的报文的并发处理能力越好。
[0076]可选地,作为本发明的另一个实施例,若任务缓存中包括两个缓存队列Q_0、Q_l,其中,缓存队列Q_0中依次加入了 T流报文T1、T2以及K流报文Κ1、Κ2 ;队列Q_1中依次加入了 G流报文Gl、G2和H流报文H1、H2,且当前的保序控制单元的保序模式配置为原子操作。
[0077]可选的,保序控制单元建立的预取缓存队列为三个,保序控制单元将缓存队列Q_0和缓存队列Q_1中的待处理的报文全部取出,并根据待处理的报文的流类别将T流报文Tl、T2放入第一个预取缓存队列;将K流报文Kl、K2放入第二个预取缓存队列;将G流报文Gl、G2和H流报文H1、Η2放入第三个预取缓存队列,即Τ、K、G和H流分别放入对应的第一、第二、第三个预取缓存队列。
[0078]若CPU至少包括三个处理器核,则保序控制单元可以将第一个预取缓存队列中的T流报文分配给一个处理器核进行处理;将第二个预取缓存队列中的K流报文分配给另一个处理器核进行处理;将第三个预取缓存队列中的G流和H流报文分配给第三个处理器核进行处理。
[0079]图4为本发明提供的报文处理装置实施例一的结构示意图,如图4所示,该报文处理装置40,包括:处理模块41、分配模块42,其中,处理模块41,用于将缓存队列中的待处理的报文按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为在任务缓存和保序队列之间预先建立的缓存;分配模块42,用于将每个所述预取缓存队列中的报文分别分配给不同的处理器核进行处理。
[0080]本实施例提供的报文处理装置,用于执行图1所示的方法实施例的技术方案,通过处理模块将缓存队列中的待处理的报文取出并按照报文的流类别将报文分别存入不同的预取缓存队列,分配模块将每个预取缓存队列中的报文分别分配给不同的处理器核进行处理,相较于现有技术直接从缓存队列中取出报文处理,在没有处理完成上一个流的报文时,不能处理同一缓存队列的其他流的报文,通过预取缓存队列将不同的流报文分开并分配不同的处理器核并发处理,解决了报文的处理过程中调度的阻塞,造成整个CPU对报文的处理的效率较低的问题,有效提高了 CPU对报文的处理的效率。
[0081]图5为本发明提供的报文处理装置实施例二的结构示意图,如图5所示,在本发明报文的处理装置的实施例二中,在上述实施例的基础上,该装置40还包括;记录模块43,用于在所述保序队列中分别记录每个所述预取缓存队列中的报文的处理信息。
[0082]所述处理模块41建立的所述预取缓存队列的数量大于等于一个。
[0083]进一步的,所述待处理的报文的流类别包括第一类流和第二类流,则所述处理模块41具体用于:将所述缓存队列中的报文取出;将流类别为所述第一类流的所有报文放入一个所述预取缓存队列中,并将流类别为所述第二类流的所有报文放入与所述第一类流不同的另一所述预取缓存队列。
[0084]所述分配模块42还用于将所述预取缓存队列中所述第一类流的报文分配给第一处理器核进行处理,所述记录模块43在所述保序队列中记录所述第一类流的报文处理信息;
[0085]所述分配模块42还用于将另一所述预取缓存队列中第二类流的报文分配给第二处理器核进行处理,所述记录模块43在所述保序队列中记录所述第二类流的报文处理信肩、O
[0086]本实施例提供的报文处理装置,用于执行图1至图3所示的任一方法实施例的技术方案,其执行原理和技术效果类似,在此不作赘述。
[0087]图6为本发明提供的保序控制单元的实施例的结构示意图,如图6所示,该保序控制单元50包括:处理器51和存储器52。其中,处理器51用于将缓存队列中的待处理的报文取出并按照所述报文的流类别将所述报文分别存入不同的预取缓存队列,所述预取缓存队列为所述处理器51在任务缓存和保序队列之间建立的缓存;处理器51还用于将
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1