專利名稱:一種并行處理的方法及裝置的制作方法
技術領域:
本發明涉及通信網絡技術領域,尤其涉及一種并行處理的方法及裝置。
背景技術:
ROHC (Robust Header Compression,魯棒性頭壓縮)為對無線鏈路上的報文頭壓縮協議進行的規范,可以有效對抗壓縮器和解壓縮器之間的丟包現象。ROHC主要對分組流進行報文頭壓縮,其功能實體分為兩部分壓縮端和解壓端。現有技術采用單個加速引擎通道的多級流水線結構進行報文頭壓縮以及反饋包的處理。例如可以采用三級流水線結構進行報文頭壓縮,具體的,第一級從外部存儲器讀取上下文,其中,上下文中保存著分組流報文中的報文頭信息,然后讀取報文頭信息,完成數據準備エ作;第二級根據上下文信息將報文頭進行壓縮編碼或者解碼處理;第三級將上下文信息寫回外部存儲器中。反饋包為解壓端生成的維護上下文相關的反饋信息,以通知壓縮端當前的上下文是否能滿足成功解壓,以及雙方的上下文是否一致。壓縮端收到反饋包后需要進行解析,井根據反饋信息決定當前的工作模式和工作狀態,以及是否需要向解壓端發送用于更新解壓端上下文的數據包。然而,壓縮端從同一個加速引擎通道接收反饋包與待壓縮報文頭,反饋包越多,導致降低加速引擎通道性能。
發明內容
本發明的實施例提供一種并行處理的方法及裝置,可以提高加速引擎通道的性倉^:。本發明的實施例采用如下技術方案一種并行處理的方法,包括判斷接收到的數據包的類型;當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息; 從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。一種并行處理的裝置,包括判斷単元,用于判斷接收到的數據包的類型;分配単元,用于當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮頭隊列進行排隊;
反饋包處理單元,用于從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;待壓縮報文頭處理単元,用于從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。本發明實施例提供一種并行處理的方法及裝置,通過判斷接收到的數據包的類型;當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待 壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;從反饋包處理通道接收反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;從待壓縮報文頭處理通道接收待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。與現有技術中壓縮端從同ー個加速引擎通道接收反饋包與待壓縮報文頭,反饋包越多,導致降低加速引擎通道性能相比,本發明實施例將反饋包與待壓縮報文頭進行并行處理,可以提高加速引擎通道的性倉^:。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本發明實施例I提供的一種并行處理的方法的流程圖;圖2為本發明實施例I提供的一種并行處理的裝置的框圖;圖3為本發明實施例2提供的一種并行處理的方法的流程圖;圖4為本發明實施例2提供的分離并行處理通道結構示意圖;圖5A為本發明實施例2提供的反饋包處理的方法的流程圖;圖5B為本發明實施例2提供的待壓縮報文頭的方法的流程圖;圖6為本發明實施例2提供的一種并行處理的裝置的框圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。實施例I本發明實施例提供的一種并行處理的方法,該方法的執行主體為壓縮端,具體可以為壓縮器,如圖I所示,該方法包括步驟101,判斷接收到的數據包的類型;接收到的數據包中包括報文,通過此報文頭中的一個字段來判斷數據包是反饋包,還是待壓縮報文頭。其中,此字段根據協議以不同的比特值代表不同的類型。步驟102,當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;步驟103,當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;反饋包處理通道和待壓縮 報頭處理通道為兩條并行處理通道,反饋包處理通道與待壓縮報文頭處理通道處理的分組流沒有相關性,可以并行處理。步驟104,從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;在本步驟從所述反饋包處理通道接收所述反饋包之后進ー步包括存儲接收到的所述反饋包到反饋包緩存中;其中,所述反饋包緩存內可以至少緩存三個所述反饋包。可選的,當處理所述反饋包吋,讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息;根據所述反饋信息更新所述上下文信息;將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。步驟105,從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。在所述從所述待壓縮報文頭處理通道接收所述待壓縮報文頭之后還包括存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中,所述待壓縮報文頭緩存內至少緩存三個所述待壓縮報文頭。可選的,當處理所述待壓縮報文頭時,解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息吋,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存中;根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送;將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。進ー步的,當反饋包處理通道與待壓縮報文頭處理通道同時對同一個上下文信息進行處理時,所述反饋包處理通道的優先級高于所述待壓縮報文頭處理通道的優先級。當不同處理通道內,進入壓縮處理階段的待壓縮報文頭的CID與進入更新階段的反饋包的CID相同時,則阻塞待壓縮報文頭處理通道,等待反饋包更新完成后再根據更新后的上下文信息進行所述待壓縮報文頭的處理。當同一處理通道內不同處理階段,連續接收的所述反饋包或者所述待壓縮報文頭為同一分組流時,則阻塞當前處理通道,等待前一個反饋包或者待壓縮報文頭完成上下文信息更新處理后,使用更新后的并且保存在所述反饋包緩存或者所述待壓縮報文頭緩存中的上下文信息,完成當前反饋包或者待壓縮報文頭的處理。在讀取上下文信息之前,所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則根據所述待讀取的所述上下文信息進行進一歩處理。在讀取上下文信息吋,當前所述反饋包或者所述待壓縮報文頭的CID與上下文回寫階段的CID相同,則不將所述CID對 應的上下文信息寫回到上下文存儲器中,井根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。本發明實施例提供一種并行處理的方法,通過根據判斷的數據包的類型,分別將反饋包置于反饋包處理通道中的反饋包隊列進行排隊,將待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;從反饋包處理通道接收反饋包,并,解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;從待壓縮報文頭處理通道接收待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送,本發明實施例將反饋包與待壓縮報文頭進行并行處理,可以提高加速引擎通道的性能。本發明實施例提供一種并行處理的裝置,該裝置可以為壓縮器,如圖2所示,該裝置包括判斷單元201,分配單元202,反饋包處理單元203,待壓縮報文頭處理單元204 ;判斷単元201,用于判斷接收到的數據包的類型;接收到的數據包中包括報文,通過此報文頭中的一個字段來判斷數據包是反饋包,還是待壓縮報文頭。其中,此字段根據協議以不同的比特值代表不同的類型。分配単元202,用于當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮頭隊列進行排隊;反饋包處理單元203,用于從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;進ー步的,反饋包緩存單元,用于存儲接收到的所述反饋包到反饋包緩存中,以備所述反饋包處理單元進ー步處理;其中,所述反饋包緩存內至少緩存三個所述反饋包。具體的,所述反饋包處理單元203中的上下文讀取模塊,用于讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;以及根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息;所述反饋包處理單元203中的上下文更新模塊,用于根據所述反饋信息更新所述上下文信息;所述反饋包處理單元203中的上下文回寫模塊,用于將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。待壓縮報文頭處理単元204,用于從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。需要說明的是,反饋包處理通道與待壓縮報頭處理通道處理的分組流沒有相關性,可以并行處理。進ー步的,待壓縮報文頭緩存単元,用于存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中,以備所述待壓縮報文頭處理単元進ー步處理。所述待壓縮報文頭緩存內至少緩存三個所述待壓縮報文頭具體的,所述待壓縮報文頭處理単元204中的上下文讀取模塊,用于解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息時,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存中;
所述待壓縮報文頭處理単元204中的上下文壓縮模塊,用于根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送;所述待壓縮報文頭處理単元204中的上下文回寫模塊,用于將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。本發明實施例提供一種并行處理的裝置,通過根據判斷単元判斷的數據包的類型,分配單元將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮頭隊列進行排隊;反饋包處理單元,用于從反饋包處理通道接收反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;待壓縮報文頭處理単元,用于從待壓縮報文頭處理通道接收待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。本發明實施例將反饋包與待壓縮報文頭進行分離并行處理,可以提高加速引擎通道的性能。實施例2本發明實施例提供的一種并行處理的方法,該方法的執行主體為壓縮端,具體可以為壓縮器,如圖3所示,該方法包括步驟301,判斷接收到的數據包的類型;通過無線接ロ接收 F1DCP (Packet Data Convergence Protocol,分組數據匯聚協議)層發送的數據包,數據包中包括報文,通過此報文頭中的一個字段來判斷數據包是反饋包,還是待壓縮報文頭。其中,此字段根據協議以不同的比特值代表不同的類型。步驟302,當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;反饋包處理通道僅處理反饋包。步驟303,當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;待壓縮報文頭處理通道僅處理待壓縮報文頭。步驟304,從反饋包處理通道接收反饋包;步驟305,從待壓縮報文頭處理通道接收待壓縮報文頭;反饋包處理通道和待壓縮報文頭處理通道為兩條并行處理通道,如圖4所示的分離并行處理通道結構圖,反饋包處理通道與待壓縮報文頭處理通道處理的分組流沒有相關性,可以并行處理。步驟306,存儲接收到的所述反饋包到反饋包緩存中;步驟307,存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中;本發明在現有技術單通道的基礎上增加一倍的上下文內部緩存空間和讀寫控制邏輯,用于存儲接收到的反饋包,并進行上下文的更新。具體的,如圖4所示存儲接收到的所述反饋包到反饋包緩存中;存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中。其中,所述反饋包緩存內至少緩存三個所述反饋包;所述待壓縮報文頭緩存內至少緩存三個所述待壓縮報文頭。反饋包緩存與待壓縮報文頭緩存的設置與本發明采用的多級流水線結構相關,例如,采用3級流水線結構時,可以設置反饋包緩存空間可以緩存三個所述反饋包,如上下文緩存I ’,上下文緩存2’,上下文緩存3’,設置待壓縮報文頭緩存空間可以緩存三個所述待壓縮報文頭,如上下文緩存1,上下文緩存2,上下文緩存3,以使得反饋包或者待壓縮報文頭可以不間斷的處理,節省時間。
步驟308,當處理所述反饋包時,解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;具體的,在壓縮器內的反饋包處理單元中對接收到的反饋包進行更新處理,本發明實施例以3級流水線結構為例進行說明,如圖5A所示的流程圖步驟501,對所述反饋包的第一級處理;具體的,當處理所述反饋包時,讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息;需要說明的是,一條通訊鏈路由多個信道組成,每ー個信道可以有多個分組流,每個分組流對應ー個上下文信息,ー個上下文信息對應ー個CID。上下文信息按照上下文存儲地址存儲在上下文存儲器中,其中,上下文存儲地址與CID—一對應,根據CID確定上下文存儲地址,并根據上下文存儲地址確定上下文信息。如圖4所示中,上下文存儲器為外部存儲器,存儲每個分組流對應的上下文信息,其中上下文信息為分組流的報文頭信息。可選的,一個完整的報文由報文頭和凈荷組成,ROHC是針對報文頭進行壓縮的。由于在ー些常用業務中報文頭的長度很長,甚至超過了凈荷的長度,報文頭中很多字段的作用是確保端到端連接的正確性,對于某一段鏈路來說,這種字段不起具體作用,且ー個分組流的每個報文中都相同,因此屬于冗余內容。冗余內容可以不用每次發送,而可以采取在鏈路的另一端進行還原出來的辦法來實現傳輸。進ー步的,所述反饋包為解壓縮器端發送給壓縮器的數據包,所述反饋包的CID與解壓縮器端解壓縮的報文頭的CID相同,具備RFC3095協議規定標準格式,其中所述反饋包中包括當前該分組流壓縮模式、當前該分組流壓縮狀態,以及解壓器端是否能夠成功解壓報文頭等信息。步驟502,對所述反饋包的第二級處理;具體的,根據所述反饋信息更新所述上下文信息;進ー步的,將更新的所述上下文信息保存在反饋包緩存中,以備第三級進ー步處理。步驟503,對所述反饋包的第三級處理;具體的,將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。需要說明的是,根據反饋包的CID對應的上下文存儲地址進行上下文信息的存儲。步驟309,當處理所述待壓縮報文頭時,解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。具體的,在壓縮器內的待壓縮報文頭處理単元中對接收到的待壓縮報文頭進行壓縮處理,本發明實施例以3級流水線結構為例進行說明,如圖5B所示的流程圖步驟504,對所述待壓縮報文頭的第一級處理;具體的,當處理所述待壓縮報文頭時,解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息吋,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存 中;需要說明的是,待壓縮報文頭對應的CID為分組流解析単元分配的。步驟505,對所述待壓縮報文頭的第二級處理;具體的,根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送;具體的,根據待壓縮報文頭信息和上下文記錄的信息,選擇合適的壓縮包類型,并填充對應的域,組成壓縮包輸出。可選的,上下文信息中記錄的是報文頭的固定字段,這些字段在一個分組流的所有報文的報文頭中都是固定不變的,例如原地址、目地地址等;而待壓縮報文頭信息為報文頭中的可變字段,例如當前待壓縮報文頭的序列號等。填充對應的域即填充可變字段的內容。步驟506,對所述待壓縮報文頭的第三級處理;具體的,將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。當上下文信息為根據待壓縮報文頭信息新建的,則在回寫階段時,需要先確定上下文存儲器中的空閑空間的地址,作為上下文存儲地址,根據此上下文存儲地址分配緩存空間,并將所述上下文信息保存在所述緩存空間中。進ー步的,需將此待壓縮報文頭的CID對應的上下文信息與上下文存儲地址一一對應的關系進行保存。需要說明的是,步驟308和步驟309為并行處理,當反饋包處理通道與待壓縮報文頭處理通道同時對同一個上下文信息進行處理時,即所述反饋包的CID與所述待壓縮報文頭的CID相同時,反饋包處理通道的優先級高于所述待壓縮報文頭處理通道的優先級,以保證進行進ー步處理時采用的上下文信息為最新的上下文信息。在反饋包和待壓縮報文頭并行處理過程中,可能出現如下兩種數據沖突一種是在同一條處理通道內(反饋包處理通道或者待壓縮報文頭處理通道)不同級中存在屬于同一個分組流的待壓縮報文頭或反饋包,此時該分組流的上下文信息已經從外部緩存讀取到內部緩存,但還未完成更新回寫,即步驟501和步驟504處理完成后,步驟502或者步驟505處理之前,此時需滿足以下機制當同一處理通道內不同處理階段,連續接收的所述反饋包或者所述待壓縮報文頭為同一分組流時,則阻塞當前處理通道,等待前一個反饋包或者待壓縮報文頭完成上下文信息(此上下文信息為已從外部緩存讀取到內部緩存的上下文信息)更新處理后,使用更新后的并且保存在所述反饋包緩存或者所述待壓縮報文頭緩存中的上下文信息,完成當前反饋包或者待壓縮報文頭的處理。以反饋包處理為例接收到反饋包1,根據步驟501的方法獲取上下文信息并讀取,準備執行步驟502,此時接收反饋包2,反饋包2與反饋包I屬于同一個分組流,即上下文信息相同,則阻塞反饋包2的處理通道,即不處理反饋包2,等待反饋包I更新處理完成后,使用存儲在反饋包緩存中的更新的上下文信息進行處理,直到反饋包2處理完成后,再將更新的上下文處理信息寫回到上下文存儲器中,即寫回到外部緩存中。在讀取上下文信息之前,所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則不對該分組流的上下文存儲器中上下文信息進行讀取操作,根據所述待讀取的所述上下文 信息進行進一歩處理。在讀取上下文信息吋,當前所述反饋包或者所述待壓縮報文頭的CID與上下文信息回寫階段的CID相同,則不將所述CID對應的上下文信息寫回到上下文存儲器中,并根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。另外ー種數據沖突為兩個通道間存在的沖突,即同一分組流的反饋包和待壓報文頭同時進入兩個并行處理通道,這種情況下需滿足以下機制當不同處理通道內,進入壓縮處理階段的待壓縮報文頭的CID與進入更新階段的反饋包的CID相同吋,則阻塞待壓縮報文頭處理通道,等待反饋包更新完成后再根據更新后的上下文信息進行所述待壓縮報文頭的處理。例如,待壓縮報文頭進入步驟505執行吋,此時需判斷進入步驟502處理階段的反饋包的CID是否與此待壓縮報文頭的CID相同,當兩者不相同時,則可以執行步驟506,當兩者相同時,則阻塞待壓縮報文頭處理通道,等待步驟502處理完成后,再讀取反饋包緩存中更新的上下文信息進ー步進行步驟506的執行。需要說明的是,無論是反饋包處理通道還是待壓縮報文頭處理通道,在讀取上下文信息之前,所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則不對該分組流的上下文存儲器中上下文信息進行讀取操作,根據所述待讀取的所述上下文信息進行進一歩處理。無論是反饋包處理通道還是待壓縮報文頭處理通道,在讀取上下文信息吋,當前所述反饋包或者所述待壓縮報文頭的CID與上下文信息回寫階段的CID相同,則不將所述CID對應的上下文信息寫回到上下文存儲器中,井根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。本發明實施例提供的一種并行處理的方法,通過將反饋包與待壓縮報文頭進行分離并行處理,使得待壓縮報文頭處理通道的性能不受反饋包的影響,進ー步提高加速引擎通道的性能。本發明實施例提供一種并行處理的裝置,該裝置可以為壓縮器,如圖6所示,該裝置包括判斷単元601,分配単元602,反饋包處理單元603,上下文讀取模塊6031,上下文更新模塊6032,上下文回寫模塊6033,待壓縮報文頭處理単元604,上下文讀取模塊6041,上下文壓縮模塊6042,上下文回寫模塊6043,反饋包緩存單元605,待壓縮報文頭緩存単元606,監控單元607,阻塞單元608,判斷處理單元609 ;判斷単元601,用于判斷接收到的數據包的類型;接收到的數據包中包括報文,通過此報文頭中的一個字段來判斷數據包是反饋包,還是待壓縮報文頭。其中,此字段根據協議以不同的比特值代表不同的類型。分配単元602,用于當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮頭隊列進行排隊;所述反饋包處理通道與所述待壓縮報文頭處理通道為兩條并行處理通道。
反饋包處理單元603,用于從反饋包處理通道接收反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息;進ー步的,在所述反饋包處理單元603從反饋包處理通道接收反饋包后,反饋包緩存單元605,用于存儲接收到的所述反饋包到反饋包緩存中,以備所述反饋包處理單元603進ー步處理;其中,所述反饋包緩存內至少緩存三個所述反饋包。
進ー步的,所述反饋包處理單元603中的上下文讀取模塊6031,用于當處理所述反饋包時,讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;以及根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息;所述反饋包處理單元603中的上下文更新模塊6032,用于根據所述反饋信息更新所述上下文信息;所述反饋包處理單元603中的上下文回寫模塊6033,用于將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。待壓縮報文頭處理単元604,用于從待壓縮報文頭處理通道接收待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。進ー步的,所述待壓縮報文頭處理単元604從待壓縮報文頭處理通道接收待壓縮報文頭之后,待壓縮報文頭緩存単元,用于存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中,以備所述待壓縮報文頭處理単元604進ー步處理。進ー步的,所述待壓縮報文頭處理単元604中的上下文讀取模塊6041,用于當處理所述待壓縮報文頭時,解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息吋,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存中;所述待壓縮報文頭處理単元604中的上下文壓縮模塊6042,用于根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送;所述待壓縮報文頭處理単元604中的上下文回寫模塊6043,用于將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。需要說明的是,所述反饋包處理單元603與所述待壓縮報文頭處理単元604為并行處理,在并行處理過程中,監控單元607,用于當反饋包處理通道與待壓縮報文頭處理通道同時對同一個上下文信息進行處理時,即所述反饋包的CID與所述待壓縮報文頭的CID相同時,控制所述反饋包處理通道的優先級高于所述待壓縮報文頭處理通道的優先級,以保證進行進ー步處理時采用的上下文信息為最新的上下文信息。當不同處理通道內,進入壓縮處理階段的待壓縮報文頭的CID與進入更新階段的反饋包的CID相同時,阻塞単元608,則阻塞待壓縮報文頭處理通道,等待反饋包更新完成后再根據更新后的上下文信息進行所述待壓縮報文頭的處理;當同一處理通道內不同處理階段,連續接收的所述反饋包或者所述待壓縮報文頭為同一分組流時,所述阻塞単元608,則阻塞當前處理通道,等待前一個反饋包或者待壓縮報文頭完成上下文信息更新處理后,使用更新后的并且保存在所述反饋包緩存或者所述待壓縮報文頭緩存中的上下文信息,完成當前反饋包或者待壓縮報文頭的處理。
在讀取上下文信息之前,判斷處理單元609,用于所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則根據所述待讀取的所述上下文信息進行進
ー步處理。進ー步的,所述判斷處理單元609還用于在讀取上下文信息時,當前所述反饋包或者所述待壓縮報文頭的CID與上下文信息 回寫階段的CID相同,則不將所述CID對應的上下文信息寫回到上下文存儲器中,井根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。本發明實施例提供一種并行處理的裝置,將反饋包與待壓縮報文頭進行分離并行處理,可以提高加速引擎通道的性能。以上所述,僅為本發明的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
權利要求
1.一種并行處理的方法,其特征在于,包括 判斷接收到的數據包的類型; 當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊; 從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息; 從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。
2.根據權利要求I所述的方法,其特征在于,在所述從所述反饋包處理通道接收所述反饋包之后還包括 存儲接收到的所述反饋包到反饋包緩存中; 在所述從所述待壓縮報文頭處理通道接收所述待壓縮報文頭之后還包括 存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中。
3.根據權利要求2所述的方法,其特征在于,所述反饋包緩存內至少緩存三個所述反饋包; 所述待壓縮報文頭緩存內至少緩存三個所述待壓縮報文頭。
4.根據權利要求I所述的方法,其特征在于,所述解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息包括 讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息; 根據所述反饋信息更新所述上下文信息; 將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。
5.根據權利要求I所述的方法,其特征在于,所述解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送包括 解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息吋,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存中; 根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送; 將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。
6.根據權利要求1-5中任一項所述的方法,其特征在干,當反饋包處理通道與待壓縮報文頭處理通道同時對同一個上下文信息進行處理時,所述反饋包處理通道的優先級高于所述待壓縮報文頭處理通道的優先級。
7.根據權利要求6所述的方法,其特征在干, 當不同處理通道內,進入壓縮處理階段的待壓縮報文頭的CID與進入更新階段的反饋包的CID相同時,則阻塞待壓縮報文頭處理通道,等待反饋包更新完成后再根據更新后的上下文信息進行所述待壓縮報文頭的處理。
8.根據權利要求4或5所述的方法,其特征在干, 當同一處理通道內不同處理階段,連續接收的所述反饋包或者所述待壓縮報文頭為同一分組流吋,則阻塞當前處理通道,等待前一個反饋包或者待壓縮報文頭完成上下文信息更新處理后,使用更新后的并且保存在所述反饋包緩存或者所述待壓縮報文頭緩存中的上下文信息,完成當前反饋包或者待壓縮報文頭的處理。
9.根據權利要求4或5所述的方法,其特征在干, 在讀取上下文信息之前,所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則根據所述待讀取的所述上下文信息進行進一歩處理。
10.根據權利要求4或5所述的方法,其特征在干, 在讀取上下文信息吋,當前所述反饋包或者所述待壓縮報文頭的CID與上下文信息回寫階段的CID相同,則不將所述CID對應的上下文信息寫回到上下文存儲器中,井根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。
11.一種并行處理的裝置,其特征在于,包括 判斷単元,用于判斷接收到的數據包的類型; 分配単元,用于當所述數據包的類型為反饋包時,將所述反饋包置于反饋包處理通道中的反饋包隊列進行排隊;以及當所述數據包的類型為待壓縮報文頭時,將所述待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮頭隊列進行排隊; 反饋包處理單元,用于從所述反饋包處理通道接收所述反饋包,并解析所述反饋包獲得反饋信息,根據所述反饋信息更新所述反饋包對應的上下文信息; 待壓縮報文頭處理単元,用于從所述待壓縮報文頭處理通道接收所述待壓縮報文頭,并解析所述待壓縮報文頭獲得待壓縮報文頭信息,根據所述待壓縮報文頭信息,將所述待壓縮報文頭壓縮并發送。
12.根據權利要求11所述的裝置,其特征在于,所述裝置還包括 反饋包緩存單元,用于存儲接收到的所述反饋包到反饋包緩存中,以備所述反饋包處理單元進ー步處理; 待壓縮報文頭緩存単元,用于存儲接收到的所述待壓縮報文頭到在待壓縮報文頭緩存中,以備所述待壓縮報文頭處理単元進ー步處理。
13.根據權利要求12所述的裝置,其特征在干, 所述反饋包緩存內至少緩存三個所述反饋包; 所述待壓縮報文頭緩存內至少緩存三個所述待壓縮報文頭。
14.根據權利要求11所述的裝置,其特征在于,所述反饋包處理單元包括 上下文讀取模塊,用于讀取所述反饋包并解析,獲取所述反饋包的反饋信息與所述反饋包的上下文標識符CID ;以及根據所述CID,獲取所述CID對應的上下文存儲地址,并讀取上下文信息; 上下文更新模塊,用于根據所述反饋信息更新所述上下文信息; 上下文回寫模塊,用于將更新的所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間。
15.根據權利要求11所述的裝置,其特征在于,所述待壓縮報文頭處理単元包括 上下文讀取模塊,用于解析所述待壓縮報文頭獲得待壓縮報文頭信息,并獲取分配的CID,根據所述CID獲取所述CID對應的上下文存儲地址;當所述上下文存儲地址存在對應的上下文信息吋,則讀取所述上下文信息,當所述上下文存儲地址不存在對應的上下文信息吋,則將所述待壓縮報文頭信息保存在所述待壓縮報文頭緩存中; 上下文壓縮模塊,用于根據所述待壓縮報文頭信息與所述上下文信息,將所述待壓縮報文頭壓縮并發送; 上下文回寫模塊,用于將所述上下文信息回寫到上下文存儲器中所述上下文存儲地址對應的緩存空間中。
16.根據權利要求11-15中任一項所述的裝置,其特征在于,所述裝置還包括 監控單元,用于當反饋包處理通道與待壓縮報文頭處理通道同時對同一個上下文信息進行處理時,控制所述反饋包處理通道的優先級高于所述待壓縮報文頭處理通道的優先級。
17.根據權利要求16所述的方法,其特征在于,所述裝置還包括 阻塞単元,用于當不同處理通道內,進入壓縮處理階段的待壓縮報文頭的CID與進入更新階段的反饋包的CID相同時,則阻塞待壓縮報文頭處理通道,等待反饋包更新完成后再根據更新后的上下文信息進行所述待壓縮報文頭的處理。
18.根據權利要求17所述的方法,其特征在干, 所述阻塞単元,用于當同一處理通道內不同處理階段,連續接收的所述反饋包或者所述待壓縮報文頭為同一分組流時,則阻塞當前處理通道,等待前一個反饋包或者待壓縮報文頭完成上下文信息更新處理后,使用更新后的并且保存在所述反饋包緩存或者所述待壓縮報文頭緩存中的上下文信息,完成當前反饋包或者待壓縮報文頭的處理。
19.根據權利要求14或15所述的裝置,其特征在于,所述裝置還包括 判斷處理單元,用于在讀取上下文信息之前,所述反饋包緩存或者所述待壓縮報文頭緩存中存在待讀取的所述上下文信息,則根據所述待讀取的所述上下文信息進行進ー步處理。
20.根據權利要求19所述的裝置,其特征在干, 所述判斷處理單元還用于在讀取上下文信息時,當前所述反饋包或者所述待壓縮報文頭的CID與上下文信息回寫階段的CID相同,則不將所述CID對應的上下文信息寫回到上下文存儲器中,井根據所述上下文信息對當前所述反饋包或者所述待壓縮報文頭進行進ー步處理。
全文摘要
本發明公開一種并行處理的方法及裝置,涉及通信網絡技術領域,可以提高加速引擎通道的性能。本發明實施例通過判斷接收到的數據包的類型;當數據包的類型為反饋包時,將反饋包置于反饋包處理通道中的反饋包隊列進行排隊;當數據包的類型為待壓縮報文頭時,將待壓縮報文頭置于待壓縮報文頭處理通道中的待壓縮報文頭隊列進行排隊;從反饋包處理通道接收反饋包,并解析反饋包獲得反饋信息,根據反饋信息更新反饋包對應的上下文信息;從待壓縮報文頭處理通道接收待壓縮報文頭,并解析待壓縮報文頭獲得待壓縮報文頭信息,根據待壓縮報文頭信息,將待壓縮報文頭壓縮并發送。本發明實施例提供的方案適于反饋包與待壓縮報文頭分離并行處理時采用。
文檔編號H04L29/06GK102694730SQ201210169109
公開日2012年9月26日 申請日期2012年5月28日 優先權日2012年5月28日
發明者林曉偉 申請人:華為技術有限公司