報文處理方法和裝置的制造方法
【技術領域】
[0001 ] 本發明實施例涉及計算機技術,尤其涉及一種報文處理方法和裝置。
【背景技術】
[0002]中央處理器(英文:Central Processing Unit,簡稱CPU)包括多個處理器核,可以并發處理多個報文,對于多個不同的流報文一般使用保序控制單元進行多個報文的處理順序的控制。
[0003]現有技術中,對于多個流的報文的處理方式為順序處理。例如:在任務緩存中包括兩個緩存隊列Q0、Ql,隊列QO中依次加入了 T流報文Tl、T2以及K流報文Kl、K2 ;隊列Ql中依次加入了 G流報文G1、G2,在當前保序控制單元的保序模式配置為原子操作(英文:ATOMIC)時,隊列QO中的報文Tl被取出給其中一個處理器核進行處理,并將處理信息記錄在保序隊列中,在報文Tl沒有被處理完成時,保序隊列會阻止報文T2被其他處理器核進行處理,進而導致后續報文K1、K2不能被別的處理器核進行處理,另外,若隊列QO和隊列Ql配置了嚴格的優先級關系,則在隊列QO的所有報文沒有全部處理完成時,隊列Ql中的G流的報文也不能被處理。
[0004]但是,上述的處理方法中,處理器核對報文Tl沒有處理完成時,同一隊列中的其他流的報文不能進行處理,且在隊列之間有優先級關系時,別的隊列中的報文也不能進行處理,導致調度處理的阻塞,造成整個CPU對報文的處理的效率較低。
【發明內容】
[0005]本發明實施例提供一種報文處理方法和裝置,以克服報文的處理過程中調度的阻塞,造成整個CPU對報文的處理的效率較低的問題。
[0006]本發明實施例第一方面提供一種報文處理方法,包括:
[0007]將緩存隊列中的待處理的報文按照所述報文的流類別將所述報文分別存入不同的預取緩存隊列;其中,所述預取緩存隊列為在任務緩存和保序隊列之間預先建立的緩存;
[0008]將每個所述預取緩存隊列中的報文分別分配給不同的處理器核進行處理。
[0009]結合第一方面,在第一方面的第一種可能的實施方式中,所述將每個所述預取緩存隊列中的報文分別分配給不同的處理器核進行處理之后,還包括:
[0010]在所述保序隊列中分別記錄每個所述預取緩存隊列中的報文的處理信息。
[0011]結合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述預取緩存隊列的數量大于或等于一個。
[0012]結合第一方面、第一方面的第一種和第二種中的任一種可能的實施方式,在第一方面的第三種可能的實施方式中,所述待處理的報文的流類別包括第一類流和第二類流,則所述將緩存隊列中的待處理的報文取出并按照所述報文的流類別將所述報文分別放入不同的預取緩存隊列,包括:
[0013]將所述緩存隊列中的報文取出;
[0014]將流類別為所述第一類流的所有報文放入一個所述預取緩存隊列中,將流類別為所述第二類流的所有報文放入與所述第一類流不同的另一所述預取緩存隊列。
[0015]結合第一方面的第三種可能的實施方式,在第一方面的第四種可能的實施方式中,所述將每個所述預取緩存隊列中的報文分別分配不同的處理器核進行處理,并在所述保序隊列中分別記錄每個所述預取緩存隊列中的報文的處理信息,包括:
[0016]將所述預取緩存隊列中所述第一類流的報文分配給第一處理器核進行處理,在所述保序隊列中記錄所述第一類流的報文處理信息,并將另一所述預取緩存隊列中第二類流的報文分配給第二處理器核進行處理,在所述保序隊列中記錄所述第二類流的報文處理信肩、O
[0017]本發明實施例第二方面提供一種報文處理裝置,包括:
[0018]處理模塊,用于將緩存隊列中的待處理的報文按照所述報文的流類別將所述報文分別存入不同的預取緩存隊列,所述預取緩存隊列為在任務緩存和保序隊列之間預先建立的緩存;
[0019]分配模塊,用于將每個所述預取緩存隊列中的報文分別分配給不同的處理器核進行處理。
[0020]結合第二方面,在第二方面的第一種可能的實施方式中,還包括:
[0021]記錄模塊,用于在所述保序隊列中分別記錄每個所述預取緩存隊列中的報文的處理信息。
[0022]結合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述處理模塊建立的所述預取緩存隊列的數量大于等于一個。
[0023]結合第二方面、第二方面的第一種和第二種中的任一種可能的實施方式,在第二方面的第三種可能的實施方式中,所述待處理的報文的流類別包括第一類流和第二類流,則所述處理模塊具體用于:
[0024]將所述緩存隊列中的報文取出;
[0025]將流類別為所述第一類流的所有報文放入一個所述預取緩存隊列中,并將流類別為所述第二類流的所有報文放入與所述第一類流不同的另一所述預取緩存隊列。
[0026]結合第二方面的第三種可能的實施方式,在第二方面的第四種可能的實施方式中,包括:
[0027]所述分配模塊還用于將所述預取緩存隊列中所述第一類流的報文分配給第一處理器核進行處理,所述記錄模塊在所述保序隊列中記錄所述第一類流的報文處理信息;
[0028]所述分配模塊還用于將另一所述預取緩存隊列中第二類流的報文分配給第二處理器核進行處理,所述記錄模塊在所述保序隊列中記錄所述第二類流的報文處理信息。
[0029]本發明實施例第三方面提供一種中央處理器CPU,包括:第二方面、第二方面的第一種、第二種、第三種至第四種實施方式中的任一實施方式提供的報文處理裝置和至少兩個處理器核。
[0030]本發明實施例提供的報文處理方法和裝置,通過將緩存隊列中的待處理的報文取出并按照報文的流類別將報文分別存入不同的預取緩存隊列,再將每個預取緩存隊列中的報文分別分配給不同的處理器核進行處理,相較于現有技術直接從緩存隊列中取出報文處理,在沒有處理完成上一個流的報文時,不能處理同一緩存隊列的其他流的報文,通過預取緩存隊列將不同的流報文分開并分配不同的處理器核并發處理,解決了報文的處理過程中調度的阻塞,造成整個CPU對報文的處理的效率較低的問題,有效提高了 CPU對報文的處理的效率。
【附圖說明】
[0031]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0032]圖1為本發明提供的報文處理方法實施例一的流程圖;
[0033]圖2為本發明提供的報文處理方法實施例二的流程圖;
[0034]圖3為本發明提供的報文處理方法實施例二的處理示意圖;
[0035]圖4為本發明提供的報文處理裝置實施例一的結構示意圖;
[0036]圖5為本發明提供的報文處理裝置實施例二的結構示意圖;
[0037]圖6為本發明提供的保序控制單元的實施例的結構示意圖;
[0038]圖7為本發明提供的CPU的實施例的結構示意圖。
【具體實施方式】
[0039]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲