專利名稱:一種經快速輸入輸出端口到以太網端口數據傳輸的方法
技術領域:
本發(fā)明涉及多個處理器相互協(xié)作完成數據的傳輸功能。
本發(fā)明所述的多處理器至少包括三個處理器,實現發(fā)送方到接收方的數
據傳輸,如
圖1所示。數據發(fā)送方為處理器組A、轉發(fā)處理器為處理器B、 數據接收方為處理器組C,其中處理器組A可以是一個處理器,也可以是一 組處理器,處理器組C可以是一個處理器,也可以是一組處理器。發(fā)送方 和轉發(fā)處理器B之間通過RapidIO接口連接,轉發(fā)處理器B和接收方之間 通過以太網接口連4妄。
下面以WCDMA (寬帶碼分多址)NodeB (基站)系統(tǒng)中采用多處理 器系統(tǒng)中的數據傳輸為例詳細描述本發(fā)明。
圖2、 3、 4、 5為處理器的初始化過程,初始化各個處理器的以太網端 口或(和)RapidIO端口 。
圖6為發(fā)送方的發(fā)送流程,包括如下步驟
步驟210,發(fā)送方查詢本地緩沖區(qū)是否有數據需要發(fā)送到接收方,有進 入步驟220,沒有進入步驟280;
步驟220,查詢轉發(fā)處理器的轉發(fā)緩沖區(qū)是否有足夠空間接收本次的數 據,有足夠空間則進入步驟230,否則進入步驟280;
步驟230,根據以太網的最大幀長,將發(fā)送數據分為N段,進入步驟
240;
步驟240,判斷N是否等于零,如果等于零則進入步驟270,否則進入 步驟250;
步驟250,將轉發(fā)處理器和接收方的MAC地址以及該段數據的長度, 即以太網幀頭信息寫入轉發(fā)緩沖區(qū)的寫指針開始的緩沖區(qū)中,將實際需要發(fā) 送的數據,即N段發(fā)送數據中的一段,寫入到以太網幀頭信息的后面,進 入步驟260;
步驟260,將N減1,轉入步驟240;
步驟270,更新本地發(fā)送緩沖區(qū)的讀指針,更新轉發(fā)緩沖區(qū)的寫指針, 進入步驟280;
步驟280,結束本次查詢。
圖7為轉發(fā)處理器B的轉發(fā)流程,包括如下步驟
步驟310,轉發(fā)處理器B查詢是否有處于發(fā)送完成狀態(tài)的以太網發(fā)送緩 存區(qū)描述符,有則將所有處于發(fā)送完成狀態(tài)的以太網發(fā)送緩存區(qū)描述符回收 到空閑的以太網發(fā)送緩沖區(qū)描述符鏈表尾部,進入步驟320;
步驟320,查詢轉發(fā)緩沖區(qū)的讀寫指針是否相等,即判斷是否有數據需 要轉發(fā),不相等則進入步驟330,否則進入步驟380;
步驟330,初始化以太網發(fā)送緩存區(qū)描述符信息,將發(fā)送緩沖區(qū)描述符 的發(fā)送數據指針指向以太網幀數據包的首地址,進入步驟340;
步驟340,查詢是否有處于正在發(fā)送狀態(tài)的以太網發(fā)送緩存區(qū)描述符, 如果有則進入步驟350,沒有則進入步驟360;
步驟350,將步驟330初始化的以太網發(fā)送緩沖區(qū)描述符鏈接正在發(fā)送 狀態(tài)的以太網發(fā)送緩存區(qū)描述符鏈表尾部,進入步驟370;
步驟360,用步驟330構造好的以太網發(fā)送緩沖區(qū)描述符重新啟動一次 新的以太網發(fā)送,進入步驟370;
步驟370,更新轉發(fā)緩沖區(qū)的讀指針,進入步驟320;
步驟380, 結束本次查詢。
圖8為接收方的接收流程,包括如下步驟
步驟410,接收方查詢是否有處于接收完成狀態(tài)的以太網接收緩沖區(qū)描 述符,有則進入步驟420,沒有則進入步驟440;
步驟420,接收數據并處理,進入步驟430;
步驟430,回收該處于接收完成狀態(tài)的以太網接收緩存區(qū)描述符到空閑 狀態(tài)的接收緩沖區(qū)描述符鏈表尾部,進入步驟410;
步驟440,結束本次查詢。
本發(fā)明已成功運用于WCDMA系統(tǒng)中。本發(fā)明在WCDMA多種類型
NodeB系統(tǒng)中穩(wěn)定可靠,并具有良好的移植性。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的
形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1、一種經快速輸入輸出端口到以太網端口數據傳輸的方法,發(fā)送方處理器和轉發(fā)處理器通過快速輸入輸出接口連接,轉發(fā)處理器和接收方處理器之間通過以太網接口連接,包括如下步驟步驟110,初始化發(fā)送方處理器,轉發(fā)處理器和接收方處理器;步驟120,所述發(fā)送方處理器將待發(fā)送數據組成以太網幀格式數據包,寫入到所述轉發(fā)處理器的轉發(fā)緩沖區(qū);步驟130,所述轉發(fā)處理器將發(fā)送數據指針指向所述轉發(fā)緩沖區(qū)中的所述以太網幀格式數據包的首地址,發(fā)送所述以太網幀格式數據包至所述接收方處理器;步驟140,所述接收方處理器接收所述以太網幀格式數據包。
2、 如權利要求l所述的方法,其特征在于所述初始化包括,確定發(fā)送方處理器的快速輸入輸出接口的設備地址、 轉發(fā)處理器的快速輸入輸出接口的設備地址和以太網的介質訪問控制即 MAC地址、接收方處理器的以太網的MAC地址;在轉發(fā)處理器中分配好 轉發(fā)緩沖區(qū)空間,并初始化所述轉發(fā)緩沖區(qū)的讀寫指針為零,初始化所述轉 發(fā)處理器的以太網發(fā)送緩沖區(qū)描述符鏈表和接收方以太網接收緩沖區(qū)描述yt七付。
3、 如權利要求2所述的方法,其特征在于,所述步驟120中,所述發(fā) 送方處理器將轉發(fā)處理器和接收方處理器的MAC地址信息以及數據包的長 度信息,即以太網幀格式數據包的幀頭信息,寫入到轉發(fā)處理器的轉發(fā)緩沖 區(qū)中,再將實際需要傳輸的數據寫入到轉發(fā)處理器的轉發(fā)緩沖區(qū)中,兩次寫 入到轉發(fā)緩沖區(qū)的數據組成一個完整的以太網幀格式數據包。
4、 如權利要求2或3所述的方法,其特征在于,如果所述待發(fā)送數據 大于一個以太網幀格式數據包的長度,則將所述待發(fā)送數據按照以太網最大 幀長度進行分段,每段待發(fā)送數據組成一個以太網幀格式數據包,寫入所述 轉發(fā)緩沖區(qū)中。
5、 如權利要求l所述的方法,其特征在于,所述步驟120進一步包括 210,發(fā)送方處理器查詢本地緩沖區(qū)是否有數據需要發(fā)送到接收方,有 則進入220;220,查詢轉發(fā)處理器的轉發(fā)緩沖區(qū)是否有足夠空間接收本次的數據, 有則進入230,否則結束本次查詢;230,根據以太網的最大幀長,將發(fā)送數據分段,對每段數據,將轉發(fā) 處理器和接收方處理器的MAC地址,以及該段數據的長度,即以太網數據 包的幀頭信息,寫入轉發(fā)緩沖區(qū)的寫指針開始的緩沖區(qū)中,將該段數據寫入 到所述以太網幀頭信息后面,寫入所述轉發(fā)緩沖區(qū);240,更新發(fā)送方處理器的發(fā)送緩沖區(qū)的讀指針和轉發(fā)緩沖區(qū)的寫指針, 結束本次查詢。
6、 如權利要求1所述的方法,其特征在于,所述步驟130進一步包括320,查詢轉發(fā)緩沖區(qū)的讀寫指針是否相等,即判斷是否有數據需要轉 發(fā),有則進入步驟330,否則結束本次查詢;330,初始化以太網發(fā)送緩存區(qū)描述符信息,將發(fā)送緩沖區(qū)描述符的發(fā) 送數據指針指向以太網幀數據包的首地址,進入步驟340;340,查詢是否有處于正在發(fā)送狀態(tài)的以太網發(fā)送緩存區(qū)描述符,如果 有則將步驟330初始化的以太網發(fā)送緩沖區(qū)描述符鏈接正在發(fā)送狀態(tài)的以 太網發(fā)送緩存區(qū)描述符鏈表尾部,進入步驟350;沒有則用步驟330構造好 的以太網發(fā)送緩沖區(qū)描述符重新啟動一次新的以太網數據包的發(fā)送,進入步 驟350350,更新轉發(fā)緩沖區(qū)的讀指針,進入步驟320。
7、 如權利要求6所述的方法,其特征在于,步驟320之前進一步包含 步驟310,轉發(fā)處理器查詢是否有處于發(fā)送完成狀態(tài)的以太網發(fā)送緩存區(qū)描 述符,有則將所有處于發(fā)送完成狀態(tài)的以太網發(fā)送緩存區(qū)描述符回收到空閑 的以太網發(fā)送緩沖區(qū)描述符鏈表尾部,進入步驟320。
8、 如權利要求l所述的方法,其特征在于,所述步驟140進一步包括410,接收方查詢是否有處于接收完成狀態(tài)的以太網接收緩沖區(qū)描述符, 有則進入步驟420,沒有則結束本次查詢; 420,接收數據并解析,進入步驟430;430,回收該接收完成狀態(tài)的以太網接收緩存區(qū)描述符到空閑狀態(tài)的接 收緩沖區(qū)描述符鏈表尾部,進入步驟410。
9、 如權利要求1所述的方法,其特征在于所述處理器為微處理器、數字信號處理器、通信和網絡處理器或嵌入式 處理器。所述發(fā)送方處理器是一個處理器或一組處理器,接收方處理器是一 個處理器或一組處理器。
10、 如權利要求6所述的方法,其特征在于所述以太網發(fā)送緩沖區(qū)描述符是用來發(fā)送以太網數據包的描述符,轉發(fā) 處理器根據該描述符描述的信息,將數據發(fā)送出去,所述以太網發(fā)送緩沖區(qū) 描述符有三種狀態(tài),第一種狀態(tài)為空閑狀態(tài),即該描述符描述的以太網數據 包不會發(fā)送;第二種狀態(tài)為正在發(fā)送狀態(tài),即該緩沖區(qū)描述符描述的以太網 數據包正在發(fā)送;第三種狀態(tài)為已經發(fā)送完成狀態(tài),即該援沖區(qū)描述符描述 的以太網數據包已經傳輸完成。
全文摘要
一種經快速輸入輸出端口到以太網端口數據傳輸的方法,發(fā)送方處理器和轉發(fā)處理器通過快速輸入輸出接口連接,轉發(fā)處理器和接收方處理器之間通過以太網接口連接,包括步驟110,初始化發(fā)送方處理器,轉發(fā)處理器和接收方處理器;步驟120,所述發(fā)送方處理器將待發(fā)送數據組成以太網幀格式數據包,寫入到所述轉發(fā)處理器的轉發(fā)緩沖區(qū);步驟130,所述轉發(fā)處理器將發(fā)送數據指針指向所述轉發(fā)緩沖區(qū)中的所述以太網幀格式數據包的首地址,發(fā)送所述以太網幀格式數據包至所述接收方處理器;步驟140,所述接收方處理器接收所述以太網幀格式數據包。本發(fā)明實現了數據的快速轉發(fā),并且減少了轉發(fā)處理器的負荷以及數據傳輸的延時。
文檔編號H04L12/28GK101110779SQ200710136599
公開日2008年1月23日 申請日期2007年7月13日 優(yōu)先權日2007年7月13日
發(fā)明者余中云 申請人:中興通訊股份有限公司