封裝多通道數據包的裝置及方法
2023-05-19 00:23:26 1
專利名稱:封裝多通道數據包的裝置及方法
技術領域:
本發明涉及數字傳輸領域,具體地說,涉及一種多通道數據包的封裝裝置及方法。
背景技術:
通用成幀規程(GFP,Generic Framing Procedure)最近獲得了極大進展,GFP可解決許多在SONET/SDH上或直接在光纖上傳輸數據的相關問題。
首先,它採用的是一種強大的幀構造機制,提高了連結的可靠性。此外,它可以按原始方式傳輸乙太網數據分組,進行乙太網數據幀的本地傳輸。
GFP還提供了一種通用機制,用於傳輸統計復用數據分組(如乙太網/IP)、基於塊的數據結構(如SCSI等存儲協議)及對延遲敏感的音頻/視頻信號傳輸。
GFP具有多層結構,與協議無關的層支持用於各種有效載荷的強大的幀描述。它採用分組長度及相關的CRC(循環冗餘碼校驗)值進行描述。由於長度是已知的,就很容易確定一個數據幀的幀尾和下一數據幀的幀頭,從而可構造強大的幀。與協議有關的層分為兩種,基於幀的GFP適用於乙太網/IP有效載荷和各種長度的分組。它提供與基礎信息相配合的靈活結構,以及與用戶特殊應用信息相配合的用戶定義的分組頭。
如圖1所示,GFP的幀結構包括GFP幀核心頭、淨荷頭部、淨荷信息欄位和淨荷校驗序列。核心頭包括16位的淨荷長度指示和淨荷長度的錯誤校驗值。淨荷頭部包括淨荷類型、淨荷類型錯誤校驗、GFP的擴展頭、擴展幀頭錯誤校驗四部分。
淨荷幀校驗序列標識(PFI)、擴展幀頭標識(EXI)和客戶淨荷標識(UPI),PTI為3bit,指示幀的內容類型;PFI為1bit,指示幀尾是否攜帶幀校驗序列(FCS);EXI為4bit,指示擴展幀頭的類型;UPI為8bit,指示用戶淨荷數據類型。
在通信網絡中,為了將數據包在光傳輸網上進行傳輸,需要先將數據包進行GFP封裝,再將封裝而成的GFP幀映射到光傳輸網的通道上進行傳輸。
在現有的技術中,一個封裝處理模塊只能封裝一個通道的數據,譬如專利《一種封裝數據流的方法》,專利號公開號為CN1571415A,
公開日期為2005年1月26日,或將來自多個輸入埠的數據封裝到一個傳輸通道上去。
但上述解決方案共同的問題是,如果有多個傳輸通道,則需要對應數量的封裝模塊進行封裝處理,這對小規模的晶片系統還可行。如果系統的傳輸通道數為64、128、256或以上時,此時會造成晶片系統的面積和規模成倍的增加,這對晶片的工藝會帶來更高的要求,對降低晶片的規模和功耗帶來更大的壓力。
發明內容
為了克服現有技術中存在的上述問題,本發明提供了一種封裝模塊復用的裝置及方法,可以實現利用一個封裝模塊組完成對多通道的數據包進行封裝。
本發明所構造的封裝多通道數據包的裝置,包括封裝引擎控制模塊,進行封裝模塊的調度,確定對當前通道進行封裝的封裝模塊,同時根據通道號對通道緩存和通道配置模塊進行讀取操作,將讀取的封裝狀態信息和配置信息送往封裝模塊;封裝模塊,用於生成通用成幀規程幀的核心頭、淨荷頭部、淨荷信息欄位和淨荷校驗序列,並與輸入的數據包數據進行成幀處理,形成完整的通用成幀規程幀並予以輸出;通道狀態緩存模塊,用於緩存各通道的封裝狀態信息以及封裝的中間數據,當需要進行某通道的數據包封裝時,則從該模塊讀取出相應的狀態信息,當對某通道的當前數據處理完畢時,則將該通道的封裝狀態信息緩存到該模塊;通道配置模塊,用於緩存各通道的封裝配置信息以及相關統計信息。
所述通道數可以為64、128、256。
所述封裝模塊還可以包括,封裝控制模塊,對封裝模塊內部的處理進行控制;幀頭生成模塊,根據通道數據包的長度生成通用成幀規程幀的核心頭,根據數據包的類型生成淨荷頭部,以及根據需要生成空閒幀;成幀模塊,用於將幀頭生成模塊產生的數據字節、接收到數據包數據字節以及生成的幀校驗序列校驗進行整合,形成一個完整的通用成幀規程幀予以輸出;幀校驗序列生成模塊,根據通道配置,對通用成幀規程幀的淨荷部分進行CRC-32運算,在淨荷部分結束時,將生成的32位幀校驗序列送給成幀模塊;加擾模塊,根據通道配置,對通用成幀規程幀的淨荷部分和幀校驗序列校驗部分進行X43+1的加擾運算。
所述封裝模塊的個數由該模塊完成一次數據處理所需要的時鐘周期數決定。
本發明所提出的一種封裝多通道數據包的方法,包括以下步驟步驟1、獲取需要進行封裝處理的通道號,並根據通道號從對應的物理埠提取需要進行封裝的數據包數據;步驟2、查詢是否有封裝模塊正在進行該通道的數據封裝處理,若有,則繼續使用該封裝模塊進行數據封裝處理,轉入步驟5,若無,則從封裝處理模塊中調度出一個空閒的,對當前通道的數據進行處理,轉入步驟3;
步驟3、根據通道號,查詢該通道的封裝狀態信息和配置信息,並送往對應的封裝處理模塊;步驟4、依據步驟3中查詢到的狀態和配置信息,對選中的封裝模塊進行裝載,讓封裝模塊恢復到該通道的最近封裝狀態,以保證通道數據封裝處理的連續性;步驟5、對通道的數據包數據進行封裝處理,對選定通道的數據處理完畢後,保存該通道當前的封裝處理狀態;同時將當前的封裝處理模塊標記為空閒狀態。
根據一個封裝模塊完成一次數據封裝處理所需要的最大時鐘周期數,確定一個封裝模塊是否處於空閒狀態;或當一個封裝處理模塊完成了指定的數據進行封裝處理,則自動轉入空閒狀態。
所述封裝模塊的個數由該模塊完成一次數據處理所需要的時鐘周期數決定。
本發明設計所佔的資源與邏輯通道的數量沒有線性關係,即隨著邏輯通道數目的增加,封裝模塊所佔用的資源增加不多,因而當需要對更多的邏輯通道進行封裝處理時,只需要增加相關的配置信息和狀態緩存即可,並不需要增加任何處理邏輯,利用該方法和裝置可以大大減少所需的硬體資源。
本發明適合於通道數為64或以上的封裝系統,本發明的封裝模塊組需要的封裝模塊的個數決定於完成一次數據封裝所需的最大時鐘周期數,並不隨邏輯通道數的增加而增加。
圖1是本發明GFP數據幀的幀格式示意圖;圖2是本發明所述封裝多通道數據包的方法流程圖;圖3是本發明所述封裝多通道數據包的裝置結構圖;
圖4是本發明所述裝置中封裝模塊的結構示意圖。
具體實施例方式
下面參照附圖並舉實施例,對本發明進一步詳細說明。
在通信網絡中,往往需要將來自一個或多個物理埠的數據封裝到不同的SDH通道中去,對每個SDH通道,都需要一個封裝模塊。這對需要處理64、128、256或更多SDH傳輸通道的晶片系統來說,會造成晶片系統的面積和規模成倍的增加。因此本發明需要解決多個傳輸通道共用一個封裝模塊的問題。
參見圖2所示,實現本發明的方法包括以下步驟步驟201、獲取需要進行封裝處理的通道號,並根據通道號從對應的物理埠提取需要進行封裝的數據包數據;步驟202、查詢是否有封裝模塊正在進行該通道的數據封裝處理,如果有,則繼續使用該封裝模塊進行數據封裝處理,轉入步驟206;如果沒有,則從封裝處理模塊中調度出一個空閒的,對當前通道的數據進行封裝處理,轉入步驟203;步驟203、系統有多個封裝模塊,封裝模塊的個數決定於完成一次數據封裝處理所需的時鐘周期數,在此對各封裝模塊的狀態進行輪循,調度出一個處於空閒狀態的封裝模塊,用於對當前通道的數據進行封裝處理;步驟204、根據通道號,查詢該通道的封裝狀態信息和配置信息,並送往對應的封裝處理模塊;步驟205、根據步驟204獲得的通道封裝狀態信息和配置信息,對步驟203選中的封裝模塊進行裝載,讓封裝模塊恢復到該通道的最近封裝狀態,以保證通道數據封裝處理的連續性;步驟206、對通道的數據進行封裝處理,然後跳出本流程。
確定一個封裝模塊是否處於空閒狀態可以包括有兩種方式一種是在步驟203中,根據一個封裝模塊完成一次數據封裝處理所需的最大時鐘周期數,當一個封裝模塊在最近連續該最大時鐘周期數內沒有進行數據封裝處理,則自動轉入空閒狀態;另一種是在步驟206中,當一個封裝處理模塊完成了當前指定的通道數據的封裝處理,則自動轉入空閒狀態;參見圖3所示,基於上述方法,實現本發明的裝置包括封裝引擎控制模塊、封裝模塊、通道狀態緩存模塊和通道配置模塊四部分。
其中,封裝引擎控制模塊,進行封裝模塊的調度,確定對當前通道進行封裝的封裝模塊,同時根據通道號對通道緩存和通道配置模塊進行讀取操作,將讀取的封裝狀態信息和配置信息送往封裝模塊。
封裝模塊又包括封裝控制模塊、幀頭生成模塊、成幀模塊、FCS生成模塊和加擾模塊,用於生成GFP幀的核心頭、淨荷頭部、淨荷信息欄位和淨荷校驗序列,並與輸入的數據包數據進行成幀處理,形成完整的GFP幀並予以輸出,本裝置包含多個封裝模塊,封裝模塊的個數決定於該模塊完成一次數據處理所需要的時鐘周期數。
通道狀態緩存模塊,用於緩存各通道的封裝狀態信息以及封裝的中間數據,當需要進行某通道的數據包封裝時,則從該模塊讀取出相應的狀態信息;當對某通道的當前數據處理完畢時,則將該通道的封裝狀態信息緩存到該模塊。
通道配置模塊,用於緩存各通道的封裝配置信息以及相關統計信息。
圖3所示的本發明裝置的工作過程如下封裝引擎控制模塊接收來自下遊模塊,如SDH傳輸通道的數據封裝請求,此時,必須確保該傳輸通道的數據的連續性,否則會造數據包傳輸的中斷。封裝引擎控制模塊首先判斷是否有封裝模塊正在對該通道的數據進行封裝處理,如果有,則繼續使用該封裝模塊進行該通道的數據封裝;否則,從多個封裝模塊中調出一個空閒的封裝模塊,同時根據通道號分別從配置模塊和通道狀態緩存模塊中獲取該通道的配置信息和封裝狀態信息,並將這些信息送往選中的封裝模塊;封裝模塊根據通道的配置信息和狀態信息進行重裝載,並對輸入的數據包數據進行封裝處理。當封裝處理完畢後,輸出GFP幀數據,並將該通道當前的封裝狀態信息保存到通道狀態緩存模塊中。
下面詳細說明封裝模塊的工作過程。
參見圖4所示,所述封裝模塊進一步包括封裝控制模塊、幀頭生成模塊、成幀模塊、FCS生成模塊和加擾模塊。
其中,封裝控制模塊接收通道的配置信息和封裝狀態信息,對該封裝模塊進行裝載,恢復對應通道的最近封裝狀態和中間數據。
幀頭生成模塊接收數據包的長度和類型,生成GFP幀核心頭、淨荷頭部、淨荷信息欄位和淨荷校驗序列,並將這些數據送往成幀模塊進行處理。
成幀模塊用於將幀頭生成模塊產生的數據字節、接收到的數據包數據字節以及生成的FCS校驗進行整合,形成一個完整的GFP幀予以輸出,並將需要進行FCS校驗的幀數據字節送往FCS生成模塊進行FCS校驗碼的運算。
FCS生成模塊,根據通道配置,對GFP幀的淨荷部分進行CRC-32運算,在淨荷部分結束時,將生成的32位FCS送給成幀模塊。
加擾模塊,根據通道配置,對GFP幀的淨荷部分和FCS校驗部分進行X43+1的加擾運算。
權利要求
1.一種封裝多通道數據包的裝置,其特徵在於,包括封裝引擎控制模塊,進行封裝模塊的調度,確定對當前通道進行封裝的封裝模塊,同時根據通道號對通道緩存和通道配置模塊進行讀取操作,將讀取的封裝狀態信息和配置信息送往封裝模塊;封裝模塊,用於生成通用成幀規程幀的核心頭、淨荷頭部、淨荷信息欄位和淨荷校驗序列,並與輸入的數據包數據進行成幀處理,形成完整的通用成幀規程幀並予以輸出;通道狀態緩存模塊,用於緩存各通道的封裝狀態信息以及封裝的中間數據,當需要進行某通道的數據包封裝時,則從該模塊讀取出相應的狀態信息,當對某通道的當前數據處理完畢時,則將該通道的封裝狀態信息緩存到該模塊;通道配置模塊,用於緩存各通道的封裝配置信息以及相關統計信息。
2.如權利要求1所述的封裝多通道數據包的裝置,其特徵在於所述通道數可以為64、128、256。
3.如權利要求1或2所述的封裝多通道數據包的裝置,其特徵在於所述封裝模塊還包括,封裝控制模塊,對封裝模塊內部的處理進行控制;幀頭生成模塊,根據通道數據包的長度生成通用成幀規程幀的核心頭,根據數據包的類型生成淨荷頭部,以及根據需要生成空閒幀;成幀模塊,用於將幀頭生成模塊產生的數據字節、接收到數據包數據字節以及生成的幀校驗序列校驗進行整合,形成一個完整的通用成幀規程幀予以輸出;幀校驗序列生成模塊,根據通道配置,對通用成幀規程幀的淨荷部分進行CRC-32運算,在淨荷部分結束時,將生成的32位幀校驗序列送給成幀模塊;加擾模塊,根據通道配置,對通用成幀規程幀的淨荷部分和幀校驗序列校驗部分進行X43+1的加擾運算。
4.如權利要求3所述的封裝多通道數據包的裝置,其特徵在於所述封裝模塊的個數由該模塊完成一次數據處理所需要的時鐘周期數決定。
5.一種封裝多通道數據包的方法,其特徵在於,包括步驟1、獲取需要進行封裝處理的通道號,並根據通道號從對應的物理埠提取需要進行封裝的數據包數據;步驟2、查詢是否有封裝模塊正在進行該通道的數據封裝處理,若有,則繼續使用該封裝模塊進行數據封裝處理,轉入步驟5,若無,則從封裝處理模塊中調度出一個空閒的,對當前通道的數據進行處理,轉入步驟3;步驟3、根據通道號,查詢該通道的封裝狀態信息和配置信息,並送往對應的封裝處理模塊;步驟4、依據步驟3中查詢到的狀態和配置信息,對選中的封裝模塊進行裝載,讓封裝模塊恢復到該通道的最近封裝狀態,以保證通道數據封裝處理的連續性;步驟5、對通道的數據包數據進行封裝處理,對選定通道的數據處理完畢後,保存該通道當前的封裝處理狀態;同時將當前的封裝處理模塊標記為空閒狀態。
6.如權利要求5所述的封裝多通道數據的方法,其特徵在於根據一個封裝模塊完成一次數據封裝處理所需要的最大時鐘周期數,確定一個封裝模塊是否處於空閒狀態;或當一個封裝處理模塊完成了指定的數據進行封裝處理,則自動轉入空閒狀態。
7.如權利要求5所述的封裝多通道數據的方法,其特徵在於所述封裝模塊的個數由該模塊完成一次數據處理所需要的時鐘周期數決定。
全文摘要
本發明公開了一種封裝多通道數據包的裝置及方法,所述方法為封裝引擎控制模塊首先判斷是否有封裝模塊正在對該通道的數據進行封裝處理,如果有,則繼續使用該封裝模塊進行該通道的數據封裝;否則,從多個封裝模塊中調出一個空閒的封裝模塊,同時根據通道號分別從配置模塊和通道狀態緩存模塊中獲取該通道的配置信息和封裝狀態信息,並將這些信息送往選中的封裝模塊;封裝模塊根據通道的配置信息和狀態信息進行重裝載,並對輸入的數據包數據進行封裝處理。當封裝處理完畢後,輸出GFP幀數據,並將該通道當前的封裝狀態信息保存到通道狀態緩存模塊中。採用本發明所述的裝置及方法,可以大大減少所需的硬體資源。
文檔編號H04L29/08GK1925459SQ20051009856
公開日2007年3月7日 申請日期2005年9月2日 優先權日2005年9月2日
發明者吳中文 申請人:中興通訊股份有限公司